Skip to content

Commit

Permalink
packaging: add a systemd unit to run every boot
Browse files Browse the repository at this point in the history
This enables bootloader updates automatically on boot.
Note that the service is intentionally not enabled by default,
it should be up to the distribution to add a systemd preset if
auto-update for the bootloader is desired.

Right now RAID setups are not supported but see [1] for an example
in coreos.

[1] coreos/fedora-coreos-config#3042
  • Loading branch information
jbtrystram committed Sep 3, 2024
1 parent 6fcc010 commit 43bcccb
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 1 deletion.
3 changes: 3 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@ install-grub-static:
install -m 644 -D -t ${DESTDIR}$(PREFIX)/lib/bootupd/grub2-static src/grub2/*.cfg
install -m 755 -d ${DESTDIR}$(PREFIX)/lib/bootupd/grub2-static/configs.d

install-systemd-unit:
install -m 644 -D -t "${DESTDIR}$(PREFIX)/lib/systemd/system/" contrib/packaging/bootupctl-update.service

bin-archive:
rm target/inst -rf
$(MAKE) install install-grub-static DESTDIR=$$(pwd)/target/inst
Expand Down
13 changes: 13 additions & 0 deletions contrib/packaging/bootupctl-update.service
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
[Unit]
Description=Update Bootloader on boot
Documentation=https://github.com/coreos/bootupd
ConditionPathExists=/dev/disk/by-label/EFI-SYSTEM

[Service]
Type=oneshot
ExecStart=/usr/bin/bootupctl update
RemainAfterExit=yes
MountFlags=slave

[Install]
WantedBy=multi-user.target
5 changes: 4 additions & 1 deletion contrib/packaging/bootupd.spec
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ BuildRequires: cargo
BuildRequires: git
BuildRequires: openssl-devel
BuildRequires: systemd-devel
BuildRequires: systemd-rpm-macros

%description
%{summary}
Expand All @@ -31,6 +32,7 @@ BuildRequires: systemd-devel
%{_bindir}/bootupctl
%{_libexecdir}/bootupd
%{_prefix}/lib/bootupd/grub2-static/
%{_unitdir}/bootupctl-update.service

%prep
%autosetup -n %{crate}-%{version} -p1 -Sgit
Expand All @@ -50,7 +52,8 @@ cargo build --release
%install
%make_install INSTALL="install -p -c"
make install-grub-static DESTDIR=%{?buildroot} INSTALL="%{__install} -p"
make install-systemd-unit DESTDIR=%{?buildroot} INSTALL="%{__install} -p"

%changelog
* Tue Oct 18 2022 Colin Walters <[email protected]> - 0.2.8-3
- Dummy changelog
- Dummy changelog

0 comments on commit 43bcccb

Please sign in to comment.