[swift-corelibs-dev] TimeZone database

Youming Lin ylin at us.ibm.com
Thu Jul 6 15:47:47 CDT 2017


Thanks for pointing me to the package. Turns out it was intentional:
https://github.com/docker-library/official-images/issues/2863

A caveat to Swift developers using official Docker Ubuntu images in the
future.

Youming Lin
IBM Cloud, Swift at IBM, Kitura developer
Austin, TX
GitHub: @youming-lin



From:	Simon Evans <si at si.org>
To:	Youming Lin <ylin at us.ibm.com>
Cc:	Alex Blewitt <alblue at apple.com>, Ian Partridge
            <ian at poncho.org.uk>, swift-corelibs-dev
            <swift-corelibs-dev at swift.org>
Date:	07/06/2017 03:20 PM
Subject:	Re: [swift-corelibs-dev] TimeZone database



Looks like timezone files are in the ‘tzdata’ package. Maybe it got
uninstalled or was never installed as part of the base. An ‘apt-get install
tzdata’ might fix it.

Simon

      On 6 Jul 2017, at 20:20, Youming Lin via swift-corelibs-dev <
      swift-corelibs-dev at swift.org> wrote:



      That's odd. Maybe my ubuntu:16.04 image is outdated or something, but
      here are my outputs:

      ylin at youming-mbpr:~/Swift/Kitura-Markdown$ docker run -it --rm
      ubuntu:16.04 find /usr -name zone.tab
      ylin at youming-mbpr:~/Swift/Kitura-Markdown$ docker run -it --rm
      ubuntu:14.04 find /usr -name zone.tab
      /usr/share/zoneinfo/zone.tab

      The file is found in ubuntu:14.04 but not in ubuntu:16.04.

      Here are my images:

      ylin at youming-mbpr:~/Swift/Kitura-Markdown$ docker images
      REPOSITORY TAG IMAGE ID CREATED SIZE
      ubuntu 16.04 7b9b13f7b9c0 4 weeks ago 118MB
      ubuntu 14.04 132b7427a3b4 4 weeks ago 188MB

      Thanks,

      Youming Lin
      IBM Cloud, Swift at IBM, Kitura developer
      Austin, TX
      GitHub: @youming-lin

      <graycol.gif>Alex Blewitt ---07/06/2017 01:42:22 PM---It looks like
      it's /usr/share/zoneinfo on all Ubuntu versions: alblue.local[~]$
      docker run -it --rm

      From: Alex Blewitt <alblue at apple.com>
      To: Tony Parker <anthony.parker at apple.com>
      Cc: Youming Lin <ylin at us.ibm.com>, Ian Partridge <ian at poncho.org.uk>,
      swift-corelibs-dev <swift-corelibs-dev at swift.org>
      Date: 07/06/2017 01:42 PM
      Subject: Re: [swift-corelibs-dev] TimeZone database
      Sent by: alblue at apple.com





      It looks like it's /usr/share/zoneinfo on all Ubuntu versions:

      alblue.local[~]$ docker run -it --rm ubuntu:14.04 find /usr -name
      zone.tab
      /usr/share/zoneinfo/zone.tab
      alblue.local[~]$ docker run -it --rm ubuntu:16.04 find /usr -name
      zone.tab
      /usr/share/zoneinfo/zone.tab
      alblue.local[~]$ docker run -it --rm ubuntu:16.10 find /usr -name
      zone.tab
      /usr/share/zoneinfo/zone.tab

      This is the same that's coming from CFTimeZone.c:

      https://github.com/apple/swift-corelibs-foundation/blob/2611dcd0d9b91fecace537838294bd85f0220503/CoreFoundation/NumberDate.subproj/CFTimeZone.c#L36-L39


      Is it possible that the MacOS header is being included and defining
      TZDIR before the CFTimeZone.c file is compiled?

      Alex
                  On 6 Jul 2017, at 19:22, Tony Parker via
                  swift-corelibs-dev <swift-corelibs-dev at swift.org> wrote:

                  Is the path to zoneinfo different on the Ubuntu docker
                  image?

                  - Tony
                              On Jul 6, 2017, at 9:36 AM, Youming Lin <
                              ylin at us.ibm.com> wrote:


                              We were seeing this on Travis too.
                              Specifically, on a Travis matrix build using
                              Swift 3.1.1 on a Ubuntu 16.04 docker image
                              running inside a Travis 14.04 VM.

                              The issue was specific to the Ubuntu 16.04
                              docker image; when I tested in Ubuntu 16.04
                              OS as a guest VM, the issue went away.

                              Thanks,

                              Youming Lin
                              IBM Cloud, Swift at IBM, Kitura developer
                              Austin, TX
                              GitHub: @youming-lin

                              <graycol.gif>Tony Parker via
                              swift-corelibs-dev ---07/06/2017 10:31:15
                              AM---Yes, we’re discussing this one
                              internally too and trying to figure out what
                              the right answer is. May

                              From: Tony Parker via swift-corelibs-dev <
                              swift-corelibs-dev at swift.org>
                              To: Ian Partridge <ian at poncho.org.uk>
                              Cc: swift-corelibs-dev <
                              swift-corelibs-dev at swift.org>
                              Date: 07/06/2017 10:31 AM
                              Subject: Re: [swift-corelibs-dev] TimeZone
                              database
                              Sent by: swift-corelibs-dev-bounces at swift.org






                              Yes, we’re discussing this one internally too
                              and trying to figure out what the right
                              answer is. Maybe the best solution for now is
                              to find a good mechanism to check the
                              underlying version of the OS and split it out
                              into a function as you suggest.

                              - Tony
                                                      On Jul 6, 2017, at
                                                      7:37 AM, Ian
                                                      Partridge via
                                                      swift-corelibs-dev <
                                                      swift-corelibs-dev at swift.org
                                                      > wrote:

                                                      Good shout Simon, you
                                                      are right. I'm on
                                                      Sierra. Compare and
                                                      contrast:

                                                      /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/tzfile.h

                                                      #define TZDIR
                                                      "/usr/share/zoneinfo"

                                                      /Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/tzfile.h

                                                      #define TZDIR
                                                      "/var/db/timezone/zoneinfo"


                                                      so I guess if I
                                                      installed the High
                                                      Sierra beta it would
                                                      work OK.

                                                      I hacked CF to force
                                                      it to
                                                      use /usr/share/zoneinfo
 and TestFoundation
                                                      is much happier, but
                                                      that's not a
                                                      solution.

                                                      On 6 July 2017 at
                                                      15:20, Simon Evans <
                                                      si at si.org> wrote:
   Ian

   I also saw this error, I think its because the TZDIR is different in the
   headers shipped with Xcode 9. Maybe the location of the timezone
   directory was moved between Sierra and High Sierra. What version of
   macOS are you testing on?

   If it has indeed moved between 10.12 and 10.13 it may require a runtime
   version check to dynamically return TZDIR.

   Simon
                           On 6 Jul 2017, at 15:09, Ian Partridge via
                           swift-corelibs-dev <swift-corelibs-dev at swift.org
                           > wrote:

                           Hi,

                           I'm seeing quite a lot of tests failing when
                           running the
                           TestFoundation target in Xcode. The failures are
                           timezone related.
                           Most simply, the code

                           let timeZone = TimeZone(abbreviation: "GMT")

                           is returning nil.

                           Walking through the CF code which sets things
                           up, it seems to be
                           trying to read the timezone database from
                           /var/db/timezone/zoneinfo/zone.tab which doesn't
                           exist on my macOS
                           system.

                           /usr/share/zoneinfo/zone.tab is there and seems
                           to be the right
                           location (?), but CF is picking up TZDIR from
                           tzfile.h which says:

                           #define TZDIR "/var/db/timezone/zoneinfo"

                           Any thoughts? I feel like I'm missing something
                           obvious and have gone
                           too far down the rabbit hole.

                           --
                           Ian Partridge
                           _______________________________________________
                           swift-corelibs-dev mailing list
                           swift-corelibs-dev at swift.org
                           https://lists.swift.org/mailman/listinfo/swift-corelibs-dev



                                                      --
                                                      Ian Partridge
                                                      _______________________________________________

                                                      swift-corelibs-dev
                                                      mailing list
                                                      swift-corelibs-dev at swift.org

                                                      https://lists.swift.org/mailman/listinfo/swift-corelibs-dev
                              _______________________________________________

                              swift-corelibs-dev mailing list
                              swift-corelibs-dev at swift.org
                              https://lists.swift.org/mailman/listinfo/swift-corelibs-dev




                  _______________________________________________
                  swift-corelibs-dev mailing list
                  swift-corelibs-dev at swift.org
                  https://lists.swift.org/mailman/listinfo/swift-corelibs-dev



      _______________________________________________
      swift-corelibs-dev mailing list
      swift-corelibs-dev at swift.org
      https://lists.swift.org/mailman/listinfo/swift-corelibs-dev


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-corelibs-dev/attachments/20170706/d791c7f2/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: graycol.gif
Type: image/gif
Size: 105 bytes
Desc: not available
URL: <https://lists.swift.org/pipermail/swift-corelibs-dev/attachments/20170706/d791c7f2/attachment.gif>


More information about the swift-corelibs-dev mailing list