From: srs5694 Date: Fri, 29 Jan 2016 13:47:54 +0000 (-0500) Subject: Improvements to refind-mkdefault, including packaging files. X-Git-Url: https://code.delx.au/refind/commitdiff_plain/1f5b3c00f34cd3bfa077b2110d383632295efbd0 Improvements to refind-mkdefault, including packaging files. --- diff --git a/debian/copyright b/debian/copyright index e274f2e..d1f0300 100644 --- a/debian/copyright +++ b/debian/copyright @@ -31,6 +31,10 @@ Files: mkrlconf Copyright: 2012-2015 Roderick W. Smith License: GPL-3+ +Files: refind-mkdefault +Copyright: 2016 Roderick W. Smith +License: GPL-3+ + Files: mountesp Copyright: 2015 Roderick W. Smith License: GPL-3+ diff --git a/debian/refind.install b/debian/refind.install index a036f04..0d898ed 100644 --- a/debian/refind.install +++ b/debian/refind.install @@ -7,6 +7,7 @@ icons/README usr/share/refind/refind/icons keys etc/refind.d mkrlconf usr/sbin mvrefind usr/sbin +refind-mkdefault usr/sbin refind-install usr/share/refind refind.conf-sample usr/share/refind/refind refind/refind*.efi usr/share/refind/refind diff --git a/mkdistrib b/mkdistrib index bb7fbd0..6e46866 100755 --- a/mkdistrib +++ b/mkdistrib @@ -70,8 +70,8 @@ MakeTarball() { cp --preserve=timestamps -r icons/licenses/* $TargetDir/refind-$Version/icons/licenses/ cp --preserve=timestamps -r icons/svg/* $TargetDir/refind-$Version/icons/svg/ cp -a debian docs images keys fonts banners include EfiLib libeg mok net refind filesystems \ - gptsync refind.spec refind-install mkrlconf mvrefind mountesp CREDITS.txt NEWS.txt BUILDING.txt \ - COPYING.txt LICENSE.txt README.txt refind.inf Make.common Makefile \ + gptsync refind.spec refind-install refind-mkdefault mkrlconf mvrefind mountesp CREDITS.txt \ + NEWS.txt BUILDING.txt COPYING.txt LICENSE.txt README.txt refind.inf Make.common Makefile \ refind.conf-sample $TargetDir/refind-$Version # Go there and prepare a souce code tarball.... @@ -143,7 +143,7 @@ MakeZipBinary() { cp --preserve=timestamps gptsync/gptsync_x64.efi refind-bin-$Version/refind/tools_x64/ fi cp refind-bin-$Version/refind/refind_x64.efi $StartDir - cp -a docs keys banners fonts COPYING.txt LICENSE.txt README.txt CREDITS.txt NEWS.txt refind-install mkrlconf mvrefind mountesp refind-bin-$Version + cp -a docs keys banners fonts COPYING.txt LICENSE.txt README.txt CREDITS.txt NEWS.txt refind-install refind-mkdefault mkrlconf mvrefind mountesp refind-bin-$Version # Prepare the final .zip file zip -9r ../refind-bin-$Version.zip refind-bin-$Version @@ -223,6 +223,7 @@ rm -rf debian/refind debian/*.log # Convert man pages to HTML form man2html docs/man/mkrlconf.8 > docs/refind/mkrlconf.html man2html docs/man/mvrefind.8 > docs/refind/mvrefind.html +man2html docs/man/refind-mkdefault.8 > docs/refind/refind-mkdefault.html man2html docs/man/refind-install.8 > docs/refind/refind-install.html mkdir -p ../snapshots/$Version diff --git a/refind-mkdefault b/refind-mkdefault index 325d382..7f673db 100755 --- a/refind-mkdefault +++ b/refind-mkdefault @@ -23,6 +23,7 @@ along with this program. If not, see . """ import os +import shlex import shutil import sys @@ -37,7 +38,7 @@ def discover_data(): boot_entries, boot_order """ command = "efibootmgr -v" - bootinfo_bytes = (Popen(command, stdout=PIPE, shell=True) + bootinfo_bytes = (Popen(shlex.split(command), stdout=PIPE) .communicate()[0]) bootinfo = (bootinfo_bytes.decode(encoding="utf-8", errors="ignore") .splitlines()) @@ -142,6 +143,8 @@ def set_refind_first(boot_entries, boot_order, label): def save_changes(boot_order): """Save an altered boot_order. + :param boot_order: + List of boot numbers as strings, in boot order :returns: True if there were no problems, False otherwise """ @@ -149,7 +152,7 @@ def save_changes(boot_order): command = "efibootmgr -o {}".format(order_string) print("Setting a boot order of {}".format(order_string)) try: - Popen(command, stdout=PIPE, shell=True).communicate()[0] + Popen(shlex.split(command), stdout=PIPE).communicate()[0] except: print("An error occurred setting the new boot order!") @@ -160,7 +163,7 @@ def main(): parser = ArgumentParser(description=description) parser.add_argument("-L", "--label", default="rEFInd", - help=("The label used to identify rEFInd")) + help=("The label used to identify rEFInd (default=rEFInd)")) args = parser.parse_args() if sys.platform != "linux": @@ -170,7 +173,7 @@ def main(): print("The efibootmgr utility is not installed; exiting!") return(1) if not os.geteuid() == 0: - print("You must be root to run this program") + print("This program must be run as root (or via sudo); exiting!") return(1) problems = False @@ -178,12 +181,12 @@ def main(): boot_entries, boot_order = discover_data() if boot_entries == {}: problems = True - print("No EFI boot entries available. This may indicate a firmware problem.") + print("No EFI boot entries are available. This may indicate a firmware problem.") if boot_order == []: problems = True print("The EFI BootOrder variable is not available. This may indicate a firmware") print("problem.") - if (boot_entries != {} and boot_order != [] and + if (not problems and set_refind_first(boot_entries, boot_order, args.label)): save_changes(boot_order) else: diff --git a/refind.spec b/refind.spec index 18b8b6e..29bbd84 100644 --- a/refind.spec +++ b/refind.spec @@ -99,6 +99,7 @@ mkdir -p $RPM_BUILD_ROOT/usr/share/man/man8 install -Dp -m0644 docs/man/mvrefind.8 $RPM_BUILD_ROOT/usr/share/man/man8 install -Dp -m0644 docs/man/mkrlconf.8 $RPM_BUILD_ROOT/usr/share/man/man8 install -Dp -m0644 docs/man/refind-install.8 $RPM_BUILD_ROOT/usr/share/man/man8 +install -Dp -m0644 docs/man/refind-mkdefault.8 $RPM_BUILD_ROOT/usr/share/man/man8 # Copy keys to /etc/refind.d/keys mkdir -p $RPM_BUILD_ROOT/etc/refind.d/keys @@ -108,6 +109,7 @@ install -Dp -m0644 keys/* $RPM_BUILD_ROOT/etc/refind.d/keys mkdir -p $RPM_BUILD_ROOT/usr/sbin install -Dp -m0755 mkrlconf $RPM_BUILD_ROOT/usr/sbin/ install -Dp -m0755 mvrefind $RPM_BUILD_ROOT/usr/sbin/ +install -Dp -m0755 refind-mkdefault $RPM_BUILD_ROOT/usr/sbin/ ln -sr $RPM_BUILD_ROOT/usr/share/refind-%{version}/refind-install $RPM_BUILD_ROOT/usr/sbin # Copy banners and fonts to /usr/share/refind-%{version} @@ -124,6 +126,7 @@ cp -a fonts $RPM_BUILD_ROOT/usr/share/refind-%{version}/ /usr/sbin/mkrlconf /usr/sbin/mvrefind /usr/sbin/refind-install +/usr/sbin/refind-mkdefault /usr/share/refind-%{version} /etc/refind.d/