NetBSD Problem Report #46720
From www@NetBSD.org Wed Jul 18 21:01:38 2012
Return-Path: <www@NetBSD.org>
Received: from mail.netbsd.org (mail.netbsd.org [149.20.53.66])
by www.NetBSD.org (Postfix) with ESMTP id 2C50263B882
for <gnats-bugs@gnats.NetBSD.org>; Wed, 18 Jul 2012 21:01:38 +0000 (UTC)
Message-Id: <20120718210137.052D663B85F@www.NetBSD.org>
Date: Wed, 18 Jul 2012 21:01:36 +0000 (UTC)
From: jwbacon@tds.net
Reply-To: jwbacon@tds.net
To: gnats-bugs@NetBSD.org
Subject: devel/glib2 configure fails on Darwin
X-Send-Pr-Version: www-1.0
>Number: 46720
>Category: pkg
>Synopsis: devel/glib2 configure fails on Darwin
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: pkg-manager
>State: closed
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Jul 18 21:05:00 +0000 2012
>Closed-Date: Mon Mar 18 14:34:06 +0000 2013
>Last-Modified: Mon Mar 18 14:34:06 +0000 2013
>Originator: Jason Bacon
>Release: Not a NetBSD issue
>Organization:
Acadix Consulting, LLC
>Environment:
Darwin heron 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun 7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386 i386
>Description:
glib2 fails to configure on Darwin due to iconv_open() tests.
I traced the problem to a fix intended for Darwin in hacks.mk. I believe it is assuming the use of a native libiconv(), and changes libiconv_open() calls to iconv_open() to accomodate the OS X libiconv.
This is not necessary on Snow Leopard, which has both iconv_open() and libiconv_open():
Darwin heron bacon ~/Pkgsrc/pkgsrc-1/jb-wip/glib2 453: nm /usr/lib/libiconv.2.dylib | grep open
U _fopen$UNIX2003
00015049 T _iconv_open
00015860 T _libiconv_open
It may be necessary on older Darwin platforms.
It is detrimental when using the pkgsrc libiconv, which lacks iconv_open():
Darwin heron bacon ~/Pkgsrc/pkgsrc-1/jb-wip/glib2 454: nm ~/Pkgsrc/pkg-1/lib/libiconv.a | grep open
00014560 T _libiconv_open
00013cb0 T _libiconv_open_into
My mk.conf:
# Example /Users/bacon/Pkgsrc/sys-1/etc/mk.conf file produced by bootstrap-pkgsrc
# Wed May 16 15:19:26 CDT 2012
.ifdef BSD_PKG_MK # begin pkgsrc settings
UNPRIVILEGED= yes
PKG_DBDIR= /Users/bacon/Pkgsrc/sys-1/var/db/pkg
LOCALBASE= /Users/bacon/Pkgsrc/pkg-1
VARBASE= /Users/bacon/Pkgsrc/sys-1/var
PKG_SYSCONFBASE= /Users/bacon/Pkgsrc/sys-1/etc
PKG_TOOLS_BIN= /Users/bacon/Pkgsrc/pkg-1/sbin
PKGMANDIR= man
.endif # end pkgsrc settings
X11_TYPE= modular
FETCH_USING?= fetch
PREFER_NATIVE= no
PREFER_PKGSRC= yes
ALLOW_VULNERABLE_PACKAGES= yes
ACCEPTABLE_LICENSES+= openmotif-license
ACCEPTABLE_LICENSES+= qpl-v1.0
ACCEPTABLE_LICENSES+= phylip-license
ACCEPTABLE_LICENSES+= eclipse-license
>How-To-Repeat:
Try building glib2 on Darwin with the above mk.conf.
>Fix:
I think the following change to hacks.mk is correct, but I could be wrong:
from:
.if ${OPSYS} == "Darwin"
to:
.if ${OPSYS} == "Darwin" && ${PREFER_NATIVE} == "yes"
>Release-Note:
>Audit-Trail:
From: "OBATA Akio" <obache@netbsd.org>
To: gnats-bugs@netbsd.org
Cc:
Subject: Re: pkg/46720: devel/glib2 configure fails on Darwin
Date: Thu, 19 Jul 2012 20:41:01 +0900
Following patch works as expected for you?
Index: devel/glib2/hacks.mk
===================================================================
RCS file: /cvsroot/pkgsrc/devel/glib2/hacks.mk,v
retrieving revision 1.6
diff -u -r1.6 hacks.mk
--- devel/glib2/hacks.mk 1 May 2012 18:45:52 -0000 1.6
+++ devel/glib2/hacks.mk 19 Jul 2012 11:31:35 -0000
@@ -12,12 +12,17 @@
.endif
.if ${OPSYS} == "Darwin"
+CHECK_BUILTIN.libiconv:= yes
+. include "../../converters/libiconv/builtin.mk"
+CHECK_BUILTIN.libiconv:= no
+. if ${ICONV_TYPE} == "native"
PKG_HACKS+= darwin-iconv
SUBST_CLASSES+= iconv
SUBST_STAGE.iconv= pre-configure
SUBST_MESSAGE.iconv= Changing libiconv_open to iconv_open.
SUBST_FILES.iconv= configure
SUBST_SED.iconv= -e 's,libiconv_open,iconv_open,g'
+. endif
.endif
# Work around unresolved symbol g_test_config_vars during build
--
OBATA Akio / obache@NetBSD.org
From: Jason bacon <jwbacon@tds.net>
To: gnats-bugs@NetBSD.org
Cc: OBATA Akio <obache@netbsd.org>, pkg-manager@netbsd.org,
gnats-admin@netbsd.org, pkgsrc-bugs@netbsd.org
Subject: Re: pkg/46720: devel/glib2 configure fails on Darwin
Date: Thu, 19 Jul 2012 18:02:10 -0500
Yes, it works. Thanks for the quick response...
On 7/19/12 6:45 AM, OBATA Akio wrote:
> The following reply was made to PR pkg/46720; it has been noted by GNATS.
>
> From: "OBATA Akio"<obache@netbsd.org>
> To: gnats-bugs@netbsd.org
> Cc:
> Subject: Re: pkg/46720: devel/glib2 configure fails on Darwin
> Date: Thu, 19 Jul 2012 20:41:01 +0900
>
> Following patch works as expected for you?
>
> Index: devel/glib2/hacks.mk
> ===================================================================
> RCS file: /cvsroot/pkgsrc/devel/glib2/hacks.mk,v
> retrieving revision 1.6
> diff -u -r1.6 hacks.mk
> --- devel/glib2/hacks.mk 1 May 2012 18:45:52 -0000 1.6
> +++ devel/glib2/hacks.mk 19 Jul 2012 11:31:35 -0000
> @@ -12,12 +12,17 @@
> .endif
>
> .if ${OPSYS} == "Darwin"
> +CHECK_BUILTIN.libiconv:= yes
> +. include "../../converters/libiconv/builtin.mk"
> +CHECK_BUILTIN.libiconv:= no
> +. if ${ICONV_TYPE} == "native"
> PKG_HACKS+= darwin-iconv
> SUBST_CLASSES+= iconv
> SUBST_STAGE.iconv= pre-configure
> SUBST_MESSAGE.iconv= Changing libiconv_open to iconv_open.
> SUBST_FILES.iconv= configure
> SUBST_SED.iconv= -e 's,libiconv_open,iconv_open,g'
> +. endif
> .endif
>
> # Work around unresolved symbol g_test_config_vars during build
>
> --
> OBATA Akio / obache@NetBSD.org
>
State-Changed-From-To: open->closed
State-Changed-By: obache@NetBSD.org
State-Changed-When: Wed, 25 Jul 2012 13:18:05 +0000
State-Changed-Why:
Committed proposed patch. Thanks!
From: "OBATA Akio" <obache@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc:
Subject: PR/46720 CVS commit: pkgsrc/devel/glib2
Date: Wed, 25 Jul 2012 13:17:08 +0000
Module Name: pkgsrc
Committed By: obache
Date: Wed Jul 25 13:17:08 UTC 2012
Modified Files:
pkgsrc/devel/glib2: hacks.mk
Log Message:
darwin-iconv hack is only required for the case using native libiconv.
PR 46720.
To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 pkgsrc/devel/glib2/hacks.mk
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Responsible-Changed-From-To: pkg-manager->adam
Responsible-Changed-By: dholland@NetBSD.org
Responsible-Changed-When: Sat, 29 Sep 2012 20:43:33 +0000
Responsible-Changed-Why:
adam@ reverted the fix on September 7 with the message
"Darwin always needs iconv hack" and did not respond to obache's
request for clarification.
State-Changed-From-To: closed->open
State-Changed-By: dholland@NetBSD.org
State-Changed-When: Sat, 29 Sep 2012 20:43:33 +0000
State-Changed-Why:
.
Responsible-Changed-From-To: adam->pkg-manager
Responsible-Changed-By: dholland@NetBSD.org
Responsible-Changed-When: Sat, 29 Sep 2012 20:46:20 +0000
Responsible-Changed-Why:
er sorry, he did respond, just from an unexpected address. Anyway, tne
conclusion seems to be that libiconv detection on MacOS is broken.
From: David Holland <dholland-pbugs@netbsd.org>
To: gnats-bugs@netbsd.org
Cc:
Subject: Re: pkg/46720: devel/glib2 configure fails on Darwin
Date: Sat, 29 Sep 2012 20:47:46 +0000
forwarded from pkgsrc-changes for the record:
------
From: Katarzyna Ciarci?ska <kasia@albedo.art.pl>
To: OBATA Akio <obache@netbsd.org>
Cc: Adam Ciarcinski <adam@netbsd.org>, pkgsrc-changes@netbsd.org
Subject: Re: CVS commit: pkgsrc/devel/glib2
Date: Fri, 7 Sep 2012 21:33:16 +0200
No idea really.
First of all, only 32-bit libiconv has both symbols, 64-bit version has only iconv_open():
% nm -arch i386 /usr/lib/libiconv.2.dylib | grep iconv_open
00012d1b T _iconv_open
00013ddf T _libiconv_open
% nm -arch x86_64 /usr/lib/libiconv.2.dylib | grep iconv_open
0000000000013171 T _iconv_open
Second:
% cd pkgsrc/devel/glib2
% % bmake -V '${ICONV_TYPE}'
gnu
% bmake -V '${USE_BUILTIN.iconv}'
yes
% bmake -V '${IS_BUILTIN.iconv}'
yes
Which is contrary to converters/libiconv/bultin.mk, which seems to be wrong:
.if !defined(ICONV_TYPE)
ICONV_TYPE?= gnu
. if !empty(USE_BUILTIN.iconv:M[yY][eE][sS]) && \
!empty(IS_BUILTIN.iconv:M[nN][oO])
ICONV_TYPE= native
. endif
.endif
My guess is, there's something wrong with auto-detecting built-in libiconv on Darwin (maybe other platforms too).
The above is on both Lion and Mountain Lion.
Kind regards,
Adam
State-Changed-From-To: open->closed
State-Changed-By: jperkin@NetBSD.org
State-Changed-When: Mon, 18 Mar 2013 14:34:06 +0000
State-Changed-Why:
This, and other packages using glib2's configure, should be fixed in:
http://mail-index.netbsd.org/pkgsrc-changes/2013/03/18/msg086536.html
>Unformatted:
(Contact us)
$NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.