Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 13 Oct 2004 18:35:12 +0200
From:      Oliver Eikemeier <eikemeier@fillmore-labs.com>
To:        ports@FreeBSD.org
Subject:   [PRC] devel/gettext: eliminate dependency on libexpat on [56].x
Message-ID:  <416D5940.4050406@fillmore-labs.com>

next in thread | raw e-mail | index | archive | help
This patch eliminates the dependency on libexpat for ports that use libintl.

The correct fix would be to  split devel/gettext into libintl and gettext-tools,
the latter mostly being a runtime dependency.

Since this requires a lot of testing, a simple hack is to use libbsdxml,
which is in the base on systems >= 5.x. This could surely be done better
than in this hacky patch, and does fail on very early 5.0 systems, nevertheless
this patch works for me. If no one comes up with a better patch, and nobody
has any objections I'll commit this in the next couple of days.

Sorry for the overly long lines.
-Oliver

Index: Makefile
===================================================================
RCS file: /home/ncvs/ports/devel/gettext/Makefile,v
retrieving revision 1.63
diff -u -u -r1.63 Makefile
--- Makefile	27 Aug 2004 17:52:06 -0000	1.63
+++ Makefile	28 Aug 2004 09:05:18 -0000
@@ -15,8 +15,6 @@
 MAINTAINER=	ports@FreeBSD.org
 COMMENT=	GNU gettext package
 
-LIB_DEPENDS=	expat.5:${PORTSDIR}/textproc/expat2
-
 GNU_CONFIGURE=	yes
 CONFIGURE_TARGET=	--build=${ARCH}-portbld-freebsd${OSREL}
 USE_ICONV=	yes
@@ -27,8 +25,7 @@
 		MAKEINFO="makeinfo --no-split" \
 		CPPFLAGS="-I${LOCALBASE}/include" \
 		LDFLAGS="-L${LOCALBASE}/lib"
-CONFIGURE_ARGS=	--with-libexpat-prefix=${LOCALBASE}/lib \
-		--mandir=${PREFIX}/man
+CONFIGURE_ARGS=	--mandir=${PREFIX}/man
 INSTALLS_SHLIB=	yes
 
 .if !defined(WITHOUT_GETTEXT_OPTIONS)
@@ -59,6 +56,11 @@
 
 .include <bsd.port.pre.mk>
 
+.if ${OSVERSION} < 500000
+CONFIGURE_ARGS+=	--with-libexpat-prefix=${LOCALBASE}/lib
+LIB_DEPENDS+=	expat.5:${PORTSDIR}/textproc/expat2
+.endif
+
 pre-extract:
 .if exists(${PREFIX}/bin/kaffe)
 	@${ECHO_MSG} "Gettext won't build with Kaffe's jar utility.  Doing:"
Index: files/patch-gettext-tools_config.h.in
===================================================================
RCS file: files/patch-gettext-tools_config.h.in
diff -N files/patch-gettext-tools_config.h.in
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-gettext-tools_config.h.in	13 Oct 2004 16:11:21 -0000
@@ -0,0 +1,12 @@
+--- gettext-tools/config.h.in.orig	Sat Aug 28 11:50:21 2004
++++ gettext-tools/config.h.in	Sat Aug 28 11:51:26 2004
+@@ -45,6 +45,9 @@
+ /* Define to 1 if you have the `atexit' function. */
+ #undef HAVE_ATEXIT
+ 
++/* Define if the expat library is bsdxml. */
++#undef HAVE_BSDXML
++
+ /* Define to 1 if you have the `btowc' function. */
+ #undef HAVE_BTOWC
+ 
Index: files/patch-gettext-tools_configure
===================================================================
RCS file: /home/ncvs/ports/devel/gettext/files/patch-gettext-tools_configure,v
retrieving revision 1.2
diff -u -u -r1.2 patch-gettext-tools_configure
--- files/patch-gettext-tools_configure	23 Jan 2004 18:12:16 -0000	1.2
+++ files/patch-gettext-tools_configure	13 Oct 2004 16:14:14 -0000
@@ -1,13 +1,38 @@
-$FreeBSD: ports/devel/gettext/files/patch-gettext-tools_configure,v 1.2 2004/01/23 18:12:16 trevor Exp $
-
---- gettext-tools/configure.orig	Wed Jun 11 17:11:46 2003
-+++ gettext-tools/configure	Wed Jun 11 17:12:02 2003
-@@ -1887,7 +1887,7 @@
-           ac_config_headers="$ac_config_headers config.h"
+--- gettext-tools/configure.orig	Wed Dec 17 21:09:24 2003
++++ gettext-tools/configure	Sat Aug 28 12:28:03 2004
+@@ -463,7 +463,7 @@
+ # include <unistd.h>
+ #endif"
  
