From feca466627e1506ea243c3450a376972628cd66b Mon Sep 17 00:00:00 2001 From: "John P. Davis" Date: Wed, 15 Oct 2003 05:22:53 +0000 Subject: [PATCH] should be done with stage1 conversion git-svn-id: svn+ssh://svn.gentoo.org/var/svnroot/catalyst/trunk@9 d1e1f19c-881f-0410-ab34-b69fee027534 --- targets/stage1/build.sh | 17 ++++++++ targets/stage1/stage1.sh | 78 ++++++++++++++++++++++++++++------- targets/stage1/stage1strap.sh | 9 ++-- 3 files changed, 87 insertions(+), 17 deletions(-) create mode 100755 targets/stage1/build.sh diff --git a/targets/stage1/build.sh b/targets/stage1/build.sh new file mode 100755 index 00000000..0b3c5fe0 --- /dev/null +++ b/targets/stage1/build.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# Copyright 1999-2003 Gentoo Technologies, Inc. +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo/src/catalyst/targets/stage1/Attic/build.sh,v 1.3 2003/10/15 05:22:53 zhen Exp $ + +for x in `cat /usr/portage/profiles/${REL_TYPE}-${MAINARCH}-${REL_VERSION}/packages.build` +do + myp=$(grep -E "${x}(-[^[:space:]]*)?[[:space:]]*$" /usr/portage/profiles/${REL_TYPE}-i${MAINARCH}-${REL_VERSION}/packages | grep -v '^#' | sed -e 's:^\*::' | cat ) + if [ "$myp" = "" ] + then + #if not in the system profile, include it anyway + echo $x + else + echo $myp + fi +done + diff --git a/targets/stage1/stage1.sh b/targets/stage1/stage1.sh index 37581ba7..dea97d9e 100755 --- a/targets/stage1/stage1.sh +++ b/targets/stage1/stage1.sh @@ -1,17 +1,67 @@ #!/bin/bash -# Copyright 1999-2003 Gentoo Technologies, Inc. -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo/src/catalyst/targets/stage1/Attic/stage1.sh,v 1.2 2003/10/15 05:16:31 zhen Exp $ + +env-update +source /etc/profile +case $1 in + build) + # now, we fix the default make.profile symlink to be in line with the current + #profile being used. + cd /etc + rm -f make.profile + + ln -sf /usr/portage/profiles/${REL_TYPE}-${MAINARCH}-${MAINVERSION} make.profile + export ROOT=${2} + install -d $ROOT + for x in $(/tmp/build.sh ${MAINARCH}-${MAINVERSION}) + do + echo $x >> /tmp/build.log + USE="-* build" emerge --usepkg --buildpkg --noreplace $x || exit 1 + done + ;; -for x in `cat /usr/portage/profiles/${REL_TYPE}-${REL_VERSION}/packages.build` -do - myp=$(grep -E "${x}(-[^[:space:]]*)?[[:space:]]*$" /usr/portage/profiles/${REL_TYPE}-${REL_VERSION}/packages | grep -v '^#' | sed -e 's:^\*::' | cat ) - if [ "$myp" = "" ] - then - #if not in the system profile, include it anyway - echo $x - else - echo $myp - fi -done + clean) + export ROOT=${2} + keepers="sys-kernel/linux-headers sys-devel/binutils sys-devel/gcc sys-apps/baselayout sys-libs/glibc virtual/glibc virtual/kernel" + if [ ${REL_TYPE} = "hardened" ] + then + keepers="${keepers} sys-devel/hardened-gcc" + fi + # set everything to uid 999 (nouser) + cd ${ROOT} + install -d var/db/pkg2 + for x in $keepers + do + category=${x%%/*} + package=${x##*/} + [ "`ls var/db/pkg/${x}* 2>/dev/null`" = "" ] && continue + install -d var/db/pkg2/${category} + mv var/db/pkg/${category}/${package}* var/db/pkg2/${category} + done + rm -rf var/db/pkg + mv var/db/pkg2 var/db/pkg + # clean out man, info and doc files + rm -rf usr/share/{man,doc,info}/* + + # zap all .pyc and .pyo files + find -iname "*.py[co]" -exec rm -f {} \; + + # cleanup all .a files except libgcc.a, *_nonshared.a and /usr/lib/portage/bin/*.a + find -iname "*.a" | `find -iname "*.a" | grep -v 'libgcc.a' | grep -v 'nonshared.a' | grep -v '/usr/lib/portage/bin/' | grep -v 'libgcc_eh.a'` | xargs rm -f + + chroot ${ROOT} /bin/bash << EOF + #now, some finishing touches to initialize gcc-config.... + unset ROOT + if [ -e /usr/sbin/gcc-config ] + then + mythang=\$( cd /etc/env.d/gcc; ls ${CHOST}-* ) + gcc-config \${mythang}; env-update; source /etc/profile + fi + #fix up profile symlink in chroot + cd /etc + rm -f make.profile + ln -sf ../usr/portage/profiles/${REL_TYPE}-${MAINARCH}-${MAINVERSION} make.profile +EOF + ;; +esac + diff --git a/targets/stage1/stage1strap.sh b/targets/stage1/stage1strap.sh index faaa628d..53f97ded 100755 --- a/targets/stage1/stage1strap.sh +++ b/targets/stage1/stage1strap.sh @@ -1,18 +1,21 @@ # Copyright 1999-2003 Gentoo Technologies, Inc. # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo/src/catalyst/targets/stage1/Attic/stage1strap.sh,v 1.1 2003/10/15 05:12:06 zhen Exp $ +# $Header: /var/cvsroot/gentoo/src/catalyst/targets/stage1/Attic/stage1strap.sh,v 1.2 2003/10/15 05:22:53 zhen Exp $ cp ${SHAREDIR}/bin/stage1.sh ${CHROOTDIR}/tmp cp ${SHAREDIR}/bin/build.sh ${CHROOTDIR}/tmp +## We shouldn't need to export anything in catalyst, since the +## main program does that for us. + #CHOST is for the gcc-config initialization step -export MAINVERSION MAINARCH CHOST BUILDTYPE +#export MAINVERSION MAINARCH CHOST BUILDTYPE #get our make.conf instide our new tree #good idea because make.conf should be there. #also necessary because the "stage1" script runs gcc-config, which #uses portage, which requires /etc/make.conf to exist. makeconf ${CHROOTDIR}/tmp/stage1root -$CHROOT . /tmp/stage1 build /tmp/stage1root +$CHROOT . /tmp/stage1.sh build /tmp/stage1root [ $? -ne 0 ] && die "Stage 1 build failure" -- 2.26.2