Subversion 1.5 for debian Etch

The Subversion team released version 1.5 recently, with some really tight features such as changelist and merge tracking.

In our shop we standardized on Debian, and it's very likely going to take till 5.0 (lenny) until we get access. Normally I would just do a compile from source, but since this will have to be done on multiple servers, I decided to backport subversion from Lenny to create a nice little .deb package.

Here are my steps, (tested on just my machine, so please try at your own risk).

  1. We'll start off by creating a directory for this process.
    ``` mkdir subversion ```
  2. Next, download the source packages from the debian packages site.. They're on the right.
  3. Now, unzip them.
    ``` gunzip subversion_1.5.0dfsg1-4.diff.gz tar xfvz subversion_1.5.0dfsg1.orig.tar.gz ```
  4. The first file was patch with debian specific changes, we'll need to apply this patch to the source tree.
    ``` patch -p0 < subversion_1.5.0dfsg1-4.diff ```
  5. Enter the source directory
    ``` cd subversion-1.5.0dfsg1/ ```
  6. We'll need to change some file permissions to make this work.
    ``` chmod 755 debian/rules ```
  7. Now we switch to the root user, because we need to install some dependencies.
    ``` # Assuming you're root apt-get build-dep subversion apt-get install python-all-dev libneon26-dev quilt libsasl2-dev fakeroot debhelper ```
  8. Switch back from root to your normal user.
  9. I've had some issues making creating the java hooks. To get around this, we'll need to disable them. Do this by opening the 'debian/rules' file and change the line that says 'ENABLE_JAVAHL' to no. For me this was on line 21.
    ``` ENABLE_JAVAHL := no ```
  10. Now we can get started building the package.
    ``` dpkg-buildpackage -rfakeroot -uc -b -d ```
  11. Compiling!
  12. If everything went well, you should have ended up with about 10 .deb packages in the directory right above the source directory. You can simply install all of them with:
    ``` dpkg -i *.deb ```
  13. </ol>

Web mentions


  • Chris


    Thanks for your work and for publishing it! Worked flawlessly on my etch system. Exactly what the doctor ordered...
  • Sven

    But your solution doesn't solve the problem that bugfixes won't be installed to your installation any more. That's really bad, espacially because debian etch claims to be a well tested system, etc.

    There's nothing better than Gentoo:
    # echo "subversion" >> /etc/portage/package.keywords
    # emerge subversion
    And you'll get the latest well tested version of subversion (which means of the 1.5 branch and later, but no devel version). Always. ;-)
  • Evert



    You can simply repeat this process for newer versions.

    Great that gentoo does it with a 2 simple commands, however, I wouldn't trust it for our production machines.

  • Felixdv


    You would need the fakeroot and debhelper packages too, to do this.
  • Evert


    Thanks! I already had those on my system, so I added it to the instructions
  • Martijn


    Hey sven, check this out:

    Many interesting Gentoo quotes, but this is my all time favorite:
    "I'm currently isntalling Gentoo from stage 1 on 300Mhz laptop with 128 megs of RAM. And the compilation is not an issue. That guy sounds like he plans to do all the compiling during the time he would normally be using the computer. Why not do like I did? I started the bootstrap when I was on my way to bed. In the morning, it was finished. Before I went to work, I emerged system. When I got back home, it was done. X and Fluxbox were both installed during the night, no problems there. I didn't lose any time compiling all that software."
  • PJ


    One tip:

    Instead of manually unpacking the .orig.gz and applying the patch(es), you can do

    dpkg-source -x .dsc

    and it will be done for you.

  • Jerry Loggins

    Jerry Loggins

    I love your "compiling" cartoon! Too funny!
  • Evert


    Can't take credit for that! I love XKCD
  • Michael


    I needed to install a bunch of other things as well, including:

    swig, libapr1, libapr1-dev, libaprutil1, libaprutil1-dev

    It also asked for apxs, which I disabled in debian/rules
  • kL


    aaargh, make failed because it lacked *doxygen*!
  • kL


    aaargh, make failed because it lacked *doxygen*!
  • Dominic Hargreaves

    Dominic Hargreaves

    I've done almost exactly this (without java support, hence not on - etch-backports repository there

    Feel free to use!
  • Thomas Einwaller

    Thomas Einwaller

    do not forget to run svnadmin upgrade on all your repositories after installing the new version - I always got "Retrieval of mergeinfo unsupported ..." before I did that
  • jose


    quick question: after the built my deb packages seem to be built for an AMD64 platform whereas my server is an intel platform, anything I missed here or I can go ahead with those ?

    thank you
  • Evert



    The 'amd64' identifier is also used for intel chips. Basically any 'intel-compatible' 64bit architecture is named amd64, because they just followed intel's spec.

  • jose


    thank you evert
  • steve


    You can also do
    DEB_BUILD_OPTIONS="no-javahl" dpkg-buildpackage -rfakeroot -uc -b -d
    (and more opts to reduce the number of needed packages:
    no-apache no-ruby
    This avoids editing the debian/rules...