live-build/functions/sourcelist.sh

140 lines
4.6 KiB
Bash
Executable File

#!/bin/sh
## live-build(7) - System Build Scripts
## Copyright (C) 2016-2020 The Debian Live team
## 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.
Create_apt_sources_list ()
{
local PARENT_MIRROR
local MIRROR
local PARENT_MIRROR_SECURITY
local MIRROR_SECURITY
local PARENT_DISTRIBUTION
local DISTRIBUTION
case "${1}" in
chroot)
PARENT_MIRROR=${LB_PARENT_MIRROR_CHROOT}
MIRROR=${LB_MIRROR_CHROOT}
PARENT_MIRROR_SECURITY=${LB_PARENT_MIRROR_CHROOT_SECURITY}
MIRROR_SECURITY=${LB_MIRROR_CHROOT_SECURITY}
PARENT_DISTRIBUTION=${LB_PARENT_DISTRIBUTION_CHROOT}
DISTRIBUTION=${LB_DISTRIBUTION_CHROOT}
;;
binary)
PARENT_MIRROR=${LB_PARENT_MIRROR_BINARY}
MIRROR=${LB_MIRROR_BINARY}
PARENT_MIRROR_SECURITY=${LB_PARENT_MIRROR_BINARY_SECURITY}
MIRROR_SECURITY=${LB_MIRROR_BINARY_SECURITY}
PARENT_DISTRIBUTION=${LB_PARENT_DISTRIBUTION_BINARY}
DISTRIBUTION=${LB_DISTRIBUTION_BINARY}
;;
*)
Echo_error "Invalid mode '${1}' specified for source list creation!"
exit 1
;;
esac
local _PASS="${2}"
local PARENT_FILE
case "${LB_DERIVATIVE}" in
true)
PARENT_FILE="sources.list.d/debian.list"
;;
false)
PARENT_FILE="sources.list"
;;
esac
local LIST_FILE="chroot/etc/apt/sources.list.d/${LB_MODE}.list"
local PARENT_LIST_FILE="chroot/etc/apt/${PARENT_FILE}"
local _DISTRIBUTION
if [ "${LB_DERIVATIVE}" = "true" ]; then
_DISTRIBUTION="$(echo ${DISTRIBUTION} | sed -e 's|-backports||')"
fi
# Clear out existing lists
rm -f ${PARENT_LIST_FILE} ${LIST_FILE}
# Set general repo
echo "deb ${PARENT_MIRROR} ${PARENT_DISTRIBUTION} ${LB_PARENT_ARCHIVE_AREAS}" >> ${PARENT_LIST_FILE}
echo "deb-src ${PARENT_MIRROR} ${PARENT_DISTRIBUTION} ${LB_PARENT_ARCHIVE_AREAS}" >> "${PARENT_LIST_FILE}"
if [ "${LB_DERIVATIVE}" = "true" ]; then
echo "deb ${MIRROR} ${_DISTRIBUTION} ${LB_ARCHIVE_AREAS}" >> "${LIST_FILE}"
echo "deb-src ${MIRROR} ${_DISTRIBUTION} ${LB_ARCHIVE_AREAS}" >> "${LIST_FILE}"
fi
# Set security repo
if [ "${LB_SECURITY}" = "true" ]; then
case "${LB_MODE}" in
debian)
case "${PARENT_DISTRIBUTION}" in
sid|unstable)
# do nothing
;;
buster|jessie|stretch)
echo "deb ${PARENT_MIRROR_SECURITY} ${PARENT_DISTRIBUTION}/updates ${LB_PARENT_ARCHIVE_AREAS}" >> "${PARENT_LIST_FILE}"
echo "deb-src ${PARENT_MIRROR_SECURITY} ${PARENT_DISTRIBUTION}/updates ${LB_PARENT_ARCHIVE_AREAS}" >> "${PARENT_LIST_FILE}"
;;
*)
echo "deb ${PARENT_MIRROR_SECURITY} ${PARENT_DISTRIBUTION}-security ${LB_PARENT_ARCHIVE_AREAS}" >> "${PARENT_LIST_FILE}"
echo "deb-src ${PARENT_MIRROR_SECURITY} ${PARENT_DISTRIBUTION}-security ${LB_PARENT_ARCHIVE_AREAS}" >> "${PARENT_LIST_FILE}"
;;
esac
if [ "${LB_DERIVATIVE}" = "true" ]; then
echo "deb ${MIRROR_SECURITY} ${_DISTRIBUTION}/updates ${LB_ARCHIVE_AREAS}" >> "${LIST_FILE}"
echo "deb-src ${MIRROR_SECURITY} ${_DISTRIBUTION}/updates ${LB_ARCHIVE_AREAS}" >> "${LIST_FILE}"
fi
;;
esac
fi
# Set updates repo
if [ "${LB_UPDATES}" = "true" ]; then
echo "deb ${PARENT_MIRROR} ${PARENT_DISTRIBUTION}-updates ${LB_PARENT_ARCHIVE_AREAS}" >> "${PARENT_LIST_FILE}"
echo "deb-src ${PARENT_MIRROR} ${PARENT_DISTRIBUTION}-updates ${LB_PARENT_ARCHIVE_AREAS}" >> "${PARENT_LIST_FILE}"
if [ "${LB_DERIVATIVE}" = "true" ]; then
echo "deb ${MIRROR} ${_DISTRIBUTION}-updates ${LB_ARCHIVE_AREAS}" >> "${LIST_FILE}"
echo "deb-src ${MIRROR} ${_DISTRIBUTION}-updates ${LB_ARCHIVE_AREAS}" >> "${LIST_FILE}"
fi
fi
# Set backports repo
if [ "${LB_BACKPORTS}" = "true" ]; then
case "${LB_MODE}" in
debian)
if [ "${PARENT_DISTRIBUTION}" != "sid" ] && [ "${PARENT_DISTRIBUTION}" != "unstable" ]; then
echo "deb ${PARENT_MIRROR} ${PARENT_DISTRIBUTION}-backports ${LB_PARENT_ARCHIVE_AREAS}" >> "${PARENT_LIST_FILE}"
echo "deb-src ${PARENT_MIRROR} ${PARENT_DISTRIBUTION}-backports ${LB_PARENT_ARCHIVE_AREAS}" >> "${PARENT_LIST_FILE}"
fi
;;
esac
if [ "${LB_DERIVATIVE}" = "true" ]; then
echo "deb ${MIRROR} ${_DISTRIBUTION}-backports ${LB_ARCHIVE_AREAS}" >> "${LIST_FILE}"
echo "deb-src ${MIRROR} ${_DISTRIBUTION}-backports ${LB_ARCHIVE_AREAS}" >> "${LIST_FILE}"
fi
fi
# Disable deb-src entries?
if [ "${_PASS}" != "source" ] && [ "${LB_APT_SOURCE_ARCHIVES}" != "true" ]; then
sed -i "s/^deb-src/#deb-src/g" "${PARENT_LIST_FILE}"
if [ "${LB_DERIVATIVE}" = "true" ]; then
sed -i "s/^deb-src/#deb-src/g" "${LIST_FILE}"
fi
fi
}