GNU bug report logs - #68411
Timezone not detected from /etc/localtime

Previous Next

Package: guix;

Reported by: Distopico <distopico <at> riseup.net>

Date: Fri, 12 Jan 2024 23:30:02 UTC

Severity: normal

To reply to this bug, email your comments to 68411 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#68411; Package guix. (Fri, 12 Jan 2024 23:30:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Distopico <distopico <at> riseup.net>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Fri, 12 Jan 2024 23:30:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Distopico <distopico <at> riseup.net>
To: bug-guix <at> gnu.org
Subject: Timezone not detected from /etc/localtime 
Date: Fri, 12 Jan 2024 17:41:58 -0500
Apps such as Icecat or ungoogled-chromium are not able to get the
correct timezone from /etc/localtime when `/etc/localtime` is a realpath
maybe because it expect /etc/share/zoneinfo, with readlink partially
works fine some apps, maybe related with an icu bug.[1]

I just removed manually `/etc/localtime` and crate an symlink `sudo ln
-s $TZDIR/$(cat /etc/timezone) /etc/localtime` and ungoogled-chromium
works fine.

Icecat in other hand has an additional bug related with icu[2][3]
and folder policy where `/gnu` is not allowed so in order to make it
work is necessary disable sandbox `MOZ_DISABLE_CONTENT_SANDBOX=1 icecat`
or set manually TZ env `TZ=$(cat /etc/timezone) icecat`, btw I have
`privacy.resistFingerprinting` false.

The weird thing is that in almost all of those reported the error is
the opposite where having a realpath solves it but in guix it is the
problem, perhaps it could be because these apps have updated their code
to make it work with `icu` v72 and guix has v71.

Steps to reproduce it:

- guix pull && guix package -u
- Install last icecat or ungoogled-chromium version
- Verify that you don't have $TZ set, unset it.
- If it's Icecat open `about:config` and set `privacy.resistFingerprinting` to false
- Open  https://webbrowsertools.com/timezone/ in the browser
- Check the timezone
- sudo rm -r /etc/localtime && sudo ln -s $TZDIR/$(cat /etc/timezone) /etc/localtime
- Open chromium or `MOZ_DISABLE_CONTENT_SANDBOX=1 icecat`
- Visit https://webbrowsertools.com/timezone/ again, check the timezone.

See also:
- https://github.com/NixOS/nixpkgs/issues/238025
- https://github.com/NixOS/nixpkgs/pull/238700

Footnotes:
[1]  https://github.com/unicode-org/icu/pull/2323

[2]  https://bugzilla.mozilla.org/show_bug.cgi?id=1848615

[3]  https://hg.mozilla.org/releases/mozilla-esr115/rev/d7948b142f43





Information forwarded to bug-guix <at> gnu.org:
bug#68411; Package guix. (Fri, 19 Jan 2024 04:33:02 GMT) Full text and rfc822 format available.

Message #8 received at 68411 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Distopico <distopico <at> riseup.net>
Cc: 68411 <at> debbugs.gnu.org
Subject: Re: bug#68411: Timezone not detected from /etc/localtime 
Date: Thu, 18 Jan 2024 23:32:34 -0500
Hi,

Distopico <distopico <at> riseup.net> writes:

> Apps such as Icecat or ungoogled-chromium are not able to get the
> correct timezone from /etc/localtime when `/etc/localtime` is a realpath
> maybe because it expect /etc/share/zoneinfo, with readlink partially
> works fine some apps, maybe related with an icu bug.[1]

