25bec4d5e1
add --merged-usr and --no-merged-usr no-op options for debootstrap compatibility
2019-01-07 13:18:59 +01:00
418b42746e
create an empty /var/lib/dpkg/available as otherwise dpkg fails on package removal
2019-01-07 13:16:51 +01:00
1e0b4cb3b0
now that fakechroot and proot are fixed, add support for for variants beyond essential and apt
2019-01-01 14:28:56 +01:00
29550acb88
add --interactive=never to rm call to avoid prompts for removal of write protected files in proot mode
2018-12-30 17:18:27 +01:00
e6ce901be4
run several binfmt checks before using qemu-user mode
2018-12-28 07:19:24 +01:00
4a2bf62931
add --resolve-deps no-op option for sbuild-createchroot compatibility
2018-12-28 07:19:23 +01:00
3f29fa461a
don't die if output cannot be written to tarball and instead check error condition early
2018-12-28 07:19:23 +01:00
f4263ebd74
add --verbose option that prints apt and dpkg output instead of progress bars
2018-12-28 07:19:23 +01:00
61ad8a8e45
update --help output for --aptopt using single quotes to avoid escaping of double quotes
2018-12-28 07:19:23 +01:00
97d273aaf6
disable merged usr
2018-12-07 00:17:10 +01:00
f101057e1b
add qemu TODO item
2018-12-06 17:15:56 +01:00
b0979d1d6b
add verbose mode to test_unshare() so that it can report what went wrong
2018-12-05 08:06:26 +01:00
3ffc8ea35f
add FIXME comment about binfmt_misc support
2018-12-05 08:05:32 +01:00
4ef1eda200
append to $PATH instead of replacing its content
2018-11-23 17:30:32 +01:00
972b207508
implement 'extract' variant
2018-11-21 00:21:47 +01:00
16d2a4a8d9
allow empty lost+found directory in target directory
2018-11-21 00:21:46 +01:00
1730a17286
add two code comments
2018-11-21 00:21:46 +01:00
2949691591
When packaging the tarball with proot, exclude /host-rootfs
2018-11-21 00:21:46 +01:00
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