summaryrefslogtreecommitdiffstats
path: root/build_tools/clarch/larch/run/jams.cachepacks.larch.patch
diff options
context:
space:
mode:
Diffstat (limited to 'build_tools/clarch/larch/run/jams.cachepacks.larch.patch')
-rw-r--r--build_tools/clarch/larch/run/jams.cachepacks.larch.patch352
1 files changed, 352 insertions, 0 deletions
diff --git a/build_tools/clarch/larch/run/jams.cachepacks.larch.patch b/build_tools/clarch/larch/run/jams.cachepacks.larch.patch
new file mode 100644
index 0000000..2e40e17
--- /dev/null
+++ b/build_tools/clarch/larch/run/jams.cachepacks.larch.patch
@@ -0,0 +1,352 @@
+diff -Nur run.orig/cachepacs run/cachepacs
+--- run.orig/cachepacs 1970-01-01 00:00:00.000000000 +0000
++++ run/cachepacs 2008-08-29 02:34:57.000000000 +0000
+@@ -0,0 +1,139 @@
++#! /bin/bash
++#
++# cachepacs - install pkgs to cache dir, but don't isntall
++#
++# Author: James Meyer (based on inpacs)
++
++
++# Working directory:
++TMPDIR=/tmp/inpacs$$
++# File containing (filtered) list of base packages + added packages
++basepacks=${TMPDIR}/basepacks
++
++APP="$( basename $0 )"
++
++exitfunc () {
++ # Remove temporary files
++ rm -rf ${TMPDIR}
++ exit $1
++}
++
++# Default pacman db path (this is a statement, not a configuration, so
++# do not change it!)
++DBPATH="/var/lib/pacman"
++
++# Default package cache, on the target
++TARGETCACHE="${CACHE}"
++# A host or remote package cache:
++HOSTCACHE=""
++# Absolute /path/to/file containing list of packages for 2nd install phase:
++ADDEDPACKS=""
++# Source file for base package list:
++BASEPACKSFILE=""
++# Source file for list of vetoed base packages:
++VETOFILE=""
++# Source directory for pacman database directories:
++DBDIR=""
++# pacman executable:
++PACMANX="pacman -f"
++# pacman configuration file
++PACMANK="/etc/pacman.conf"
++
++checkfile ()
++{
++ f=$( readlink -m $1 )
++ if ! [ -f "${f}" ]; then
++ echo "ERROR: File doesn't exist: ${f}"
++ exitfunc
++ fi
++}
++
++checkdir ()
++{
++ f=$( readlink -m $1 )
++ if ! [ -d "${f}" ]; then
++ echo "ERROR: Directory doesn't exist: ${f}"
++ exitfunc
++ fi
++}
++
++
++while getopts ":k:a:c:b:x:y:P:" Option
++do
++ case ${Option} in
++ k ) checkfile ${OPTARG}
++ PACMANK=${f} ;;
++ a ) checkfile ${OPTARG}
++ CACHEPACKSFILE=${f} ;;
++ y ) checkdir ${OPTARG}
++ DBDIR=${f} ;;
++ P ) checkfile ${OPTARG}
++ PACMANX=${f} ;;
++ #* ) usage ;;
++ esac
++done
++shift $((${OPTIND} - 1))
++INSTLDIR="$1"
++
++
++# grep the cachedir out of the installed pacman.conf
++PCCACHE=`grep CacheDir $INSTLDIR/etc/pacman.conf|cut -d= -f2|cut -d\/ -f2-`
++CACHEDIR=${INSTLDIR}/$PCCACHE
++
++echo "INSTLDIR=${INSTLDIR}"
++echo "PACMANK=${PACMANK}"
++echo "CACHEDIR=${CACHEDIR}"
++echo "DBDIR=${DBDIR}"
++echo "PACMANX=${PACMANX}"
++echo
++
++
++# test if the script is started by root user. If not, exit
++if [ $UID -ne 0 ]; then
++ echo "Only root can run ${APP}"; exitfunc 1
++fi
++
++echo "//"
++echo "// downloading packages to ${CACHEDIR}"
++
++PACMAN="${PACMANX} --config ${PACMANK} --noconfirm"
++
++rm -rf ${TMPDIR}
++mkdir -p ${TMPDIR}
++
++# Helper function for installing a list of packages
++doInstall() {
++ mkdir -p ${INSTLDIR}/sys
++ mkdir -p ${INSTLDIR}/proc
++ mount --bind /sys ${INSTLDIR}/sys
++ mount --bind /proc ${INSTLDIR}/proc
++ ${PACMAN} -r ${INSTLDIR} -Sw $1
++ RET=$?
++ umount ${INSTLDIR}/proc
++ umount ${INSTLDIR}/sys
++ if [ ${RET} -ne 0 ]; then
++ echo "//"
++ echo "// Package $1 FAILED."
++ echo "//"
++ return 1
++ fi
++}
++
++
++PACMAN="${PACMAN} --cachedir $CACHEDIR"
++
++########## GET LIST OF CACHE PACKAGES
++echo "//"
++echo "// ** Getting cache package list ..."
++if [ -n "${CACHEPACKSFILE}" ]; then
++ echo "// from: ${CACHEPACKSFILE}"
++ CACHEPKGS=$( cat ${CACHEPACKSFILE} | grep -v "#" )
++else
++ echo " no cache package file found"
++ exit 0
++fi
++
++
++doInstall "${CACHEPKGS}"
++if [ $? -ne 0 ]; then exitfunc 1; fi
++exitfunc
+diff -Nur run.orig/inpacs run/inpacs
+--- run.orig/inpacs 2008-08-10 10:51:15.000000000 +0000
++++ run/inpacs 2008-08-29 02:29:31.000000000 +0000
+@@ -116,7 +116,7 @@
+ # Source directory for pacman database directories:
+ DBDIR=""
+ # pacman executable:
+-PACMANX="pacman"
++PACMANX="pacman -f"
+ # pacman configuration file
+ PACMANK="/etc/pacman.conf"
+
+diff -Nur run.orig/jams.larch.patch run/jams.larch.patch
+--- run.orig/jams.larch.patch 1970-01-01 00:00:00.000000000 +0000
++++ run/jams.larch.patch 2008-08-29 02:34:34.000000000 +0000
+@@ -0,0 +1,110 @@
++Only in run/: cachepacs
++diff -wU4 run.orig/inpacs run/inpacs
++--- run.orig/inpacs 2008-08-10 10:51:15.000000000 +0000
+++++ run/inpacs 2008-08-29 02:29:31.000000000 +0000
++@@ -115,9 +115,9 @@
++ VETOFILE=""
++ # Source directory for pacman database directories:
++ DBDIR=""
++ # pacman executable:
++-PACMANX="pacman"
+++PACMANX="pacman -f"
++ # pacman configuration file
++ PACMANK="/etc/pacman.conf"
++
++ checkfile ()
++diff -wU4 run.orig/mklarch run/mklarch
++--- run.orig/mklarch 2008-08-10 10:51:15.000000000 +0000
+++++ run/mklarch 2008-08-29 02:29:45.000000000 +0000
++@@ -22,9 +22,8 @@
++ #
++ #----------------------------------------------------------------------------
++ # 2008.06.22
++
++-
++ # directory to use for building the CD - the installation root
++ # It must have LOTS of space, ~ 4GB for a 700MB CD
++ INSTLDIR=/home/larchroot
++
++@@ -162,8 +161,9 @@
++ fi
++
++ for fd in $( ls -A ${INSTLDIR} ); do
++ rm -rf ${INSTLDIR}/${fd}
+++#lookforme
++ done
++ mkdir -p ${LARCHBUILD}
++
++ ############### Call 'inpacs' to do the installation
++@@ -186,9 +186,8 @@
++ exit 1
++ fi
++ fi
++ INPACSO="${INPACSO} -k pacman.conf"
++-
++ # If necessary add the larch repository to pacman.conf
++ if ! grep '^[larch5]' pacman.conf &>/dev/null; then
++ if [ -d larchrepo ]; then
++ larch5path="file://$( readlink -f larchrepo )"
++@@ -198,14 +197,15 @@
++ sysarch="i686"
++ fi
++ larch5path="${larch5path}/${sysarch}"
++ fi
++- sed "/\[testing\]/ i \
++-[larch5]\n\
++-Server = ${larch5path}\n\
++-#larch5---\n" -i pacman.conf
+++ #sed "/\[testing\]/ i \
+++ echo "[larch5] " >> pacman.conf
+++ echo "Server = ${larch5path}" >> pacman.conf
++ fi
++
+++
+++
++ if ! which pacman &>/dev/null; then
++ if ! [ -x ${startdir}/pacman ]; then
++ echo "ERROR: Couldn't find pacman executable"
++ exit 1
++@@ -217,17 +217,21 @@
++ if [ $? -ne 0 ]; then exit 1; fi
++
++ # Use build version of pacman.conf in live system, without [larch5] repository.
++ # This can be overwritten by a pacman.conf in the profile's overlay.
+++
++ rm -f ${INSTLDIR}/etc/pacman.conf
++-if [ -f pacman.conf.0 ]; then
+++if [ -f ${PROFILE}/pacman.conf ]; then
++ # This file should be used in preference to pacman.conf - it is created by
++ # larch-setup on non-Arch systems before commenting out the 'Include' lines.
++- cp pacman.conf.0 ${INSTLDIR}/etc/pacman.conf
+++ cp ${PROFILE}/pacman.conf ${INSTLDIR}/etc/pacman.conf
++ else
++ sed '/^\[larch5\]/,/^ *$/ d' <pacman.conf >${INSTLDIR}/etc/pacman.conf
++ fi
++
+++cachepacs -a ${PROFILE}/cache_packs $INPACSO -d ${INSTLDIR}
+++
+++
++ # Generate glibc locales
++ if [ -f ${PROFILE}/locale.gen ]; then
++ echo
++ echo "********** Generating locales **********"
++@@ -247,8 +251,17 @@
++ fi
++
++ echo "// ${APP} finished installation of Arch system"
++ echo "//"
+++
+++#run script to post-process the new installation
+++if [ -f ${PROFILE}/post-process.sh ]
+++then
+++ ${PROFILE}/post-process.sh ${INSTLDIR} ${PROFILE}
+++ echo ${PROFILE}/post-process.sh ${INSTLDIR} ${PROFILE}
+++fi
+++
+++
++ if [ -z "${NOLIVE}" ]; then
++ # Get live CD build functions
++ . ${LARCHDATA}/buildlive
++ mklive
+diff -Nur run.orig/mklarch run/mklarch
+--- run.orig/mklarch 2008-08-10 10:51:15.000000000 +0000
++++ run/mklarch 2008-08-29 02:29:45.000000000 +0000
+@@ -23,7 +23,6 @@
+ #----------------------------------------------------------------------------
+ # 2008.06.22
+
+-
+ # directory to use for building the CD - the installation root
+ # It must have LOTS of space, ~ 4GB for a 700MB CD
+ INSTLDIR=/home/larchroot
+@@ -163,6 +162,7 @@
+
+ for fd in $( ls -A ${INSTLDIR} ); do
+ rm -rf ${INSTLDIR}/${fd}
++#lookforme
+ done
+ mkdir -p ${LARCHBUILD}
+
+@@ -187,7 +187,6 @@
+ fi
+ fi
+ INPACSO="${INPACSO} -k pacman.conf"
+-
+ # If necessary add the larch repository to pacman.conf
+ if ! grep '^[larch5]' pacman.conf &>/dev/null; then
+ if [ -d larchrepo ]; then
+@@ -199,12 +198,13 @@
+ fi
+ larch5path="${larch5path}/${sysarch}"
+ fi
+- sed "/\[testing\]/ i \
+-[larch5]\n\
+-Server = ${larch5path}\n\
+-#larch5---\n" -i pacman.conf
++ #sed "/\[testing\]/ i \
++ echo "[larch5] " >> pacman.conf
++ echo "Server = ${larch5path}" >> pacman.conf
+ fi
+
++
++
+ if ! which pacman &>/dev/null; then
+ if ! [ -x ${startdir}/pacman ]; then
+ echo "ERROR: Couldn't find pacman executable"
+@@ -218,15 +218,19 @@
+
+ # Use build version of pacman.conf in live system, without [larch5] repository.
+ # This can be overwritten by a pacman.conf in the profile's overlay.
++
+ rm -f ${INSTLDIR}/etc/pacman.conf
+-if [ -f pacman.conf.0 ]; then
++if [ -f ${PROFILE}/pacman.conf ]; then
+ # This file should be used in preference to pacman.conf - it is created by
+ # larch-setup on non-Arch systems before commenting out the 'Include' lines.
+- cp pacman.conf.0 ${INSTLDIR}/etc/pacman.conf
++ cp ${PROFILE}/pacman.conf ${INSTLDIR}/etc/pacman.conf
+ else
+ sed '/^\[larch5\]/,/^ *$/ d' <pacman.conf >${INSTLDIR}/etc/pacman.conf
+ fi
+
++cachepacs -a ${PROFILE}/cache_packs $INPACSO -d ${INSTLDIR}
++
++
+ # Generate glibc locales
+ if [ -f ${PROFILE}/locale.gen ]; then
+ echo
+@@ -248,6 +252,15 @@
+
+ echo "// ${APP} finished installation of Arch system"
+ echo "//"
++
++#run script to post-process the new installation
++if [ -f ${PROFILE}/post-process.sh ]
++then
++ ${PROFILE}/post-process.sh ${INSTLDIR} ${PROFILE}
++ echo ${PROFILE}/post-process.sh ${INSTLDIR} ${PROFILE}
++fi
++
++
+ if [ -z "${NOLIVE}" ]; then
+ # Get live CD build functions
+ . ${LARCHDATA}/buildlive