diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/wayland')
3 files changed, 164 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/wayland/0001-add-placeholder-for-nm.patch b/nixpkgs/pkgs/development/libraries/wayland/0001-add-placeholder-for-nm.patch new file mode 100644 index 000000000000..f6745e6f9433 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/wayland/0001-add-placeholder-for-nm.patch @@ -0,0 +1,25 @@ +From 378623b0e39b12bb04d3a3a1e08e64b31bd7d99d Mon Sep 17 00:00:00 2001 +From: Florian Klink <flokli@flokli.de> +Date: Fri, 27 Nov 2020 10:22:20 +0100 +Subject: [PATCH] add placeholder for @nm@ + +--- + egl/meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/egl/meson.build b/egl/meson.build +index dee9b1d..e477546 100644 +--- a/egl/meson.build ++++ b/egl/meson.build +@@ -11,7 +11,7 @@ wayland_egl = library( + + executable('wayland-egl-abi-check', 'wayland-egl-abi-check.c') + +-nm_path = find_program('nm').path() ++nm_path = find_program('@nm@').path() + + test( + 'wayland-egl symbols check', +-- +2.29.2 + diff --git a/nixpkgs/pkgs/development/libraries/wayland/default.nix b/nixpkgs/pkgs/development/libraries/wayland/default.nix new file mode 100644 index 000000000000..7ec8936267bb --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/wayland/default.nix @@ -0,0 +1,105 @@ +{ lib +, stdenv +, fetchurl +, fetchpatch +, meson +, pkg-config +, substituteAll +, ninja +, libffi +, libxml2 +, wayland +, expat ? null # Build wayland-scanner (currently cannot be disabled as of 1.7.0) +, withDocumentation ? stdenv.hostPlatform == stdenv.buildPlatform +, 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; +let + isCross = stdenv.buildPlatform != stdenv.hostPlatform; +in +stdenv.mkDerivation rec { + pname = "wayland"; + version = "1.18.0"; + + src = fetchurl { + url = "https://wayland.freedesktop.org/releases/${pname}-${version}.tar.xz"; + sha256 = "0k995rn96xkplrapz5k648j651wc43kq817xk1x8280h16gsfxa6"; + }; + + patches = [ + # Fix documentation to be reproducible. + (fetchpatch { + url = "https://gitlab.freedesktop.org/wayland/wayland/-/commit/e53e0edf0f892670f3e8c5dd527b3bb22335d32d.patch"; + sha256 = "15sbhi86m9k72lsj56p7zr20ph2b0y4svl639snsbafn2ir1zdb2"; + }) + (substituteAll { + src = ./0001-add-placeholder-for-nm.patch; + nm = "${stdenv.cc.targetPrefix}nm"; + }) + ]; + + outputs = [ "out" ] ++ lib.optionals withDocumentation [ "doc" "man" ]; + separateDebugInfo = true; + + mesonFlags = [ "-Ddocumentation=${lib.boolToString withDocumentation}" ]; + + postPatch = lib.optionalString withDocumentation '' + patchShebangs doc/doxygen/gen-doxygen.py + ''; + + depsBuildBuild = [ + pkg-config + ]; + + nativeBuildInputs = [ + meson + pkg-config + 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 + expat + libxml2 + ] ++ lib.optionals withDocumentation [ + docbook_xsl + docbook_xml_dtd_45 + docbook_xml_dtd_42 + ]; + + meta = { + 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; # Expat version + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ primeos codyopel ]; + }; + + passthru.version = version; +} diff --git a/nixpkgs/pkgs/development/libraries/wayland/protocols.nix b/nixpkgs/pkgs/development/libraries/wayland/protocols.nix new file mode 100644 index 000000000000..23258aff3e93 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/wayland/protocols.nix @@ -0,0 +1,34 @@ +{ lib, stdenv, fetchurl, pkg-config +, wayland +}: + +stdenv.mkDerivation rec { + pname = "wayland-protocols"; + version = "1.20"; + + src = fetchurl { + url = "https://wayland.freedesktop.org/releases/${pname}-${version}.tar.xz"; + sha256 = "1rsdgvkkvxs3cjhpl6agvbkm53vm7k8rg127j9y2vn33m2hvg0lp"; + }; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ wayland ]; + + meta = { + description = "Wayland protocol extensions"; + 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; [ primeos ]; + }; + + passthru.version = version; +} |