Allow to use dependencies from experimental in piuparts
This is needed when package has dependencies in experimental.
Example for samba:
before_script:
- echo 'deb http://deb.debian.org/debian experimental main' > /etc/apt/sources.list.d/experimental.list
- "echo 'Package: ldb-tools libldb* python*-ldb*\nPin: release a=experimental\nPin-Priority: 500' > /etc/apt/preferences.d/experimental.pref"
Requires images!14 (merged)
Merge request reports
Activity
mentioned in merge request !29 (closed)
To have the complete picture: piuparts fails when the package needs deps from experimental.
Proposed solution
- Copy relevant files to /etc-target in piuparts chroot (This MR)
-
Add
--scriptsdir
to piuparts call (done in !40 (merged)) - Inside piuparts chroot:Copy configs from /etc-target to /etc on target phase images!14 (merged)
@sathieu I think maybe I'm not getting the problem at all, but wouldn't it be enough to change the docker image used to create the chroot from unstable to experimental?
diff --git a/salsa-ci.yml b/salsa-ci.yml index 50569a1..8d2489d 100644 --- a/salsa-ci.yml +++ b/salsa-ci.yml @@ -90,8 +90,8 @@ stages: services: - docker:dind script: - - CHROOT_PATH=/tmp/debian-unstable - - CONTAINER_ID=$(docker run --rm -d debian:unstable sleep infinity) + - CHROOT_PATH=/tmp/debian-chroot + - CONTAINER_ID=$(docker run --rm -d debian:experimental sleep infinity) - docker exec ${CONTAINER_ID} bash -c "apt-get update && apt-get install eatmydata -y" - mkdir -p ${CHROOT_PATH} - docker export ${CONTAINER_ID} | tar -C ${CHROOT_PATH} -xf -
Of course we should think a way to make it customizable like on the build jobs.
Edited by Iñaki Malerba@ina-guest Unfortunately not. If you do this only, experimental packages won't be installed (as apt is used and preference is 1). Aptitude is more tolerant on this see #786609.
If you use experimental and add preference in the piuparts chroot, ldb packages from experimental will be installed for the old (sid) package too, which fails.
mentioned in commit 47a31448
@tin So images!14 (merged) has been reverted in images@d95081e9, does it mean this should be reverted as well?
@tin Why was it reverted?
btw, CI on the images: images!21 (closed)
In my personal fork(in gitlab.com for binfmt support) of this repository, I combined images and pipeline repositories as one. You might also want to do this.
@tin Can you link to the failed jobs?
@vicamo-guest I want to use the most used way for salsa CI. I think working together on the same wrapper will progress faster.
Hi Mathieu here it goes https://salsa.debian.org/salsa-ci-team/pipeline/-/jobs/90512
btw,
cp -aTv /etc/apt/sources.list.d ${CHROOT_PATH}/etc-target/apt/sources.list.d
fails with error message cp: '${CHROOT_PATH}/etc-target/apt/sources.list.d' is a directory when executed with sh symlinked to busybox. Since the destination is always a directory, that-T
flag should really be removed.Besides, why do you need a etc-target directory at all? piuparts copies entire
{CHROOT_PATH}/etc* when creating temporary chroot environments. Wouldn't it be sufficient to install apt settings to *{CHROOT_PATH}/etc directly? Therefore no change to salsa-ci-team/images is necessary.@vicamo-guest I need to have experimental only on target package installation.
More precisely, samba depends on the exact version of ldb it was built against. When a new samba version requires a new ldb version, I first upload the new ldb to experimental, then I want the samba CI to use this ldb only in newversion env but not in oldversion env (the root problem is in apt, which always want to install the latest version, but I couldn't find it).
NB:the discussion should move to #24 (closed).
mentioned in issue #21 (closed)
mentioned in commit samba-team/samba@667e0d8e
mentioned in merge request samba-team/samba!20 (merged)