Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Bug#1051251: /usr/sbin/grub-mkconfig: 300: /etc/grub.d/25_bli: not found due to wrong shell location

44 views
Skip to first unread message

Klaus Ethgen

unread,
Sep 5, 2023, 2:20:04 AM9/5/23
to
Package: grub-common
Version: 2.12~rc1-7
Severity: important

~> update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.1.38
Found memtest86+x64 image: /boot/memtest86+x64.bin
/usr/sbin/grub-mkconfig: 300: /etc/grub.d/25_bli: not found

The shebang line state "#!/usr/bin/sh" but there is no shell in
/usr/bin, they always are in /bin!

-- Package-specific info:

*********************** BEGIN /proc/mounts
/dev/md0 / btrfs rw,lazytime,relatime,compress=zstd:3,ssd_spread,space_cache,autodefrag,subvolid=5,subvol=/ 0 0
/dev/mapper/sysvg-lv_usr /usr btrfs rw,lazytime,nodev,noatime,compress=zstd:3,ssd,space_cache,autodefrag,subvolid=5,subvol=/ 0 0
/dev/mapper/sysvg-lv_var /var btrfs rw,lazytime,nosuid,relatime,compress-force=lzo,ssd,space_cache,autodefrag,subvolid=5,subvol=/ 0 0
/dev/mapper/crypt0 /home btrfs rw,lazytime,nosuid,nodev,noatime,compress=zstd:3,ssd,space_cache,autodefrag,subvolid=258,subvol=/home 0 0
/dev/mapper/crypt0 /misc btrfs rw,lazytime,nosuid,noatime,compress=zstd:3,ssd,space_cache,autodefrag,subvolid=257,subvol=/misc 0 0
/dev/mapper/crypt0 /etc/secure btrfs rw,lazytime,nosuid,nodev,noexec,relatime,compress=zstd:3,ssd,space_cache,autodefrag,subvolid=259,subvol=/etc 0 0
/dev/mapper/crypt0 /root btrfs rw,lazytime,nosuid,nodev,relatime,compress=zstd:3,ssd,space_cache,autodefrag,subvolid=260,subvol=/root 0 0
/dev/mapper/_sec /misc/gmail/sec btrfs rw,lazytime,nosuid,nodev,noatime,compress=zstd:3,ssd,space_cache,autodefrag,subvolid=297,subvol=/.subfolder 0 0
*********************** END /proc/mounts

*********************** BEGIN /boot/grub/grub.cfg

-- System Information:
Debian Release: trixie/sid
APT prefers experimental
APT policy: (1, 'experimental')
merged-usr: no
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 6.1.38 (SMP w/8 CPU threads)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_CPU_OUT_OF_SPEC, TAINT_FIRMWARE_WORKAROUND, TAINT_OOT_MODULE
Locale: LANG=C, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /bin/dash
Init: sysvinit (via /sbin/init)

Versions of packages grub-common depends on:
ii gettext-base 0.21-13
ii libc6 2.37-7
ii libdevmapper1.02.1 2:1.02.185-2
ii libefiboot1 37-6
ii libefivar1 37-6
ii libfreetype6 2.13.2+dfsg-1
ii libfuse3-3 3.14.0-4
ii liblzma5 5.4.4-0.1

Versions of packages grub-common recommends:
pn os-prober <none>

Versions of packages grub-common suggests:
ii console-setup 1.222
pn desktop-base <none>
pn grub-emu <none>
ii mtools 4.0.43-1
pn multiboot-doc <none>
ii xorriso 1.5.4-4

