tag 924275 +pending thanks On Sun, Mar 10, 2019 at 09:29:04PM +0100, Sven Hartge wrote: > > While I like the new fsck-via-LVM-snapshot feature, I think adding lvm2 > to Recommends is too agressive here. > > On systems not using LVM this will needlessly pull in the whole LVM/DM > machinery, including changes to the initramfs, as long as apt is in its > default "install-recommends" configuration. > > Only on systems where the system admin has changed the default to > "no-install-recommends" nothing will happen.
Agreed; thanks for pointing this out! I have the following patches queued for the next release. - Ted
>From 04738f2ff3b8a2acaf2de09856e07601817350b5 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o <ty...@mit.edu> Date: Sun, 10 Mar 2019 19:41:11 -0400 Subject: [PATCH 1/2] e2scrub: check to make sure lvm2 is installed Not all systems will have the lvm2 package installed, so check for that. Pretty much all systems should have util-linux installed, but check for that as well. Of course, if lvm2 is installed we shouldn't find any LVM devices --- but eventually the Demon Murphy will find a way to make it happen. :-) Also, set the PATH so we don't have to worry about the script failing due to /sbin not being in the path. Signed-off-by: Theodore Ts'o <ty...@mit.edu> --- scrub/e2scrub.in | 12 ++++++++++++ scrub/e2scrub_all.in | 16 ++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/scrub/e2scrub.in b/scrub/e2scrub.in index e1965db4e..51a909373 100644 --- a/scrub/e2scrub.in +++ b/scrub/e2scrub.in @@ -23,6 +23,8 @@ # check filesystems in VGs that have at least 256MB (or so) of # free space. +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin + snap_size_mb=256 fstrim=0 reap=0 @@ -82,6 +84,16 @@ if [ -z "${arg}" ]; then exitcode 1 fi +if ! type lsblk >& /dev/null ; then + echo "e2scrub: can't find lsblk --- is util-linux installed?" + exitcode 1 +fi + +if ! type lvcreate >& /dev/null ; then + echo "e2scrub: can't find lvcreate --- is lvm2 installed?" + exitcode 1 +fi + # Find the device for a given mountpoint dev_from_mount() { local mountpt="$(realpath "$1")" diff --git a/scrub/e2scrub_all.in b/scrub/e2scrub_all.in index 23d122d25..d725a7f2e 100644 --- a/scrub/e2scrub_all.in +++ b/scrub/e2scrub_all.in @@ -18,6 +18,8 @@ # along with this program; if not, write the Free Software Foundation, # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin + scrub_all=0 conffile="@root_sysconfdir@/e2scrub.conf" @@ -68,6 +70,20 @@ while getopts "ArV" opt; do done shift "$((OPTIND - 1))" +# If some prerequisite packages are not installed, exit with a code +# indicating success to avoid spamming the sysadmin with fail messages +# when e2scrub_all is run out of cron or a systemd timer. + +if ! type lsblk >& /dev/null ; then + echo "e2scrub_all: can't find lsblk --- is util-linux installed?" + exitcode 0 +fi + +if ! type lvcreate >& /dev/null ; then + echo "e2scrub_all: can't find lvcreate --- is lvm2 installed?" + exitcode 0 +fi + # Find scrub targets, make sure we only do this once. ls_scrub_targets() { lsblk -o NAME,FSTYPE,MOUNTPOINT -p -P -n | while read vars; do -- 2.19.1
>From 212ba2a8a81001bce21cce314f9bc2967f2df7c7 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o <ty...@mit.edu> Date: Sun, 10 Mar 2019 20:01:58 -0400 Subject: [PATCH 2/2] debian: drop lvm2 from the recommends line If the user doesn't intend to use lvm2, and it's not installed, installing e2fsprogs shouldn't drag it (and all of its dependencies) into the system. Addresses-Debian-Bug: 924275 Signed-off-by: Theodore Ts'o <ty...@mit.edu> --- debian/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/control b/debian/control index 1bb8adb15..e454687f9 100644 --- a/debian/control +++ b/debian/control @@ -191,7 +191,7 @@ XB-Important: yes Pre-Depends: ${shlibs:Depends}, ${misc:Depends}, libblkid1, libuuid1 Multi-Arch: foreign Suggests: gpart, parted, fuse2fs, e2fsck-static -Recommends: e2fsprogs-l10n, lvm2 +Recommends: e2fsprogs-l10n Architecture: any Description: ext2/ext3/ext4 file system utilities The ext2, ext3 and ext4 file systems are successors of the original ext -- 2.19.1