Bug 729796 - glibc-common warning: (null) scriptlet failed, exit status 127
Summary: glibc-common warning: (null) scriptlet failed, exit status 127
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: glibc
Version: 16
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Andreas Schwab
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-08-10 20:41 UTC by Mads Kiilerich
Modified: 2016-11-24 15:42 UTC (History)
4 users (show)

Fixed In Version: glibc-2.14.90-12.999
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-10-19 04:34:16 UTC


Attachments (Terms of Use)

Description Mads Kiilerich 2011-08-10 20:41:26 UTC
When glibc-common is installed in chroot (when building a livecd) it emits a warning, as shown by this example:

# rm -rf root
# rpm --root `pwd`/root -ihv \
    glibc-common-2.14.90-4.1.x86_64.rpm \
    glibc-2.14.90-4.1.x86_64.rpm \
    bash-4.2.10-4.fc16.x86_64.rpm \
    tzdata-2011h-1.fc16.noarch.rpm \
    libgcc-4.6.1-7.fc16.x86_64.rpm \
    basesystem-10.0-5.fc16.noarch.rpm \
    setup-2.8.35-1.fc16.noarch.rpm \
    filesystem-2.4.44-1.fc16.x86_64.rpm \
    libselinux-2.0.102-6.fc16.x86_64.rpm \
    nss-softokn-freebl-3.12.10-4.fc16.x86_64.rpm \
    libsepol-2.1.1-1.fc16.x86_64.rpm \
    ncurses-libs-5.9-2.20110716.fc16.x86_64.rpm \
    ncurses-base-5.9-2.20110716.fc16.x86_64.rpm
warning: glibc-common-2.14.90-4.1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID a82ba4b7: NOKEY
Preparing...                ########################################### [100%]
   1:setup                  ########################################### [  8%]
   2:libgcc                 ########################################### [ 15%]
   3:filesystem             ########################################### [ 23%]
   4:basesystem             ########################################### [ 31%]
   5:ncurses-base           ########################################### [ 38%]
   6:tzdata                 ########################################### [ 46%]
   7:nss-softokn-freebl     ########################################### [ 54%]
   8:glibc-common           ########################################### [ 62%]
warning: (null) scriptlet failed, exit status 127
   9:glibc                  ########################################### [ 69%]
  10:ncurses-libs           ########################################### [ 77%]
  11:bash                   ########################################### [ 85%]
  12:libsepol               ########################################### [ 92%]
  13:libselinux             ########################################### [100%]

Why do glibc-common installation cause a warning, and what is it that is failing?


glibc.spec has:

%triggerin common -p <lua> -- glibc
if posix.stat("%{_prefix}/lib/locale/locale-archive.tmpl", "size") > 0 then
  pid = posix.fork()
  if pid == 0 then
    posix.exec("%{_prefix}/sbin/build-locale-archive")
  elseif pid > 0 then
    posix.wait(pid)
  end
end

%post common -p <lua>
if posix.access("/etc/ld.so.cache") then
  if posix.stat("%{_prefix}/lib/locale/locale-archive.tmpl", "size") > 0 then
    pid = posix.fork()
    if pid == 0 then
      posix.exec("%{_prefix}/sbin/build-locale-archive")
    elseif pid > 0 then
      posix.wait(pid)
    end
  end
end

%triggerin common -p /usr/sbin/tzdata-update -- tzdata

strace shows that %post correctly is skipped after 
525   access("/etc/ld.so.cache", F_OK)  = -1 ENOENT (No such file or directory)
but tzdata has already been installed and is thus run before glibc is available and we get:
526   execve("/usr/sbin/tzdata-update", ["/usr/sbin/tzdata-update", "/var/tmp/rpm-tmp.8o2qZw", "1", "1"], [/* 28 vars */]) = -1 ENOENT (No such file or directory)
526   exit_group(127)                   = ?
... 18 lines ...
525   write(2, "warning: ", 9)          = 9
525   write(2, "(null) scriptlet failed, exit st"..., 41) = 41

AFAICS rpm does the right thing so I guess the tzdata scriptlet should be fixed somehow.

Thinking out loud: it seems like the simplest way to break the strong circular glibc/glibc-common dependency would be to merge the packages ... but I guess there is a reason they are separate ... Forcing or tricking rpm to install glibc first would perhaps also solve the problem - perhaps with some tricky explicit Requires(post).


glibc-common-2.14.90-4.1.x86_64
rpm-4.9.1-3.fc16.x86_64

Comment 1 Alexander Todorov 2011-10-06 09:38:52 UTC
Same issue when installing in KVM guest from the Fedora 16 Beta DVD:

install.log:

05:23:03 Installing ncurses-base-5.9-2.20110716.fc16.x86_64
05:23:04 Installing nss-softokn-freebl-3.12.10-4.fc16.x86_64

05:23:04 Installing glibc-common-2.14.90-8.x86_64
warning: (null) scriptlet failed, exit status 127

05:23:10 Installing glibc-2.14.90-8.x86_64
05:23:21 Installing ncurses-libs-5.9-2.20110716.fc16.x86_64
05:23:21 Installing bash-4.2.10-4.fc16.x86_64

Comment 2 Fedora Update System 2011-10-11 13:17:37 UTC
glibc-2.14.90-11 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/glibc-2.14.90-11

Comment 3 Fedora Update System 2011-10-12 16:49:19 UTC
Package glibc-2.14.90-11:
* should fix your issue,
* was pushed to the Fedora 16 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing glibc-2.14.90-11'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2011-14175
then log in and leave karma (feedback).

Comment 4 Fedora Update System 2011-10-18 08:10:36 UTC
glibc-2.14.90-12.999 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/FEDORA-2011-14504

Comment 5 Fedora Update System 2011-10-19 04:34:16 UTC
glibc-2.14.90-12.999 has been pushed to the Fedora 16 stable repository.  If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.