sys-libs/timezone-data: import latest stable from upstream

BUG=chromium-os:21850
TEST=`emerge chromeos-base` works cleanly
TEST=`emerge timezone-data` works cleanly
TEST=build_packages+build_image for x86-alex produces a bootable image
TEST=build_packages+build_image for arm-generic works
Change-Id: I35a76e6319ebcc6c95b9a7c1792686c1c2a291dd
Reviewed-on: http://gerrit.chromium.org/gerrit/10315
Tested-by: Mike Frysinger <vapier@chromium.org>
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Matt Tennant <mtennant@chromium.org>
This commit is contained in:
Mike Frysinger 2011-10-19 14:32:29 -04:00 committed by Gerrit
parent 2ec3272ca5
commit f04350375f
2 changed files with 250 additions and 0 deletions

View File

@ -0,0 +1,138 @@
- Fix up default paths
- Support env DESTDIR / LDFLAGS / CFLAGS / CC
- Use awk instead of nawk
- Don't build/install libtz.a
- Don't install man-pages provided by sys-apps/man-pages
- Move zic zdump to sbin and tzselect to bin ala glibc
- Install posix zoneinfo into zoneinfo/posix/ instead of zoneinfo-posix/ ala glibc
- Install leaps zoneinfo into zoneinfo/right/ ala glibc
- Disable broken web test
- Make sure tzselect uses #!/bin/bash and not #!/bin/ksh
- Flags to the linking are passed as LDFLAGS, not LFLAGS
- LDFLAGS was missed for the 'date' target
--- Makefile
+++ Makefile
@@ -35,5 +35,5 @@
# Everything gets put in subdirectories of. . .
-TOPDIR= /usr/local
+TOPDIR= $(DESTDIR)/usr
# "Compiled" time zone information is placed in the "TZDIR" directory
@@ -41,9 +41,9 @@
# Use an absolute path name for TZDIR unless you're just testing the software.
-TZDIR= $(TOPDIR)/etc/zoneinfo
+TZDIR= $(TOPDIR)/share/zoneinfo
# 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. . .
@@ -53,5 +53,5 @@
# Manual pages go in subdirectories of. . .
-MANDIR= $(TOPDIR)/man
+MANDIR= $(TOPDIR)/share/man
# Library functions are put in an archive in LIBDIR.
@@ -211,5 +211,5 @@
# falls on a Friday, Saturday, or Sunday.
-CFLAGS=
+CFLAGS += -std=gnu99
# If you want zic's -s option used when installing, uncomment the next line
@@ -220,5 +220,5 @@
# The name of a Posix-compliant `awk' on your system.
-AWK= nawk
+AWK= awk
# The path where SGML DTDs are kept.
@@ -241,8 +241,10 @@
###############################################################################
-cc= cc
-CC= $(cc) -DTZDIR=\"$(TZDIR)\"
+CC+= -DTZDIR=\"$(TZDIR)\"
+ifeq ($(NLS),1)
+CC += -DHAVE_GETTEXT=1 -DTZ_DOMAIN=\"libc\"
+endif
TZCSRCS= zic.c localtime.c asctime.c scheck.c ialloc.c
TZCOBJS= zic.o localtime.o asctime.o scheck.o ialloc.o
@@ -281,11 +281,13 @@
ALL: all date
-install: all $(DATA) $(REDO) $(TZLIB) $(MANS) $(TABDATA)
+install: all $(DATA) $(REDO) $(MANS) $(TABDATA)
$(ZIC) -y $(YEARISTYPE) \
-d $(TZDIR) -l $(LOCALTIME) -p $(POSIXRULES)
-rm -f $(TZDIR)/iso3166.tab $(TZDIR)/zone.tab
cp iso3166.tab zone.tab $(TZDIR)/.
- -mkdir $(TOPDIR) $(ETCDIR)
- cp tzselect zic zdump $(ETCDIR)/.
+ -mkdir $(TOPDIR) $(SBINDIR)
+ cp zic zdump $(SBINDIR)/.
+ -mkdir $(TOPDIR) $(BINDIR)
+ cp tzselect $(BINDIR)/.
-mkdir $(TOPDIR) $(MANDIR) \
$(MANDIR)/man3 $(MANDIR)/man5 $(MANDIR)/man8
@@ -297,6 +299,4 @@
$(MANDIR)/man8/zic.8
cp newctime.3 newtzset.3 $(MANDIR)/man3/.
- cp tzfile.5 $(MANDIR)/man5/.
- cp tzselect.8 zdump.8 zic.8 $(MANDIR)/man8/.
INSTALL: ALL install date.1
@@ -309,10 +309,10 @@
cp date.1 $(MANDIR)/man1/.
zdump: $(TZDOBJS)
- $(CC) $(CFLAGS) $(LFLAGS) $(TZDOBJS) $(LDLIBS) -o $@
+ $(CC) $(CFLAGS) $(LDFLAGS) $(TZDOBJS) $(LDLIBS) -o $@
zic: $(TZCOBJS) yearistype
- $(CC) $(CFLAGS) $(LFLAGS) $(TZCOBJS) $(LDLIBS) -o $@
+ $(CC) $(CFLAGS) $(LDFLAGS) $(TZCOBJS) $(LDLIBS) -o $@
yearistype: yearistype.sh
cp yearistype.sh yearistype
@@ -333,7 +333,7 @@
# to using them, or vice versa.
other_two: zic leapseconds $(TDATA)
- $(ZIC) -y $(YEARISTYPE) -d $(TZDIR)-posix -L /dev/null $(TDATA)
+ $(ZIC) -y $(YEARISTYPE) -d $(TZDIR)/posix -L /dev/null $(TDATA)
$(ZIC) -y $(YEARISTYPE) \
- -d $(TZDIR)-leaps -L leapseconds $(TDATA)
+ -d $(TZDIR)/right -L leapseconds $(TDATA)
posix_right: posix_only other_two
@@ -351,7 +351,7 @@
then ranlib $@ ; fi
date: $(DATEOBJS)
- $(CC) $(CFLAGS) date.o localtime.o asctime.o strftime.o \
+ $(CC) $(CFLAGS) $(LDFLAGS) date.o localtime.o asctime.o strftime.o \
$(LDLIBS) -lc -o $@
tzselect: tzselect.ksh
@@ -366,5 +366,5 @@
chmod +x $@
-check: check_tables check_web
+check: check_tables
check_tables: checktab.awk $(PRIMARY_YDATA)
--- tzselect.ksh
+++ tzselect.ksh
@@ -1,3 +1,3 @@
-#! /bin/ksh
+#! /bin/bash
# '@(#)tzselect.ksh 1.8'

