FS#22647 - [grub2-common] shouldn't conflict with grub2

Attached to Project: Arch Linux
Opened by Andrea Scarpino (BaSh) - Saturday, 29 January 2011, 00:43 GMT
Last edited by Andrea Scarpino (BaSh) - Saturday, 29 January 2011, 10:54 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Ronald van Haren (pressh)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 3
Private No

Details

Description:
:: Replace grub2 with testing/grub2-bios? [Y/n]
resolving dependencies...
looking for inter-conflicts...
error: unresolvable package conflicts detected
error: failed to prepare transaction (conflicting dependencies)
:: grub2-common and grub2-bios are in conflict (grub2)

Steps to reproduce:
Try to update grub2
This task depends upon

Closed by  Andrea Scarpino (BaSh)
Saturday, 29 January 2011, 10:54 GMT
Reason for closing:  Fixed
Additional comments about closing:  grub2-common 1.99~rc1-2
Comment by Gun Onen (gun26) - Saturday, 29 January 2011, 04:23 GMT
On lines 181 and 182 of the PKGBUILD, in the package_grub2-bios() function, it has:
replaces=('grub2')
provides=('grub2')

which creates the conflict since grub2-common which is also build by this PKGBUILD has, on line 122:
conflicts=('grub2' 'grub')

I'd get rid of that provides= line. It's enough to say that grub2-bios replaces grub2. The conflict goes away if you do.
Comment by Anonymous Submitter - Saturday, 29 January 2011, 05:17 GMT
I think provides=('grub2') creates the problem. I was able to build and install all the four grub2 packages when provides=('grub2') was not added. But replaces line is correct as required. BTW there are no actual file conflicts between grub2-common and grub2-bios, they together replace grub2 1.98 (or grub 0.97) installed in your system.
Comment by Anonymous Submitter - Saturday, 29 January 2011, 05:23 GMT
grub2-common has file conflicts with old grub2, grub2-bios has file conflicts as well as replaces old grub2 (but no conflicts is added to grub2-bios since it is already taken care by grub2-common), but grub2-bios again provides grub2. Here grub2-bios as a provider package for grub2 conflicts with grub2-common. Thus provides=('grub2') is indeed the problem.
Comment by Ronald van Haren (pressh) - Saturday, 29 January 2011, 06:57 GMT
actually having both provides and conflicts is the problem.

conflicts to grub2 should be removed as we won't provide it anymore. provides is needed so we can still do pacman -S grub2.

seems to work in a local repo, packages up shortly.

Loading...