diff options
author | Mario Izquierdo (mariodebian) <mariodebian@gmail.com> | 2012-06-22 12:42:53 +0100 |
---|---|---|
committer | Mario Izquierdo (mariodebian) <mariodebian@gmail.com> | 2012-06-22 12:42:53 +0100 |
commit | 85e11fb132b2b81b50a45647b070e8f6fd648d65 (patch) | |
tree | 1238a0e269d68604457ef6435e1c7ec18ffe7e20 /hooks/tcosbin |
tcos (0.89.90) unstable; urgency=low
* debian/initramfs-tools-tcos.postrm:
- piuparts, don't call delgroup if can't
* Add overlayfs as aufs alternative
* hooks-addons/clean_initramfs: multiarch with libpci3
* Simplify grep commands
* Install conf/tcos.conf instead of conf/tcos.conf.etc
* Use a global LIB_MULTIARCH var
* tcos-standalone French translation, thanks to Julien Patriarca, (closes: #672135)
# imported from the archive
Diffstat (limited to 'hooks/tcosbin')
-rwxr-xr-x | hooks/tcosbin | 247 |
1 files changed, 247 insertions, 0 deletions
diff --git a/hooks/tcosbin b/hooks/tcosbin new file mode 100755 index 0000000..556fe07 --- /dev/null +++ b/hooks/tcosbin @@ -0,0 +1,247 @@ +#!/bin/bash + +# new header not using prereqs +if [ "$1" = "prereqs" ]; then + echo "" + exit 0 +fi + + + +# Hooks for install binaries for tcos boot +# +. /usr/share/initramfs-tools/hook-functions + +# read conf file => /etc/tcos/initramfs.conf +. $CONFDIR/initramfs.conf + +# read from env vars TCOS_BOOT +TCOS_BOOT=$(env| awk -F "=" '/^TCOS_BOOT=/ {print $2}') +if [ "${TCOS_BOOT}" != "" ]; then + BOOT=$TCOS_BOOT +fi + + +if [ "${BOOT}" = "tcos" ]; then + +. $CONFDIR/tcos.conf +[ -f /var/lib/tcos/version.conf ] && . /var/lib/tcos/version.conf +. $TCOS_DIR/tcos-generation-functions.sh + +for tpl in $(tcos_get_templates); do + _verbose "(tcosbin) loading template $(basename $tpl)" + . $tpl +done + + +# load forced settings for derivatives +if [ -d $CONFDIR/conf.d/ ]; then + for file in $CONFDIR/conf.d/tcos*conf; do + [ -e $file ] && . $file + done +fi + + +# load hooks-addons (small files with group of packages inside) +_files=$(ls -1 ${TCOS_DIR}/hooks-addons/ | grep -v -e .dpkg -e .svn) +for addon in $_files ; do + _verbose "(tcosbin) LOADING: system addon: ${addon}" + . ${TCOS_DIR}/hooks-addons/${addon} +done + +# load hooks-addons in /etc/tcos (small files with group of packages inside) +_files=$(ls -1 ${TCOS_CONF}/hooks-addons/ | grep -v -e dpkg -e .svn) +for addon in $_files ; do + _echo " LOADING: personal addon: ${TCOS_CONF}/hooks-addons/${addon}" + . ${TCOS_CONF}/hooks-addons/${addon} +done + + +# read all files in ${TCOS_CONF}/hacking/ and load it ( personal files ) + +_files=$(ls -1 ${TCOS_CONF}/hacking/ | grep -v -e dpkg -e .svn) +for hack in $_files ; do + if [ "${hack}" != "template" ]; then + _echo " LOADING: hack: ${TCOS_CONF}/hacking/${hack}" + fi + . ${TCOS_CONF}/hacking/${hack} +done + + +# to be sure that /usr have files and not links +# we search links delete them and put file instead +convert_links2files + + +# read from env vars TCOS_BOOT +TCOS_ENV_DISABLE_SQUASHFS=$(env| awk -F "=" '/^TCOS_ENV_DISABLE_SQUASHFS=/ {print $2}') +if [ "${TCOS_ENV_DISABLE_SQUASHFS}" != "" ]; then + TCOS_DISABLE_SQUASHFS=$TCOS_ENV_DISABLE_SQUASHFS +fi + +MKSQUASHFS=mksquashfs +[ -x /usr/bin/mksquashfs ] && MKSQUASHFS=/usr/bin/mksquashfs +[ -x /usr/sbin/mksquashfs ] && MKSQUASHFS=/usr/sbin/mksquashfs + + +if [ -z $TCOS_DISABLE_SQUASHFS ]; then + # create usr.squashfs + if env | grep -q ^TCOS_SUFFIX ; then + TCOS_SUFFIX=$(env | grep ^TCOS_SUFFIX | awk -F "=" '{print $2}') + echo "SQUASHFS_FILE=\"usr${TCOS_SUFFIX}-${version}.squashfs\"" >> $DESTDIR/conf/tcos.conf + fi + SQUASHFS_FILE="usr${TCOS_SUFFIX}-${version}.squashfs" + _echo " Creating ${SQUASHFS_FILE} of /usr" + mkdir -p $DESTDIR/mnt/tmp + $MKSQUASHFS $DESTDIR/usr/ $DESTDIR/mnt/tmp/${SQUASHFS_FILE} > /tmp/tcos-mksquashfs.log 2>&1 + + # check for mksquashfs errors + if [ $? != 0 ]; then + _echo " ERROR:" + _echo " mksquashfs error" + _echo "#############################################" + cat /tmp/tcos-mksquashfs.log + _echo "#############################################" + fi + rm -f /tmp/tcos-mksquashfs.log + + # mksquashfs create files with 700 rights, change to 644 + chmod 644 $DESTDIR/mnt/tmp/${SQUASHFS_FILE} + rm -rf $DESTDIR/usr/ && mkdir $DESTDIR/usr + + # overwrite TCOS_SQUASHFS from shell env var + # this allow to create cdrom with usr.squashfs embedded + if env | grep -q ^TCOS_SQUASHFS ; then + TCOS_SQUASHFS=$(env | grep ^TCOS_SQUASHFS | awk -F "=" '{print $2}') + _echo "DEBUG: overwrite TCOS_SQUASHFS=$TCOS_SQUASHFS" + else + if [ "${TCOS_SQUASHFS}" = "1" ] ; then + _echo " Moving ${SQUASHFS_FILE} to ${TFTP_DIR}" + mv $DESTDIR/mnt/tmp/${SQUASHFS_FILE} ${TFTP_DIR} + fi + fi # end of TCOS_SQUASHFS +fi # end of TCOS_DISABLE_SQUASHFS + + +TCOS_INCLUDE_INIT=1 +. ${TCOS_DIR}/hooks-addons/00init +unset TCOS_INCLUDE_INIT + + +# clean /lib/tls if needed +if [ -d $DESTDIR/lib/tls ]; then + _echo " * WARNING: /lib/tls exists in image" + for lib in ${DESTDIR}/lib/tls/*; do + tlslib=$lib + notlslib=$(echo $lib | sed 's/tls\///g') + notlslib1=$(basename $lib) + notlslib2=$(basename $lib | awk -F "." '{print $1}') + if [ -f $notlslib ]; then + _echo "WARNING rm -f $lib" + elif [ -f /lib/${notlslib1} ]; then + _echo "WARNING cp -a /lib/${notlslib} $DESTDIR/lib" + else + _echo "$tlslib not found" + fi + done +fi # end of /lib/tls dir exists + + +# clean /lib/i686 if needed +if [ -d $DESTDIR/lib/i686 ]; then + # convert symlinks to files into lib/i686 dir + convert_links2files "lib/i686" + + for lib in $(find ${DESTDIR}/lib/i686 -type f); do + i686lib=$lib + noi686lib=$(echo $lib | sed 's/i686\/cmov\///g') + noi686lib1=$(basename $lib) + if [ -f $noi686lib ]; then + rm -f $lib + elif [ -f /lib/${noi686lib1} ]; then + cp -f /lib/${noi686lib1} $DESTDIR/lib/ + rm -f $lib + else + _echo "WARNING equivalent to $i686lib not found" + fi + done + + (rmdir ${DESTDIR}/lib/i686/cmov && rmdir ${DESTDIR}/lib/i686) || _echo " * WARNING can't delete /lib/i686 from image (not empty)" +fi # end of /lib/i686 dir exists + +# clean /usr/lib/i686 if needed +if [ -d $DESTDIR/usr/lib/i686 ]; then + # convert symlinks to files into usr/lib/i686 dir + convert_links2files "usr/lib/i686" + + for lib in $(find ${DESTDIR}/usr/lib/i686 -type f); do + i686lib=$lib + noi686lib=$(echo $lib | sed 's/i686\/cmov\///g') + noi686lib1=$(basename $lib) + if [ -f $noi686lib ]; then + rm -f $lib + elif [ -f /usr/lib/${noi686lib1} ]; then + cp -f /usr/lib/${noi686lib1} $DESTDIR/usr/lib/ + rm -f $lib + else + _echo "WARNING equivalent to $i686lib not found" + fi + done + + (rmdir ${DESTDIR}/usr/lib/i686/cmov && rmdir ${DESTDIR}/usr/lib/i686) || _echo " * WARNING can't delete /usr/lib/i686 from image (not empty)" +fi # end of /usr/lib/i686 dir exists + + +if [ $TCOS_DISABLE_ACPI ]; then + stat_before + rm -rf $DESTDIR/lib/modules/*/drivers/md/ + rm -rf $DESTDIR/lib/modules/*/drivers/acpi/ + rm -rf $DESTDIR/scripts/usb* + rm -rf $DESTDIR/scripts/live* + rm -rf $DESTDIR/scripts/local* + rm -rf $DESTDIR/scripts/casper* + rm -rf $DESTDIR/scripts/init-premount/thermal + rm -rf $DESTDIR/sbin/mdadm + rm -rf $DESTDIR/scripts/init-premount/mdadm + rm -rf $DESTDIR/sbin/mdrun + rm -rf $DESTDIR/sbin/vgchange + rm -rf $DESTDIR/sbin/cryptsetup + rm -rf $DESTDIR/sbin/dmsetup + rm -rf $DESTDIR/lib/lvm* + rm -rf ${DESTDIR}/lib/modules/${version}/kernel/drivers/md/ + rm -rf ${DESTDIR}/lib/modules/${version}/kernel/drivers/scsi + manual_add_modules scsi_mod + manual_add_modules sd_mod + manual_add_modules sr_mod + + stat_after "Disable ACPI and RAID support" +else + _verbose "(tcosbin)TCOS_DISABLE_ACPI not set" +fi + + +# read shell env variables to search TCOS_ALL_MODULES +if env | grep -q ^TCOS_ALL_MODULES ; then + TCOS_ALL_MODULES=$(env | grep ^TCOS_ALL_MODULES | awk -F "=" '{print $2}') +fi + +# create allmodules.squashfs +if [ $TCOS_ALL_MODULES ]; then + _echo "Running depmod of kernel ${version}" + DEPMOD_ARGS="-a -F /boot/System.map-${TCOS_KERNEL}" + if depmod -h 2>&1|grep -q map; then + DEPMOD_ARGS="-am -F /boot/System.map-${TCOS_KERNEL}" + fi + depmod $DEPMOD_ARGS ${version} + _echo " Creating allmodules-${version}.squashfs file" + mkdir -p $DESTDIR/mnt/tmp > /dev/null 2>&1 + $MKSQUASHFS /lib/modules/${version}/ $DESTDIR/mnt/tmp/allmodules-${version}.squashfs -e volatile -noappend > /dev/null 2>&1 + # mksquashfs create files with 700 rights, change to 644 + chmod 644 ${DESTDIR}/mnt/tmp/allmodules-${version}.squashfs + _echo " Moving allmodules-${version}.squashfs to ${TFTP_DIR}" + mv ${DESTDIR}/mnt/tmp/allmodules-${version}.squashfs ${TFTP_DIR} +fi + + +fi + |