Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 96222 - libhistory.so.4 removed, needed by php
Summary: libhistory.so.4 removed, needed by php
Status: RESOLVED DUPLICATE of bug 75709
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Gentoo's Team for Core System packages
URL:
Whiteboard:
Keywords:
: 97504 99510 147824 (view as bug list)
Depends on:
Blocks:
 
Reported: 2005-06-15 15:55 UTC by Whit Blauvelt
Modified: 2011-11-09 18:28 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 Whit Blauvelt 2005-06-15 15:55:07 UTC
An emerge -u (for cups) brought in some new library files via a dependency which
resulted in upgrading to /lib/libhistory.so.5 and deleting /lib/libhistory.so.4
from the system. Yet libhistory.so.4 is needed by php (at least if php was
compiled against it). Not all *.so.4 files are removed; this one shouldn't be,
right?

Restoring libhistory.so.4 from another system restored php function. This would
be a major problem on a production Web server.

Reproducible: Always
Steps to Reproduce:
1.
2.
3.




Portage 2.0.51.19 (default-linux/x86/2005.0, gcc-3.3.5, glibc-2.3.4.20041102-r1,
2.6.7-win4lin-r5 i686)
=================================================================
System uname: 2.6.7-win4lin-r5 i686 AMD Athlon(tm) XP 2500+
Gentoo Base System version 1.4.16
Python:              dev-lang/python-2.2.3-r5,dev-lang/python-2.3.5 [2.3.5 (#1,
Jun 14 2005, 15:01:26)]
dev-lang/python:     2.2.3-r5, 2.3.5
sys-apps/sandbox:    [Not Present]
sys-devel/autoconf:  2.59-r6, 2.13
sys-devel/automake:  1.7.9-r1, 1.8.5-r3, 1.5, 1.4_p6, 1.6.3, 1.9.4
sys-devel/binutils:  2.15.92.0.2-r1
sys-devel/libtool:   1.5.10-r4
virtual/os-headers:  2.6.8.1-r2, 2.4.19-r1
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CFLAGS="-march=athlon-xp -O2 -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.1/share/config
/usr/kde/3.2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config
/usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb
/usr/lib/mozilla/defaults/pref /usr/share/config
/usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/
/usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/
/usr/share/texmf/xdvi/ /var/bind /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-march=athlon-xp -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs autoconfig ccache distlocks sandbox sfperms strict"
GENTOO_MIRRORS="http://distfiles.gentoo.org
http://distro.ibiblio.org/pub/Linux/distributions/gentoo"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="x86 X alsa apm arts avi berkdb bitmap-fonts cdr crypt cups curl emboss
encode esd fam flac foomaticdb fortran gd gdbm gif gphoto2 gpm gtk gtk2 guile
imagemagick imlib ipv6 java jpeg kde libg++ libwww mad mbox mikmod motif mozilla
mp3 mpeg mysql ncurses nls ogg oggvorbis opengl oss pam pdflib perl png python
qt quicktime readline samba sdl slang spell ssl svga tcltk tcpd tetex tiff
truetype truetype-fonts type1-fonts vorbis xine xml xml2 xmms xv zlib
userland_GNU kernel_linux elibc_glibc"
Unset:  ASFLAGS, CBUILD, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTDIR_OVERLAY
Comment 1 Chris White (RETIRED) gentoo-dev 2005-06-15 16:00:19 UTC
Re-assignment.  libhistory = sys-libs/readline. 
Comment 2 SpanKY gentoo-dev 2005-06-15 21:26:56 UTC
run revdep-rebuild
Comment 3 Whit Blauvelt 2005-06-16 06:17:01 UTC
Look at the real-world implications: Because of insisting on removing a prior
library version that can be safely left on the system, you're breaking
production Webservers. So even if the user runs "revdep-rebuild" as a matter of
habbit after each emerge, the php server has significant unscheduled downtime.
This is not acceptable. Gentoo is used in many production systems now; it's not
just a developers' toy any more.

If you can show a real problem with leaving libhistory.so.4(.3) on the system
after the library upgrade, then you can argue that it's necessary to delete it.
Certainly it's not a big file - it's not a disk space problem. So what is the
point of forcing production Webservers to take unscheduled downtime? Why not fix
this bug by leaving the older library version alongside the new, as is done in
many cases already?
Comment 4 SpanKY gentoo-dev 2005-06-16 06:21:50 UTC
very few things utilize libhistory which is why it was not kept

