Subject: pkg/34495: openjade fails to build on Darwin
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: Ben Collver <collver@peak.org>
List: pkgsrc-bugs
Date: 09/08/2006 14:15:01
>Number:         34495
>Category:       pkg
>Synopsis:       openjade fails to build on Darwin
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Sep 08 14:15:00 +0000 2006
>Originator:     Ben Collver
>Release:        Darwin 8.7.1 i386
>Organization:
>Environment:


System: Darwin dude.terrorpin.net 8.7.1 Darwin Kernel Version 8.7.1: Wed Jun  7 16:19:56 PDT 2006; root:xnu-792.9.72.obj~2/RELEASE_I386 i386


>Description:


Several issues prevent textproc/openjade from building on Darwin.

The link flags need to be slightly modified.

The C++ compiler needs to be used to link the libraries.

LT_LIBS must only contain libtool libraries, because it is used in a Makefile dependency line.


>How-To-Repeat:





>Fix:


--- openjade.diff begins here ---
Index: distinfo
===================================================================
RCS file: /cvsroot/pkgsrc/textproc/openjade/distinfo,v
retrieving revision 1.7
diff -u -r1.7 distinfo
--- distinfo	24 Feb 2005 14:48:44 -0000	1.7
+++ distinfo	8 Sep 2006 14:09:22 -0000
@@ -3,4 +3,6 @@
 SHA1 (openjade-1.3.2.tar.gz) = 54e1999f41450fbd62c5d466002d79d3efca2321
 RMD160 (openjade-1.3.2.tar.gz) = 3b12f6596a42c49a60cc07cd9b8f4c5fdf3bafd2
 Size (openjade-1.3.2.tar.gz) = 894834 bytes
-SHA1 (patch-aa) = 4914f08b6598d25af7b7f99a58e1e6490d292609
+SHA1 (patch-aa) = 93d3fa2707a70de3ae7fa22dc3d8894813b0e8db
+SHA1 (patch-ab) = cc5be75d416be38ada244301ba7171dc30751e75
+SHA1 (patch-ac) = f13e2445862c1a598ef230db89a04fba9b1dbdf5
Index: patches/patch-aa
===================================================================
RCS file: /cvsroot/pkgsrc/textproc/openjade/patches/patch-aa,v
retrieving revision 1.3
diff -u -r1.3 patch-aa
--- patches/patch-aa	16 Nov 2003 14:01:20 -0000	1.3
+++ patches/patch-aa	8 Sep 2006 14:09:22 -0000
@@ -1,8 +1,16 @@
-$NetBSD: patch-aa,v 1.3 2003/11/16 14:01:20 agc Exp $
+$NetBSD$
 
---- configure.orig	Sun Nov  9 21:44:24 2003
-+++ configure	Sun Nov  9 21:45:58 2003
-@@ -4899,16 +4899,16 @@
+--- configure.orig	2002-12-01 08:18:40.000000000 -0800
++++ configure
+@@ -3064,7 +3064,6 @@ test "$INSTALL" = "./config/install-sh -
+ 
+ case "${host}" in
+   *-*-darwin*)
+-    LINKFLAGS="-no-undefined"
+     ;;
+   *)
+     if test "$GXX"
+@@ -4899,16 +4898,16 @@ _ACEOF
  
  fi
  
@@ -23,7 +31,7 @@
  #include <assert.h>
  /* Override any gcc2 internal prototype to avoid an error.  */
  #ifdef __cplusplus
-@@ -4916,7 +4916,7 @@
+@@ -4916,7 +4915,7 @@ extern "C"
  #endif
  /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
@@ -32,7 +40,7 @@
  char (*f) ();
  
  #ifdef F77_DUMMY_MAIN
-@@ -4931,10 +4931,10 @@
+@@ -4931,10 +4930,10 @@ main ()
  /* The GNU C library defines this for functions which it implements
      to always fail with ENOSYS.  Some functions are actually named
      something starting with __ and the normal name is an alias.  */
