Bug 5767 - File conflicts - Failed upgrade from mga1 to Pre RC DVD 64 (guile)
Summary: File conflicts - Failed upgrade from mga1 to Pre RC DVD 64 (guile)
Status: RESOLVED OLD
Alias: None
Product: Mageia
Classification: Unclassified
Component: RPM Packages (show other bugs)
Version: 2
Hardware: x86_64 Linux
Priority: High critical
Target Milestone: ---
Assignee: Mageia Bug Squad
QA Contact:
URL:
Whiteboard:
Keywords:
: 5969 (view as bug list)
Depends on:
Blocks: 3342
  Show dependency treegraph
 
Reported: 2012-05-06 03:02 CEST by claire robinson
Modified: 2013-08-27 17:05 CEST (History)
8 users (show)

See Also:
Source RPM: guile1.8-1.8.8-11.mga2.src.rpm
CVE:
Status comment:


Attachments
report.bug.zip (160.72 KB, application/zip)
2012-05-06 03:03 CEST, claire robinson
Details
report.bug.gz (401.38 KB, application/x-gzip)
2012-05-09 16:55 CEST, claire robinson
Details
lilypond automatically pull-ins (26.52 KB, image/png)
2012-05-13 17:15 CEST, Thomas Spuhler
Details

Description claire robinson 2012-05-06 03:02:53 CEST
I was having lots of problems with USB grinding to a halt so burned an actual DVD. That seemed to grind to a halt too.

It reached a point where the upgrade was failing on 90 something conflicts and missing deps.

Please find attached report.bug

I hope it is useful and not just a symptom of a possible problem with my system.

I will try this again tomorrow.
Comment 1 claire robinson 2012-05-06 03:03:38 CEST
Created attachment 2192 [details]
report.bug.zip
claire robinson 2012-05-06 03:04:11 CEST

CC: (none) => ennael1

claire robinson 2012-05-06 03:04:24 CEST

CC: (none) => tmb

Comment 2 Dave Hodgins 2012-05-06 05:11:42 CEST
First thing I notice is that guile1.8 needs have a provides added for guiel.

* promoting guile1.8-1.8.8-11.mga2.x86_64 because of conflict above
* installed lib64guile17-1.8.7-5.mga1.x86_64 is conflicting because of unsatisfied guile[== 1.8.7]
* promoting lib64guile17-1.8.8-11.mga2.x86_64 because of conflict above
* installed aisleriot-2.32.1-2.mga1.x86_64 is conflicting because of unsatisfied guile
* installed gnucash-2.4.5-1.mga1.x86_64 is conflicting because of unsatisfied guile[>= 1.6]

It then selects guile-2.0.5-4.mga2.x86_64 to satisfy the libraries required
for aislerot, but guile coflicts with guile1.8.

Either guile1.8 needs to have a provides added, so it provides guile,
or guile1.8 needs to be removed so that guile will be used.

CC: (none) => davidwhodgins
Source RPM: (none) => guile1.8-1.8.8-11.mga2.src.rpm

Comment 3 Dave Hodgins 2012-05-06 05:16:30 CEST
In addition, the package bsf needs to be added to the iso imaage,
as the lack of it is causing a chain of packages to be unselected,
starting with bsh.
Comment 4 Manuel Hiebel 2012-05-06 11:03:13 CEST
mitya, please see comment 2

CC: (none) => mitya

Comment 5 Dimitri Jakov 2012-05-06 22:29:29 CEST
The guile and guile1.8 packages do indeed conflict; they contain a command-line interpreter and corresponding man pages. For applications using Guile as a scripting engine, these should not be required anymore. What should be really required is guile[1.8]-runtime and libguile{17,2.0_22} - these are fully parallel installable. guile[1.8]-runtime has been recently split off the main guile[1.8] package, just to allow parallel installation of packages that require different versions of Guile. In fact, requiring libguile{...} is enough, because it will pull guile{...}-runtime package itself.
claire robinson 2012-05-08 16:37:37 CEST

Summary: Failed upgrade from mga1 to Pre RC DVD 64 => File conflicts - Failed upgrade from mga1 to Pre RC DVD 64

Comment 6 claire robinson 2012-05-08 17:11:43 CEST
Is there any progress for this? 

Sorry to ping so soon but we are short of time.
Manuel Hiebel 2012-05-08 21:26:02 CEST

Blocks: (none) => 3342