-- Configuration Files:
/etc/grub.d/10_linux changed:
set -e
prefix="/usr"
exec_prefix="/usr"
datarootdir="/usr/share"
ubuntu_recovery="0"
quiet_boot="0"
quick_boot="0"
gfxpayload_dynamic="0"
vt_handoff="0"
. "$pkgdatadir/grub-mkconfig_lib"
export TEXTDOMAIN=grub
export TEXTDOMAINDIR="${datarootdir}/locale"
CLASS="--class gnu-linux --class gnu --class os"
if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
OS=GNU/Linux
else
case ${GRUB_DISTRIBUTOR} in
Ubuntu|Kubuntu)
OS="${GRUB_DISTRIBUTOR}"
;;
*)
OS="${GRUB_DISTRIBUTOR} GNU/Linux"
;;
esac
CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}"
fi
case ${GRUB_DEVICE} in
/dev/loop/*|/dev/loop[0-9])
GRUB_DEVICE=`losetup ${GRUB_DEVICE} | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"`
# We can't cope with devices loop-mounted from files here.
case ${GRUB_DEVICE} in
/dev/*) ;;
*) exit 0 ;;
esac
;;
esac
: ${GRUB_CMDLINE_LINUX_RECOVERY:=single}
: ${GRUB_DISABLE_LINUX_PARTUUID=true}
if ( [ "x${GRUB_DEVICE_UUID}" = "x" ] && [ "x${GRUB_DEVICE_PARTUUID}" = "x" ] ) \
|| ( [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ] \
&& [ "x${GRUB_DISABLE_LINUX_PARTUUID}" = "xtrue" ] ) \
|| ( ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" \
&& ! test -e "/dev/disk/by-partuuid/${GRUB_DEVICE_PARTUUID}" ) \
|| ( test -e "${GRUB_DEVICE}" && uses_abstraction "${GRUB_DEVICE}" lvm ); then
LINUX_ROOT_DEVICE=${GRUB_DEVICE}
elif [ "x${GRUB_DEVICE_UUID}" = "x" ] \
|| [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ]; then
LINUX_ROOT_DEVICE=PARTUUID=${GRUB_DEVICE_PARTUUID}
else
LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID}
fi
case x"$GRUB_FS" in
xbtrfs)
rootsubvol="`make_system_path_relative_to_its_root /`"
rootsubvol="${rootsubvol#/}"
if [ "x${rootsubvol}" != x ]; then
GRUB_CMDLINE_LINUX="rootflags=subvol=${rootsubvol} ${GRUB_CMDLINE_LINUX}"
fi;;
xzfs)
rpool=`${grub_probe} --device ${GRUB_DEVICE} --target=fs_label 2>/dev/null || true`
bootfs="`make_system_path_relative_to_its_root / | sed -e "s,@$,,"`"
LINUX_ROOT_DEVICE="ZFS=${rpool}${bootfs%/}"
;;
esac
title_correction_code=
if [ -x /lib/recovery-mode/recovery-menu ]; then
GRUB_CMDLINE_LINUX_RECOVERY="${GRUB_CMDLINE_LINUX_RECOVERY} recovery"
else
GRUB_CMDLINE_LINUX_RECOVERY="${GRUB_CMDLINE_LINUX_RECOVERY} single"
fi
if [ "$ubuntu_recovery" = 1 ]; then
GRUB_CMDLINE_LINUX_RECOVERY="$GRUB_CMDLINE_LINUX_RECOVERY nomodeset"
fi
if [ "$vt_handoff" = 1 ]; then
for word in $GRUB_CMDLINE_LINUX_DEFAULT; do
if [ "$word" = splash ]; then
GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT \$vt_handoff"
fi
done
fi
linux_entry ()
{
os="$1"
version="$2"
type="$3"
args="$4"
users="$5"
#rootflags="compress,ssd_spread,discard"
rootflags="compress,ssd_spread"
if [ -z "$boot_device_id" ]; then
boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")"
fi
if [ x$type != xsimple ] ; then
case $type in
recovery)
title="$(gettext_printf "%s, with Linux %s (%s)" "${os}" "${version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")"
restrict="--users ''"
;;
*)
title="$(gettext_printf "%s, with Linux %s" "${os}" "${version}")"
restrict='--unrestricted'
;;
esac
if [ x"$title" = x"$GRUB_ACTUAL_DEFAULT" ] || [ x"Previous Linux versions>$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then
replacement_title="$(echo "Advanced options for ${OS}" | sed 's,>,>>,g')>$(echo "$title" | sed 's,>,>>,g')"
quoted="$(echo "$GRUB_ACTUAL_DEFAULT" | grub_quote)"
title_correction_code="${title_correction_code}if [ \"x\$default\" = '$quoted' ]; then default='$(echo "$replacement_title" | grub_quote)'; fi;"
grub_warn "$(gettext_printf "Please don't use old title \`%s' for GRUB_DEFAULT, use \`%s' (for versions before 2.00) or \`%s' (for 2.00 or later)" "$GRUB_ACTUAL_DEFAULT" "$replacement_title" "gnulinux-advanced-$boot_device_id>gnulinux-$version-$type-$boot_device_id")"
fi
if [ -n "${users}" ]
then
restrict="--users '${users}'"
fi
echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} ${restrict} \$menuentry_id_option 'gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
else
if [ -n "${users}" ]
then
restrict="--users '${users}'"
else
restrict='--unrestricted'
fi
echo "menuentry '$(echo "$os" | grub_quote)' ${CLASS} ${restrict} \$menuentry_id_option 'gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
fi
if [ "$quick_boot" = 1 ]; then
echo " recordfail" | sed "s/^/$submenu_indentation/"
fi
if [ x$type != xrecovery ] ; then
save_default_entry | grub_add_tab
fi
# Use ELILO's generic "efifb" when it's known to be available.
# FIXME: We need an interface to select vesafb in case efifb can't be used.
if [ "x$GRUB_GFXPAYLOAD_LINUX" = x ]; then
echo " load_video" | sed "s/^/$submenu_indentation/"
else
if [ "x$GRUB_GFXPAYLOAD_LINUX" != xtext ]; then
echo " load_video" | sed "s/^/$submenu_indentation/"
fi
fi
if ([ "$ubuntu_recovery" = 0 ] || [ x$type != xrecovery ]) && \
([ "x$GRUB_GFXPAYLOAD_LINUX" != x ] || [ "$gfxpayload_dynamic" = 1 ]); then
echo " gfxmode \$linux_gfx_mode" | sed "s/^/$submenu_indentation/"
fi
echo " insmod gzio" | sed "s/^/$submenu_indentation/"
echo " if [ x\$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi" | sed "s/^/$submenu_indentation/"
if [ x$dirname = x/ ]; then
if [ -z "${prepare_root_cache}" ]; then
prepare_root_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE} | grub_add_tab)"
fi
printf '%s\n' "${prepare_root_cache}" | sed "s/^/$submenu_indentation/"
else
if [ -z "${prepare_boot_cache}" ]; then
prepare_boot_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | grub_add_tab)"
fi
printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/"
fi
if [ x"$quiet_boot" = x0 ] || [ x"$type" != xsimple ]; then
message="$(gettext_printf "Loading Linux %s ..." ${version})"
sed "s/^/$submenu_indentation/" << EOF
echo '$(echo "$message" | grub_quote)'
EOF
fi
sed "s/^/$submenu_indentation/" << EOF
linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args}
EOF
if test -n "${initrd}" ; then
# TRANSLATORS: ramdisk isn't identifier. Should be translated.
if [ x"$quiet_boot" = x0 ] || [ x"$type" != xsimple ]; then
message="$(gettext_printf "Loading initial ramdisk ...")"
sed "s/^/$submenu_indentation/" << EOF
echo '$(echo "$message" | grub_quote)'
EOF
fi
initrd_path=
for i in ${initrd}; do
initrd_path="${initrd_path} ${rel_dirname}/${i}"
done
sed "s/^/$submenu_indentation/" << EOF
initrd $(echo $initrd_path)
EOF
fi
sed "s/^/$submenu_indentation/" << EOF
}
EOF
}
machine=`uname -m`
case "x$machine" in
xi?86 | xx86_64)
list=
for i in /boot/vmlinuz-* /vmlinuz-* /boot/kernel-* ; do
if grub_file_is_not_garbage "$i" ; then list="$list $i" ; fi
done ;;
*)
list=
for i in /boot/vmlinuz-* /boot/vmlinux-* /vmlinuz-* /vmlinux-* /boot/kernel-* ; do
if grub_file_is_not_garbage "$i" ; then list="$list $i" ; fi
done ;;
esac
case "$machine" in
i?86) GENKERNEL_ARCH="x86" ;;
mips|mips64) GENKERNEL_ARCH="mips" ;;
mipsel|mips64el) GENKERNEL_ARCH="mipsel" ;;
arm*) GENKERNEL_ARCH="arm" ;;
*) GENKERNEL_ARCH="$machine" ;;
esac
case "$GENKERNEL_ARCH" in
x86*) GRUB_CMDLINE_LINUX_RECOVERY="$GRUB_CMDLINE_LINUX_RECOVERY dis_ucode_ldr";;
esac
prepare_boot_cache=
prepare_root_cache=
boot_device_id=
title_correction_code=
cat << 'EOF'
function gfxmode {
set gfxpayload="${1}"
EOF
if [ "$vt_handoff" = 1 ]; then
cat << 'EOF'
if [ "${1}" = "keep" ]; then
set vt_handoff=vt.handoff=7
else
set vt_handoff=
fi
EOF
fi
cat << EOF
}
EOF
if [ "x$GRUB_GFXPAYLOAD_LINUX" != x ] || [ "$gfxpayload_dynamic" = 0 ]; then
echo "set linux_gfx_mode=$GRUB_GFXPAYLOAD_LINUX"
else
cat << EOF
if [ "\${recordfail}" != 1 ]; then
if [ -e \${prefix}/gfxblacklist.txt ]; then
if [ \${grub_platform} != pc ]; then
set linux_gfx_mode=keep
elif hwmatch \${prefix}/gfxblacklist.txt 3; then
if [ \${match} = 0 ]; then
set linux_gfx_mode=keep
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=keep
fi
else
set linux_gfx_mode=text
fi
EOF
fi
cat << EOF
export linux_gfx_mode
EOF
submenu_indentation=""
reverse_sorted_list=$(echo $list | tr ' ' '\n' | sed -e 's/\.old$/ 1/; / 1$/! s/$/ 2/' | version_sort -r | sed -e 's/ 1$/.old/; s/ 2$//')
if [ "x$GRUB_TOP_LEVEL" != x ]; then
reverse_sorted_list=$(grub_move_to_front "$GRUB_TOP_LEVEL" ${reverse_sorted_list})
fi
is_top_level=true
for linux in ${reverse_sorted_list}; do
gettext_printf "Found linux image: %s\n" "$linux" >&2
basename=`basename $linux`
dirname=`dirname $linux`
rel_dirname=`make_system_path_relative_to_its_root $dirname`
version=`echo $basename | sed -e "s,^[^0-9]*-,,g"`
alt_version=`echo $version | sed -e "s,\.old$,,g"`
linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
initrd_early=
for i in ${GRUB_EARLY_INITRD_LINUX_STOCK} \
${GRUB_EARLY_INITRD_LINUX_CUSTOM}; do
if test -e "${dirname}/${i}" ; then
initrd_early="${initrd_early} ${i}"
fi
done
initrd_real=
for i in "initrd.img-${version}" "initrd-${version}.img" \
"initrd-${alt_version}.img.old" "initrd-${version}.gz" \
"initrd-${alt_version}.gz.old" "initrd-${version}" \
"initramfs-${version}.img" "initramfs-${alt_version}.img.old" \
"initrd.img-${alt_version}" "initrd-${alt_version}.img" \
"initrd-${alt_version}" "initramfs-${alt_version}.img" \
"initramfs-genkernel-${version}" \
"initramfs-genkernel-${alt_version}" \
"initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \
"initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}"; do
if test -e "${dirname}/${i}" ; then
initrd_real="${i}"
break
fi
done
initrd=
if test -n "${initrd_early}" || test -n "${initrd_real}"; then
initrd="${initrd_early} ${initrd_real}"
initrd_display=
for i in ${initrd}; do
initrd_display="${initrd_display} ${dirname}/${i}"
done
gettext_printf "Found initrd image: %s\n" "$(echo $initrd_display)" >&2
fi
config=
for i in "${dirname}/config-${version}" "${dirname}/config-${alt_version}" "/etc/kernels/kernel-config-${version}" ; do
if test -e "${i}" ; then
config="${i}"
break
fi
done
initramfs=
if test -n "${config}" ; then
initramfs=`grep CONFIG_INITRAMFS_SOURCE= "${config}" | cut -f2 -d= | tr -d \"`
fi
if test -z "${initramfs}" && test -z "${initrd_real}" ; then
# "UUID=" and "ZFS=" magic is parsed by initrd or initramfs. Since there's
# no initrd or builtin initramfs, it can't work here.
if [ "x${GRUB_DEVICE_PARTUUID}" = "x" ] \
|| [ "x${GRUB_DISABLE_LINUX_PARTUUID}" = "xtrue" ]; then
linux_root_device_thisversion=${GRUB_DEVICE}
else
linux_root_device_thisversion=PARTUUID=${GRUB_DEVICE_PARTUUID}
fi
fi
# The GRUB_DISABLE_SUBMENU option used to be different than others since it was
# mentioned in the documentation that has to be set to 'y' instead of 'true' to
# enable it. This caused a lot of confusion to users that set the option to 'y',
# 'yes' or 'true'. This was fixed but all of these values must be supported now.
if [ "x${GRUB_DISABLE_SUBMENU}" = xyes ] || [ "x${GRUB_DISABLE_SUBMENU}" = xy ]; then
GRUB_DISABLE_SUBMENU="true"
fi
if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xtrue ]; then
linux_entry "${OS}" "${version}" simple \
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
submenu_indentation="$grub_tab"

if [ -z "$boot_device_id" ]; then
boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")"
fi
# TRANSLATORS: %s is replaced with an OS name
echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | grub_quote)' --unrestricted \$menuentry_id_option 'gnulinux-advanced-$boot_device_id' {"
is_top_level=false
fi
linux_entry "${OS}" "${version}" advanced \
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
linux_entry "${OS}" "${version}" recovery \
"${GRUB_CMDLINE_LINUX_RECOVERY} ${GRUB_CMDLINE_LINUX}"
fi
done
if [ x"$is_top_level" != xtrue ]; then
echo '}'
fi
echo "$title_correction_code"

/etc/grub.d/25_bli changed:
set -e
cat << EOF
if [ "\$grub_platform" = "efi" ]; then
insmod bli
fi
EOF


-- no debconf information

--
Klaus Ethgen http://www.ethgen.ch/
pub 4096R/4E20AF1C 2011-05-16 Klaus Ethgen <Kl...@Ethgen.ch>
Fingerprint: 85D4 CA42 952C 949B 1753 62B3 79D0 B06F 4E20 AF1C
signature.asc

Julian Andres Klode

unread,
Sep 5, 2023, 3:10:05 AM9/5/23
to
Control: severity -1 wishlist
Control: tag -1 upstream
Control: fixed -1 2.12-1

On Tue, Sep 05, 2023 at 07:12:18AM +0100, Klaus Ethgen wrote:
> Package: grub-common
> Version: 2.12~rc1-7
> Severity: important
>
> ~> update-grub
> Generating grub configuration file ...
> Found linux image: /boot/vmlinuz-6.1.38
> Found memtest86+x64 image: /boot/memtest86+x64.bin
> /usr/sbin/grub-mkconfig: 300: /etc/grub.d/25_bli: not found
>
> The shebang line state "#!/usr/bin/sh" but there is no shell in
> /usr/bin, they always are in /bin!

While this has been fixed upstream already, systems like yours are
also not supported anymore, since merged-usr is mandatory since
bookworm.

I'm going to set a fixed version in the future for the version
that includes the fix.

--
debian developer - deb.li/jak | jak-linux.org - free software dev
ubuntu core developer i speak de, en
signature.asc

Drew Parsons

unread,
Sep 16, 2023, 5:30:05 AM9/16/23
to
Source: grub2
Version: 2.12~rc1-7
Followup-For: Bug #1051251
Control: severity 1051251 critical

This is a critical bug. apt fails on this bug early in its run, and
therefore this one bug is preventing *every* *other* package from updating.

If the fix can't be uploaded to unstable, then please upload to
experimental.




-- System Information:
Debian Release: trixie/sid
APT prefers unstable-debug
APT policy: (500, 'unstable-debug'), (500, 'unstable'), (1, 'experimental')
merged-usr: no
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 6.4.0-3-amd64 (SMP w/8 CPU threads; PREEMPT)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8), LANGUAGE=en_AU:en
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Julian Andres Klode

unread,
Sep 16, 2023, 5:50:05 AM9/16/23
to
Control: severity -1 wishlist

On Sat, Sep 16, 2023 at 10:36:39AM +0200, Drew Parsons wrote:
> Source: grub2
> Version: 2.12~rc1-7
> Followup-For: Bug #1051251
> Control: severity 1051251 critical
>
> This is a critical bug. apt fails on this bug early in its run, and
> therefore this one bug is preventing *every* *other* package from updating.

You have literally hacked around the dependencies of the packages by
inserting a fake package to pretend to have merged-usr installed to be
able to maintain a file system layout the project has decided is no
longer supported.

FWIW, if you people keep being annoying I (with my apt head on) am
just going to deliberately make apt error out and refuse any operation
on unmerged systems.

Drew Parsons

unread,
Sep 16, 2023, 6:10:04 AM9/16/23
to
Control: severity -1 critical


On 2023-09-16 11:43, Julian Andres Klode wrote:
> Control: severity -1 wishlist
>
> On Sat, Sep 16, 2023 at 10:36:39AM +0200, Drew Parsons wrote:
>> Source: grub2
>> Version: 2.12~rc1-7
>> Followup-For: Bug #1051251
>> Control: severity 1051251 critical
>>
>> This is a critical bug. apt fails on this bug early in its run, and
>> therefore this one bug is preventing *every* *other* package from
>> updating.
>
> You have literally hacked around the dependencies of the packages by
> inserting a fake package to pretend to have merged-usr installed to be
> able to maintain a file system layout the project has decided is no
> longer supported.

I have done literally nothing to change merged-usr status, apart from
regularly upgrade packages as they come along.

> FWIW, if you people keep being annoying I (with my apt head on) am
> just going to deliberately make apt error out and refuse any operation
> on unmerged systems.

We are annoyed. Please do what you must do.

Drew Parsons

unread,
Sep 16, 2023, 6:20:05 AM9/16/23
to
On 2023-09-16 12:12, Julian Andres Klode wrote:
> Control: severity -1 wishlist
>
> On Sat, Sep 16, 2023 at 12:01:36PM +0200, Drew Parsons wrote:
>> Control: severity -1 critical
>>
>>
>> On 2023-09-16 11:43, Julian Andres Klode wrote:
>> > Control: severity -1 wishlist
>> >
>> > On Sat, Sep 16, 2023 at 10:36:39AM +0200, Drew Parsons wrote:
>> > > Source: grub2
>> > > Version: 2.12~rc1-7
>> > > Followup-For: Bug #1051251
>> > > Control: severity 1051251 critical
>> > >
>> > > This is a critical bug. apt fails on this bug early in its run, and
>> > > therefore this one bug is preventing *every* *other* package from
>> > > updating.
>> >
>> > You have literally hacked around the dependencies of the packages by
>> > inserting a fake package to pretend to have merged-usr installed to be
>> > able to maintain a file system layout the project has decided is no
>> > longer supported.
>>
>> I have done literally nothing to change merged-usr status, apart from
>> regularly upgrade packages as they come along.
>
> This is not true. init-system-helpers depends on usrmerge | merged-usr,
> and
> merged-usr only installs if your usr is merged, and usrmerge will
> convert your system to the supported layout.
>
> And that package is essential.
>
> The only way you end up in that situation is by messing with the
> package management system so that you generate a fake package using
> equivs or similar that Provides: usrmerge or merged-usr, or using
> the buildd workaround.
>
> Maybe you have followed the warnigns from dpkg that were added by
> his hostile maintainer declaring merged-usr to be unsupported and
> asking you to run a dangerous dpkg-fsys-usrunmess to mess up your
> system.

Julian Andres Klode

unread,
Sep 16, 2023, 6:20:05 AM9/16/23
to
Control: severity -1 wishlist

On Sat, Sep 16, 2023 at 12:01:36PM +0200, Drew Parsons wrote:
> Control: severity -1 critical
>
>
> On 2023-09-16 11:43, Julian Andres Klode wrote:
> > Control: severity -1 wishlist
> >
> > On Sat, Sep 16, 2023 at 10:36:39AM +0200, Drew Parsons wrote:
> > > Source: grub2
> > > Version: 2.12~rc1-7
> > > Followup-For: Bug #1051251
> > > Control: severity 1051251 critical
> > >
> > > This is a critical bug. apt fails on this bug early in its run, and
> > > therefore this one bug is preventing *every* *other* package from
> > > updating.
> >
> > You have literally hacked around the dependencies of the packages by
> > inserting a fake package to pretend to have merged-usr installed to be
> > able to maintain a file system layout the project has decided is no
> > longer supported.
>
> I have done literally nothing to change merged-usr status, apart from
> regularly upgrade packages as they come along.

This is not true. init-system-helpers depends on usrmerge | merged-usr, and
merged-usr only installs if your usr is merged, and usrmerge will
convert your system to the supported layout.

And that package is essential.

The only way you end up in that situation is by messing with the
package management system so that you generate a fake package using
equivs or similar that Provides: usrmerge or merged-usr, or using
the buildd workaround.

Maybe you have followed the warnigns from dpkg that were added by
his hostile maintainer declaring merged-usr to be unsupported and
asking you to run a dangerous dpkg-fsys-usrunmess to mess up your
system.

Drew Parsons

unread,
Sep 16, 2023, 6:30:04 AM9/16/23
to
apologies for the preceding empty message. Sent button pressed by
accident.

On 2023-09-16 12:12, Julian Andres Klode wrote:
>
> Maybe you have followed the warnigns from dpkg that were added by
> his hostile maintainer declaring merged-usr to be unsupported and
> asking you to run a dangerous dpkg-fsys-usrunmess to mess up your
> system.

I will accept that as a workaround. dpkg-fsys-usrunmess is indeed
installed

If there is a war between dpkg and apt, do we need to invoke the
Technical Committee to either force removal or dpkg-fsys-usrunmess or
force uploading fixes like the one to this bug ? It sounds like it is
needed.

Drew Parsons

unread,
Sep 16, 2023, 6:30:04 AM9/16/23
to
I see now it has been resolved. dpkg-fsys-usrunmess is no longer
available, it is now marked as a "local or obselete" package.

Perhaps the most practical resolution is to mark
apt Conflicts: dpkg-fsys-usrunmess ?

gregor herrmann

unread,
Sep 16, 2023, 7:30:05 PM9/16/23
to
On Sat, 16 Sep 2023 11:43:41 +0200, Julian Andres Klode wrote:

> You have literally hacked around the dependencies of the packages by
> inserting a fake package to pretend to have merged-usr installed to be
> able to maintain a file system layout the project has decided is no
> longer supported.

That's wrong.
Another option is to put init on hold (at the version before it
depends on usr-merge).

> FWIW, if you people keep being annoying I (with my apt head on) am
> just going to deliberately make apt error out and refuse any operation
> on unmerged systems.

Your communication style is uncacceptable. Please reconsider.


Cheers,
gregor

--
.''`. https://info.comodo.priv.at -- Debian Developer https://www.debian.org
: :' : OpenPGP fingerprint D1E1 316E 93A7 60A8 104D 85FA BB3A 6801 8649 AA06
`. `' Member VIBE!AT & SPI Inc. -- Supporter Free Software Foundation Europe
`-
signature.asc

gregor herrmann

unread,
Sep 17, 2023, 5:40:05 PM9/17/23
to
On Sun, 17 Sep 2023 13:14:04 +0200, Julian Andres Klode wrote:

> I admit that my choice of words was suboptimal, and I'd like to
> apologise for it.

Thank you!
signature.asc
0 new messages