[Piuparts-devel] [Git][debian/piuparts][master] 41 commits: Start 1.2.1 development

Nicolas Dandrimont (@olasd) gitlab at salsa.debian.org
Sat Jan 13 14:15:35 GMT 2024



Nicolas Dandrimont pushed to branch master at Debian / piuparts


Commits:
6d601ebe by Nicolas Dandrimont at 2023-10-29T12:50:52+01:00
Start 1.2.1 development

Gbp-Dch: ignore

- - - - -
4d436fc3 by Helmut Grohne at 2023-11-08T08:55:34+01:00
improve compatibility of mount_proc with unprivileged namespaces

When run in an unprivileged namespace, both the mknod and the mount
operation may be denied and piuparts may fail here. Looking deeper, this
branch happens when /dev/ptmx is not already a symlink and what is bind
mounted can be expressed as a symlink, so opt for implementing this
device as a symlink when it is missing entirely. If nothing else, one
less mount invocation is a minor speedup.

- - - - -
b7f4db99 by Helmut Grohne at 2023-11-08T09:00:43+01:00
make --bindmount recursive

When performing a bind mount, Linux will not do so recursively by
default. So if a subdirectory of the provided bind mount is a mount
point itself, this mount point will not be propagated and the underlying
hierarchy will be exposed inside piuparts. This may be intentional, but
likely is not.

Since a bind mount may be used to access a hierarchy that was hidden by
another mount, bind mounts are denied in unprivileged namespaces. On the
other hand, recursive bind mounts just work there.

- - - - -
13d93cee by Helmut Grohne at 2023-11-08T09:07:14+01:00
allow using --bindmount with things that are not directories

While typically think of directories when it comes to mounting, one can
also mount regular files or devices. Doing so only works when the mount
target is not a directory though and piuparts kindly creates such
directories. So when the mount options reveal that we're doing a bind
mount and the source is not a directory, we create an empty file
instead.

- - - - -
eb94e796 by Helmut Grohne at 2023-11-08T12:03:18+01:00
allow using tarballs compressed with non-gzip

The extension of the filename given to --basetgz with or without --save
will be checked for known compression formats by tar. Therefore gzip
tarballs must now have a suffix of .gz or .tgz.

- - - - -
d78f6457 by Helmut Grohne at 2023-11-08T14:01:24+01:00
refactor the opts parameter to mount into a list

Reported-by: Nicolas Dandrimont <nicolas at dandrimont.eu>

- - - - -
cdd25f5e by Nicolas Dandrimont at 2023-11-08T13:35:20+00:00
Explain why we bind mount ptmx when it exists
- - - - -
bd46522f by Nicolas Dandrimont at 2023-11-08T22:11:54+01:00
Merge branch 'helmutg/feature-tar-compression' into develop

- - - - -
4c861838 by Nicolas Dandrimont at 2023-11-08T22:12:09+01:00
Merge branch 'helmutg/improve-mount_proc' into develop

- - - - -
9e1fc883 by Nicolas Dandrimont at 2023-11-08T22:12:22+01:00
Merge branch 'helmutg/feature-recursive-bindmounts' into develop

- - - - -
929b4a4a by Nicolas Dandrimont at 2023-11-08T22:14:19+01:00
Merge branch 'helmutg/feature-bindmount-file' into develop

- - - - -
aa916c1e by Helmut Grohne at 2023-11-23T12:18:07+01:00
provide a basic /dev tree even in unprivileged namespaces

Most piuparts environments will provide a working /dev tree. For
instance, a pbuilder base.tgz contains them. As does a schroot tree.
Likewise, docker will set up devices. Even debootstrap will create them.
However when running piuparts in an unprivileged namespace, debootstrap
cannot create them (and can be made to work by exporting container=lxc).
Similarly, when passing a device-less base.tgz for an unprivileged
namespace they are missing. While piuparts previously created /dev/null,
this is bound to fail with -EPERM. In that case, individual device nodes
need to be bind mounted. Since such bind mounting is not preferred for
the other variants, we try creating missing devices first.

- - - - -
792ffbac by Nicolas Dandrimont at 2023-11-23T11:22:58+00:00
Introduce basic salsa-ci config

- - - - -
01b2cfa8 by Nicolas Dandrimont at 2023-11-23T11:22:58+00:00
Enable diffoscope on salsa-ci reprotest

- - - - -
c085e616 by Nicolas Dandrimont at 2023-11-23T11:22:58+00:00
Split salsaci overrides for different stages

- - - - -
b2a1c1ba by Nicolas Dandrimont at 2023-11-23T11:24:25+00:00
Configure (and run) isort, black and flake8

- - - - -
c1981ef8 by Nicolas Dandrimont at 2023-11-23T11:24:27+00:00
Create a docker image for linting

- - - - -
87ee24bd by Nicolas Dandrimont at 2023-11-23T11:24:27+00:00
Introduce codequality report for flake8

- - - - -
ba37756a by Nicolas Dandrimont at 2023-11-23T11:24:27+00:00
gitlab-ci: Run Black

- - - - -
d30548e1 by Nicolas Dandrimont at 2023-11-23T11:24:27+00:00
gitlab-ci: Run mypy

- - - - -
3e70bf9b by Nicolas Dandrimont at 2023-11-23T11:24:27+00:00
Fix all bare exceptions

