FYI, rawhide makes /usr/bin/install (matchpathcon) segfault

Jim Meyering jim at meyering.net
Wed Sep 7 11:44:36 UTC 2011


Jim Meyering wrote:
...
>     $ touch a && $ env -i /usr/bin/install a b
>     zsh: segmentation fault  env -i /usr/bin/install a b
>     [Exit 139 (SEGV)]

Rich Jones found that updating to libselinux-2.1.5-2.fc17.x86_64
made it so he too sees the above failure.

>   http://bugzilla.redhat.com/736259

For any of you who are already affected, you may be wondering how
automated tools will install fixed versions without a working "install"
program.  At least I was.

There may well be a simpler solution, like using a small install-simulating
script, but I'm inclined to use the "real" install program, with a
minimal adjustment:
===============================================

Build the latest coreutils from source, but with a small twist
to disable the offending matchpathcon calls:

Get the sources, from a link here:

    http://thread.gmane.org/gmane.comp.gnu.coreutils.general/1631

e.g.,

    wget http://people.redhat.com/meyering/cu/coreutils-ss.tar.xz
    wget http://people.redhat.com/meyering/cu/coreutils-ss.tar.xz.sig

Verify the signature before unpacking:

    gpg --verify coreutils-ss.tar.xz.sig

Unpack (as non-root, of course):

    tar xf coreutils-ss.tar.xz && cd coreutils-8.12*

Configure and build with one added definition.
This overrides the "ginstall_CPPFLAGS = -DENABLE_MATCHPATHCON=1"
setting in src/Makefile.am:

    ./configure && make ginstall_CPPFLAGS=

Verify that the just-built install binary works:
(or also run "make check" for the whole test suite)

    touch a; src/ginstall a b

Install it, replacing your temporarily-broken one:

    sudo src/ginstall src/ginstall /usr/bin/install


More information about the devel mailing list