Commit graph

245 commits

Author SHA1 Message Date
73cd7cd2e8
run unshare --mount with --propagation unchanged to prevent 'cannot change root filesystem propagation' when running mmdebstrap from inside a chroot 2021-02-06 10:11:53 +01:00
39167dbc30
expose hook name to hooks via MMDEBSTRAP_HOOK environment variable 2021-02-06 09:18:05 +01:00
7a43ff89dc
improve dpkg and apt version parsing 2021-02-04 17:42:40 +01:00
4e658549f0
coverage.sh: clean up some additional files 2021-02-04 17:39:50 +01:00
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
2021-01-13 18:40:29 +01:00
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
2021-01-13 16:15:59 +01:00
0f6741d01a
coverage.sh: allow to run on stable 2021-01-11 13:28:18 +01:00
ac21074243
set MMDEBSTRAP_APT_CONFIG, MMDEBSTRAP_MODE and MMDEBSTRAP_HOOKSOCK for hook scripts 2021-01-09 19:41:59 +01:00
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)
2021-01-06 11:33:37 +01:00
0dc8321094
coverage.sh: the output of getcap differs depending on the version 2021-01-06 11:19:15 +01:00
e9e5f15f61
coverage.sh: remove tarball earlier to free some space 2021-01-06 11:18:46 +01:00
2ccd025a25
coverage.sh: don't execute test modifying /etc/hosts without qemu 2020-12-02 00:44:57 +01:00
2c232e0661
don't ignore packages added via --include if multiple apt indices are used 2020-12-02 00:33:18 +01:00
3a2b3c142a
coverage.sh: remove stray 'exit 0' 2020-12-01 16:10:21 +01:00
9e56353661
coverage.sh: assemble ELF header according to bits and endian 2020-11-29 22:24:01 +01:00
077d8cdd9a
coverage.sh,make_mirror.sh: add i386 support 2020-11-29 21:39:08 +01:00
165cc82f97
preserve permissions of /etc/resolv.conf and /etc/hostname and resolve symlinks as debootstrap does it 2020-11-29 20:54:31 +01:00
a7c557644e
coverage.sh: check for unshare and proot 2020-11-29 15:13:59 +01:00
cf695c4a21
coverage.sh: fix total number ant print_header position 2020-11-29 11:41:36 +01:00
ac48ff6672
coverage.sh: also test variant=custom with dropping archives into /var/cache/apt/archives 2020-11-29 11:40:26 +01:00
beb0b8c177
name solver mmdebstrap-dump-solution in official apt path 2020-11-29 02:30:03 +01:00
904b79be06
coverage.sh: fix total number of tests 2020-11-29 01:55:35 +01:00
c760661de3
coverage.sh: test using /mnt requires qemu 2020-11-28 15:22:56 +01:00
1e7e002eb1
print explicit info message about installing essential packages 2020-11-28 00:45:32 +01:00
2c5d902822
coverage.sh: the proot+pam problem is no more since pam 1.3.1-1 2020-11-28 00:34:48 +01:00
d96d0e0e16
coverage.sh: if a test cannot be executed mark it as skipped instead of ignoring it 2020-11-27 22:52:18 +01:00
df04cf91f2
coverage.sh: only copy or test files that actually exist 2020-11-27 01:00:56 +01:00
3731393c7a
coverage.sh: fix HOSTARCH -> ONLINE 2020-11-26 23:45:32 +01:00
692f687928
coverage.sh: skip tests affected by #973305 and #973325 2020-11-26 23:42:29 +01:00
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 2020-11-26 23:16:36 +01:00
3babdb04cb
coverage.sh: /etc/apt/apt.conf.d/01autoremove-kernels is not anymore always created 2020-11-26 23:10:38 +01:00
0c990abc48
coverage.sh: only consider non-POD parts for maximum line length check 2020-11-15 11:30:04 +01:00
21a26b5dac
pass verbosity to hook-listener 2020-11-13 22:37:53 +01:00
bf87e83bdb
make it possible to seed /var/cache/apt/archives with deb packages 2020-11-13 19:02:41 +01:00
e4a3d2b2c5
coverage.sh: two tests need qemu isolation 2020-08-28 14:37:50 +02:00
caa80ccd95
coverage.sh: send adios to hook-listener 2020-08-28 14:37:05 +02:00
d528f6316c
coverage.sh: store temporary files in /tmp and not in shared 2020-08-27 15:18:43 +02:00
33b1ed5993
coverage.sh: test ubuntu focal 2020-08-26 09:44:29 +02:00
7c752fa8a0
print elapsed time after successful run 2020-08-25 18:08:31 +02:00
07fa6f29c8
coverage.sh: remove unused variable declaration 2020-08-25 16:05:33 +02:00
74725ac451
coverage.sh: test eatmydata and merged-usr hooks 2020-08-25 16:05:10 +02:00
465c056434
no longer needs to install twice when --depkgopt=path-exclude is given by filtering the tarball with new tarfilter utility 2020-08-25 13:02:33 +02:00
7c532d5572
coverage.sh: produce report inside VM to prevent errors from version mismatches 2020-08-24 18:45:22 +02:00
c4d9d81258
coverage.sh: fixup commit 95400ee1 2020-08-24 18:45:22 +02:00
95400ee1e2
coverage.sh: add test for hook-dir 2020-08-17 18:59:54 +02:00
e2a759967f
put hook listener into its own function and expose it to the CLI via --hook-listener 2020-08-15 22:36:13 +02:00
e8144b1fbb
coverage.sh: run diff with -u 2020-08-15 18:07:45 +02:00
8c467584f6
coverage.sh: check that xattrs are set in the original tarball 2020-08-15 18:05:59 +02:00
7ec0e1b4e1
coverage.sh: skip prio:standard test because python is priority:standard but uninstallable since August 03 2020, see Debian bug #968217 2020-08-13 14:03:31 +02:00
d9153818f4
since libcap2 2.41 or upstream commit 177cd418, the getcap output format changed 2020-08-11 22:43:44 +02:00
6af42fafe9
coverage.sh: document how to check for new chrootless packages 2020-07-09 07:40:54 +02:00
6eb52d8095
coverage.sh: print unified diff 2020-07-09 07:35:59 +02:00
35b72c9895
coverage.sh: skip tests because of #963788 2020-07-09 07:34:38 +02:00
6c4c4bef41
coverage.sh: comparing amd64 with i386 should only be done with RUN_MA_SAME_TESTS = yes 2020-06-24 23:11:03 +02:00
c633a9ac0d
coverage.sh: add test for known-good chrootless packages 2020-06-24 23:10:29 +02:00
1dc0984821
Revert "remove libgcc1 for libc6 >= 2.30-2" -- situation in debootstrap is fixed
This reverts commit a91d7440cb.
2020-06-24 09:34:34 +02:00
da4de7cfdf
coverage.sh: test wrapping debootstrap in mmdebstrap 2020-05-03 20:32:50 +02:00
c0ee8c82db
coverage.sh: check bit-by-bit identical squashfs and ext2 output using S_D_E between root and unshare modes 2020-05-03 09:40:37 +02:00
895c388ede
add --format option and ext2 image output 2020-04-09 20:40:23 +02:00
89e8f7a39a
coverage.sh: abort early if the test system is about to be changed 2020-04-09 18:40:27 +02:00
6b90cf7006
coverage.sh: workaround for squashfs-tools-ng/issues/42 2020-04-09 18:40:23 +02:00
02ed5e33f8
add --extract-hook 2020-04-09 18:40:18 +02:00
446d66ea06
coverage.sh: fix typo 2020-03-22 14:07:28 +01:00
aa3d2875a8
coverage.sh: also compare permissions, ownership, symlink targets and mtimes 2020-03-22 14:07:00 +01:00
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
2020-03-15 14:04:57 +01:00
73b46e1812
coverage.sh: add test that makes sure that TMPDIR is used and works in unshare mode 2020-03-07 23:34:32 +01:00
5107116384
coverage.sh: use regex to not rely on exact gcc version 2020-03-06 08:44:22 +01:00
a8fa48fbc7
coverage.sh: host architecture in --logfile output must depend on host 2020-01-24 10:12:29 +01:00
62159d124a
support deb822-style format apt sources 2020-01-22 23:30:28 +01:00
3aef4dcc67
coverage.sh: add test comparing variant=debootstrap tarball for mode=root with mode=unshare 2020-01-21 13:32:05 +01:00
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
2020-01-21 13:24:49 +01:00
77c8bb7252
coverage.sh: fix typo in header message 2020-01-21 13:12:03 +01:00
1f59856858
make_mirro.sh: install gpg into qemu machine 2020-01-21 13:08:35 +01:00
8481068cd2
coverage.sh: write mmdebstrap.tdy into temporary file instead of current directory 2020-01-21 13:07:18 +01:00
98c8c573de
coverage.sh: test taridshift 2020-01-18 23:13:10 +01:00
7d152ec7e0
add sync-in and sync-out hooks 2020-01-16 10:38:14 +01:00
5e0f6d0ca8
coverage.sh: strip -in from upload-in and download-in 2020-01-16 10:30:21 +01:00
66957e6abd
coverage.sh: redirect grep output to /dev/null instead of using --quiet to prevent broken pipe 2020-01-10 12:07:03 +01:00
40c9f76d91
coverage.sh: check the full log to also prevent debug printfs to accidentally make it into a commit 2020-01-10 12:03:49 +01:00
2cb6438454
add --dry-run and --simulate 2020-01-10 11:44:15 +01:00
c36bfe25e7
reduce cover_db.img size, now that we don't run it for exec-ed processes anymore 2020-01-09 12:41:26 +01:00
f867384c20
coverage.sh: test with perlcritic 2020-01-09 08:39:40 +01:00
4ba82a41cf
format code with perltidy 2020-01-08 17:46:41 +01:00
4fed488c35
when re-execing itself, keep Devel::Cover options 2020-01-08 15:33:49 +01:00
f2ad2976ef
coverage.sh: remove some debugging output 2020-01-07 18:10:44 +01:00
caf8fd8283
coverage.sh: exit 1 instead of continuing after printing differences 2020-01-07 18:10:12 +01:00
161f8b0ec2
coverage.sh: bump cover_db.img size to 384MB 2020-01-07 18:08:20 +01:00
dbdf3f34c6
add support for generating squashfs images using tar2sqfs 2020-01-07 17:40:13 +01:00
51fab612ed
coverage.sh: cleanup shared/test.sh 2020-01-06 13:03:45 +01:00
8a0b003353
coverage.sh: cleanup dpkg config 2020-01-06 13:03:29 +01:00
b143e170e2
coverage.sh: keep track of executed and skipped tests 2020-01-06 13:02:27 +01:00
04e40eca47
coverage.sh: output messages on stderr 2020-01-06 12:56:40 +01:00
dc7663b3a8
coverage.sh: allow running tests on architectures other than amd64 with reduced functionality 2020-01-06 11:10:31 +01:00
4daae7e9be
coverage.sh: only patch /etc/shadow if necessary 2020-01-05 21:01:10 +01:00
46c9d4e058
coverage.sh: change busybox test to not be super sensitive about changes in unstable anymore 2020-01-05 20:58:20 +01:00
163da0a72d
coverage.sh: add safety measure to ensure certain tests are not run outside qemu 2020-01-04 01:24:17 +01:00
95e4a82937
coverage.sh: redirect to /dev/null instead of --quiet to avoid broken pipe 2020-01-04 01:14:01 +01:00
170344a611
coverage.sh: busybox sub-essential system now contains libcrypt1 2020-01-04 00:37:02 +01:00
75609a0b55
coverage.sh: make sure we have a gzip compressed file by checking the first three magic bytes 2020-01-04 00:36:21 +01:00
b3949f6f7a
coverage.sh: continue loop after finding a program to diff with 2020-01-04 00:35:11 +01:00