nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 rustPlatform,
5 fetchFromGitHub,
6 cargo,
7 pkg-config,
8 rustc,
9 openssl,
10 udev,
11 gtk3,
12 wrapGAppsHook3,
13 xz, # for liblzma
14}:
15stdenv.mkDerivation rec {
16 pname = "firmware-manager";
17 version = "0.1.5";
18
19 src = fetchFromGitHub {
20 owner = "pop-os";
21 repo = "firmware-manager";
22 rev = version;
23 hash = "sha256-Q+LJJ4xK583fAcwuOFykt6GKT0rVJgmTt+zUX4o4Tm4=";
24 };
25
26 cargoDeps = rustPlatform.fetchCargoVendor {
27 inherit pname version src;
28 hash = "sha256-LooE5jU4G1QHYTa/sB95W6VJs7lY7sjHI9scUaZRmq4=";
29 };
30
31 postPatch = ''
32 substituteInPlace Makefile --replace '$(DESTDIR)/etc' '$(DESTDIR)$(prefix)/etc'
33 '';
34
35 nativeBuildInputs = [
36 cargo
37 rustc
38 pkg-config
39 rustPlatform.cargoSetupHook
40 wrapGAppsHook3
41 xz
42 ];
43
44 buildInputs = [
45 openssl
46 gtk3
47 udev
48 ];
49
50 makeFlags = [ "prefix=$(out)" ];
51
52 meta = {
53 description = "Graphical frontend for firmware management";
54 homepage = "https://github.com/pop-os/firmware-manager";
55 license = with lib.licenses; [
56 gpl3Plus
57 cc0
58 ];
59 mainProgram = "com.system76.FirmwareManager";
60 maintainers = [ lib.maintainers.shlevy ];
61 platforms = lib.platforms.linux;
62 };
63}