Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 606918 - app-admin/puppet-agent-1.8.3 - augtool missing libreadline.so.6 dependency
Summary: app-admin/puppet-agent-1.8.3 - augtool missing libreadline.so.6 dependency
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: Normal normal (vote)
Assignee: Matthew Thode ( prometheanfire )
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-01-23 13:57 UTC by Russell Knighton
Modified: 2018-01-13 20:30 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Russell Knighton 2017-01-23 13:57:50 UTC
Seems that the augeas tool "augtool", as bundled with puppet-agent, has a dependency on readline that is not currently met:

>mail_nw ~ # augtool
>augtool: error while loading shared libraries: libreadline.so.6: cannot open shared object file: No such file or directory`

Confirmation with ldd and that it is indeed the puppet supplied one:
>mail_nw ~ # which augtool
>/usr/bin/augtool
>mail_nw ~ # file `which augtool`
>/usr/bin/augtool: symbolic link to /opt/puppetlabs/puppet/bin/augtool
>mail_nw ~ # ldd `which augtool`
>	linux-vdso.so.1 (0x00006fe573f37000)
>	libaugeas.so.0 => /opt/puppetlabs/puppet/lib/libaugeas.so.0 (0x00006fe573ac9000)
>	libreadline.so.6 => not found
>	libc.so.6 => /lib64/libc.so.6 (0x00006fe57372b000)
>	libfa.so.1 => /opt/puppetlabs/puppet/lib/libfa.so.1 (0x00006fe573518000)
>	libxml2.so.2 => /opt/puppetlabs/puppet/lib/libxml2.so.2 (0x00006fe57314b000)
>	/lib64/ld-linux-x86-64.so.2 (0x00006fe573d16000)
>	libdl.so.2 => /lib64/libdl.so.2 (0x00006fe572f47000)
>	libz.so.1 => /lib64/libz.so.1 (0x00006fe572d30000)
>	libm.so.6 => /lib64/libm.so.6 (0x00006fe572a34000)

Emerge info:
mail_nw ~ # emerge --info app-admin/puppet-agent
Portage 2.3.3 (python 3.4.5-final-0, default/linux/amd64/13.0, gcc-5.4.0, glibc-2.23-r3, 3.14.32-xxxx-grs-ipv6-64 x86_64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-3.14.32-xxxx-grs-ipv6-64-x86_64-Intel-R-_Xeon-R-_CPU_E3-1245_V2_@_3.40GHz-with-gentoo-2.3
KiB Mem:    16315924 total,   4667200 free
KiB Swap:    8387516 total,   8386456 free
Timestamp of repository gentoo: Mon, 23 Jan 2017 07:45:01 +0000
sh bash 4.4_p11
ld GNU ld (Gentoo 2.27 p1.0) 2.27
distcc 3.2rc1 x86_64-pc-linux-gnu [disabled]
ccache version 3.3.3 [enabled]
app-shells/bash:          4.4_p11::gentoo
dev-lang/perl:            5.24.1_rc4::gentoo
dev-lang/python:          2.7.12::gentoo, 3.4.5::gentoo
dev-util/ccache:          3.3.3::gentoo
dev-util/cmake:           3.7.2::gentoo
dev-util/pkgconfig:       0.29.1::gentoo
sys-apps/baselayout:      2.3::gentoo
sys-apps/openrc:          0.23.1::gentoo
sys-apps/sandbox:         2.10-r3::gentoo
sys-devel/autoconf:       2.69-r2::gentoo
sys-devel/automake:       1.13.4-r1::gentoo, 1.14.1-r1::gentoo, 1.15-r2::gentoo
sys-devel/binutils:       2.27::gentoo
sys-devel/gcc:            5.4.0-r2::gentoo
sys-devel/gcc-config:     1.8-r1::gentoo
sys-devel/libtool:        2.4.6-r2::gentoo
sys-devel/make:           4.2.1::gentoo
sys-kernel/linux-headers: 4.9::gentoo (virtual/os-headers)
sys-libs/glibc:           2.23-r3::gentoo
Repositories:

gentoo
    location: /usr/portage
    sync-type: rsync
    sync-uri: rsync://rsync2.uk.gentoo.org/gentoo-portage
    priority: -1000

local-repo
    location: /usr/local/portage
    masters: gentoo
    priority: 0

ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=ivybridge -O2 -pipe -fomit-frame-pointer"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/gentoo-release /etc/php/apache2-php7.0/ext-active/ /etc/php/apache2-php7.1/ext-active/ /etc/php/cgi-php7.0/ext-active/ /etc/php/cgi-php7.1/ext-active/ /etc/php/cli-php7.0/ext-active/ /etc/php/cli-php7.1/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=ivybridge -O2 -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs ccache config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://mirror.bytemark.co.uk/gentoo/ http://mirror.qubenet.net/mirror/gentoo/ http://www.mirrorservice.org/sites/distfiles.gentoo.org/"
LANG="en_US.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j9 -l1"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
USE="acl amd64 bash-completion berkdb bzip2 cli cracklib crypt cxx device-mapper dri fortran gdbm http2 iconv icu ipv6 ldap modules multilib ncurses nls nptl openmp pam pcre readline seccomp session ssl tcpd unicode urandom vhosts vim-syntax xattr zlib" ABI_X86="32 64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias http2 proxy proxy_html proxy_http substitute" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="pc" INPUT_DEVICES="libinput keyboard mouse" KERNEL="linux" L10N="en-GB en" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en_GB en" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-0" PYTHON_SINGLE_TARGET="python3_4" PYTHON_TARGETS="python2_7 python3_4" RUBY_TARGETS="ruby21 ruby23" USERLAND="GNU" VIDEO_CARDS="amdgpu fbdev intel nouveau radeon radeonsi vesa dummy v4l" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON

=================================================================
                        Package Settings
=================================================================

app-admin/puppet-agent-1.8.3::gentoo was built with the following:
USE="-puppetdb (-selinux)" ABI_X86="64"
Comment 1 Matthew Thode ( prometheanfire ) archtester Gentoo Infrastructure gentoo-dev Security 2017-01-24 01:07:54 UTC
fixed in r1 added a dep on sys-libs/readline:0
Comment 2 Russell Knighton 2017-01-24 10:04:58 UTC
Thanks for the speedy response.

Sadly, that adding that particular dep doesn't seem to have been enough. The problem still exists, and that's because the readline for slot 0 on ~amd64 is 7.0_p1-r1, which only installs libreadline.so.7, not libreadline.so.6.

I can, of course, mask this version, but I think the dependency needs to specifically be on a version 6 of readline.
Comment 3 Matthew Thode ( prometheanfire ) archtester Gentoo Infrastructure gentoo-dev Security 2017-01-24 15:37:06 UTC
ok, r2 is set for >=6.0 and <7.0
Comment 4 Russell Knighton 2017-01-26 10:00:29 UTC
Sorry to do this to you, but it's now pulling in the wrong version of readline:
>emerge -up puppet-agent
>
>These are the packages that would be merged, in order:
>
>Calculating dependencies... done!
>[ebuild  NS    ] sys-libs/readline-5.2_p14 [7.0_p1-r1] ABI_X86="32 (64) (-x32)" 
>[ebuild     U  ] app-admin/puppet-agent-1.8.3-r2 [1.8.3-r1]

I think there is something odd about the slotting/versioning of readline that doesn't play well with the dependencies you have added:
>eix -I readline
>[I] sys-libs/readline
>     Available versions:  
>     (4)    4.3_p5
>     (5)    5.2_p14
>     (0)    6.2_p5-r2 6.3_p8-r3 (~)7.0_p1-r1(0/7)
>       {static-libs utils ABI_MIPS="n32 n64 o32" ABI_PPC="32 64" ABI_S390="32 64" ABI_X86="32 64 x32"}
>     Installed versions:  7.0_p1-r1(11:45:24 AM 01/22/2017)(-static-libs -utils ABI_MIPS="-n32 -n64 -o32" ABI_PPC="-32 -64" ABI_S390="-32 -64" ABI_X86="32 64 -x32")

As you can see, I only have readline 7 installed, but I guess that because it satisfies slot 0, version 6 is ignored, and version 5 staisifies the <7 dep.
Comment 5 Matthew Thode ( prometheanfire ) archtester Gentoo Infrastructure gentoo-dev Security 2017-01-26 14:47:39 UTC
https://gitweb.gentoo.org/repo/gentoo.git/tree/app-admin/puppet-agent/puppet-agent-1.8.3-r2.ebuild#n35

Try emerge -uDp puppet-agent

since you already have a newer versions installed portage isn't going to want to downgrade.  Other than that you can install the correct version manually.
Comment 6 Russell Knighton 2017-01-27 09:06:04 UTC
>Try emerge -uDp puppet-agent
Tried it, but no difference.

>Other than that you can install the correct version manually.
I've now tried masking =sys-libs/readline-7.0_p1-r1 to force a downgrade, but:

> >=sys-libs/readline-7.0:0= required by (app-shells/bash-4.4_p11:0/0::gentoo, installed)

So something is messed up. Why is readline-6.* slot 0 as well as readline-7? Should we have a slot 6 for readline-6, like there is a slot-5 for readline-5?

If I'm going to have to make a manual fix, then a symlink for now from libreadline.so.7 -> libreadline.so.6 works (for augtool at least), but I really shouldn't have to do any sort of manual fix, there ought to be some sort of valid dependency definition that can work.
Comment 7 Matthew Thode ( prometheanfire ) archtester Gentoo Infrastructure gentoo-dev Security 2017-01-27 16:00:52 UTC
To those just CC'd why does readline not have separate slots for versions 6 and 7?
Comment 8 SpanKY gentoo-dev 2017-02-18 18:53:06 UTC
(In reply to Matthew Thode ( prometheanfire ) from comment #7)

this is standard behavior for libs.  SLOT=0 is the one you compile against.  they have sep subslots.

if you want a SLOT to just install the ABI, we don't usually bother doing that until the latest version goes stable.  so once readline-7 hits stable, we'll drop the readline-6 ebuilds and replace them with a SLOT=6 one.
Comment 9 Jan Vansteenkiste 2018-01-08 15:57:48 UTC
Not related to the slotting discussion:

puppetlabs has a libreadline7 build for debian 8. I replaced the SRC in the ebuild and that works fine. It does introduce another dependency on ncurses USE=tinfo.

# ldd `which augtool`
	linux-vdso.so.1 (0x00007ffdde7e7000)
	libaugeas.so.0 => /opt/puppetlabs/puppet/lib/libaugeas.so.0 (0x00007f13d7112000)
	libfa.so.1 => /opt/puppetlabs/puppet/lib/libfa.so.1 (0x00007f13d6eff000)
	libreadline.so.7 => /lib64/libreadline.so.7 (0x00007f13d6cb1000)
	libxml2.so.2 => /opt/puppetlabs/puppet/lib/libxml2.so.2 (0x00007f13d68ec000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007f13d66e8000)
	libz.so.1 => /lib64/libz.so.1 (0x00007f13d64d1000)
	libm.so.6 => /lib64/libm.so.6 (0x00007f13d61ca000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f13d5e17000)
	libncurses.so.6 => /lib64/libncurses.so.6 (0x00007f13d5bf0000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f13d7360000)
	libtinfo.so.6 => /lib64/libtinfo.so.6 (0x00007f13d59b7000)
Comment 10 Jan Vansteenkiste 2018-01-08 16:02:56 UTC
(In reply to Jan Vansteenkiste from comment #9)
> Not related to the slotting discussion:
> 
> puppetlabs has a libreadline7 build for debian 8. I replaced the SRC in the
> ebuild and that works fine. It does introduce another dependency on ncurses
> USE=tinfo.
> 
> # ldd `which augtool`
> 	linux-vdso.so.1 (0x00007ffdde7e7000)
> 	libaugeas.so.0 => /opt/puppetlabs/puppet/lib/libaugeas.so.0
> (0x00007f13d7112000)
> 	libfa.so.1 => /opt/puppetlabs/puppet/lib/libfa.so.1 (0x00007f13d6eff000)
> 	libreadline.so.7 => /lib64/libreadline.so.7 (0x00007f13d6cb1000)
> 	libxml2.so.2 => /opt/puppetlabs/puppet/lib/libxml2.so.2 (0x00007f13d68ec000)
> 	libdl.so.2 => /lib64/libdl.so.2 (0x00007f13d66e8000)
> 	libz.so.1 => /lib64/libz.so.1 (0x00007f13d64d1000)
> 	libm.so.6 => /lib64/libm.so.6 (0x00007f13d61ca000)
> 	libc.so.6 => /lib64/libc.so.6 (0x00007f13d5e17000)
> 	libncurses.so.6 => /lib64/libncurses.so.6 (0x00007f13d5bf0000)
> 	/lib64/ld-linux-x86-64.so.2 (0x00007f13d7360000)
> 	libtinfo.so.6 => /lib64/libtinfo.so.6 (0x00007f13d59b7000)

My bad. This is for puppet-agent-5.3.3 (but also valid)
Comment 11 Matthew Thode ( prometheanfire ) archtester Gentoo Infrastructure gentoo-dev Security 2018-01-08 17:43:32 UTC
thanks, and fixed in 5.3.3-r1
Comment 12 Matthew Thode ( prometheanfire ) archtester Gentoo Infrastructure gentoo-dev Security 2018-01-09 04:14:34 UTC
jessie looks like it still uses /lib64/libreadline.so.6

what specific url did you use?
Comment 14 Matthew Thode ( prometheanfire ) archtester Gentoo Infrastructure gentoo-dev Security 2018-01-13 20:30:28 UTC
ok, thanks fixed in r2