Help needed to install sysexts (e.g. emacs)

Hello, I am trying to install emacs via the sysext mechanism. Admittedly I don’t grok sysexts just yet but using [1,2] I’ve pieced together the following commands

#!/bin/sh

# Run those commands if you have not yet installed any sysext on your system:
sudo install -d -m 0755 -o 0 -g 0 /var/lib/extensions /var/lib/extensions.d
sudo restorecon -RFv /var/lib/extensions /var/lib/extensions.d

install_sysext() {
  SYSEXT="${1}"
  URL="https://github.com/m2Giles/fedora-sysexts/releases/download/m2os-bluefin"
  sudo install -d -m 0755 -o 0 -g 0 /etc/sysupdate.${SYSEXT}.d
  sudo restorecon -RFv /etc/sysupdate.${SYSEXT}.d
  curl --silent --fail --location "${URL}/${SYSEXT}.conf" \
    | sudo tee "/etc/sysupdate.${SYSEXT}.d/${SYSEXT}.conf"
  sudo /usr/lib/systemd/systemd-sysupdate update --component "${SYSEXT}"
}

install_sysext emacs-bluefin

After executing, the stdout was

Relabeled /etc/sysupdate.emacs-bluefin.d from unconfined_u:object_r:etc_t:s0 to system_u:object_r:etc_t:s0
[Transfer]
Verify=false

[Source]
Type=url-file
Path=https://github.com/m2Giles/fedora-sysexts/releases/download/m2os-bluefin/
MatchPattern=emacs-bluefin-@v-%a.raw

[Target]
InstancesMax=2
Type=regular-file
Path=/var/lib/extensions.d/
MatchPattern=emacs-bluefin-@v-%a.raw
CurrentSymlink=/var/lib/extensions/emacs-bluefin.raw
Discovering installed instances…
Discovering available instances…
⤵️ Acquiring manifest file https://github.com/m2Giles/fedora-sysexts/releases/download/m2os-bluefin/SHA256SUMS…
Pulling 'https://github.com/m2Giles/fedora-sysexts/releases/download/m2os-bluefin/SHA256SUMS'.
Downloading 641B for https://github.com/m2Giles/fedora-sysexts/releases/download/m2os-bluefin/SHA256SUMS.
Acquired 641B.
Download of https://github.com/m2Giles/fedora-sysexts/releases/download/m2os-bluefin/SHA256SUMS complete.
Operation completed successfully.
Exiting.
Determining installed update sets…
Determining available update sets…
Selected update '41.20250504' for install.
Making room for 1 updates…
Removed no instances.
⤵️ Acquiring https://github.com/m2Giles/fedora-sysexts/releases/download/m2os-bluefin/emacs-bluefin-41.20250504-x86-64.raw → /var/lib/extensions.d/emacs-bluefin-41.20250504-x86-64.raw...
Pulling 'https://github.com/m2Giles/fedora-sysexts/releases/download/m2os-bluefin/emacs-bluefin-41.20250504-x86-64.raw', saving as '/var/lib/extensions.d/.#sysupdateemacs-bluefin-41.20250504-x86-64.raw05b8f58226ac4ba6'.
Downloading 174.4M for https://github.com/m2Giles/fedora-sysexts/releases/download/m2os-bluefin/emacs-bluefin-41.20250504-x86-64.raw.
Got 1% of https://github.com/m2Giles/fedora-sysexts/releases/download/m2os-bluefin/emacs-bluefin-41.20250504-x86-64.raw.
Got 54% of https://github.com/m2Giles/fedora-sysexts/releases/download/m2os-bluefin/emacs-bluefin-41.20250504-x86-64.raw. 1s left at 66.5M/s.
Acquired 174.4M.
Download of https://github.com/m2Giles/fedora-sysexts/releases/download/m2os-bluefin/emacs-bluefin-41.20250504-x86-64.raw complete.
Operation completed successfully.
Exiting.
Successfully acquired 'https://github.com/m2Giles/fedora-sysexts/releases/download/m2os-bluefin/emacs-bluefin-41.20250504-x86-64.raw'.
Successfully installed 'https://github.com/m2Giles/fedora-sysexts/releases/download/m2os-bluefin/emacs-bluefin-41.20250504-x86-64.raw' (url-file) as '/var/lib/extensions.d/emacs-bluefin-41.20250504-x86-64.raw' (regular-file).
Updated symlink '/var/lib/extensions/emacs-bluefin.raw' → '../extensions.d/emacs-bluefin-41.20250504-x86-64.raw'.
✨ Successfully installed update '41.20250504'.

But when I try to run sudo systemctl restart systemd-sysext.service, the installation seems to have failed as shown below

❯ systemctl status systemd-sysext.service
× systemd-sysext.service - Merge System Extension Images into /usr/ and /opt/
     Loaded: loaded (/usr/lib/systemd/system/systemd-sysext.service; enabled; preset: enabled)
    Drop-In: /usr/lib/systemd/system/service.d
             └─10-timeout-abort.conf, 50-keep-warm.conf
     Active: failed (Result: exit-code) since Sun 2025-05-04 22:11:27 EDT; 15s ago
 Invocation: 05a89c9e05874365ae831b8d8b13a3b1
       Docs: man:systemd-sysext.service(8)
    Process: 97777 ExecStart=systemd-sysext refresh (code=exited, status=1/FAILURE)
   Main PID: 97777 (code=exited, status=1/FAILURE)
   Mem peak: 3.5M
        CPU: 23ms

May 04 22:11:27 galp3-bluefin systemd[1]: Starting systemd-sysext.service - Merge System Extension Images into /usr/ and>
May 04 22:11:27 galp3-bluefin systemd-sysext[97777]: Failed to read metadata for image emacs-bluefin: No medium found
May 04 22:11:27 galp3-bluefin systemd[1]: systemd-sysext.service: Main process exited, code=exited, status=1/FAILURE
May 04 22:11:27 galp3-bluefin systemd[1]: systemd-sysext.service: Failed with result 'exit-code'.
May 04 22:11:27 galp3-bluefin systemd[1]: Failed to start systemd-sysext.service - Merge System Extension Images into /u>
 ESCOC

Can someone help me decipher what is meant by May 04 22:11:27 galp3-bluefin systemd-sysext[97777]: Failed to read metadata for image emacs-bluefin: No medium found ?

References

[1] emacs | extensions.fcos.fr
[2] Discord

Could the problem be that those sysexts are built for bluefin 41 and you’re on 42 already?

I managed to install the emacs sysext from the upstream which are built for fedora 42 but I still had to use systemd-sysext -force merge because sysexts check compatibility by matching ID in /etc/os-release. This is probably not good practice in general, I just figured emacs wouldn’t cause too much mischief.

No I am still on 41

● Booted image: ghcr.io/ublue-os/bluefin-dx:stable
        Digest: sha256:62e32420104d10773b5b1ef845561d82772e6a4fb2099ab8589ca0477d4a7bf5 (amd64)
       Version: 41.20250504.2 (2025-05-04T06:05:48Z)

I tried your command

❯ sudo systemd-sysext --force merge
Failed to read metadata for image emacs-bluefin: No medium found

Which is the same error as above.

Might be the issue of trying to install emacs-v30 on F41 which is only available on F42. Hope this helps

I’m personally no longer using the sysext for emacs and instead have it apart of my image.

There are quite a few issues with sysexts that make these more of a pain to use right now.

I may readdress this in the future.

That’s good to know. You made a valiant effort with your repo. Thank you!

Apparently the issue is the conf file having a -bluefin in the wrong spot.

I will address this in the future.

1 Like