6.29 Building Source Packages
You can download the source code for any Debian package from the Debian archive. You can then modify it, if you wish, and then generate your own deb file for installation. Or perhaps, like Gentoo, you are interested in building the package with your local compilation optimisations to suit your system specifically. This is all quite easy with Debian.
The steps involved include: Install dependencies; Obtain the source; Unpack the source; Apply the patches; Compile the source code; Build the Debian package.
A use case here was that gnome-shell had been updated to 3.36.3 but not yet available for the specific release:
$ wajig builddeps gnome-shell
$ wget http://archive.ubuntu.com/ubuntu/pool/main/g/gnome-shell/gnome-shell_3.36.3.orig.tar.xz
$ wget http://archive.ubuntu.com/ubuntu/pool/main/g/gnome-shell/gnome-shell_3.36.3-1ubuntu2.debian.tar.xz
$ tar xvf gnome-shell_3.36.3.orig.tar.xz
$ cd gnome-shell_3.36.3
$ tar xvf ../gnome-shell_3.36.3-1ubuntu2.debian.tar.xz
$ dpkg-buildpackage -us -uc -nc
$ cd ..
$ wajig install gnome-shell_3.36.3-1ubuntu2_amd64.deb gnome-shell-common_3.36.3-1ubuntu2_all.deb gnome-shell-extension-prefs_3.36.3-1ubuntu2_amd64.deb
Install dependencies:
Sources should be specified in /etc/apt/sources.list
with the
appropriate deb-src lines:
Obtain and unpack the source Debian package:
This will download tar.gz (source code), dsc (test packaging), and possibly diff (patches). It then extracts the source code into a subdirectory of the package name and version, and applies the patches.
The patching can be reversed:
To go one step further and also configure and compile the package, and then generate a default Debian deb package from the source code then use:
This will allow you to apply any optimisations during the compilation
process to suit your own environment. This is similar to
Gentoo, allowing for automatic
optimisation and customisation to suit the user. To tune the build
edit the file /etc/apt/apt-build.conf
.
If you need to modify the source to the package (e.g., the package most) in some way and thus need to rebuild the deb package, the steps would be:
Now modify the source code to your own liking, then generate the Debian package with:
This leaves a new most_4.9.5-1_i386.deb
in the parent
directory, and you can install it directly:
Your donation will support ongoing availability and give you access to the PDF version of this book. Desktop Survival Guides include Data Science, GNU/Linux, and MLHub. Books available on Amazon include Data Mining with Rattle and Essentials of Data Science. Popular open source software includes rattle, wajig, and mlhub. Hosted by Togaware, a pioneer of free and open source software since 1984. Copyright © 1995-2022 Graham.Williams@togaware.com Creative Commons Attribution-ShareAlike 4.0