Hello Daniel, or anyone else affected,

Accepted tzdata into focal-proposed. The package will build now and be
available at
https://launchpad.net/ubuntu/+source/tzdata/2024b-0ubuntu0.20.04.1 in a
few hours, and then in the -proposed repository.

Please help us by testing this new package.  See
https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how
to enable and use -proposed.  Your feedback will aid us getting this
update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug,
mentioning the version of the package you tested, what testing has been
performed on the package and change the tag from verification-needed-
focal to verification-done-focal. If it does not fix the bug for you,
please add a comment stating that, and change the tag to verification-
failed-focal. In either case, without details of your testing we will
not be able to proceed.

Further information regarding the verification process can be found at
https://wiki.ubuntu.com/QATeam/PerformingSRUVerification .  Thank you in
advance for helping!

N.B. The updated package will be released to -updates after the bug(s)
fixed by this package have been verified and the package has been in
-proposed for a minimum of 7 days.

** Changed in: tzdata (Ubuntu Focal)
       Status: New => Fix Committed

** Tags added: verification-needed-focal

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to tzdata in Ubuntu.
https://bugs.launchpad.net/bugs/2096974

Title:
  tzdata-2024b-0ubuntu0.24.04 makes std::chrono unusable

Status in gcc-14 package in Ubuntu:
  Confirmed
Status in tzdata package in Ubuntu:
  Triaged
Status in waybar package in Ubuntu:
  New
Status in gcc-14 source package in Focal:
  New
Status in tzdata source package in Focal:
  Fix Committed
Status in waybar source package in Focal:
  New
Status in gcc-14 source package in Jammy:
  New
Status in tzdata source package in Jammy:
  Fix Committed
Status in waybar source package in Jammy:
  New
Status in gcc-14 source package in Noble:
  New
Status in tzdata source package in Noble:
  Fix Released
Status in waybar source package in Noble:
  New
Status in gcc-14 source package in Oracular:
  New
Status in tzdata source package in Oracular:
  Fix Released
Status in waybar source package in Oracular:
  New

Bug description:
  [ Impact ]
  The latest tzdata SRU[1] included a change[2] in the main data form:

      The main source files' time zone abbreviations now use %z,
      supported by zic since release 2015f and used in vanguard form
      since release 2022b.  For example, America/Sao_Paulo now contains
      the zone continuation line "-3:00 Brazil %z", which is less error
      prone than the old "-3:00 Brazil -03/-02".  This does not change
      the represented data: the generated TZif files are unchanged.
      Rearguard form still avoids %z, to support obsolescent parsers.

  Turns out the standard c++ library in at least oracular and noble fail
  to parse that, resulting in a much small list of available timezones,
  or even crashes[3].

  The c++ fix for that is in [4]. That might be eventually SRUed, but at
  the moment it's quicker to adjust tzdata than the c++ library. Also,
  there might be other parsers in the supported Ubuntu releases that are
  also affected, and just haven't been noticed yet.

  1. https://launchpad.net/bugs/2070285
  2. 
https://github.com/eggert/tz/commit/94e6b3b0eb773e66a9ac49b905c69c0fa6a31dc3
  3. https://bugs.launchpad.net/ubuntu/+source/tzdata/+bug/2096974/comments/10
  4. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116657

  [ Test Plan ]

  This update includes a new DEP8 test that checks specifically for this
  bug. Therefore, the test plan is to observe that the full suite of
  autopkgtests is run and that it passed.

  
  For jammy and focal, which do not contain the c++ library function that is 
failing, build this small C++ app in *NOBLE*:

  #include <chrono>
  #include <iostream>

  int main() {
      for (const auto & time_zone : std::chrono::get_tzdb().zones) {
          std::cout << time_zone.name() << std::endl;
      }
  }

  Build and link statically, like so (assuming the file is called
  test.cpp):

    g++ -std=c++20 -o test test.cpp -static

  Then copy the resulting binary ("test") to the jammy and focal systems
  under test.

  An affected system will show just two timezones:

    $ ~/test
    Etc/GMT
    Etc/UTC

  Whereas a fixed system will show hundreds.

  
  [ Where problems could occur ]

  All software that use tzdata could be affected by this update. There
  is probably at least one implementation in each programming language
  for reading the timezone data. The update could trigger parser bugs.

  The autopkgtest will cover Python's zoneinfo and now C++ std::chrono.

  [ Original Description ]

  inalling tzdata in version 2024b-0ubuntu0.24.04 causes std::chrono to
  deliver only 2 timezones:

  code:

  for (const auto & time_zone : std::chrono::get_tzdb().zones)
  {
    std::cout << time_zone.name() << std::endl;
  }

  output:

  Etc/GMT
  Etc/UTC

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gcc-14/+bug/2096974/+subscriptions


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to