Comment 7 claire robinson 2012-05-09 16:16:38 CEST
Still present in RC release - http://dl.dropbox.com/u/4147101/DSC01048.JPG
Comment 8 claire robinson 2012-05-09 16:55:50 CEST
Created attachment 2231 [details]
report.bug.gz
Comment 9 claire robinson 2012-05-09 18:51:57 CEST
This resulted in over 1000 packages not being upgraded.

Removing guile before upgrading removes aisleriot, gnome-games, gnucash, lib64gnucash0 along with lib64guile17 and guile itself.

Doing so allowed the upgrade to complete.
claire robinson 2012-05-09 18:52:18 CEST

Priority: Normal => release_blocker

Manuel Hiebel 2012-05-09 18:59:02 CEST

Summary: File conflicts - Failed upgrade from mga1 to Pre RC DVD 64 => File conflicts - Failed upgrade from mga1 to Pre RC DVD 64 (guile)

Comment 10 Shlomi Fish 2012-05-11 09:04:08 CEST
OK, after I added a "Provides: guile = %{version}-%{release}" to guile1.8, build and upgraded it (building it failed in a non-up-to-date Mageia Cauldron release at the installation stage, and required some packages in Cauldron), I am getting this when trying to upgrade it with gnucash and GNOME AiselRiot installed:

<SHELL>

[root@localhost ~]# urpmi --auto-select
The following packages have to be removed for others to be upgraded:
aisleriot-3.4.1-1.mga2.i586
 (due to missing libguile-2.0.so.22)
guile-2.0.5-4.mga2.i586
 (due to conflicts with guile1.8[>= 1.8.8-7])
guile-runtime-2.0.5-4.mga2.i586
 (due to conflicts with guile[< 2.0.5-2])
libcdio_cdda0-0.82-3.mga1.i586
 (due to conflicts with libudf0-0.83-1.mga2.i586)
libguile2.0_22-2.0.5-4.mga2.i586
 (due to unsatisfied guile-runtime == 2.0.5-4.mga2)
libmesaglut3-devel-7.10.2-4.mga1.i586
 (due to unsatisfied libmesaglut3 == 7.10.2-4.mga1)
libpoppler-glib6-0.16.5-1.mga1.i586
 (due to unsatisfied poppler-gir0.16 >= 0.16.5) (y/N) n

</SHELL>

This is in a i586 Virtual Box virtual machine that was upgrade from 1 to Cauldron with --keep. So it seems that aisleriot cannot be installed along with gnucash in this case. Should we rebuild it against guile-2.0? 

Regards,

-- Shlomi Fish

CC: (none) => shlomif

Comment 11 Dimitri Jakov 2012-05-11 15:06:36 CEST
Shlomi,

Beginning with guile-2.0.5-2 and guile1.8-1.8.8-10, it is not longer needed for gnucash, lilypond, aisleriot etc. to require "guile" or "guile1.8" (these packages do conflict with each other). It is only needed to require libguile2.0_22 or libguile17, usually it's an automatic dependency, and these packages do not conflict. Corresponding guile-runtime (also nonconflicting packages) will be pulled automatically.

