]> git.pld-linux.org Git - packages/tzdata.git/blobdiff - tzdata.spec
Update to 2020d
[packages/tzdata.git] / tzdata.spec
index 7422b0ecf8c51bde075fc14cfe4666178e1285a0..9d257b4e9f9a779a308c78adc967c74303c6e77c 100644 (file)
@@ -1,32 +1,43 @@
 #
 # Conditional build
-%bcond_without tests                   # make check
-#
-%define                tzcode_ver      2010f
-%define                tzdata_ver      2010h
+%bcond_without tests           # make check
+%bcond_without java            # build java subpackage
+
+%if "%{pld_release}" == "ac"
+%ifnarch i586 i686 pentium3 pentium4 athlon %{x8664}
+%undefine      with_java
+%endif
+%endif
+
 Summary:       Timezone data
 Summary(pl.UTF-8):     Dane o strefach czasowych
 Name:          tzdata
-Version:       %{tzdata_ver}
+Version:       2020d
 Release:       1
 License:       Public Domain (database), BSD/LGPL v2.1+ (code/test suite)
 Group:         Base
-Source0:       %{name}-base-0.tar.bz2
-# Source0-md5: 906a4c98cc5240f416524a256b039c42
-Source1:       ftp://elsie.nci.nih.gov/pub/%{name}%{tzdata_ver}.tar.gz
-# Source1-md5: d384ac091e6d56802f9b3e6b3d3f0f2e
-Source2:       ftp://elsie.nci.nih.gov/pub/tzcode%{tzcode_ver}.tar.gz
-# Source2-md5: e530cc9bbdfd5e8c1eac21a68f4d5656
+#Source0Download: https://www.iana.org/time-zones
+Source0:       https://www.iana.org/time-zones/repository/releases/tzdb-%{version}.tar.lz
+# Source0-md5: 06e1ef95398506c87d3224abfc6f59ff
 Source3:       timezone.init
 Source4:       timezone.sysconfig
-Patch0:                %{name}-test-update.patch
+Source5:       javazic.tar.gz
+# Source5-md5: 6a3392cd5f1594d13c12c1a836ac8d91
+Patch1:                javazic-fixup.patch
+Patch2:                install.patch
 URL:           http://www.twinsun.com/tz/tz-link.htm
-BuildRequires: gawk
-BuildRequires: perl-base
-BuildRequires: rpmbuild(macros) >= 1.228
-Requires(post,preun):  /sbin/chkconfig
+BuildRequires: rpm >= 4.4.9-56
+BuildRequires: rpmbuild(macros) >= 1.623
+%if %{with java}
+BuildRequires: jdk
+BuildRequires: jpackage-utils
+BuildRequires: rpm-javaprov
+%endif
+Requires(post,preun,postun):   systemd-units >= 38
+Requires:      %{name}-zoneinfo = %{version}-%{release}
 Requires:      /sbin/chkconfig
-Requires:      rc-scripts >= 0.4.1.4
+Requires:      rc-scripts >= 0.4.3.0
+Requires:      systemd-units >= 38
 BuildArch:     noarch
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
@@ -38,11 +49,34 @@ around the world.
 Ten pakiet zawiera pliki z danymi na temat reguł stref czasowych na
 całym świecie.
 
+%package -n java-tzdata
+Summary:       Timezone data for Java
+Summary(pl.UTF-8):     Dane stref czasowych dla Javy
+Group:         Base
+
+%description -n java-tzdata
+This package contains timezone information for use by Java runtimes.
+
+%description -n java-tzdata -l pl.UTF-8
+Ten pakiet zawiera informacje o strefach czasowych przeznaczone dla
+programów w Javie.
+
+%package zoneinfo
+Summary:       Timezone data
+Summary(pl.UTF-8):     Dane stref czasowych
+Group:         Base
+
+%description zoneinfo
+Timezone data.
+
+%description zoneinfo -l pl.UTF-8
+Dane stref czasowych.
+
 %package zoneinfo_right
 Summary:       Non-POSIX (real) time zones
 Summary(es.UTF-8):     Zonas de tiempo reales (no de POSIX)
 Summary(pl.UTF-8):     Nie-POSIX-owe (prawdziwe) strefy czasowe
