Packaging system suggestion (pkgsrc.org propaganda)

Michal Pasternak michal at pasternak.w.lub.pl
Sat Jan 3 17:30:22 PST 2004


I have decided to write this e-mail after a short discussion with Eirik on
irc.freenode.net . I have no idea if this topic was discussed or not, excuse
me. I have not used DragonflyBSD yet. I am not subscribed to any of your
e-mail lists, please CC: me. I don't plan to do both, I am already
overworked and burried in e-mail -- sorry.

The reason for writing this e-mail: I think you should consider using Pkgsrc
build system ( http://www.pkgsrc.org ) as a basic packaging system for
DFBSD.

Why?

Pkgsrc is used as a primary 3rd-party software building/packaging solution
for NetBSD, but it is highly portable. I currently use pkgsrc on FreeBSD and
some RedHat box. Pkgsrc webpage claims, that they support much more: among
others, Solaris, Darwin, IRIX, may flavours of Linux. Of course, not all
packages build out of the box -- some need trival patches, some need more
work -- but, in general, I was able to build KDE 3.x, Mozilla, Xfce4,
apache, postgresql, mysql, all their dependencies and some extra utilities
without patching or with some trival, minimal changes.

So, making it support DFBSD should be easy -- just because it includes
quality infrastructure for adding more platforms / operating systems.

Also, that's my personal feeling, but you can easily check it: pkgsrc.org
Makefiles seem to be much more cleaner, than FreeBSD Ports Makefiles are.
Pkgsrc doesn't blindly belive, that file called "libfoo.so.0" is the
required dependency, it checks the packaging system for a specific package,
it can distinguish between "foo-0" and "foo-0nb1" (revision 1). Pkgsrc
installations don't write or install anything outside /usr/pkg on non-NetBSD
systems. The build system *is* clean.

But, as you claim on http://www.dragonflybsd.org/Goals/packages.cgi , your
build system has to be better, than FreeBSD Ports. You want to support
installation of the same package in different versions. You want to make the
package "see" only the needed libraries, when it builds.

If I did understand the above page right, than I can make statement, that
pkgsrc already has those features.

Multiple version installation is called "pkgviews". I can't elaborate on
this, as I didn't have need to use it (yet). Documentation can be found at:
http://www.netbsd.org/Documentation/software/packages.html#using-pkgsrc

We also have a feature, that's called "buildlink". When the package is being
build, a .buildlink directory in its WRKDIR is created; needed, dependent
libraries and header files are symlinked there; build system is
automatically adjusted (CFLAGS, LDFLAGS) to use it. Of course, I have read
about VFS feature you want to introduce in DFBSD -- but I am also pretty
sure, that you could either go with current buildlink, as it is -- or create
DFBSD-only buildlink, which would utilize VFS features, available only on
your operating system.

Pkgsrc has many more interesting features. Not to mention userbase and
support, we have quite large work-in-progress repository
http://pkgsrc-wip.sf.net , which anyone can join and contribute to (I am one
of pkgsrc-wip developers). This speeds up the development process. Pkgsrc
can use different compilers (on SunOS it can use SunPro compiler; it can of
course use different GCC versions). The system is highly customizeable.
XFree86 4.3.0 packages from pkgsrc-wip repository already can be built on
Linux, NetBSD and FreeBSD (and propably some more operating systems).

Pkgsrc already contains thousands of packages, just waiting to be ported to
DragonflyBSD. If it is good for many other platforms and operating systems,
why should it be bad for DragonflyBSD?

Please give it a try. I am sure, that everyone will benefit if DFBSD decides
to use pkgsrc build system. When I heard about FBSD-DFBSD fork for the first
time, I knew, that mr. Dillon's ideas can bring much fresh air to BSD world
and it seems I was not wrong. Of course, your future packaging system,
utilizing DFBSD functionalities will propably be another killer feature in
BSD world -- but please have a look at pkgsrc.org . I am quite sure, that
all dfbsd-ports planned features could be incorporated into it (or they
already exist in pkgsrc), while the build system will stay compatible with
other platforms and operating environments. DragonflyBSD benefits? A mature,
portable build system with already proven functionality on many different
operating systems, which can be possibly fit to DFBSD-specific
functionalities. Pkgsrc benefits? More hands working on it, more packages
ported, more supported operating systems. Your own benefits? "FreeBSD
Ports"-like environment, which you can use on all *nix boxes you administer
(no more dpkg, no more rpms, an interface you already know -- and it is the
same on DFBSD, Linux and Solaris).

Feel free to send any questions or discussion directly to me. If I can't
answer it, then pkgsrc discussion list called tech-pkg at netbsd dot org
propably can.

Regards,
-- 
Michal Pasternak :: http://pasternak.w.lub.pl :: http://winsrc.sf.net
:: free, legal mp3 :: darmowe, legalne mp3 :: http://magnatune.com ::





More information about the Submit mailing list