Description of problem: Gnucash and Lilypond cannot be installed together in Mageia 3. When Gnucash is installed, Lilypond cannot be. When Lilypond is installed, Gnucash is blocked. Trying to install the i586 version of Lilypond on an x86_64 system is no solution as guile-2.0.6-3.mga3.x86_64.rpm is a dependency! Version-Release number of selected component (if applicable): How reproducible: 100%. Steps to Reproduce: 1. # urpmi lilypond 2. # urpmi gnucash The following packages have to be removed for others to be upgraded: guile-2.0.6-3.mga3.x86_64 (due to conflicts with guile1.8[>= 1.8.8-7]) lilypond-2.16.1-3.mga3.x86_64 (due to missing guile) (y/N) Reproducible: Steps to Reproduce:
Keywords: (none) => TriagedCC: (none) => mitya, thomas
Hardware: i586 => x86_64
This conflict in the Mageia repositories should be incredibly easy to fix, assuming that Gnucash can be recompiled against guile 2.0.3: [root@localhost ~]# urpmq guile1.8 --whatrequires --summary gnucash : Application to keep track of your finances ( 2.4.11-4.mga3 ) guile1.8 : GNU implementation of Scheme for application extensibility ( 1.8.8-12.mga3 ) gnucash : Application to keep track of your finances ( 2.4.11-4.mga3 ) [root@localhost ~]# urpmq guile --whatrequires --summary guile : GNU implementation of Scheme for application extensibility ( 2.0.6-3.mga3 ) lilypond : Program for printing sheet music ( 2.16.1-3.mga3 ) lilypond : Program for printing sheet music ( 2.16.1-3.mga3 ) [root@localhost ~]# urpmq guile1.8 guile --conflicts guile1.8: guile[>= 2.0.3] guile: guile1.8[>= 1.8.8-7] [root@localhost ~]#
Ok, Gnucash 2.4.x does not support Guile 2.0 (from http://www.gnucash.org/). But I forced Lilypond to use Guile 1.8 by downloading it and using rpm to install it, as shown below. Limited testing shows that Lilypond works with this older Guile version. Maybe it is best to make the Guile dependency of Lilypond not so strict, so that Gnucash can coexist with it. Here is how to install both Lilypond and Gnucash, after first installing Gnucash with 'urpmi gnucash': [root@localhost ~]# urpmi lilypond --no-install The following packages have to be removed for others to be upgraded: gnucash-2.4.11-4.mga3.x86_64 (due to missing guile1.8, due to missing libgnc-qof.so.1()(64bit), due to missing libgnc-core-utils.so.0()(64bit), due to missing libgnc-backend-sql.so.0()(64bit), due to missing libgnc-business-ledger.so.0()(64bit), due to missing libgnc-module.so.0()(64bit), due to missing libgnc-backend-xml-utils.so.0()(64bit), due to missing libgnc-gnome.so.0()(64bit)) guile1.8-1.8.8-12.mga3.x86_64 (due to conflicts with guile[>= 2.0.3]) lib64gnucash0-2.4.11-4.mga3.x86_64 (due to missing libgncmod-dialog-tax-table.so()(64bit), due to missing libgncmod-gnome-search.so()(64bit), due to missing libgncmod-calculation.so()(64bit), due to missing libgncmod-register-gnome.so()(64bit), due to missing libgncmod-ledger-core.so()(64bit), due to missing libgncmod-engine.so()(64bit), due to missing libgncmod-register-core.so()(64bit), due to missing libgncmod-report-system.so()(64bit), due to missing libgncmod-gnome-utils.so()(64bit), due to missing libgncmod-report-gnome.so()(64bit), due to missing libgncmod-html.so()(64bit), due to missing libgncmod-app-utils.so()(64bit)) (y/N) y To satisfy dependencies, the following packages are going to be installed: Package Version Release Arch (medium "Core Release (distrib1)") guile 2.0.6 3.mga3 x86_64 lilypond 2.16.1 3.mga3 x86_64 50MB of disk space will be freed. 4.8MB of packages will be retrieved. Proceed with the installation of the 2 packages? (Y/n) y $MIRRORLIST: media/core/release/guile-2.0.6-3.mga3.x86_64.rpm $MIRRORLIST: media/core/release/lilypond-2.16.1-3.mga3.x86_64.rpm [root@localhost ~]# rpm -ivh --nodeps /var/cache/urpmi/rpms/lilypond-2.16.1-3.mga3.x86_64.rpm Preparing... ################################# [100%] Updating / installing... 1:lilypond-0:2.16.1-3.mga3 ################################# [100%] install-info: warning: no info dir entry in `/usr/share/info/lilypond-learning.info.xz' install-info: warning: no info dir entry in `/usr/share/info/music-glossary.info.xz' [root@localhost ~]#
CC: (none) => fundawang, stormiSource RPM: (none) => lilypond
Source RPM: lilypond => guile
We went through a guile dep issue with mga2 Lilypond and Gnucash are the only two packages we have that still require guile1.8 which is actaully not maintained. Lilypond is kind of working on to move to guile 2 entirely, but on a very slow pace. GnuCash 2.5.4 (Unstable) Release - 2013-08-04 can be compiled using guile-2. Maybe something we could think for Mageia4/5 Lilypond needs libguile < 2 to build but it runs with guile-2.0.6 This isn't a require built into the spec file, but must be an auto-requires. $ rpm -qa |grep guil guile1.8-runtime-1.8.8-12.mga3 guile-runtime-2.0.6-3.mga3 guile-2.0.6-3.mga3 lib64guile17-1.8.8-12.mga3 lib64guile2.0_22-2.0.6-3.mga3 I hate to put a require into Lilypond to use guile < 2 since that will create more problems than it solves.
I have been successfully running both Lilypond and Gnucash with guile1.8 for 15 days (since comment #3). Using the commands in that comment to force this, the packages I have installed are: [root@localhost ~]# rpm -q guile package guile is not installed [root@localhost ~]# rpm -q guile1.8 guile1.8-1.8.8-12.mga3 [root@localhost ~]# rpm -q lilypond lilypond-2.16.1-3.mga3 [root@localhost ~]# rpm -q gnucash gnucash-2.4.11-4.mga3 [root@localhost ~]# I have seen no problems running Lilypond with guile1.8. Also, other distributions are using newer Lilypond versions with old Guile1 versions: - Fedora 19 uses Lilypond 2.16.2 (compared to 2.16.1 in Mageia 3) and the dependency is guile1.8, not 2.0, see http://pkgs.org/fedora-19/fedora-i386/lilypond-2.16.2-2.fc19.i686.rpm.html. Rawhide uses Lilypond 2.17.24 with Guile 1.8 as well (http://rpmfind.net//linux/RPM/fedora/devel/rawhide/x86_64/l/lilypond-2.17.24-1.fc20.x86_64.html). - OpenSUSE developement (http://rpmfind.net//linux/RPM/opensuse/factory/x86_64/lilypond-2.17.24-1.1.x86_64.html). This uses a much newer Lilypond version with Guile 1.8. The official release with Lilypond 2.16.1 also uses this Guile version (http://rpmfind.net//linux/RPM/opensuse/12.3/x86_64/lilypond-2.16.1-3.1.1.x86_64.html). To me this looks like Mageia jumped the gun in bundling Guile2! Gnucash and Lilypond are the only packages with a Guile dependency. GNU TeXmacs is another program in Mageia that uses Guile, but it not a dependency: [root@localhost ~]# urpmq texmacs --whatrequires --summary texmacs : WYSIWYW scientific text editor ( 1.0.7.16-3.mga3 ) [root@localhost ~]# urpmq texmacs -d | grep guile guile1.8-runtime lib64guile17 [root@localhost ~]# Guile2 seems to have a Python3 complex! Though you can't have Guile1 and Guile2 on the same system.
(In reply to Thomas Spuhler from comment #3) > GnuCash 2.5.4 (Unstable) Release - 2013-08-04 can be compiled using guile-2. > Maybe something we could think for Mageia4/5 gnucash 2.6.0 is target at Dec 2013, which far more later than our version freeze. But considering it is the last package need guile 1.8, I'm happy pushing it into cauldron, and upgrade it into 2.6.0 in updates. Regards.
Thanks Funda. I think this is a balanced approach.
I've pushed most of the packages into cauldron to build with guile2.0, including new gnucash. Now the only package requiring guile 1.8 is lilypond, which cannot be fixed in the near future, judging from upstream. denemo is built with guile 1.8 because it requires lilypond, but it could be built against guile 2.0.
lilypond-2.16.1-3.mga3 is built with guile1.8, but requiring guile2.0 in it spec file, which is the actural problem.
Status: NEW => ASSIGNEDAssignee: bugsquad => fundawang
Please test lilypond-2.16.1-3.1.mga3 in core/updates_testing.
Source RPM: guile => lilypond
Whiteboard: (none) => updates_testing
As the maintainer I do not agree with this change. We should not force Lilypond to use an old package (guile1.8) if it doesn't need to. The spec file didn't require any of them One can install gnucash first and then install Lilypond. We don't know what other program this will brake that will use guile (2.x)
I've been testing lilypond-2.16.1-3.mga3 with a number of musical scores. As far as I can see, everything is running perfectly with Guile 1.8.
From Comment #1, Lilypond is the only package in all of the mga3 repositories that requires Guile2. But from what I can see, it supports both Guile1 and Guile2. The Guile1/2 libraries and runtimes can co-exist, but the interpreters cannot (at least not with the current package layout). Gnucash is highly unlikely to be Guile2 compatible by the time of Mageia 4 (Comment #5), so waiting for Mageia 5 to use Gnucash and to resolve the Guile1/2 clash is really not an ideal solution. I know Guile1 is old, but is that a reason to stop people from using Gnucash on mga3, and possibly mga4 as well? Is there some other reason for having the Guile2 interpreter on the system? If so, why can this not be repackaged as /usr/bin/guile2 for those who need this? Like I said before, this is similar the Python3 problem. Even now after 5 years since the first Python3 release, Mageia or any distribution cannot use it as default as there is still software catching up with compatibly. To use Python3 instead of Python2 would still be fatal. Guile2 has the same fate, but the software requiring it is catching up much faster. So why not make the Guile2 interpreter sit alongside the Guile1 interpreter, just like Python3 sits alongside Python2. Considering the number of files in the RPMs, this should not be too hard. Searching through the bug tracker, I can now see the following related Gnucash/Lilypond problems due to Guile1/2: https://bugs.mageia.org/show_bug.cgi?id=5767 (mga2) https://bugs.mageia.org/show_bug.cgi?id=7283 (mga2) The change in lilypond-2.16.1-3.1.mga3 by Funda (Comment #9) does not affect any of the Guile1/2 runtime and library packages, so the Guile hell of the past will not come back. The only result of this is that installing Lilypond does not require Gnucash uninstalled and vice versa. If there are any Guile problems remaining, these will be in mga3 independent of this change as the user can install the guile1 or guile2 interpreter as they wish.
lilypond-2.16.1-3.mga3 is built with guile1.8 but requiring guile. See here: http://pkgs.org/mageia-3/mageia-core-release-i586/lilypond-2.16.1-3.mga3.i586.rpm.html It is requiring libguile.so.17 which is provided by guile1.8, but there is another requires on guile (2.0). It is obvioursly wrong. I've fixed it in mga3, so that it now requires the correct package: http://pkgs.org/mageia-3/mageia-core-updates-testing-i586/lilypond-2.16.1-3.1.mga3.i586.rpm.html
Just to add context: Compiling TeXmacs with Guile 2.0 breaks it: https://bugs.mageia.org/show_bug.cgi?id=11735
CC: (none) => ingolf.schaefer
lilypond is still in updates_testing. Was not handled to QA yet by the packager.
The problem is still present in Mageia 4.
Version: 3 => 4
The problem is in reverse in Mageia 4 though! See comment #1 for a comparison: # urpmi lilypond [snip] # urpmi gnucash The following packages have to be removed for others to be upgraded: guile1.8-1.8.8-16.mga4.x86_64 (due to conflicts with guile[>= 2.0.3]) lilypond-2.18.0-1.mga4.x86_64 (due to missing guile1.8) (y/N) y [snip] # urpmi lilypond The following package has to be removed for others to be upgraded: guile-2.0.9-2.mga4.x86_64 (due to conflicts with guile1.8[>= 1.8.8-7]) (y/N) y # urpmq guile1.8 --whatrequires --summary lilypond : Program for printing sheet music ( 2.18.0-1.mga4 ) guile1.8 : GNU implementation of Scheme for application extensibility ( 1.8.8-16.mga4 ) lilypond : Program for printing sheet music ( 2.18.0-1.mga4 ) # urpmq guile --whatrequires --summary gnucash : Application to keep track of your finances ( 2.6.0-1.mga4 ) guile : GNU implementation of Scheme for application extensibility ( 2.0.9-2.mga4 ) gnucash : Application to keep track of your finances ( 2.6.0-1.mga4 )
The solution in Mageia 4 is the same as in comment #2, but this time forcing both applications to use guile 2.0. Both Gnucash and Lilypond in mga 4 appear to run fine on both guile 1.8 and guile 2.0. So first install Gnucash, then run: [root@localhost ~]# urpmi lilypond --no-install The following packages have to be removed for others to be upgraded: gnucash-2.6.0-1.mga4.x86_64 (due to missing guile, due to missing libgnc-core-utils-python.so.0()(64bit), due to missing libgnc-module.so.0()(64bit), due to missing libgnc-backend-sql.so.0()(64bit), due to missing libgnc-backend-xml-utils.so.0()(64bit), due to missing libgnc-qof.so.1()(64bit), due to missing libgnc-business-ledger.so.0()(64bit), due to missing libgnc-core-utils.so.0()(64bit), due to missing libgnc-gnome.so.0()(64bit)) guile-2.0.9-2.mga4.x86_64 (due to conflicts with guile1.8[>= 1.8.8-7]) lib64gnucash0-2.6.0-1.mga4.x86_64 (due to missing libgncmod-report-gnome.so()(64bit), due to missing libgncmod-register-gnome.so()(64bit), due to missing libgncmod-engine.so()(64bit), due to missing libgncmod-register-core.so()(64bit), due to missing libgncmod-app-utils.so()(64bit), due to missing libgncmod-gnome-search.so()(64bit), due to missing libgncmod-report-system.so()(64bit), due to missing libgncmod-gnome-utils.so()(64bit), due to missing libgncmod-html.so()(64bit), due to missing libgncmod-ledger-core.so()(64bit)) (y/N) y To satisfy dependencies, the following packages are going to be installed: Package Version Release Arch (medium "Core Release2") guile1.8 1.8.8 16.mga4 x86_64 lilypond 2.18.0 1.mga4 x86_64 73MB of disk space will be freed. 4.4MB of packages will be retrieved. Proceed with the installation of the 2 packages? (Y/n) y $MIRRORLIST: media/core/release/lilypond-2.18.0-1.mga4.x86_64.rpm $MIRRORLIST: media/core/release/guile1.8-1.8.8-16.mga4.x86_64.rpm [root@localhost ~]# rpm -ivh --nodeps /var/cache/urpmi/rpms/lilypond-2.18.0-1.mga4.x86_64.rpm Preparing... ################################# [100%] Updating / installing... 1:lilypond-2.18.0-1.mga4 ################################# [100%] install-info: warning: no info dir entry in `/usr/share/info/lilypond-learning.info.xz' install-info: warning: no info dir entry in `/usr/share/info/music-glossary.info.xz' [root@localhost ~]#
Lilypond needs Guile1.8 to build. There is an ongoing push to make the Lilypond folks to port it to guile-2, but it hasn't been done so far. If you install it with guile-2, it may work may not.It may help if you complain to the Lilypond folks. Gnucash has been ported to Guile-2 in mga4. In fact Lilypond is the only Mageia package still requiring Guile1.8. Let me tell you I would be the first to drop guile1.8 as it continuous to be a hassle to build. We may just want to drop Lilypond altogether if the Lilypond folks don't move.
> In fact Lilypond is the only Mageia package still requiring Guile1.8. TeXmacs also depends on guile 1.8.
Actually, for comment #21, Lilypond does require the guile1.8-runtime and lib64guile17 packages installed to be able to operate correctly (the guile1.8 package is not needed).
On the lilypond web site, they mention at http://www.lilypond.org/doc/v2.19/Documentation/contributor/requirements-for-running-lilypond : Guile (1.8.2 or newer) In the configure.ac file there is now an option to compile with guile2 (--enable-guile2) I'm asking for a freeze push of lilypond 2.19.15 with guile2 enabled. Please test and report whether this is stable enough for you. My music files are too old to build with this version, I'd need to update them before I think.
CC: (none) => bruno
CC: (none) => true.bugman
This is still an important problem - the package conflict is present in Mageia 5 Cauldron (beta 2)!
There hasn't been a new development release since September 2014. This version still needs guile-1.8 (yes the doc says "or newer" and has for years). I can ask for a freeze push for vers. 2.19.15. but that wouldn't help a lot.
I'm just keeping the infomation in the bug report up to date. It's pretty clear that Lilypond has a long way to go before they merge the dev/guilev2 branch (http://git.savannah.gnu.org/cgit/lilypond.git, http://git.savannah.gnu.org/cgit/lilypond.git/log/?h=dev/guilev2) to allow for Guile 2 support.
The instructions for allowing both Gnucash and Lilypond to run on the same system remain the same (except for the version numbers): # urpmi gnucash # urpmi lilypond --no-install # rpm -ivh --nodeps /var/cache/urpmi/rpms/lilypond-2.19.13-2.mga5.x86_64.rpm # rpm -ivh --nodeps /var/cache/urpmi/rpms/lib64guile17-1.8.8-19.mga5.x86_64.rpm # rpm -ivh --nodeps /var/cache/urpmi/rpms/guile1.8-runtime-1.8.8-19.mga5.x86_64.rpm Select 'y' for all questions. Well, currently because of bug #14996 (https://bugs.mageia.org/show_bug.cgi?id=14996), libgnucash-devel (32-bit) or lib64gnucash-devel (64-bit) needs to be installed as well to allow Gnucash to run.
Seeing that Lilypond seems to run with just lib64guile17 and guile1.8-runtime, and guile1.8 is only needed for building and not running, could guile1.8 be safely removed as a dependency for lilypond? That should allow both Gnucash and Lilypond to be installed simultaneously on Mageia 5 without needing the command line trick in comment #26. Or waiting for lilypond developers who themselves are waiting for guile developers to fix their broken garbage collector (http://thread.gmane.org/gmane.comp.gnu.lilypond.devel/60132). On mga5 beta 3, I have the following installed: # rpm -q gnucash lilypond frescobaldi guile guile-runtime guile1.8 guile1.8-runtime lib64guile17 lib64guile-devel lib64guile2.0_22 gnucash-2.6.5-3.mga5 lilypond-2.19.13-2.mga5 frescobaldi-2.17.1-1.mga5 guile-2.0.9-5.mga5 guile-runtime-2.0.9-5.mga5 package guile1.8 is not installed guile1.8-runtime-1.8.8-19.mga5 lib64guile17-1.8.8-19.mga5 lib64guile-devel-2.0.9-5.mga5 lib64guile2.0_22-2.0.9-5.mga5 Note the absence guile1.8. With this setup, Gnucash works perfectly. And lilypond not only works perfectly on the command line, but it works happily with frescobaldi.
Let me double check. I like this idea. Assigning this bug to myself (I am the maintainer of Lilypond)
Assignee: fundawang => thomas
Lilypond actually doesn't require guile, but guile1.8-runtime does. and Lilypond has as an auto-requires <Requires: guile1.8> # urpmi guile1.8-runtime In order to satisfy the '/usr/bin/guile' dependency, one of the following packages is needed: 1- guile-2.0.9-5.mga5.x86_64: GNU implementation of Scheme for application extensibility (to install) 2- guile1.8-1.8.8-19.mga5.x86_64: GNU implementation of Scheme for application extensibility (to install) What is your choice? (1-2) If guile1.8-runtime doesn't require guile1.8 then that should be changed. I will try to suppress the autorequires, Requires: guile1.8
Edward, thanks for your proposal. I removed the Autorequires guile1.8. I then installed Lilypond. Actually, I installed Frescobaldi, created a score from template (Choir song) and it compiled it fine. I then installed gnucash which asked for deleting guile1.8, which it was supposed to do. I then repeated step 2 (created a score from template (Choir song) and it compiled it fine. Please double check this and if you are successful, I will close this very old bug as fixed.
Since no negative feedback (and it work here) I am closing this as resolved and fixed.
Status: ASSIGNED => RESOLVEDResolution: (none) => FIXED