-Group:         Libraries
+Group:         Base
 Obsoletes:     glibc-zoneinfo_right
 
 %description zoneinfo_right
@@ -69,33 +103,71 @@ Header file for timezone database.
 Plik nagłówkowy bazy danych stref czasowych.
 
 %prep
-%setup -qc
-mv tzdata/* .
-%{__tar} xzf %{SOURCE1} -C tzdata
-mkdir tzcode
-%{__tar} xzf %{SOURCE2} -C tzcode
-%patch0 -p1
-
-sed -e "
-s|@objpfx@|`pwd`/obj/|
-s|@datadir@|%{_datadir}|
-s|@install_root@|$RPM_BUILD_ROOT|
-" 'Makeconfig.in' > Makeconfig
-
-grep -v tz-art.htm tzcode/tz-link.htm > tzcode/tz-link.html
+%setup -qn tzdb-%{version}
+
+sed -i -e '/tz-art.html/d' tz-link.html
+
+%if %{with java}
+install -d javazic
+tar zxf %{SOURCE5} -C javazic
+cd javazic
+%patch1
+
+# Hack alert! sun.tools may be defined and installed in the
+# VM. In order to guarantee that we are using IcedTea/OpenJDK
+# for creating the zoneinfo files, rebase all the packages
+# from "sun." to "rht.". Unfortunately, gcj does not support
+# any of the -Xclasspath options, so we must go this route
+# to ensure the greatest compatibility.
+# XXX: do we want 'pld' instead of 'rht'?
+mv sun rht
+find . -type f -name '*.java' -print0 \
+       | xargs -0 -- sed -i -e 's:sun\.tools\.:rht.tools.:g' \
+                                                -e 's:sun\.util\.:rht.util.:g'
+cd -
+%endif
 
 %build
-%{__make}
+%{__make} \
+       CFLAGS="%{rpmcflags}" \
+       LDFLAGS="%{rpmldflags}" \
+       cc="%{__cc}"
+
+%if %{with java}
+cd javazic
+%javac -source 1.5 -target 1.5 -classpath . $(find -name '*.java')
+cd ..
+
+%java -classpath javazic/ rht.tools.javazic.Main -V %{version} \
+       -d zoneinfo/java \
+       africa antarctica asia australasia europe northamerica \
+       southamerica backward etcetera factory \
+       javazic/tzdata_jdk/gmt javazic/tzdata_jdk/jdk11_backward
+%endif
 
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT/etc/{sysconfig,rc.d/init.d}
-install -d $RPM_BUILD_ROOT%{_includedir}
-install -d $RPM_BUILD_ROOT%{_mandir}/man5
-
-%{__make} install
+install -d $RPM_BUILD_ROOT{/etc/{sysconfig,rc.d/init.d},%{_mandir}/man5,%{_includedir},%{systemdunitdir}}
+%{__make} install \
+       DESTDIR=$RPM_BUILD_ROOT
+
+rm $RPM_BUILD_ROOT%{_bindir}/tzselect
+rm $RPM_BUILD_ROOT%{_bindir}/zdump
+rm $RPM_BUILD_ROOT%{_sbindir}/zic
+rm $RPM_BUILD_ROOT%{_mandir}/man3/newctime.3*
+rm $RPM_BUILD_ROOT%{_mandir}/man3/newtzset.3*
+rm $RPM_BUILD_ROOT%{_mandir}/man8/tzselect.8*
+rm $RPM_BUILD_ROOT%{_mandir}/man8/zdump.8*
+rm $RPM_BUILD_ROOT%{_mandir}/man8/zic.8*
+rm $RPM_BUILD_ROOT%{_prefix}/lib/libtz.a
+rm $RPM_BUILD_ROOT%{_datadir}/zoneinfo-posix
+rm $RPM_BUILD_ROOT%{_datadir}/zoneinfo/leapseconds
+rm $RPM_BUILD_ROOT%{_datadir}/zoneinfo/tzdata.zi
+rm $RPM_BUILD_ROOT%{_datadir}/zoneinfo/zone1970.tab
+mv $RPM_BUILD_ROOT%{_datadir}/zoneinfo-leaps $RPM_BUILD_ROOT%{_datadir}/zoneinfo/right
 
 %if %{with tests}
+# test needs to be ran after "make install", as it uses installed files
 : ====================TESTING=========================
 %{__make} check \
        CC="%{__cc}" \
@@ -103,9 +175,6 @@ install -d $RPM_BUILD_ROOT%{_mandir}/man5
 : ====================TESTING END=====================
 %endif
 
-
-# glibc.spec didn't keep it. so won't here either.
-rm -rf $RPM_BUILD_ROOT%{_datadir}/zoneinfo/posix
 # behave more like glibc.spec
 ln -sf %{_sysconfdir}/localtime        $RPM_BUILD_ROOT%{_datadir}/zoneinfo/localtime
 ln -sf localtime $RPM_BUILD_ROOT%{_datadir}/zoneinfo/posixtime
@@ -114,11 +183,16 @@ ln -sf localtime $RPM_BUILD_ROOT%{_datadir}/zoneinfo/posixrules
 > $RPM_BUILD_ROOT/etc/localtime
 
 # header file
-cp -a tzcode/tzfile.h $RPM_BUILD_ROOT%{_includedir}/tzfile.h
-cp -a tzcode/tzfile.5 $RPM_BUILD_ROOT%{_mandir}/man5
+cp -tzfile.h $RPM_BUILD_ROOT%{_includedir}/tzfile.h
+cp -tzfile.5 $RPM_BUILD_ROOT%{_mandir}/man5
 
 install -p %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/timezone
-cp -a %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/timezone
+cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/timezone
+ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/timezone.service
+
+%if %{with java}
+cp -a zoneinfo/java $RPM_BUILD_ROOT%{_datadir}/javazi
+%endif
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -132,12 +206,16 @@ if [ "$1" = "0" ]; then
        /sbin/chkconfig --del timezone
 
        # save for postun
-       cp -f /etc/localtime /etc/localtime.rpmsave
+       localtime=$(readlink -f /etc/localtime)
+       # cp has no dereference target option, so remove link first
+       test -L /etc/localtime.rpmsave && rm -f /etc/localtime.rpmsave
+       cp -pf $localtime /etc/localtime.rpmsave
 fi
 
 %postun
 if [ "$1" = "0" ]; then
        if [ ! -f /etc/localtime -a -f /etc/localtime.rpmsave ]; then
+               echo >&2 "Preserving /etc/localtime"
                mv -f /etc/localtime{.rpmsave,}
        fi
 fi
@@ -160,15 +238,34 @@ if ! grep -q '^TIMEZONE=' /etc/sysconfig/timezone; then
        %service timezone restart
 fi
 
+%triggerpostun -- tzdata < 2015f-2
+%systemd_service_disable timezone.service
+%systemd_service_stop timezone.service
+
 %files
 %defattr(644,root,root,755)
-%doc tzcode/README tzcode/Theory tzcode/tz-link.html
+%doc README tz-link.html
 %ghost /etc/localtime
 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/timezone
 %attr(754,root,root) /etc/rc.d/init.d/timezone
+%{systemdunitdir}/timezone.service
+%{_datadir}/zoneinfo/localtime
+%{_datadir}/zoneinfo/posixrules
+%{_datadir}/zoneinfo/posixtime
 
+%if %{with java}
+%files -n java-tzdata
+%defattr(644,root,root,755)
+%{_datadir}/javazi
+%endif
+
+%files zoneinfo
+%defattr(644,root,root,755)
 %{_datadir}/zoneinfo
 %exclude %{_datadir}/zoneinfo/right
+%exclude %{_datadir}/zoneinfo/localtime
+%exclude %{_datadir}/zoneinfo/posixrules
+%exclude %{_datadir}/zoneinfo/posixtime
 
 %files zoneinfo_right
 %defattr(644,root,root,755)
@@ -176,6 +273,6 @@ fi
 
 %files devel
 %defattr(644,root,root,755)
-%doc tzcode/tzfile.5.txt
+%doc tzfile.5.txt
 %{_includedir}/tzfile.h
 %{_mandir}/man5/tzfile.5*
This page took 0.070339 seconds and 4 git commands to generate.