aimee-os/prepare.sh

59 lines
1.7 KiB
Bash
Executable File

#!/bin/sh
# vim: set sw=4 ts=4 sts=4 et :
set -e
. "${CONFIGDIR:=${PWD}}"/config
unset MAKEFLAGS MAKEOVERRIDES MAKELEVEL
# 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
mkdir -p "${O}"/portage/etc/portage/make.conf
sed -r \
-e 's: ?-pam::' \
-e '/PKGDIR=/d' \
-e '/ACCEPT_KEYWORDS/d' \
/usr/${target}/etc/portage/make.conf \
> "${O}"/portage/etc/portage/make.conf/10-crossdev.conf
fi
FEATURES="${FEATURES} -preserve-libs -protect-owned" \
PKGDIR="${PKGDIR}" \
${target}-emerge -bk1nvj sys-libs/glibc
FEATURES="${FEATURES}" \
PKGDIR=$(portageq envvar PKGDIR) \
USE='pam build' \
${target}-emerge -bknvj sys-apps/util-linux
# Set the Portage profile
mkdir -p "${O}"/portage/etc/portage
ln -snf \
/var/db/repos/gentoo/profiles/${profile} \
${O}/portage/etc/portage/make.profile