about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/wayland
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2020-04-01 15:50:50 +0000
committerAlyssa Ross <hi@alyssa.is>2020-04-01 15:50:50 +0000
commit75eafe97f7df0d653bec67f3962214d7c357831f (patch)
tree09f2cc901e0e637876cbb78d192dfe2fcfef8156 /nixpkgs/pkgs/development/libraries/wayland
parenta53b121bf4331497da63df3b1b7f1a7897dad146 (diff)
parenta2e06fc3423c4be53181b15c28dfbe0bcf67dd73 (diff)
downloadnixlib-75eafe97f7df0d653bec67f3962214d7c357831f.tar
nixlib-75eafe97f7df0d653bec67f3962214d7c357831f.tar.gz
nixlib-75eafe97f7df0d653bec67f3962214d7c357831f.tar.bz2
nixlib-75eafe97f7df0d653bec67f3962214d7c357831f.tar.lz
nixlib-75eafe97f7df0d653bec67f3962214d7c357831f.tar.xz
nixlib-75eafe97f7df0d653bec67f3962214d7c357831f.tar.zst
nixlib-75eafe97f7df0d653bec67f3962214d7c357831f.zip
Merge commit 'a2e06fc3423c4be53181b15c28dfbe0bcf67dd73'
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/wayland')
-rw-r--r--nixpkgs/pkgs/development/libraries/wayland/default.nix57
-rw-r--r--nixpkgs/pkgs/development/libraries/wayland/fix-wayland-cross-compilation.patch14
-rw-r--r--nixpkgs/pkgs/development/libraries/wayland/protocols.nix17
3 files changed, 66 insertions, 22 deletions
diff --git a/nixpkgs/pkgs/development/libraries/wayland/default.nix b/nixpkgs/pkgs/development/libraries/wayland/default.nix
index 60d240552d4f..ef88e690067b 100644
--- a/nixpkgs/pkgs/development/libraries/wayland/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wayland/default.nix
@@ -1,43 +1,66 @@
-{ lib, stdenv, fetchurl, pkgconfig
+{ lib, stdenv, fetchurl, meson, pkgconfig, ninja
 , libffi, libxml2, wayland
 , expat ? null # Build wayland-scanner (currently cannot be disabled as of 1.7.0)
+, withDocumentation ? false, graphviz-nox, doxygen, libxslt, xmlto, python3
+, docbook_xsl, docbook_xml_dtd_45, docbook_xml_dtd_42
 }:
 
 # Require the optional to be enabled until upstream fixes or removes the configure flag
 assert expat != null;
 
-stdenv.mkDerivation rec {
+let
+  isCross = stdenv.buildPlatform != stdenv.hostPlatform;
+in stdenv.mkDerivation rec {
   pname = "wayland";
-  version = "1.17.0";
+  version = "1.18.0";
 
   src = fetchurl {
     url = "https://wayland.freedesktop.org/releases/${pname}-${version}.tar.xz";
-    sha256 = "194ibzwpdcn6fvk4xngr4bf5axpciwg2bj82fdvz88kfmjw13akj";
+    sha256 = "0k995rn96xkplrapz5k648j651wc43kq817xk1x8280h16gsfxa6";
   };
 
   separateDebugInfo = true;
 
-  configureFlags = [
-    "--disable-documentation"
-  ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
-    "--with-host-scanner"
-  ];
+  mesonFlags = [ "-Ddocumentation=${lib.boolToString withDocumentation}" ];
+
+  patches = lib.optional isCross ./fix-wayland-cross-compilation.patch;
+
+  postPatch = lib.optionalString withDocumentation ''
+    patchShebangs doc/doxygen/gen-doxygen.py
+  '' + lib.optionalString isCross ''
+    substituteInPlace egl/meson.build --replace \
+      "find_program('nm').path()" \
+      "find_program('${stdenv.cc.targetPrefix}nm').path()"
+  '';
 
   nativeBuildInputs = [
-    pkgconfig
-  ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
-    # for wayland-scanner during build
-    wayland
+    meson pkgconfig ninja
+  ] ++ lib.optionals isCross [
+    wayland # For wayland-scanner during the build
+  ] ++ lib.optionals withDocumentation [
+    (graphviz-nox.override { pango = null; }) # To avoid an infinite recursion
+    doxygen libxslt xmlto python3 docbook_xml_dtd_45
   ];
 
-  buildInputs = [ libffi /* docbook_xsl doxygen graphviz libxslt xmlto */ expat libxml2 ];
+  buildInputs = [ libffi expat libxml2
+  ] ++ lib.optionals withDocumentation [
+    docbook_xsl docbook_xml_dtd_45 docbook_xml_dtd_42
+  ];
 
   meta = {
-    description = "Reference implementation of the wayland protocol";
+    description = "Core Wayland window system code and protocol";
+    longDescription = ''
+      Wayland is a project to define a protocol for a compositor to talk to its
+      clients as well as a library implementation of the protocol.
+      The wayland protocol is essentially only about input handling and buffer
+      management, but also handles drag and drop, selections, window management
+      and other interactions that must go through the compositor (but not
+      rendering).
+    '';
     homepage    = https://wayland.freedesktop.org/;
-    license     = lib.licenses.mit;
+    license     = lib.licenses.mit; # Expat version
     platforms   = lib.platforms.linux;
-    maintainers = with lib.maintainers; [ codyopel ];
+    maintainers = with lib.maintainers; [ primeos codyopel ];
   };
 
   passthru.version = version;
diff --git a/nixpkgs/pkgs/development/libraries/wayland/fix-wayland-cross-compilation.patch b/nixpkgs/pkgs/development/libraries/wayland/fix-wayland-cross-compilation.patch
new file mode 100644
index 000000000000..77639acb6530
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/wayland/fix-wayland-cross-compilation.patch
@@ -0,0 +1,14 @@
+diff --git a/src/meson.build b/src/meson.build
+index 3e8c9bf..75241cb 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -55,8 +55,7 @@ pkgconfig.generate(
+ )
+ 
+ if meson.is_cross_build()
+-	scanner_dep = dependency('wayland-scanner', native: true, version: '>=1.14.0')
+-	wayland_scanner_for_build = find_program(scanner_dep.get_pkgconfig_variable('wayland_scanner'))
++	wayland_scanner_for_build = find_program('wayland-scanner', native: true, version: '>=1.14.0')
+ else
+ 	wayland_scanner_for_build = wayland_scanner
+ endif
diff --git a/nixpkgs/pkgs/development/libraries/wayland/protocols.nix b/nixpkgs/pkgs/development/libraries/wayland/protocols.nix
index 0b367f4a930f..41495b1c2e50 100644
--- a/nixpkgs/pkgs/development/libraries/wayland/protocols.nix
+++ b/nixpkgs/pkgs/development/libraries/wayland/protocols.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "wayland-protocols";
-  version = "1.18";
+  version = "1.20";
 
   src = fetchurl {
     url = "https://wayland.freedesktop.org/releases/${pname}-${version}.tar.xz";
-    sha256 = "1cvl93h83ymbfhb567jv5gzyq08181w7c46rsw4xqqqpcvkvfwrx";
+    sha256 = "1rsdgvkkvxs3cjhpl6agvbkm53vm7k8rg127j9y2vn33m2hvg0lp";
   };
 
   nativeBuildInputs = [ pkgconfig ];
@@ -17,10 +17,17 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Wayland protocol extensions";
-    homepage    = https://wayland.freedesktop.org/;
-    license     = lib.licenses.mit;
+    longDescription = ''
+      wayland-protocols contains Wayland protocols that add functionality not
+      available in the Wayland core protocol. Such protocols either add
+      completely new functionality, or extend the functionality of some other
+      protocol either in Wayland core, or some other protocol in
+      wayland-protocols.
+    '';
+    homepage    = https://gitlab.freedesktop.org/wayland/wayland-protocols;
+    license     = lib.licenses.mit; # Expat version
     platforms   = lib.platforms.linux;
-    maintainers = with lib.maintainers; [ ];
+    maintainers = with lib.maintainers; [ primeos ];
   };
 
   passthru.version = version;