+-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM AWK SET_MAKE am__leading_dot localedir docdir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE YACC GCJ GCJFLAGS HAVE_GCJ BUILDJAVAEXE CPP EGREP HAVE_GCJ_IN_PATH HAVE_JAVAC_IN_PATH HAVE_JIKES_IN_PATH JAVAC CLASSPATH CLASSPATH_SEPARATOR HAVE_GCJ_C HAVE_JAVAC HAVE_JIKES JAR BUILDJAVA HAVE_GIJ_IN_PATH HAVE_JAVA_IN_PATH HAVE_JRE_IN_PATH HAVE_JVIEW_IN_PATH
 JAVA HAVE_GIJ HAVE_JAVA HAVE_JRE HAVE_JVIEW TESTJAVA build build_cpu build_vendor build_os host host_cpu host_vendor host_os LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB DLLTOOL ac_ct_DLLTOOL AS ac_ct_AS OBJDUMP ac_ct_OBJDUMP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL RELOCATABLE LIBOBJS SET_RELOCATABLE RELOCATABLE_VIA_LD_TRUE RELOCATABLE_VIA_LD_FALSE STDBOOL_H HAVE__BOOL ALLOCA ALLOCA_H FNMATCH_H MKINSTALLDIRS USE_NLS MSGFMT GMSGFMT XGETTEXT MSGMERGE GLIBC21 HAVE_POSIX_PRINTF HAVE_ASPRINTF HAVE_SNPRINTF HAVE_WPRINTF LIBICONV LTLIBICONV INTLBISON BUILD_INCLUDED_LIBINTL USE_INCLUDED_LIBINTL CATOBJEXT DATADIRNAME INSTOBJEXT GENCAT INTLOBJS INTL_LIBTOOL_SUFFIX_PREFIX INTLLIBS LIBINTL LTLIBINTL POSUB LIBEXPAT LTLIBEXPAT HAVE_LIBEXPAT EMACS lispdir aclocaldir DVIPS TEXI2PDF PERL CROSS_COMPILING LOCALE_FR LTALLOCA LTLIBOBJS'
++ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM AWK SET_MAKE am__leading_dot localedir docdir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE YACC GCJ GCJFLAGS HAVE_GCJ BUILDJAVAEXE CPP EGREP HAVE_GCJ_IN_PATH HAVE_JAVAC_IN_PATH HAVE_JIKES_IN_PATH JAVAC CLASSPATH CLASSPATH_SEPARATOR HAVE_GCJ_C HAVE_JAVAC HAVE_JIKES JAR BUILDJAVA HAVE_GIJ_IN_PATH HAVE_JAVA_IN_PATH HAVE_JRE_IN_PATH HAVE_JVIEW_IN_PATH
 JAVA HAVE_GIJ HAVE_JAVA HAVE_JRE HAVE_JVIEW TESTJAVA build build_cpu build_vendor build_os host host_cpu host_vendor host_os LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB DLLTOOL ac_ct_DLLTOOL AS ac_ct_AS OBJDUMP ac_ct_OBJDUMP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL RELOCATABLE LIBOBJS SET_RELOCATABLE RELOCATABLE_VIA_LD_TRUE RELOCATABLE_VIA_LD_FALSE STDBOOL_H HAVE__BOOL ALLOCA ALLOCA_H FNMATCH_H MKINSTALLDIRS USE_NLS MSGFMT GMSGFMT XGETTEXT MSGMERGE GLIBC21 HAVE_POSIX_PRINTF HAVE_ASPRINTF HAVE_SNPRINTF HAVE_WPRINTF LIBICONV LTLIBICONV INTLBISON BUILD_INCLUDED_LIBINTL USE_INCLUDED_LIBINTL CATOBJEXT DATADIRNAME INSTOBJEXT GENCAT INTLOBJS INTL_LIBTOOL_SUFFIX_PREFIX INTLLIBS LIBINTL LTLIBINTL POSUB LIBEXPAT LTLIBEXPAT HAVE_LIBEXPAT HAVE_BSDXML EMACS lispdir aclocaldir DVIPS TEXI2PDF PERL CROSS_COMPILING LOCALE_FR LTALLOCA LTLIBOBJS'
+ ac_subst_files=''
+ 
+ # Initialize some variables set by options.
+@@ -1923,7 +1923,7 @@
+ 
+ docdir='${datadir}/doc/gettext'
  
 -test "$mandir" != '${prefix}/man' || mandir='${datadir}/man'
 +test "$mandir" != '${prefix}/man' || mandir='${prefix}/man'
  
  ac_ext=c
  ac_cpp='$CPP $CPPFLAGS'
+@@ -36072,6 +36072,17 @@
+ 
+ 
+ case "$host_os" in
++  freebsd[5-9]*)
++
++cat >>confdefs.h <<\_ACEOF
++#define HAVE_BSDXML 1
++#define HAVE_LIBEXPAT 1
++_ACEOF
++
++    LIBEXPAT="-lbsdxml"
++    LTLIBEXPAT="-lbsdxml"
++
++    ;;
+   linux*)
+ 
+ cat >>confdefs.h <<\_ACEOF
Index: files/patch-gettext-tools_src_x-glade.c
===================================================================
RCS file: files/patch-gettext-tools_src_x-glade.c
diff -N files/patch-gettext-tools_src_x-glade.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-gettext-tools_src_x-glade.c	28 Aug 2004 09:53:49 -0000
@@ -0,0 +1,15 @@
+--- gettext-tools/src/x-glade.c.orig	Sat Aug 28 11:53:08 2004
++++ gettext-tools/src/x-glade.c	Sat Aug 28 11:53:48 2004
+@@ -30,7 +30,11 @@
+ # include <dlfcn.h>
+ #else
+ # if HAVE_LIBEXPAT
+-#  include <expat.h>
++#  if HAVE_BSDXML
++#   include <bsdxml.h>
++#  else
++#   include <expat.h>
++#  endif
+ # endif
+ #endif
+ 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?416D5940.4050406>