Bug 732475

Summary: %postun libs not empty
Product: [Fedora] Fedora Reporter: Andreas Schwab <schwab>
Component: pythonAssignee: Dave Malcolm <dmalcolm>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: dmalcolm, ivazqueznet, jonathansteffan
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-08-22 19:39:42 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Andreas Schwab 2011-08-22 15:20:39 UTC
A scriptlet that uses ldconfig as program must be empty.

$ rpm -q --scripts python-libs
postinstall program: /sbin/ldconfig
postuninstall scriptlet (using /sbin/ldconfig):


# ======================================================
# Manifests of the various subpackages
# ======================================================

Comment 1 Dave Malcolm 2011-08-22 17:07:24 UTC
Thanks for reporting this.

The relevant fragment of the specfile looks like this:

[...begin quote...]

# ======================================================
# Scriptlets
# ======================================================

%post libs -p /sbin/ldconfig

%postun libs -p /sbin/ldconfig


# ======================================================
# Manifests of the various subpackages
# ======================================================

%files
%defattr(-, root, root, -)
%doc LICENSE README

[...end quote...]


Clearly rpm is interpreting everything leading up to the "%files" as part of the %postun.

Comment 2 Dave Malcolm 2011-08-22 17:27:14 UTC
Looking in rpm-4.9.1.1/build/parseSpec.c, the relevant code that parses scriptlets is:
  int parseScript(rpmSpec spec, int parsePart)
My reading is that it reads lines, adding them to the scriptlet, until it reaches one containing a "part token" e.g. %files (c.f. isPart() within parseSpec.c)

Comment 3 Dave Malcolm 2011-08-22 19:39:42 UTC
Fix committed/pushed to git for python and python3 specfiles (I'm trying to gradually make these specfiles more easily diff-able against each other, and these comment headers were part of this).