/usr/lib/live/build/chroot_hacks is in live-build 3.0.5-1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 | #!/bin/sh
## live-build(7) - System Build Scripts
## Copyright (C) 2006-2013 Daniel Baumann <daniel@debian.org>
##
## This program comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
## This is free software, and you are welcome to redistribute it
## under certain conditions; see COPYING for details.
set -e
# Including common functions
[ -e "${LIVE_BUILD}/scripts/build.sh" ] && . "${LIVE_BUILD}/scripts/build.sh" || . /usr/lib/live/build.sh
# Setting static variables
DESCRIPTION="$(Echo 'execute hacks in chroot')"
HELP=""
USAGE="${PROGRAM} [--force]"
Arguments "${@}"
# Reading configuration files
Read_conffiles config/all config/common config/bootstrap config/chroot config/binary config/source
Set_defaults
Echo_message "Begin executing hacks..."
# Requiring stage file
Require_stagefile .build/config .build/bootstrap
# Checking stage file
Check_stagefile .build/chroot_hacks
# Checking lock file
Check_lockfile .lock
# Creating lock file
Create_lockfile .lock
case "${LB_BINARY_IMAGES}" in
netboot)
if [ ! -f chroot/sbin/mount.cifs ]
then
Apt chroot install cifs-utils
fi
if [ ! -d chroot/etc/initramfs-tools ]
then
mkdir chroot/etc/initramfs-tools
fi
# Configuring initramfs for NFS
if ! grep -qs "BOOT=nfs" chroot/etc/initramfs-tools/initramfs.conf
then
echo "BOOT=nfs" >> chroot/etc/initramfs-tools/initramfs.conf
fi
if ! grep -qs "NFSROOT=auto" chroot/etc/initramfs-tools/initramfs.conf
then
echo "NFSROOT=auto" >> chroot/etc/initramfs-tools/initramfs.conf
fi
;;
esac
# Update initramfs (always, because of udev rules in initrd)
case "${LB_INITRAMFS}" in
casper)
UPDATE_INITRAMFS_OPTIONS="CASPER_GENERATE_UUID=1"
;;
live-boot)
#UPDATE_INITRAMFS_OPTIONS="LIVE_GENERATE_UUID=1"
;;
esac
if [ "${LB_INITRAMFS}" != "none" ]
then
Chroot chroot "${UPDATE_INITRAMFS_OPTIONS} update-initramfs -k all -t -u"
fi
# We probably ought to use COMPRESS= in a temporary file in
# /etc/initramfs-tools/conf.d/ instead, but it's hard to pass options that
# way.
case "${LB_INITRAMFS_COMPRESSION}" in
gzip)
;;
bzip2)
for INITRAMFS in $(find chroot/boot -name 'initrd*'); do
zcat "${INITRAMFS}" | bzip2 -c ${BZIP2_OPTIONS} > "${INITRAMFS}.new"
mv "${INITRAMFS}.new" "${INITRAMFS}"
done
;;
lzma)
# We probably ought to use COMPRESS= in a temporary file in
# /etc/initramfs-tools/conf.d/ instead, but it's hard to
# pass options that way.
for INITRAMFS in $(find chroot/boot -name 'initrd*'); do
zcat "${INITRAMFS}" | lzma -c ${LZMA_OPTIONS} > "${INITRAMFS}.new"
mv "${INITRAMFS}.new" "${INITRAMFS}"
done
;;
esac
case "${LB_PARENT_DISTRIBUTION}" in
squeeze)
# Ensure readable permissions on initramfs. loop-aes-utils sets umask to
# protect GPG keys, which live-build does not support.
# Note: Use find rather than chmod on the wildcard, one never knows what
# people might do in local hooks, and there might be no initrds at all.
find chroot/boot -name 'initrd*' -print0 | xargs -r -0 chmod go+r
;;
esac
if [ -n "${LB_ROOT_COMMAND}" ]
then
${LB_ROOT_COMMAND} chown -R --quiet $(whoami):$(whoami) chroot
fi
case "${LB_INITRAMFS}" in
casper)
ID="999"
;;
live-boot)
ID="1000"
;;
*)
ID=""
;;
esac
if [ "${LB_DEBIAN_INSTALLER}" = "live" ]
then
# This is a temporary hack to get rid of fstab;
# needs cleanup in live-boot first to proper fix.
rm -f chroot/etc/fstab
touch chroot/etc/fstab
fi
if [ "${LB_EXPOSED_ROOT}" = "true" ]
then
# Make sure RW dirs exist so that the initramfs script has
# a directory in which to bind the tmpfs filesystems
COW_DIRECTORIES="/home /live /tmp /var/lib/live /var/lock /var/log /var/run /var/tmp /var/spool"
for DIRECTORY in ${COW_DIRECTORIES}
do
mkdir -p chroot/"${DIRECTORY}"
done
# Config files which need to be RW
COW_FILES="/etc/adjtime /etc/fstab /etc/hostname /etc/hosts /etc/live.conf /etc/network/interfaces /etc/resolv.conf /etc/udev/rules.d/*persistent-net.rules /etc/udev/rules.d/*persistent-cd.rules /etc/X11/xorg.conf"
# Where we will store RW config files
RW_DIRECTORY="/var/lib/live"
for FILE in ${COW_FILES}
do
DIRECTORY="$(dirname ${FILE})"
FILE="$(basename ${FILE})"
RELATIVE_PATH="$(echo ${DIRECTORY} | sed 's|[^/]\+|..|g; s|^/||g')"
# Touch files in case they don't yet exist
mkdir -p chroot/${DIRECTORY}
touch chroot/${DIRECTORY}/${FILE}
# Move files to the read-write directory
mkdir -p chroot/${RW_DIRECTORY}/${DIRECTORY}
mv chroot/${DIRECTORY}/${FILE} chroot/${RW_DIRECTORY}/${DIRECTORY}
# Create a symbolic link to RW config file
ln -s ${RELATIVE_PATH}/${RW_DIRECTORY}/${DIRECTORY}/${FILE} chroot/${DIRECTORY}/${FILE}
done
# Mount doesn't write to a symlink so use /proc/mounts instead,
# see debian bug #154438 for more info
rm -f chroot/etc/mtab
ln -s /proc/mounts chroot/etc/mtab
fi
if [ "${LB_SWAP_FILE_PATH}" ]; then
dd if=/dev/zero of="chroot/${LB_SWAP_FILE_PATH}" bs=1024k count="${LB_SWAP_FILE_SIZE}"
mkswap "chroot/${LB_SWAP_FILE_PATH}"
fi
# Creating stage file
Create_stagefile .build/chroot_hacks
|