re-emerge php
Comment 5 Whit Blauvelt 2005-06-16 08:09:07 UTC
PHP may be one of "very few things," but on a production Apache/PHP server it's
a MAJOR thing. It's not how few the things are that depend on the older library,
it's how significant any of those things are. For the Linux platform, whose most
widespread production use is as a Webserver, and whose most-used Web scripting
language is PHP, breaking PHP for the convenience of freeing up a minor amount
of disk space by removing an older library is NOT TRIVIAL.

If you want to design this right, you'll leave older libraries by default, and
offer a utility that can comb the system for those whose dependencies are fully
obsolete and remove them. Your current strategy has it backwards.

If you remain unwilling to take the minor step of not removing this library (and
others where there may be similar dependencies), you'll be creating headaches
and problems for thousands of sysadmins and their clients. Again, you still can
reach your apparent design goal of a minimum of older libraries on a system with
a simple utility that uses the basic functionality of revdep-rebuild, but to
prune rather than fix brokenness. You could even have an aggressive mode of it
that would prune to the bones, then rebuild what that breaks, as you currently
are doing in this instance. This should be an option, not default Gentoo
behavior, however.
Comment 6 SpanKY gentoo-dev 2005-06-16 08:27:39 UTC
a system for tracking ABI dependencies by portage is already in the works
Comment 7 Wendall Cada 2005-06-23 16:46:18 UTC
I find myself completely agreeing with comment #5. And also, sadly find myself
with many Gentoo devs in disagreement. It's only valid if it keeps the system
from booting. Rendering a webserver useless is something that should be avoided.
Also, including the text at the end of the readline install in the bugs and
including information on all the libs that weren't important enough to keep and
their effected packages would have been nice. I feel this should have been fixed.

Wendall
Comment 8 SpanKY gentoo-dev 2005-06-23 16:51:53 UTC
you're wrong about the post-emerge info; the ebuild already warns that you need
to run `revdep-rebuild`
Comment 9 Jakub Moc (RETIRED) gentoo-dev 2005-06-30 08:54:07 UTC
*** Bug 97504 has been marked as a duplicate of this bug. ***
Comment 10 Jan Hrabe 2005-06-30 19:48:18 UTC
I'd like to very much agree with comments 3 and 5, having just spent 
couple hours only because this library was removed -- my company's production web 
server lost webmail for almost half a day.  Why to remove a library that does
no harm?  What is the library versioning good for then?  Perhaps the info message 
rolled by at some point during emerge -uD world but even if it did, it's not
that easy to catch.  Please keep production environments and their admins with
little time to spare in mind.  Thanks.
Comment 11 Jakub Moc (RETIRED) gentoo-dev 2005-07-19 04:09:40 UTC
*** Bug 99510 has been marked as a duplicate of this bug. ***
Comment 12 Whit Blauvelt 2005-11-30 05:39:32 UTC
I should have tracked this. You kept the resolve at "Won't fix". That just broke
another system for me. All to save the population from _perhaps_ having an
excess library version on their drives.

Look, if the design philosophy is to save hard drive space at any cost, Gentoo's
not the distro to run. The emerge process itself needs a lot of space, and over
time fills a drive with distfiles. So it's fully safe to assume that no Gentoo
user is short enough on drive space that keeping an extra library -- or an extra
20 libraries, whatever -- is going to make _any difference at all_. 

