Difference between revisions of "Getting Started/Sources/Anonymous SVN"

Jump to: navigation, search
Line 47: Line 47:
{{tip| It is recommended to use kde-qt.git instead of qt-copy.
{{tip| It is recommended to use kde-qt.git instead of qt-copy.
  git clone git://gitorious.org/+kde-developers/qt/kde-qt.git
  git clone git://gitorious.org/+kde-developers/qt/kde-qt.git qt-kde

Revision as of 20:25, 30 October 2009


Getting Started/Sources/Anonymous SVN

Getting KDE Sources Using Anonymous Subversion (SVN)
Tutorial Series   Getting Started
Previous   None
What's Next   Building KDE4
Further Reading   Version Control with Subversion


For those of us that like to stay on the "bleeding edge" there's an easy way to keep a local copy of the KDE sources up-to-date — anonymous SVN.

Alternatively, install KDE SVN packages from your distribution.

Anonymous SVN

Setup Subversion

First, install the subversion (svn) binary if it isn't already on your computer. Your operating system should have a package for it. Alternatively you can download and compile it yourself via the svn project download page. Please read the KDE Subversion tutorial if you are interested in how to use Subversion.

Checkout KDE

/trunk/ is where the Qt4-based KDE 4 is being developed. The following is the minimal set of modules you will need to check out to build KDE and KDE software:

svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdelibs
svn co svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase

To get the oxygen icons you need to checkout:

svn co svn://anonsvn.kde.org/home/kde/trunk/kdesupport/oxygen-icons
If your firewall doesn't allow access to arbitrary ports, substitute svn://anonsvn.kde.org/ with svn://websvn.kde.org:443/ above.

The kdebase module has an external dependency, using svn:externals. The problem is, at this time, the externals property is set with an absolute path, pointing to anonsvn. For those using behind a firewall, this is a problem. You can change the property for your workspace, using two commands:
cs KDE
svn propset svn:externals "lib svn://websvn.kde.org:443/home/kde/trunk/KDE/kdebase/runtime/kstyles/oxygen/lib" kdebase/workspace/kwin/clients/oxygen 
svn propset svn:externals "lib svn://websvn.kde.org:443/home/kde/trunk/KDE/kdebase/runtime/kstyles/oxygen/lib" kdebase/workspace/kwin/clients/ozone
This way the external property will look for the additional files in the websvn repository. There are also kdenetwork/kget/transfer-plugins/bittorrent and kdebase/workspace/kwin/clients/ozone that use svn:externals get the url with svn propget svn:externals PATH and replace anonsvn.kde.org with websvn.kde.org:443 here too.

qt-copy is a copy of the latest stable Qt release which works with KDE, put into SVN for convenience. It also contains patches by KDE developers that haven't found their way to Qt yet. They are recommended for those working with KDE from trunk. Instructions on how to get and configure it can be found here.

It is recommended to use kde-qt.git instead of qt-copy. git clone git://gitorious.org/+kde-developers/qt/kde-qt.git qt-kde

If you wish to have a complete copy of the KDE distribution, you can simply check out the entire source tree with one command:

svn co svn://anonsvn.kde.org/home/kde/trunk/KDE
It is smarter to first use The KDE Source Repository Web Viewer. Use it to choose which modules to download. This way KDE will be quicker to install and try out.

If you want additional software packages you can check out the following modules within trunk/ as well:


So, for example, if you want to check out koffice trunk, you can use:

svn co svn://anonsvn.kde.org/home/kde/trunk/koffice

Checking out trunk using snapshots

If you are checking out modules from trunk/ you may be able to save time by using snapshots. Using Subversion trunk snapshots is described at the Subversion snapshots tutorial page.

Checking out KDE 3 instead

If you want to track KDE 3 rather than the bleeding edge, you may retrieve the KDE 3.5 sources using:

svn co svn://anonsvn.kde.org/home/kde/branches/arts/1.5/arts
svn co svn://anonsvn.kde.org/home/kde/branches/KDE/3.5/

And if you want the matching qt-copy:

svn co svn://anonsvn.kde.org/home/kde/branches/qt/3.3/qt-copy

Checking out specific releases

KDE modules are also tagged at each release so that it is possible to get a specific release of KDE. Most KDE modules have a tag name in the format tags/KDE/X.Y.Z (where X, Y and Z represent the exact version). The arts module (only needed for KDE 2 and KDE 3) has a different format of tag name, tags/arts/X.Y.Z. For instance to get kdelibs as it was shipped in KDE 3.5.0, do:

svn co svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.0/kdelibs/

If you then want to update this checkout to KDE 3.5.5, use this command:

svn switch svn://anonsvn.kde.org/home/kde/tags/KDE/3.5.5/kdelibs
If you used a /branch/ or /trunk/ path, then there is no need to switch, just run svn update.

Checking out translations

If you are looking for translations and other localizations, check out the appropriate language from the appropriate module: l10n-kde4 (KDE4) or l10n-kde3 (KDE3).

The l10n module is extremely large. Be sure you have lots of time and disk space on hand before checking out the entire l10n module. Most people only check out specific language subdirectories rather than the entire l10n module.

You are now ready to start building KDE! Visit this page for instructions on building trunk or this page for instruction on compiling the last stable release.

Checkout from behind a proxy

If the tip above didn't help you, and you've realized that the only way to go seems to be with http://anonsvn.kde.org/.. , then you will have to jump through a few hoops to get an svn checkout. Since http:// access is open only to developers, you will have to use svn://. Transconnect is a small piece of software that can tunnel all the traffic through your friendly neigbourhood proxy server. Get the transconnect sources from http://transconnect.sourceforge.net/ , compile it, and edit ~/.tconn/tconn.conf to point to your proxy server. Export the LD_PRELOAD variable as per the README from transconnect, and you're set to go.

Also of interest

  • Visit http://websvn.kde.org/ to browse the source code online.
  • anonsvn.kde.org is a round robin DNS entry, which will resolve to one out of several anonsvn mirrors. The DNS setup is maintained by the KDE sysadmins. However, it might be desireable to choose a local mirror explicitely. Some mirrors are listed below, sorted by performance:
    • kde.mneisen.org is located near Nuernberg, Germany, maintained by Martin Eisenhardt
    • www.englishbreakfastnetwork.org also hosts an anonymous SVN mirror, at the University of Nijmegen, Netherlands. Maintained by Adriaan de Groot
  • There are also aliases anonsvn1.kde.org, anonsvn2.kde.org and anonsvn3.kde.org which point to the mirrors used in the DNS round robin (the above two plus another mneisen.org mirror). If you experience trouble because one mirror is broken, you can always select a specific mirror using either the fullnames above or simply anonsvn1, 2, or 3.
Be careful when switching between mirrors. SVN remembers the server in the working copy, so to switch you have to run
svn switch --relocate svn://anonsvn.kde.org/ svn://kde.mneisen.org/
in all your checkouts.

If you're interested in setting up a svn mirror, please contact the KDE sysadmins.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V.Legal