View File

@ -0,0 +1,112 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-libs/timezone-data/timezone-data-2011j.ebuild,v 1.3 2011/10/19 20:12:23 vapier Exp $
inherit eutils toolchain-funcs flag-o-matic
code_ver=${PV%j}i
data_ver=${PV}
DESCRIPTION="Timezone data (/usr/share/zoneinfo) and utilities (tzselect/zic/zdump)"
HOMEPAGE="http://www.twinsun.com/tz/tz-link.htm"
SRC_URI="ftp://elsie.nci.nih.gov/pub/tzdata${data_ver}.tar.gz
ftp://elsie.nci.nih.gov/pub/tzcode${code_ver}.tar.gz
mirror://gentoo/tzdata${data_ver}.tar.gz
mirror://gentoo/tzcode${code_ver}.tar.gz"
LICENSE="BSD public-domain"
SLOT="0"
KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~sparc-fbsd ~x86-fbsd"
IUSE="nls elibc_FreeBSD elibc_glibc"
RDEPEND="!<sys-libs/glibc-2.3.5"
S=${WORKDIR}
src_unpack() {
unpack ${A}
epatch "${FILESDIR}"/${PN}-2008h-makefile.patch
tc-is-cross-compiler && cp -pR "${S}" "${S}"-native
}
src_compile() {
local LDLIBS
tc-export CC
use elibc_FreeBSD && append-flags -DSTD_INSPIRED #138251
if use nls ; then
use elibc_glibc || LDLIBS="${LDLIBS} -lintl" #154181
export NLS=1
else
export NLS=0
fi
# Makefile uses LBLIBS for the libs (which defaults to LDFLAGS)
# But it also uses LFLAGS where it expects the real LDFLAGS
emake \
LDLIBS="${LDLIBS}" \
|| die "emake failed"
if tc-is-cross-compiler ; then
emake -C "${S}"-native \
CC=$(tc-getBUILD_CC) \
CFLAGS="${BUILD_CFLAGS}" \
LDFLAGS="${BUILD_LDFLAGS}" \
LDLIBS="${LDLIBS}" \
zic || die
fi
}
src_install() {
local zic=""
tc-is-cross-compiler && zic="zic=${S}-native/zic"
emake install ${zic} DESTDIR="${D}" || die
rm -rf "${D}"/usr/share/zoneinfo-leaps
dodoc README Theory
dohtml *.htm
}
pkg_config() {
# make sure the /etc/localtime file does not get stale #127899
local tz src etc_lt="${ROOT}etc/localtime"
if has_version '<sys-apps/baselayout-2' ; then
src="${ROOT}etc/conf.d/clock"
tz=$(unset TIMEZONE ; source "${src}" ; echo ${TIMEZONE-FOOKABLOIE})
else
src="${ROOT}etc/timezone"
if [[ -e ${src} ]] ; then
tz=$(sed -e 's:#.*::' -e 's:[[:space:]]*::g' -e '/^$/d' "${src}")
else
tz="FOOKABLOIE"
fi
fi
[[ -z ${tz} ]] && return 0
if [[ ${tz} == "FOOKABLOIE" ]] ; then
elog "You do not have TIMEZONE set in ${src}."
if [[ ! -e ${etc_lt} ]] ; then
# if /etc/localtime is a symlink somewhere, assume they
# know what they're doing and they're managing it themselves
if [[ ! -L ${etc_lt} ]] ; then
cp -f "${ROOT}"/usr/share/zoneinfo/Factory "${etc_lt}"
elog "Setting ${etc_lt} to Factory."
else
elog "Assuming your ${etc_lt} symlink is what you want; skipping update."
fi
else
elog "Skipping auto-update of ${etc_lt}."
fi
return 0
fi
if [[ ! -e ${ROOT}/usr/share/zoneinfo/${tz} ]] ; then
elog "You have an invalid TIMEZONE setting in ${src}"
elog "Your ${etc_lt} has been reset to Factory; enjoy!"
tz="Factory"
fi
einfo "Updating ${etc_lt} with ${ROOT}usr/share/zoneinfo/${tz}"
[[ -L ${etc_lt} ]] && rm -f "${etc_lt}"
cp -f "${ROOT}"/usr/share/zoneinfo/"${tz}" "${etc_lt}"
}
pkg_postinst() {
pkg_config
}