Bug 1489539

Summary: libss unable to find either libedit or libreadline on F26
Product: [Fedora] Fedora Reporter: Jason Tibbitts <j>
Component: e2fsprogsAssignee: Lukáš Czerner <lczerner>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 28CC: esandeen, josef, kasal, kzak, lczerner, oliver, rharwood
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: e2fsprogs-1.44.2-0.fc28 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-07-17 15:17:10 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1576503    
Attachments:
Description Flags
Proposed patch none

Description Jason Tibbitts 2017-09-07 16:08:53 UTC
So I was trying to figure out why the kadmin program (part of Kerberos) has line editing on F25 but not on F26.  Turns out that line editing starts working if I install any one of install one of libreadline-devel, libedit-devel,  compat-readline6 or compat-readline5.

It appears that the culprit is libss, which leads me here.  In current Fedora, we have libreadline.so.7 but libss only tries to load libreadline.so.6 and libreadline.so.5. And for libedit, we have libedit.so.0 but libss tries to load libedit.so.2.  It also tries to load libeditline.so.0 but I'm not sure anything in Fedora provides libeditline.

It will attempt to load these without versions as well (so just libedit.so, for example) which is why installing the devel packages works.

I guess each new library version has to be added manually, and things are out of date with respect to what's in F26 currently.

Comment 1 Eric Sandeen 2017-09-07 17:20:12 UTC
Sigh, I guess that's not the first time this hack has broken:

commit 4e79a19fe0b6dc3c2bd9cae9dfdbc5e96a3f98f8
Author: Eric Sandeen <sandeen>
Date:   Mon Jan 25 22:19:38 2010 -0600

    libss: add newer libreadline to dlopen path
    
    Rawhide now has libreadline.so.6 ... add it to the ever-expanding
    list of libs to look for.
    
    Unfortunately without commit 06ef971be505678ee462ae1844204ed24f14aedc
    this fails in a rather cryptic way.
    
    Signed-off-by: Eric Sandeen <sandeen>
    Signed-off-by: "Theodore Ts'o" <tytso>

Comment 2 Jason Tibbitts 2017-09-08 14:37:02 UTC
Created attachment 1323767 [details]
Proposed patch

So I guess something like the attached patch would do the trick.  Should find either libreadline or libedit in everything from F25 to today's rawhide.

Comment 3 Fedora End Of Life 2018-05-03 07:56:25 UTC
This message is a reminder that Fedora 26 is nearing its end of life.
Approximately 4 (four) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 26. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as EOL if it remains open with a Fedora  'version'
of '26'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version'
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not
able to fix it before Fedora 26 is end of life. If you would still like
to see this bug fixed and are able to reproduce it against a later version
of Fedora, you are encouraged  change the 'version' to a later Fedora
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's
lifetime, sometimes those efforts are overtaken by events. Often a
more recent Fedora release includes newer upstream software that fixes
bugs or makes them obsolete.

Comment 4 Jason Tibbitts 2018-05-09 19:05:18 UTC
Sorry, I double checked and this is actually fixed on rawhide (but will need to be fixed again if libreadline.so.8 ever exists).  It does seem to still be broken on F28, though.

Comment 5 Eric Sandeen 2018-05-10 00:46:17 UTC
Yup, this fix went into v1.44, but f28 appears to have 1.43.8.  Rebasing f28 would not be a terrible idea.

This is such a crazy fragile arrangement.  :(

commit cb6d45fb1cd00199d0c7ca6ffe3eee8f7f74fa20
Author: Lukas Czerner <lczerner>
Date:   Thu Feb 22 14:25:03 2018 +0100

    libss: add newer libreadline.so.7 to dlopen path
    
    Rawhide now has libreadline.so.7. Add it to the list of libs to look
    for.
    
    Based on commit 4e79a19fe0b6dc3c2bd9cae9dfdbc5e96a3f98f8 for previous
    libreadline version.
    
    Signed-off-by: Lukas Czerner <lczerner>
    Signed-off-by: Theodore Ts'o <tytso>

diff --git a/lib/ss/get_readline.c b/lib/ss/get_readline.c
index 9365be0..11c72b3 100644
--- a/lib/ss/get_readline.c
+++ b/lib/ss/get_readline.c
@@ -37,7 +37,7 @@ static void ss_release_readline(ss_data *info)
 #endif
 
 /* Libraries we will try to use for readline/editline functionality */
-#define DEFAULT_LIBPATH "libreadline.so.6:libreadline.so.5:libreadline.so.4:libreadline.so:libedit.so.2:libedit.so:libeditline.so.0:libeditline.so"
+#define DEFAULT_LIBPATH "libreadline.so.7:libreadline.so.6:libreadline.so.5:libreadline.so.4:libreadline.so:libedit.so.2:libedit.so:libeditline.so.0:libeditline.so"
 
 #ifdef HAVE_DLOPEN
 void ss_get_readline(int sci_idx)

Comment 6 Lukáš Czerner 2018-05-22 07:41:31 UTC
Fair enough, f28 is fairly fresh still. So let's rebase to the latest and greatest 1.44.2

-Lukas

Comment 7 Fedora Update System 2018-07-11 14:05:19 UTC
e2fsprogs-1.44.2-0.fc28 has been submitted as an update to Fedora 28. https://bodhi.fedoraproject.org/updates/FEDORA-2018-ceebac37b8

Comment 8 Fedora Update System 2018-07-11 23:45:15 UTC
e2fsprogs-1.44.2-0.fc28 has been pushed to the Fedora 28 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-ceebac37b8

Comment 9 Fedora Update System 2018-07-17 15:17:10 UTC
e2fsprogs-1.44.2-0.fc28 has been pushed to the Fedora 28 stable repository. If problems still persist, please make note of it in this bug report.

Comment 10 Jason Tibbitts 2018-07-18 16:51:18 UTC
I didn't get a chance to test this before it was pushed, but I can verify that it does help.  Though the package release number should be '1', not '0' as releases less than 1 indicate a prerelease, and release is never allowed to be 0 in any case.

https://fedoraproject.org/wiki/Packaging:Versioning#Simple_versioning
https://fedoraproject.org/wiki/Packaging:Versioning#Prerelease_versions