Hence, it is safe to remove guile1.8 from Requires: of gnucash and lilypond.
Comment 12 Shlomi Fish 2012-05-11 16:32:40 CEST
(In reply to comment #11)
> Shlomi,
> 
> Beginning with guile-2.0.5-2 and guile1.8-1.8.8-10, it is not longer needed for
> gnucash, lilypond, aisleriot etc. to require "guile" or "guile1.8" (these
> packages do conflict with each other). It is only needed to require
> libguile2.0_22 or libguile17, usually it's an automatic dependency, and these
> packages do not conflict. Corresponding guile-runtime (also nonconflicting
> packages) will be pulled automatically.
> 
> Hence, it is safe to remove guile1.8 from Requires: of gnucash and lilypond.

Thanks, I'll look into preparing updated packages of those.

Regards,

-- Shlomi Fish
Comment 13 Shlomi Fish 2012-05-11 19:31:32 CEST
(In reply to comment #12)
> (In reply to comment #11)
> > Shlomi,
> > 
> > Beginning with guile-2.0.5-2 and guile1.8-1.8.8-10, it is not longer needed for
> > gnucash, lilypond, aisleriot etc. to require "guile" or "guile1.8" (these
> > packages do conflict with each other). It is only needed to require
> > libguile2.0_22 or libguile17, usually it's an automatic dependency, and these
> > packages do not conflict. Corresponding guile-runtime (also nonconflicting
> > packages) will be pulled automatically.
> > 
> > Hence, it is safe to remove guile1.8 from Requires: of gnucash and lilypond.
> 
> Thanks, I'll look into preparing updated packages of those.
> 
> Regards,
> 
> -- Shlomi Fish

OK: bad news. Apparently, the %triggerin -- slib of the guile-1.8 package assumes that guile is in /usr/bin/guile which is guile-2.0 in my case. Therefore, slib is not available there for gnucash to use. When I tried adding a symbolic link manually, I got this crash:

<<<<
shlomif@telaviv1:~$ gnucash
Backtrace:
In unknown file:
   ?: 0* [primitive-load-path "slib/guile.init"]
In /usr/share/guile/1.8/slib/guile.init:
 902: 1* [slib:load "/usr/share/require"]
 554: 2  [save-module-excursion #<procedure #f ()>]
In unknown file:
   ...
   ?: 3  [dynamic-wind #<procedure #f ()> #<procedure #f ()> #<procedure #f ()>]
   ?: 4* [#<procedure #f ()>]
In /usr/share/guile/1.8/slib/guile.init:
 557: 5* (let* ((errinfo #)) (if (and errinfo #) (apply throw errinfo)))
 560: 6  (if (and errinfo (catch # # #)) (apply throw errinfo))
In unknown file:
   ...
   ?: 7  [throw]

/usr/share/guile/1.8/slib/guile.init:560:10: In procedure open-file in expression (if (and errinfo #) (apply throw errinfo)):
/usr/share/guile/1.8/slib/guile.init:560:10: No such file or directory: "/usr/share/require"
shlomif@telaviv1:~$ 
>>>>

So I don't know what to do in order to make gnucash, lilypond and GNOME AisleRiot play nicely together. If anyone has any suggestions or leads, they will be appreciated. But it seems the guile developers are making life hell on the downstream packagers by breaking backward compatibility that way.

Regards,

-- Shlomi Fish
Comment 14 Dimitri Jakov 2012-05-11 20:44:00 CEST
Shlomi,

I'll see two solutions here, both quite viable:

1) we can force slib build during guile RPM build. This assumes BuildRequires: slib for guile and guile1.8. The result will be guile-slib and guile1.8-slib packages, and gnucash will have to require guile1.8-slib instead of slib. It's a hack but it's an easier way;
2) we can make guile and guile1.8 fully parallel installable with the help of alternatives mechanism. This will solve all our problems in one, but will cause us more PITA now.

I'll ask everyone to assess all the pros and cons of each scenario.
Comment 15 Shlomi Fish 2012-05-11 23:03:44 CEST
Hi Dimitri,

(In reply to comment #14)
> Shlomi,
> 
> I'll see two solutions here, both quite viable:
> 
> 1) we can force slib build during guile RPM build. This assumes BuildRequires:
> slib for guile and guile1.8. The result will be guile-slib and guile1.8-slib
> packages, and gnucash will have to require guile1.8-slib instead of slib. It's
> a hack but it's an easier way;

Like I said on IRC I'm in favour of solution #1.

Regards,

-- Shlomi Fish
Comment 16 Thomas Spuhler 2012-05-13 00:58:28 CEST
(In reply to comment #13)
> (In reply to comment #12)
> > (In reply to comment #11)
> > > Shlomi,
> > > 
> > > Beginning with guile-2.0.5-2 and guile1.8-1.8.8-10, it is not longer needed for
> > > gnucash, lilypond, aisleriot etc. to require "guile" or "guile1.8" (these
> > > packages do conflict with each other). It is only needed to require
> > > libguile2.0_22 or libguile17, usually it's an automatic dependency, and these
> > > packages do not conflict. Corresponding guile-runtime (also nonconflicting
> > > packages) will be pulled automatically.
> > > 
> > > Hence, it is safe to remove guile1.8 from Requires: of gnucash and lilypond.
> > 
> > Thanks, I'll look into preparing updated packages of those.
> > 
> > Regards,
> > 
> > -- Shlomi Fish
> 
> OK: bad news. Apparently, the %triggerin -- slib of the guile-1.8 package
> assumes that guile is in /usr/bin/guile which is guile-2.0 in my case.
> Therefore, slib is not available there for gnucash to use. When I tried adding
> a symbolic link manually, I got this crash:
> 
> <<<<
> shlomif@telaviv1:~$ gnucash
> Backtrace:
> In unknown file:
>    ?: 0* [primitive-load-path "slib/guile.init"]
> In /usr/share/guile/1.8/slib/guile.init:
>  902: 1* [slib:load "/usr/share/require"]
>  554: 2  [save-module-excursion #<procedure #f ()>]
> In unknown file:
>    ...
>    ?: 3  [dynamic-wind #<procedure #f ()> #<procedure #f ()> #<procedure #f
> ()>]
>    ?: 4* [#<procedure #f ()>]
> In /usr/share/guile/1.8/slib/guile.init:
>  557: 5* (let* ((errinfo #)) (if (and errinfo #) (apply throw errinfo)))
>  560: 6  (if (and errinfo (catch # # #)) (apply throw errinfo))
> In unknown file:
>    ...
>    ?: 7  [throw]
> 
> /usr/share/guile/1.8/slib/guile.init:560:10: In procedure open-file in
> expression (if (and errinfo #) (apply throw errinfo)):
> /usr/share/guile/1.8/slib/guile.init:560:10: No such file or directory:
> "/usr/share/require"
> shlomif@telaviv1:~$ 
> >>>>
> 
> So I don't know what to do in order to make gnucash, lilypond and GNOME
> AisleRiot play nicely together. If anyone has any suggestions or leads, they
> will be appreciated. But it seems the guile developers are making life hell on
> the downstream packagers by breaking backward compatibility that way.
> 
> Regards,
> 
> -- Shlomi Fish

libguile1.8 is needed to build lilypond.

CC: (none) => thomas

Comment 17 Thomas Spuhler 2012-05-13 17:14:34 CEST
guile1.8 isn't needed by lilypond. I deleted all packages that have the name guile in it and the attachment shows what lilypond automatically pulls in. Guile1.8 isn't among them, only the libraries and runtime.
Comment 18 Thomas Spuhler 2012-05-13 17:15:36 CEST
Created attachment 2294 [details]
lilypond automatically pull-ins
Comment 19 claire robinson 2012-05-17 00:06:16 CEST
Upgrade completed with gnome-games and aisleriot so closing as fixed, thanks.

$ rpm -qa | grep guile
guile-runtime-2.0.5-4.mga2
guile-2.0.5-4.mga2
lib64guile2.0_22-2.0.5-4.mga2
guile1.8-runtime-1.8.8-11.mga2
lib64guile17-1.8.8-11.mga2

$ rpm -q gnome-games
gnome-games-3.4.1-1.mga2

$ rpm -q aisleriot
aisleriot-3.4.1-1.mga2

Status: NEW => RESOLVED
Resolution: (none) => FIXED

Comment 20 claire robinson 2012-05-17 08:43:25 CEST
So I guess not quite fixed in prerelease 2 DVD (2nd set)

https://bugs.mageia.org/show_bug.cgi?id=5942#c6

Status: RESOLVED => REOPENED
Resolution: FIXED => (none)

Comment 21 Anne Nicolas 2012-05-19 00:39:00 CEST
Please use 3rd set
Comment 22 claire robinson 2012-05-19 02:38:59 CEST
Please see bug 5969
Comment 23 claire robinson 2012-05-19 14:12:51 CEST
Appears to still be current using 3rd set. See bug 5969
Comment 24 Manuel Hiebel 2012-05-19 18:08:52 CEST
yep still valid, but the upgrade continue here, without windows errors (only in the ddebug)
Comment 25 Marja Van Waes 2012-05-26 13:09:43 CEST
Hi,

This bug was filed against cauldron, but we do not have cauldron at the moment.

Please report whether this bug is still valid for Mageia 2.

Thanks :)

Cheers,
marja

Keywords: (none) => NEEDINFO

Comment 26 claire robinson 2012-07-06 17:14:49 CEST
*** Bug 5969 has been marked as a duplicate of this bug. ***
Comment 27 claire robinson 2012-07-06 17:29:53 CEST
I think, in its more minor form as seen in bug 5969 this is still valid.

I'm not sure we should keep it open though.

WDYT?
claire robinson 2012-07-06 17:30:30 CEST

Keywords: NEEDINFO => (none)

Comment 28 James Kerr 2012-10-04 18:25:39 CEST
I think this problem may be the cause of bug#7283
Comment 29 Robert Riches 2012-11-17 06:35:50 CET
Add one more user stuck on this one.  I want to install both lilypond and gnucash.  Because my wife is a composer, I need lilypond more than I need gnucash.

CC: (none) => rmriches

Manuel Hiebel 2012-11-24 18:47:07 CET

Priority: release_blocker => High
Version: Cauldron => 2

Comment 30 Samuel Verschelde 2013-08-27 17:05:38 CEST
Closing. More precise bug reports have been opened since about those problems.

Status: REOPENED => RESOLVED
CC: (none) => stormi
Resolution: (none) => OLD


Note You need to log in before you can comment on or make changes to this bug.