live-build/scripts/build/binary_package-lists

179 lines
4.2 KiB
Plaintext
Raw Normal View History

2007-10-18 20:28:54 +00:00
#!/bin/sh
## live-build(7) - System Build Scripts
2014-02-08 15:47:02 -01:00
## Copyright (C) 2006-2014 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.
2007-10-18 20:28:54 +00:00
set -e
# Including common functions
[ -e "${LIVE_BUILD}/scripts/build.sh" ] && . "${LIVE_BUILD}/scripts/build.sh" || . /usr/lib/live/build.sh
2007-10-18 20:28:54 +00:00
# Setting static variables
DESCRIPTION="$(Echo 'install local packages into binary')"
2007-10-18 20:28:54 +00:00
HELP=""
USAGE="${PROGRAM} [--force]"
Arguments "${@}"
# Reading configuration files
Read_conffiles config/all config/common config/bootstrap config/chroot config/binary config/source
2007-10-18 20:28:54 +00:00
Set_defaults
Echo_message "Begin installing local package lists..."
2007-10-18 20:28:54 +00:00
# Requiring stage file
Require_stagefile .build/config .build/bootstrap
2007-10-18 20:28:54 +00:00
# Checking stage file
Check_stagefile .build/binary_package-lists
2007-10-18 20:28:54 +00:00
# Checking lock file
Check_lockfile .lock
# Creating lock file
Create_lockfile .lock
case "${LB_MODE}" in
progress-linux)
DISTS="installer/dists"
POOL="installer/pool"
;;
*)
DISTS="dists"
POOL="pool"
;;
esac
if ls config/package-lists/*.list > /dev/null 2>&1 || \
ls config/package-lists/*.list.binary > /dev/null 2>&1
2007-10-18 20:28:54 +00:00
then
case "${LB_BUILD_WITH_CHROOT}" in
true)
# Restoring cache
Restore_cache cache/packages.chroot
# Check depends
Check_package chroot/usr/bin/apt-ftparchive apt-utils
Check_package chroot/usr/bin/grep-aptavail dctrl-tools
# Installing depends
Install_package
;;
false)
if [ ! -e /usr/bin/apt-ftparchive ]; then
# apt-utils
Echo_error "/usr/bin/apt-ftparchive - no such file."
exit 1
fi
if [ ! -e /usr/bin/grep-aptavail ]; then
# dctrl-tools
Echo_error "/usr/bin/grep-aptavail - no such file."
exit 1
fi
;;
esac
if [ -e "${LIVE_BUILD}/share/bin/Packages" ]
then
cp "${LIVE_BUILD}/share/bin/Packages" chroot/bin
else
cp /usr/share/live/build/bin/Packages chroot/bin
fi
2007-10-18 20:28:54 +00:00
mkdir -p chroot/binary.deb/archives/partial
mv chroot/var/lib/dpkg/status chroot/var/lib/dpkg/status.tmp
touch chroot/var/lib/dpkg/status
for LIST in config/package-lists/*.list \
config/package-lists/*.list.binary
2007-10-18 20:28:54 +00:00
do
if [ -e "${LIST}" ]
then
# Generate package list
Expand_packagelist "${LIST}" "config/package-lists" > chroot/root/"$(basename ${LIST})"
2007-10-18 20:28:54 +00:00
# Downloading additional packages
Chroot chroot "xargs --arg-file=/root/$(basename ${LIST}) apt-get ${APT_OPTIONS} -o Dir::Cache=/binary.deb --download-only install"
# Remove package list
rm chroot/root/"$(basename ${LIST})"
fi
2007-10-18 20:28:54 +00:00
done
for FILE in chroot/binary.deb/archives/*.deb
2007-10-18 20:28:54 +00:00
do
SOURCE="$(dpkg -f ${FILE} Source | awk '{ print $1 }')"
SECTION="$(dpkg -f ${FILE} Section | awk '{ print $1 }')"
2007-10-18 20:28:54 +00:00
if [ -z "${SOURCE}" ]
then
SOURCE="$(basename ${FILE} | awk -F_ '{ print $1 }')"
fi
case "${SOURCE}" in
lib?*)
LETTER="$(echo ${SOURCE} | sed 's|\(....\).*|\1|')"
2007-10-18 20:28:54 +00:00
;;
*)
LETTER="$(echo ${SOURCE} | sed 's|\(.\).*|\1|')"
2007-10-18 20:28:54 +00:00
;;
esac
if echo "${SECTION}" | grep -qs contrib
then
SECTION="contrib"
elif echo "${SECTION}" | grep -qs non-free
then
SECTION="non-free"
else
SECTION="main"
fi
2007-10-18 20:28:54 +00:00
# Install directory
mkdir -p binary/${POOL}/${SECTION}/"${LETTER}"/"${SOURCE}"
2007-10-18 20:28:54 +00:00
# Move files
mv "${FILE}" binary/${POOL}/${SECTION}/"${LETTER}"/"${SOURCE}"
2007-10-18 20:28:54 +00:00
done
cd binary
for SECTION in ${POOL}/*
do
SECTION="$(basename ${SECTION})"
mkdir -p ${DISTS}/${LB_PARENT_DISTRIBUTION}/${SECTION}/binary-${LIVE_IMAGE_ARCHITECTURE}
apt-ftparchive packages ${POOL}/${SECTION} > ${DISTS}/${LB_PARENT_DISTRIBUTION}/${SECTION}/binary-${LIVE_IMAGE_ARCHITECTURE}/Packages
gzip -9 -c ${DISTS}/${LB_PARENT_DISTRIBUTION}/${SECTION}/binary-${LIVE_IMAGE_ARCHITECTURE}/Packages > ${DISTS}/${LB_PARENT_DISTRIBUTION}/${SECTION}/binary-${LIVE_IMAGE_ARCHITECTURE}/Packages.gz
done
2007-10-18 20:28:54 +00:00
cd "${OLDPWD}"
rm -f chroot/bin/Packages
2007-10-18 20:28:54 +00:00
rm -rf chroot/binary.deb
mv chroot/var/lib/dpkg/status.tmp chroot/var/lib/dpkg/status
case "${LB_BUILD_WITH_CHROOT}" in
true)
# Removing depends
Remove_package
# Saving cache
Save_cache cache/packages.chroot
;;
esac
2007-10-18 20:28:54 +00:00
# Creating stage file
Create_stagefile .build/binary_package-lists
2007-10-18 20:28:54 +00:00
fi