Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 14 Mar 2016 23:00:53 +0100
From:      =?UTF-8?Q?Ren=c3=a9_Ladan?= <rene@freebsd.org>
To:        freebsd-pkgbase@freebsd.org
Subject:   Re: [CFT] packaging the base system with pkg(8)
Message-ID:  <56E73495.2020600@freebsd.org>
In-Reply-To: <20160302235429.GD75641@FreeBSD.org>
References:  <20160302235429.GD75641@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 03/ 3/16 12:54 AM, Glen Barber wrote:
> For those who have missed the initial email surrounding this topic, we
> are planning on packaging the base system with pkg(8) for 11.0-RELEASE.
> 
> https://lists.freebsd.org/pipermail/freebsd-pkgbase/2016-January/000000.html
> 
[...]

> 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
>
This also works nicely for my Raspberry Pi B (cross built on a amd64
box) with "ARCH=arm TARGET_ARCH=armv6 TARGET_CPUTYPE=armv6" and
KERNCONF=RPI-B added to the commands.

> 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.
> 
For RPI-B the total number was around 410, after some pruning my RPI-B
is now down to 95 base packages.

[...]

> To initially bootstrap the 'FreeBSD-*' packages, they must be forcibly
> installed.  Package registration is not performed during 'installworld'
> or 'installkernel', and there are no immediate plans to do this.
> 
> This can be done by running:
> 
>  # pkg update -r FreeBSD-base
>  # pkg install -g 'FreeBSD-*'
> 
[...]

That worked, as does upgrading packages. Upgrading is already much
easier with just:
# pkg upgrade
# reboot
and not having to eject the SD card. This works fine with both the full
and a reduced package set.

While pruning packages, I figured that ports-mgmt/pkg depends on
FreeBSD-jail. After accidentally deleting that package ("jails on an
RPI?"), pkg would no longer run but pkg-static luckily did so I quickly
re-added the FreeBSD-jail package. This leads to the more general
question if/how packages from the Ports Tree should indicate a
dependency on base packages. Something like
"LIB_DEPENDS=libjail.so:base/libjail" ? (and yes, currently all base
packages have "base" as a single common origin...)

Some other ideas:
- split off OpenSSL into its own package to ease security updates or an
import of LibreSSL
- split the kernel package into a kernel and a whole lot of module
packages (and perhaps minimize the kernel configuration itself).

Keep up the good work!

Regards,
René



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?56E73495.2020600>