[svlug] about building packages

Ivan Sergio Borgonovo mail at webthatworks.it
Fri Nov 27 03:43:49 PST 2015


I forgot the simplest advice to give when building packages especially 
for a distribution: look how others have packaged the same package in a 
distribution of your choice.

BTW I just discovered that qtparted is not in Debian (if it ever has 
been) and it hasn't been updated in 10 years.

Debian and I guess many other distro gives you other tools to simplify 
to build packages from source (eg. apt-get build-dep).

But even if you were planning to build LFS you could still take 
advantage of those tools to help you to explore dependencies, get all 
the changelog and README you may need to discover little 
incompatibilities, bugs etc...

There is a reason for example why even sid doesn't get magically updated 
at the newest and greatest version of every package and you can't just 
take the latest version of application and build it with the latest 
version of all its dependencies.

Looking how other mixed and matched versions may help you to get a 
successful and working build.

The process of building a debian package is described here:
https://wiki.debian.org/BuildingTutorial

You can follow it to collect clues and learn things you may need to 
build your own package(s) without package management and install them 
properly.

Building (and maintaining) a distribution is a huge work and require 
knowledge in far to many topics and a lot of coordination, looking at 
how a package was made is the best condensed version of that knowledge.

You can't see all the problems in you'll have to face to build a Linux 
system as just nuisances you've nothing to learn from, just pretending 
you're working at a higher abstraction level. If you were working at a 
higher abstraction level you'd use Debian.

If you're not working at a higher abstraction layer get humble, get your 
hands dirty, learn how to compile stuff, how C and C++ works and all the 
things you've to learn to successfully build a distribution (and they 
are MANY). That's pretty different than following a recipe to build bash.

I wouldn't say I'm ready to be the maintainer of gawk if I successfully 
built it once following LFS recipe. And maintaining a whole distribution 
is not just maintaining gawk.
No one is really using LFS because there is no way to share the load and 
automate the process. It is a book and it is just scratching the surface 
of the knowledge you've to have to build up a system you can use for 
anything else than educational purpose.

LFS should just give you an idea about how hard things are.
Building a toolchain is a terribly boring thing to do, the educational 
value of really doing it package by package is:
a) you'll know the list of the packages you need
b) you'll try to automate it or look for someone else that did it ;)
LFS is actually hiding many decisions you'll have to make when eg. 
building a toolchain offering you a "recipe".

-- 
Ivan Sergio Borgonovo
http://www.webthatworks.it




More information about the svlug mailing list