Commit graph

478 commits

Author SHA1 Message Date
1890e22b14
do not make the default mirror for the native arch only. The sane expectation is, that the default mirror is for any architecture. 2018-11-21 00:21:46 +01:00
cc7dddb1b3
re-installing packages with dpkg also requires --force-depends because dpkg doesn't consider Pre-Depends 2018-11-21 00:21:46 +01:00
a9765a3ad2
fix Apt::Architectures architecture list 2018-11-21 00:21:46 +01:00
7948894159
dereference array foreignarchs before iterating 2018-11-02 17:24:28 +01:00
4c9d2bd3d7
add sanity check for fakechroot/proot renameat2 bug 2018-10-24 02:41:43 +02:00
b8c63f8797
check the mode earlier so that we can re-exec under fakechroot earlier 2018-10-23 18:04:34 +02:00
70c1468453
in fakechroot mode, do not create symlinks to non-existing /proc 2018-10-23 18:04:34 +02:00
a5866a347c
add --qemu option to proot when creating tar of foreign arch chroot 2018-10-23 18:04:33 +02:00
174d54f933
for simplicity, always use our own /dev tar entries 2018-10-23 18:04:33 +02:00
7534a7607f
Add chrootless mode and extract and custom variants 2018-10-23 15:29:20 +02:00
07f0e53081
Add POD section for environment variables 2018-10-23 15:29:20 +02:00
a6d6ad4d0d
Add more markup to POD 2018-10-23 15:29:20 +02:00
2d6703add0
fix tar call in proot mode (avoid extra entry for /dev and error message about non-existant working directory) 2018-10-23 15:29:20 +02:00
5498f61ce5
apt does not support double quotes in paths 2018-10-23 15:29:20 +02:00
27f10e2300
fix error string (apt is part of the required variant) 2018-10-23 15:29:19 +02:00
1409405af7
always clean apt from the outside in case there is no apt inside the chroot 2018-10-23 15:29:19 +02:00
61ff05566a
as a defensive measure, in conditionals for variant and mode, always check for unknown variant/mode
That way, when adding new variants or modes, we have to consciously
choose which branch is to be taken instead of accidentally taking the
default branch.
2018-10-23 15:29:19 +02:00
12fc63385b
skip /dev in directory creation 2018-10-23 15:29:19 +02:00
145bfe5233
symlinks must also be created with havemknod 2018-10-23 15:29:19 +02:00
b0efc9aa86
also conditionally only act on symlinks if havemknod is false 2018-10-23 15:29:19 +02:00
3c48bce2b2
don't set /usr/bin/env in FAKECHROOT_CMD_SUBST 2018-10-23 15:29:19 +02:00
7a25de31db
Don't rely on Architecture field in indextargets output because it's only filled for non-flat mirrors 2018-10-23 15:29:18 +02:00
bdbe12fec8
don't set Apt::Get::Download-Only in the default apt config but do it explicitly in each apt call 2018-10-23 15:29:18 +02:00
191bc47f2c
make sure that apt puts its logs into the chroot 2018-10-23 15:29:18 +02:00
11633c7278
don't clean auxfiles anymore 2018-10-23 15:29:18 +02:00
7412d5fbce
also unmount in unshare mode to prevent wrong directory permissions of mount targets 2018-10-08 11:26:31 +02:00
ac8084cb42
only unmount device nodes and directories with --no-mtab in unshare mode 2018-10-08 11:25:39 +02:00
594a37d093
add comment about mounting sys with rbind in unshare mode 2018-10-08 11:24:29 +02:00
c6099857e2
do not chmod symlinks because that will change the target of the symlink and not the symlink itself 2018-10-03 09:22:18 +02:00
d634095da1
Skip the loop if nothing was created so that chmod later doesn't fail 2018-10-03 09:21:12 +02:00
eeb1ba4e11
add comment explaining the situation with *-archive-keyring packages 2018-10-03 09:21:12 +02:00
ab96341957
die if chmod fails 2018-10-03 09:19:28 +02:00
f2a3f23acf
Fix havemknod test
"last" only exits the innermost block, thus we need a label. Since
blocks are semantically the same as loops that only execute once, we
also replace the while() with a single block.
2018-10-03 07:29:50 +02:00
c073d0b446
don't use default mirror if no mirror was specified but data was given on standard input 2018-10-02 10:09:22 +02:00
d25e939363
suppress warnings when the test for the arch-test binary fails 2018-10-02 04:11:41 +02:00
edb3c9ed9a
add FIXME comment 2018-10-02 04:11:22 +02:00
1f13d0157b
print /etc/apt/sources.list if apt-get update didn't download anything 2018-10-02 04:11:12 +02:00
bb2aa6e9fd
prevent a 'deb...' mirror argument from being handled by the '://' case 2018-10-02 04:09:18 +02:00
173ea1162b
also remove dpkg lock files 2018-10-01 22:58:29 +02:00
6da8791c11
do not chmod bind mount targets as this would change permissions on the source of the mount 2018-10-01 22:52:45 +02:00
a9db385868
die if copy() fails 2018-10-01 22:51:50 +02:00
640d854c2e
mount a new sysfs when root and don't unmount with --recursive 2018-10-01 17:17:34 +02:00
62b92bb229
fix copy-paste error 2018-10-01 17:14:59 +02:00
b827e58d07
do not print setup() arguments by default 2018-09-24 20:09:43 +02:00
e7e6ec0314
if newuidmap or newgidmap fail, print all their arguments 2018-09-24 20:09:28 +02:00
d232870b28
check whether newuidmap and newgidmap are available 2018-09-24 20:09:08 +02:00
cd39a44934
make sure that unshare mode cannot be run as superuser 2018-09-24 20:07:46 +02:00
ec9ceb2115
Some more logging 2018-09-23 22:27:49 +02:00
1e9817574c
Instead of Dpkg::Index use a primitive deb822 parser and shave off another 10 seconds 2018-09-23 21:15:12 +02:00
16d9b413f7
unset APT_CONFIG inside the chroot 2018-09-23 20:11:48 +02:00
2930475e62
instead of showing the raw apt and dpkg output, display a progress bar 2018-09-23 19:47:14 +02:00
60f047ba66
rmdir /var/lib/apt/lists/auxfiles which is created by apt >= 1.6 but unknown to older apt inside the chroot 2018-09-23 19:45:09 +02:00
4d75cb8b89
Write certain apt options to a common config file inside the chroot so that apt inside and outside adhere to it while its settings can still be overwritten 2018-09-23 19:43:14 +02:00
87b9971539
use any and none from List::Util 2018-09-23 19:36:07 +02:00
ee60b2c7e3
use brackets for correct operator precedence when using grep 2018-09-23 15:26:47 +02:00
fe060e6cad
do not use 'dpkg --install --recursive' because we cannot have a progress bar without knowing how many packages we install 2018-09-21 22:10:14 +02:00
42d9141970
avoid glob() because it splits its argument on whitespace 2018-09-21 20:32:07 +02:00
56688b2fde
check the exit status after all waitpid calls 2018-09-21 19:08:26 +02:00
7b2ca91f59
exit with non-zero exit status if setup() dies 2018-09-21 19:06:47 +02:00
fcc40dc122
chmod 0755 root directory so that other users (like _apt) can access it 2018-09-21 18:57:57 +02:00
0cdd803ba0
store valid modes in an array 2018-09-21 18:57:34 +02:00
550562cf6f
rudimentary support for tor:// URIs 2018-09-21 08:05:39 +02:00
58004816d1
If nothing got downloaded, check if a file:// URI was maybe used and warn about it 2018-09-21 08:05:15 +02:00
9df5afa5c4
apt-get update does not return a non-zero exit on failure, thus parse its output instead 2018-09-21 08:04:40 +02:00
0166f95545
Anticipate arch-test not being installed and only check if chroot architecture is unequal host's architecture 2018-09-21 08:00:06 +02:00
c96a1526b2
add terminating semicolon to more lines 2018-09-21 07:57:52 +02:00
99df33ca1f
Install apt-transport-https and ca-certificates if mirrors are https 2018-09-20 22:42:44 +02:00
bee38bcfc7
only disally --include if variant is essential 2018-09-20 22:42:17 +02:00
e027e9458f
Be explicit about where to install libfakeroot and libfakechroot 2018-09-20 21:07:22 +02:00
b7b6b28377
Don't forget to chomp away the newline of the arch-test output 2018-09-20 20:49:48 +02:00
49cc8cf32e
Clean lock files as well 2018-09-19 08:22:55 +02:00
1adac06646
Add qemu-user support for fakechroot and sudo modes 2018-09-18 17:11:02 +02:00
87586fa667
Instead of adding a fake ldconfig to the chroot, use FAKECHROOT_CMD_SUBST 2018-09-18 16:59:02 +02:00
4f293ebf0d
die if abs_path failed 2018-09-18 16:55:25 +02:00
e4a7336fb9
fix typo includes=>include 2018-09-18 16:48:18 +02:00
1e472dc33d
Capture output of arch-test 2018-09-18 13:10:28 +02:00
77a95f0002
Print information about expecting data from stdin 2018-09-18 13:10:09 +02:00
9ed4c65e35
initial commit 2018-09-18 11:20:24 +02:00