#!/bin/sh # vim: set sw=4 ts=4 sts=4 et : set -e . ./config # Ensure we have a Portage repo if [ ! -f /var/db/repos/gentoo/metadata/timestamp ]; then emerge-webrsync fi chown portage: "$(portageq envvar DISTDIR)" ARCH=$(PORTAGE_CONFIGROOT=/usr/${target} portageq envvar ARCH) PKGDIR=$(portageq envvar PKGDIR) FEATURES="${FEATURES} binpkg-multi-instance" # For some reason, libcap installs its pkg-config files in the wrong # place. More strangely, even though `PKG_CONFIG_PATH` contains that # directory, `pkg-config` does not find the `.pc` files for libcap. # We work around this by merging /usr/lib64/pkgconfig and # /usr/lib/pkgconfig. FEATURES="${FEATURES}" \ PKGDIR="${PKGDIR}" \ ${target}-emerge -kb1vnj sys-libs/libcap if [ -d /usr/${target}/usr/lib/pkgconfig ] \ && [ ! -d /usr/${target}/usr/lib64/pkgconfig ]; then mv /usr/${target}/usr/lib/pkgconfig /usr/${target}/usr/lib64 ln -snf ../lib64/pkgconfig /usr/${target}/usr/lib/pkgconfig fi if [ ! -f portage/make.conf/10-crossdev.conf ]; then sed -r \ -e 's: ?-pam::' \ -e '/PKGDIR=/d' \ /usr/${target}/etc/portage/make.conf \ > portage/config/target/etc/portage/make.conf/10-crossdev.conf fi ln -snf /var/db/repos/gentoo/profiles/default/linux/${ARCH}/17.0 \ /usr/${target}/etc/portage/make.profile FEATURES="${FEATURES}" \ PKGDIR="${PKGDIR}" \ ${target}-emerge -bk1nvj sys-libs/glibc FEATURES="${FEATURES}" \ PKGDIR=$(portageq envvar PKGDIR) \ USE=pam \ ${target}-emerge -bknvj sys-apps/util-linux # Migrate to the merged-usr layout mkdir -p /usr/${target}/bin emerge -bknv --quiet-build=y merge-usr merge-usr --root=/usr/${target} # Set the Portage profile ln -snf \ /var/db/repos/gentoo/profiles/${profile} \ portage/config/target/etc/portage/make.profile ln -snf \ $(realpath /etc/portage/make.profile) \ portage/config/host/etc/portage/make.profile