bugGNU GRUB - Bugs: bug #39721, File conflicts between...

 
 

You are not allowed to post comments on this tracker with your current authentication level.

bug #39721: File conflicts between installations with different prefixes

Submitted by:  Josh Triplett <joshtriplett>
Submitted on:  Wed 07 Aug 2013 09:09:47 PM UTC  
 
Category: InstallationSeverity: Major
Priority: 5 - NormalItem Group: Software Error
Status: InvalidPrivacy: Public
Assigned to: NoneOriginator Name: 
Open/Closed: ClosedRelease: 
Release: Bazaar - trunkReproducibility: Every Time
Planned Release: None

(Jump to the original submission Jump to the original submission)

Thu 08 Aug 2013 04:56:09 AM UTC, comment #7:

Yes, binaries are identical (other than some debug information which may contain e.g. time).

Vladimir Serbinenko <phcoder>
Project Administrator
Thu 08 Aug 2013 04:17:55 AM UTC, comment #6:

The binaries in bin and sbin installed for any grub target will work for any other grub target installed to the same prefix?

Josh Triplett <joshtriplett>
Thu 08 Aug 2013 04:14:14 AM UTC, comment #5:

Just install both of them:
./configure --with-platform=A
make
sudo make install
make distclean
./configure --with-platform=B
make
sudo make install

Vladimir Serbinenko <phcoder>
Project Administrator
Thu 08 Aug 2013 02:35:45 AM UTC, comment #4:

Then what is the recommended approach for installing two copies of grub to the same prefix with different target platforms?

(Note that I'm currently using program-transform-name for this successfully, because I don't actually need to run any program that uses grub-mkconfig_lib.)

Josh Triplett <joshtriplett>
Thu 08 Aug 2013 01:41:17 AM UTC, comment #3:

program-transform-name isn't intended for coexistance of different platforms it has been misused for this in earlier versions until it was said to our attention that its use is different and should transform only program names. Since grub-mkconfig_lib is not a program its name shouldn't be transformed.
There is no need to add such prefixes in current versions as files with identical names between platforms have identical contents.
Debian packages common files into grub-common and the rest in platform-specific packages.

Vladimir Serbinenko <phcoder>
Project Administrator
Thu 08 Aug 2013 01:28:38 AM UTC, comment #2:

The data below comes from bzr revno 5086.

~/src/grub-bzr$ ./configure --program-prefix=i386-pc- --target=i386 --with-platform=pc && make DESTDIR=/tmp/grub-i386-pc-inst install
[...]
~/src/grub-bzr$ make distclean # build broken with missing headers otherwise
[...]
~/src/grub-bzr$ ./configure --program-prefix=x86_64-efi- --target=x86_64 --with-platform=efi && make DESTDIR=/tmp/grub-x86_64-efi-inst install
[...]
~/src/grub-bzr$ diff -u /tmp/grub-i386-pc-inst/usr/local/share/grub/grub-mkconfig_lib /tmp/grub-x86_64-efi-inst/usr/local/share/grub/grub-mkconfig_lib
--- /tmp/grub-i386-pc-inst/usr/local/share/grub/grub-mkconfig_lib 2013-08-07 18:22:37.868750934 -0700
+++ /tmp/grub-x86_64-efi-inst/usr/local/share/grub/grub-mkconfig_lib 2013-08-07 18:25:15.563135989 -0700
@@ -23,10 +23,10 @@
pkgdatadir="${datadir}/grub"

if test "x$grub_probe" = x; then
- grub_probe="${sbindir}/i386-pc-grub-probe"
+ grub_probe="${sbindir}/x86_64-efi-grub-probe"
fi
if test "x$grub_mkrelpath" = x; then
- grub_mkrelpath="${bindir}/i386-pc-grub-mkrelpath"
+ grub_mkrelpath="${bindir}/x86_64-efi-grub-mkrelpath"
fi

if which gettext >/dev/null 2>/dev/null; then

So, grub-mkconfig_lib depends on the program prefix, yet does not itself include that prefix, so two installations with different program prefixes will conflict.

Josh Triplett <joshtriplett>
Wed 07 Aug 2013 10:28:25 PM UTC, comment #1:

I don't see how grub-mkconfig_lib would be different between platforms. In my tests they are identical. Please show the difference.

Vladimir Serbinenko <phcoder>
Project Administrator
Wed 07 Aug 2013 09:09:47 PM UTC, original submission:

After configuring GRUB with ./configure --program-prefix=prefix--- --prefix=/tmp/grub2-inst , it still installs several files that have neither the prefix nor the target platform in the path. In particular, grub-mkconfig_lib differs between platforms yet gets installed to /usr/share/grub/ .

I ran into this when building GRUB for both 32-bit and 64-bit EFI, installing the former with a prefix; I encountered file conflicts between the resulting two packages.

Josh Triplett <joshtriplett>

 

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by phcoder (Posted a comment)
  • -unavailable- added by joshtriplett (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 2 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Thu 08 Aug 2013 01:41:17 AM UTCphcoderStatusNone=>Invalid
      Open/ClosedOpen=>Closed

    Back to the top


    Powered by Savane 3.1-cleanup1