From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.1) Gecko/20031114 Description of problem: When I run "rpm -e portmap", I get these errors: error reading information on service portmap: No such file or directory error:%prerun(portmap-4.0-59) scriptlet failed, exit status 1 Version-Release number of selected component (if applicable): portmap-4.0-59 How reproducible: Always Steps to Reproduce: 1. Run "rpm -e portmap" 2. 3. Actual Results: It gives me the error I mentioned. Expected Results: I expected portmap to be removed. Additional info:
Path failure on fc2 use /sbin/service rather than service [pauln@enki tmp]$ rpm --scripts -q portmap postinstall scriptlet (using /bin/sh): /sbin/chkconfig --add portmap /usr/sbin/groupadd -g 32 rpc > /dev/null 2>&1 /usr/sbin/useradd -c "Portmapper RPC user" -d / -g 32 -M -s /sbin/nologin -u 32 rpc > /dev/null 2>&1 exit 0 preuninstall scriptlet (using /bin/sh): if [ $1 = 0 ]; then service portmap stop > /dev/null 2>&1 /sbin/chkconfig --del portmap fi postuninstall scriptlet (using /bin/sh): if [ "$1" -ge "1" ]; then service portmap condrestart > /dev/null 2>&1 fi
This is not a path issue - SCRIPT_PATH is unaltered looks to be a trigger misfiring: rpm --triggers -q portmap triggerpostun scriptlet (using /bin/sh) -- portmap <= portmap-4.0-22 /sbin/chkconfig --add portmap from rpm -e -vv --nodeps portmap I get: D: erase: %trigger(portmap-4.0-59) execv(/bin/sh) pid 4466 + /sbin/chkconfig --add portmap error reading information on service portmap: No such file or directory D: erase: waitpid(4466) rc 4466 status 100 secs 0.073 error: %trigger(portmap-4.0-59) scriptlet failed, exit status 1
portmap seems to have a %{name} level provides as triggers match against all provides and Provides: %{name} matches all EVR it's being fired rpm -q --provides portmap config(portmap) = 4.0-59 portmap portmap = 4.0-59 I can't see Provides: %{name} or anything in the spec so need to figure why the virtual is there.
Change component to rpm
bingo: [pauln@enki pauln]$ file /sbin/portmap /sbin/portmap: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), stripped The provide here is due to SONAME adding: /* For DSO's, provide the basename of the file if DT_SONAME not found. */ if (!fc->skipProv && isDSO && !gotSONAME) { All the following binaries are probably the same: exim finger httpd nscd perl perl-URI portmap postgresql-odbc routed rusers squid sudo telnet vsftpd
Note this is probably due to the executables being PIE. Probably need to teach rpm how to tell the difference if we can
Created attachment 100411 [details] Patch to filter out DT_DEBUG Tested this against rpm-4_3 branch and filtering for DT_DEBUG skips adding a basename (usually == %{name}) of the PIE executable to Provides:
Jeff does this all look sane to you?
*** Bug 123680 has been marked as a duplicate of this bug. ***
The PIE patch is in latest rpm-4.3.2.
*** Bug 127571 has been marked as a duplicate of this bug. ***
What should I do to get ppp updated? Update rpm? Why the fix is not in the updates?
*** Bug 127554 has been marked as a duplicate of this bug. ***
Any chance of getting 4.3.2 as errata for fc2 and into buildroots?
Would really appreciate a release of a fixed rpm for fc2. Any chance?