From ab0607e3374ef3ba3b6b0edd0c54746adaa3d42b Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Fri, 27 Nov 2020 12:09:53 +0100 Subject: [PATCH] wayland: fix cross (#105103) substituteInPlace stopped working, let's replace this with a patch which is more reliable. --- .../wayland/0001-add-placeholder-for-nm.patch | 25 ++++++++ .../development/libraries/wayland/default.nix | 59 ++++++++++++++----- 2 files changed, 68 insertions(+), 16 deletions(-) create mode 100644 pkgs/development/libraries/wayland/0001-add-placeholder-for-nm.patch diff --git a/pkgs/development/libraries/wayland/0001-add-placeholder-for-nm.patch b/pkgs/development/libraries/wayland/0001-add-placeholder-for-nm.patch new file mode 100644 index 00000000000..f6745e6f943 --- /dev/null +++ b/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 +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/pkgs/development/libraries/wayland/default.nix b/pkgs/development/libraries/wayland/default.nix index cd84495d870..2b18bc31a45 100644 --- a/pkgs/development/libraries/wayland/default.nix +++ b/pkgs/development/libraries/wayland/default.nix @@ -1,17 +1,32 @@ -{ lib, stdenv, fetchurl, fetchpatch, meson, pkgconfig, ninja -, libffi, libxml2, wayland +{ lib +, stdenv +, fetchurl +, fetchpatch +, meson +, pkgconfig +, 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 +, 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 { +in +stdenv.mkDerivation rec { pname = "wayland"; version = "1.18.0"; @@ -26,6 +41,10 @@ in stdenv.mkDerivation rec { 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" ]; @@ -35,9 +54,6 @@ in stdenv.mkDerivation rec { postPatch = lib.optionalString withDocumentation '' patchShebangs doc/doxygen/gen-doxygen.py - substituteInPlace egl/meson.build --replace \ - "find_program('nm').path()" \ - "find_program('${stdenv.cc.targetPrefix}nm').path()" ''; depsBuildBuild = [ @@ -45,17 +61,28 @@ in stdenv.mkDerivation rec { ]; nativeBuildInputs = [ - meson pkgconfig ninja + 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 + doxygen + libxslt + xmlto + python3 + docbook_xml_dtd_45 ]; - buildInputs = [ libffi expat libxml2 + buildInputs = [ + libffi + expat + libxml2 ] ++ lib.optionals withDocumentation [ - docbook_xsl docbook_xml_dtd_45 docbook_xml_dtd_42 + docbook_xsl + docbook_xml_dtd_45 + docbook_xml_dtd_42 ]; meta = { @@ -68,9 +95,9 @@ in stdenv.mkDerivation rec { 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; + homepage = "https://wayland.freedesktop.org/"; + license = lib.licenses.mit; # Expat version + platforms = lib.platforms.linux; maintainers = with lib.maintainers; [ primeos codyopel ]; };