|
Bugzilla – Full Text Bug Listing |
| Summary: | gnucash no longer working after upgrade by zypper | ||
|---|---|---|---|
| Product: | [openSUSE] openSUSE 12.2 | Reporter: | Forgotten User 99jW5vq2hJ <forgotten_99jW5vq2hJ> |
| Component: | Other | Assignee: | Dominique Leuenberger <dimstar> |
| Status: | RESOLVED FIXED | QA Contact: | E-mail List <qa-bugs> |
| Severity: | Major | ||
| Priority: | P2 - High | CC: | andrei, dimstar, mls, pgajdos, ran.rubin, sault.don |
| Version: | Final | ||
| Target Milestone: | --- | ||
| Hardware: | x86-64 | ||
| OS: | openSUSE 12.2 | ||
| Whiteboard: | |||
| Found By: | --- | Services Priority: | |
| Business Priority: | Blocker: | --- | |
| Marketing QA Status: | --- | IT Deployment: | --- |
| Attachments: | zypper in --debug-solver gnucash (with a cleaned out system) | ||
|
Description
Forgotten User 99jW5vq2hJ
2012-09-17 19:26:43 UTC
I get the same error. Looks like something got broke during the attempt to fix the original bug with the missing libguile-srfi-srfi dependency. Gnucash is broken in both Oss and Update repos for 12.2. Same here. After downgrading all guile and gnucash related packages (form Update to OSS) I still get the above error. guile and gnucash are always an issue, it was the same in 12.1 (not complaining just saying.. :-)) Thanks for reporting this issue.. The fix was mainly bringing gnucash back to the fix of 12.1, where guile-devel was being pulled in (which, in turn, required all it's sub libraries). Having too many guile libs being installed causing a problem is severe, as any other app might consequently rely on one of those libs, causing hughe issues if they are to be operated on the same system. Actually, this looks like one of the additional libs tries to trigger a more optimized path. Can you please verify if you have the package called 'slib' installed? And if not, if installing this package resolves the issue for you? saultdon@d830:~> zypper se -si slib Loading repository data... Warning: Repository 'openSUSE-12.2-Update-Non-Oss' appears to outdated. Consider using a different mirror or server. Reading installed packages... S | Name | Type | Version | Arch | Repository --+------+---------+-----------+--------+------------------ i | slib | package | 3b3-9.1.1 | noarch | openSUSE-12.2-Oss I didn't need to install slib, it's already there =) same here. I also have it. Tahnks, Ran Tested on a almost fresh VM and this works.. eeks.. Are you running GNOME Desktops or KDE? (just to see if anything here might just have pulled in some more deps). Also, can you please show me the output of: ls -la /usr/share/guile/site/ ls -la /usr/share/guile/site/slib I'm running KDE I don't have either of these folders. I only have /usr/share/guile/1.8 ranr@xxxx:/usr/share/guile/1.8> ls -la total 328 drwxr-xr-x 7 root root 4096 Sep 19 00:19 . drwxr-xr-x 3 root root 4096 Sep 19 00:19 .. -rw-r--r-- 1 root root 293214 Sep 11 16:26 guile-procedures.txt drwxr-xr-x 4 root root 4096 Sep 19 00:19 ice-9 drwxr-xr-x 3 root root 4096 Sep 11 16:26 lang drwxr-xr-x 3 root root 4096 Sep 19 00:19 oop drwxr-xr-x 2 root root 4096 Sep 19 00:19 scripts -rw-r--r-- 1 root root 9456 Sep 19 00:19 slibcat drwxr-xr-x 2 root root 4096 Sep 19 00:19 srfi (In reply to comment #8) > I'm running KDE > > I don't have either of these folders. > I only have /usr/share/guile/1.8 > > ranr@xxxx:/usr/share/guile/1.8> ls -la > total 328 > drwxr-xr-x 7 root root 4096 Sep 19 00:19 . > drwxr-xr-x 3 root root 4096 Sep 19 00:19 .. > -rw-r--r-- 1 root root 293214 Sep 11 16:26 guile-procedures.txt > drwxr-xr-x 4 root root 4096 Sep 19 00:19 ice-9 > drwxr-xr-x 3 root root 4096 Sep 11 16:26 lang > drwxr-xr-x 3 root root 4096 Sep 19 00:19 oop > drwxr-xr-x 2 root root 4096 Sep 19 00:19 scripts > -rw-r--r-- 1 root root 9456 Sep 19 00:19 slibcat > drwxr-xr-x 2 root root 4096 Sep 19 00:19 srfi Same here. Running KDE 4.9 I'm wondering if users who followed this comment: https://bugzilla.novell.com/show_bug.cgi?id=779458#c6 (like me) have some extra deps in their system now? I'm running KDE 4.8. I did not do anything special. I think I chose GNUCash during installation (or imidiatly after), it worked after the fresh install and stooped working after the first update. (In reply to comment #8) > I'm running KDE > > I don't have either of these folders. Ok, that sounds like an issue... likely a racing condition in the installations of guile vs slib originally. Can you try to: zypper in --force slib ? This should run the scripts needed to create the folders as expected. If that works, the big question will be how to do the fix :) (In reply to comment #11) > Can you try to: > zypper in --force slib That did not work (it did not create the folder /usr/share/guile/site). However I removed all the guile packages, the slib packages and gnucash and then reinstalled them with: zypper in guile1 libguile-srfi-srfi-1-v-3-3 libguile-srfi-srfi-13-14-v-3-3 libguile-srfi-srfi-4-v-3-3 libguile-srfi-srfi-60-v-2-2 libguile1-devel libguile17 libguilereadline-v-17-17 zypper in slib zypper in gnucash and this worked! I get: ranr@xxxx:~> ls -la /usr/share/guile/site/ total 8 drwxr-xr-x 2 root root 4096 Sep 19 12:31 . drwxr-xr-x 4 root root 4096 Sep 19 12:28 .. lrwxrwxrwx 1 root root 10 Sep 19 12:31 slib -> ../../slib ranr@xxxx:~> ls -la /usr/share/guile/site/slib lrwxrwxrwx 1 root root 10 Sep 19 12:31 /usr/share/guile/site/slib -> ../../slib and as far as I can see gnucash works fine (not tested extensively) Regarding how to fix this, I really don't know but I'll be happy to provide any info you might need. Thanks for your help, Ran Thanks.. that means the good news is: we're on the right track. As for installing: zypper in guile1 libguile-srfi-srfi-1-v-3-3 libguile-srfi-srfi-13-14-v-3-3 libguile-srfi-srfi-4-v-3-3 libguile-srfi-srfi-60-v-2-2 libguile1-devel libguile17 libguilereadline-v-17-17 => only guile1 should be needed; the rest should be pulled as dependency (minus libguile1-devel... this is not required to run an app.. or it's an error) now, actually, gnucash requires slib, and slib requires guile1... so all the deps should be in place. /usr/share/guile/site and the symlink in there should have been created by slib's %post scritplets... CCing Petr, the slib and guile maintainer saultdon@d830:~> sudo zypper rm gnucash *guile* slib The following packages are going to be REMOVED: gnucash gnucash-lang guile1 libguile17 libguile1-devel libguilereadline-v-17-17 libguile-srfi-srfi-13-14-v-3-3 libguile-srfi-srfi-1-v-3-3 libguile-srfi-srfi-4-v-3-3 libguile-srfi-srfi-60-v-2-2 slib Look at all those srfi-srfi packages! Are they causing a conflict somewhere? So after that, I re-installed just gnucash: saultdon@d830:~> sudo zypper in gnucash The following NEW packages are going to be installed: gnucash gnucash-lang guile1 libguile17 slib The following recommended package was automatically selected: gnucash-lang The following package is recommended, but will not be installed: bundle-lang-gnome-extras-ar 5 new packages to install. Overall download size: 6.4 MiB. After the operation, additional 34.7 MiB will be used. Continue? [y/n/?] (y): y Trying to run gnucash gives the same original error now: saultdon@d830:~> gnucash gnc.bin-Message: main: binreloc relocation support was disabled at configure time. ERROR: In procedure dynamic-link: ERROR: file: "libguile-srfi-srfi-1-v-3", message: "file not found" So I did a search for the srfi packages and installed the closest matching one: sudo zypper in libguile-srfi-srfi-1-v-3-3 And now gnucash will run! A `sudo zypper ve` after all that says "Dependencies of all installed packages are satisfied." Here is where zypper pulled the packages from: saultdon@d830:~> zypper se -si gnucash *srfi* slib i | gnucash | package | 2.4.11-2.5.5 | x86_64 | openSUSE-12.2-Update i | libguile-srfi-srfi-1-v-3-3 | package | 1.8.8-4.5.1 | x86_64 | openSUSE-12.2-Update i | slib | package | 3b3-9.1.1 | noarch | openSUSE-12.2-Oss Where slib is the only package from the OSS repo and the rest from the Update repo. I THINK I FOUND IT! It's a patch: openSUSE-2012-614 It installed all the other srfi packages and that broke Gnucash: sudo zypper patch The following NEW packages are going to be installed: libguilereadline-v-17-17 libguile-srfi-srfi-13-14-v-3-3 libguile-srfi-srfi-4-v-3-3 libguile-srfi-srfi-60-v-2-2 The following NEW patch is going to be installed: openSUSE-2012-614 So I had to do this again to re-fix: sudo zypper rm *guile* gnucash slib sudo zypper in gnucash libguile-srfi-srfi-1-v-3-3 # Below command will mask/lock out the patch, optional sudo zypper al -t patch openSUSE-2012-614 And it is back to working again. Here is the patch info, and it says it was suppose to make it so you could install Gnucash without having to install other packages manually: saultdon@d830:~> zypper info -t patch openSUSE-2012-614 Loading repository data... Reading installed packages... Information for patch openSUSE-2012-614: Name: openSUSE-2012-614 Version: 1 Arch: noarch Vendor: maint-coord@suse.de Status: Needed Category: recommended Created On: Tue 11 Sep 2012 06:27:53 AM MST Reboot Required: No Package Manager Restart Required: No Interactive: No Summary: guile1: Fix package requirements of guile1 - Make gnucash work without having to install packages manually Description: This update fixes the following issue for guile1: - bnc#779458: Require the library packages from the main package: having the *.so symlinks in the main package forces us to install the libs as well, or we end up with dangling symlinks (thus, failing to actually dlopen the .so file, which was the main reason to move them to the main package) Provides: patch:openSUSE-2012-614 == 1 Conflicts: guile1.i586 < 1.8.8-4.5.1 srcpackage:guile1 < 1.8.8-4.5.1 guile1-debuginfo.i586 < 1.8.8-4.5.1 guile1-debugsource.i586 < 1.8.8-4.5.1 libguile-srfi-srfi-1-v-3-3.i586 < 1.8.8-4.5.1 libguile-srfi-srfi-1-v-3-3-debuginfo.i586 < 1.8.8-4.5.1 libguile-srfi-srfi-13-14-v-3-3.i586 < 1.8.8-4.5.1 libguile-srfi-srfi-13-14-v-3-3-debuginfo.i586 < 1.8.8-4.5.1 libguile-srfi-srfi-4-v-3-3.i586 < 1.8.8-4.5.1 libguile-srfi-srfi-4-v-3-3-debuginfo.i586 < 1.8.8-4.5.1 libguile-srfi-srfi-60-v-2-2.i586 < 1.8.8-4.5.1 libguile-srfi-srfi-60-v-2-2-debuginfo.i586 < 1.8.8-4.5.1 libguile1-devel.i586 < 1.8.8-4.5.1 libguile17.i586 < 1.8.8-4.5.1 libguile17-debuginfo.i586 < 1.8.8-4.5.1 libguilereadline-v-17-17.i586 < 1.8.8-4.5.1 libguilereadline-v-17-17-debuginfo.i586 < 1.8.8-4.5.1 guile1.x86_64 < 1.8.8-4.5.1 guile1-debuginfo.x86_64 < 1.8.8-4.5.1 guile1-debugsource.x86_64 < 1.8.8-4.5.1 libguile-srfi-srfi-1-v-3-3.x86_64 < 1.8.8-4.5.1 libguile-srfi-srfi-1-v-3-3-debuginfo.x86_64 < 1.8.8-4.5.1 libguile-srfi-srfi-13-14-v-3-3.x86_64 < 1.8.8-4.5.1 libguile-srfi-srfi-13-14-v-3-3-debuginfo.x86_64 < 1.8.8-4.5.1 libguile-srfi-srfi-4-v-3-3.x86_64 < 1.8.8-4.5.1 libguile-srfi-srfi-4-v-3-3-debuginfo.x86_64 < 1.8.8-4.5.1 libguile-srfi-srfi-60-v-2-2.x86_64 < 1.8.8-4.5.1 libguile-srfi-srfi-60-v-2-2-debuginfo.x86_64 < 1.8.8-4.5.1 libguile1-devel.x86_64 < 1.8.8-4.5.1 libguile17.x86_64 < 1.8.8-4.5.1 libguile17-debuginfo.x86_64 < 1.8.8-4.5.1 libguilereadline-v-17-17.x86_64 < 1.8.8-4.5.1 libguilereadline-v-17-17-debuginfo.x86_64 < 1.8.8-4.5.1 Ok.. here is something going on which I do not (yet) understand...
with all repos available (and cleaned up with zypper rm *guile*)
- zypper in gnucash
=> this pulls in
gnucash from Update,
guile1 from OSS
libguile17 from OSS
slib from OSS
(This I somewhat understand, is based on zypper trying to be smart and minimize impacts)
=> The result is non-working gnucash, missing guile libs, so far so good.
- zypper patch
=> This pulls in (all from Update)
libguile-srfi-srfi-1-v-3-3
libguile-srfi-srfi-13-14-v-3-3
libguile-srfi-srfi-4-v-3-3
libguile-srfi-srfi-60-v-2-2
libguilereadline-v-17-17
=> This is expected.
BUT: "rpm -qV guile1" now lists a missing folder /usr/share/guile/site; and exactly THIS missing folder is the cause for all of this.
executing zypper in --force guile1; to trigger a reinstall of this package, solves the issue with non-working gnucash; and with all patches applied...
CCing MLS: Do you happen to hav ANY clue what is going on here? There are no scripts in guile1 that should nag around (only very old cleanups, none affecting this folder); yet, updating from guile1-1.8.8-4.2.1 to guile1-1.8.8-4.5.1 (either zypper patch or zypper up) resolves in a 'broken' installation...
Small correction for the initial zypper in ru > with all repos available (and cleaned up with zypper rm *guile*) > - zypper in gnucash > => this pulls in > gnucash from Update, > guile1 from OSS > libguile17 from Update > slib from OSS => libguile17 is being installed from the Update tree, not as stated in comment 18 from OSS. Created attachment 506319 [details]
zypper in --debug-solver gnucash (with a cleaned out system)
Doing "rpm -qV guile1" as suggested by Dominique solves the problem on my system, too. I think the slib package is to blame, it contains:
%triggerpostun -- guile1
# Delete slib library files, only if guile was uninstalled.
if ! test -e usr/bin/guile ; then
rm -f usr/share/guile/site/slib
rm -f usr/share/guile/site/slibcat
rmdir --ignore-fail-on-non-empty usr/share/guile/site
rmdir --ignore-fail-on-non-empty usr/share/guile
fi
exit 0
This seems to be wrong, it should test for /usr/bin/guile1 instead of /usr/bin/guile. As an update consists of the installation of the new version followed by the uninstall of the old version, the postun trigger gets run.
mls: Nice: so a package can trigger a script when another one is being uninstalled? Nice one... and good luck in debugging... In this case, the right thing seems to be to add slib (fixed) to the update stack as well. Having the %post script putting the link bank in place should work.. and %triggerpostung checking on the right file should also help.. (Hope I got this all right) home:dimstar:bnc780827 contains a fixed slib package, which triggers this issue in first place. After having the system 'broken' like this, installing this slib package recovers the machine and gnucash works. Having this version of slib installed before the guile1 update dripples in also works and no longer breaks the install. This has been submitted as SR 136267 to the maintenance team. openSUSE-RU-2012:1298-1: An update that has one recommended fix can now be installed. Category: recommended (low) Bug References: 780827 CVE References: Sources used: openSUSE 12.2 (src): slib-3b3-9.4.1 This should be solved now.. let's close. All, THANKS for your patience and help in debugging this |