Skip to Content.
Sympa Menu

sm-sorcery-bugs - [SM-Sorcery-Bugs] [Bug 16112] New: Avoid basic system breakage on ABI update of readline, icu, isl (+others?) using sorcery protected filter

sm-sorcery-bugs AT lists.ibiblio.org

Subject: Bugs for Sorcery are reported here

List archive

Chronological Thread  
  • From: bugzilla-daemon AT bugs.sourcemage.org
  • To: sm-sorcery-bugs AT lists.ibiblio.org
  • Subject: [SM-Sorcery-Bugs] [Bug 16112] New: Avoid basic system breakage on ABI update of readline, icu, isl (+others?) using sorcery protected filter
  • Date: Sat, 18 May 2019 05:44:32 +0000

Bug ID 16112
Summary Avoid basic system breakage on ABI update of readline, icu, isl (+others?) using sorcery protected filter
Product Sorcery
Version Untargetted future release
Hardware x86
OS Linux
Status NEW
Severity critical
Priority P2
Component Dispel
Assignee sm-sorcery-bugs AT lists.ibiblio.org
Reporter sobukus AT sourcemage.org
Classification Unclassified

Created attachment 7618 [details]
a first version of the patch to add protected libs

I just tried to get a stable-0.62 chroot to current test. This means update
from gcc-4.6 to 9.1, readline from 6 to 8, isl, etc.

We have known now for a long time that removal of certain lib soversions during
updates breaks the system in a very basic way, without the option of internal
recovery. When you remove libreadline.so.6 and replace it with libreadline.so.8
(and a symlink named libreadline.so.7, which is just wrong, but a hack that
mostly seemed to work … when you come from readline 7, not 6!), even bash
won't run anymore and sorcery is dead. This is stupid beyond comprehension.

In bug 16100 it was pointed out to me that we do have file protection as
a feature in sorcery. I hereby propose to simply add these entries to
/var/lib/sorcery/protected as a stop-gap measure until we got any of the
fancy library preservation methods implemented:

^/lib/libreadline\.so\.
^/lib/libhistory\.so\.
^/usr/lib/libisl\.so\.
^/usr/lib/libicu.*\.so\.

I'm sure I forgot some. ^/lib/libc\.so\. should probably also be there. Maybe
we can reduce that hackery in the spell that protects its libs. I am testing
the attached patch right now.

My opinion is that such basic breakage that turns the whole toolchain into a
dud should not be left to individual spells to prevent. Let's ensure that we
do not remove libs needed by bash, coreutils, gcc, make, … it's one thing when
KDE is broken because of the dependency mess. But not being able to start a
shell? Damn.

The proper solution IMHO is still to move the gcc dependencies (isl, cloog,
mpfr, …) to in-tree builds of gcc again, as that is how upstream intends it
and the version relations are delicate. But any normal dependency should be
protected by a tracked mechanism to keep old soversions around, also for
the userspace not managed by sorcery, as remarked by me in bug 16100.

PS: Fun fact, I did not have the gcc and isl issue with the upgrade as gcc-4.6
doesn't need libisl.so yet.

PPS: Oh, now I'm stuck because bash got updated to 5.0 and now I got syntax
errors in sorcery. Yay!


You are receiving this mail because:
  • You are the assignee for the bug.



Archive powered by MHonArc 2.6.24.

Top of Page