Red Hat Bugzilla – Bug 242936
gnucash fails to start: ERROR: Permission denied: "/usr/share/guile/site/slibcat"
Last modified: 2008-01-09 11:29:12 EST
Description of problem:
Version-Release number of selected component (if applicable):
Always occurs. gnucash has never worked since clean install of Fedora 7 (three
Steps to Reproduce:
1. $ gnucash
ERROR: In procedure open-file:
ERROR: Permission denied: "/usr/share/guile/site/slibcat"
gnucash should start.
This error can be eliminated by adding read permission to file "slibcat"
bash-3.2$ ls -l /usr/share/guile/site/slibcat
-rw------- 1 root root 7643 2007-06-05 01:44 /usr/share/guile/site/slibcat
However, there is also this:
bash-3.2$ rpm -q --file /usr/share/guile/site/slibcat
file /usr/share/guile/site/slibcat is not owned by any package
Isn't that wrong?
bash-3.2$ rpm -q --all --list | grep slibcat
The file is generated during guile and slib installation, so it's not listed in
the rpm database.
Probably wrong ulimit is somewhere set. Can you reproduce the problem? Does
guile reinstalling create the file with wrong permission?
I mean wrong umask. How were the packages originally installed?
I'm pretty sure I installed gnucash using the Software Manager GUI (Add/Remove
Software) when I added 50+ programs after initial install. I have installed
some applications (xfce4 stuff and pine from LIVNA) using 'sudo yum install
...', but I remember selecting gnucash from the menu.
I'm surprised that umasks can get confused with RPM, even if it's a generated
file. But I understand what you mean. My default umask is 0077, so, that could
I promise to test by reinstalling, later. If you want me to follow a specific
test procedure, so can be sure, just let me know.
Ok, I can reproduce the problem. Just setting umask for root.
I was also able to correct the problem by uninstalling gnucash and slib, then
reinstalling. I set my umask to 022, used yum to erase gnucash and slib, and
then used yum to install slib gnucash. In the end, gnucash started without
error and the file "/usr/share/guile/site/slibcat" was world readable.
So, thanks so much for your help. This wasn't a bug, at all. Sorry.
Two things, though, if you don't mind. 1) When you say "set umask for root",
what do you mean? /root/.bash_profile? 2) Isn't there some way to insulate YUM
or RPM from the umask of the user who runs them? I use sudo all the time and it
doesn't seem right that rpm should take umask for post-install scripts from the
I realize this bug report log isn't the right place for this discussion. Feel
free to return a reference or just ignore.
Well, it actually is a bug, I'm just not sure if this should be fixed in rpm or
in every scriptlet that creates files (and there are many of them).
It's related to bug #83006.
guile-1.8.3-2.fc9 sets umask to 0022 in the scriptlet.