Skip to content

Commit

Permalink
packaging: Add systemd unit to trigger updates on boot
Browse files Browse the repository at this point in the history
Add a systemd service unit to trigger an adoption and update on every
boot.

Note that the service is intentionally not enabled by default as it
should be up to the distribution to add a systemd preset if auto-update
for the bootloader is desired.

This unit does not come with any specific restrictions (i.e. EFI or BIOS
only). For an assesment of the safety of updates as performed by
bootupd, see coreos#454.

Distributiuons should also apply the restrictions (i.e. EFI or BIOS only
for example) as needed as unit files overrides.

Notably, Fedora CoreOS can not yet enable automatic updates until we get
support for the multiple EFI partitions for RAID setups.

See: coreos/fedora-coreos-tracker#1468
See: coreos/fedora-coreos-config#3042

Initial version from: coreos#716
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2332868
  • Loading branch information
jbtrystram authored and travier committed Dec 18, 2024
1 parent 4e2d9a2 commit 9b213b4
Show file tree
Hide file tree
Showing 3 changed files with 19 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/bootloader-update.service

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

[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 @@ -24,6 +24,7 @@ BuildRequires: cargo
BuildRequires: git
BuildRequires: openssl-devel
BuildRequires: systemd-devel
BuildRequires: systemd-rpm-macros

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

%prep
%autosetup -n %{crate}-%{version} -p1 -Sgit
Expand All @@ -53,7 +55,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 9b213b4

Please sign in to comment.