't Bijstere spoor

't Bijstere spoor

A blog about Web development

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

Comments

Chris
Chris said on Saturday, 2 August 2008 at 9:18 pm CEST

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

Sven
Sven said on Tuesday, 5 August 2008 at 4:41 pm CEST

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
Evert said on Tuesday, 5 August 2008 at 5:28 pm CEST

Sven,

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.

Evert

Felixdv
Felixdv said on Wednesday, 6 August 2008 at 1:10 pm CEST

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

Evert
Evert said on Wednesday, 6 August 2008 at 2:15 pm CEST

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

Martijn
Martijn said on Thursday, 14 August 2008 at 8:40 am CEST

Hey sven, check this out:

http://funroll-loops.info/

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
PJ said on Wednesday, 27 August 2008 at 9:29 pm CEST

One tip:

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

dpkg-source -x <whatever>.dsc

and it will be done for you.

Jerry Loggins
Jerry Loggins said on Monday, 1 September 2008 at 2:06 pm CEST

I love your "compiling" cartoon! Too funny!

Evert
Evert said on Monday, 1 September 2008 at 8:34 pm CEST

Can't take credit for that! I love XKCD

Michael
Michael said on Wednesday, 24 September 2008 at 12:03 pm CEST

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
kL said on Monday, 6 October 2008 at 3:57 pm CEST

aaargh, make failed because it lacked *doxygen*!

kL
kL said on Monday, 6 October 2008 at 5:57 pm CEST

aaargh, make failed because it lacked *doxygen*!

Dominic Hargreaves
Dominic Hargreaves said on Wednesday, 8 October 2008 at 4:18 pm CEST

I've done almost exactly this (without java support, hence not on backports.org):

http://people.debian.org/~dom/ - etch-backports repository there

Feel free to use!

Thomas Einwaller
Thomas Einwaller said on Saturday, 6 December 2008 at 4:51 pm CET

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
jose said on Monday, 26 January 2009 at 8:22 am CET

hi,
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
Evert said on Monday, 26 January 2009 at 4:32 pm CET

Jose,

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.

http://en.wikipedia.org/wiki/Amd64

Evert

jose
jose said on Monday, 26 January 2009 at 4:56 pm CET

thank you evert

steve
steve said on Thursday, 12 February 2009 at 11:46 pm CET

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...







Solve this simple math problem to prevent bots from spamming this blog:
10 + 10 =