The site uses cookies that you may not want. Continued use means acceptance. For more information see our privacy policy.

dpkg-buildpackage subversion tutorial

Grabbing source from subversion and making a package out of it (Debian).

This is a brief writeup of how to take a package or version of package that’s not yet in incoming debian but is on the subversion. Please note it pertains to sid/unstable, though may be applicable for other versions.

First thing you want to do is hit up the above web-subversion browser and find the location of the package you want. For example I was annoyed that they merged the gtk2 engines into one package and thus broke the industrial cursor theme. Well, there is a new package being developed to put the industrial theme back in, but it’s not in incoming yet. You can see similar packages here in the “New and Byhand” listing.

So you find the package you want on the SVN, now you need to download the source:

svn co svn://svn.debian.org/pkg-gnome/packages/unstable/industrial-cursor-theme ~/new

svn co invokes the subversion client to connect to the address that follows: svn.debian.org. Use the directory that applies. In this case the theme is a member of gnome, so pkg-gnome, then almost always packages/unstable/package-you-want. then ~/new will download that source to ~[home]/new, a directory called ‘new’ in your home directory. You should be fine running this as a regular user.

Now, you have the source in ~/new, what’s next? You want to go ahead and build the source into a dpkg so it will properly register in your installation and can be updated seamlessly. So, go ahead and jump to ~/new, and then dpkg-buildpackage

It may report needed dependencies and/or give errors regarding a makefile. In that case you need to root up and install the needed packages, try looking in ~/new/debian/rules file for any package you need. In my case I had to install gnome-pkg-tools.

So root down and build it, don’t give up if it has errors, look around, inspect, try to determine any other packages that may be needed that could cause errors. You may have to resign eventually if it’s just a broken package, but generally you should be able to get it built. Once you’ve done that, hop back to ~/ and you should find your shiny new .deb to dpkg -i. And you’re done, buy yourself a beer and toast to the debian developers all over the world.

To recap:

1. Locate the package in upstream subversion repository. ie, industrial-cursor-theme
2. Construct your svn command to check out the code. ie, svn co svn://svn.debian.org/pkg-gnome/packages/unstable/industrial-cursor-theme ~/new
3. Build the package from source using dpkg-buildpackage. Simply cd to the appropriate location and dpkg-buildpackage
4. Read the output. If there’s an error, look at it, stare it down. If it says something about no such directory or file, what file, what directory? Maybe you’re missing a dependency. If it’s more complicated, talking about some error in code (ie, “foo.c:38 expected ‘)'”) you may be out of luck unless you can do some coding and fix it.
5. Assuming you had no (4) or you resolved it, you’ll have a .deb file containing your package. Just dpkg -i file.deb and it will install.

Please feel free to comment if you have any questions, suggestions, clarifying points, et cetera.

4 thoughts on “dpkg-buildpackage subversion tutorial

    1. Sorry to hear that. Is there a specific problem? What browser and OS are you using?

      If need be, you can probably disable the style associated with the website as a workaround. For example in Firefox you can select the View menu, Page Style item, and then ‘No Style’ to disable the site’s CSS.

    1. Sorry to hear that. Is there a specific problem? What browser and OS are you using?

      If need be, you can probably disable the style associated with the website as a workaround. For example in Firefox you can select the View menu, Page Style item, and then ‘No Style’ to disable the site’s CSS.

Add a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Post navigation