[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[Bug 204448] RPM verify not functional: "file's dependencies has changed since prelinking"

Please do not reply directly to this email. All additional
comments should be made in the comments box of this bug.


Nils Philippsen <nphilipp redhat com> changed:

           What    |Removed                     |Added
             Status|CLOSED                      |ASSIGNED
            Version|5                           |rawhide
           Keywords|                            |Reopened
                 CC|                            |ffesti redhat com,
                   |                            |nphilipp redhat com
         AssignedTo|pjones redhat com           |jakub redhat com
         Resolution|WONTFIX                     |
          QAContact|                            |extras-qa fedoraproject org

--- Comment #7 from Nils Philippsen <nphilipp redhat com>  2009-11-05 05:25:04 EDT ---
I've stumbled over this on current (i.e. pre F-12) Rawhide:

[root gibraltar ~]# rpm -Vf /lib64/libvolume_id.so.1.1.0
prelink: /lib64/libvolume_id.so.1.1.0: at least one of file's dependencies has
changed since prelinking
S.?......    /lib64/libvolume_id.so.1.1.0

Florian Festi found that prelink provides this RPM macro which should give the
un-prelinked binary contents on stdout:


# rpm-4.1 verifies prelinked libraries using a prelink undo helper.
#       Note: The 2nd token is used as argv[0] and "library" is a
#       placeholder that will be deleted and replaced with the appropriate
#       library file path.
%__prelink_undo_cmd     /usr/sbin/prelink prelink -y library

Unfortunately, this doesn't work if un-prelinking and prelinking again doesn't
produce a file identical to the original one. I assume this doesn't work if
dependencies change or whatever.

Instead of "prelink -y ...", "prelink -u ..." could be used if it were able to
spit out the contents to stdout:

- "prelink -u -o - ..." produces a file named "-" containing the original
- "prelink -u -o /dev/stdout ..." replaces /dev/stdout with the binary contents
- "prelink -u -o /proc/self/fd/1 ..." doesn't work at all (besides not being
very portable)

Alternatively to making the above work, one could add a "--stdout" option to be
used with "-u" (or a "--always" for use with "-y"). Regardless of the solution,
/etc/rpm/macros.prelink needs to be adapted as well.

Configure bugmail: https://bugzilla.redhat.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]