# HG changeset patch # User Rob Landley # Date 1311476304 18000 # Node ID aabc07905de3860dba96a29f9d6654bcac42ab84 # Parent 2605803856551454c48af0f00a00256c731698f3 Now that the control-images have their own repository, remove them from this one. diff -r 260580385655 -r aabc07905de3 download.sh --- a/download.sh Sat Jul 23 21:55:29 2011 -0500 +++ b/download.sh Sat Jul 23 21:58:24 2011 -0500 @@ -23,7 +23,7 @@ URL=http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.0.tar.bz2 \ SHA1=45b64bffc860f70ab7956da4493c488010714650 \ -#UNSTABLE=http://kernel.org/pub/linux/kernel/v3.0/testing/linux-3.0-rc1.tar.bz2 \ +UNSTABLE=http://kernel.org/pub/linux/kernel/v3.0/testing/linux-3.0-rc1.tar.bz2 \ maybe_fork "download || dienow" URL=http://uclibc.org/downloads/uClibc-0.9.31.1.tar.bz2 \ diff -r 260580385655 -r aabc07905de3 more/bisectinate.sh --- a/more/bisectinate.sh Sat Jul 23 21:55:29 2011 -0500 +++ b/more/bisectinate.sh Sat Jul 23 21:58:24 2011 -0500 @@ -9,10 +9,9 @@ if [ $# -lt 4 ] then - echo "usage: [LONG=1] bisectinate ARCH PACKAGE REPO[@BAD] GOOD [TEST...]" >&2 + echo "usage: bisectinate ARCH PACKAGE REPO[@BAD] GOOD [TEST...]" >&2 echo >&2 echo "Bisect PACKAGE for ARCH, from START to BAD within REPO" >&2 - echo "If LONG is set, success means building dropbear natively." >&2 exit 1 fi @@ -37,19 +36,7 @@ exit 1 fi -if [ -z "$TEST" ] -then - if [ -z "$LONG" ] - then - TEST=true - else - # With $LONG, success means natively building dropbear. - TEST='rm -rf "$BUILD"/system-image-"$ARCH"/upload/dropbearmulti && - more/native-build-from-build.sh "$ARCH" \ - build/control-images/static-tools.hdc - test -e "$BUILD"/system-image-"$ARCH"/upload/dropbearmulti' - fi -fi +[ -z "$TEST" ] && TEST=true # For kernel and busybox bisects, only redo part of the build @@ -64,11 +51,6 @@ ZAPJUST= fi -# If we need to build dropbear, make sure the control images exist. - -[ ! -z "$LONG" ] && [ ! -e build/control-images/static-tools.hdc ] && - more/build-control-images.sh - # Initialize bisection repository rm -rf "$BUILD/packages/alt-$PKG" "$SRCDIR/alt-$PKG-0.tar.bz2" && diff -r 260580385655 -r aabc07905de3 more/build-control-images.sh --- a/more/build-control-images.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -#!/bin/bash - -# Build all control images (for native-build.sh) in build/control-images. - -. sources/utility_functions.sh || exit 1 - -blank_tempdir build/control-images - -# Iterate through sources/control-images and run each script, writing output -# to build/control-images/$SCRIPTNAME.hdc - -for i in sources/control-images/{*.sh,*/make-control-image.sh} -do - $i | maybe_quiet - # Forking doesn't work yet due to extract collisions with the same package - #maybe_fork "$i | maybe_quiet" -done diff -r 260580385655 -r aabc07905de3 more/buildall-native.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/more/buildall-native.sh Sat Jul 23 21:58:24 2011 -0500 @@ -0,0 +1,29 @@ +#!/bin/bash + +# Natively build for every target architecture, saving log files to build/log. +# If $FORK is set, build them in parallel. + +. sources/utility_functions.sh || exit 1 + +if [ ! -f "$1" ] +then + echo "Can't find control image at \"$1\"" >&2 + exit 1 +fi + +trap "killtree $$" EXIT + +# Build the hdb images sequentially without timeout.sh, to avoid potential +# I/O storm triggering timeouts + +FORK= more/for-each-target.sh \ + '. sources/toys/make-hdb.sh; HDBMEGS=2048; HDB=build/system-image-$TARGET/hdb.img; echo "$HDB"; rm -f "$HDB"; make_hdb' + +# Build static-tools (dropbear and strace) for each target + +mkdir -p build/native-static || dienow +more/for-each-target.sh \ + 'ln -sf ../native-static build/system-image-$TARGET/upload' + +more/for-each-target.sh \ + 'more/timeout.sh 60 "HDB=hdb.img more/native-build-from-build.sh $TARGET "'"$1"'" | tee build/logs/native-$TARGET.txt"' diff -r 260580385655 -r aabc07905de3 more/buildall.sh --- a/more/buildall.sh Sat Jul 23 21:55:29 2011 -0500 +++ b/more/buildall.sh Sat Jul 23 21:58:24 2011 -0500 @@ -18,53 +18,28 @@ # If this fails, don't bother trying to build the other targets. -if [ -z "$BUILD_NATIVE_ONLY" ] -then - [ -z "$NO_CLEAN" ] && blank_tempdir build - - mkdir -p build/logs && - (EXTRACT_ALL=1 ./download.sh 2>&1 && - ./host-tools.sh 2>&1 && - ./simple-cross-compiler.sh 2>&1 "$CROSS_COMPILER_HOST" || - dienow) | tee build/logs/build-host-cc.txt | maybe_quiet - - cp packages/MANIFEST build || dienow - - # Build all non-hw targets, possibly in parallel - - more/for-each-target.sh \ - './build.sh $TARGET 2>&1 | tee build/logs/build-${TARGET}.txt' - - more/build-control-images.sh +[ -z "$NO_CLEAN" ] && blank_tempdir build - # Run smoketest.sh for each non-hw target. - - more/for-each-target.sh \ - 'more/smoketest.sh $TARGET 2>&1 | tee build/logs/smoketest-$TARGET.txt' - -fi +mkdir -p build/logs && +(EXTRACT_ALL=1 ./download.sh 2>&1 && + ./host-tools.sh 2>&1 && + ./simple-cross-compiler.sh 2>&1 "$CROSS_COMPILER_HOST" || + dienow) | tee build/logs/build-host-cc.txt | maybe_quiet -# Build the hdb images sequentially without timeout.sh, to avoid potential -# I/O storm triggering timeouts - -FORK= more/for-each-target.sh \ - '. sources/toys/make-hdb.sh; HDBMEGS=2048; HDB=build/system-image-$TARGET/hdb.img; echo "$HDB"; rm -f "$HDB"; make_hdb' +cp packages/MANIFEST build || dienow -# Build static-tools (dropbear and strace) for each target - -mkdir -p build/native-static || dienow -more/for-each-target.sh \ - 'ln -sf ../native-static build/system-image-$TARGET/upload' +# Build all non-hw targets, possibly in parallel more/for-each-target.sh \ - 'more/timeout.sh 60 "HDB=hdb.img more/native-build-from-build.sh $TARGET build/control-images/static-tools.hdc | tee build/logs/native-$TARGET.txt"' + './build.sh $TARGET 2>&1 | tee build/logs/build-${TARGET}.txt' -# If using a test version of busybox, run busybox test suite. +# Run smoketest.sh for each non-hw target. -is_in_list busybox "$USE_UNSTABLE" && - more/for-each-target.sh \ - 'more/timeout.sh 60 "HDB=hdb.img more/native-build-from-build.sh $TARGET build/control-images/busybox-test.hdc" | tee build/logs/busybox-test-$TARGET.txt' +more/for-each-target.sh \ + 'more/smoketest.sh $TARGET 2>&1 | tee build/logs/smoketest-$TARGET.txt' -# Create a file containing simple pass/fail results for all architectures. +# If we have a control image, build natively + +[ ! -z "$1" ] && more/buildall-native.sh "$1" more/smoketest-report.sh | tee build/logs/status.txt diff -r 260580385655 -r aabc07905de3 more/chroot-splice.sh --- a/more/chroot-splice.sh Sat Jul 23 21:55:29 2011 -0500 +++ b/more/chroot-splice.sh Sat Jul 23 21:58:24 2011 -0500 @@ -11,7 +11,7 @@ # Make sure prerequisites exist -for i in "build/root-filesystem-$1" "build/control-images/$2" +for i in "build/root-filesystem-$1" "$2" do if [ ! -d "$i" ] then @@ -31,7 +31,7 @@ # Copy root filesystem and splice in control image cp -la "build/root-filesystem-$1" "build/chroot-$1-$2" && -cp -la "build/control-images/$2/." "build/chroot-$1-$2/mnt/." || +cp -la "$2/." "build/chroot-$1-$2/mnt/." || exit 1 # Tar it up diff -r 260580385655 -r aabc07905de3 sources/README --- a/sources/README Sat Jul 23 21:55:29 2011 -0500 +++ b/sources/README Sat Jul 23 21:58:24 2011 -0500 @@ -50,7 +50,3 @@ root-filesystem: Files to be copied verbatim into the target filesystem. Used by simple-root-filesystem.sh. - - control-images: Scripts to generate control images, used to run automated - native builds under target system images. Used by - more/build-control-images.sh. diff -r 260580385655 -r aabc07905de3 sources/control-images/bootstrap-skeleton/README --- a/sources/control-images/bootstrap-skeleton/README Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,68 +0,0 @@ -Common infrastructure for natively building packages on target. - -This contains a top level file run on the host to create a control image: - - control-image-wrapper.sh - script run on host to create a control image. - -And several files in the "mnt" subdirectory which are copied to the target: - - init - First script run in a control image. Copies root filesystem into - /home/chroot to get a writeable filesystem build can install more - packages into, and --bind mounts other directories in as appropriate - so the result actually works. Chroots into the new filesystem - and runs /mnt/run-build-stages.sh. When chroot exits, cleans up - bind mounts, tars up the result, and uploads it to the host via ftp. - - functions.sh - reusable functions like set_titlebar and dotprogress. - - run-build-stages.sh - Loop through /mnt/package-list calling - /mnt/build-one-package.sh on each entry, in order. Stop at the first - failed package. - - This script also maintains a manifest file listing installed packages, - skipping already installed packages when re-run unless $FORCE is set. - - If $FILTER is set, skips listed packages (name|name|name). Packages - can be annotated with categories (in #comments at the end of each - line) which $FILTER can also skip. - - build-one-package.sh - Build a single package listed on the command line. - - If /mnt/build/$NAME.nosrc exists, this runs it. Otherwise, copy a - symlink tree from /mnt/packages/$NAME to /home/$NAME (via "cp -s", - first deleting any old /home/$NAME if it exists), then cd to - the new directory and run /mnt/build/$NAME.sh. On success, delete - /home/$NAME on the way out. - -To use this infrastructure, create a new project subdirectory with -"make-control-image.sh", "download.sh", "mnt/package-list", and -"mnt/build/*", I.E.: - -1) Create a new sources/control-images/MYPROJECT subdirectory. - -2) Symlink the control image wrapper to make-control-image.sh in your new - directory, ala: - - ln -s ../bootstrap-skeleton/control-image-wrapper.sh make-control-image.sh - -3) Create a download.sh script to fetch/extract/prepare your package source. - - The control image wrapper script calls this download.sh configured so that - using the "download" function to grab packages from $URL (with $SHA1, using - the normal cacheing infrastructure) will automatically extract each - package into the "packages" subdirectory of the new control image. The - tarball will wind up in a subdirectory under the top level "packages" - directory on the host. - - This script gets run at control image creation time, it is not copied to - the target. Remember to mark it executable. - -4) Create a "mnt" subdirectory under your new proect subdirectory, containing - additional files to be copied verbaim into the control image. You will need - at least: - - A) package-list - file listing packages to install, in order, one per line. - - B) build - directory containing $PACKAGE.sh and $PACKAGE.nosrc build scripts. - -See the gentoo-boostrap and lfs-bootstrap directories for examples. diff -r 260580385655 -r aabc07905de3 sources/control-images/bootstrap-skeleton/control-image-wrapper.sh --- a/sources/control-images/bootstrap-skeleton/control-image-wrapper.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -#!/bin/bash - -# Control image generator infrastructure. - -source sources/include.sh || exit 1 - -# Find path to our working directory. - -MYDIR="$(readlink -f "$(dirname "$(which "$0")")")" -IMAGENAME="${MYDIR/*\//}" - -# Use our own directories for downloaded source tarballs and patches. -# (We may have the same packages as the aboriginal build, but use different -# versions, and we don't want our cleanup_oldfiles to overlap.) - -PATCHDIR="$MYDIR/patches" -SRCDIR="$SRCDIR/control-images/$IMAGENAME" && mkdir -p "$SRCDIR" || dienow - -# Include package cache in the control image, so the target system image can -# build from this source. - -WORK="$BUILD/control-images/$IMAGENAME" && -blank_tempdir "$WORK" && -SRCTREE="$WORK/packages" && -mkdir "$SRCTREE" && - -# Copy common infrastructure to target - -cp "$MYDIR"/../bootstrap-skeleton/mnt/* "$WORK" || exit 1 -if [ -e "$MYDIR/mnt" ] -then - cp -a "$MYDIR/mnt/." "$WORK" || exit 1 -fi - -# Populate packages directory - -echo "=== $IMAGENAME: Download/extract source code" - -EXTRACT_ALL=1 - -source "$MYDIR"/download.sh || exit 1 - -cleanup_oldfiles - -# Create sqaushfs image - -mksquashfs "$WORK" "$WORK.hdc" -noappend -all-root || dienow diff -r 260580385655 -r aabc07905de3 sources/control-images/bootstrap-skeleton/mnt/build-one-package.sh --- a/sources/control-images/bootstrap-skeleton/mnt/build-one-package.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,64 +0,0 @@ -#!/bin/ash - -# Yes, ash. Because neither bash 2 nor hush support -o pipefail - -set -o pipefail - -source /mnt/functions.sh || exit 1 - -# build $1 - -set_titlebar "$1" - -# Three types of /mnt/build scripts: -# -# $1.nosrc - no source code in /mnt/build, perform no setup/cleanup. -# $1.sh - source is symlink tree to "/mnt/build/$1". This is faster and uses -# less disk space but confuses some packages. -# $1.nolink - source is conventional copy of /mnt/build/$1 - -if [ ! -e "/mnt/build/$1.nosrc" ] -then - [ -e "/mnt/build/$1.nolink" ] && LINKTYPE=dp || LINKTYPE=s - - # Snapshot source from /mnt/build/$1 to /home/$1 - - cd /home && - rm -rf "/home/$1" && - cp -${LINKTYPE}fR "/mnt/packages/$1" "$1" && - cd "$1" || exit 1 - - # Lobotomize config.guess so it won't complain about unknown target types. - # 99% of packages do not care, but autoconf throws a temper tantrum if - # the version of autoconf that created this back when the package shipped - # didn't know what a microblaze or hexagon was. Repeat after me: - # "Autoconf is useless" - - for guess in $(find . -name config.guess) - do - rm "$guess" && - echo -e "#!/bin/sh\ngcc -dumpmachine" > "$guess" || exit 1 - done - EXT=sh -else - EXT=nosrc -fi - -# Call package build script - -mkdir -p /home/log -time "/mnt/build/$1".* 2>&1 | tee "/home/log/$1.log" -if [ $? -ne 0 ] -then - echo "$1" died >&2 - exit 1 -fi - -# Delete copy of source if build succeeded - -if [ ! -z "$LINKTYPE" ] -then - cd /home && - rm -rf "$1" && - sync || exit 1 -fi diff -r 260580385655 -r aabc07905de3 sources/control-images/bootstrap-skeleton/mnt/functions.sh --- a/sources/control-images/bootstrap-skeleton/mnt/functions.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -#!/bin/echo This file is sourced not run - -upload_result() -{ - ftpput $FTP_SERVER -P $FTP_PORT "$1-$HOST" "$1" -} - -set_titlebar() -{ - echo -en "\033]2;($HOST) $1\007" - echo === "$1" -} - -dotprogress() -{ - while read i; do echo -n .; done; echo -} diff -r 260580385655 -r aabc07905de3 sources/control-images/bootstrap-skeleton/mnt/init --- a/sources/control-images/bootstrap-skeleton/mnt/init Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -#!/bin/bash - -# Start running here, and hand off to run-build-stages.sh in chroot. - -. /mnt/functions.sh - -[ -z "$NATIVE_BUILD" ] && NATIVE_BUILD=chroot - -# Is the root filesystem already writeable? - -if touch /.amiwrite 2>/dev/null && rm /.amiwrite 2>/dev/null -then - # build and install stuff on the writable filesystem - - /mnt/run-build-stages.sh -else - # Create a new writeable chroot, build and install stuff in there - - setup-chroot /home/"$NATIVE_BUILD" /mnt/run-build-stages.sh - - # Upload a tarball of the result to the host - - if [ $? -eq 0 ] - then - set_titlebar "upload tarball" - tar czvf "$NATIVE_BUILD".tar.gz "$NATIVE_BUILD" | dotprogress && - upload_result "$NATIVE_BUILD".tar.gz - fi -fi diff -r 260580385655 -r aabc07905de3 sources/control-images/bootstrap-skeleton/mnt/run-build-stages.sh --- a/sources/control-images/bootstrap-skeleton/mnt/run-build-stages.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -#!/bin/sh - -# Run each of the individual package build files, in order. - -[ -z "$MANIFEST" ] && MANIFEST=/usr/src/packages -touch "$MANIFEST" - -[ -z "$FILTER" ] || FILTER="/$FILTER/d" -for i in $(sed -r -e "$FILTER" -e "s@#.*@@" /mnt/package-list) -do - if [ -z "$FORCE" ] && grep -q "$i" "$MANIFEST" - then - echo "$i already installed" - continue - fi - /mnt/build-one-package.sh "$i" || exit 1 - - sed -i -e "/$i/d" "$MANIFEST" && - echo "$i" >> "$MANIFEST" || exit 1 -done diff -r 260580385655 -r aabc07905de3 sources/control-images/busybox-test.sh --- a/sources/control-images/busybox-test.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -#!/bin/bash - -# Run the busybox test suite. - -source sources/include.sh || exit 1 - -WORK="$BUILD/control-images/busybox-test" && blank_tempdir "$WORK" - -# Don't download busybox, it's got to already be there in standard sources. - -setupfor busybox -cd "$TOP" - -cat > "$WORK"/init << 'EOF' || dienow -#!/bin/bash - -echo === $HOST Run busybox test suite - -cp -sfR /mnt/busybox busybox && cd busybox && -make defconfig && -ln -s /bin/busybox busybox && -cd testsuite && -./runtest && -cd .. && -rm -rf busybox || exit 1 - -sync - -EOF - -chmod +x "$WORK"/init || dienow - -mksquashfs "$WORK" "$WORK.hdc" -noappend -all-root diff -r 260580385655 -r aabc07905de3 sources/control-images/gentoo-bootstrap/README --- a/sources/control-images/gentoo-bootstrap/README Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,16 +0,0 @@ -Extend minimal native build environment into a seed for Gentoo Catalyst. - -This doesn't quite create an official Gentoo Stage 1. We use busybox instead -of gnu tools, we're uClibc-based instead of glibc-based, and we use our -existing toolchain (with distcc acceleration) instead of asking portage -to build one. That said, this should be enough to run Catalyst and produce -official Stage 1, Stage 2, and Stage 3 images. - -GFS used: - - setup-base-packages.sh - strace, Python, ncurses, bash, tar, patch, findutils, file, pax-utils, - shadow - setup-portage.sh - /etc/passwd (root and portage), /etc/group (root and portage) - portage diff -r 260580385655 -r aabc07905de3 sources/control-images/gentoo-bootstrap/download.sh --- a/sources/control-images/gentoo-bootstrap/download.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -# Download all the source tarballs we haven't got up-to-date copies of. - -URL=http://zlib.net/zlib-1.2.5.tar.bz2 \ -SHA1=543fa9abff0442edca308772d6cef85557677e02 \ -maybe_fork "download || dienow" - -URL=http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.7.tar.gz \ -SHA1=8233ee56ed84ae05421e4e6d6db6c1fe72ee6797 \ -maybe_fork "download || dienow" - -URL=http://python.org/ftp/python/2.6.5/Python-2.6.5.tar.bz2 \ -SHA1=24c94f5428a8c94c9d0b316e3019fee721fdb5d1 \ -RENAME='s/P/p/' \ -maybe_fork "download || dienow" - -URL=http://ftp.gnu.org/gnu/bash/bash-3.2.tar.gz \ -SHA1=fe6466c7ee98061e044dae0347ca5d1a8eab4a0d \ -maybe_fork "download || dienow" - -URL=http://www.samba.org/ftp/rsync/src/rsync-3.0.7.tar.gz \ -SHA1=63426a1bc71991d93159cd522521fbacdafb7a61 \ -maybe_fork "download || dienow" - -URL=http://ftp.gnu.org/gnu/patch/patch-2.5.9.tar.gz \ -SHA1=9a69f7191576549255f046487da420989d2834a6 \ -maybe_fork "download || dienow" - -URL=ftp://ftp.astron.com/pub/file/file-5.03.tar.gz \ -SHA1=f659a4e1fa96fbdc99c924ea8e2dc07319f046c1 \ -maybe_fork "download || dienow" - -URL=http://dev.gentoo.org/~zmedico/portage/archives/portage-2.1.8.tar.bz2 \ -SHA1=390c97f3783af2d9e52482747ead3681655ea9c3 \ -maybe_fork "download || dienow" diff -r 260580385655 -r aabc07905de3 sources/control-images/gentoo-bootstrap/make-control-image.sh --- a/sources/control-images/gentoo-bootstrap/make-control-image.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -../bootstrap-skeleton/control-image-wrapper.sh \ No newline at end of file diff -r 260580385655 -r aabc07905de3 sources/control-images/gentoo-bootstrap/mnt/build/bash.sh --- a/sources/control-images/gentoo-bootstrap/mnt/build/bash.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ -#!/bin/sh - -# Portage uses bash ~= regex matches, which were introduced in bash 3. - -./configure --enable-cond-regexp --disable-nls --prefix=/usr && -make -j $CPUS && -make install diff -r 260580385655 -r aabc07905de3 sources/control-images/gentoo-bootstrap/mnt/build/file.sh --- a/sources/control-images/gentoo-bootstrap/mnt/build/file.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -#!/bin/sh - -./configure --prefix=/usr && -make -j $CPUS && -make install diff -r 260580385655 -r aabc07905de3 sources/control-images/gentoo-bootstrap/mnt/build/ncurses.sh --- a/sources/control-images/gentoo-bootstrap/mnt/build/ncurses.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -#!/bin/sh - -./configure --without-cxx-binding --with-shared && -make -j $CPUS && -make install diff -r 260580385655 -r aabc07905de3 sources/control-images/gentoo-bootstrap/mnt/build/patch.sh --- a/sources/control-images/gentoo-bootstrap/mnt/build/patch.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ -#!/bin/sh - -# Need a patch with --dry-run to make portage happy - -./configure --prefix=/usr && -make -j $CPUS && -make install diff -r 260580385655 -r aabc07905de3 sources/control-images/gentoo-bootstrap/mnt/build/portage.sh --- a/sources/control-images/gentoo-bootstrap/mnt/build/portage.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -#!/bin/sh - -# Portage isn't really designed to be portable, so this script contains -# the "make install" stage that portage really should have within itself. - -# Install portage user/group, and libraries. - -echo portage:x:250:250:portage:/var/tmp/portage:/bin/false >> /etc/passwd && -echo portage::250:portage >> /etc/group && -mkdir -p /usr/lib/portage && -cp -a bin pym /usr/lib/portage/ && - -# Add portage python modules to the python search path. - -echo /usr/lib/portage/pym > /usr/lib/python2.6/site-packages/gentoo.pth || - exit 1 - -# Install portage binaries into bin and sbin - -for i in archive-conf dispatch-conf emaint emerge-webrsync env-update \ - etc-update fixpackages quickpkg regenworld -do - ln /usr/lib/portage/bin/$i /usr/sbin/$i || exit 1 -done - -for i in ebuild egencache emerge portageq repoman -do - ln /usr/lib/portage/bin/$i /usr/bin/$i || exit 1 -done - -# Install portage man pages - -cp cnf/make.globals /etc/ && -cp man/*.1 /usr/man/man1 && -cp man/*.5 /usr/man/man5 && - -mkdir -p /var/log /etc/portage/profile diff -r 260580385655 -r aabc07905de3 sources/control-images/gentoo-bootstrap/mnt/build/python.sh --- a/sources/control-images/gentoo-bootstrap/mnt/build/python.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -#!/bin/sh - -./configure --prefix=/usr && -make -j $CPUS && -make install diff -r 260580385655 -r aabc07905de3 sources/control-images/gentoo-bootstrap/mnt/build/rsync.sh --- a/sources/control-images/gentoo-bootstrap/mnt/build/rsync.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -#!/bin/sh - -./configure --prefix=/usr && -# Break link and touch file, otherwise ./configure tries to recreate it -# which requires perl. -cat proto.h-tstamp > proto.h.new && -mv -f proto.h.new proto.h-tstamp && -make -j $CPUS && -make install diff -r 260580385655 -r aabc07905de3 sources/control-images/gentoo-bootstrap/mnt/build/zlib.sh --- a/sources/control-images/gentoo-bootstrap/mnt/build/zlib.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -#!/bin/sh - -# 1.2.5 accidentally shipped the Makefile, then configure tries to -# modify it in place, which fails if the filesystem is read only. -# The fix is to remove it before configuring. - -rm Makefile && -./configure --prefix=/usr && -make -j $CPUS && -make install diff -r 260580385655 -r aabc07905de3 sources/control-images/gentoo-bootstrap/mnt/files/emerge_wrapper.sh --- a/sources/control-images/gentoo-bootstrap/mnt/files/emerge_wrapper.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -#!/bin/bash - -if [ "$1" != "--sync" ] -then - echo 'No portage tree, run "emerge --sync".' >&2 - exit 1 -fi - -if [ "$(id -u)" -ne 0 ] -then - echo "You are not root." >&2 - exit 1 -fi - -echo "Downloading portage tree..." -mkdir -p /var/log /usr/portage && -cd /usr && -#wget http://127.0.0.1/aboriginal/mirror/portage-latest.tar.bz2 -O - | \ -wget http://gentoo.osuosl.org/snapshots/portage-latest.tar.bz2 -O - | \ - tar xjC /usr -if [ ! -d portage ] -then - echo "Failed to download portage-latest tarball." >&2 - exit 1 -fi - -if ! emerge.real --sync -then - echo "Sync failed" - exit 1 -fi - -cd $(dirname $(readlink -f $(which emerge.real))) -mv emerge.real emerge - -echo "Portage tree initialized" diff -r 260580385655 -r aabc07905de3 sources/control-images/gentoo-bootstrap/mnt/files/etc/portage/profile/package.provided --- a/sources/control-images/gentoo-bootstrap/mnt/files/etc/portage/profile/package.provided Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -# Base aboriginal system - -sys-devel/gcc-4.2.1 -sys-devel/binutils-2.17 -sys-devel/make-3.81 -sys-libs/uclibc-0.9.31 -sys-kernel/linux-headers-2.6.35 -sys-apps/busybox-1.17.2 - -# Stuff busybox provides - -app-arch/gzip-1.0 -sys-apps/sed-1.0 -sys-apps/findutils-1.0 -sys-apps/diffutils-1.0 -app-editors/vim-1.0 -sys-apps/gawk-1.0 -app-arch/tar-1.0 -app-arch/bzip2-1.0 -app-arch/cpio-1.0 -sys-process/procps-1.0 -sys-apps/which-1.0 -sys-apps/net-tools-1.0 -sys-apps/sysvinit-1.0 -sys-apps/util-linux-1.0 -sys-apps/coreutils-1.0 -sys-apps/less-1.0 -sys-apps/grep-1.0 -sys-apps/shadow-1.0 -sys-apps/module-init-tools-1.0 -net-misc/wget-1.0 -app-arch/xz-utils-1.0 - -# Upgrades for seed - -sys-apps/portage-2.1.8.3 -dev-lang/python-2.6.5 -sys-libs/zlib-1.2.5 -sys-libs/ncurses-5.7 -app-shells/bash-3.2 -net-misc/rsync-3.0.7 -sys-devel/patch-2.5.9 -sys-apps/file-5.03 diff -r 260580385655 -r aabc07905de3 sources/control-images/gentoo-bootstrap/mnt/package-list --- a/sources/control-images/gentoo-bootstrap/mnt/package-list Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -zlib ncurses python bash rsync patch file portage diff -r 260580385655 -r aabc07905de3 sources/control-images/gentoo-bootstrap/patches/portage-2.1.8.3.patch --- a/sources/control-images/gentoo-bootstrap/patches/portage-2.1.8.3.patch Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1155 +0,0 @@ -Index: ChangeLog -=================================================================== ---- a/ChangeLog (revision 15731) -+++ b/ChangeLog (revision 15814) -@@ -1,3 +1,178 @@ -+2010-03-10 00:31 zmedico -+ -+ * [r15814] pym/_emerge/depgraph.py: Only try to merge portage asap -+ when the new version is different. (trunk r15813) -+ -+2010-03-09 21:27 zmedico -+ -+ * [r15812] pym/_emerge/Scheduler.py, pym/_emerge/depgraph.py: Only -+ create implicit libc deps when the version changes. (trunk -+ r15810) -+ -+2010-03-09 21:25 zmedico -+ -+ * [r15811] pym/_emerge/Scheduler.py, pym/_emerge/depgraph.py: -+ Disable implicit libc deps for ROOT != "/" since it's probably -+ not needed. (trunk r15809) -+ -+2010-03-09 20:21 zmedico -+ -+ * [r15808] pym/_emerge/depgraph.py: Merge libc asap for all roots -+ instead of just ROOT="/". (trunk r15804) -+ -+2010-03-09 20:21 zmedico -+ -+ * [r15807] pym/_emerge/sync/old_tree_timestamp.py: Add periods. -+ (trunk r15803) -+ -+2010-03-09 20:20 zmedico -+ -+ * [r15806] pym/_emerge/sync/old_tree_timestamp.py: Use ewarn output -+ style to add some color. (trunk r15802) -+ -+2010-03-09 20:20 zmedico -+ -+ * [r15805] man/portage.5: * Remove outdated profiles.desc sentence -+ about "1 profile allowed per stable/dev/KEYWORD". Thanks to -+ Torsten Veller for reporting. -+ -+ * Add 'exp' to valid profiles.desc status values, and update the -+ example. (trunk r15795) -+ -+2010-03-09 08:11 zmedico -+ -+ * [r15794] pym/portage/mail.py: Import 'email' and 'smtlib' locally -+ since python ebuilds remove the 'email' module when built with -+ USE=build. (trunk r15793) -+ -+2010-03-09 05:04 zmedico -+ -+ * [r15792] pym/_emerge/Scheduler.py: Add --debug output for the -+ scheduler digraph. (trunk r15790) -+ -+2010-03-09 05:04 zmedico -+ -+ * [r15791] pym/_emerge/Scheduler.py: If _implicit_libc_deps() finds -+ both a new-style virtual and an old-style PROVIDE virtual, use -+ the new-style virtual. (trunk r15789) -+ -+2010-03-09 04:31 zmedico -+ -+ * [r15788] pym/_emerge/actions.py: Add support for displaying -+ profile listed in make.profile/parent when make.profile is not a -+ symlink. The first parent with a path inside $PORTDIR is -+ displayed. (trunk r15787) -+ -+2010-03-09 03:59 zmedico -+ -+ * [r15786] pym/_emerge/Scheduler.py: Fix typo in parenthesis from -+ previous commit. (trunk r15784) -+ -+2010-03-09 03:58 zmedico -+ -+ * [r15785] pym/_emerge/Scheduler.py: Bug #303567 - Create implicit -+ dependencies on libc, in order to ensure that libc is installed -+ as early as possible. (trunk r15783) -+ -+2010-03-09 02:42 zmedico -+ -+ * [r15782] pym/portage/dbapi/vartree.py, -+ pym/portage/proxy/lazyimport.py: When portage upgrades or -+ downgrades itself, preload lazily referenced portage submodules -+ into memory so that imports won't fail later. (trunk r15778) -+ -+2010-03-09 02:42 zmedico -+ -+ * [r15781] man/emerge.1, pym/_emerge/help.py: Move --update from -+ the actions to the options section. (trunk r15777) -+ -+2010-03-09 02:42 zmedico -+ -+ * [r15780] man/emerge.1, pym/_emerge/help.py: Clean up/sync docs -+ for emerge --sync, and add a note about PORTAGE_SYNC_STALE. -+ (trunk r15776) -+ -+2010-03-09 02:42 zmedico -+ -+ * [r15779] man/emerge.1: Escape hyphens. (trunk r15775) -+ -+2010-03-08 09:40 zmedico -+ -+ * [r15772] pym/_emerge/sync/__init__.py: Add copyright header. -+ (trunk r15771) -+ -+2010-03-08 09:10 zmedico -+ -+ * [r15770] pym/_emerge/actions.py: Disable PORTAGE_SYNC_STALE -+ warnings when --usepkgonly is enabled. (trunk r15769) -+ -+2010-03-08 09:05 zmedico -+ -+ * [r15768] pym/portage/package/ebuild/config.py: Exclude -+ PORTAGE_SYNC_STALE from the ebuild environment. (trunk r15767) -+ -+2010-03-08 08:57 zmedico -+ -+ * [r15766] pym/_emerge/depgraph.py: Bug #307409 - Force --verbose -+ mode when displaying circular deps. (trunk r15765) -+ -+2010-03-08 08:47 zmedico -+ -+ * [r15764] pym/portage/mail.py: Bug #291331 - Force ascii encoding -+ in send_mail() in order to avoid UnicodeEncodeError from -+ smtplib.sendmail with python3. (trunk r15759) -+ -+2010-03-08 08:47 zmedico -+ -+ * [r15763] pym/_emerge/sync/old_tree_timestamp.py: Show --sync in -+ messages, to help avoid confusion. (trunk r15758) -+ -+2010-03-08 08:47 zmedico -+ -+ * [r15762] man/make.conf.5: Note that PORTAGE_SYNC_STALE=0 will -+ disable warnings. (trunk r15757) -+ -+2010-03-08 08:47 zmedico -+ -+ * [r15761] cnf/make.globals, man/make.conf.5, -+ pym/_emerge/actions.py, pym/_emerge/sync: Produce a warning -+ message if the timestamp of the portage tree is more than 30 days -+ old, and make it adjustable via the PORTAGE_SYNC_STALE variable. -+ Thanks to Ned Ludd for the most of this code. (trunk -+ r15756) -+ -+2010-03-08 08:46 zmedico -+ -+ * [r15760] pym/portage/package/ebuild/doebuild.py: Bug #308415 - -+ Fix broken uri parameter passed to fetch () for some cases when -+ using ebuild(1). (trunk r15755) -+ -+2010-03-04 11:23 zmedico -+ -+ * [r15749] pym/portage/package/ebuild/getmaskingstatus.py: Bug -+ #307723 - Define basestring for python3. (trunk r15745) -+ -+2010-03-04 11:23 zmedico -+ -+ * [r15748] pym/portage/package/ebuild/doebuild.py, -+ pym/portage/package/ebuild/fetch.py: Fix imports -+ doebuild_environment and prepare_build_dirs imports to import -+ from the real location instead of importing proxies. (trunk -+ r15744) -+ -+2010-03-04 11:22 zmedico -+ -+ * [r15747] pym/portage/package/ebuild/fetch.py: Bug #307707 - Fix -+ fetch() to use the correct spawn function when calling nofetch. -+ (trunk r15743) -+ -+2010-03-04 11:22 zmedico -+ -+ * [r15746] man/color.map.5, pym/_emerge/depgraph.py, -+ pym/portage/output.py: Add new colors for binary packages in the -+ merge list. Thanks to Sebastian Luther (few) for this patch. -+ (trunk r15739) -+ - 2010-03-03 06:27 zmedico - - * [r15731] NEWS: Add news about splitting the top-level -Index: cnf/make.globals -=================================================================== ---- a/cnf/make.globals (revision 15731) -+++ b/cnf/make.globals (revision 15814) -@@ -1,6 +1,6 @@ - # Copyright 1999-2006 Gentoo Foundation - # Distributed under the terms of the GNU General Public License v2 --# $Id: make.globals 15254 2010-01-29 18:49:10Z zmedico $ -+# $Id: make.globals 15761 2010-03-08 08:47:02Z zmedico $ - # System-wide defaults for the Portage system - - # ***************************** -@@ -80,6 +80,10 @@ - - PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" - -+# The number of days after the last `emerge --sync` that a warning -+# message should be produced. -+PORTAGE_SYNC_STALE="30" -+ - # Minimal CONFIG_PROTECT - CONFIG_PROTECT="/etc" - CONFIG_PROTECT_MASK="/etc/env.d" -Index: man/color.map.5 -=================================================================== ---- a/man/color.map.5 (revision 15731) -+++ b/man/color.map.5 (revision 15814) -@@ -50,6 +50,15 @@ - \fBPKG_MERGE_WORLD\fR = \fI"green"\fR - Defines color used for world packages planned to be merged. - .TP -+\fBPKG_BINARY_MERGE\fR = \fI"darkgreen"\fR -+Defines color used for packages planned to be merged using a binary package. -+.TP -+\fBPKG_BINARY_MERGE_SYSTEM\fR = \fI"darkgreen"\fR -+Defines color used for system packages planned to be merged using a binary package. -+.TP -+\fBPKG_BINARY_MERGE_WORLD\fR = \fI"green"\fR -+Defines color used for world packages planned to be merged using a binary package. -+.TP - \fBPKG_NOMERGE\fR = \fI"darkblue"\fR - Defines color used for packages not planned to be merged. - .TP -Index: man/emerge.1 -=================================================================== ---- a/man/emerge.1 (revision 15731) -+++ b/man/emerge.1 (revision 15814) -@@ -195,7 +195,7 @@ - name starts with "kde"; \fBemerge \-\-search "%gcc$"\fR searches for any - package that ends with "gcc"; \fBemerge \-\-search "office"\fR searches for - any package that contains the word "office". If you want to include the --category into the search string, prepend an @: \fBemerge --search -+category into the search string, prepend an @: \fBemerge \-\-search - "%@^dev-java.*jdk"\fR. If you want to search the package descriptions as well, - use the \fB\-\-searchdesc\fR action. - .TP -@@ -205,11 +205,26 @@ - matched as regular expressions. - .TP - .BR \-\-sync --Initiates a portage tree update with one of the rsync.gentoo.org --mirrors. \fBNote that any changes you have made to the portage --tree will be erased\fR. Except for special circumstances, --this uses \fBrsync\fR to do the update. See \fBmake.conf\fR(5)'s --description of PORTDIR_OVERLAY for a method to avoid deletions. -+This updates the portage tree that is located in the -+directory that the PORTDIR variable refers to (default -+location is /usr/portage). The SYNC variable specifies -+the remote URI from which files will be synchronized. -+The \fBPORTAGE_SYNC_STALE\fR variable configures -+warnings that are shown when emerge \-\-sync has not -+been executed recently. -+ -+\fBWARNING:\fR -+The emerge \-\-sync action will modify and/or delete -+files located inside the directory that the PORTDIR -+variable refers to (default location is /usr/portage). -+For more information, see the PORTDIR documentation in -+the make.conf(5) man page. -+ -+\fBNOTE:\fR -+The \fBemerge\-webrsync\fR program will download the entire -+portage tree as a tarball, which is much faster than emerge -+\-\-sync for first time syncs. -+ - .TP - .BR "\-\-unmerge " (\fB\-C\fR) - \fBWARNING: This action can remove important packages!\fR Removes -@@ -219,13 +234,6 @@ - \fIebuilds\fR. For a dependency aware version of \fB\-\-unmerge\fR, - use \fB\-\-depclean\fR or \fB\-\-prune\fR. - .TP --.BR "\-\-update " (\fB\-u\fR) --Updates packages to the best version available, which may not always be the --highest version number due to masking for testing and development. --Package atoms --specified on the command line are greedy, meaning that unspecific atoms may --match multiple installed versions of slotted packages. --.TP - .BR "\-\-version " (\fB\-V\fR) - Displays the version number of \fBemerge\fR. - .SH "OPTIONS" -@@ -536,6 +544,13 @@ - constraint is removed, hopefully leading to a more - readable dependency tree. - .TP -+.BR "\-\-update " (\fB\-u\fR) -+Updates packages to the best version available, which may -+not always be the highest version number due to masking -+for testing and development. Package atoms specified on -+the command line are greedy, meaning that unspecific -+atoms may match multiple versions of slotted packages. -+.TP - .BR "\-\-use\-ebuild\-visibility[=n]" - Use unbuilt ebuild metadata for visibility - checks on built packages. -Index: man/make.conf.5 -=================================================================== ---- a/man/make.conf.5 (revision 15731) -+++ b/man/make.conf.5 (revision 15814) -@@ -639,6 +639,12 @@ - .br - Defaults to 3. - .TP -+\fBPORTAGE_SYNC_STALE\fR = \fI[NUMBER]\fR -+Defines the number of days after the last `emerge \-\-sync` that a warning -+message should be produced. A value of 0 will disable warnings. -+.br -+Defaults to 30. -+.TP - \fBPORTAGE_TMPDIR\fR = \fI[path]\fR - Defines the location of the temporary build directories. - .br -Index: man/portage.5 -=================================================================== ---- a/man/portage.5 (revision 15731) -+++ b/man/portage.5 (revision 15814) -@@ -751,23 +751,22 @@ - .TP - .BR profiles.desc - List all the current stable and development profiles. If a profile is listed --here, then it will be checked by repoman. At the moment, only 1 profile is --allowed per stable/dev/KEYWORD; the last one found is the last one used. -- -+here, then it will be checked by repoman. - .I Format: - .nf - \- comments begin with # (no inline comments) - \- one profile list per line in format: arch dir status - \- arch must be listed in arch.list - \- dir is relative to profiles.desc --\- status must be 'stable' or 'dev' -+\- status must be 'stable', 'dev', or 'exp' - .fi - - .I Example: - .nf --alpha default-linux/alpha/2004.3 stable --m68k default-linux/m68k dev --x86 default-linux/x86/2004.3 stable -+alpha default/linux/alpha/10.0 stable -+m68k default/linux/m68k/10.0 dev -+x86 default/linux/x86/10.0 stable -+x86-linux prefix/linux/x86 exp - .fi - .TP - .BR repo_name -Index: pym/_emerge/actions.py -=================================================================== ---- a/pym/_emerge/actions.py (revision 15731) -+++ b/pym/_emerge/actions.py (revision 15814) -@@ -1,6 +1,6 @@ - # Copyright 1999-2009 Gentoo Foundation - # Distributed under the terms of the GNU General Public License v2 --# $Id: actions.py 15687 2010-03-02 21:07:53Z zmedico $ -+# $Id: actions.py 15788 2010-03-09 04:31:13Z zmedico $ - - from __future__ import print_function - -@@ -53,6 +53,7 @@ - from _emerge.search import search - from _emerge.SetArg import SetArg - from _emerge.show_invalid_depstring_notice import show_invalid_depstring_notice -+from _emerge.sync.old_tree_timestamp import old_tree_timestamp_warn - from _emerge.unmerge import unmerge - from _emerge.UnmergeDepPriority import UnmergeDepPriority - from _emerge.UseFlagDisplay import UseFlagDisplay -@@ -64,6 +65,9 @@ - def action_build(settings, trees, mtimedb, - myopts, myaction, myfiles, spinner): - -+ if '--usepkgonly' not in myopts: -+ old_tree_timestamp_warn(settings['PORTDIR'], settings) -+ - # validate the state of the resume data - # so that we can make assumptions later. - for k in ("resume", "resume_backup"): -@@ -2249,19 +2253,38 @@ - writemsg_level("".join("%s\n" % l for l in msg), - level=logging.ERROR, noiselevel=-1) - -+def relative_profile_path(portdir, abs_profile): -+ realpath = os.path.realpath(abs_profile) -+ basepath = os.path.realpath(os.path.join(portdir, "profiles")) -+ if realpath.startswith(basepath): -+ profilever = realpath[1 + len(basepath):] -+ else: -+ profilever = None -+ return profilever -+ - def getportageversion(portdir, target_root, profile, chost, vardb): -- profilever = "unavailable" -+ profilever = None - if profile: -- realpath = os.path.realpath(profile) -- basepath = os.path.realpath(os.path.join(portdir, "profiles")) -- if realpath.startswith(basepath): -- profilever = realpath[1 + len(basepath):] -- else: -+ profilever = relative_profile_path(portdir, profile) -+ if profilever is None: - try: -- profilever = "!" + os.readlink(profile) -- except (OSError): -+ for parent in portage.grabfile( -+ os.path.join(profile, 'parent')): -+ profilever = relative_profile_path(portdir, -+ os.path.join(profile, parent)) -+ if profilever is not None: -+ break -+ except portage.exception.PortageException: - pass -- del realpath, basepath -+ -+ if profilever is None: -+ try: -+ profilever = "!" + os.readlink(profile) -+ except (OSError): -+ pass -+ -+ if profilever is None: -+ profilever = "unavailable" - - libcver=[] - libclist = vardb.match("virtual/libc") -Index: pym/_emerge/depgraph.py -=================================================================== ---- a/pym/_emerge/depgraph.py (revision 15731) -+++ b/pym/_emerge/depgraph.py (revision 15814) -@@ -1,6 +1,6 @@ - # Copyright 1999-2009 Gentoo Foundation - # Distributed under the terms of the GNU General Public License v2 --# $Id: depgraph.py 15711 2010-03-02 21:14:20Z zmedico $ -+# $Id: depgraph.py 15814 2010-03-10 00:31:43Z zmedico $ - - from __future__ import print_function - -@@ -3341,7 +3341,9 @@ - if replacement_portage == running_portage: - replacement_portage = None - -- if replacement_portage is not None: -+ if replacement_portage is not None and \ -+ (running_portage is None or \ -+ (running_portage.cpv != replacement_portage.cpv)): - # update from running_portage to replacement_portage asap - asap_nodes.append(replacement_portage) - -@@ -3363,12 +3365,16 @@ - - # Merge libc asap, in order to account for implicit - # dependencies. See bug #303567. -- libc_pkg = self._dynamic_config.mydbapi[running_root].match_pkgs( -- portage.const.LIBC_PACKAGE_ATOM) -- if libc_pkg: -- libc_pkg = libc_pkg[0] -- if libc_pkg.operation == 'merge': -- asap_nodes.append(libc_pkg) -+ for root in (running_root,): -+ libc_pkg = self._dynamic_config.mydbapi[root].match_pkgs( -+ portage.const.LIBC_PACKAGE_ATOM) -+ if libc_pkg: -+ libc_pkg = libc_pkg[0] -+ if libc_pkg.operation == 'merge': -+ # Only add a dep when the version changes. -+ if not libc_pkg.root_config.trees[ -+ 'vartree'].dbapi.cpv_exists(libc_pkg.cpv): -+ asap_nodes.append(libc_pkg) - - def gather_deps(ignore_priority, mergeable_nodes, - selected_nodes, node): -@@ -3904,7 +3910,7 @@ - tempgraph.remove(node) - display_order.reverse() - self._frozen_config.myopts.pop("--quiet", None) -- self._frozen_config.myopts.pop("--verbose", None) -+ self._frozen_config.myopts["--verbose"] = True - self._frozen_config.myopts["--tree"] = True - portage.writemsg("\n\n", noiselevel=-1) - self.display(display_order) -@@ -4500,12 +4506,20 @@ - - def pkgprint(pkg_str): - if pkg_merge: -- if pkg_system: -- return colorize("PKG_MERGE_SYSTEM", pkg_str) -- elif pkg_world: -- return colorize("PKG_MERGE_WORLD", pkg_str) -+ if built: -+ if pkg_system: -+ return colorize("PKG_BINARY_MERGE_SYSTEM", pkg_str) -+ elif pkg_world: -+ return colorize("PKG_BINARY_MERGE_WORLD", pkg_str) -+ else: -+ return colorize("PKG_BINARY_MERGE", pkg_str) - else: -- return colorize("PKG_MERGE", pkg_str) -+ if pkg_system: -+ return colorize("PKG_MERGE_SYSTEM", pkg_str) -+ elif pkg_world: -+ return colorize("PKG_MERGE_WORLD", pkg_str) -+ else: -+ return colorize("PKG_MERGE", pkg_str) - elif pkg_status == "uninstall": - return colorize("PKG_UNINSTALL", pkg_str) - else: -Index: pym/_emerge/help.py -=================================================================== ---- a/pym/_emerge/help.py (revision 15731) -+++ b/pym/_emerge/help.py (revision 15814) -@@ -1,6 +1,6 @@ - # Copyright 1999-2009 Gentoo Foundation - # Distributed under the terms of the GNU General Public License v2 --# $Id: help.py 15687 2010-03-02 21:07:53Z zmedico $ -+# $Id: help.py 15781 2010-03-09 02:42:23Z zmedico $ - - from __future__ import print_function - -@@ -195,18 +195,31 @@ - print(" emerge -S 'perl.*module'") - print() - print(" "+green("--sync")) -- print(" Tells emerge to update the Portage tree as specified in") -- print(" The SYNC variable found in /etc/make.conf. By default, SYNC instructs") -- print(" emerge to perform an rsync-style update with rsync.gentoo.org.") -+ desc = "This updates the portage tree that is located in the " + \ -+ "directory that the PORTDIR variable refers to (default " + \ -+ "location is /usr/portage). The SYNC variable specifies " + \ -+ "the remote URI from which files will be synchronized. " + \ -+ "The PORTAGE_SYNC_STALE variable configures " + \ -+ "warnings that are shown when emerge --sync has not " + \ -+ "been executed recently." -+ for line in wrap(desc, desc_width): -+ print(desc_indent + line) - print() -- print(" 'emerge-webrsync' exists as a helper app to emerge --sync, providing a") -- print(" method to receive the entire portage tree as a tarball that can be") -- print(" extracted and used. First time syncs would benefit greatly from this.") -+ print(desc_indent + turquoise("WARNING:")) -+ desc = "The emerge --sync action will modify and/or delete " + \ -+ "files located inside the directory that the PORTDIR " + \ -+ "variable refers to (default location is /usr/portage). " + \ -+ "For more information, see the PORTDIR documentation in " + \ -+ "the make.conf(5) man page." -+ for line in wrap(desc, desc_width): -+ print(desc_indent + line) - print() -- print(" "+turquoise("WARNING:")) -- print(" If using our rsync server, emerge will clean out all files that do not") -- print(" exist on it, including ones that you may have created. The exceptions") -- print(" to this are the distfiles, local and packages directories.") -+ print(desc_indent + green("NOTE:")) -+ desc = "The emerge-webrsync program will download the entire " + \ -+ "portage tree as a tarball, which is much faster than emerge " + \ -+ "--sync for first time syncs." -+ for line in wrap(desc, desc_width): -+ print(desc_indent + line) - print() - print(" "+green("--unmerge")+" ("+green("-C")+" short option)") - print(" "+turquoise("WARNING: This action can remove important packages!")) -@@ -216,13 +229,6 @@ - print(" ebuilds. For a dependency aware version of --unmerge, use") - print(" --depclean or --prune.") - print() -- print(" "+green("--update")+" ("+green("-u")+" short option)") -- print(" Updates packages to the best version available, which may not") -- print(" always be the highest version number due to masking for testing") -- print(" and development. Package atoms specified on the command") -- print(" line are greedy, meaning that unspecific atoms may match multiple") -- print(" installed versions of slotted packages.") -- print() - print(" "+green("--version")+" ("+green("-V")+" short option)") - print(" Displays the currently installed version of portage along with") - print(" other information useful for quick reference on a system. See") -@@ -591,6 +597,15 @@ - for line in wrap(desc, desc_width): - print(desc_indent + line) - print() -+ print(" "+green("--update")+" ("+green("-u")+" short option)") -+ desc = "Updates packages to the best version available, which may " + \ -+ "not always be the highest version number due to masking " + \ -+ "for testing and development. Package atoms specified on " + \ -+ "the command line are greedy, meaning that unspecific " + \ -+ "atoms may match multiple versions of slotted packages." -+ for line in wrap(desc, desc_width): -+ print(desc_indent + line) -+ print() - print(" " + green("--use-ebuild-visibility") + "[=%s]" % turquoise("n")) - desc = "Use unbuilt ebuild metadata for visibility " + \ - "checks on built packages." -Index: pym/_emerge/Scheduler.py -=================================================================== ---- a/pym/_emerge/Scheduler.py (revision 15731) -+++ b/pym/_emerge/Scheduler.py (revision 15814) -@@ -1,6 +1,6 @@ - # Copyright 1999-2009 Gentoo Foundation - # Distributed under the terms of the GNU General Public License v2 --# $Id: Scheduler.py 15708 2010-03-02 21:13:39Z zmedico $ -+# $Id: Scheduler.py 15812 2010-03-09 21:27:32Z zmedico $ - - from __future__ import print_function - -@@ -18,6 +18,7 @@ - from portage import _unicode_decode - from portage import _unicode_encode - from portage.cache.mappings import slot_dict_class -+from portage.const import LIBC_PACKAGE_ATOM - from portage.elog.messages import eerror - from portage.output import colorize, create_color_func, darkgreen, red - bad = create_color_func("BAD") -@@ -351,6 +352,11 @@ - self._find_system_deps() - self._prune_digraph() - self._prevent_builddir_collisions() -+ self._implicit_libc_deps() -+ if '--debug' in self.myopts: -+ writemsg("\nscheduler digraph:\n\n", noiselevel=-1) -+ self._digraph.debug_print() -+ writemsg("\n", noiselevel=-1) - - def _find_system_deps(self): - """ -@@ -412,6 +418,69 @@ - priority=DepPriority(buildtime=True)) - cpv_map[pkg.cpv].append(pkg) - -+ def _implicit_libc_deps(self): -+ """ -+ Create implicit dependencies on libc, in order to ensure that libc -+ is installed as early as possible (see bug #303567). If the merge -+ list contains both a new-style virtual and an old-style PROVIDE -+ virtual, the new-style virtual is used. -+ """ -+ implicit_libc_roots = set([self._running_root.root]) -+ libc_set = InternalPackageSet([LIBC_PACKAGE_ATOM]) -+ norm_libc_pkgs = {} -+ virt_libc_pkgs = {} -+ for pkg in self._mergelist: -+ if not isinstance(pkg, Package): -+ # a satisfied blocker -+ continue -+ if pkg.installed: -+ continue -+ if pkg.root in implicit_libc_roots and \ -+ pkg.operation == 'merge': -+ if libc_set.findAtomForPackage(pkg): -+ if pkg.category == 'virtual': -+ d = virt_libc_pkgs -+ else: -+ d = norm_libc_pkgs -+ if pkg.root in d: -+ raise AssertionError( -+ "found 2 libc matches: %s and %s" % \ -+ (d[pkg.root], pkg)) -+ d[pkg.root] = pkg -+ -+ # Prefer new-style virtuals over old-style PROVIDE virtuals. -+ libc_pkg_map = norm_libc_pkgs.copy() -+ libc_pkg_map.update(virt_libc_pkgs) -+ -+ # Only add a dep when the version changes. -+ for libc_pkg in list(libc_pkg_map.values()): -+ if libc_pkg.root_config.trees['vartree'].dbapi.cpv_exists( -+ libc_pkg.cpv): -+ del libc_pkg_map[pkg.root] -+ -+ if not libc_pkg_map: -+ return -+ -+ libc_pkgs = set(libc_pkg_map.values()) -+ earlier_libc_pkgs = set() -+ -+ for pkg in self._mergelist: -+ if not isinstance(pkg, Package): -+ # a satisfied blocker -+ continue -+ if pkg.installed: -+ continue -+ if pkg.root in implicit_libc_roots and \ -+ pkg.operation == 'merge': -+ if pkg in libc_pkgs: -+ earlier_libc_pkgs.add(pkg) -+ else: -+ my_libc = libc_pkg_map.get(pkg.root) -+ if my_libc is not None and \ -+ my_libc in earlier_libc_pkgs: -+ self._digraph.add(my_libc, pkg, -+ priority=DepPriority(buildtime=True)) -+ - class _pkg_failure(portage.exception.PortageException): - """ - An instance of this class is raised by unmerge() when -Index: pym/_emerge/sync/__init__.py -=================================================================== ---- a/pym/_emerge/sync/__init__.py (revision 15731) -+++ b/pym/_emerge/sync/__init__.py (revision 15814) -@@ -0,0 +1,3 @@ -+# Copyright 2010 Gentoo Foundation -+# Distributed under the terms of the GNU General Public License v2 -+# $Id: __init__.py 15772 2010-03-08 09:40:46Z zmedico $ -Index: pym/_emerge/sync/old_tree_timestamp.py -=================================================================== ---- a/pym/_emerge/sync/old_tree_timestamp.py (revision 15731) -+++ b/pym/_emerge/sync/old_tree_timestamp.py (revision 15814) -@@ -0,0 +1,99 @@ -+# Copyright 2010 Gentoo Foundation -+# Distributed under the terms of the GNU General Public License v2 -+# $Id: old_tree_timestamp.py 15807 2010-03-09 20:21:05Z zmedico $ -+ -+import locale -+import logging -+import time -+ -+from portage import os -+from portage.exception import PortageException -+from portage.localization import _ -+from portage.output import EOutput -+from portage.util import grabfile, writemsg_level -+ -+def have_english_locale(): -+ lang, enc = locale.getdefaultlocale() -+ if lang is not None: -+ lang = lang.lower() -+ lang = lang.split('_', 1)[0] -+ return lang is None or lang in ('c', 'en') -+ -+def whenago(seconds): -+ sec = int(seconds) -+ mins = 0 -+ days = 0 -+ hrs = 0 -+ years = 0 -+ out = [] -+ -+ if sec > 60: -+ mins = sec / 60 -+ sec = sec % 60 -+ if mins > 60: -+ hrs = mins / 60 -+ mins = mins % 60 -+ if hrs > 24: -+ days = hrs / 24 -+ hrs = hrs % 24 -+ if days > 365: -+ years = days / 365 -+ days = days % 365 -+ -+ if years: -+ out.append(str(years)+"y ") -+ if days: -+ out.append(str(days)+"d ") -+ if hrs: -+ out.append(str(hrs)+"h ") -+ if mins: -+ out.append(str(mins)+"m ") -+ if sec: -+ out.append(str(sec)+"s ") -+ -+ return "".join(out).strip() -+ -+def old_tree_timestamp_warn(portdir, settings): -+ unixtime = time.time() -+ default_warnsync = 30 -+ -+ timestamp_file = os.path.join(portdir, "metadata/timestamp.x") -+ try: -+ lastsync = grabfile(timestamp_file) -+ except PortageException: -+ return False -+ -+ if not lastsync: -+ return False -+ -+ lastsync = lastsync[0].split() -+ if not lastsync: -+ return False -+ -+ try: -+ lastsync = int(lastsync[0]) -+ except ValueError: -+ return False -+ -+ var_name = 'PORTAGE_SYNC_STALE' -+ try: -+ warnsync = float(settings.get(var_name, default_warnsync)) -+ except ValueError: -+ writemsg_level("!!! %s contains non-numeric value: %s\n" % \ -+ (var_name, settings[var_name]), -+ level=logging.ERROR, noiselevel=-1) -+ return False -+ -+ if warnsync <= 0: -+ return False -+ -+ if (unixtime - 86400 * warnsync) > lastsync: -+ out = EOutput() -+ if have_english_locale(): -+ out.ewarn("Last emerge --sync was %s ago." % \ -+ whenago(unixtime - lastsync)) -+ else: -+ out.ewarn(_("Last emerge --sync was %s.") % \ -+ time.strftime('%c', time.localtime(lastsync))) -+ return True -+ return False -Index: pym/portage/dbapi/vartree.py -=================================================================== ---- a/pym/portage/dbapi/vartree.py (revision 15731) -+++ b/pym/portage/dbapi/vartree.py (revision 15814) -@@ -1,6 +1,6 @@ - # Copyright 1998-2009 Gentoo Foundation - # Distributed under the terms of the GNU General Public License v2 --# $Id: vartree.py 15727 2010-03-03 01:27:27Z zmedico $ -+# $Id: vartree.py 15782 2010-03-09 02:42:40Z zmedico $ - - __all__ = [ - "vardbapi", "vartree", "dblink"] + \ -@@ -3181,6 +3181,9 @@ - if self.myroot == "/" and \ - match_from_list(PORTAGE_PACKAGE_ATOM, [self.mycpv]) and \ - not self.vartree.dbapi.cpv_exists(self.mycpv): -+ # Load lazily referenced portage submodules into memory, -+ # so imports won't fail during portage upgrade/downgrade. -+ portage.proxy.lazyimport._preload_portage_submodules() - settings = self.settings - base_path_orig = os.path.dirname(settings["PORTAGE_BIN_PATH"]) - from tempfile import mkdtemp -Index: pym/portage/mail.py -=================================================================== ---- a/pym/portage/mail.py (revision 15731) -+++ b/pym/portage/mail.py (revision 15814) -@@ -1,36 +1,43 @@ - # portage.py -- core Portage functionality - # Copyright 1998-2004 Gentoo Foundation - # Distributed under the terms of the GNU General Public License v2 --# $Id: mail.py 14860 2009-11-21 04:04:37Z zmedico $ -+# $Id: mail.py 15794 2010-03-09 08:11:46Z zmedico $ -+ -+# Since python ebuilds remove the 'email' module when USE=build -+# is enabled, use a local import so that -+# portage.proxy.lazyimport._preload_portage_submodules() -+# can load this module even though the 'email' module is missing. -+# The elog mail modules won't work, but at least an ImportError -+# won't cause portage to crash during stage builds. Since the -+# 'smtlib' module imports the 'email' module, that's imported -+# locally as well. - --from email.mime.text import MIMEText --from email.mime.multipart import MIMEMultipart as MultipartMessage --from email.mime.base import MIMEBase as BaseMessage --from email.header import Header --import smtplib - import socket - import sys - import time - - from portage import os - from portage import _encodings --from portage import _unicode_encode -+from portage import _unicode_decode, _unicode_encode - from portage.localization import _ - import portage - - if sys.hexversion >= 0x3000000: - basestring = str - --if sys.hexversion >= 0x3000000: -- def TextMessage(_text): -- mimetext = MIMEText(_text) -+def TextMessage(_text): -+ from email.mime.text import MIMEText -+ mimetext = MIMEText(_text) -+ if sys.hexversion >= 0x3000000: - mimetext.set_charset("UTF-8") -- return mimetext --else: -- TextMessage = MIMEText -+ return mimetext - - def create_message(sender, recipient, subject, body, attachments=None): - -+ from email.header import Header -+ from email.mime.base import MIMEBase as BaseMessage -+ from email.mime.multipart import MIMEMultipart as MultipartMessage -+ - if sys.hexversion < 0x3000000: - sender = _unicode_encode(sender, - encoding=_encodings['content'], errors='strict') -@@ -69,6 +76,9 @@ - return mymessage - - def send_mail(mysettings, message): -+ -+ import smtplib -+ - mymailhost = "localhost" - mymailport = 25 - mymailuser = "" -@@ -135,7 +145,17 @@ - myconn = smtplib.SMTP(mymailhost, mymailport) - if mymailuser != "" and mymailpasswd != "": - myconn.login(mymailuser, mymailpasswd) -- myconn.sendmail(myfrom, myrecipient, message.as_string()) -+ -+ message_str = message.as_string() -+ if sys.hexversion >= 0x3000000: -+ # Force ascii encoding in order to avoid UnicodeEncodeError -+ # from smtplib.sendmail with python3 (bug #291331). -+ message_str = _unicode_encode(message_str, -+ encoding='ascii', errors='backslashreplace') -+ message_str = _unicode_decode(message_str, -+ encoding='ascii', errors='replace') -+ -+ myconn.sendmail(myfrom, myrecipient, message_str) - myconn.quit() - except smtplib.SMTPException as e: - raise portage.exception.PortageException(_("!!! An error occured while trying to send logmail:\n")+str(e)) -Index: pym/portage/output.py -=================================================================== ---- a/pym/portage/output.py (revision 15731) -+++ b/pym/portage/output.py (revision 15814) -@@ -1,6 +1,6 @@ - # Copyright 1998-2009 Gentoo Foundation - # Distributed under the terms of the GNU General Public License v2 --# $Id: output.py 15245 2010-01-29 18:47:30Z zmedico $ -+# $Id: output.py 15746 2010-03-04 11:22:15Z zmedico $ - - __docformat__ = "epytext" - -@@ -139,6 +139,9 @@ - _styles["PKG_MERGE"] = ( "darkgreen", ) - _styles["PKG_MERGE_SYSTEM"] = ( "darkgreen", ) - _styles["PKG_MERGE_WORLD"] = ( "green", ) -+_styles["PKG_BINARY_MERGE"] = ( "darkgreen", ) -+_styles["PKG_BINARY_MERGE_SYSTEM"] = ( "darkgreen", ) -+_styles["PKG_BINARY_MERGE_WORLD"] = ( "green", ) - _styles["PKG_UNINSTALL"] = ( "red", ) - _styles["PKG_NOMERGE"] = ( "darkblue", ) - _styles["PKG_NOMERGE_SYSTEM"] = ( "darkblue", ) -Index: pym/portage/package/ebuild/config.py -=================================================================== ---- a/pym/portage/package/ebuild/config.py (revision 15731) -+++ b/pym/portage/package/ebuild/config.py (revision 15814) -@@ -1,6 +1,6 @@ - # Copyright 2010 Gentoo Foundation - # Distributed under the terms of the GNU General Public License v2 --# $Id: config.py 15705 2010-03-02 21:11:02Z zmedico $ -+# $Id: config.py 15768 2010-03-08 09:05:13Z zmedico $ - - __all__ = [ - 'autouse', 'best_from_dict', 'check_config_instance', 'config', -@@ -274,7 +274,8 @@ - "PORTAGE_REPO_DUPLICATE_WARN", - "PORTAGE_RO_DISTDIRS", - "PORTAGE_RSYNC_EXTRA_OPTS", "PORTAGE_RSYNC_OPTS", -- "PORTAGE_RSYNC_RETRIES", "PORTAGE_USE", "PORT_LOGDIR", -+ "PORTAGE_RSYNC_RETRIES", "PORTAGE_SYNC_STALE", -+ "PORTAGE_USE", "PORT_LOGDIR", - "QUICKPKG_DEFAULT_OPTS", - "RESUMECOMMAND", "RESUMECOMMAND_HTTP", "RESUMECOMMAND_HTTP", - "RESUMECOMMAND_SFTP", "SYNC", "USE_EXPAND_HIDDEN", "USE_ORDER", -Index: pym/portage/package/ebuild/doebuild.py -=================================================================== ---- a/pym/portage/package/ebuild/doebuild.py (revision 15731) -+++ b/pym/portage/package/ebuild/doebuild.py (revision 15814) -@@ -1,6 +1,6 @@ - # Copyright 2010 Gentoo Foundation - # Distributed under the terms of the GNU General Public License v2 --# $Id: doebuild.py 15713 2010-03-02 21:14:43Z zmedico $ -+# $Id: doebuild.py 15760 2010-03-08 08:46:53Z zmedico $ - - __all__ = ['doebuild', 'doebuild_environment', 'spawn', 'spawnebuild'] - -@@ -25,6 +25,7 @@ - 'portage.package.ebuild.config:check_config_instance', - 'portage.package.ebuild.digestcheck:digestcheck', - 'portage.package.ebuild.digestgen:digestgen', -+ 'portage.package.ebuild.fetch:fetch', - 'portage.util.ExtractKernelVersion:ExtractKernelVersion' - ) - -@@ -47,7 +48,6 @@ - from portage.localization import _ - from portage.manifest import Manifest - from portage.output import style_to_ansi_code --from portage.package.ebuild.fetch import fetch - from portage.package.ebuild.prepare_build_dirs import prepare_build_dirs - from portage.util import apply_recursive_permissions, \ - apply_secpass_permissions, noiselimit, normalize_path, \ -@@ -810,7 +810,8 @@ - mydo not in ("digest", "manifest") and "noauto" not in features) - alist = mysettings.configdict["pkg"].get("A") - aalist = mysettings.configdict["pkg"].get("AA") -- if alist is None or aalist is None: -+ if alist is None or aalist is None or \ -+ (not emerge_skip_distfiles and need_distfiles): - # Make sure we get the correct tree in case there are overlays. - mytree = os.path.realpath( - os.path.dirname(os.path.dirname(mysettings["O"]))) -@@ -827,25 +828,26 @@ - return 1 - mysettings.configdict["pkg"]["A"] = " ".join(alist) - mysettings.configdict["pkg"]["AA"] = " ".join(aalist) -+ -+ if not emerge_skip_distfiles and need_distfiles: -+ if "mirror" in features or fetchall: -+ fetchme = aalist -+ else: -+ fetchme = alist -+ if not fetch(fetchme, mysettings, listonly=listonly, -+ fetchonly=fetchonly): -+ return 1 -+ - else: - alist = set(alist.split()) - aalist = set(aalist.split()) -- if ("mirror" in features) or fetchall: -- fetchme = aalist -- checkme = aalist -- else: -- fetchme = alist -- checkme = alist - - if mydo == "fetch": - # Files are already checked inside fetch(), - # so do not check them again. - checkme = [] -- -- if not emerge_skip_distfiles and \ -- need_distfiles and not fetch( -- fetchme, mysettings, listonly=listonly, fetchonly=fetchonly): -- return 1 -+ else: -+ checkme = alist - - if mydo == "fetch" and listonly: - return 0 -Index: pym/portage/package/ebuild/fetch.py -=================================================================== ---- a/pym/portage/package/ebuild/fetch.py (revision 15731) -+++ b/pym/portage/package/ebuild/fetch.py (revision 15814) -@@ -1,6 +1,6 @@ - # Copyright 2010 Gentoo Foundation - # Distributed under the terms of the GNU General Public License v2 --# $Id: fetch.py 15718 2010-03-02 21:37:48Z zmedico $ -+# $Id: fetch.py 15748 2010-03-04 11:23:00Z zmedico $ - - from __future__ import print_function - -@@ -20,18 +20,26 @@ - import portage - portage.proxy.lazyimport.lazyimport(globals(), - 'portage.package.ebuild.config:check_config_instance,config', -+ 'portage.package.ebuild.doebuild:doebuild_environment,' + \ -+ 'spawn@doebuild_spawn', -+ 'portage.package.ebuild.prepare_build_dirs:prepare_build_dirs', - ) - --from portage import doebuild_environment, OrderedDict, os, prepare_build_dirs, selinux, _encodings, _shell_quote, _unicode_encode -+from portage import OrderedDict, os, selinux, _encodings, \ -+ _shell_quote, _unicode_encode - from portage.checksum import perform_md5, verify_all --from portage.const import BASH_BINARY, CUSTOM_MIRRORS_FILE, EBUILD_SH_BINARY, GLOBAL_CONFIG_PATH -+from portage.const import BASH_BINARY, CUSTOM_MIRRORS_FILE, \ -+ EBUILD_SH_BINARY, GLOBAL_CONFIG_PATH - from portage.data import portage_gid, portage_uid, secpass, userpriv_groups --from portage.exception import FileNotFound, OperationNotPermitted, PermissionDenied, PortageException, TryAgain -+from portage.exception import FileNotFound, OperationNotPermitted, \ -+ PermissionDenied, PortageException, TryAgain - from portage.localization import _ - from portage.locks import lockfile, unlockfile - from portage.manifest import Manifest - from portage.output import colorize, EOutput --from portage.util import apply_recursive_permissions, apply_secpass_permissions, ensure_dirs, grabdict, shlex_split, varexpand, writemsg, writemsg_level, writemsg_stdout -+from portage.util import apply_recursive_permissions, \ -+ apply_secpass_permissions, ensure_dirs, grabdict, shlex_split, \ -+ varexpand, writemsg, writemsg_level, writemsg_stdout - from portage.process import spawn - - _userpriv_spawn_kwargs = ( -@@ -1096,7 +1104,7 @@ - ebuild_phase = mysettings.get("EBUILD_PHASE") - try: - mysettings["EBUILD_PHASE"] = "nofetch" -- spawn(_shell_quote(EBUILD_SH_BINARY) + \ -+ doebuild_spawn(_shell_quote(EBUILD_SH_BINARY) + \ - " nofetch", mysettings, fd_pipes=fd_pipes) - finally: - if ebuild_phase is None: -Index: pym/portage/package/ebuild/getmaskingstatus.py -=================================================================== ---- a/pym/portage/package/ebuild/getmaskingstatus.py (revision 15731) -+++ b/pym/portage/package/ebuild/getmaskingstatus.py (revision 15814) -@@ -1,9 +1,11 @@ - # Copyright 2010 Gentoo Foundation - # Distributed under the terms of the GNU General Public License v2 --# $Id: getmaskingstatus.py 15672 2010-03-02 21:01:19Z zmedico $ -+# $Id: getmaskingstatus.py 15749 2010-03-04 11:23:09Z zmedico $ - - __all__ = ['getmaskingstatus'] - -+import sys -+ - import portage - from portage import eapi_is_supported, _eapi_is_deprecated - from portage.dep import match_from_list -@@ -11,6 +13,9 @@ - from portage.package.ebuild.config import config - from portage.versions import catpkgsplit, cpv_getkey - -+if sys.hexversion >= 0x3000000: -+ basestring = str -+ - def getmaskingstatus(mycpv, settings=None, portdb=None): - if settings is None: - settings = config(clone=portage.settings) -Index: pym/portage/proxy/lazyimport.py -=================================================================== ---- a/pym/portage/proxy/lazyimport.py (revision 15731) -+++ b/pym/portage/proxy/lazyimport.py (revision 15814) -@@ -1,6 +1,6 @@ - # Copyright 2009 Gentoo Foundation - # Distributed under the terms of the GNU General Public License v2 --# $Id: lazyimport.py 14327 2009-09-21 16:07:07Z arfrever $ -+# $Id: lazyimport.py 15782 2010-03-09 02:42:40Z zmedico $ - - __all__ = ['lazyimport'] - -@@ -20,6 +20,24 @@ - _module_proxies = {} - _module_proxies_lock = threading.RLock() - -+def _preload_portage_submodules(): -+ """ -+ Load lazily referenced portage submodules into memory, -+ so imports won't fail during portage upgrade/downgrade. -+ Note that this recursively loads only the modules that -+ are lazily referenced by currently imported modules, -+ so some portage submodules may still remain unimported -+ after this function is called. -+ """ -+ while True: -+ remaining = False -+ for name in list(_module_proxies): -+ if name.startswith('portage.'): -+ remaining = True -+ _unregister_module_proxy(name) -+ if not remaining: -+ break -+ - def _register_module_proxy(name, proxy): - _module_proxies_lock.acquire() - try: diff -r 260580385655 -r aabc07905de3 sources/control-images/hello-world.sh --- a/sources/control-images/hello-world.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -#!/bin/bash - -# Download all the source tarballs we haven't got up-to-date copies of. - -# The tarballs are downloaded into the "packages" directory, which is -# created as needed. - -source sources/include.sh || exit 1 - -# Set up working directories - -WORK="$BUILD/control-images/hello-world" -blank_tempdir "$WORK" - -cat > "$WORK"/init << 'EOF' || dienow -#!/bin/bash - -echo Started second stage init - -cd /home && -gcc -lpthread /usr/src/thread-hello2.c -o hello && -./hello - -# Upload our hello world file to the output directory (named hello-$HOST). -# No reason, just an example. - -ftpput $FTP_SERVER -P $FTP_PORT hello-$HOST hello - -sync - -EOF - -chmod +x "$WORK"/init || dienow - -cd "$TOP" - -mksquashfs "$WORK" "$WORK.hdc" -noappend -all-root diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/download.sh --- a/sources/control-images/lfs-bootstrap/download.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -# Build Linux From Scratch 6.7 packages under target environment. - -# Note: this doesn't rebuild the toolchain packages (libc, binutils, -# gcc, linux-headers), but reuses the toolchain we've got, because: - -# 1) Building a new toolchain is a target-dependent can of worms. -# 2) Doing so would lose distcc acceleration. -# 3) Building glibc under uClibc is buggy because glibc expects that a -# 2.6 kernel will have TLS, and uClibc without NPTL doesn't. (Yes, -# repeat after me, "autoconf is useless".) - -# Download upstream tarball - -URL=http://ftp.osuosl.org/pub/lfs/lfs-packages/lfs-packages-6.7.tar \ -SHA1=9bda969efdfd4d51bda8fafeff082f2397249876 \ -RENAME='s/-sources//' \ -download || dienow - -URL=ftp://penma.de/code/gettext-stub/gettext-stub-1.tar.gz \ -SHA1=ef706667010893c5492173c543d2c5b715abb8a7 \ -download || dienow - -cleanup_oldfiles - -# Extract the individual packages from the upstream tarball - -SRCDIR="$SRCTREE/lfs-packages" -PATCHDIR="$SRCDIR" - -# Fixups for tarball names the Aboriginal extract scripts can't parse - -mv "$SRCDIR"/sysvinit-2.88{dsf,}.tar.bz2 && -mv "$SRCDIR"/tcl{8.5.8-src,-src-8.5.8}.tar.gz && -mv "$SRCDIR"/udev-{161-testfiles,testfiles-161}.tar.bz2 || exit 1 - -# Remove damaged patches (whitespace damaged, don't apply without "fuzz"). - -rm "$SRCDIR"/gcc-4.5.1-startfiles_fix-1.patch && -rm "$SRCDIR"/tar-1.23-overflow_fix-1.patch || exit 1 - -# Break down upstream tarball - -for i in $(cd "$SRCDIR"; ls *.tar.*) -do - extract_package $(noversion $i) -done - -rm -rf "$SRCDIR" diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/make-control-image.sh --- a/sources/control-images/lfs-bootstrap/make-control-image.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -../bootstrap-skeleton/control-image-wrapper.sh \ No newline at end of file diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/README --- a/sources/control-images/lfs-bootstrap/mnt/README Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -Automates the build of Linux From Scratch 6.7. - -This adds/replaces files in the existing filesystem. At the end of the build -BusyBox is still there but most of the symlinks to it have been replaced with -the corresponding gnu tools. - -This does not attempt to replace the existing toolchain or C library, although -there's no reason you can't run a separate script to do that before running -this build. - -We're not building grub because bootloaders are both extremely target-specific -(which CPU, which board, which boot media... Booting an ARM from the network -or booting MIPS from flash isn't really grub's thing). You'll have to set up -your own bootloader as appropriate for your hardware. (QEMU has a built-in -bootloader in the -kernel option.) - -Note that we skip the various "move stuff from /usr/bin to /bin" steps -because /lib, /bin, and /sbin are all symlinks to the appropriate directory -under /usr so we've already combined all that stuff already. (That split -happened when Ken and Dennis filled up their original root filesystem's RK05 -disk pack on the PDP-11 they developed Unix on in 1971, so they let their -operating system files leak into the second disk, where all the user -directories lived. They eventually added a third disk on /home and moved the -user directories to there, but kept the OS straddling two disks. These days -between initramfs and cheap multi-terrabyte drives that split is a useless -historical artifact kept alive by people blindly following procedures they -no longer understand. Don't get me started on /opt.) diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/autoconf.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/autoconf.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -generic-check.sh \ No newline at end of file diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/automake.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/automake.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -#!/bin/sh - -./configure --prefix=/usr --docdir=/usr/share/doc/automake && -make -j $CPUS || exit 1 - -if [ ! -z "$CHECK" ] -then - make check || exit 1 -fi - -make install diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/bash.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/bash.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -#!/bin/sh - -./configure --prefix=/usr --bindir=/bin --htmldir=/usr/share/doc/bash \ - --without-bash-malloc --with-installed-readline && -make -j $CPUS || exit 1 - -if [ ! -z "$CHECK" ] -then - chown -R nobody . && - su-tools nobody -s /bin/bash -c "make tests" || exit 1 -fi - -make install diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/bison.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/bison.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -#!/bin/sh - -./configure --prefix=/usr && -echo '#define YYENABLE_NLS 1' >> lib/config.h && -make -j $CPUS || exit 1 - -if [ ! -z "$CHECK" ] -then - make check || exit 1 -fi - -make install diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/bzip2.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/bzip2.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ -#!/bin/sh - -# Use relative paths when installing symlinks, not absolute paths. -sed -i 's@\(ln -s -f \)$(PREFIX)/bin/@\1@' Makefile && - -# The extra song and dance is to install the shared library, and -# make the bzip2 binary use it. - -make -f Makefile-libbz2_so && -make clean && -make && -make PREFIX=/usr install && -cp bzip2-shared /bin/bzip2 && -cp -a libbz2.so* /lib diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/coreutils.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/coreutils.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,16 +0,0 @@ -#!/bin/sh - -./configure --prefix=/usr --enable-no-install-program=kill,uptime && -make -j "$CPUS" || exit 1 - -if [ ! -z "$CHECK" ] -then - make NON_ROOT_USERNAME=nobody check-root && - echo "dummy:x:1000:nobody" >> /etc/group && - chown -R nobody . && - su-tools nobody -s /bin/bash -c "make RUN_EXPENSIVE_TESTS=yes check" && - sed -i '/^dummy:/d' /etc/group || exit 1 -fi - -make install && -mv /usr/bin/chroot /usr/sbin || exit 1 diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/diffutils.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/diffutils.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -generic-check.sh \ No newline at end of file diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/e2fsprogs.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/e2fsprogs.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -#!/bin/bash - -mkdir build && -cd build && -../configure --prefix=/usr --with-root-prefix="" \ - --enable-elf-shlibs --disable-libblkid --disable-libuuid \ - --disable-uuidd --disable-fsck --disable-tls && -make -j $CPUS || exit 1 - -if [ ! -z "$CHECK" ] -then - make check || exit 1 -fi - -make install && -make install-libs && -chmod u+w /usr/lib/{libcom_err,libe2p,libext2fs,libss}.a diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/file.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/file.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -generic-check.sh \ No newline at end of file diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/findutils.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/findutils.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -#!/bin/sh - -./configure --prefix=/usr --libexecdir=/usr/lib/findutils \ - --localstatedir=/var/lib/locate && -make -j $CPUS || exit 1 - -if [ ! -z "$CHECK" ] -then - make check || exit 1 -fi - -make install diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/flex.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/flex.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ -#!/bin/sh - -/mnt/build/generic-check.sh - -# Create lex wrapper - -cat > /usr/bin/lex << 'EOF' && -#!/bin/sh - -exiec /usr/bin/flex -l "$@" -EOF -chmod 755 /usr/bin/lex || exit 1 - -if [ ! -z "$DOCS" ] -then - mkdir /usr/share/doc/flex && - cp doc/flex.pdf /usr/share/doc/flex -fi diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/gawk.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/gawk.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh - -./configure --prefix=/usr --libexecdir=/usr/lib && -make -j $CPUS || exit 1 - -if [ ! -z "$CHECK" ] -then - make check || exit 1 -fi - -make install || exit 1 - -if [ ! -z "$DOCS" ] -then - mkdir /usr/share/doc/gawk && - cp doc/awkforai.txt doc/*.eps doc/*.pdf doc/*.jpg /usr/share/doc/gawk -fi diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/gdbm.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/gdbm.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -#!/bin/sh - -./configure --prefix=/usr && -make -j $CPUS && -make install && -make install-compat diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/generic-check.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/generic-check.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -#!/bin/sh - -# Standard install, plus "make check". - -./configure --prefix=/usr --bindir=/bin && -make -j $CPUS || exit 1 - -if [ ! -z "$CHECK" ] -then - make check || exit 1 -fi - -make install diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/gettext-stub.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/gettext-stub.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ -#!/bin/sh - -# Stub to compile packages that refuse to build without gettext. - -gcc -shared -fpic -o /usr/lib/libintl.so libintl-stub.c && -cp libintl-stub.h /usr/include/libintl.h && -cp msgfmt /usr/bin diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/gettext.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/gettext.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -#!/bin/sh - -# Swap out incestuous knowledge of the internals of glibc for incestuous -# knowledge of the internals of uClibc. (The resulting code should never -# trigger anyway, but it needs to be able to _compile_...) - -sed -i 's/thread_locale->__names\[category]/thread_locale->cur_locale/' \ - gettext-runtime/intl/localename.c gettext-tools/gnulib-lib/localename.c && -sed -i 's%LIBS = @LIBS@%LIBS = @LIBS@ ../libgrep/libgrep.a%' \ - gettext-tools/src/Makefile.in gettext-tools/tests/Makefile.in && - -./configure --prefix=/usr --docdir=/usr/share/doc/gettext && -make -j $CPUS || exit 1 - -if [ ! -z "$DOCS" ] -then - make check || exit 1 -fi - -make install diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/gmp.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/gmp.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -#!/bin/sh - -# Doesn't work with uClibc++ yet. -# [ ! -z "$(which c++)" ] && X="--enable-cxx" - -./configure --prefix=/usr $X --enable-mpbsd && -make -j $CPUS || exit 1 - -if [ ! -z "$CHECK" ] -then - make check 2>&1 | tee gmp-check-log - awk '/tests passed/{total+=$2} ; END{print total}' gmp-check-log -fi - -make install || exit 1 - -if [ ! -z "$DOCS" ] -then - mkdir -p /usr/share/doc/gmp-5.0.1 && - cp doc/isa_abi_headache doc/connfiguration doc/*.html \ - /usr/share/doc/gmp-5.0.1 -fi diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/grep.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/grep.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -generic-check.sh \ No newline at end of file diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/groff.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/groff.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ -#!/bin/sh - -PAGE=letter ./configure --prefix=/usr && -make -j $CPUS && -make docdir=/usr/share/doc/groff install && -ln -s eqn /usr/bin/geqn && -ln -s tbl /usr/bin/gtbl diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/gzip.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/gzip.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -generic-check.sh \ No newline at end of file diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/iana-etc.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/iana-etc.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -#!/bin/sh - -make -j $CPUS && -make install diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/inetutils.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/inetutils.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -#!/bin/sh - -./configure --prefix=/usr --libexecdir=/usr/sbin --localstatedir=/var \ - --disable-logger --disable-syslogd --disable-whois --disable-servers && -make -j $CPUS && -make install diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/iproute2.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/iproute2.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ -#!/bin/sh - -# arpd needs berkeley DB, switch it off. -sed -i '/^TARGETS/s@arpd@@g' misc/Makefile && - -# bugfix, why this isn't a patch I have no idea. -sed -i '1289i\\tfilter.cloned = 2;' ip/iproute.c && - -# Don't be confused by symlinks -sed -i 's/ find / find -L /g' Makefile && - -make DESTDIR= -j $CPUS && -make DESTDIR= SBINDIR=/sbin MANDIR=/usr/share/man \ - DOCDIR=/usr/share/doc/iproute2 install diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/kbd.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/kbd.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -#!/bin/sh - -./configure --prefix=/usr --datadir=/lib/kbd --disable-nls && -make -j $CPUS && -make install || exit 1 - -if [ ! -z "$DOCS" ] -then - mkdir /usr/share/doc/kbd && - cp -R doc/* /usr/share/doc/kbd -fi diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/less.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/less.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -#!/bin/sh - -./configure --prefix=/usr --sysconfdir=/etc && -make -j $CPUS && -make install diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/libtool.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/libtool.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -generic-check.sh \ No newline at end of file diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/m4.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/m4.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -#!/bin/sh - -sed -i -e '/"m4.h"/a#include ' src/path.c && -./configure --prefix=/usr && -make || exit 1 - -if [ ! -z "$CHECK" ] -then - make check || exit 1 -fi - -make install diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/make.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/make.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -generic-check.sh \ No newline at end of file diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/man-db.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/man-db.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -#!/bin/sh - -./configure --prefix=/usr --libexecdir=/usr/lib \ - --docdir=/usr/share/doc/man-db --sysconfdir=/etc --disable-setuid && -make -j $CPUS || exit 1 - -if [ ! -z "$CHECK" ] -then - make check || exit 1 -fi - -make install diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/module-init-tools.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/module-init-tools.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ -#!/bin/sh - -# Read-only filesystem, can't modify in place. - -rm -f modprobe.d.5 && -echo '.so man5/modprobe.conf.5' > modprobe.d.5 || exit 1 - -if [ ! -z "$CHECK" ] -then - ./configure && - make check && - ./tests/runtests && - make clean || exit 1 -fi - -./configure --prefix=/ --enable-zlib-dynamic --mandir=/usr/share/man && -make -j $CPUS && -make INSTALL=install install diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/mpc.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/mpc.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -generic-check.sh \ No newline at end of file diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/mpfr.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/mpfr.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -#!/bin/sh - -# TODO: The --enable-thread-safe here requires TLS - -./configure --prefix=/usr --docdir=/usr/share/doc/mpfr-3.0.0 && -make -j $CPUS || exit 1 - -if [ ! -z "$CHECK" ] -then - make check || exit 1 -fi - -make install || exit 1 - -if [ ! -z "$DOCS" ] -then - make html && - make install-html -fi diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/ncurses.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/ncurses.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -#!/bin/sh - -[ ! -z "$(which c++)" ] && X="--without-cxx --without-cxx-binding" - -./configure --prefix=/usr --with-shared --without-debug --enable-widec $X && -make -j $CPUS && -make install || exit 1 - -# Make sure various packages can find ncurses no matter what weird names -# they look for. - -for lib in ncurses form panel menu -do - ln -sf lib${lib}w.so /usr/lib/lib${lib}.so && - ln -sf lib${lib}w.a /usr/lib/lib${lib}.a || exit 1 -done -ln -sf libncursesw.so libcursesw.so && -ln -sf libncurses.so /usr/lib/libcurses.so && -ln -sf libncursesw.a /usr/lib/libcursesw.a && -ln -sf libncurses.a /usr/lib/libcurses.a || exit 1 - -if [ ! -z "$(which c++)" ] -then - ln -sf libncurses++w.a /usr/lib/libncurses++.a || exit 1 -fi diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/patch.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/patch.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -generic-check.sh \ No newline at end of file diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/perl.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/perl.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -#!/bin/sh - -if [ ! -e /etc/hosts ] -then - echo "127.0.0.1 localhost $(hostname)" > /etc/hosts || exit 1 -fi - -# Configure hardwires on the "stack protector", which doesn't work in this -# context. Rip out all mention of it. - -sed -i 's/-fstack-protector//' Configure && - -# Make Perl use the system zlib instead of a built-in copy. - -sed -i -e "s|BUILD_ZLIB\s*= True|BUILD_ZLIB = False|" \ - -e "s|INCLUDE\s*= ./zlib-src|INCLUDE = /usr/include|" \ - -e "s|LIB\s*= ./zlib-src|LIB = /usr/lib|" \ - cpan/Compress-Raw-Zlib/config.in && -./Configure -des -Dprefix=/usr -Dvendorprefix=/usr \ - -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 \ - -Dpager="/usr/bin/less -is" -Duseshrplib -Dusenm=n && -make -j $CPUS || exit 1 - -if [ ! -z "$CHECK" ] -then - make test || exit 1 -fi - -make install diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/pkg-config.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/pkg-config.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -#!/bin/sh - -sed -i -e 's/XT])dnl/XT])[]dnl/' \ - -e 's/\.])dnl/\.])[]dnl/' pkg.m4 && -./configure --prefix=/usr && -make -j $CPUS || exit 1 - -if [ ! -z "$CHECK" ] -then - make check || exit 1 -fi - -make install diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/procps.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/procps.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -#!/bin/sh - -sed -i -e 's@\*/module.mk@proc/module.mk ps/module.mk@' Makefile && -make -j $CPUS && -make install diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/psmisc.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/psmisc.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -#!/bin/sh - -# Another bugfix that you'd think would be a patch, but no... - -sed -i 's@#include@#include \&@' configure && - -./configure --prefix=/usr --disable-nls && -make -j $CPUS && -make install diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/readline.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/readline.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -#!/bin/sh - -sed -i '/MV.*old/d' Makefile.in && -sed -i '/{OLDSUFF}/c:' support/shlib-install && -./configure --prefix=/usr --libdir=/lib && -make -j $CPUS SHLIB_LIBS=-lncurses && -make install || exit 1 - -if [ ! -z "$DOCS" ] -then - mkdir /usr/share/doc/readline && - install -m644 doc/*.ps doc/*.pdf doc/*.html doc/*.dvi \ - /usr/share/doc/readline || exit 1 -fi - -cat > /etc/inputrc << "EOF" -# Allow the command prompt to wrap to the next line -set horizontal-scroll-mode Off - -# Enable 8bit input -set meta-flag On -set input-meta On - -# Turns off 8th bit stripping -set convert-meta Off - -# Keep the 8th bit for display -set output-meta On - -# none, visible or audible -set bell-style none - -# All of the following map the escape sequence of the value -# contained in the 1st argument to the readline specific functions -"\eOd": backward-word -"\eOc": forward-word - -# for linux console -"\e[1~": beginning-of-line -"\e[4~": end-of-line -"\e[5~": beginning-of-history -"\e[6~": end-of-history -"\e[3~": delete-char -"\e[2~": quoted-insert - -# for xterm -"\eOH": beginning-of-line -"\eOF": end-of-line - -# for Konsole -"\e[H": beginning-of-line -"\e[F": end-of-line -EOF diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/sed.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/sed.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh - -./configure --prefix=/usr --bindir=/bin --htmldir=/usr/share/doc/sed && -make -j $CPUS || exit 1 - -if [ ! -z "$DOCS" ] -then - make html && - make -C doc install-html || exit 1 -fi - -if [ ! -z "$CHECK" ] -then - make check || exit 1 -fi - -make install diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/setup.nosrc --- a/sources/control-images/lfs-bootstrap/mnt/build/setup.nosrc Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,59 +0,0 @@ -#!/bin/bash - -set +h - -# Basic setup. Create directories not in the aboriginal base system. - -cd / && - -# The first package (zlib) dies with hush. - -ln -sf bash /bin/sh && - -mkdir -p boot etc/opt opt media/floppy media/cdrom srv var/tmp && -chmod 0750 root && -chmod 1777 tmp var/tmp && -rm -rf /usr/local && -ln -sf . usr/local && -cd usr/share && -mkdir -p doc info locale man misc terminfo zoneinfo && -cd ../.. && -ln -sf share/man share/doc share/info usr && -cd var && -mkdir -p lib lock log mail run spool opt cache local && -cd lib && -mkdir -p misc locate && -cd ../.. && - -cat > etc/passwd << "EOF" && -root:x:0:0:root:/root:/bin/bash -bin:x:1:1:bin:/dev/null:/bin/false -nobody:x:99:99:Unprivileged User:/dev/null:/bin/false -guest:x:500:500:guest:/home/guest:/bin/sh -EOF - -cat > etc/group << "EOF" && -root:x:0: -bin:x:1: -sys:x:2: -kmem:x:3: -tty:x:4: -tape:x:5: -daemon:x:6: -floppy:x:7: -disk:x:8: -lp:x:9: -dialout:x:10: -audio:x:11: -video:x:12: -utmp:x:13: -usb:x:14: -cdrom:x:15: -mail:x:34: -nogroup:x:99: -guest:x:500: -EOF - -touch /var/run/utmp /var/log/btmp /var/log/lastlog /var/log/wtmp && -chgrp -v utmp /var/run/utmp /var/log/lastlog && -chmod -v 664 /var/run/utmp /var/log/lastlog diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/shadow.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/shadow.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -#!/bin/sh - -# Disable the groups program, coreutils provides a better one. - -sed -i 's/groups$(EXEEXT) //' src/Makefile.in && -find man -name Makefile.in -exec sed -i 's/groups\.1 / /' {} \; && - -# Disable Chinese/Korean man pages Man-DB can't format properly. - -sed -i -e 's/ ko//' -e 's/ zh_CN zh_TW//' man/Makefile.in && - -# Change default password encryption to something that _doesn't_ limit -# password lengths to 8 characters, and change the user mbox location to -# the "new" one everybody started using back in the 1990's. - -sed -i -e 's@#ENCRYPT_METHOD DES@ENCRYPT_METHOD MD5@' \ - -e 's@/var/spool/mail@/var/mail@' etc/login.defs && - -./configure --sysconfdir=/etc --without-nscd && -make -j $CPUS && -make install && -pwconv && -grpconv diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/sysklogd.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/sysklogd.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -#!/bin/sh - -make -j $CPUS && -make BINDIR=/sbin install && -cat > /etc/syslog.conf << "EOF" -auth,authpriv.* -/var/log/auth.log -*.*;auth,authpriv.none -/var/log/sys.log -daemon.* -/var/log/daemon.log -kern.* -/var/log/kern.log -mail.* -/var/log/mail.log -user.* -/var/log/user.log -*.emerg * -EOF diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/sysvinit.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/sysvinit.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,32 +0,0 @@ -#!/bin/sh - -# Use the util-linux-ng "wall" command - -sed -i -e 's/utmpdump wall/utmpdump/' \ - -e 's/mountpoint.1 wall.1/mountpoint.1/' src/Makefile && -make -C src -j $CPUS && -make -C src install && -cat > /etc/inittab << "EOF" -id:3:initdefault: - -si::sysinit:/etc/rc.d/init.d/rc sysinit - -l0:0:wait:/etc/rc.d/init.d/rc 0 -l1:S1:wait:/etc/rc.d/init.d/rc 1 -l2:2:wait:/etc/rc.d/init.d/rc 2 -l3:3:wait:/etc/rc.d/init.d/rc 3 -l4:4:wait:/etc/rc.d/init.d/rc 4 -l5:5:wait:/etc/rc.d/init.d/rc 5 -l6:6:wait:/etc/rc.d/init.d/rc 6 - -ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now - -su:S016:once:/sbin/sulogin - -1:2345:respawn:/sbin/agetty tty1 9600 -2:2345:respawn:/sbin/agetty tty2 9600 -3:2345:respawn:/sbin/agetty tty3 9600 -4:2345:respawn:/sbin/agetty tty4 9600 -5:2345:respawn:/sbin/agetty tty5 9600 -6:2345:respawn:/sbin/agetty tty6 9600 -EOF diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/tar.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/tar.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -#!/bin/sh - -sed -i /SIGPIPE/d src/tar.c && -./configure --prefix=/usr --bindir=/bin --libexecdir=/usr/sbin && -make -j $CPUS || exit 1 - -if [ ! -z "$CHECK" ] -then - sed -i '35 i AT_UNPRIVILEGED_PREREQ' tests/remfiles01.at && - make check || exit 1 -fi - -make install diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/texinfo.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/texinfo.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -generic-check.sh \ No newline at end of file diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/udev.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/udev.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -#!/bin/sh - -mkdir -p /lib/udev/devices || exit 1 -if [ ! -e /lib/udev/devices/null ] -then - mknod -m0666 /lib/udev/devices/null c 1 3 || exit 1 -fi -sed -i 's/ libudev-install-move-hook//' Makefile.in && -install -d /lib/firmware /lib/udev/devices/pts /lib/udev/devices/shm && -./configure --sysconfdir=/etc --sbindir=/sbin \ - --with-rootlibdir=/lib --libexecdir=/lib/udev --disable-extras \ - --disable-introspection && -make -j $CPUS || exit 1 -if [ ! -z "$CHECK" ] -then - make check || exit 1 -fi -make install && -rmdir /usr/share/doc/udev && -cd /mnt/packages/udev-config && -make -j $CPUS install || exit 1 - -if [ ! -z "$DOCS" ] -then - make install-doc -fi diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/util-linux-ng.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/util-linux-ng.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -#!/bin/sh - -sed -e 's@etc/adjtime@var/lib/hwclock/adjtime@g' \ - -i $(grep -rl '/etc/adjtime' .) && -mkdir -p /var/lib/hwclock && -./configure --enable-arch --enable-partx --enable-write --disable-nls && -make -j $CPUS && -make install diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/vim.nolink --- a/sources/control-images/lfs-bootstrap/mnt/build/vim.nolink Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -#!/bin/sh - -sed -i '$a #define SYS_VIMRC_FILE "/etc/vimrc"' src/feature.h && - -./configure --prefix=/usr --enable-multibyte && -make -j $CPUS || exit 1 - -if [ ! -z "$CHECK" ] -then - make test || exit 1 -fi - -make install && -ln -sf vim /usr/bin/vi || exit 1 -for i in /usr/share/man/man1/vim.1 /usr/share/man/*/man1/vim.1 -do - ln -sf vim.1 $(dirname $i)/vi.1 || exit 1 -done - -cat > /etc/vimrc << "EOF" -set nocompatible -set backspace=2 -syntax on -if (&term == "iterm") || (&term == "putty") - set background=dark -endif -EOF diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/build/zlib.sh --- a/sources/control-images/lfs-bootstrap/mnt/build/zlib.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -#!/bin/sh - -# zlib 1.2.5 accidentally shipped a generated file, which it then tries to -# overwrite in-place. This doesn't work so well on a read only filesystem. - -rm -f Makefile && - -# Fix another bug. - -sed -i 's/ifdef _LARGEFILE64_SOURCE/ifndef _LARGEFILE64_SOURCE/' zlib.h && - -# Otherwise, standard build - -./configure --prefix=/usr && -make -j $CPUS || exit 1 - -if [ ! -z "$CHECK" ] -then - make check || exit 1 -fi - -make install diff -r 260580385655 -r aabc07905de3 sources/control-images/lfs-bootstrap/mnt/package-list --- a/sources/control-images/lfs-bootstrap/mnt/package-list Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -setup -zlib -m4 #development -gmp #development -mpfr #development -mpc #development -sed #busybox -pkg-config #development -ncurses -#gettext #development internationalization -gettext-stub #development internationalization -util-linux-ng -e2fsprogs #busybox -coreutils #busybox -gawk #busybox -iana-etc -bison #development -procps #busybox -grep #busybox -readline #development -bash #development -libtool #development pointless -gdbm -inetutils #busybox? -perl -autoconf #development -automake #development -bzip2 #busybox -diffutils #busybox -file -findutils #busybox -flex #development -groff -gzip #busybox -iproute2 #busybox? -kbd #busybox? -less #busybox -make #development -man-db -module-init-tools #busybox -patch #busybox -psmisc #busybox? -shadow #busybox -sysklogd #busybox -sysvinit #busybox -tar #busybox -texinfo #development pointless -udev #busybox -vim diff -r 260580385655 -r aabc07905de3 sources/control-images/static-tools-patches/dropbear-fixstatic.patch --- a/sources/control-images/static-tools-patches/dropbear-fixstatic.patch Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -# -# old_revision [c7f6c45c46a2f8e2394756c68ae825d6e4dc7489] -# -# patch "Makefile.in" -# from [ea21753734b01f01ea1062923f4cb5eac65eadec] -# to [3dcc9b69742a8a4f59ea9f22b6d80bad2c761117] -# -============================================================ ---- Makefile.in ea21753734b01f01ea1062923f4cb5eac65eadec -+++ Makefile.in 3dcc9b69742a8a4f59ea9f22b6d80bad2c761117 -@@ -28,7 +28,7 @@ COMMONOBJS=dbutil.o buffer.o \ - queue.o \ - atomicio.o compat.o fake-rfc2553.o - --SVROBJS=@CRYPTLIB@ svr-kex.o svr-algo.o svr-auth.o sshpty.o \ -+SVROBJS=svr-kex.o svr-algo.o svr-auth.o sshpty.o \ - svr-authpasswd.o svr-authpubkey.o svr-authpubkeyoptions.o svr-session.o svr-service.o \ - svr-chansession.o svr-runopts.o svr-agentfwd.o svr-main.o svr-x11fwd.o\ - svr-tcpfwd.o svr-authpam.o -@@ -56,7 +56,7 @@ HEADERS=options.h dbutil.h session.h pac - loginrec.h atomicio.h x11fwd.h agentfwd.h tcpfwd.h compat.h \ - listener.h fake-rfc2553.h - --dropbearobjs=$(COMMONOBJS) $(CLISVROBJS) $(SVROBJS) -+dropbearobjs=$(COMMONOBJS) $(CLISVROBJS) $(SVROBJS) @CRYPTLIB@ - dbclientobjs=$(COMMONOBJS) $(CLISVROBJS) $(CLIOBJS) - dropbearkeyobjs=$(COMMONOBJS) $(KEYOBJS) - dropbearconvertobjs=$(COMMONOBJS) $(CONVERTOBJS) -@@ -167,7 +167,7 @@ ifeq ($(MULTI),1) - # multi-binary compilation. - MULTIOBJS= - ifeq ($(MULTI),1) -- MULTIOBJS=dbmulti.o $(sort $(foreach prog, $(PROGRAMS), $($(prog)objs))) -+ MULTIOBJS=dbmulti.o $(sort $(foreach prog, $(PROGRAMS), $($(prog)objs))) @CRYPTLIB@ - CFLAGS+=$(addprefix -DDBMULTI_, $(PROGRAMS)) -DDROPBEAR_MULTI - endif - diff -r 260580385655 -r aabc07905de3 sources/control-images/static-tools-patches/strace-arm-eabi.patch --- a/sources/control-images/static-tools-patches/strace-arm-eabi.patch Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ ---- a/linux/arm/syscallent.h -+++ b/linux/arm/syscallent.h -@@ -453,7 +453,7 @@ - { 5, TN, sys_recvmsg, "recvmsg" }, /* 417 */ - { 4, TN, sys_accept4, "accept4" }, /* 418 */ - --#if SYS_ipc_subcall != 419 -+#if defined(SYS_ipc_subcall) && (SYS_ipc_subcall != 419) - #error fix me - #endif - { 4, 0, printargs, "ipc_subcall" }, /* 419 */ diff -r 260580385655 -r aabc07905de3 sources/control-images/static-tools-patches/strace-fixnet.patch --- a/sources/control-images/static-tools-patches/strace-fixnet.patch Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ -diff -ru strace/configure strace.new/configure ---- strace/configure 2009-10-21 12:41:11.000000000 -0500 -+++ strace.new/configure 2010-02-05 01:30:15.000000000 -0600 -@@ -5880,7 +5880,7 @@ - do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` - ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "#include --#include -+#include - " - eval as_val=\$$as_ac_Header - if test "x$as_val" = x""yes; then : -diff -ru strace/configure.ac strace.new/configure.ac ---- strace/configure.ac 2009-10-12 14:54:43.000000000 -0500 -+++ strace.new/configure.ac 2010-02-05 01:30:35.000000000 -0600 -@@ -258,7 +258,7 @@ - ], [], []) - AC_CHECK_HEADERS([linux/icmp.h linux/in6.h linux/netlink.h linux/if_packet.h], - [], [], [#include --#include ]) -+#include ]) - AC_CHECK_HEADERS([asm/sigcontext.h], [], [], [#include ]) - AC_CHECK_TYPES([struct sigcontext_struct, - struct sigcontext],,, [#include ]) diff -r 260580385655 -r aabc07905de3 sources/control-images/static-tools.sh --- a/sources/control-images/static-tools.sh Sat Jul 23 21:55:29 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,94 +0,0 @@ -#!/bin/bash - -# Download all the source tarballs we haven't got up-to-date copies of. - -# The tarballs are downloaded into the "packages" directory, which is -# created as needed. - -source sources/include.sh || exit 1 - -PATCHDIR="$SOURCES/control-images/static-tools-patches" -SRCDIR="$SRCDIR/static-tools" && mkdir -p "$SRCDIR" || dienow -WORK="$BUILD/control-images/static-tools" && blank_tempdir "$WORK" -SRCTREE="$WORK" - -EXTRACT_ALL=1 - -echo "=== Download source code." - -# Note: set SHA1= blank to skip checksum validation. - -URL=http://downloads.sf.net/sourceforge/strace/strace-4.5.19.tar.bz2 \ -SHA1=5554c2fd8ffae5c1e2b289b2024aa85a0889c989 \ -maybe_fork download || dienow - -URL=http://zlib.net/zlib-1.2.5.tar.bz2 \ -SHA1=543fa9abff0442edca308772d6cef85557677e02 \ -maybe_fork "download || dienow" - -URL=http://matt.ucc.asn.au/dropbear/releases/dropbear-0.53.1.tar.bz2 \ -SHA1= \ -maybe_fork download || dienow - -URL=http://kernel.org/pub/software/utils/pciutils/pciutils-3.1.7.tar.bz2 \ -SHA1= \ -maybe_fork download || dienow - -echo === Got all source. - -cleanup_oldfiles - -cat > "$WORK"/init << 'EOF' || dienow -#!/bin/bash - -upload_result() -{ - ftpput $FTP_SERVER -P $FTP_PORT "$1-$HOST" "$1" -} - -echo Started second stage init - -echo === Native build static zlib - -cp -sfR /mnt/zlib zlib && -cd zlib && -# -rm -f Makefile && -./configure && -make -j $CPUS && -cd .. || exit 1 - -echo === $HOST Native build static dropbear - -cp -sfR /mnt/dropbear dropbear && -cd dropbear && -CFLAGS="-I ../zlib -Os" LDFLAGS="--static -L ../zlib" ./configure && -sed -i 's@/usr/bin/dbclient@ssh@' options.h && -make -j $CPUS PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" MULTI=1 SCPPROGRESS=1 && -strip dropbearmulti && -upload_result dropbearmulti && -cd .. && -rm -rf dropbear || exit 1 - -echo === $HOST native build static strace - -cp -sfR /mnt/strace strace && -cd strace && -CFLAGS="--static -Os" ./configure && -make -j $CPUS && -strip strace && -upload_result strace && -cd .. && -rm -rf strace || dienow - -echo === $HOST native build rsync - -sync - -EOF - -chmod +x "$WORK"/init || dienow - -cd "$TOP" - -mksquashfs "$WORK" "$WORK.hdc" -noappend -all-root