diff options
Diffstat (limited to 'pkgs/os-specific/linux/firmware/system76-firmware/default.nix')
-rw-r--r-- | pkgs/os-specific/linux/firmware/system76-firmware/default.nix | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/firmware/system76-firmware/default.nix b/pkgs/os-specific/linux/firmware/system76-firmware/default.nix new file mode 100644 index 00000000000..ca750d89cc5 --- /dev/null +++ b/pkgs/os-specific/linux/firmware/system76-firmware/default.nix @@ -0,0 +1,39 @@ +{ rustPlatform, lib, fetchFromGitHub, xz, pkg-config, openssl, dbus, efibootmgr, makeWrapper }: +rustPlatform.buildRustPackage rec { + pname = "system76-firmware"; + # Check Makefile when updating, make sure postInstall matches make install + version = "1.0.24"; + + src = fetchFromGitHub { + owner = "pop-os"; + repo = pname; + rev = version; + sha256 = "sha256-Poe18HKEQusvN3WF4ZAV1WCvU8/3HKpHEqDsfDO62V0="; + }; + + nativeBuildInputs = [ pkg-config makeWrapper ]; + + buildInputs = [ xz openssl dbus ]; + + cargoBuildFlags = [ "--workspace" ]; + + cargoSha256 = "sha256-gGw3zpxLxQZ3rglpDERO0fSxBOez1Q10Fljis6nyB/4="; + + # Purposefully don't install systemd unit file, that's for NixOS + postInstall = '' + install -D -m -0644 data/system76-firmware-daemon.conf $out/etc/dbus-1/system.d/system76-firmware-daemon.conf + + for bin in $out/bin/system76-firmware-* + do + wrapProgram $bin --prefix PATH : "${efibootmgr}/bin" + done + ''; + + meta = with lib; { + description = "Tools for managing firmware updates for system76 devices"; + homepage = "https://github.com/pop-os/system76-firmware"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ shlevy ]; + platforms = [ "i686-linux" "x86_64-linux" ]; + }; +} |