NetBSD Problem Report #55798
From www@netbsd.org Mon Nov 9 10:21:08 2020
Return-Path: <www@netbsd.org>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
by mollari.NetBSD.org (Postfix) with ESMTPS id 511FE1A9246
for <gnats-bugs@gnats.NetBSD.org>; Mon, 9 Nov 2020 10:21:08 +0000 (UTC)
Message-Id: <20201109102107.51EAD1A9256@mollari.NetBSD.org>
Date: Mon, 9 Nov 2020 10:21:07 +0000 (UTC)
From: dan@alt.md
Reply-To: dan@alt.md
To: gnats-bugs@NetBSD.org
Subject: GTK3 build failure on macOS with quartz option enabled (dyld: Symbol not found: _NSApp)
X-Send-Pr-Version: www-1.0
>Number: 55798
>Category: pkg
>Synopsis: GTK3 build failure on macOS with quartz option enabled (dyld: Symbol not found: _NSApp)
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: pkg-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Mon Nov 09 10:25:00 +0000 2020
>Last-Modified: Thu Nov 26 08:20:01 +0000 2020
>Originator: Dan Cîrnaț
>Release: pkgsrc-current
>Organization:
>Environment:
Darwin Dans-MBP-4 19.6.0 Darwin Kernel Version 19.6.0: Mon Aug 31 22:12:52 PDT 2020; root:xnu-6153.141.2~1/RELEASE_X86_64 x86_64
>Description:
GTK3 build fails on macOS when I enable the `quartz` option.
>These options are currently enabled:
> gtk3-atk-bridge quartz x11
> ...
>Making all in .
> GEN gdkconfig.h
> GISCAN Gdk-3.0.gir
>dyld: Symbol not found: _NSApp
> Referenced from: /opt/pkg/src/x11/gtk3/work/gtk+-3.24.23/gdk/.libs/libgdk-3.0.dylib
> Expected in: flat namespace
> in /opt/pkg/src/x11/gtk3/work/gtk+-3.24.23/gdk/.libs/libgdk-3.0.dylib
>Command '['/opt/pkg/src/x11/gtk3/work/gtk+-3.24.23/gdk/tmp-introspectbr6qax7p/Gdk-3.0', '-->introspect-dump=/opt/pkg/src/x11/gtk3/work/gtk+-3.24.23/gdk/tmp->introspectbr6qax7p/functions.txt,/opt/pkg/src/x11/gtk3/work/gtk+-3.24.23/gdk/tmp->introspectbr6qax7p/dump.xml']' died with <Signals.SIGABRT: 6>.
>gnumake[4]: *** [Gdk-3.0.gir] Error 1
>gnumake[3]: *** [all-recursive] Error 1
>gnumake[2]: *** [all] Error 2
>gnumake[1]: *** [all-recursive] Error 1
>gnumake: *** [all] Error 2
>*** Error code 2
>
>Stop.
>bmake[1]: stopped in /opt/pkg/src/x11/gtk3
>*** Error code 1
>
>Stop.
>bmake: stopped in /opt/pkg/src/x11/gtk3
>How-To-Repeat:
cd x11/gtk3
bmake PKG_OPTIONS.gtk3=quartz
>Fix:
>Audit-Trail:
From: =?utf-8?Q?Dan_C=C3=AErna=C8=9B?= <dan@alt.md>
To: "gnats-bugs@netbsd.org" <gnats-bugs@NetBSD.org>
Cc:
Subject: Re: pkg/55798
Date: Thu, 26 Nov 2020 08:17:03 +0000
Apparently the AppKit framework needs to be added to the linker flags.
Worked on Big Sur with the patch provided below.
>Fix:
diff --git a/x11/gtk3/distinfo b/x11/gtk3/distinfo
index b04ecb0bf15..fdb63d32d62 100644
--- a/x11/gtk3/distinfo
+++ b/x11/gtk3/distinfo
@@ -7,7 +7,7 @@ Size (gtk+-3.24.23.tar.xz) =3D 21345936 bytes
SHA1 (patch-Makefile.in) =3D 8edcfe2ff492d90138a24b680fe39814c3848d80
SHA1 (patch-config.h.in) =3D dc5f8741eed554f88c0b6834cadad95083e4dc8f
SHA1 (patch-configure) =3D d531b33e52facf960058f1223b70db680da35300
-SHA1 (patch-configure.ac) =3D 68793f40752f25ccaecc958c72c23a504670bea5
+SHA1 (patch-configure.ac) =3D 91e07b6ed9f24ccfeb576c7a506694b4b57555ac
SHA1 (patch-gdk_quartz_gdkquartz-gtk-only.h) =3D 24aefa2631c2546ef726eba0a=
ee0f9460c1664ed
SHA1 (patch-gdk_wayland_gdkdevice-wayland.c) =3D e283bd6533ea1307b971c524b=
c05f0d3ee90453d
SHA1 (patch-gdk_x11_gdkscreen-x11.h) =3D 455d6c3de8421984ba3c99baf51cd3198=
2a3df78
diff --git a/x11/gtk3/patches/patch-configure.ac b/x11/gtk3/patches/patch-c=
onfigure.ac
index 834d3a13c71..cf9e7e50d6c 100644
--- a/x11/gtk3/patches/patch-configure.ac
+++ b/x11/gtk3/patches/patch-configure.ac
@@ -1,10 +1,20 @@
$NetBSD: patch-configure.ac,v 1.2 2014/09/08 12:06:48 wiz Exp $
+Add AppKit framework to linker flags to fix linking problem on macOS
Make gtk3-atk-bridge an option to avoid unwanted dbus dependency.
---- configure.ac.orig 2013-01-07 10:50:02.000000000 +0000
+--- configure.ac.orig 2020-09-03 22:04:28.000000000 +0000
+++ configure.ac
-@@ -1295,8 +1295,13 @@ AC_SUBST(GDK_DEP_CFLAGS)
+@@ -409,7 +409,7 @@ if test "x$enable_quartz_backend" =3D xyes
+ backend_immodules=3D"$backend_immodules,quartz"
+ GDK_WINDOWING=3D"$GDK_WINDOWING
+ #define GDK_WINDOWING_QUARTZ"
+- GDK_EXTRA_LIBS=3D"$GDK_EXTRA_LIBS -Wl,-framework,Cocoa"
++ GDK_EXTRA_LIBS=3D"$GDK_EXTRA_LIBS -Wl,-framework,AppKit,-framework,Carb=
on"
+ DISABLE_ON_QUARTZ=3D'%'
+ AM_CONDITIONAL(USE_QUARTZ, true)
+ if test "x$quartz_relocation" =3D xyes; then
+@@ -1364,8 +1364,13 @@ AC_SUBST(GDK_DEP_CFLAGS)
# Check for Accessibility Toolkit flags
########################################
(Contact us)
$NetBSD: query-full-pr,v 1.46 2020/01/03 16:35:01 leot Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2020
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.