- - - - -
6f4a2841 by Nicolas Dandrimont at 2023-11-23T11:24:27+00:00
Replace all instances of `not x in y` with `x not in y`

- - - - -
6ad40e05 by Nicolas Dandrimont at 2023-11-23T11:24:27+00:00
Make unusual escape sequences used in regexes more explicit

- - - - -
594c48f6 by Nicolas Dandrimont at 2023-11-23T11:24:27+00:00
Drop unused imports

- - - - -
ceae437f by Nicolas Dandrimont at 2023-11-23T11:24:27+00:00
Clean up more imports

- - - - -
0314acb9 by Nicolas Dandrimont at 2023-11-23T11:24:27+00:00
Fix `not x is y` patterns

- - - - -
aa334804 by Nicolas Dandrimont at 2023-11-23T11:24:27+00:00
Don't assign to lambdas

- - - - -
62e5b92f by Nicolas Dandrimont at 2023-11-23T11:24:27+00:00
Remove any unused variables

- - - - -
160225db by Nicolas Dandrimont at 2023-11-23T11:24:27+00:00
Break up long lines

- - - - -
76718040 by Nicolas Dandrimont at 2023-11-23T11:24:27+00:00
Add nosetests to gitlab-ci

- - - - -
3956f496 by Nicolas Dandrimont at 2023-11-23T11:24:27+00:00
Remove dependency on six

Thanks to Alexandre Detiste for the suggestion and initial patch.

- - - - -
7152f6f6 by Nicolas Dandrimont at 2024-01-13T11:17:24+01:00
Add missing salsaci override

- - - - -
57611cd6 by Nicolas Dandrimont at 2024-01-13T11:27:37+01:00
Rebuild the GitLab CI container on scheduled pipelines

- - - - -
3ba4c38d by Philipp Hahn at 2024-01-13T12:25:18+01:00
fix(docker): getting Container ID

in case the image does not exists locally docker will pull it from any
remote registry, but will include the progress information in the
output:

> Unable to find image 'docker-registry.XXX/YYY:ZZZ' locally
> ZZZ: Pulling from YYY
...
> Digest: sha256:4b9bfe7b0a6c970e3613c04f267ba6319cfceb8cc120b0435d9ee7b8037a1f06
> Status: Downloaded newer image for docker-registry.XXX/YYY:ZZZ
> 8be38c89d12937b98c8be5ab7466dd45b0e4a306862f282b58077ac7193251eb

The old code expected the output to be the container ID, which fails in that case.

Co-Authored-By: Nicolas Dandrimont <olasd at debian.org> (use temporary directory)

- - - - -
76a5f861 by Philipp Hahn at 2024-01-13T12:27:12+01:00
refactor(docker): Let `docker inspect` return path

Directly use golang templating to only get the MergedDir path instead of
using JSON in Python.

- - - - -
6980c395 by Philipp Hahn at 2024-01-13T12:27:15+01:00
refactor(docker): improve log output

Include path in debug output.

Let logging.debug() handle the variable substitution.

- - - - -
cd856e65 by Nicolas Dandrimont at 2024-01-13T12:59:47+01:00
Pass all environment variables to docker run

This aligns the docker environment to how the (s)chroot-based environments
are called.

Thanks to Richard Davis <crashvb at gmail.com> for the initial suggestion
and merge request.

- - - - -
1e5fcbca by Nicolas Dandrimont at 2024-01-13T13:25:24+01:00
Move VERSION variable below imports

- - - - -
025d84ae by Nicolas Dandrimont at 2024-01-13T14:04:29+01:00
gitlab-ci: enable the SCRIPT_SECTIONS feature flag

This feature flag should ensure multi-line commands are available in the
job logs.

- - - - -
e043bbc8 by Nicolas Dandrimont at 2024-01-13T14:05:25+01:00
Makefile: Don't change VERSION for UNRELEASED builds in salsaci

The VERSION variable changing according to the current date makes
salsaci fail reproducibility tests, so skip that altogether.

- - - - -
74ef98a2 by Nicolas Dandrimont at 2024-01-13T14:56:30+01:00
Prepare 1.3 release

- - - - -


20 changed files:

- + .coveragerc
- + .gitlab-ci.yml
- + .gitlab-ci/Dockerfile
- + .gitlab-ci/check-salsaci-overrides
- + .gitlab-ci/lint.yml
- + .gitlab-ci/salsaci-overrides.yml
- + .gitlab-ci/test.yml
- Makefile
- debian/changelog
- debian/control
- docs/conf.py
- docs/piuparts/conf.py
- docs/piuparts/piuparts.1.txt
- docs/piuparts_slave_join/conf.py
- docs/piuparts_slave_run/conf.py
- docs/piuparts_slave_stop/conf.py
- master-bin/detect_well_known_errors.py
- piuparts-analyze.py
- piuparts-master-backend.py
- piuparts-report.py


The diff was not included because it is too large.


View it on GitLab: https://salsa.debian.org/debian/piuparts/-/compare/e84d0e979ebc4b9998a7507ad0048769c7314070...74ef98a2feca628fa63fe2f5be21266685b4aadb

-- 
View it on GitLab: https://salsa.debian.org/debian/piuparts/-/compare/e84d0e979ebc4b9998a7507ad0048769c7314070...74ef98a2feca628fa63fe2f5be21266685b4aadb
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/piuparts-devel/attachments/20240113/fccf994a/attachment-0001.htm>


More information about the Piuparts-devel mailing list