NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: NetBSD vs FreeBSD

Alex Goncharov <> writes:
> I.e. if you use a "source" install, not installing pre-built packages.
> Do you remember any specifics about the ports pains you had, absent from 
> pkgsrc?

my main gripe, as a user, was the absence of audit-packages, and the
need to specify either the precise version number of a package, or
remember to wildcard things, when using the pkg_install tools, with
possibly interesting effects if dealing with something like libtool-\*
and libtool-base-\*

pkgsrc is quite a different beast these days.  my 2002 talk at
eurobsdcon outlined some of the differences between ports and pkgsrc,
and there were 50+ slides in that section - since then, pkgsrc has
diverged even more.

the main differences i'd point out nowadays are the ...ummm
portability of pkgsrc, the dewey comparison of version numbers making
it possible to do audit-packages and the like, and pkgsrc's buildlink
infrastructure, which has two advantages:

1.  it allows pkgsrc packages to be built with exactly the versions of
software that are wanted, and not what happens to be already installed
in /usr/local - to illustrate, imagine that ncurses is installed, and
another package's configure script checks for the presence of ncurses
(bad example, since i think freebsd has ncurses in base, but ykwim)

2. isolates dependencies so that dangling or hidden dependencies just
do not happen.

the net effect of this is to simplfy pkgsrc entry makefiles - take a look
at the bottom of pkgsrc/sysutils/libvirt/Makefile:

        .include "../../lang/python/"
        .include "../../lang/python/"

        .include "../../devel/gettext-lib/"
        .include "../../devel/readline/"
        .include "../../security/gnutls/"
        .include "../../security/cyrus-sasl/"
        .include "../../textproc/libxml2/"
        .include "../../textproc/py-xml/"
        .include "../../www/curl/"

        .include "../../mk/"
        .include "../../mk/"

for more on buildlink, see

in addition, from a user's pov, pkgsrc's config file handling is done
in a smart way so that any changes to standard configs are preserved,
rc.d scripts can optionally be installed to /etc so that they work out
of the box, and much, much more.


Home | Main Index | Thread Index | Old Index