Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

T6684: new Debian package repo snapshot logic #758

Merged
merged 1 commit into from
Sep 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,18 @@ RUN wget -O /tmp/open-vmdk-master.zip https://github.com/vmware/open-vmdk/archiv
unzip -d /tmp/ /tmp/open-vmdk-master.zip && \
cd /tmp/open-vmdk-master/ && make && make install

# Packages need for build live-build
RUN apt-get update && apt-get install -y \
cpio

COPY patches/live-build/0001-save-package-info.patch /tmp/0001-save-package-info.patch

RUN git clone https://salsa.debian.org/live-team/live-build.git /tmp/live-build && \
cd /tmp/live-build && git checkout debian/1%20240810 && \
patch -p1 < /tmp/0001-save-package-info.patch && \
dch -n "Applying fix for save package info" && \
dpkg-buildpackage -us -uc && \
dpkg -i ../live-build*.deb
#
# live-build: building in docker fails with mounting /proc | /sys
#
Expand Down
60 changes: 60 additions & 0 deletions docker/patches/live-build/0001-save-package-info.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
From 3ddf0e979c352f2917be6a949fb8dd37b5c9f2b7 Mon Sep 17 00:00:00 2001
From: khramshinr <khramshinr@gmail.com>
Date: Wed, 28 Aug 2024 14:38:15 +0600
Subject: [PATCH] T6684: new Debian package repo snapshot logic

save information about all installed packages and teir source repo, including temporary packages
---
functions/packages.sh | 7 +++++++
scripts/build/chroot | 6 ++++++
scripts/build/clean | 2 +-
3 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/functions/packages.sh b/functions/packages.sh
index 9e25df5f3..4d1fa695e 100755
--- a/functions/packages.sh
+++ b/functions/packages.sh
@@ -60,6 +60,13 @@ Install_packages ()
Chroot chroot "aptitude install --without-recommends ${APTITUDE_OPTIONS} ${_LB_PACKAGES}"
;;
esac
+
+ # save information about all temporary installed packages and source repos
+ for PACKAGE in ${_LB_PACKAGES}; do
+ Chroot chroot "apt-cache policy ${PACKAGE}" | sed -n '/\*\*\*/,$p' | grep -P 'http:|https:' -m 1 | awk -v pkg="${PACKAGE}" '{print $2" "$3" "pkg}' >> chroot.packages.all.info
+
+ done
+
unset _LB_PACKAGES # Can clear this now
}

diff --git a/scripts/build/chroot b/scripts/build/chroot
index a0aa10be0..700762e78 100755
--- a/scripts/build/chroot
+++ b/scripts/build/chroot
@@ -48,6 +48,12 @@ for _PASS in install live; do
fi
done

+# save information about all installed packages and source repos
+Chroot chroot "dpkg-query -W" | while read PACKAGE; do
+ Chroot chroot "apt-cache policy ${PACKAGE}" | sed -n '/\*\*\*/,$p' | grep -P 'http:|https:' -m 1 | awk -v pkg="${PACKAGE}" '{print $2" "$3" "pkg}' >> chroot.packages.all.info
+done
+
+
lb chroot_includes_after_packages "${@}"
lb chroot_hooks "${@}"
lb chroot_hacks "${@}"
diff --git a/scripts/build/clean b/scripts/build/clean
index 6549fc635..4376d7525 100755
--- a/scripts/build/clean
+++ b/scripts/build/clean
@@ -159,7 +159,7 @@ if [ "${RM_CHROOT}" = "true" ]; then

rm -rf chroot chroot.tmp

- rm -f chroot.packages.live chroot.packages.install
+ rm -f chroot.packages.live chroot.packages.install chroot.packages.all.info
rm -f chroot.files

rm -f "$(Installed_tmp_packages_file)"
Loading