Commit graph

235 commits

Author SHA1 Message Date
4c3fddcd54
rewrite coverage.sh
- multiple individual shell scripts instead of one 3.5k line monster
 - tests driven by Python script allowing:
    * declarative test description in coverage.txt
    * collecting errors instead of aborting on first error
    * skipping tests
    * running specific tests
2022-05-28 17:49:05 +02:00
b99f1d53d5
add file-mirror-automount hook-dir 2022-05-26 07:36:21 +02:00
cc3150ef04
Rework download stage to allow file:// mirrors
- factor out package downloading function
 - replace -oApt::Get::Download-Only=true by -oDebug::pkgDpkgPm=1
 - remove guessing of package names in /var/cache/apt/archives/
 - drop edsp parsing with proxysolver/mmdebstrap-dump-solution to obtain
   downloaded filenames in favour of -oDpkg::Pre-Install-Pkgs::=cat
 - /var/cache/apt/archives/ is now allowed to contain packages
 - drop --skip=download/empty
 - file:// mirrors are now supported if their path is available inside
   the chroot
2022-05-26 07:36:21 +02:00
c8835a6149
coverage.sh: make sure archives we copied into /var/cache/apt/archives are not deleted 2022-05-24 04:16:11 +02:00
2c155f7cc9
coverage.sh: only skip foreign arch if RUN_MA_SAME_TESTS==no and mode==fakechroot 2022-05-22 02:54:01 +02:00
d7b39b6c97
coverage.sh: enable building variant=standard 2022-05-22 02:53:17 +02:00
6ec09c27ca
coverage.sh: mount tmpfs as workaround for #1010957 2022-05-22 02:51:58 +02:00
70b081d299
allow running root mode inside unshare mode 2022-03-25 14:25:54 +01:00
4ce5a92123
coverage.sh: now that the _apt user is created as a system user by adduser, we also need to change /etc/shadow 2022-03-07 23:41:12 +01:00
3a9ba24d12
coverage.sh: output diff to stderr prevent interleaving with sh -x output 2022-03-07 11:30:45 +01:00
3962f36441
coverage.sh: since fontconfig was fixed, document the remaining reproducibility issues 2022-02-11 22:58:37 +01:00
88b9eaaad9
passwd since 1:4.11.1+dfsg1-1 creates an empty /var/mail/_apt 2022-02-11 22:57:59 +01:00
79ae6f03fd
coverage.sh: add test checking that ASCII armored keyrings work 2022-01-07 23:15:07 +01:00
88619e4d9c
test codename apt pattern as well, requires apt >= 2.3.14
closes: #21
2022-01-07 12:46:42 +01:00
3b2a681cc6
coverage.sh: support for s390x 2021-11-09 07:28:59 +01:00
4da43ec72e
coverage.sh: remove redundant tests 2021-11-09 07:27:10 +01:00
4f278deadf
use rm and find instead of remove_tree()
* remove_tree() requires the CWD to be accessible or fails with
   cannot chdir to $CWD from $DIR_TO_DELETE: Permission denied, aborting.
 * CWD is not always accessible -- example: run mmdebstrap from a
   directory only accessible by the current user (like a tempdir) in
   unshare mode
 * find from findutils *also* requires CWD to be accessible but it's
   easier to temporarily change CWD in a subprocess because using
   there is no utility in perl core that changes CWD temporarily and
   cleans up after itself
 * we need to use find from findutils instead of rm in unshare mode
   because the root directory itself might not be removable by the
   unshared user so we only want to remove its subdirectories
2021-10-07 07:07:45 +02:00
12ec2c50aa
also create cmethopt and available in chrootless mode
- this allows bit-by-bit identical output of chrootless mode compared
   to other modes
2021-09-22 15:22:35 +02:00
03ebda088f
coverage.sh: use MMDEBSTRAP_APT_CONFIG to prevent apt options (like foreign archs) leaking into the apt calls 2021-09-22 09:04:27 +02:00
450881f4ce
coverage.sh: setup00-merged-usr.sh moved into a subdirectory 2021-09-21 23:01:58 +02:00
28707c79d2
coverage.sh: disable chrootless test broken by #983425 2021-09-21 14:20:31 +02:00
7ff7609a4c
coverage.sh: add fakechroot to test name 2021-09-21 14:19:31 +02:00
f5f6343622
coverage.sh: remove redundant tests 2021-09-21 14:15:31 +02:00
6d59d51a4a
add ldconfig.fakechroot and translate symlinks for bit-by-bit identical buildd variant 2021-09-16 16:23:46 +02:00
6a8fbae9d8
make fakechroot mode bit-by-bit identical to the others 2021-08-29 10:25:34 +02:00
5a5f57b404
Automatically skip using mount if that's not possible
- instead of throwing an error, just print a warning
 - can now run as root without cap_sys_admin
 - can now run without mount installed
 - --skip=check/canmount is not needed anymore
2021-08-26 15:40:27 +02:00
e53d246a3b
also test minbase buildd important standard with --dry-run/--simulate 2021-08-26 08:34:30 +02:00
Joe Groocock
15029c1c3b
improve error message for missing /etc/subuid entry (closes: #9) 2021-08-19 11:18:53 +02:00
dfbf9cdcef
several fixes to chrootless mode 2021-08-17 23:39:20 +02:00
aae47da9ab
coverage.sh: fix test that was wrongly installing outside the chroot and download-only 2021-08-16 23:14:18 +02:00
3e488dd1dd
use apt from the outside by setting DPkg::Chroot-Directory 2021-08-16 22:33:39 +02:00
c63ad87310
changes for release of Debian 11 Buster 2021-08-16 13:11:42 +02:00
4cd69d444a
coverage.sh: let cover output to stderr to prevent wrong message output order 2021-03-08 19:33:24 +01:00
4cd547286c
coverage.sh: sysvinit-utils also works with chrootless 2021-03-08 19:32:53 +01:00
65070e23da
coverage.sh: add more docs for chrootless essential test 2021-03-08 19:32:19 +01:00
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
2021-03-08 08:04:35 +01:00
5fd1ca62d9
coverage.sh: don't attempt deleting non-existant directory 2021-02-19 14:40:20 +01:00
067daaf4c2
also run unshare with --propagation unchanged in root mode 2021-02-19 12:53:14 +01:00
276363c2a1
coverage.sh: remove chroot directories 2021-02-06 14:46:37 +01:00
0009e62b3e
coverage.sh: do not run cap_sys_admin test under lxc 2021-02-06 14:46:37 +01:00
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