FS#36151 - [refind-efi] request Arch to package upstream scripts

Attached to Project: Arch Linux
Opened by cfr (cfr42) - Sunday, 14 July 2013, 20:51 GMT
Last edited by Tobias Powalowski (tpowa) - Thursday, 25 July 2013, 19:34 GMT
Task Type Feature Request
Category Packages: Extra
Status Closed
Assigned To Tobias Powalowski (tpowa)
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 3
Private No

Details

Description:
The current package of refind-efi is incomplete in that scripts from upstream are removed from the Arch package. This feature request asks that these scripts be included in Arch's package.

Additional info:
* refind-efi version: 0.7.1-2
* missing scripts (according to upstream developer): install.sh, mkrlconf.sh and mvrefind.sh
* I personally would like the scripts available so that I can automate the update of binary and support files when the package is updated. I am not suggesting that install.sh should be run automatically but only that it should be installed so that it is available to users who wish to use it. For the upstream developer's comments in response to my attempt to automate the update without these scripts, see https://bbs.archlinux.org/viewtopic.php?pid=1298505#p1298505.
* In that comment, the upstream developer expresses a willingness to work with Arch packagers if reasonable modifications are required to accommodate distribution practices.
* Removing the scripts without good reason (as far as I can tell - part of my purpose in filing this is to establish if I'm wrong about this) seems to violate Arch's preference for shipping packages which are as close to upstream vanilla as possible.

Steps to reproduce:
Compare Arch's package with the upstream distribution.
This task depends upon

Closed by  Tobias Powalowski (tpowa)
Thursday, 25 July 2013, 19:34 GMT
Reason for closing:  Fixed
Additional comments about closing:  0.7.1-4
Comment by Rod Smith (srs5694) - Monday, 15 July 2013, 02:50 GMT
I'm the upstream developer, and I'd prefer to see these scripts included in the Arch package. Note that the install.sh script relies on relative file placement; see the layout in my own binary package and test with whatever you do before releasing it. I recommend putting the mvrefind.sh and mkrlconf.sh scripts in the /usr/sbin directory. Also, including the public keys included with rEFInd could be helpful; they may be necessary if a user decides to add shim to the mix on a Secure Boot system.
Comment by Keshav Amburay (the.ridikulus.rat) - Monday, 15 July 2013, 09:07 GMT
@srs5694: The scripts are already included as /usr/bin/refind-{install,mkrlconf,mvrefind} in refind-efi-0.7.1-2 pkg, but due the scripts do not have executable flags in them. That can be fixed in the PKGBUILD. But reg install.sh or refind-install, can you add some options to pass the file locations in /usr/lib and /usr/share to the script instead of relying on the dir structure in refind-bin*.tar.* file or the need to have the script located relative to "refind-dir". THe keys are already installed at /usr/share/refind/keys/ in the pkg.

Reg the non-inclusion of these scripts previously, it was not a deliberate omission, but rather a case of not bothering/looking about those scripts when they were added to refind source. Since refind manual install and sync via system was happening without issues, I simply did not look for any install script for refind. I also thought the install.sh is used by refind build system for tianocore build, as you already know tianocore build is a bit complex (but reliable) compared to gnu-efi build. Arch pkg uses tianocore build.
Comment by Rod Smith (srs5694) - Monday, 15 July 2013, 14:03 GMT
Placing the install.sh script as /usr/bin/refind-install is sub-optimal at best. As I stated in my first comment, this script refers to files using relative file references, and so it *MUST* be placed relative to the binary files in a way that's equivalent to what's in my official binary package -- namely, with "refind" and "keys" subdirectories in the same directory as install.sh, with the "refind" directory holding the refind_x64.efi and refind_ia32.efi files and additional subdirectories for icons, drivers, and tools. Any other placement of install.sh renders the script useless unless/until the user moves the files manually, and of course the average user would have no idea of what the correct placement should be.
Comment by Keshav Amburay (the.ridikulus.rat) - Tuesday, 16 July 2013, 13:42 GMT
Please test the attached PKGBUILD src.tar.gz . I have setup symlinks in /usr/lib/refind/ as per the directory structure of refind-bin* tarball hosted by Rod Smith in sourceforge.net . I modified /usr/bin/refind-install env variables to

ThisDir="/usr/lib/refind/"
RefindDir="/usr/lib/refind/"
ThisScript="/usr/bin/refind-install"

Hope this fixes the issue. Diff to current SVN PKGBUILD also attached.
Comment by Rod Smith (srs5694) - Saturday, 20 July 2013, 02:06 GMT
  • Field changed: Percent Complete (100% → 0%)
Buggy implementation of requested changes. Placement of files in multiple locations (/usr/share/refind and /usr/lib/refind) with symbolic links between the two causes the installation script to fail to copy some files because symbolic links aren't supported on FAT filesystems. I recommend putting everything in /usr/share/refind instead of splitting the files across two locations.

Loading...