[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#725307: marked as done (tzdata: True "Zone" files are made into symlinks pointing to "Link" (alias) files.)



Your message dated Sat, 4 Dec 2021 23:55:04 +0100
with message-id <YavxyBAUGNqbKYxF@aurel32.net>
and subject line Bug#725307: tzdata: True "Zone" files are made into symlinks pointing to "Link" (alias) files.
has caused the Debian Bug report #725307,
regarding tzdata: True "Zone" files are made into symlinks pointing to "Link" (alias) files.
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
725307: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=725307
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: tzdata
Version: 2013b-2
Severity: minor
Tags: patch

Dear Maintainer,
*** Please consider answering these questions, where appropriate ***

   * What led up to the situation?
   * What exactly did you do (or not do) that was effective (or
     ineffective)?
   * What was the outcome of this action?
   * What outcome did you expect instead?

*** End of the template - remove these lines ***


-- System Information:
Debian Release: 7.0
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.9.3-x86_64-linode33 (SMP w/8 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages tzdata depends on:
ii  debconf [debconf-2.0]  1.5.49

tzdata recommends no packages.

tzdata suggests no packages.

-- debconf information excluded

In observing the symlinks in /usr/share/zoneinfo (2013b-2 and 2013d-0wheezy1), 
the "true" Zones from the original Olson files are not kept as the hard files.
For example, America/Regina is a "true" Zone, with aliases Saskatchewan and
East-Saskatchewan.  However, on my system, it appears that either fdupes
or rdfind/symlinks find the duplicate files but arbitrarily choose one as 
the "true" zone to keep, and making all others relative symlinks to the
one chosen.  This looks strange to me since I expect the symlinks in the
installed /usr/share/zoneinfo/ dir to mirror the "Zone" and "Link" objects
from the Olson files.

I have demonstrated a modification to the 2013b-2 "rules" makefile which 
will query the Olson files and be sure to choose the "true" Zone as the one
to keep as a hard file, and making all others relative symlinks.

This was tested by me today using the new tzdata2013g Olson files from the upstream provider.

The following is the text of my tested makefile, but does not contain everything 
from the Debian "rules" file, from which it was derived:

#!/usr/bin/make -f
# Have the final files mirror Olson "Zone" and "Link" definitions.
# "Zone" definitions are kept as hard files.
# "Link" aliases are converted to symbolic links.

TZGEN := tzgen
TMP_ZNS := prizns.tmp
TIMEZONES := africa \
             antarctica \
             asia \
             australasia \
             europe \
             northamerica \
             southamerica \
             etcetera \
             factory \
             backward \
             systemv \
             pacificnew

ifeq ($(EMDEBIAN),)
TIMEZONES += solar87 \
             solar88 \
             solar89
endif

build-indep: build-indep-stamp
build-indep-stamp:

        # Build list of real Zones
        cat /dev/null > $(TMP_ZNS)
        for zone in $(TIMEZONES); do \
          grep ^Zone\s* $${zone} | while read line ; do  \
             echo $${line} | awk '{print $$2;}' >> $(TMP_ZNS) ; \
          done  \
        done

        # Build the "default" version
        for zone in $(TIMEZONES); do \
          /usr/sbin/zic -d $(TZGEN) -L /dev/null -y yearistype.sh $${zone} ; \
        done
        # Build the "posix" and "right" versions
ifeq ($(EMDEBIAN),)
        for zone in $(TIMEZONES); do \
          /usr/sbin/zic -d $(TZGEN)/posix -L /dev/null -y yearistype.sh $${zone} ; \
          /usr/sbin/zic -d $(TZGEN)/right -L leapseconds -y $(TZGEN)/yearistype.sh $${zone} ; \
        done
endif

        # Generate a posixrules file
        /usr/sbin/zic -d $(TZGEN) -p America/New_York

        # Find duplicates; from each list of dupes, keep the "real" Zone,
        # and make all the others relative links to it.
        # Replace hardlinks by symlinks
        cd $(TZGEN) ; \
        fdupes -1 -H -q -R . | sed -e 's,\./,,g' | while read line ; do \
           tgt="" ;  \
           for i in $${line} ; do \
              if [ $$(grep -c ^$${i}$$ ../$(TMP_ZNS)) = 1 ] ; \
              then \
                 tgt=$${i} ; \
              fi ; \
           done ; \
 #          if [ ! -z $${tgt} ] ; then \
 #             echo "True Zone: $${tgt}" ; \
 #          else \
 #            echo "Dups: No true Zone match: $${line}" ; \
 #          fi ; \
           if [ ! -z $${tgt} ] ; then \
              for link in $${line} ; do \
#                echo "  Alias: $${link}" ; \
                 if [ $${link} != $${tgt} ] ; then \
                    reltgt="$$(echo $${link} | \
                       sed -e 's,[^/]\+$$,,g' -e 's,[^/]\+,..,g' )$${tgt}" ; \
#                    echo "  RelTgt: $${reltgt}  Link: $${link}" ; \
                    ln -sf $${reltgt} $${link} ; \
                 fi ; \
              done ; \
           fi ; \
           done

        # Shorten and clean up the relative symlinks
        symlinks -r -s -c .

        touch $@

clean:
        -rm -rf $(TZGEN)
        rm -f build-indep-stamp
        rm -f $(TMP_ZNS)

--- End Message ---
--- Begin Message ---
Version: 2019c-2

On 2013-10-03 22:50, Jerry Samples wrote:
> Package: tzdata
> Version: 2013b-2
> Severity: minor
> Tags: patch
> 
> Dear Maintainer,
> *** Please consider answering these questions, where appropriate ***
> 
>    * What led up to the situation?
>    * What exactly did you do (or not do) that was effective (or
>      ineffective)?
>    * What was the outcome of this action?
>    * What outcome did you expect instead?
> 
> *** End of the template - remove these lines ***
> 
> 
> -- System Information:
> Debian Release: 7.0
>   APT prefers stable-updates
>   APT policy: (500, 'stable-updates'), (500, 'stable')
> Architecture: amd64 (x86_64)
> 
> Kernel: Linux 3.9.3-x86_64-linode33 (SMP w/8 CPU cores)
> Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
> Shell: /bin/sh linked to /bin/dash
> 
> Versions of packages tzdata depends on:
> ii  debconf [debconf-2.0]  1.5.49
> 
> tzdata recommends no packages.
> 
> tzdata suggests no packages.
> 
> -- debconf information excluded
> 
> In observing the symlinks in /usr/share/zoneinfo (2013b-2 and 2013d-0wheezy1), 
> the "true" Zones from the original Olson files are not kept as the hard files.
> For example, America/Regina is a "true" Zone, with aliases Saskatchewan and
> East-Saskatchewan.  However, on my system, it appears that either fdupes
> or rdfind/symlinks find the duplicate files but arbitrarily choose one as 
> the "true" zone to keep, and making all others relative symlinks to the
> one chosen.  This looks strange to me since I expect the symlinks in the
> installed /usr/share/zoneinfo/ dir to mirror the "Zone" and "Link" objects
> from the Olson files.

This has been fixed in tzdata 2019c-2. Closing the bug accordingly.

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
aurelien@aurel32.net                 http://www.aurel32.net

--- End Message ---

Reply to: