Bug 52742

Summary: %postinstall scriptlet fails if /usr is mounted ro
Product: [Retired] Red Hat Linux Reporter: Enrico Scholz <rh-bugzilla>
Component: guileAssignee: Phil Knirsch <pknirsch>
Status: CLOSED RAWHIDE QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 7.3CC: rvokal
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2001-09-03 13:09:05 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:
Bug Depends On: 51193    
Bug Blocks:    

Description Enrico Scholz 2001-08-28 17:06:26 UTC
Description of Problem:

When having /usr mounted read-only (and put into rpms %_netsharedpath), the
%postinstall scriptlet fails. This leads to duplicate entries in the
rpm-database:

$ rpm -q guile
guile-1.3.4-14
guile-1.3.4-15

See bug #51193 also.


Version-Release number of selected component (if applicable):

guile-1.3.4-15 (-14 also)


Steps to Reproduce:
1. mount /usr read-only
2. rpm -U --eval '%define _netsharedpath /usr' guile-1.3.4-15.i386.rpm


Actual Results:

(2) tells
ERROR: In procedure open-file:
ERROR: No such file or directory: "/usr/share/guile/slib/mklibcat"
Fehler: execution of %post scriptlet from guile-1.3.4-15 failed, exit status 2


Expected Results:

no output


Additional Information:
	
Message is misleading; strace tells:

$ strace -eopen /usr/bin/guile -c "(use-modules (ice-9 slib)) (require
'new-catalog)"
...
open("/usr/share/guile/slibcat", O_WRONLY|O_CREAT|O_TRUNC, 0666) = -1 EROFS
(Read-only file system)

Comment 1 Phil Knirsch 2001-09-04 11:54:33 UTC
OK, fixed in:

guile-1.3.4-16
umb-scheme-3.2-21

It needs also umb-scheme to be updated (as that one contains the 'original'
slibcat file).

The one included by umb-scheme doesn't need to be processed by guile anymore to
be used.

Hope this fixes your problems.

But keep in mind that if some package adds any modules in slib then slibcat will
be regenerated by guile and might fail in /usr is read-only.

Granted, the slibcat file should probably then go to /var whatever, but that's
something perhaps for a future fix.

Read ya, Phil