/usr/lib/live/build/source_debian is in live-build 1:20170213.
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 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 | #!/bin/sh
## live-build(7) - System Build Scripts
## Copyright (C) 2006-2015 Daniel Baumann <mail@daniel-baumann.ch>
##
## 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 'debian sources')"
HELP=""
USAGE="${PROGRAM} [--force]"
Arguments "${@}"
# Reading configuration files
Read_conffiles config/all config/common config/bootstrap config/chroot config/binary config/source
Set_defaults
if [ "${LB_SOURCE}" != "true" ]
then
exit 0
fi
Echo_message "Begin downloading sources..."
# Requiring stage file
Require_stagefile .build/config .build/bootstrap
# Checking stage file
Check_stagefile .build/source_debian
# Checking lock file
Check_lockfile .lock
# Creating lock file
Create_lockfile .lock
# Remove old sources
if [ -d source/debian ]
then
rm -rf source/debian
fi
# Download sources
Chroot chroot "dpkg --get-selections" | awk '{ print $1 }' > source-selection.txt
echo "${LB_BOOTLOADERS}" | \
while IFS="," read -r BOOTLOADER
do
cat >> source-selection.txt << EOF
${BOOTLOADER}
EOF
done
cat >> source-selection.txt << EOF
live-build
EOF
case "${LB_BINARY_IMAGES}" in
iso*)
echo "xorriso" >> source-selection.txt
;;
hdd*)
echo "parted" >> source-selection.txt
;;
esac
case "${LB_CHROOT_FILESYSTEM}" in
squashfs)
echo "squashfs-tools" >> source-selection.txt
;;
esac
case "${LB_BINARY_FILESYSTEM}" in
fat*)
echo "dosfstools" >> source-selection.txt
;;
ntfs)
echo "ntfs-3g" >> source-selection.txt
;;
esac
case "${LB_ARCHITECTURES}" in
amd64|i386)
cat >> source-selection.txt << EOF
mtools
syslinux
grub
EOF
if [ "${LB_MEMTEST}" != "false" ] && [ "${LB_MEMTEST}" != "none" ]
then
echo "${LB_MEMTEST}" >> source-selection.txt
fi
;;
esac
if [ -n "${LB_TASKS}" ]
then
echo "${LB_TASKSEL}" >> source-selection.txt
fi
# apt-get source does not respect pinning
# building images with backports included but not enabled
# will result in apt-get source download stuff from backports
# where available. workaround: disable backports
case "${LB_MODE}" in
progress-linux)
case "${LB_DISTRIBUTION}" in
*-backports)
;;
*)
if grep -qs "${LB_DISTRIBUTION}-backports" chroot/etc/apt/sources.list.d/progress-linux.list
then
cp chroot/etc/apt/sources.list.d/progress-linux.list chroot/etc/apt/sources.list.d/progress-linux.list.orig
while read _LINE
do
if echo "${_LINE}" | grep -qs ${LB_DISTRIBUTION}-backports
then
sed -i -e "s|${_LINE}|#${_LINE}|" chroot/etc/apt/sources.list.d/progress-linux.list
fi
done < chroot/etc/apt/sources.list.d/progress-linux.list.orig
Apt chroot update
fi
;;
esac
;;
esac
MISSING=""
grep . source-selection.txt | \
while read PACKAGE
do
if ! Chroot chroot "apt-get ${APT_OPTIONS} --download-only source ${PACKAGE}"
then
MISSING="${MISSING} ${PACKAGE}"
fi
done
if [ -n "${MISSING}" ]
then
cat > source/missing-source.txt << EOF
This file contains the list of binary packages that are installed on this live
system that do not have a corresponding source package.
EOF
for PACKAGE in ${MISSING}
do
Chroot chroot "dpkg -l ${PACKAGE}" | tail -n1 >> source/missing-source.txt
done
fi
rm -f source-selection.txt
# Sort sources
for DSC in chroot/*.dsc
do
SOURCE="$(sed -n 's|^Source: ||p' ${DSC} 2>/dev/null || :)"
# The sed may fail if multiple dsc files exist for same source, as the
# first one to match will have already been moved.
[ -n "$SOURCE" ] || continue
case "${SOURCE}" in
lib?*)
LETTER="$(echo ${SOURCE} | sed 's|\(....\).*|\1|')"
;;
*)
LETTER="$(echo ${SOURCE} | sed 's|\(.\).*|\1|')"
;;
esac
# Install directory
mkdir -p source/debian/"${LETTER}"/"${SOURCE}"
# Move files
mv chroot/"${SOURCE}"_* source/debian/"${LETTER}"/"${SOURCE}"
done
# Reverting apt sources again
if [ -e chroot/etc/apt/sources.list.d/progress-linux.list.orig ]
then
mv chroot/etc/apt/sources.list.d/progress-linux.list.orig chroot/etc/apt/sources.list.d/progress-linux.list
Apt chroot update
fi
# Creating stage file
Create_stagefile .build/source_debian
Create_stagefile .build/source
|