should be done with stage1 conversion
authorJohn P. Davis <zhen@gentoo.org>
Wed, 15 Oct 2003 05:22:53 +0000 (05:22 +0000)
committerJohn P. Davis <zhen@gentoo.org>
Wed, 15 Oct 2003 05:22:53 +0000 (05:22 +0000)
git-svn-id: svn+ssh://svn.gentoo.org/var/svnroot/catalyst/trunk@9 d1e1f19c-881f-0410-ab34-b69fee027534

targets/stage1/build.sh [new file with mode: 0755]
targets/stage1/stage1.sh
targets/stage1/stage1strap.sh

diff --git a/targets/stage1/build.sh b/targets/stage1/build.sh
new file mode 100755 (executable)
index 0000000..0b3c5fe
--- /dev/null
@@ -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
+
index 37581ba79589a30e24cfc0a6e022d22cb731c117..dea97d9ef2e7f656449831c88434f4e782f6b68d 100755 (executable)
@@ -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
+       
index faaa628d700fd58ccee51cbc0adb40d826f9b105..53f97ded62ae907d6fb81e0ccc1da292a7f06d7e 100755 (executable)
@@ -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"