Commit Graph

250 Commits (main)

Author SHA1 Message Date
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 3 years ago
Johannes Schauer Marin Rodrigues 0009e62b3e
coverage.sh: do not run cap_sys_admin test under lxc 3 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 3 years ago
Johannes Schauer Marin Rodrigues 39167dbc30
expose hook name to hooks via MMDEBSTRAP_HOOK environment variable 3 years ago
Johannes Schauer Marin Rodrigues 7a43ff89dc
improve dpkg and apt version parsing 3 years ago
Johannes Schauer Marin Rodrigues 4e658549f0
coverage.sh: clean up some additional files 3 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
3 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
3 years ago
Johannes 'josch' Schauer 0f6741d01a
coverage.sh: allow to run on stable 3 years ago
Johannes 'josch' Schauer ac21074243
set MMDEBSTRAP_APT_CONFIG, MMDEBSTRAP_MODE and MMDEBSTRAP_HOOKSOCK for hook scripts 3 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)
3 years ago
Johannes 'josch' Schauer 0dc8321094
coverage.sh: the output of getcap differs depending on the version 3 years ago
Johannes 'josch' Schauer e9e5f15f61
coverage.sh: remove tarball earlier to free some space 3 years ago
Johannes 'josch' Schauer 2ccd025a25
coverage.sh: don't execute test modifying /etc/hosts without qemu 3 years ago
Johannes 'josch' Schauer 2c232e0661
don't ignore packages added via --include if multiple apt indices are used 3 years ago
Johannes 'josch' Schauer 3a2b3c142a
coverage.sh: remove stray 'exit 0' 3 years ago
Johannes 'josch' Schauer 9e56353661
coverage.sh: assemble ELF header according to bits and endian 3 years ago
Johannes 'josch' Schauer 077d8cdd9a
coverage.sh,make_mirror.sh: add i386 support 3 years ago
Johannes 'josch' Schauer 165cc82f97
preserve permissions of /etc/resolv.conf and /etc/hostname and resolve symlinks as debootstrap does it 3 years ago
Johannes 'josch' Schauer a7c557644e
coverage.sh: check for unshare and proot 3 years ago
Johannes 'josch' Schauer cf695c4a21
coverage.sh: fix total number ant print_header position 3 years ago
Johannes 'josch' Schauer ac48ff6672
coverage.sh: also test variant=custom with dropping archives into /var/cache/apt/archives 3 years ago
Johannes 'josch' Schauer beb0b8c177
name solver mmdebstrap-dump-solution in official apt path 3 years ago
Johannes 'josch' Schauer 904b79be06
coverage.sh: fix total number of tests 3 years ago
Johannes 'josch' Schauer c760661de3
coverage.sh: test using /mnt requires qemu 3 years ago
Johannes 'josch' Schauer 1e7e002eb1
print explicit info message about installing essential packages 3 years ago
Johannes 'josch' Schauer 2c5d902822
coverage.sh: the proot+pam problem is no more since pam 1.3.1-1 3 years ago
Johannes 'josch' Schauer d96d0e0e16
coverage.sh: if a test cannot be executed mark it as skipped instead of ignoring it 3 years ago
Johannes 'josch' Schauer df04cf91f2
coverage.sh: only copy or test files that actually exist 3 years ago
Johannes 'josch' Schauer 3731393c7a
coverage.sh: fix HOSTARCH -> ONLINE 3 years ago
Johannes 'josch' Schauer 692f687928
coverage.sh: skip tests affected by #973305 and #973325 3 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 3 years ago
Johannes 'josch' Schauer 3babdb04cb
coverage.sh: /etc/apt/apt.conf.d/01autoremove-kernels is not anymore always created 3 years ago
Johannes 'josch' Schauer 0c990abc48
coverage.sh: only consider non-POD parts for maximum line length check 3 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 4 years ago
Johannes 'josch' Schauer 62159d124a
support deb822-style format apt sources 4 years ago
Johannes 'josch' Schauer 3aef4dcc67
coverage.sh: add test comparing variant=debootstrap tarball for mode=root with mode=unshare 4 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
4 years ago
Johannes 'josch' Schauer 77c8bb7252
coverage.sh: fix typo in header message 4 years ago
Johannes 'josch' Schauer 1f59856858
make_mirro.sh: install gpg into qemu machine 4 years ago
Johannes 'josch' Schauer 8481068cd2
coverage.sh: write mmdebstrap.tdy into temporary file instead of current directory 4 years ago
Johannes 'josch' Schauer 98c8c573de
coverage.sh: test taridshift 4 years ago
Johannes 'josch' Schauer 7d152ec7e0
add sync-in and sync-out hooks 4 years ago
Johannes 'josch' Schauer 5e0f6d0ca8
coverage.sh: strip -in from upload-in and download-in 4 years ago
Johannes 'josch' Schauer 66957e6abd
coverage.sh: redirect grep output to /dev/null instead of using --quiet to prevent broken pipe 4 years ago
Johannes 'josch' Schauer 40c9f76d91
coverage.sh: check the full log to also prevent debug printfs to accidentally make it into a commit 4 years ago
Johannes 'josch' Schauer 2cb6438454
add --dry-run and --simulate 4 years ago
Johannes 'josch' Schauer c36bfe25e7
reduce cover_db.img size, now that we don't run it for exec-ed processes anymore 4 years ago
Johannes 'josch' Schauer f867384c20
coverage.sh: test with perlcritic 4 years ago
Johannes 'josch' Schauer 4ba82a41cf
format code with perltidy 4 years ago
Johannes 'josch' Schauer 4fed488c35
when re-execing itself, keep Devel::Cover options 4 years ago
Johannes 'josch' Schauer f2ad2976ef
coverage.sh: remove some debugging output 4 years ago
Johannes 'josch' Schauer caf8fd8283
coverage.sh: exit 1 instead of continuing after printing differences 4 years ago
Johannes 'josch' Schauer 161f8b0ec2
coverage.sh: bump cover_db.img size to 384MB 4 years ago
Johannes 'josch' Schauer dbdf3f34c6
add support for generating squashfs images using tar2sqfs 4 years ago
Johannes 'josch' Schauer 51fab612ed
coverage.sh: cleanup shared/test.sh 4 years ago
Johannes 'josch' Schauer 8a0b003353
coverage.sh: cleanup dpkg config 4 years ago
Johannes 'josch' Schauer b143e170e2
coverage.sh: keep track of executed and skipped tests 4 years ago
Johannes 'josch' Schauer 04e40eca47
coverage.sh: output messages on stderr 4 years ago
Johannes 'josch' Schauer dc7663b3a8
coverage.sh: allow running tests on architectures other than amd64 with reduced functionality 4 years ago
Johannes 'josch' Schauer 4daae7e9be
coverage.sh: only patch /etc/shadow if necessary 4 years ago
Johannes 'josch' Schauer 46c9d4e058
coverage.sh: change busybox test to not be super sensitive about changes in unstable anymore 4 years ago