Commit graph

151 commits

Author SHA1 Message Date
4447769b50
when creating a tarball in chrootless mode, use root ownership 2019-09-04 13:50:25 +02:00
a921e32e6c
Do not unconditionally read standard input
mmdebstrap used to attempt reading stdin if it was not a tty. This leads
to unexpected behaviour when mmdebstrap is used through ssh without a
pseudo-terminal allocated like so:

    $ ssh remote mmdebstrap unstable /output/dir http://mirror

This will stall forever, waiting for data on standard input. Or
consider:

    $ ssh remote << END
    > somecommand
    > mmdebstrap unstable /output/dir http://mirror
    > othercommand
    END

This will make mmdebstrap read "othercommand" and everything that
follows as a sources.list entry. To prevent this unexpected behaviour,
the following ways to use mmdebstrap will not be supported anymore:

    $ mmdebstrap unstable /output/dir < sources.list
    $ mmdebstrap unstable /output/dir http://mirror < sources.list

Instead, one must now explicitly pass "-" if one wants mmdebstrap to
read from stdin:

    $ mmdebstrap unstable /output/dir - < sources.list
    $ mmdebstrap unstable /output/dir http://mirror - < sources.list
2019-08-28 00:53:04 +02:00
1219a65723
add /var/lib/dpkg/arch in chrootless mode when chroot architecture differs 2019-08-26 18:25:21 +02:00
Helmut Grohne
4f2e655ad5
Only attempt removing qemu-user-static for root or unshare mode 2019-08-26 16:34:35 +02:00
2d2cdfbbc3
create /var/lib/dpkg/cmethopt for dselect (see #930788) 2019-08-21 14:57:54 +02:00
68d7ec15bd
fix docs: fakechroot is tried before proot in auto mode 2019-07-24 16:47:47 +02:00
da489c6a53
Only error out on W: and Err: lines, on "apt-get update"
Otherwise, maintainer scripts that output W: or Err: lines will break
package installation on "apt-get install".
2019-04-30 00:07:35 +02:00
c734a59f86
chdir to parent of root before remove_tree to prevent 'cannot stat initial working directory' of File::Path 2019-04-25 08:56:42 +02:00
ca37c4e89e
chmod 0755 on qemu-user-static binary 2019-04-25 08:54:31 +02:00
14d3a4e30f
add Dir::State::Status to apt config for apt << 1.3 2019-04-25 08:51:42 +02:00
dd5214a8c8
chdir() before 'apt-get update' to accomodate for apt << 1.5 (Debian bug #860738) 2019-04-25 08:49:28 +02:00
b2d5a45932
cleanup auxfiles *after* running apt-get update or otherwise it will be re-created 2019-04-23 13:28:55 +02:00
19fdb4914d
coverage.sh: auto generate package list for aspcud instead of hardcoding it 2019-03-27 11:44:45 +01:00
454dd9fa3e
Annotate examples with a description of their effect 2019-03-25 14:50:41 +01:00
a69a2d39b8
also re-exec under fakechroot if fakechroot is picked in 'auto' mode 2019-03-25 14:35:38 +01:00
3e8a251e1f
fix EDSP output for external solvers so that apt doesn't mark itself as Essential:yes 2019-03-25 14:31:45 +01:00
6a51d410ec
do not skip package installation in 'custom' variant 2019-03-25 14:27:34 +01:00
6d774a3d92
release 0.4.1 2019-03-01 12:56:57 +01:00
016cac22f8
add note about dpkg config bug 2019-03-01 12:53:16 +01:00
52b1a9dc6e
instead of touching a file, test if /var/lib/apt/lists/partial is readable to decide about apt sandboxing 2019-03-01 01:05:32 +01:00
473bc354ae
only set apt Dir config option instead of setting apt directories individually 2019-02-28 12:22:42 +01:00
e1a41fac94
print errno when unlink fails 2019-02-28 12:20:42 +01:00
920877fa2a
disable apt sandboxing if the chroot directory is not accessible by the _apt user 2019-02-28 11:54:03 +01:00
d0f0283120
do not cleanup apt and dpkg lock files to not set bad precedence 2019-02-28 00:20:00 +01:00
e3219a5c8f
release 0.4.0 2019-02-23 13:25:56 +01:00
48e34852a2
clean /var/lib/apt/lists/auxfiles so that apt older than 1.6 has no problem with the chroot 2019-02-23 13:22:44 +01:00
a91a825e67
add --version option 2019-02-23 08:55:31 +01:00
d73b8396ac
print the used temporary directory as info message 2019-02-23 08:50:02 +01:00
e06f2e9c57
the mmdebstrap command name has to be written in bold 2019-02-23 08:49:19 +01:00
1b8ad8400b
add --logfile option 2019-02-23 08:43:15 +01:00
1fe5da3d56
Better documentation of example showing mmdebstrap with sources.list on stdin 2019-02-20 18:18:31 +01:00
6e61c1a183
document the behaviour if --quiet, --silent, --verbose or --debug are passed at the same time 2019-02-20 18:17:00 +01:00
db415fe4f4
add short options for --quiet, --silent, --verbose and --debug 2019-02-20 18:02:55 +01:00
fffd74afc2
explicitly configure Getopt::Long 2019-02-20 18:00:52 +01:00
0b058c7db1
add --setup-hook, --essential-hook and rename --customize to --customize-hook 2019-02-20 13:32:49 +01:00
89718d367e
test no-op options and print info message when they are used 2019-02-15 12:42:46 +01:00
5115ca87c3
don't unset environment variables in @chrootcmd so that hooks still have access to them 2019-02-15 11:40:06 +01:00
3f15f66892
fix example for vmdb2 replacement 2019-02-15 11:36:40 +01:00
548130867b
do not run another apt-get pass with custom variant 2019-02-15 11:32:44 +01:00
bde4c795ef
document that security mirrors are only implicitly added if no mirror was specified 2019-01-24 12:39:01 +01:00
b9e78796b2
prefer fakechroot to proot in auto mode because the latter produces wrong ownership 2019-01-24 12:37:44 +01:00
a3afe24fc0
Instead of using gzip compression support, run compressor ourselves
- otherwise ./dev tar cannot be concatenated with the rest
 - test compressor early
 - better document the TARGET option
2019-01-24 12:32:46 +01:00
84b0b5061b
start sanitizing the environment with chroot() and don't pass on TMPDIR 2019-01-20 10:46:19 +01:00
6f8bb8c977
since copy() is using syswrite(), we must flush the filehandle before calling it 2019-01-20 10:46:16 +01:00
982f8e982c
add --quiet and --debug switches and debug/verbose/info/warning/error functions 2019-01-20 10:39:01 +01:00
58a3069495
add mmdebstrap prefix to temporary directory name 2019-01-14 22:24:33 +01:00
765f5b91e9
call apt with Dpkg::Use-Pty=false to enable immediate termination upon SIGINT and prevent it from messing up the terminal with tcsetattr() 2019-01-14 22:23:02 +01:00
be1af15489
use common function for run_dpkg_progress and run_apt_progress 2019-01-13 22:04:25 +01:00
7f58c4596a
handle INT, HUB, PIPE and TERM signals, wait for child processes and clean up mounts 2019-01-13 10:17:46 +01:00
0345d30ae6
run_*_progress: fix error message when exec() failed 2019-01-12 00:48:40 +01:00