From 10a60af7e0867b9b551fa238dc59177276dc3304 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 26 Jan 2019 09:17:49 +0100 Subject: [PATCH 1/3] gtk3-x11: fix darwin build --- .../libraries/gtk+/3.0-darwin-x11.patch | 28 +++++++++++++++++++ pkgs/development/libraries/gtk+/3.x.nix | 5 ++++ 2 files changed, 33 insertions(+) create mode 100644 pkgs/development/libraries/gtk+/3.0-darwin-x11.patch diff --git a/pkgs/development/libraries/gtk+/3.0-darwin-x11.patch b/pkgs/development/libraries/gtk+/3.0-darwin-x11.patch new file mode 100644 index 00000000000..86631634b5b --- /dev/null +++ b/pkgs/development/libraries/gtk+/3.0-darwin-x11.patch @@ -0,0 +1,28 @@ +--- a/gdk/x11/gdkapplaunchcontext-x11.c ++++ b/gdk/x11/gdkapplaunchcontext-x11.c +@@ -27,7 +27,9 @@ + #include "gdkprivate-x11.h" + + #include ++#if defined(HAVE_GIO_UNIX) && !defined(__APPLE__) + #include ++#endif + + #include + #include +@@ -352,10 +354,15 @@ + else + workspace_str = NULL; + ++#if defined(HAVE_GIO_UNIX) && !defined(__APPLE__) + if (G_IS_DESKTOP_APP_INFO (info)) + application_id = g_desktop_app_info_get_filename (G_DESKTOP_APP_INFO (info)); + else + application_id = NULL; ++#else ++ application_id = NULL; ++#warning Please add support for creating AppInfo from id for your OS ++#endif + + startup_id = g_strdup_printf ("%s-%lu-%s-%s-%d_TIME%lu", + g_get_prgname (), diff --git a/pkgs/development/libraries/gtk+/3.x.nix b/pkgs/development/libraries/gtk+/3.x.nix index 01133b92ee1..b131acf5f5e 100644 --- a/pkgs/development/libraries/gtk+/3.x.nix +++ b/pkgs/development/libraries/gtk+/3.x.nix @@ -45,6 +45,11 @@ stdenv.mkDerivation rec { url = https://gitlab.gnome.org/GNOME/gtk/commit/e3a1593a0984cc0156ec1892a46af8f256a64878.patch; sha256 = "0akvp1r8xlzf5amk9gmk7b5sabr1wbmg3ak15rppsid7nf9f5dqf"; }) + ] ++ optionals stdenv.isDarwin [ + # X11 module requires which is not installed on Darwin + # let’s drop that dependency in similar way to how other parts of the library do it + # e.g. https://gitlab.gnome.org/GNOME/gtk/blob/3.24.4/gtk/gtk-launch.c#L31-33 + ./3.0-darwin-x11.patch ]; buildInputs = [ libxkbcommon epoxy json-glib isocodes ] From 8f217162e76d5f5449ec60f12376c70572065098 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 27 Jan 2019 15:00:50 +0100 Subject: [PATCH 2/3] gtk2-x11: fix darwin build --- .../libraries/gtk+/2.0-darwin-x11.patch | 22 +++++++++++++++++++ pkgs/development/libraries/gtk+/2.x.nix | 11 ++++++---- 2 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 pkgs/development/libraries/gtk+/2.0-darwin-x11.patch diff --git a/pkgs/development/libraries/gtk+/2.0-darwin-x11.patch b/pkgs/development/libraries/gtk+/2.0-darwin-x11.patch new file mode 100644 index 00000000000..9725cfb8426 --- /dev/null +++ b/pkgs/development/libraries/gtk+/2.0-darwin-x11.patch @@ -0,0 +1,22 @@ +--- a/gdk/x11/gdkapplaunchcontext-x11.c ++++ b/gdk/x11/gdkapplaunchcontext-x11.c +@@ -26,7 +26,6 @@ + #include + + #include +-#include + + #include "gdkx.h" + #include "gdkapplaunchcontext.h" +@@ -363,10 +362,7 @@ + else + workspace_str = NULL; + +- if (G_IS_DESKTOP_APP_INFO (info)) +- application_id = g_desktop_app_info_get_filename (G_DESKTOP_APP_INFO (info)); +- else +- application_id = NULL; ++ application_id = NULL; + + startup_id = g_strdup_printf ("%s-%lu-%s-%s-%d_TIME%lu", + g_get_prgname (), diff --git a/pkgs/development/libraries/gtk+/2.x.nix b/pkgs/development/libraries/gtk+/2.x.nix index 266abe16c10..c7638ea5fe5 100644 --- a/pkgs/development/libraries/gtk+/2.x.nix +++ b/pkgs/development/libraries/gtk+/2.x.nix @@ -32,10 +32,13 @@ stdenv.mkDerivation rec { patches = [ ./2.0-immodules.cache.patch ./gtk2-theme-paths.patch - ] ++ optional stdenv.isDarwin (fetchpatch { - url = https://bug557780.bugzilla-attachments.gnome.org/attachment.cgi?id=306776; - sha256 = "0sp8f1r5c4j2nlnbqgv7s7nxa4cfwigvm033hvhb1ld652pjag4r"; - }); + ] ++ optionals stdenv.isDarwin [ + (fetchpatch { + url = https://bug557780.bugzilla-attachments.gnome.org/attachment.cgi?id=306776; + sha256 = "0sp8f1r5c4j2nlnbqgv7s7nxa4cfwigvm033hvhb1ld652pjag4r"; + }) + ./2.0-darwin-x11.patch + ]; propagatedBuildInputs = with xorg; [ glib cairo pango gdk_pixbuf atk ] From 6851b8f3da17034c422a36229cf2962f497d2d1e Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 27 Jan 2019 14:55:58 +0100 Subject: [PATCH 3/3] python.pkgs.pygobject2: fix darwin build --- .../python-modules/pygobject/default.nix | 2 + .../pygobject/pygobject-2.0-fix-darwin.patch | 88 +++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 pkgs/development/python-modules/pygobject/pygobject-2.0-fix-darwin.patch diff --git a/pkgs/development/python-modules/pygobject/default.nix b/pkgs/development/python-modules/pygobject/default.nix index 56e8f1fa5eb..4826db3a8c0 100644 --- a/pkgs/development/python-modules/pygobject/default.nix +++ b/pkgs/development/python-modules/pygobject/default.nix @@ -17,6 +17,8 @@ buildPythonPackage rec { # Fix warning spam ./pygobject-2.28.6-set_qdata.patch ./pygobject-2.28.6-gio-types-2.32.patch + ] ++ stdenv.lib.optionals stdenv.isDarwin [ + ./pygobject-2.0-fix-darwin.patch ]; configureFlags = [ "--disable-introspection" ]; diff --git a/pkgs/development/python-modules/pygobject/pygobject-2.0-fix-darwin.patch b/pkgs/development/python-modules/pygobject/pygobject-2.0-fix-darwin.patch new file mode 100644 index 00000000000..7fef05262f4 --- /dev/null +++ b/pkgs/development/python-modules/pygobject/pygobject-2.0-fix-darwin.patch @@ -0,0 +1,88 @@ +--- a/gio/unix-types.defs ++++ b/gio/unix-types.defs +@@ -7,18 +7,6 @@ + (gtype-id "G_TYPE_UNIX_CONNECTION") + ) + +-(define-object DesktopAppInfo +- (docstring +- "DesktopAppInfo(desktop_id) -> gio.unix.DesktopAppInfo\n\n" +- "gio.Unix.DesktopAppInfo is an implementation of gio.AppInfo\n" +- "based on desktop files." +- ) +- (in-module "giounix") +- (parent "GObject") +- (c-name "GDesktopAppInfo") +- (gtype-id "G_TYPE_DESKTOP_APP_INFO") +-) +- + (define-object FDMessage + (in-module "giounix") + (parent "GSocketControlMessage") +--- a/gio/unix.defs ++++ b/gio/unix.defs +@@ -32,54 +32,6 @@ + + + +-;; From gdesktopappinfo.h +- +-(define-function desktop_app_info_get_type +- (c-name "g_desktop_app_info_get_type") +- (return-type "GType") +-) +- +-(define-function desktop_app_info_new_from_filename +- (c-name "g_desktop_app_info_new_from_filename") +- (return-type "GDesktopAppInfo*") +- (parameters +- '("const-char*" "filename") +- ) +-) +- +-(define-function g_desktop_app_info_new_from_keyfile +- (c-name "g_desktop_app_info_new_from_keyfile") +- (return-type "GDesktopAppInfo*") +- (parameters +- '("GKeyFile*" "key_file") +- ) +-) +- +-(define-function desktop_app_info_new +- (c-name "g_desktop_app_info_new") +- (is-constructor-of "GDesktopAppInfo") +- (return-type "GDesktopAppInfo*") +- (parameters +- '("const-char*" "desktop_id") +- ) +-) +- +-(define-method get_is_hidden +- (of-object "GDesktopAppInfo") +- (c-name "g_desktop_app_info_get_is_hidden") +- (return-type "gboolean") +-) +- +-(define-function desktop_app_info_set_desktop_env +- (c-name "g_desktop_app_info_set_desktop_env") +- (return-type "none") +- (parameters +- '("const-char*" "desktop_env") +- ) +-) +- +- +- + ;; From gunixfdmessage.h + + (define-function g_unix_fd_message_get_type +--- a/gio/unix.override ++++ b/gio/unix.override +@@ -24,7 +24,6 @@ + #define NO_IMPORT_PYGOBJECT + #include + #include +-#include + #include + #include + #include