Change of behavior: "dpkg-reconfigure -f noninteractive" unconditionally overwrites /etc/timezone now

Bug #1554806 reported by Hajo Möller
110
This bug affects 22 people
Affects Status Importance Assigned to Milestone
tzdata (Ubuntu)
Invalid
Medium
Unassigned

Bug Description

In previous versions it was possible to set the system's timezone by editing /etc/timezone before running "dpkg-reconfigure -f noninteractive tzdata".

This behavior changed, /etc/timezone gets overwritten unconditionally during "dpkg-reconfigure -f noninteractive tzdata":
---
root@xenial:/# echo "Europe/Berlin" > /etc/timezone
root@xenial:/# cat /etc/timezone
Europe/Berlin
root@xenial:/# dpkg-reconfigure -f noninteractive tzdata

Current default time zone: 'Etc/UTC'
Local time is now: Tue Mar 8 23:09:39 UTC 2016.
Universal Time is now: Tue Mar 8 23:09:39 UTC 2016.

root@xenial:/# cat /etc/timezone
Etc/UTC
---

As a workaround to programmatically set the timezone one now needs to point "/etc/localtime" to the new timezone:
---
root@xenial:/# ln -fs /usr/share/zoneinfo/Europe/Berlin /etc/localtime
root@xenial:/# ll /etc/localtime
lrwxrwxrwx 1 root root 33 Mar 9 00:48 /etc/localtime -> /usr/share/zoneinfo/Europe/Berlin
root@xenial:/# cat /etc/timezone
Etc/UTC
root@xenial:/# dpkg-reconfigure -f noninteractive tzdata

Current default time zone: 'Europe/Berlin'
Local time is now: Wed Mar 9 00:49:05 CET 2016.
Universal Time is now: Tue Mar 8 23:49:05 UTC 2016.

root@xenial:/# cat /etc/timezone
Europe/Berlin
---

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in tzdata (Ubuntu):
status: New → Confirmed
Revision history for this message
hackeron (hackeron) wrote :

Any workaround for this? - How would one automate setting a timezone on 16.04?

Revision history for this message
hackeron (hackeron) wrote :

Ah, sorry, didn't read the report properly. Thank you for the workaround! -- Any workaround for echo "en_GB.UTF-8 UTF-8" > /var/lib/locales/supported.d/local?

Revision history for this message
Michael Shadle (mshadle) wrote :

Looks like for the time being this is the best:

# change this based on desired locale
ln -fs /usr/share/zoneinfo/US/Pacific-New /etc/localtime
dpkg-reconfigure -f noninteractive tzdata

ignore /etc/timezone, that seems to be properly reflected after the dpkg-reconfigure...

Revision history for this message
DawnCold (loooseleaves) wrote :

Michael's workaround works for me, but I'm waiting for fix release.

Revision history for this message
Drors (drors) wrote :

A simpler workaround that was OK for me:
rm /etc/localtime
dpkg-reconfigure -f noninteractive tzdata

After /etc/localtime is removed, it is regenerated properly.

Revision history for this message
Mitar (mitar) wrote :
Revision history for this message
Ian Marsman (imarsman) wrote :

FWIW, at least for a phusion Docker image which is based on Ubuntu 16.04, this workaround seems to work. As with most things in life related to computer administration there may be a wrinkle to this that I have not yet found.

ln -fs /usr/share/zoneinfo/America/Toronto /etc/localtime && printf 'America\nToronto\n' | dpkg-reconfigure tzdata

Revision history for this message
Lars Kruse (devel-sumpfralle) wrote :

According to the upstream package maintainer in Debian (Aurelien Jarno), /etc/localtime is the authoritive source of information, while /etc/timezone is just a Debian-specific artifact.

Thus the preferred approach for changing the timzone is indeed the change of the /etc/localtime symlink, followed by dpkg-reconfigure.

See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=813226#10 and https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=848143#10.

Revision history for this message
Dan Dascalescu (ddascalescu+launchpad) wrote :

Please update https://help.ubuntu.com/community/UbuntuTime under "Using the Command Line (unattended)" with the new behavior.

Revision history for this message
Benjamin Drung (bdrung) wrote :

I documented how to change the time zone non-interactively in https://discourse.ubuntu.com/t/how-to-change-the-time-zone-in-ubuntu-using-the-command-line/35307 because the log-in to https://help.ubuntu.com/community/UbuntuTime timed out. As mentioned in the linked Debian bug reports and here, this change was intentional and /etc/timezone will go away soon. Therefore marking this bug as invalid.

Changed in tzdata (Ubuntu):
status: Confirmed → Invalid
importance: Undecided → Medium
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.