sys-libs/timezone-data: rework libintl detection #578424
authorMike Frysinger <vapier@gentoo.org>
Tue, 12 Apr 2016 01:46:02 +0000 (21:46 -0400)
committerMike Frysinger <vapier@gentoo.org>
Tue, 12 Apr 2016 01:46:12 +0000 (21:46 -0400)
sys-libs/timezone-data/files/timezone-data-2016c-makefile.patch [new file with mode: 0644]
sys-libs/timezone-data/timezone-data-2016c.ebuild

diff --git a/sys-libs/timezone-data/files/timezone-data-2016c-makefile.patch b/sys-libs/timezone-data/files/timezone-data-2016c-makefile.patch
new file mode 100644 (file)
index 0000000..b099e05
--- /dev/null
@@ -0,0 +1,81 @@
+ - Fix up default paths
+ - Support env CC
+ - Don't build/install libtz.a
+ - Don't install man-pages provided by sys-apps/man-pages
+ - Move tzselect, zic, and zdump to bin
+ - Do not run network based unittests
+
+--- a/Makefile
++++ b/Makefile
+@@ -45,21 +45,21 @@ POSIXRULES=        America/New_York
+ # Everything gets put in subdirectories of. . .
+-TOPDIR=               /usr/local
++TOPDIR=               /usr
+ # "Compiled" time zone information is placed in the "TZDIR" directory
+ # (and subdirectories).
+ # Use an absolute path name for TZDIR unless you're just testing the software.
+ TZDIR_BASENAME=       zoneinfo
+-TZDIR=                $(TOPDIR)/etc/$(TZDIR_BASENAME)
++TZDIR=                $(TOPDIR)/share/$(TZDIR_BASENAME)
+ # Types to try, as an alternative to time_t.  int64_t should be first.
+ TIME_T_ALTERNATIVES= int64_t int32_t uint32_t uint64_t
+ # The "tzselect", "zic", and "zdump" commands get installed in. . .
+-ETCDIR=               $(TOPDIR)/etc
++SBINDIR=              $(TOPDIR)/sbin
+ # If you "make INSTALL", the "date" command gets installed in. . .
+@@ -67,7 +67,7 @@ BINDIR=              $(TOPDIR)/bin
+ # Manual pages go in subdirectories of. . .
+-MANDIR=               $(TOPDIR)/man
++MANDIR=               $(TOPDIR)/share/man
+ # Library functions are put in an archive in LIBDIR.
+@@ -298,8 +298,7 @@ GZIPFLAGS= -9n
+ #MAKE=                make
+-cc=           cc
+-CC=           $(cc) -DTZDIR=\"$(TZDIR)\"
++CPPFLAGS+=            -DTZDIR=\"$(TZDIR)\"
+ AR=           ar
+@@ -352,16 +354,12 @@ ALL:             all date
+ install:      all $(DATA) $(REDO) $(MANS)
+               mkdir -p $(DESTDIR)$(ETCDIR) $(DESTDIR)$(TZDIR) \
+-                      $(DESTDIR)$(LIBDIR) \
++                      $(DESTDIR)$(BINDIR) \
+                       $(DESTDIR)$(MANDIR)/man3 $(DESTDIR)$(MANDIR)/man5 \
+                       $(DESTDIR)$(MANDIR)/man8
+               $(ZIC_INSTALL) -l $(LOCALTIME) -p $(POSIXRULES)
+               cp -f iso3166.tab $(ZONETABLES) $(DESTDIR)$(TZDIR)/.
+-              cp tzselect zic zdump $(DESTDIR)$(ETCDIR)/.
++              cp tzselect zic zdump $(DESTDIR)$(BINDIR)/.
+-              cp libtz.a $(DESTDIR)$(LIBDIR)/.
+-              $(RANLIB) $(DESTDIR)$(LIBDIR)/libtz.a
+               cp -f newctime.3 newtzset.3 $(DESTDIR)$(MANDIR)/man3/.
+-              cp -f tzfile.5 $(DESTDIR)$(MANDIR)/man5/.
+-              cp -f tzselect.8 zdump.8 zic.8 $(DESTDIR)$(MANDIR)/man8/.
+ INSTALL:      ALL install date.1
+               mkdir -p $(DESTDIR)$(BINDIR) $(DESTDIR)$(MANDIR)/man1
+@@ -440,7 +438,7 @@ tzselect:  tzselect.ksh
+               chmod +x $@
+ check:                check_character_set check_white_space check_links check_sorted \
+-                check_tables check_web
++                check_tables
+ check_character_set: $(ENCHILADA)
+               LC_ALL=en_US.utf8 && export LC_ALL && \
index 822ec694ddee8b154d03e514721242d8f52b817e..70d4f5c49b250910fee81bb215f86c1b526273a7 100644 (file)
@@ -16,9 +16,11 @@ SRC_URI="http://www.iana.org/time-zones/repository/releases/tzdata${data_ver}.ta
 LICENSE="BSD public-domain"
 SLOT="0"
 KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
-IUSE="nls leaps_timezone elibc_FreeBSD elibc_glibc"
+IUSE="nls leaps_timezone elibc_FreeBSD"
 
-RDEPEND="!sys-libs/glibc[vanilla(+)]"
+DEPEND="nls? ( virtual/libintl )"
+RDEPEND="${DEPEND}
+       !sys-libs/glibc[vanilla(+)]"
 
 S=${WORKDIR}
 
@@ -27,6 +29,27 @@ src_prepare() {
        tc-is-cross-compiler && cp -pR "${S}" "${S}"-native
 }
 
+src_configure() {
+       tc-export CC
+
+       append-lfs-flags #471102
+
+       if use elibc_FreeBSD || use elibc_Darwin ; then
+               append-cppflags -DSTD_INSPIRED #138251
+       fi
+
+       append-cppflags -DHAVE_GETTEXT=$(usex nls 1 0) -DTZ_DOMAIN='\"libc\"'
+       LDLIBS=""
+       if use nls ; then
+               # See if an external libintl is available. #154181 #578424
+               local c="${T}/test"
+               echo 'main(){}' > "${c}.c"
+               if $(tc-getCC) ${CPPFLAGS} ${CFLAGS} ${LDFLAGS} "${c}.c" -o "${c}" -lintl 2>/dev/null ; then
+                       LDLIBS+=" -lintl"
+               fi
+       fi
+}
+
 _emake() {
        emake \
                TOPDIR="${EPREFIX}/usr" \
@@ -35,16 +58,6 @@ _emake() {
 }
 
 src_compile() {
-       local LDLIBS
-       tc-export CC
-       append-lfs-flags #471102
-       if use elibc_FreeBSD || use elibc_Darwin ; then
-               append-cppflags -DSTD_INSPIRED #138251
-       fi
-       export NLS=$(usex nls 1 0)
-       if use nls && ! use elibc_glibc ; then
-               LDLIBS+=" -lintl" #154181
-       fi
        # TOPDIR is used in some utils when compiling.
        _emake \
                AR="$(tc-getAR)" \