Bug 1576503

Summary: Regression kadmin/ktutil no longer have readline compiled in
Product: [Fedora] Fedora Reporter: Colin.Simpson
Component: krb5Assignee: Robbie Harwood <rharwood>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 28CC: abokovoy, Colin.Simpson, j, nalin, npmccallum, rharwood, sbose, ssorce, trailtotale
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
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-16 21:46:09 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: 1489539    
Bug Blocks:    

Description Colin.Simpson 2018-05-09 15:46:27 UTC
Description of problem:

A long time ago in the Fedora 5 era I asked for Readline to be compiled into the Kerberos utils so that kadmin and ktutil would have command line history, editing and file completion. This was completed and made it into Fedora and eventually RHEL. 

This has disappeared now in Fedora 28...making the management of keytabs a complete pain.

Can you add back esp to ensure this makes it into future RHEL releases?

The original bug #197044 is where this was first actioned.

Version-Release number of selected component (if applicable):
krb5-workstation-1.16-26.fc28.x86_64

How to reproduce:

Run up ktutil and observe that things like rkt don't support file completion and moving around the command line with arrow keys within these utils is no longer possible.

Comment 1 Jason Tibbitts 2018-05-09 16:27:44 UTC
This problem isn't new in F28.  I tracked this down quite some time ago and figured out that there is a set of external factors which cause this to work or fail.  krb5 links against another library (libedit) whose job it is to load one of many readline libraries.  This library seems to have a hardcoded list of libraries it will try to load, and sometimes that gets out of date or messed up.

Do an strace of kadmin and see the libraries it tries to open.  For me, in F27, I see it try to open libreadline.so.6, and installing compat-readline6 gives kadmin line editing functionality again.

In any case, the bug here isn't in krb5.

Comment 2 Robbie Harwood 2018-05-09 17:11:04 UTC
Thanks Jason!

Comment 3 Colin.Simpson 2018-05-09 17:21:54 UTC
You have set this to needinfo, what info do you need?

Comment 4 Robbie Harwood 2018-05-09 17:30:58 UTC
I need to know if the fix suggested in comment#1 works for you.  From there, we decide whether to close, reassign to libedit, or something else.

Comment 5 Jason Tibbitts 2018-05-09 19:10:23 UTC
Someone should definitely double-check that I'm not talking out of my rear.  I honestly cannot remember the results of my previous investigation into this.

I found some discussion from September with Simo and Robbie and it seems that the issue is actually in libss (part of e2fsprogs) and not libedit (or krb5).  And in fact, I did file a bug: https://bugzilla.redhat.com/show_bug.cgi?id=1489539

libss has a hardcoded list of libraries it searches.  I pulled and checked the e2fsprogs source and found that at least the current version should work.  And indeed, on rawhide (with e2fsprogs 1.44.1) things are OK. But F28 has e2fsprogs 1.43.8, so there the hardcoded search list incuides neither libreadline.so.7 nor libedit.so.0.  The easiest way to get around that is to just install compat-libreadline6.

So this is really just a dup of 1489539.

Comment 6 Robbie Harwood 2018-05-09 19:15:03 UTC
Makes sense.  Gonna keep this open for visibility.

Comment 7 Colin.Simpson 2018-05-10 09:48:54 UTC
Yup Jason is on the money.

Running strace against says this will look for libreadline.so.4, libreadline.so.5 and libreadline.so.6 but not the current libreadline.so.7

Installing the latest one of these searched for 
compat-readline6-6.3-14.fc28.x86_64

Restores readline functionality to ktutil

So I guess as the other bug suggests patching/rebasing to look for  libreadline.so.7 is the correct action.

Comment 8 John Florian 2018-05-20 22:37:38 UTC
Ha!  I could've sworn kadmin did readline once, but I have enough grey to question my senility.  So glad to have found this.