Ensure packages in config/chroot_local-packages override all others.

This reverts config/chroot_local-packages to almost original semantics by
giving any package in chroot_local-packages a priority of 1001, allowing
it to "downgrade" packages and generally override the standard APT sources.

I think this follows the idea of this directory more and is likely to be
more useful with this setup - rebuilding a package simply to bump a version
number or keeping a custom apt_preferences(5) file around kinda sucks,
especially as it is often used as a temporary workaround.

Signed-off-by: Chris Lamb <chris@chris-lamb.co.uk>
This commit is contained in:
Chris Lamb 2008-08-07 22:05:08 +01:00
parent 15ee6f0eae
commit a5b4c4bc0d
2 changed files with 17 additions and 3 deletions

View File

@ -47,18 +47,32 @@ then
# Restoring cache # Restoring cache
Restore_cache cache/packages_chroot Restore_cache cache/packages_chroot
# Ensure chroot_local-packages override all other packages
if [ -e chroot/etc/apt/preferences ]
then
cp chroot/etc/apt/preferences chroot/etc/apt/preferences.live
fi
cat >> chroot/etc/apt/preferences.live <<EOF
Package: *
Pin: release o=chroot_local-packages
Pin-Priority: 1001
EOF
# Installing packages # Installing packages
case "${LH_APT}" in case "${LH_APT}" in
apt|apt-get) apt|apt-get)
Chroot "xargs --arg-file=/root/chroot_packages apt-get ${APT_OPTIONS} install" Chroot "xargs --arg-file=/root/chroot_packages apt-get ${APT_OPTIONS} -o Dir::Etc::preferences=preferences.live install"
;; ;;
aptitude) aptitude)
Chroot "xargs --arg-file=/root/chroot_packages aptitude ${APTITUDE_OPTIONS} install" Chroot "xargs --arg-file=/root/chroot_packages aptitude ${APTITUDE_OPTIONS} -o Dir::Etc::preferences=preferences.live install"
;; ;;
esac esac
# Tidying up
rm -f chroot/root/chroot_packages rm -f chroot/root/chroot_packages
rm -f chroot/etc/apt/preferences.live
# Saving cache # Saving cache
Save_cache cache/packages_chroot Save_cache cache/packages_chroot

View File

@ -120,7 +120,7 @@ case "${1}" in
then then
# Generate Release # Generate Release
echo "cd /root/local-packages && apt-ftparchive \ echo "cd /root/local-packages && apt-ftparchive \
-o APT::FTPArchive::Release::Label=local-packages \ -o APT::FTPArchive::Release::Origin=chroot_local-packages \
release . > Release" | Chroot sh release . > Release" | Chroot sh
_LH_DOTGNUPG_EXISTED=0 _LH_DOTGNUPG_EXISTED=0