diff options
-rwxr-xr-x | helpers/lh_chroot_linux-image | 30 | ||||
-rwxr-xr-x | helpers/lh_chroot_local-packages | 30 | ||||
-rwxr-xr-x | helpers/lh_chroot_sources | 38 | ||||
-rwxr-xr-x | hooks/minimal | 18 |
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 |