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

Submitter:  Josh Triplett <joshtriplett>
Submitted:  Wed 07 Aug 2013 09:09:47 PM UTC
   
 
Category:  Installation Severity:  Major
Priority:  5 - Normal Item Group:  Software Error
Status:  Invalid Privacy:  Public
Assigned to:  None Originator Name: 
Open/Closed:  Closed Release:  Bazaar - trunk
Release:  Reproducibility:  Every Time
Planned Release:  None

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>
Group 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>
Group 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>
Group 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>
Group 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>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

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

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

     

    Follow 2 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2013-08-08 phcoder StatusNone Invalid
        Open/ClosedOpen Closed

    Back to the top

    Powered by Savane 3.13-3230.
    Corresponding source code