@@ -45,7 +53,7 @@
  #endif
  
    ;
-@@ -4953,17 +4953,17 @@
+@@ -4953,17 +4952,17 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l
    ac_status=$?
    echo "$as_me:$LINENO: \$? = $ac_status" >&5
    (exit $ac_status); }; }; then
@@ -68,3 +76,23 @@
    cat >>confdefs.h <<\_ACEOF
  #define SP_HAVE_WCHAR 1
  _ACEOF
+@@ -7907,7 +7906,7 @@ else
+     ;;
+ 
+   darwin* | rhapsody*)
+-    allow_undefined_flag='-undefined suppress'
++    allow_undefined_flag='-undefined suppress -flat_namespace'
+     # FIXME: Relying on posixy $() will cause problems for
+     #        cross-compilation, but unfortunately the echo tests do not
+     #        yet detect zsh echo's removal of \ escapes.
+@@ -10251,6 +10250,10 @@ do
+ _ACEOF
+ cat >>$CONFIG_STATUS <<_ACEOF
+   -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
++	: Avoid regenerating within pkgsrc
++	exit 0
++	: Avoid regenerating within pkgsrc
++	exit 0
+     echo "running $SHELL $0 " $ac_configure_args " --no-create --no-recursion"
+     exec $SHELL $0 $ac_configure_args --no-create --no-recursion ;;
+ _ACEOF
Index: patches/patch-ab
===================================================================
RCS file: patches/patch-ab
diff -N patches/patch-ab
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ patches/patch-ab	8 Sep 2006 14:09:22 -0000
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- Makefile.lib.in.orig	2002-01-22 03:57:53.000000000 -0800
++++ Makefile.lib.in
+@@ -23,7 +23,7 @@ Makefile.lt:
+ 	echo 'LT_OBJS='`echo $(OBJS)|sed 's/\.o/.lo/g'` >Makefile.lt
+ 
+ lib$(LIB).la: $(LT_OBJS)
+-	$(LIBTOOL) --mode=link $(CC) $(LINKFLAGS) -o lib$(LIB).la $(LT_OBJS) \
++	$(LIBTOOL) --mode=link $(CXX) $(LINKFLAGS) -o lib$(LIB).la $(LT_OBJS) \
+ 	    -rpath $(libdir) -version-info $(LTVERSION) $(DEPLIBS)
+ 
+ install:
Index: patches/patch-ac
===================================================================
RCS file: patches/patch-ac
diff -N patches/patch-ac
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ patches/patch-ac	8 Sep 2006 14:09:22 -0000
@@ -0,0 +1,21 @@
+$NetBSD$
+
+--- Makefile.prog.in.orig	2002-01-22 03:57:53.000000000 -0800
++++ Makefile.prog.in
+@@ -12,14 +12,14 @@ LINKFLAGS = @LINKFLAGS@
+ 
+ ALL_LIBS = $(XLIBS) $(LIBS)
+ Makefile.lt:
+-	echo 'LT_LIBS='`echo $(ALL_LIBS)|sed 's/\.a/.la/g'` >Makefile.lt
++	echo 'LT_LIBS='`echo $(ALL_LIBS)|sed 's/\.a/.la/g|sed 's/-l[a-z]*//g'` >Makefile.lt
+ 
+ PROG:=$(shell echo "$(PROG)" | sed '@program_transform_name@')
+ 
+ all: $(PROG)
+ 
+ $(PROG): $(OBJS) $(COBJS) $(LT_LIBS)
+-	$(LIBTOOL) --mode=link $(CXX) $(LINKFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(COBJS) $(LT_LIBS)
++	$(LIBTOOL) --mode=link $(CXX) $(LINKFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(COBJS) `echo $(ALL_LIBS)|sed 's/\.a/.la/g'`
+ 
+ install: $(PROG)
+ 	-test -d $(DESTDIR)$(bindir) || \
--- openjade.diff ends here ---