summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xhelpers/lh_chroot_linux-image30
-rwxr-xr-xhelpers/lh_chroot_local-packages30
-rwxr-xr-xhelpers/lh_chroot_sources38
-rwxr-xr-xhooks/minimal18
4 files changed, 55 insertions, 61 deletions
diff --git a/helpers/lh_chroot_linux-image b/helpers/lh_chroot_linux-image
index bc6de54..3d760f9 100755
--- a/helpers/lh_chroot_linux-image
+++ b/helpers/lh_chroot_linux-image
@@ -77,36 +77,8 @@ EOF
done
fi
- if ! ls config/chroot_local-packages/${LH_INITRAMFS}*.deb > /dev/null 2>&1
- then
- PACKAGES="${PACKAGES} ${LH_INITRAMFS}"
- fi
-
# Installing linux-image, modules and ${LH_INITRAMFS}
- Apt install ${PACKAGES}
-
- if ls config/chroot_local-packages/${LH_INITRAMFS}*.deb > /dev/null 2>&1
- then
- cp config/chroot_local-packages/${LH_INITRAMFS}*.deb chroot/root
-
- # Installing package
- Chroot "find /root -name *.deb" > chroot/root/initfs
- Chroot "xargs --arg-file=/root/initfs dpkg -i" || true
-
- # Install dependencies
- case "${LH_APT}" in
- aptitude)
- Apt install ${LH_INITRAMFS}
- ;;
- apt|apt-get)
- Apt install -f
- ;;
- esac
-
- # Removing package files
- rm -f chroot/root/${LH_INITRAMFS}*.deb
- rm -f chroot/root/initfs
- fi
+ Apt install ${PACKAGES} ${LH_INITRAMFS}
# Saving cache
Save_cache cache/packages_linux-image
diff --git a/helpers/lh_chroot_local-packages b/helpers/lh_chroot_local-packages
index 9c7ed36..15ce988 100755
--- a/helpers/lh_chroot_local-packages
+++ b/helpers/lh_chroot_local-packages
@@ -42,38 +42,12 @@ Check_lockfile .lock
# Creating lock file
Create_lockfile .lock
-if ls config/chroot_local-packages/*.deb > /dev/null 2>&1
+if ls chroot/root/local-packages/*.deb > /dev/null 2>&1
then
# Restoring cache
Restore_cache cache/packages_local-packages
- # Copying packages
- if ls config/chroot_local-packages/*_"${LH_ARCHITECTURE}".deb > /dev/null 2>&1
- then
- cp config/chroot_local-packages/*_"${LH_ARCHITECTURE}".deb chroot/root
- fi
-
- if ls config/chroot_local-packages/*_all.deb > /dev/null 2>&1
- then
- cp config/chroot_local-packages/*_all.deb chroot/root
- fi
-
- # Installing packages
- Chroot "find /root -name \\*.deb" > chroot/root/local-packages
-
- if [ -s chroot/root/local-packages ]
- then
- Chroot "xargs --arg-file=/root/local-packages dpkg -i" || true
- else
- Echo_warning "Local packages must be named with suffix '_all.deb' or '_\$architecture.deb'."
- fi
-
- # Cleaning dependencies
- Apt install -f
-
- # Removing package files
- rm -f chroot/root/*.deb
- rm -f chroot/root/local-packages
+ Apt install $(gunzip < chroot/root/local-packages/Packages.gz | awk '/^Package: / { print $2 }')
# Saving cache
Save_cache cache/packages_local-packages
diff --git a/helpers/lh_chroot_sources b/helpers/lh_chroot_sources
index cf086cf..0dc3d76 100755
--- a/helpers/lh_chroot_sources
+++ b/helpers/lh_chroot_sources
@@ -77,6 +77,38 @@ case "${1}" in
done
fi
+ # Configure local package repository
+ if ls config/chroot_local-packages/*.deb > /dev/null 2>&1
+ then
+ rm -rf chroot/root/local-packages
+ mkdir -p chroot/root/local-packages
+
+ # Copy packages
+ if ls config/chroot_local-packages/*_"${LH_ARCHITECTURE}".deb > /dev/null 2>&1
+ then
+ cp config/chroot_local-packages/*_"${LH_ARCHITECTURE}".deb chroot/root/local-packages
+ fi
+
+ if ls config/chroot_local-packages/*_all.deb > /dev/null 2>&1
+ then
+ cp config/chroot_local-packages/*_all.deb chroot/root/local-packages
+ fi
+
+ if ls chroot/root/local-packages/*.deb > /dev/null 2>&1
+ then
+ # Generate Packages.gz
+ echo "cd /root/local-packages && apt-ftparchive packages . > Packages" | Chroot sh
+ gzip -9 chroot/root/local-packages/Packages
+
+ # Add to sources.list
+ echo "" >> chroot/etc/apt/sources.list
+ echo "# Local packages" >> chroot/etc/apt/sources.list
+ echo "deb file:/root/local-packages ./" >> chroot/etc/apt/sources.list
+ else
+ Echo_warning "Local packages must be named with suffix '_all.deb' or '_\$architecture.deb'."
+ fi
+ fi
+
# Update indices from cache
if [ "${LH_CACHE_INDICES}" = "enabled" ] && [ -d cache/indices_bootstrap ]
then
@@ -194,7 +226,8 @@ case "${1}" in
then
# Don't do anything if it's not required
if [ "${LH_MIRROR_CHROOT}" = "${LH_MIRROR_BINARY}" ] && \
- [ "${LH_MIRROR_CHROOT_SECURITY}" = "${LH_MIRROR_BINARY_SECURITY}" ]
+ [ "${LH_MIRROR_CHROOT_SECURITY}" = "${LH_MIRROR_BINARY_SECURITY}" ] && \
+ [ ! -d chroot/root/local-packages ]
then
# Removing stage file
rm -f .stage/chroot_sources
@@ -257,6 +290,9 @@ case "${1}" in
rm -rf chroot/var/cache/apt
mkdir -p chroot/var/cache/apt/archives/partial
+ # Remove local package repository
+ rm -rf chroot/root/local-packages
+
# Removing stage file
rm -f .stage/chroot_sources
;;
diff --git a/hooks/minimal b/hooks/minimal
index ff02ddc..f081fcc 100755
--- a/hooks/minimal
+++ b/hooks/minimal
@@ -9,15 +9,27 @@
set -e
-# Removing unused packages
-for PACKAGE in apt-utils aptitude man-db manpages info wget
-do
+Purge() {
+ PACKAGE="${1}"
+
if ! apt-get remove --purge --yes "${PACKAGE}"
then
echo "WARNING: ${PACKAGE} isn't installed"
fi
+}
+
+# Removing unused packages
+for PACKAGE in aptitude man-db manpages info wget
+do
+ Purge ${PACKAGE}
done
+# Remove apt-utils if we do not require it for lh_chroot_sources
+if [ ! -e chroot/root/local-packages/Packages.gz ]
+then
+ Purge apt-utils
+fi
+
apt-get autoremove --yes || true
# Removing unused files