[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: tutorial for building rpms?



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

>From: Jeff Johnson <jbj@JBJ.ORG>
>Reply-To: rpm-list@redhat.com
>To: rpm-list@redhat.com
>Subject: Re: tutorial for building rpms?

>>would it be politically incorrect to ask who we should use as role
>>models?
>
>All of SuSE, Mandrake and Conectiva do some very nice packaging,

SuSE do a good job of packaging apps to fit nicely into their
distribution, making sure the documentation is in the right place and so
on.  But I wouldn't necessarily imitate them on the mechanics of writing
spec files themselves.  Most SuSE packages have no Requires or
BuildRequires lines - none at all.  But they do have two huge lines at
the top:

# neededforbuild  autoconf automake texinfo
# usedforbuild    aaa_base aaa_dir autoconf automake base bash bindutil
binutils bison bzip compress cpio cpp cracklib cyrus-sasl db devs
diffutils e2fsprogs file fileutils findutils flex gawk gcc gdbm
gdbm-devel gettext glibc glibc-devel gpm gppshare grep groff gzip kbd
less libtool libz m4 make man mktemp modutils ncurses ncurses-devel
net-tools netcfg pam pam-devel patch perl ps rcs readline rpm sendmail
sh-utils shadow strace syslogd sysvinit texinfo textutils timezone unzip
util-linux vim

This is from zsh, picked at random for being near the end of the
alphabet.  It's surprising that they go to all that trouble to find out
what packages are build dependencies, but instead of using RPM's
BuildRequires mechanism they decided to reinvent the wheel with the
above two comments - which of course are not checked automatically when
building packages with rpm.

The lack of Requires lines is perhaps not so bad because many of these
can be auto-sniffed when the package is built.  Still, there are often
requirements missing in the binary packages.

Another oddity with SuSE is that they are still using rpm 3.0.6 even in
7.3 released only a few weeks ago.  Perhaps they have good reasons for
that, but I get the impression from this list that 3.0.x really ought to
die as soon as possible.

So follow SuSE's example for packaging the software - but do not follow
their example in ignoring some of RPM's capabilities and inventing your
own wacky system for them instead.  Mandrake seem to do a good job and
make some effort to get their dependencies correct, I haven't seen
Conectiva.  There is one company notable for its absence from Jeff
Johnson's list of role models...

- -- 
Ed Avis <epa98@doc.ic.ac.uk>
Finger for PGP key

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE8DQR6IMp73jhGogoRAr5pAJ9ZzLQfwoaJRTuRfG4Mfp9/E52H+QCdGhAH
5LO1LL6NIvPuZe5LxpTKcdQ=
=2Sfh
-----END PGP SIGNATURE-----





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index] []