I don't know about ungoogled-chromium, but for IceCat, I had
investigated the problem at length in https://issues.guix.gnu.org/59368,
and it seems the bug is not in ICU but in Firefox, triggered in very
specific situations (resistFingerprinting defaults to true before user
prefs are loaded, and resetting the timezone fails in some javascript
that expects /etc/localtime to be a symlink, see:
https://bugzilla.mozilla.org/show_bug.cgi?id=1817004#c8).

-- 
Thanks,
Maxim




Information forwarded to bug-guix <at> gnu.org:
bug#68411; Package guix. (Wed, 24 Jan 2024 15:12:02 GMT) Full text and rfc822 format available.

Message #11 received at 68411 <at> debbugs.gnu.org (full text, mbox):

From: Distopico <distopico <at> riseup.net>
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Cc: 68411 <at> debbugs.gnu.org
Subject: Re: bug#68411: Timezone not detected from /etc/localtime
Date: Wed, 24 Jan 2024 10:00:36 -0500
[Message part 1 (text/plain, inline)]
On 2024-01-18, Maxim Cournoyer <maxim.cournoyer <at> gmail.com> wrote:

> Hi,
>
> Distopico <distopico <at> riseup.net> writes:
>
>> Apps such as Icecat or ungoogled-chromium are not able to get the
>> correct timezone from /etc/localtime when `/etc/localtime` is a realpath
>> maybe because it expect /etc/share/zoneinfo, with readlink partially
>> works fine some apps, maybe related with an icu bug.[1]
>
> I don't know about ungoogled-chromium, but for IceCat, I had
> investigated the problem at length in https://issues.guix.gnu.org/59368,
> and it seems the bug is not in ICU but in Firefox, triggered in very
> specific situations (resistFingerprinting defaults to true before user
> prefs are loaded, and resetting the timezone fails in some javascript
> that expects /etc/localtime to be a symlink, see:
> https://bugzilla.mozilla.org/show_bug.cgi?id=1817004#c8).

But in icecat there is tow issues, one is related with the
/etc/localtime that expect a symlink but also there is another one
related with firefox sandbox, you can see here that  `/usr` and `/nix`
was added to a whitelist, those paths is where they expect have the
zoneinfo files and `/gnu` is not in that whitelist (I already reported
to firefox), and disabling `MOZ_DISABLE_CONTENT_SANDBOX=1` it and with
the symlink the timezone works again.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#68411; Package guix. (Wed, 24 Jan 2024 19:15:02 GMT) Full text and rfc822 format available.

Message #14 received at 68411 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Distopico <distopico <at> riseup.net>
Cc: 68411 <at> debbugs.gnu.org
Subject: Re: bug#68411: Timezone not detected from /etc/localtime
Date: Wed, 24 Jan 2024 14:14:21 -0500
Hello,

Distopico <distopico <at> riseup.net> writes:

> On 2024-01-18, Maxim Cournoyer <maxim.cournoyer <at> gmail.com> wrote:
>
>> Hi,
>>
>> Distopico <distopico <at> riseup.net> writes:
>>
>>> Apps such as Icecat or ungoogled-chromium are not able to get the
>>> correct timezone from /etc/localtime when `/etc/localtime` is a realpath
>>> maybe because it expect /etc/share/zoneinfo, with readlink partially
>>> works fine some apps, maybe related with an icu bug.[1]
>>
>> I don't know about ungoogled-chromium, but for IceCat, I had
>> investigated the problem at length in https://issues.guix.gnu.org/59368,
>> and it seems the bug is not in ICU but in Firefox, triggered in very
>> specific situations (resistFingerprinting defaults to true before user
>> prefs are loaded, and resetting the timezone fails in some javascript
>> that expects /etc/localtime to be a symlink, see:
>> https://bugzilla.mozilla.org/show_bug.cgi?id=1817004#c8).
>
> But in icecat there is tow issues, one is related with the
> /etc/localtime that expect a symlink but also there is another one
> related with firefox sandbox, you can see here that  `/usr` and `/nix`
> was added to a whitelist, those paths is where they expect have the
> zoneinfo files and `/gnu` is not in that whitelist (I already reported
> to firefox), and disabling `MOZ_DISABLE_CONTENT_SANDBOX=1` it and with
> the symlink the timezone works again.

In the meantime would you be able to produce a patch adding /gnu to
their allowlist?  Then we'd have to look into the javascript code to see
if we can have it understand an actual file instead of symlink.

-- 
Thanks,
Maxim




This bug report was last modified 1 year and 142 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.