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+
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
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....
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
# 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
"""
import os
+import shlex
import shutil
import sys
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())
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
"""
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!")
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":
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
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:
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
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}
/usr/sbin/mkrlconf
/usr/sbin/mvrefind
/usr/sbin/refind-install
+/usr/sbin/refind-mkdefault
/usr/share/refind-%{version}
/etc/refind.d/