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 At this time, I believe the major blockers and critical issues have been resolved where it is time for an official call-for-testing. Please note, as with any development branch, this is not yet intended for production environments. Testing on virtual machines or dedicated testing machines is strongly encouraged. Also note (as repeated below), running 'pkg delete -a' will implicitly remove base system packages after they are installed. To obtain the sources for testing, please use the projects/release-pkg branch: # svn co svn://svn.freebsd.org/base/projects/release-pkg /usr/src The projects/release-pkg branch is (at this time) in sync with head revision r296327. 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 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. The package repository will be created within /usr/obj/usr/src/repo by default. To enable the repository, create /usr/local/etc/pkg/repos/base.conf with the following contents: # FreeBSD base system repository FreeBSD-base: { url: "file:///usr/obj/usr/src/repo/${ABI}/latest", mirror_type: "none", enabled: yes } 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-*' Please note the following: 1) The pkg(8) binary is required for this to work, however an additional patch against the ports-mgmt/pkg port is required to properly track base system shared libraries. The patch against the ports-mgmt/pkg port is attached. In my testing, excluding this patch has not caused anything horrible to happen, however applying both patches is suggested at this point. The main noticeable effect of excluding the patch is system binary packages and their dependent library packages are not directly linked, which makes it possible to delete a library package that is required by a runtime binary. 2) At present, running 'pkg delete -a' will implicitly remove the 'FreeBSD-*' packages, leaving the system in an unusable state. There are valid use cases for removing all packages, such as test chroot(8) or jail(8) environments, so a solution to avoid accidental foot shooting is still being investigated. 3) With the attached patch, /lib32 and /usr/lib32 shared libraries are not tracked. Since they are optional and do not affect the default running userland, this should not prevent testing, however it is worth noting. 4) For kernel packages, the first listed kernel in KERNCONF is installed as /boot/kernel, and subsequent kernels in KERNCONF are installed as /boot/kernel.${KERNEL}. Building GENERIC is not required, as each kernel package is named with the kernel name included. For example, if 'KERNCONF=MYLOCALKERNEL' is set in make.conf(5), the resulting kernel package will be 'FreeBSD-kernel-mylocalkernel-release', and the debug symbols as 'FreeBSD-kernel-mylocalkernel-debug'. 5) There are still a few outstanding issues with configuration file merging, which is still being investigated. Please follow up on the freebsd-pkgbase_at_ mailing list with problems (and successes). Many suggestions were made, such as further granularity between runtime binaries and daemons (rwho(1) and rwhod(8) is one example I recall off-hand), that have not been implemented yet (and also not forgotten). Thank you in advance to everyone that can test this, so we can get this completed in time for 11.0-RELEASE. Glen
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:03 UTC