nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 rustPlatform,
4 fetchFromGitLab,
5 nix-update-script,
6 pkg-config,
7 libadwaita,
8 gtk4,
9 glib,
10}:
11rustPlatform.buildRustPackage (finalAttrs: {
12 pname = "startup-disk";
13 version = "0.1.5";
14
15 src = fetchFromGitLab {
16 owner = "davide125";
17 repo = "startup-disk";
18 tag = finalAttrs.version;
19 hash = "sha256-258whEX6hKqfrk2aII15tuFEuB7NQUCNLEmi3OCOWV4=";
20 domain = "gitlab.gnome.org";
21 };
22
23 nativeBuildInputs = [
24 pkg-config
25 glib # glib-compile-resources
26 ];
27
28 buildInputs = [
29 libadwaita
30 gtk4
31 glib
32 ];
33
34 postPatch = ''
35 # Fix sudo crate's hardcoded /usr/bin/sudo
36 substituteInPlace $cargoDepsCopy/sudo-0.6.0/src/lib.rs \
37 --replace-fail 'Command::new("/usr/bin/sudo")' 'Command::new("sudo")'
38 '';
39
40 cargoHash = "sha256-Ec2u/F/lVdT5Oi8N116kVWtp7duZTU0d5zOhYungJ/U=";
41
42 postInstall = ''
43 install -Dm644 res/org.startup_disk.StartupDisk.desktop -t $out/share/applications/
44 install -Dm644 res/org.startup_disk.StartupDisk.svg -t $out/share/icons/hicolor/scalable/apps/
45 install -Dm644 res/org.startup_disk.StartupDisk.metainfo.xml -t $out/share/metainfo/
46 install -Dm644 res/org.startup_disk.StartupDisk.policy -t $out/share/polkit-1/actions/
47 '';
48
49 postFixup = ''
50 substituteInPlace $out/share/polkit-1/actions/org.startup_disk.StartupDisk.policy \
51 --replace-fail /usr/bin/startup-disk /run/current-system/sw/bin/startup-disk
52 '';
53
54 passthru.updateScript = nix-update-script { };
55
56 meta = {
57 description = "Interface to choose the startup volume on Apple Silicon systems";
58 homepage = "https://gitlab.gnome.org/davide125/startup-disk";
59 changelog = "https://gitlab.gnome.org/davide125/startup-disk/-/tags/${finalAttrs.version}";
60 license = lib.licenses.mit;
61 mainProgram = "startup-disk";
62 platforms = lib.platforms.linux;
63 maintainers = with lib.maintainers; [ milomc123 ];
64 };
65})