From 340dd80175ed4d29b9d30bec17daf5a5cd8c59e5 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 2 Sep 2018 19:28:49 +0200 Subject: [PATCH 1/9] =?UTF-8?q?meson:=200.46.1=20=E2=86=92=200.48.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../meson/allow-dirs-outside-of-prefix.patch | 4 ++-- .../tools/build-managers/meson/default.nix | 7 ++++-- .../build-managers/meson/fix-rpath.patch | 24 +++++++++++++++++-- .../meson/gir-fallback-path.patch | 17 +++++++------ 4 files changed, 39 insertions(+), 13 deletions(-) diff --git a/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch b/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch index bef89c881b5..382c2f0c05b 100644 --- a/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch +++ b/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch @@ -1,6 +1,6 @@ --- a/mesonbuild/coredata.py +++ b/mesonbuild/coredata.py -@@ -282,18 +282,13 @@ +@@ -298,18 +298,13 @@ ''' if option.endswith('dir') and os.path.isabs(value) and \ option not in builtin_dir_noprefix_options: @@ -22,4 +22,4 @@ + value = value[skip:] return value - def init_builtins(self, options): + def init_builtins(self): diff --git a/pkgs/development/tools/build-managers/meson/default.nix b/pkgs/development/tools/build-managers/meson/default.nix index 0ba44b1b17a..13f61fb1617 100644 --- a/pkgs/development/tools/build-managers/meson/default.nix +++ b/pkgs/development/tools/build-managers/meson/default.nix @@ -1,12 +1,12 @@ { lib, python3Packages, stdenv, writeTextDir, substituteAll, targetPackages }: python3Packages.buildPythonApplication rec { - version = "0.46.1"; + version = "0.48.2"; pname = "meson"; src = python3Packages.fetchPypi { inherit pname version; - sha256 = "1jdxs2mkniy1hpdjc4b4jb95axsjp6j5fzphmm6d4gqmqyykjvqc"; + sha256 = "1shfbr0mf8gmwpw5ivrmwp8282qw9mfhxmccd7fsgidp4x3nslby"; }; postFixup = '' @@ -16,6 +16,9 @@ python3Packages.buildPythonApplication rec { mv ".$i-wrapped" "$i" done popd + + # Do not propagate Python + rm $out/nix-support/propagated-build-inputs ''; patches = [ diff --git a/pkgs/development/tools/build-managers/meson/fix-rpath.patch b/pkgs/development/tools/build-managers/meson/fix-rpath.patch index e52428a7db2..30ecb30ee93 100644 --- a/pkgs/development/tools/build-managers/meson/fix-rpath.patch +++ b/pkgs/development/tools/build-managers/meson/fix-rpath.patch @@ -1,6 +1,15 @@ --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py -@@ -846,8 +848,10 @@ +@@ -1112,6 +1112,8 @@ + for p in rpath_paths: + if p == from_dir: + relative = '' # relpath errors out in this case ++ elif os.path.isabs(p): ++ relative = p # These can be outside of build dir. + else: + relative = os.path.relpath(os.path.join(build_dir, p), os.path.join(build_dir, from_dir)) + rel_rpaths.append(relative) +@@ -1121,8 +1123,10 @@ if paths != '': paths += ':' paths += build_rpath @@ -15,7 +24,7 @@ else: --- a/mesonbuild/scripts/depfixer.py +++ b/mesonbuild/scripts/depfixer.py -@@ -300,6 +300,14 @@ +@@ -303,6 +303,14 @@ return self.bf.seek(rp_off) old_rpath = self.read_str() @@ -30,3 +39,14 @@ if len(old_rpath) < len(new_rpath): sys.exit("New rpath must not be longer than the old one.") # The linker does read-only string deduplication. If there is a +@@ -316,6 +324,10 @@ + if not new_rpath: + self.remove_rpath_entry(entrynum) + else: ++ # clean old rpath to avoid stale references ++ # (see https://github.com/NixOS/nixpkgs/pull/46020) ++ self.bf.seek(rp_off) ++ self.bf.write(b'\0'*len(old_rpath)) + self.bf.seek(rp_off) + self.bf.write(new_rpath) + self.bf.write(b'\0') diff --git a/pkgs/development/tools/build-managers/meson/gir-fallback-path.patch b/pkgs/development/tools/build-managers/meson/gir-fallback-path.patch index d8d14f188a2..b7667ed493f 100644 --- a/pkgs/development/tools/build-managers/meson/gir-fallback-path.patch +++ b/pkgs/development/tools/build-managers/meson/gir-fallback-path.patch @@ -1,13 +1,16 @@ --- a/mesonbuild/modules/gnome.py +++ b/mesonbuild/modules/gnome.py -@@ -427,6 +427,10 @@ - scan_command += ['--no-libtool', '--namespace=' + ns, '--nsversion=' + nsversion, '--warn-all', - '--output', '@OUTPUT@'] +@@ -780,6 +780,13 @@ + scan_command += self._scan_langs(state, [lc[0] for lc in langs_compilers]) + scan_command += list(external_ldflags) -+ fallback_libpath = girtarget.get_custom_install_dir()[0] ++ if len(set([girtarget.get_custom_install_dir()[0] for girtarget in girtargets])) > 1: ++ raise MesonException('generate_gir tries to build multiple libraries with different install_dir at once: {}'.format(','.join([str(girtarget) for girtarget in girtargets]))) ++ ++ fallback_libpath = girtargets[0].get_custom_install_dir()[0] + if fallback_libpath is not None and isinstance(fallback_libpath, str) and len(fallback_libpath) > 0 and fallback_libpath[0] == "/": + scan_command += ['--fallback-library-path=' + fallback_libpath] + - header = kwargs.pop('header', None) - if header: - if not isinstance(header, str): + scan_target = self._make_gir_target(state, girfile, scan_command, depends, kwargs) + + typelib_output = '%s-%s.typelib' % (ns, nsversion) From 8a923c9e5085caf40da811701c0d6b80ac0093d9 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Mon, 3 Sep 2018 20:11:20 +0200 Subject: [PATCH 2/9] glib-networking: add python3 for install script Meson no longer propagates it so we need to re-add it. --- pkgs/development/libraries/glib-networking/default.nix | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/glib-networking/default.nix b/pkgs/development/libraries/glib-networking/default.nix index 4ac6e87b9dd..87d26b10027 100644 --- a/pkgs/development/libraries/glib-networking/default.nix +++ b/pkgs/development/libraries/glib-networking/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, fetchpatch, meson, ninja, pkgconfig, glib, gettext, gnutls, p11-kit, libproxy, gnome3 +{ stdenv, fetchurl, fetchpatch, meson, ninja, pkgconfig, glib, gettext, python3, gnutls, p11-kit, libproxy, gnome3 , gsettings-desktop-schemas }: let @@ -30,7 +30,10 @@ stdenv.mkDerivation rec { patchShebangs meson_post_install.py ''; - nativeBuildInputs = [ meson ninja pkgconfig gettext ]; + nativeBuildInputs = [ + meson ninja pkgconfig gettext + python3 # install_script + ]; propagatedBuildInputs = [ glib gnutls p11-kit libproxy gsettings-desktop-schemas ]; doCheck = false; # tests need to access the certificates (among other things) From 08db7cf19ba65db4124d704a5f837732b1da5e98 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Mon, 3 Sep 2018 22:00:08 +0200 Subject: [PATCH 3/9] gnome3.gnome-settings-daemon: add python3 for install script Meson no longer propagates it so we need to re-add it. --- pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix index ce025899c80..25758ddea8d 100644 --- a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix +++ b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix @@ -1,7 +1,7 @@ { fetchurl, substituteAll, stdenv, meson, ninja, pkgconfig, gnome3, perl, gettext, glib, libnotify, lcms2, libXtst , libxkbfile, libpulseaudio, alsaLib, libcanberra-gtk3, upower, colord, libgweather, polkit , geoclue2, librsvg, xf86_input_wacom, udev, libgudev, libwacom, libxslt, libxml2, networkmanager -, docbook_xsl, wrapGAppsHook, ibus, xkeyboard_config, tzdata, nss }: +, docbook_xsl, wrapGAppsHook, python3, ibus, xkeyboard_config, tzdata, nss }: stdenv.mkDerivation rec { name = "gnome-settings-daemon-${version}"; @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { # fatal error: gio/gunixfdlist.h: No such file or directory NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0"; - nativeBuildInputs = [ meson ninja pkgconfig perl gettext libxml2 libxslt docbook_xsl wrapGAppsHook ]; + nativeBuildInputs = [ meson ninja pkgconfig perl gettext libxml2 libxslt docbook_xsl wrapGAppsHook python3 ]; buildInputs = with gnome3; [ ibus gtk glib gsettings-desktop-schemas networkmanager From 5c5736e6e249ea95faa2eb3e4703d1c32ca6b192 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Mon, 3 Sep 2018 22:06:08 +0200 Subject: [PATCH 4/9] gnome3.gnome-bluetooth: add python3 for install script Meson no longer propagates it so we need to re-add it. --- pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix b/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix index 946e7adff79..2db256c323f 100644 --- a/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix +++ b/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl, gnome3, meson, ninja, pkgconfig, gtk3, intltool, glib , udev, itstool, libxml2, wrapGAppsHook, libnotify, libcanberra-gtk3, gobjectIntrospection -, gtk-doc, docbook_xsl, docbook_xml_dtd_43 }: +, gtk-doc, docbook_xsl, docbook_xml_dtd_43, python3 }: let pname = "gnome-bluetooth"; @@ -18,7 +18,7 @@ in stdenv.mkDerivation rec { nativeBuildInputs = [ meson ninja intltool itstool pkgconfig libxml2 wrapGAppsHook gobjectIntrospection - gtk-doc docbook_xsl docbook_xml_dtd_43 + gtk-doc docbook_xsl docbook_xml_dtd_43 python3 ]; buildInputs = [ glib gtk3 udev libnotify libcanberra-gtk3 From 63ab92cff837d6df045c30a4a5a67b66f2960a6e Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Mon, 3 Sep 2018 22:06:42 +0200 Subject: [PATCH 5/9] gnome3.gnome-session: add python3 for install script Meson no longer propagates it so we need to re-add it. --- pkgs/desktops/gnome-3/core/gnome-session/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/gnome-3/core/gnome-session/default.nix b/pkgs/desktops/gnome-3/core/gnome-session/default.nix index 57bcd826038..973613b3319 100644 --- a/pkgs/desktops/gnome-3/core/gnome-session/default.nix +++ b/pkgs/desktops/gnome-3/core/gnome-session/default.nix @@ -1,5 +1,5 @@ { fetchurl, stdenv, substituteAll, meson, ninja, pkgconfig, gnome3, glib, gtk, gsettings-desktop-schemas -, gnome-desktop, dbus, json-glib, libICE, xmlto, docbook_xsl, docbook_xml_dtd_412 +, gnome-desktop, dbus, json-glib, libICE, xmlto, docbook_xsl, docbook_xml_dtd_412, python3 , libxslt, gettext, makeWrapper, systemd, xorg, epoxy }: stdenv.mkDerivation rec { @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ meson ninja pkgconfig gettext makeWrapper - xmlto libxslt docbook_xsl docbook_xml_dtd_412 + xmlto libxslt docbook_xsl docbook_xml_dtd_412 python3 dbus # for DTD ]; From 68606d51d30c2878a4b07a85787f92f2d46acd2e Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Mon, 3 Sep 2018 22:43:55 +0200 Subject: [PATCH 6/9] gst_all_1.gst-plugins-base: add python3 for install script Meson no longer propagates it so we need to re-add it. --- pkgs/development/libraries/gstreamer/base/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/gstreamer/base/default.nix b/pkgs/development/libraries/gstreamer/base/default.nix index a5f8e340642..0e3ff52c4d5 100644 --- a/pkgs/development/libraries/gstreamer/base/default.nix +++ b/pkgs/development/libraries/gstreamer/base/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl, fetchpatch, lib , pkgconfig, meson, ninja, gettext, gobjectIntrospection -, python, gstreamer, orc, pango, libtheora +, python3, gstreamer, orc, pango, libtheora , libintl, libopus , enableX11 ? stdenv.isLinux, libXv , enableWayland ? stdenv.isLinux, wayland @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { outputs = [ "out" "dev" ]; - nativeBuildInputs = [ pkgconfig python gettext gobjectIntrospection ] + nativeBuildInputs = [ pkgconfig python3 gettext gobjectIntrospection ] # Broken meson with Darwin. Should hopefully be fixed soon. Tracking # in https://bugzilla.gnome.org/show_bug.cgi?id=781148. From 0217c2980d9eb5859fa6098f06ed5faa1e1d755c Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Mon, 3 Sep 2018 23:09:17 +0200 Subject: [PATCH 7/9] gst_all_1.gst-plugins-bad: add python3 for install script Meson no longer propagates it so we need to re-add it. --- pkgs/development/libraries/gstreamer/bad/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/gstreamer/bad/default.nix b/pkgs/development/libraries/gstreamer/bad/default.nix index 3f030b7469e..cbe880acc78 100644 --- a/pkgs/development/libraries/gstreamer/bad/default.nix +++ b/pkgs/development/libraries/gstreamer/bad/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, fetchpatch, meson, ninja, gettext -, pkgconfig, python, gst-plugins-base, orc +, pkgconfig, python3, gst-plugins-base, orc , faacSupport ? false, faac ? null , faad2, libass, libkate, libmms, librdf, ladspaH , libnice, webrtc-audio-processing, lilv, lv2, serd, sord, sratom @@ -59,7 +59,7 @@ stdenv.mkDerivation rec { outputs = [ "out" "dev" ]; - nativeBuildInputs = [ meson ninja pkgconfig python gettext ]; + nativeBuildInputs = [ meson ninja pkgconfig python3 gettext ]; buildInputs = [ gst-plugins-base orc From a5af84ef2c584e3c86b36a6044c172c6ce46191d Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Mon, 3 Sep 2018 23:58:48 +0200 Subject: [PATCH 8/9] libinput: add python3 for install script Meson no longer propagates it so we need to re-add it. --- pkgs/development/libraries/libinput/default.nix | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/pkgs/development/libraries/libinput/default.nix b/pkgs/development/libraries/libinput/default.nix index 87c6bb03d4b..8297d7c4dda 100644 --- a/pkgs/development/libraries/libinput/default.nix +++ b/pkgs/development/libraries/libinput/default.nix @@ -29,13 +29,10 @@ stdenv.mkDerivation rec { (mkFlag documentationSupport "documentation") (mkFlag eventGUISupport "debug-gui") (mkFlag testsSupport "tests") + "--libexecdir=${placeholder "bin"}/libexec" ]; - preConfigure = '' - mesonFlags="$mesonFlags --libexecdir=$bin/libexec" - ''; - - nativeBuildInputs = [ pkgconfig meson ninja ] + nativeBuildInputs = [ pkgconfig meson ninja python3Packages.python ] ++ optionals documentationSupport [ doxygen graphviz ] ++ optionals testsSupport [ check valgrind python3Packages.pyparsing ]; From 927a82d60f876d34efc179d049a8c2a44b6c0c5d Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Tue, 25 Sep 2018 05:58:22 +0200 Subject: [PATCH 9/9] libratbag: fix meson/python compatibility --- pkgs/os-specific/linux/libratbag/default.nix | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/pkgs/os-specific/linux/libratbag/default.nix b/pkgs/os-specific/linux/libratbag/default.nix index 271dc156695..c614b39255d 100644 --- a/pkgs/os-specific/linux/libratbag/default.nix +++ b/pkgs/os-specific/linux/libratbag/default.nix @@ -12,15 +12,14 @@ stdenv.mkDerivation rec { sha256 = "0cr5skrb7a5mgj7dkm647ib8336hb88bf11blaf6xldafi8b0jlj"; }; - - # todo: python should be in buildInputs, but right now meson propagates - # its own python. see: https://github.com/NixOS/nixpkgs/pull/46020 nativeBuildInputs = [ - (python3.withPackages (ps: with ps; [ evdev pygobject3 ])) meson ninja pkgconfig gitMinimal swig check valgrind ]; - buildInputs = [ glib systemd udev libevdev ]; + buildInputs = [ + glib systemd udev libevdev + (python3.withPackages (ps: with ps; [ evdev pygobject3 ])) + ]; mesonFlags = [ "-Dsystemd-unit-dir=./lib/systemd/system/"