No announcement yet.

beyond compare .deb package renders some configurations unbootable

  • Filter
  • Time
  • Show
Clear All
new posts

  • beyond compare .deb package renders some configurations unbootable

    Debian 10 system booting from a LUKS2 encrypted volume (previously upgraded from LUKS1)

    After doing an apt upgrade, which updated the kernel, the system became un-bootable with the following message after entering the passphrase for the root partition: must be installed for pthread_cancel to work

    It took a great deal of tracking down but the following line in /etc/ causing mkinitramfs to miss this library from the initrd file and render the system unbootable.


    This is caused by some sloppy code in the initramfs-tools package:

    # libargon2 uses pthread_cancel
    LIBC_DIR="$(ldd /sbin/cryptsetup | sed -nr 's#.* => (/lib.*)/libc\.so\.[0-9.-]+ \(0x[[:xdigit:]]+\)$#\1#p')"
    find -L "$LIBC_DIR" -maxdepth 1 -name 'libgcc_s.*' -type f | while read so; do
    copy_exec "$so"

    As the search path for the dynamic linker has been moved to /usr/lib instead of /lib this causes LIBC_DIR not to get populated and libgcc_s not to get added to the initrd.

    This is a known bug in this debian package but the question is why does bcompare need make changes to the dynamic linker? Are such low level system changes appropriate for a user application?

  • #2
    Beyond Compare 4.3.2 uses Qt 4. Some newer Linux distributions (CentOS 8 is one example), no longer provide Qt 4. To work around that, Beyond Compare 4.3.1 was the first version that bundled Qt 4 with the application. In version 4.3.2 we added the /etc/ file to make Beyond Compare use system provided Qt 4 if it's available, then fall back to the application bundled Qt 4 if not.

    Long term we're working on a Qt 5 version of Beyond Compare, but this is a workaround to keep Beyond Compare running on newer Linux distributions until that's ready.
    Last edited by Chris; 19-Nov-2019, 02:12 PM.
    Chris K Scooter Software


    • #3
      Sorry for making your system unbootable.

      BC 4.3.3 is now available, it should fix this issue.

      Version 4.3.3 no longer uses the /etc/ file, and will remove it if it is present from an older version of BC.

      Selecting system or app provided Qt 4 libraries is now handled in the /usr/bin/bcompare launcher script.
      Last edited by Chris; 03-Dec-2019, 09:20 AM.
      Chris K Scooter Software


      • #4
        Thanks Chris, good to know it has been fixed and no one else will encounter this issue.