Fixing this would have no measurable negative effect. Nothing would fail to work
for anyone; the older library would introduce no errors to the system. The only
positive effect of not fixing this is having one fewer file name to look in the
listing of the directory -- worth almost nothing to anybody. Users rarely go
around reading directories of library files, which can be huge anyway. So you've
got a minor aesthetic principle -- not having anything on a system that's
perhaps unnecessary to _you_ (as if there's not plenty on any system that that
system doesn't absolutely require) -- balanced against letting Gentoo remain
with a real certainty of breaking production systems in an important way during
routine "upgrade -u system" operations. 

There's nothing aesthetic about breaking production systems. The priorities
behind this decision as it has stood are way wrong. Please reconsider and fix
this bug. The "run revdep-rebuild" advice isn't enough, because that takes time,
especially on systems which don't do -u system or -u world every week or month.
If you leave the libraries, you keep Gentoo safe for production systems --
upgradable while they're in production. Otherwise you're requiring all
production systems to have live backups systems which are not upgraded at the
same time and configured to takeover anything that fails -- which is asking a
lot, lot more of people than carring the "burden" of having a few older library
files around.
Comment 13 Anode 2005-12-09 04:04:16 UTC
I have the same problem emerging kde-base:
---8<---
/usr/bin/xmllint: error while loading shared libraries: libhistory.so.4: cannot
open shared object file: No such file or directory
make[3]: *** [index.cache.bz2] Error 1
make[3]: Leaving directory
`/var/tmp/portage/kdebase-3.5.0-r1/work/kdebase-3.5.0/doc/faq'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory
`/var/tmp/portage/kdebase-3.5.0-r1/work/kdebase-3.5.0/doc'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/portage/kdebase-3.5.0-r1/work/kdebase-3.5.0'
make: *** [all] Error 2
---8<---

And I do not have revdep-rebuild! How to fix libhistory.so.4? Help!
Comment 14 Anode 2005-12-09 04:50:12 UTC
ignore my last question: I've emerged gentoolkit for revdep-rebuild already. BTW
after my system had been leaving for about 1.5 years - I've got a huge list of
dynamic inconsistencies and libhistory.so.4 is just one of dozens of removed libs:
---8<--- 
# revdep-rebuild
Configuring search environment for revdep-rebuild

Checking reverse dependencies...

Packages containing binaries and libraries broken by a package update
will be emerged.

Collecting system binaries and libraries... done.
  (/root/.revdep-rebuild.1_files)

Collecting complete LD_LIBRARY_PATH... done.
  (/root/.revdep-rebuild.2_ldpath)

Checking dynamic linking consistency...
  broken /usr/bin/epiphany-bin (requires  libnautilus.so.2)
  broken /usr/bin/evolution-2.2 (requires  libecal-1.2.so.2
libedataserverui-1.2.so.4)
  broken /usr/bin/gnome-desktop-item-edit (requires  libgnome-menu.so.0)
  broken /usr/bin/gnome-keyboard-properties (requires  libxklavier.so.8)
  broken /usr/bin/gnome-panel (requires  libgnome-menu.so.0)
  broken /usr/bin/gnome-system-monitor (requires  libwnck-1.so.4)
  broken /usr/bin/gswitchit-plugins-capplet (requires  libxklavier.so.8)
  broken /usr/bin/mencoder (requires  libungif.so.4)
  broken /usr/bin/mplayer (requires  libungif.so.4)
  broken /usr/bin/nautilus (requires  libgnome-menu.so.0)
  broken /usr/bin/nautilus-connect-server (requires  libgnome-menu.so.0)
  broken /usr/bin/nautilus-file-management-properties (requires  libgnome-menu.so.0)
  broken /usr/bin/themus-theme-applier (requires  libnautilus.so.2)
  broken /usr/bin/w3c (requires  libmysqlclient.so.12)
  broken /usr/bin/webbot (requires  libmysqlclient.so.12)
  broken /usr/bin/www (requires  libmysqlclient.so.12)
  broken /usr/bin/xdvi-motif.bin (requires  libXm.so.2)
  broken /usr/bin/xmlcatalog (requires  libhistory.so.4)
  broken /usr/bin/xmllint (requires  libhistory.so.4)
  broken /usr/bin/xpdf (requires  libXm.so.2)
  broken /usr/kde/3.2/bin/kuickshow (requires  libungif.so.4)
  broken /usr/kde/3.2/bin/nspluginscan (requires  libXm.so.2)
  broken /usr/kde/3.2/bin/nspluginviewer (requires  libXm.so.2)
  broken /usr/kde/3.2/lib/kde3/kuickshow.so (requires  libungif.so.4)
  broken /usr/kde/3.2/lib/libkdeinit_kuickshow.so (requires  libungif.so.4)
  broken /usr/kde/3.4/bin/kuickshow (requires  libungif.so.4)
  broken /usr/kde/3.4/lib/kde3/kuickshow.so (requires  libungif.so.4)
  broken /usr/kde/3.4/lib/libkdeinit_kuickshow.so (requires  libungif.so.4)
  broken /usr/lib/bonobo/libthemus-theme-properties-view.so (requires 
libnautilus.so.2)
  broken /usr/lib/cryptplug/gpgme-openpgp.so (requires  libgpgme.so.6)
  broken /usr/lib/cryptplug/gpgme-smime.so (requires  libgpgme.so.6)
  broken /usr/lib/evolution/2.2/components/libevolution-addressbook.so (requires
 libebook-1.2.so.3 libedataserverui-1.2.so.4)
  broken /usr/lib/evolution/2.2/components/libevolution-calendar.so (requires 
libebook-1.2.so.3 libecal-1.2.so.2 libedataserverui-1.2.so.4)
  broken /usr/lib/evolution/2.2/components/libevolution-mail.so (requires 
libcamel-provider-1.2.so.3 libebook-1.2.so.3 libedataserverui-1.2.so.4)
  broken
/usr/lib/evolution/2.2/evolution-addressbook-importers/libevolution-addressbook-ldif-importer.so
(requires  libebook-1.2.so.3)
  broken
/usr/lib/evolution/2.2/evolution-addressbook-importers/libevolution-addressbook-vcard-importer.so
(requires  libebook-1.2.so.3)
  broken
/usr/lib/evolution/2.2/evolution-calendar-importers/libevolution-calendar-importers.so
(requires  libebook-1.2.so.3)
  broken /usr/lib/evolution/2.2/libeabutil.so.0.0.0 (requires  libebook-1.2.so.3
libedataserverui-1.2.so.4)
  broken /usr/lib/evolution/2.2/libemiscwidgets.so.0.0.0 (requires 
libedataserverui-1.2.so.4)
  broken /usr/lib/evolution/2.2/libeutil.so.0.0.0 (requires 
libedataserverui-1.2.so.4)
  broken /usr/lib/evolution/2.2/libevolution-mail-importers.so.0.0.0 (requires 
libebook-1.2.so.3)
  broken /usr/lib/evolution/2.2/plugins/liborg-gnome-evolution-startup-wizard.so
(requires  libcamel-provider-1.2.so.3 libebook-1.2.so.3 libedataserverui-1.2.so.4)
  broken
/usr/lib/evolution/2.2/plugins/liborg-gnome-exchange-account-settings.so
(requires  libcamel-provider-1.2.so.3)
  broken /usr/lib/evolution/2.2/plugins/liborg-gnome-gw-account-setup.so
(requires  libcamel-provider-1.2.so.3 libegroupwise-1.2.so.5)
  broken /usr/lib/evolution/2.2/plugins/liborg-gnome-send-options.so (requires 
libcamel-provider-1.2.so.3 libebook-1.2.so.3 libedataserverui-1.2.so.4
libegroupwise-1.2.so.5)
  broken /usr/lib/evolution/2.2/plugins/liborg-gnome-shared-folder.so (requires
 libcamel-provider-1.2.so.3 libegroupwise-1.2.so.5)
  broken /usr/lib/evolution/2.2/plugins/liborg-gnome-status-track.so (requires 
libcamel-provider-1.2.so.3 libegroupwise-1.2.so.5)
  broken /usr/lib/gaim/gevolution.so (requires  libebook.so.8 libedata-book.so.1
libedataserver.so.3)
  broken /usr/lib/imlib2/loaders/gif.so (requires  libungif.so.4)
  broken /usr/lib/libImlib.so.1.9.14 (requires  libungif.so.4)
  broken /usr/lib/libeel-2.so.2.10.1 (requires  libgnome-menu.so.0)
  broken /usr/lib/libimlib-gif.so (requires  libungif.so.4)
  broken /usr/lib/libmd5.so.0.1.0 (requires  libmysqlclient.so.12)
  broken /usr/lib/libpics.so.0.0.0 (requires  libmysqlclient.so.12)
  broken /usr/lib/libwwwapp.so.0.1.0 (requires  libmysqlclient.so.12)
  broken /usr/lib/libwwwcache.so.0.1.0 (requires  libmysqlclient.so.12)
  broken /usr/lib/libwwwcore.so.0.1.0 (requires  libmysqlclient.so.12)
  broken /usr/lib/libwwwdir.so.0.1.0 (requires  libmysqlclient.so.12)
  broken /usr/lib/libwwwfile.so.0.1.0 (requires  libmysqlclient.so.12)
  broken /usr/lib/libwwwftp.so.0.1.0 (requires  libmysqlclient.so.12)
  broken /usr/lib/libwwwgopher.so.0.1.0 (requires  libmysqlclient.so.12)
  broken /usr/lib/libwwwhtml.so.0.1.0 (requires  libmysqlclient.so.12)
  broken /usr/lib/libwwwhttp.so.0.1.0 (requires  libmysqlclient.so.12)
  broken /usr/lib/libwwwinit.so.0.1.0 (requires  libmysqlclient.so.12)
  broken /usr/lib/libwwwmime.so.0.1.0 (requires  libmysqlclient.so.12)
  broken /usr/lib/libwwwmux.so.0.1.0 (requires  libmysqlclient.so.12)
  broken /usr/lib/libwwwnews.so.0.1.0 (requires  libmysqlclient.so.12)
  broken /usr/lib/libwwwsql.so.0.1.0 (requires  libmysqlclient.so.12)
  broken /usr/lib/libwwwssl.so.0.1.0 (requires  libmysqlclient.so.12) one 
  broken /usr/lib/libwwwstream.so.0.1.0 (requires  libmysqlclient.so.12)
  broken /usr/lib/libwwwtelnet.so.0.1.0 (requires  libmysqlclient.so.12)
  broken /usr/lib/libwwwtrans.so.0.1.0 (requires  libmysqlclient.so.12)
  broken /usr/lib/libwwwutils.so.0.1.0 (requires  libmysqlclient.so.12)
  broken /usr/lib/libwwwxml.so.0.1.0 (requires  libmysqlclient.so.12)
  broken /usr/lib/libwwwzip.so.0.1.0 (requires  libmysqlclient.so.12)
  broken /usr/lib/libxmlparse.so.0.1.0 (requires  libmysqlclient.so.12)
  broken /usr/lib/libxmltok.so.0.1.0 (requires  libmysqlclient.so.12)
  broken /usr/lib/openoffice/program/python-core-2.3.4/lib/lib-dynload/_ one
bsddb.so (requires  libdb-3.1.so)
  broken
/usr/lib/openoffice/program/python-core-2.3.4/lib/lib-dynload/_tkinter.so
(requires  libBLT24.so libtcl8.3.so libtk8.3.so)
  broken /usr/lib/openoffice/program/python-core-2.3.4/lib/lib-dynload/bz2.so
(requires  libbz2.so.0)
  broken /usr/lib/openoffice/program/python-core-2.3.4/lib/lib-dynload/mpz.so
(requires  libgmp.so.3)
  broken /usr/lib/python2.3/site-packages/gtk-2.0/gnome/nautilus.so (requires 
libnautilus.so.2)
  broken /usr/libexec/clock-applet (requires  libecal-1.2.so.2)
  broken /usr/libexec/evolution-webcal (requires  libecal.so.6
libedataserver.so.3 libsoup-2.2.so.7)
  broken /usr/libexec/evolution/2.2/evolution-addressbook-export (requires 
libebook-1.2.so.3 libedataserverui-1.2.so.4)
  broken /usr/libexec/evolution/2.2/evolution-alarm-notify (requires 
libebook-1.2.so.3 libecal-1.2.so.2 libedataserverui-1.2.so.4)
  broken /usr/libexec/evolution/2.2/killev (requires  libedataserverui-1.2.so.4)
  broken /usr/libexec/gnome-keyboard-applet (requires  libxklavier.so.8)
  broken /usr/libexec/gnome-settings-daemon (requires  libxklavier.so.8)
  broken /usr/libexec/notification-area-applet (requires  libgnome-menu.so.0)
 done.
  (/root/.revdep-rebuild.3_rebuild)
---8<---
(...hmm, it seems revdep-rebuild should be run periodically or have to be
incorporated to be automatic - I was not even having gentoolkit installed untill
today and 1.5 years is not so big period...)
Comment 15 Jakub Moc (RETIRED) gentoo-dev 2006-05-22 03:53:13 UTC
Use revdep-rebuild like everyone else and as advised by the readline ebuild. Closing a stale bug.
Comment 16 Jakub Moc (RETIRED) gentoo-dev 2006-09-16 10:05:08 UTC
*** Bug 147824 has been marked as a duplicate of this bug. ***
Comment 17 SpanKY gentoo-dev 2011-11-09 18:28:16 UTC

*** This bug has been marked as a duplicate of bug 75709 ***