[CFT] packaging the base system with pkg(8)

Glen Barber gjb at FreeBSD.org
Fri Mar 4 01:09:52 UTC 2016


On Thu, Mar 03, 2016 at 07:58:06PM -0500, Garrett Wollman wrote:
> <<On Wed, 2 Mar 2016 23:54:29 +0000, Glen Barber <gjb at FreeBSD.org> said:
> 
> > After checking out the project branch, build the userland and kernel as
> > normal with the 'buildworld' and 'buildkernel' targets.  Afterward,
> > packages can be created with the 'packages' target.
> 
> >  # cd /usr/src
> >  # make [make flags] buildworld
> >  # make [make flags] buildkernel
> >  # make packages
> 
> Since I don't have any 11-current machines yet, I tried cross-building
> this on my 10.2 build server, and it seems to work just fine, although
> pkg(8) whines copiously about "Major OS version upgrade detected.
> Running "pkg-static install -f pkg" recommended".

This is expected.

> I note also that
> "make packages" doesn't work with -jN, but "make release" never worked
> in parallel either, and I suspect they break in the same place for the
> same underlying reason.

Until the 'install' targets are '-j' safe, 'make packages' will not be.

> I did this build as myself with -DNO_ROOT and
> everything went fine; a spot check of the packages shows the correct
> file ownership.
> 
> > At present, the base system consists of 755 packages with the default
> > build (empty src.conf(5) and make.conf(5)) for amd64.  The number of
> > packages depends on several factors, but for most cases a runtime binary
> > is split into several components.  In particular, most shared libraries
> > are individually packaged, in addition to debugging symbols, profiling
> > libraries, and 32-bit packaged separately.
> 
> I was prepared to freak out at this, but with half the packages
> consisting of debugging symbols for binaries that ship stripped in
> 10.x anyway (so most users would never need nor install those
> packages), the number isn't so unreasonable.  I get 531 non-"-debug-"
> packages here, which is still more than I'd like but tolerable given
> how many of them will never be installed.  (Could some of those
> library packages be consolidated?

This was intentional.  If, for example, there is a libxo bug that
requires an EN or SA, we do not want the binary upgrade to exceed more
than required.

> I'm not convinced that it makes
> much sense to have all the different -lib32-* variants given the
> normal use case is runtime-only.

For those who have no need for lib32 stuff, we do not want to enforce
its existence.

> And I don't see the profit in having
> separate libusb, libusbhid, libutil, libvmmapi, libwrap, libxo, liby,
> libypclnt, libz, etc. packages, either.)
> 

The underlying reason for this is noted above.

> Also, for the "FreeBSD-kernel" package, why is the kernel
> configuration name downcased, and why is the opposite of "-debug-"
> "-release-" as opposed to "" like all the other packages.
> 

It's how the awk script generates the resulting plist and ucl file,
which I forgot to fix.

> Maybe all of the CDDL-licensed stuff should be in a (meta)package of
> its own?
> 

Yes.  Good catch.

Glen

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-pkgbase/attachments/20160304/b6f03bbb/attachment.sig>


More information about the freebsd-pkgbase mailing list