debian/docker: Add source package handling for local apt repository

Tracked-On: #6688
Signed-off-by: Helmut Buchsbaum <helmut.buchsbaum@opensource.tttech-industrial.com>
This commit is contained in:
Helmut Buchsbaum 2022-05-07 09:02:05 +02:00 committed by acrnsi-robot
parent 8ecf0fe7e8
commit 32c3cd258f
2 changed files with 34 additions and 14 deletions

View File

@ -60,8 +60,10 @@ RUN mkdir -p /opt/apt && cd /opt/apt && \
echo "Origin: ACRN Local Build" > .Release.header && \
echo "Label: acrn-local-build" >> .Release.header && \
apt-ftparchive packages . > Packages && \
cp .Release.header Release && apt-ftparchive release . >> Release && \
echo "deb [trusted=yes] file:/opt/apt ./" > /etc/apt/sources.list.d/local-apt.list && \
apt-ftparchive sources . > Sources && \
(cat .Release.header && apt-ftparchive release .) > Release && \
echo "deb [trusted=yes] file:/opt/apt ./" > /etc/apt/sources.list.d/acrn-local.list && \
echo "deb-src [trusted=yes] file:/opt/apt ./" >> /etc/apt/sources.list.d/acrn-local.list && \
touch /etc/apt/preferences.d/pin-acrn
# setup git config for temporary use
@ -100,15 +102,21 @@ RUN NEEDEDVERSION="2.5.0"; \
git checkout -b ${debian_branch} ${debian_tag} && \
mk-build-deps --tool='apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends --yes' --install debian/control --remove && \
rm -f $(dpkg-parsechangelog -Ssource)-build-deps_$(dpkg-parsechangelog -Sversion)_*.* && \
DEB_BUILD_OPTIONS="nocheck" gbp buildpackage -b -us -uc && \
DEB_BUILD_OPTIONS="nocheck" gbp buildpackage -F -us -uc && \
for p in $(grep -E '^Package:' debian/control | awk '{print $2}'); do \
echo "Package: $p" >> /etc/apt/preferences.d/pin-acrn; \
echo "Pin: release l=acrn-local-build" >> /etc/apt/preferences.d/pin-acrn; \
echo "Pin-Priority: 900" >> /etc/apt/preferences.d/pin-acrn; \
echo "" >> /etc/apt/preferences.d/pin-acrn; \
done && \
cd /usr/src && mv *.deb /opt/apt && \
cd /opt/apt && apt-ftparchive packages . > Packages && cp .Release.header Release && apt-ftparchive release . >> Release && \
cd /usr/src && \
mv *.deb /opt/apt && \
mv ${srcpkg}_*.dsc /opt/apt && \
mv ${srcpkg}_*.tar.* /opt/apt && \
cd /opt/apt && \
apt-ftparchive packages . > Packages && \
apt-ftparchive sources . > Sources && \
(cat .Release.header && apt-ftparchive release .) > Release && \
apt-get update -y; \
fi
@ -144,15 +152,21 @@ RUN NEEDEDVERSION="1.10.0"; \
git checkout -b ${debian_branch} ${debian_tag} && \
mk-build-deps --tool='apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends --yes' --install debian/control --remove && \
rm -f $(dpkg-parsechangelog -Ssource)-build-deps_$(dpkg-parsechangelog -Sversion)_*.* && \
DEB_BUILD_OPTIONS="nocheck" gbp buildpackage -b -us -uc && \
DEB_BUILD_OPTIONS="nocheck" gbp buildpackage -F -us -uc && \
for p in $(grep -E '^Package:' debian/control | awk '{print $2}'); do \
echo "Package: $p" >> /etc/apt/preferences.d/pin-acrn; \
echo "Pin: release l=acrn-local-build" >> /etc/apt/preferences.d/pin-acrn; \
echo "Pin-Priority: 900" >> /etc/apt/preferences.d/pin-acrn; \
echo "" >> /etc/apt/preferences.d/pin-acrn; \
done && \
cd /usr/src && mv *.deb /opt/apt && \
cd /opt/apt && apt-ftparchive packages . > Packages && cp .Release.header Release && apt-ftparchive release . >> Release && \
cd /usr/src && \
mv *.deb /opt/apt && \
mv python-${srcpkg}_*.dsc /opt/apt && \
mv python-${srcpkg}_*.tar.* /opt/apt && \
cd /opt/apt && \
apt-ftparchive packages . > Packages && \
apt-ftparchive sources . > Sources && \
(cat .Release.header && apt-ftparchive release .) > Release && \
apt-get update -y; \
fi
@ -188,15 +202,21 @@ RUN NEEDEDVERSION="20200925"; \
git checkout -b ${debian_branch} ${debian_tag} && \
mk-build-deps --tool='apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends --yes' --install debian/control --remove && \
rm -f $(dpkg-parsechangelog -Ssource)-build-deps_$(dpkg-parsechangelog -Sversion)_*.* && \
DEB_BUILD_OPTIONS="nocheck" gbp buildpackage -b -us -uc && \
DEB_BUILD_OPTIONS="nocheck" gbp buildpackage -F -us -uc && \
for p in $(grep -E '^Package:' debian/control | awk '{print $2}'); do \
echo "Package: $p" >> /etc/apt/preferences.d/pin-acrn; \
echo "Pin: release l=acrn-local-build" >> /etc/apt/preferences.d/pin-acrn; \
echo "Pin-Priority: 900" >> /etc/apt/preferences.d/pin-acrn; \
echo "" >> /etc/apt/preferences.d/pin-acrn; \
done && \
cd /usr/src && mv *.deb /opt/apt && \
cd /opt/apt && apt-ftparchive packages . > Packages && cp .Release.header Release && apt-ftparchive release . >> Release && \
cd /usr/src && \
mv *.deb /opt/apt && \
mv ${srcpkg}_*.dsc /opt/apt && \
mv ${srcpkg}_*.tar.* /opt/apt && \
cd /opt/apt && \
apt-ftparchive packages . > Packages && \
apt-ftparchive sources . > Sources && \
(cat .Release.header && apt-ftparchive release .) > Release && \
apt-get update -y; \
fi

View File

@ -24,8 +24,8 @@ fi
# copy all Debian packages in local APT repo and create local APT repository
export HOME=$(echo ~docker-build)
sudo -E -u docker-build /bin/bash -c "\
cd $1 && if ls -A /opt/apt/*.deb >/dev/null 2>&1; then cp /opt/apt/*.deb .; fi && \
cd $1 && if ls -A /opt/apt/*.deb >/dev/null 2>&1; then cp -a /opt/apt/. .; fi && \
apt-ftparchive packages . > Packages && \
cp /opt/apt/.Release.header Release && \
apt-ftparchive release . >> Release"
apt-ftparchive sources . > Sources 2>/dev/null && \
(cat /opt/apt/.Release.header && apt-ftparchive release .) > Release"