diff options
Diffstat (limited to 'nixpkgs/pkgs/desktops/xfce4-14/mkXfceDerivation.nix')
-rw-r--r-- | nixpkgs/pkgs/desktops/xfce4-14/mkXfceDerivation.nix | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/desktops/xfce4-14/mkXfceDerivation.nix b/nixpkgs/pkgs/desktops/xfce4-14/mkXfceDerivation.nix new file mode 100644 index 00000000000..b7dc8322569 --- /dev/null +++ b/nixpkgs/pkgs/desktops/xfce4-14/mkXfceDerivation.nix @@ -0,0 +1,40 @@ +{ stdenv, fetchgit, pkgconfig, xfce4-dev-tools, hicolor-icon-theme, wrapGAppsHook }: + +{ category, pname, version, rev ? "${pname}-${version}", sha256, ... } @ args: + +let + inherit (builtins) filter getAttr head isList; + inherit (stdenv.lib) attrNames concatLists recursiveUpdate zipAttrsWithNames; + + filterAttrNames = f: attrs: + filter (n: f (getAttr n attrs)) (attrNames attrs); + + concatAttrLists = attrsets: + zipAttrsWithNames (filterAttrNames isList (head attrsets)) (_: concatLists) attrsets; + + template = { + name = "${pname}-${version}"; + + nativeBuildInputs = [ pkgconfig xfce4-dev-tools wrapGAppsHook ]; + buildInputs = [ hicolor-icon-theme ]; + configureFlags = [ "--enable-maintainer-mode" ]; + + src = fetchgit { + url = "git://git.xfce.org/${category}/${pname}"; + inherit rev sha256; + }; + + enableParallelBuilding = true; + outputs = [ "out" "dev" ]; + + meta = with stdenv.lib; { + homepage = "https://git.xfce.org/${category}/${pname}/about"; + license = licenses.gpl2; # some libraries are under LGPLv2+ + platforms = platforms.linux; + }; + }; + + publicArgs = removeAttrs args [ "category" "pname" "sha256" ]; +in + +stdenv.mkDerivation (recursiveUpdate template publicArgs // concatAttrLists [ template args ]) |