Features

Primary Target Platforms

  • FreeBSD
  • NetBSD
  • OpenBSD
  • BSD/OS
  • Darwin
  • Secondary Target Platforms

  • Solaris
  • RedHat Linux
  • BeOs
  • Current Features

  • Full support for wildcards in both “src” as well as binary pkgs
  • Installed and binary pkgs contain the size of the pkg in bytes.
  • Pkgs can be deleted recursively, e.g. to nuke jpeg and everything that needs it (very handy)
  • A package database to findout which pkg a file belongs to Also, the size including all required pkgs is available.
  • Detection of out-of-date pkg_* tools if bsd.pkg.mk uses a feature that the installed pkg_* tools don’t provide.
  • make(1) enhancements: faster, more POSIX compliant, etc.
  • Automatic Patch update
  • Proposed Features

  • Support for output of multiple package formats, ie .rpm .deb, etc. With .ops (Open Package System) as the default using Tar/Bzip2 format.
  • m4 enhancements (we work with autoconf through a -g flag, etc)
  • make-maker (mirroring distfiles quickly, similar to fetch-list from FreeBSD/NetBSD); See http://www.openbsd.org/cgi-bin/man.cgi?query=mirroring-ports
  • Fake (tmpdir install, pkg create, pkg_add instead of traditional ‘raw’ install w/out a package)
  • sha1/md5/cksum instead of just cksum
  • ‘piecemeal’ packages, aka one egcs compile & fake install becomes egcs-java*tgz, egcs-fortran*tgz, egcs-c++*tgz; kde is another example
  • Flavors (multiple targets/pkg names per package for various compile time options, e.g. use a different UI, toolkit, etc).
  • Parallel bulk builds in chroot environment, see http://bento.FreeBSD.org/errorlogs

    Differences in the target Operating Systems:

            App         OpenBSD NetBSD FreeBSD  Darwin   BSDi
            OpenSSH      B       B      B 4.x   B        ?
                                        P 3.x
            OpenSSL      B       B      B       ?        ?
            perl         B       P      B       ?        ?
            X11R6        B       B      P       ?        ?
            freebsd_lib  P       P      X       ?        ?
            ...
    
            B = in base tree
            P = in ports/pkgsrc
            ? = not sure
            X = not applicable
    

    Integration roadmap:

  • Milestone #1: Import package tools, make, and an initial package. Verify that the imported package builds on at least one target OS.
  • Milestone #2: Port above to all target OSes.
  • Milestone #3: Add Fake, Flavours, and sub-packages from OpenBSD
  • Milestone #4: Add support for multiple package formats, ie. .deb .rpm .ops
  • Milestone #5: Using pkgtools/port2pkg, we can start migrating all FreeBSD ports.