Johannes Schauer Marin Rodrigues
5a3d1ab5c4
Rework /dev, /sys, /proc mounting
...
- assume all entries in @devfiles to be in /dev
- allow for /dev, /sys and /proc not to exist in the target and print warning
- allow for /dev entries as well as /sys and /proc not to exist on the outside
- simplify umount by storing special options in @umountopts
- remove superfluous checks for root and unshare mode
- make sure /dev entries are less than 100 chars in size for tar
3 years ago
Johannes Schauer Marin Rodrigues
5fd1ca62d9
coverage.sh: don't attempt deleting non-existant directory
3 years ago
Johannes Schauer Marin Rodrigues
067daaf4c2
also run unshare with --propagation unchanged in root mode
3 years ago
Johannes Schauer Marin Rodrigues
276363c2a1
coverage.sh: remove chroot directories
4 years ago
Johannes Schauer Marin Rodrigues
0009e62b3e
coverage.sh: do not run cap_sys_admin test under lxc
4 years ago
Johannes Schauer Marin Rodrigues
73cd7cd2e8
run unshare --mount with --propagation unchanged to prevent 'cannot change root filesystem propagation' when running mmdebstrap from inside a chroot
4 years ago
Johannes Schauer Marin Rodrigues
39167dbc30
expose hook name to hooks via MMDEBSTRAP_HOOK environment variable
4 years ago
Johannes Schauer Marin Rodrigues
7a43ff89dc
improve dpkg and apt version parsing
4 years ago
Johannes Schauer Marin Rodrigues
4e658549f0
coverage.sh: clean up some additional files
4 years ago
Johannes 'josch' Schauer
7bd733fb8b
In root mode, check whether it's possible to mount
...
- even if the user is root, they might not have permission to mount
- check for CAP_SYS_ADMIN and unshare --mount before proceeding
- allow one to disable the check with --skip=check/canmount
- this is useful in container environments like docker
4 years ago
Johannes 'josch' Schauer
4693034138
allow unshare as root user
...
- this is useful when you are already root and want the benefits of
unsharing the mount namespace to prevent messing up your system
- if the unshare mode is used as root, the user namespace is not unshared
anymore and newuidmap, setuid and friends are not called anymore
- if the unshare mode is used as non-root test if the user namespace can be
unshared, otherwise test if the mount namespace can be unshared
4 years ago
Johannes 'josch' Schauer
0f6741d01a
coverage.sh: allow to run on stable
4 years ago
Johannes 'josch' Schauer
ac21074243
set MMDEBSTRAP_APT_CONFIG, MMDEBSTRAP_MODE and MMDEBSTRAP_HOOKSOCK for hook scripts
4 years ago
Johannes 'josch' Schauer
2d03a81997
coverage.sh: reenabling tests because bugs got fixed
...
- systemd didn't get fixed but somehow the order matches again (bug #963788 )
- python is installable again (bug #968217 )
- apt immediate configure was not fixed but src:glibc changed to not
trigger the bug anymore (bugs #973305 , #973325 and #972552 )
4 years ago
Johannes 'josch' Schauer
0dc8321094
coverage.sh: the output of getcap differs depending on the version
4 years ago
Johannes 'josch' Schauer
e9e5f15f61
coverage.sh: remove tarball earlier to free some space
4 years ago
Johannes 'josch' Schauer
2ccd025a25
coverage.sh: don't execute test modifying /etc/hosts without qemu
4 years ago
Johannes 'josch' Schauer
2c232e0661
don't ignore packages added via --include if multiple apt indices are used
4 years ago
Johannes 'josch' Schauer
3a2b3c142a
coverage.sh: remove stray 'exit 0'
4 years ago
Johannes 'josch' Schauer
9e56353661
coverage.sh: assemble ELF header according to bits and endian
4 years ago
Johannes 'josch' Schauer
077d8cdd9a
coverage.sh,make_mirror.sh: add i386 support
4 years ago
Johannes 'josch' Schauer
165cc82f97
preserve permissions of /etc/resolv.conf and /etc/hostname and resolve symlinks as debootstrap does it
4 years ago
Johannes 'josch' Schauer
a7c557644e
coverage.sh: check for unshare and proot
4 years ago
Johannes 'josch' Schauer
cf695c4a21
coverage.sh: fix total number ant print_header position
4 years ago
Johannes 'josch' Schauer
ac48ff6672
coverage.sh: also test variant=custom with dropping archives into /var/cache/apt/archives
4 years ago
Johannes 'josch' Schauer
beb0b8c177
name solver mmdebstrap-dump-solution in official apt path
4 years ago
Johannes 'josch' Schauer
904b79be06
coverage.sh: fix total number of tests
4 years ago
Johannes 'josch' Schauer
c760661de3
coverage.sh: test using /mnt requires qemu
4 years ago
Johannes 'josch' Schauer
1e7e002eb1
print explicit info message about installing essential packages
4 years ago
Johannes 'josch' Schauer
2c5d902822
coverage.sh: the proot+pam problem is no more since pam 1.3.1-1
4 years ago
Johannes 'josch' Schauer
d96d0e0e16
coverage.sh: if a test cannot be executed mark it as skipped instead of ignoring it
4 years ago
Johannes 'josch' Schauer
df04cf91f2
coverage.sh: only copy or test files that actually exist
4 years ago
Johannes 'josch' Schauer
3731393c7a
coverage.sh: fix HOSTARCH -> ONLINE
4 years ago
Johannes 'josch' Schauer
692f687928
coverage.sh: skip tests affected by #973305 and #973325
4 years ago
Johannes 'josch' Schauer
0b4f8ca7db
replace armhf with arm64 in the testsuite because builds of gcc on armhf can take more than 2 days, resulting in a long m-a:same version skew
4 years ago
Johannes 'josch' Schauer
3babdb04cb
coverage.sh: /etc/apt/apt.conf.d/01autoremove-kernels is not anymore always created
4 years ago
Johannes 'josch' Schauer
0c990abc48
coverage.sh: only consider non-POD parts for maximum line length check
4 years ago
Johannes 'josch' Schauer
21a26b5dac
pass verbosity to hook-listener
4 years ago
Johannes 'josch' Schauer
bf87e83bdb
make it possible to seed /var/cache/apt/archives with deb packages
4 years ago
Johannes 'josch' Schauer
e4a3d2b2c5
coverage.sh: two tests need qemu isolation
4 years ago
Johannes 'josch' Schauer
caa80ccd95
coverage.sh: send adios to hook-listener
4 years ago
Johannes 'josch' Schauer
d528f6316c
coverage.sh: store temporary files in /tmp and not in shared
4 years ago
Johannes 'josch' Schauer
33b1ed5993
coverage.sh: test ubuntu focal
4 years ago
Johannes 'josch' Schauer
7c752fa8a0
print elapsed time after successful run
4 years ago
Johannes 'josch' Schauer
07fa6f29c8
coverage.sh: remove unused variable declaration
4 years ago
Johannes 'josch' Schauer
74725ac451
coverage.sh: test eatmydata and merged-usr hooks
4 years ago
Johannes 'josch' Schauer
465c056434
no longer needs to install twice when --depkgopt=path-exclude is given by filtering the tarball with new tarfilter utility
4 years ago
Johannes 'josch' Schauer
7c532d5572
coverage.sh: produce report inside VM to prevent errors from version mismatches
4 years ago
Johannes 'josch' Schauer
c4d9d81258
coverage.sh: fixup commit 95400ee1
4 years ago
Johannes 'josch' Schauer
95400ee1e2
coverage.sh: add test for hook-dir
4 years ago
Johannes 'josch' Schauer
e2a759967f
put hook listener into its own function and expose it to the CLI via --hook-listener
4 years ago
Johannes 'josch' Schauer
e8144b1fbb
coverage.sh: run diff with -u
4 years ago
Johannes 'josch' Schauer
8c467584f6
coverage.sh: check that xattrs are set in the original tarball
4 years ago
Johannes 'josch' Schauer
7ec0e1b4e1
coverage.sh: skip prio:standard test because python is priority:standard but uninstallable since August 03 2020, see Debian bug #968217
4 years ago
Johannes 'josch' Schauer
d9153818f4
since libcap2 2.41 or upstream commit 177cd418, the getcap output format changed
4 years ago
Johannes 'josch' Schauer
6af42fafe9
coverage.sh: document how to check for new chrootless packages
4 years ago
Johannes 'josch' Schauer
6eb52d8095
coverage.sh: print unified diff
4 years ago
Johannes 'josch' Schauer
35b72c9895
coverage.sh: skip tests because of #963788
4 years ago
Johannes 'josch' Schauer
6c4c4bef41
coverage.sh: comparing amd64 with i386 should only be done with RUN_MA_SAME_TESTS = yes
4 years ago
Johannes 'josch' Schauer
c633a9ac0d
coverage.sh: add test for known-good chrootless packages
4 years ago
Johannes 'josch' Schauer
1dc0984821
Revert "remove libgcc1 for libc6 >= 2.30-2" -- situation in debootstrap is fixed
...
This reverts commit a91d7440cb
.
4 years ago
Johannes 'josch' Schauer
da4de7cfdf
coverage.sh: test wrapping debootstrap in mmdebstrap
4 years ago
Johannes 'josch' Schauer
c0ee8c82db
coverage.sh: check bit-by-bit identical squashfs and ext2 output using S_D_E between root and unshare modes
4 years ago
Johannes 'josch' Schauer
895c388ede
add --format option and ext2 image output
4 years ago
Johannes 'josch' Schauer
89e8f7a39a
coverage.sh: abort early if the test system is about to be changed
4 years ago
Johannes 'josch' Schauer
6b90cf7006
coverage.sh: workaround for squashfs-tools-ng/issues/42
4 years ago
Johannes 'josch' Schauer
02ed5e33f8
add --extract-hook
4 years ago
Johannes 'josch' Schauer
446d66ea06
coverage.sh: fix typo
4 years ago
Johannes 'josch' Schauer
aa3d2875a8
coverage.sh: also compare permissions, ownership, symlink targets and mtimes
4 years ago
Johannes 'josch' Schauer
a91d7440cb
remove libgcc1 for libc6 >= 2.30-2
...
The buildd variant of debootstrap will install libgcc-s1 *and* libgcc1
even though the former provides the latter. Remove the latter manually.
Since apt does not consider libgcc1 necessary, we have to download it
explicitly for debootstrap.
See Debian bug #953861
4 years ago
Johannes 'josch' Schauer
73b46e1812
coverage.sh: add test that makes sure that TMPDIR is used and works in unshare mode
4 years ago
Johannes 'josch' Schauer
5107116384
coverage.sh: use regex to not rely on exact gcc version
4 years ago
Johannes 'josch' Schauer
a8fa48fbc7
coverage.sh: host architecture in --logfile output must depend on host
5 years ago
Johannes 'josch' Schauer
62159d124a
support deb822-style format apt sources
5 years ago
Johannes 'josch' Schauer
3aef4dcc67
coverage.sh: add test comparing variant=debootstrap tarball for mode=root with mode=unshare
5 years ago
Johannes 'josch' Schauer
64fedc530e
Restore deterministic tar with pax and xattr support
...
- all creating and extraction of tarballs respects extended attributes
- extended attributes require pax format, so explicitly request the
format
- to make pax bit-by-bit reproducible, ctime, atime and PID have to be
removed from the headers with:
--pax-option=exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime
- always pass --numeric-owner to tar
- always pass --xattrs when creating a tar
- always pass --xattrs --xattrs-include=* when extracting a tar
5 years ago
Johannes 'josch' Schauer
77c8bb7252
coverage.sh: fix typo in header message
5 years ago
Johannes 'josch' Schauer
1f59856858
make_mirro.sh: install gpg into qemu machine
5 years ago
Johannes 'josch' Schauer
8481068cd2
coverage.sh: write mmdebstrap.tdy into temporary file instead of current directory
5 years ago
Johannes 'josch' Schauer
98c8c573de
coverage.sh: test taridshift
5 years ago
Johannes 'josch' Schauer
7d152ec7e0
add sync-in and sync-out hooks
5 years ago
Johannes 'josch' Schauer
5e0f6d0ca8
coverage.sh: strip -in from upload-in and download-in
5 years ago
Johannes 'josch' Schauer
66957e6abd
coverage.sh: redirect grep output to /dev/null instead of using --quiet to prevent broken pipe
5 years ago
Johannes 'josch' Schauer
40c9f76d91
coverage.sh: check the full log to also prevent debug printfs to accidentally make it into a commit
5 years ago
Johannes 'josch' Schauer
2cb6438454
add --dry-run and --simulate
5 years ago
Johannes 'josch' Schauer
c36bfe25e7
reduce cover_db.img size, now that we don't run it for exec-ed processes anymore
5 years ago
Johannes 'josch' Schauer
f867384c20
coverage.sh: test with perlcritic
5 years ago
Johannes 'josch' Schauer
4ba82a41cf
format code with perltidy
5 years ago
Johannes 'josch' Schauer
4fed488c35
when re-execing itself, keep Devel::Cover options
5 years ago
Johannes 'josch' Schauer
f2ad2976ef
coverage.sh: remove some debugging output
5 years ago
Johannes 'josch' Schauer
caf8fd8283
coverage.sh: exit 1 instead of continuing after printing differences
5 years ago
Johannes 'josch' Schauer
161f8b0ec2
coverage.sh: bump cover_db.img size to 384MB
5 years ago
Johannes 'josch' Schauer
dbdf3f34c6
add support for generating squashfs images using tar2sqfs
5 years ago
Johannes 'josch' Schauer
51fab612ed
coverage.sh: cleanup shared/test.sh
5 years ago
Johannes 'josch' Schauer
8a0b003353
coverage.sh: cleanup dpkg config
5 years ago
Johannes 'josch' Schauer
b143e170e2
coverage.sh: keep track of executed and skipped tests
5 years ago
Johannes 'josch' Schauer
04e40eca47
coverage.sh: output messages on stderr
5 years ago
Johannes 'josch' Schauer
dc7663b3a8
coverage.sh: allow running tests on architectures other than amd64 with reduced functionality
5 years ago
Johannes 'josch' Schauer
4daae7e9be
coverage.sh: only patch /etc/shadow if necessary
5 years ago
Johannes 'josch' Schauer
46c9d4e058
coverage.sh: change busybox test to not be super sensitive about changes in unstable anymore
5 years ago