From bb56b10384649bb97bbc42722115fa586a9b67a8 Mon Sep 17 00:00:00 2001
From: Chris Lamb <chris@chris-lamb.co.uk>
Date: Thu, 7 Aug 2008 22:05:08 +0100
Subject: 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.
---
 helpers/lh_chroot_install-packages | 18 ++++++++++++++++--
 helpers/lh_chroot_sources          |  2 +-
 2 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/helpers/lh_chroot_install-packages b/helpers/lh_chroot_install-packages
index 469d0a2..169510b 100755
--- a/helpers/lh_chroot_install-packages
+++ b/helpers/lh_chroot_install-packages
@@ -47,18 +47,32 @@ then
 	# Restoring cache
 	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
 	case "${LH_APT}" in
 		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)
-			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
 
+	# Tidying up
 	rm -f chroot/root/chroot_packages
+	rm -f chroot/etc/apt/preferences.live
 
 	# Saving cache
 	Save_cache cache/packages_chroot
diff --git a/helpers/lh_chroot_sources b/helpers/lh_chroot_sources
index 9da2c0d..3d69cd6 100755
--- a/helpers/lh_chroot_sources
+++ b/helpers/lh_chroot_sources
@@ -120,7 +120,7 @@ case "${1}" in
 				then
 					# Generate Release
 					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
 
 					_LH_DOTGNUPG_EXISTED=0
-- 
cgit v1.0