diff --git a/pkgs/by-name/st/startup-disk/package.nix b/pkgs/by-name/st/startup-disk/package.nix new file mode 100644 index 000000000000..431a492f3b30 --- /dev/null +++ b/pkgs/by-name/st/startup-disk/package.nix @@ -0,0 +1,65 @@ +{ + lib, + rustPlatform, + fetchFromGitLab, + nix-update-script, + pkg-config, + libadwaita, + gtk4, + glib, +}: +rustPlatform.buildRustPackage (finalAttrs: { + pname = "startup-disk"; + version = "0.1.5"; + + src = fetchFromGitLab { + owner = "davide125"; + repo = "startup-disk"; + tag = "${finalAttrs.version}"; + hash = "sha256-258whEX6hKqfrk2aII15tuFEuB7NQUCNLEmi3OCOWV4="; + domain = "gitlab.gnome.org"; + }; + + nativeBuildInputs = [ + pkg-config + glib # glib-compile-resources + ]; + + buildInputs = [ + libadwaita + gtk4 + glib + ]; + + postPatch = '' + # Fix sudo crate's hardcoded /usr/bin/sudo + substituteInPlace $cargoDepsCopy/sudo-0.6.0/src/lib.rs \ + --replace-fail 'Command::new("/usr/bin/sudo")' 'Command::new("sudo")' + ''; + + cargoHash = "sha256-Ec2u/F/lVdT5Oi8N116kVWtp7duZTU0d5zOhYungJ/U="; + + postInstall = '' + install -Dm644 res/org.startup_disk.StartupDisk.desktop -t $out/share/applications/ + install -Dm644 res/org.startup_disk.StartupDisk.svg -t $out/share/icons/hicolor/scalable/apps/ + install -Dm644 res/org.startup_disk.StartupDisk.metainfo.xml -t $out/share/metainfo/ + install -Dm644 res/org.startup_disk.StartupDisk.policy -t $out/share/polkit-1/actions/ + ''; + + postFixup = '' + substituteInPlace $out/share/polkit-1/actions/org.startup_disk.StartupDisk.policy \ + --replace-fail /usr/bin/startup-disk /run/current-system/sw/bin/startup-disk + ''; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Interface to choose the startup volume on Apple Silicon systems"; + homepage = "https://gitlab.gnome.org/davide125/startup-disk"; + changelog = "https://gitlab.gnome.org/davide125/startup-disk/-/tags/${finalAttrs.version}"; + license = lib.licenses.mit; + mainProgram = "startup-disk"; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ milomc123 ]; + }; +})