summary refs log tree commit diff
path: root/pkgs/development/libraries/gtk
diff options
context:
space:
mode:
authorTor Hedin Brønner <torhedinbronner@gmail.com>2020-01-17 13:19:52 +0100
committerTor Hedin Brønner <torhedinbronner@gmail.com>2020-01-17 13:19:52 +0100
commit8842125720997ff122546c81efaeb6fa8ce75e43 (patch)
treed372b6faf24ea7a25a49391cc795884e5bde3ede /pkgs/development/libraries/gtk
parentc5f3c184a72833b96a41aeaf8d6ff1aef4e24ed8 (diff)
downloadnixpkgs-8842125720997ff122546c81efaeb6fa8ce75e43.tar
nixpkgs-8842125720997ff122546c81efaeb6fa8ce75e43.tar.gz
nixpkgs-8842125720997ff122546c81efaeb6fa8ce75e43.tar.bz2
nixpkgs-8842125720997ff122546c81efaeb6fa8ce75e43.tar.lz
nixpkgs-8842125720997ff122546c81efaeb6fa8ce75e43.tar.xz
nixpkgs-8842125720997ff122546c81efaeb6fa8ce75e43.tar.zst
nixpkgs-8842125720997ff122546c81efaeb6fa8ce75e43.zip
gtk3: fix missing header file on darwin
Diffstat (limited to 'pkgs/development/libraries/gtk')
-rw-r--r--pkgs/development/libraries/gtk/3.x.nix3
-rw-r--r--pkgs/development/libraries/gtk/patches/missing-header.patch56
2 files changed, 59 insertions, 0 deletions
diff --git a/pkgs/development/libraries/gtk/3.x.nix b/pkgs/development/libraries/gtk/3.x.nix
index 92963626709..f0d5d9d9bf2 100644
--- a/pkgs/development/libraries/gtk/3.x.nix
+++ b/pkgs/development/libraries/gtk/3.x.nix
@@ -77,6 +77,9 @@ stdenv.mkDerivation rec {
     # 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
     ./patches/3.0-darwin-x11.patch
+    # 3.24.13 failed to ship a header file
+    # https://gitlab.gnome.org/GNOME/gtk/issues/2279
+    ./patches/missing-header.patch
   ];
 
   separateDebugInfo = stdenv.isLinux;
diff --git a/pkgs/development/libraries/gtk/patches/missing-header.patch b/pkgs/development/libraries/gtk/patches/missing-header.patch
new file mode 100644
index 00000000000..49eb51dae9a
--- /dev/null
+++ b/pkgs/development/libraries/gtk/patches/missing-header.patch
@@ -0,0 +1,56 @@
+diff --git a/gdk/quartz/gdkquartz-gtk-only.h b/gdk/quartz/gdkquartz-gtk-only.h
+new file mode 100644
+index 0000000000000000000000000000000000000000..193686c041971e4d8b3a1bc6bb2a79d8ba6e9a70
+--- /dev/null
++++ b/gdk/quartz/gdkquartz-gtk-only.h
+@@ -0,0 +1,50 @@
++/* gdkquartz-gtk-only.h
++ *
++ * Copyright (C) 2005-2007 Imendio AB
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
++ */
++
++#ifndef __GDK_QUARTZ_GTK_ONLY_H__
++#define __GDK_QUARTZ_GTK_ONLY_H__
++
++#if !(defined (GTK_COMPILATION) || defined (GDK_COMPILATION))
++#error "This API is for use only in Gtk internal code."
++#endif
++
++#include <Appkit/Appkit.h>
++#include <gdk/gdk.h>
++#include <gdk/quartz/gdkquartz.h>
++
++/* Drag and Drop/Clipboard */
++GDK_AVAILABLE_IN_ALL
++GdkAtom   gdk_quartz_pasteboard_type_to_atom_libgtk_only        (NSString       *type);
++GDK_AVAILABLE_IN_ALL
++NSString *gdk_quartz_target_to_pasteboard_type_libgtk_only      (const gchar    *target);
++GDK_AVAILABLE_IN_ALL
++NSString *gdk_quartz_atom_to_pasteboard_type_libgtk_only        (GdkAtom         atom);
++
++/* Utilities */
++GDK_AVAILABLE_IN_ALL
++NSImage  *gdk_quartz_pixbuf_to_ns_image_libgtk_only (GdkPixbuf *pixbuf);
++GDK_AVAILABLE_IN_ALL
++NSEvent  *gdk_quartz_event_get_nsevent              (GdkEvent  *event);
++
++/* Window */
++GDK_AVAILABLE_IN_ALL
++NSWindow *gdk_quartz_window_get_nswindow            (GdkWindow *window);
++GDK_AVAILABLE_IN_ALL
++NSView   *gdk_quartz_window_get_nsview              (GdkWindow *window);
++
++#endif