nixpkgs/pkgs/os-specific/linux/tailor-gui/default.nix
Yueh-Shun Li 91b3db1309 treewide: fix sourceRoot for fetchgit-based src
According to Nixpkgs manual[1] and NixOS 23.11 Release Note[2], the
`sourceRoot` attribute passed to `stdenv.mkDerivation` should be
specified as `"${src.name}"` or `"${src.name}/subdir"` when `src` is
produced using `fetchgit`-based fetchers.

`sourceRoot = "source"` or `sourceRoot = "source/subdir"` is based on
the assumption that the `name` attribute of these pre-unpacked fetchers
are always `"source"`, which is not the case. Expecting constant `name`
also makes the source FODs prone to irrelevent hashes during version
bumps.

[1]: https://nixos.org/manual/nixpkgs/unstable/#var-stdenv-sourceRoot
[2]: https://nixos.org/manual/nixos/stable/release-notes#sec-release-23.11
2024-03-09 07:53:25 +08:00

61 lines
1.2 KiB
Nix

{ stdenv
, lib
, rustPlatform
, cargo
, rustc
, pkg-config
, desktop-file-utils
, appstream-glib
, wrapGAppsHook4
, meson
, ninja
, libadwaita
, gtk4
, tuxedo-rs
}:
let
src = tuxedo-rs.src;
sourceRoot = "${src.name}/tailor_gui";
pname = "tailor_gui";
version = "0.2.3";
in
stdenv.mkDerivation {
inherit src sourceRoot pname version;
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src sourceRoot;
name = "${pname}-${version}";
hash = "sha256-mt4YQ0iB/Mlnm+o9sGgYVEdbxjF7qArxA5FIK4MAZ8M=";
};
nativeBuildInputs = [
rustPlatform.cargoSetupHook
pkg-config
desktop-file-utils
appstream-glib
wrapGAppsHook4
];
buildInputs = [
cargo
rustc
meson
ninja
libadwaita
gtk4
];
meta = with lib; {
description = "Rust GUI for interacting with hardware from TUXEDO Computers";
longDescription = ''
An alternative to the TUXEDO Control Center (https://www.tuxedocomputers.com/en/TUXEDO-Control-Center.tuxedo),
written in Rust.
'';
homepage = "https://github.com/AaronErhardt/tuxedo-rs";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ mrcjkb xaverdh ];
platforms = platforms.linux;
};
}