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:

NetBSD Home
NetBSD PR Database Search

(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.