summary refs log tree commit diff
path: root/pkgs/build-support
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2020-03-31 21:33:00 +0200
committerJan Tojnar <jtojnar@gmail.com>2020-03-31 21:33:00 +0200
commitdbb4a47de04bb02e8a96c9ac16d53ecca61cab22 (patch)
tree00818a95ad458fa87af8460181f385154c4fc966 /pkgs/build-support
parentaa304bb398a5a079eeb376dfc084b05cd1769cec (diff)
parent3e0f4e202f4221d5a05a9664fd46e492de711fa2 (diff)
downloadnixpkgs-dbb4a47de04bb02e8a96c9ac16d53ecca61cab22.tar
nixpkgs-dbb4a47de04bb02e8a96c9ac16d53ecca61cab22.tar.gz
nixpkgs-dbb4a47de04bb02e8a96c9ac16d53ecca61cab22.tar.bz2
nixpkgs-dbb4a47de04bb02e8a96c9ac16d53ecca61cab22.tar.lz
nixpkgs-dbb4a47de04bb02e8a96c9ac16d53ecca61cab22.tar.xz
nixpkgs-dbb4a47de04bb02e8a96c9ac16d53ecca61cab22.tar.zst
nixpkgs-dbb4a47de04bb02e8a96c9ac16d53ecca61cab22.zip
Merge branch 'staging-next' into staging
Diffstat (limited to 'pkgs/build-support')
-rw-r--r--pkgs/build-support/make-desktopitem/default.nix17
-rw-r--r--pkgs/build-support/skaware/build-skaware-package.nix33
2 files changed, 30 insertions, 20 deletions
diff --git a/pkgs/build-support/make-desktopitem/default.nix b/pkgs/build-support/make-desktopitem/default.nix
index 67b82fd66db..8355a5ad29b 100644
--- a/pkgs/build-support/make-desktopitem/default.nix
+++ b/pkgs/build-support/make-desktopitem/default.nix
@@ -1,4 +1,5 @@
-{ lib, runCommandLocal }:
+{ lib, runCommandLocal, desktop-file-utils }:
+
 { name
 , type ? "Application"
 , exec
@@ -8,9 +9,10 @@
 , desktopName
 , genericName ? null
 , mimeType ? null
-, categories ? "Application;Other;"
+, categories ? null
 , startupNotify ? null
 , extraEntries ? null
+, fileValidation ? true # whether to validate resulting desktop file.
 }:
 
 let
@@ -18,6 +20,7 @@ let
                          {k="Comment";       v=comment;}
                          {k="GenericName";   v=genericName;}
                          {k="MimeType";      v=mimeType;}
+                         {k="Categories";    v=categories;}
                          {k="StartupNotify"; v=startupNotify;}];
 
   valueNotNull = {k, v}: v != null;
@@ -28,16 +31,20 @@ let
 in
 runCommandLocal "${name}.desktop" {}
   ''
-    mkdir -p $out/share/applications
-    cat > $out/share/applications/${name}.desktop <<EOF
+    mkdir -p "$out/share/applications"
+    cat > "$out/share/applications/${name}.desktop" <<EOF
     [Desktop Entry]
     Type=${type}
     Exec=${exec}
     Terminal=${terminal}
     Name=${desktopName}
-    Categories=${categories}
     ${optionalEntriesString}
     ${if extraEntries == null then ''EOF'' else ''
     ${extraEntries}
     EOF''}
+
+    ${lib.optionalString fileValidation ''
+      echo "Running desktop-file validation"
+      ${desktop-file-utils}/bin/desktop-file-validate "$out/share/applications/${name}.desktop"
+    ''}
   ''
diff --git a/pkgs/build-support/skaware/build-skaware-package.nix b/pkgs/build-support/skaware/build-skaware-package.nix
index 9e4456a3a15..e6e2e35789b 100644
--- a/pkgs/build-support/skaware/build-skaware-package.nix
+++ b/pkgs/build-support/skaware/build-skaware-package.nix
@@ -18,15 +18,12 @@ in {
 , configureFlags
   # mostly for moving and deleting files from the build directory
   # : lines
-, postInstall ? ""
-  # : lines
-, postFixup ? ""
+, postInstall
   # : list Maintainer
 , maintainers ? []
-  # : attrs
-, meta ? {}
-, ...
-} @ args:
+
+
+}:
 
 let
 
@@ -53,17 +50,24 @@ let
     "README.*"
   ];
 
-in stdenv.mkDerivation ({
+in stdenv.mkDerivation {
+  inherit pname version;
+
   src = fetchurl {
     url = "https://skarnet.org/software/${pname}/${pname}-${version}.tar.gz";
     inherit sha256;
   };
 
+  inherit outputs;
+
   dontDisableStatic = true;
   enableParallelBuilding = true;
 
   configureFlags = configureFlags ++ [
     "--enable-absolute-paths"
+    # We assume every nix-based cross target has urandom.
+    # This might not hold for e.g. BSD.
+    "--with-sysdep-devurandom=yes"
     (if stdenv.isDarwin
       then "--disable-shared"
       else "--enable-shared")
@@ -83,11 +87,13 @@ in stdenv.mkDerivation ({
        noiseFiles = commonNoiseFiles;
        docFiles = commonMetaFiles;
      }} $doc/share/doc/${pname}
-  '' + postInstall;
+
+    ${postInstall}
+  '';
 
   postFixup = ''
     ${cleanPackaging.checkForRemainingFiles}
-  '' + postFixup;
+  '';
 
   meta = {
     homepage = "https://skarnet.org/software/${pname}/";
@@ -95,9 +101,6 @@ in stdenv.mkDerivation ({
     license = stdenv.lib.licenses.isc;
     maintainers = with lib.maintainers;
       [ pmahoney Profpatsch ] ++ maintainers;
-  } // meta;
+  };
 
-} // builtins.removeAttrs args [
-  "sha256" "configureFlags" "postInstall" "postFixup"
-  "meta" "description" "platforms"  "maintainers"
-])
+}