Bug#1038841: libsys-info-driver-linux-perl: transition from /etc/timezone to /etc/localtime

Luca Boccassi bluca at debian.org
Fri Jun 23 16:57:35 BST 2023


On Fri, 23 Jun 2023 at 16:47, gregor herrmann <gregoa at debian.org> wrote:
>
> On Wed, 21 Jun 2023 23:16:58 +0100, bluca at debian.org wrote:
>
> > libsys-info-driver-linux-perl is currently referencing /etc/timezone
> > without support for /etc/localtime. /etc/timezone is a legacy
> > interface that is Debian specific. The cross-distro standard
> > /etc/localtime (as a symlink to the appropriate timezone file), so
> > please switch your package to /etc/localtime. tzsetup will stop
> > creating /etc/timezone soon.
>
> /etc/localtime is a _text_ file, containing the name of the timezone;
> /etc/timezone is a symlink to the corresponding _binary_ timezone
> file.
>
> The code in lib/Sys/Info/Driver/Linux/OS.pm just reads the text from
> /etc/localtime currently; replacing it with /etc/localtime therefore
> won't work.
>
> Is there any facility to get the name of the timezone out of
> /etc/localtime (short of following the symlink and mangling the
> target file name)?

If you want to restrict it to filesystem access, then reading the link
and cutting the leading directories is exactly the suggested pattern:

$ cat /etc/timezone
Europe/London
$ readlink /etc/localtime | sed "s|/usr/share/zoneinfo/||"
Europe/London

Or any variations thereof, it's quite trivial as you can see.

If you want fully programmatic API there's timedate1 via D-Bus:

https://www.freedesktop.org/software/systemd/man/org.freedesktop.timedate1.html

or the command line equivalent via timedatectl:

https://www.freedesktop.org/software/systemd/man/timedatectl.html

Kind regards,
Luca Boccassi



More information about the pkg-perl-maintainers mailing list