diff --git a/pkgs/tools/inputmethods/ibus/default.nix b/pkgs/tools/inputmethods/ibus/default.nix index 8948f1abbb3..cb42d959d12 100644 --- a/pkgs/tools/inputmethods/ibus/default.nix +++ b/pkgs/tools/inputmethods/ibus/default.nix @@ -1,6 +1,6 @@ -{ stdenv, fetchurl, runCommand, fetchFromGitHub, autoreconfHook, gettext, makeWrapper, pkgconfig +{ stdenv, substituteAll, fetchurl, runCommand, fetchFromGitHub, autoreconfHook, gettext, makeWrapper, pkgconfig , vala, wrapGAppsHook, dbus, dconf ? null, glib, gdk_pixbuf, gobject-introspection, gtk2 -, gtk3, gtk-doc, isocodes, python3, json-glib, libnotify ? null, enablePythonLibrary ? true +, gtk3, gtk-doc, isocodes, python3, json-glib, libnotify ? null, enablePython2Library ? false , enableUI ? true, withWayland ? false, libxkbcommon ? null, wayland ? null , buildPackages, runtimeShell }: @@ -90,10 +90,15 @@ stdenv.mkDerivation rec { sha256 = "1npavb896qrp6qbqayb0va4mpsi68wybcnlbjknzgssqyw2ylh9r"; }; + patches = [ + (substituteAll { + src = ./fix-paths.patch; + pythonInterpreter = python3Runtime.interpreter; + pythonSitePackages = python3.sitePackages; + }) + ]; + postPatch = '' - substituteInPlace setup/ibus-setup.in --subst-var-by PYTHON ${python3Runtime.interpreter} - substituteInPlace data/dconf/Makefile.am --replace "dconf update" true - substituteInPlace configure.ac --replace '$python2dir/ibus' $out/${python3.sitePackages}/ibus echo \#!${runtimeShell} > data/dconf/make-dconf-override-db.sh cp ${buildPackages.gtk-doc}/share/gtk-doc/data/gtk-doc.make . ''; @@ -105,7 +110,8 @@ stdenv.mkDerivation rec { (enableFeature (dconf != null) "dconf") (enableFeature (libnotify != null) "libnotify") (enableFeature withWayland "wayland") - (enableFeature enablePythonLibrary "python-library") + (enableFeature enablePython2Library "python-library") + (enableFeature enablePython2Library "python2") # XXX: python2 library does not work anyway (enableFeature enableUI "ui") "--with-unicode-emoji-dir=${emojiData}" "--with-emoji-annotation-dir=${cldrEmojiAnnotation}/share/unicode/cldr/common/annotations" @@ -130,6 +136,7 @@ stdenv.mkDerivation rec { dconf gdk_pixbuf gobject-introspection + python3.pkgs.pygobject3 # for pygobject overrides gtk2 gtk3 isocodes diff --git a/pkgs/tools/inputmethods/ibus/fix-paths.patch b/pkgs/tools/inputmethods/ibus/fix-paths.patch new file mode 100644 index 00000000000..192aa7d6395 --- /dev/null +++ b/pkgs/tools/inputmethods/ibus/fix-paths.patch @@ -0,0 +1,45 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -429,11 +429,11 @@ + if test "x$enable_pygobject" = "xyes"; then + PKG_CHECK_MODULES(PYTHON, [pygobject-3.0 >= $PYGOBJECT_REQUIRED]) + +- pyoverridesdir=`$PYTHON -c "import gi; print(gi._overridesdir)"` ++ pyoverridesdir="$prefix/@pythonSitePackages@/gi/overrides" + AC_SUBST(pyoverridesdir) + + if test x"$enable_python2" = x"yes"; then +- py2overridesdir=`$PYTHON2 -c "import gi; print(gi._overridesdir)"` ++ py2overridesdir="$prefix/@pythonSitePackages@/gi/overrides" + AC_SUBST(py2overridesdir) + fi + fi +@@ -462,7 +462,7 @@ + PYTHON2_VERSION=`$PYTHON2 -c "import sys; sys.stdout.write(sys.version[[:3]])"` + PYTHON2_LIBDIR="$PYTHON2_PREFIX/lib/python$PYTHON2_VERSION" + python2dir="$PYTHON2_LIBDIR/site-packages" +- pkgpython2dir="$python2dir/ibus" ++ pkgpython2dir="$prefix/@pythonSitePackages@/ibus" + AC_SUBST(pkgpython2dir) + else + enable_python_library="no (disabled, use --enable-python-library to enable)" +--- a/data/dconf/Makefile.am ++++ b/data/dconf/Makefile.am +@@ -50,7 +50,7 @@ + + install-data-hook: + if test -z "$(DESTDIR)"; then \ +- dconf update; \ ++ true; \ + fi + + EXTRA_DIST = \ +--- a/setup/ibus-setup.in ++++ b/setup/ibus-setup.in +@@ -27,5 +27,5 @@ + export IBUS_DATAROOTDIR=@datarootdir@ + export IBUS_LOCALEDIR=@localedir@ + export IBUS_LIBEXECDIR=${libexecdir} +-exec @PYTHON@ @prefix@/share/ibus/setup/main.py $@ ++exec @pythonInterpreter@ @prefix@/share/ibus/setup/main.py $@ +