svn commit: r472335 - in head/devel/qt5-core: . files
John Baldwin
jhb at FreeBSD.org
Wed Jun 13 17:02:33 UTC 2018
Author: jhb (src,doc committer)
Date: Wed Jun 13 17:02:31 2018
New Revision: 472335
URL: https://svnweb.freebsd.org/changeset/ports/472335
Log:
Recognize timezones on FreeBSD for the default install.
By default, FreeBSD copies the current timezone database to
/etc/localtime and stores the name of the symlink in /var/db/zoneinfo.
Qt expects /etc/localtime to be a symlink and uses the symlink's
target to infer the name of the default timezone. The existing code
in Qt includes some workarounds for Linux distributions that also copy
the current timezone to /etc/localtime by checking for files that
contain the name of the timezone. Add a similar check for
/var/db/zoneinfo on FreeBSD.
PR: 200763
Reviewed by: tcberner
Differential Revision: https://reviews.freebsd.org/D15792
Added:
head/devel/qt5-core/files/patch-src_corelib_tools_qtimezoneprivate_tz.cpp (contents, props changed)
Modified:
head/devel/qt5-core/Makefile
Modified: head/devel/qt5-core/Makefile
==============================================================================
--- head/devel/qt5-core/Makefile Wed Jun 13 17:00:28 2018 (r472334)
+++ head/devel/qt5-core/Makefile Wed Jun 13 17:02:31 2018 (r472335)
@@ -2,7 +2,7 @@
PORTNAME= core
DISTVERSION= ${QT5_VERSION}
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= devel
PKGNAMEPREFIX= qt5-
Added: head/devel/qt5-core/files/patch-src_corelib_tools_qtimezoneprivate_tz.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/devel/qt5-core/files/patch-src_corelib_tools_qtimezoneprivate_tz.cpp Wed Jun 13 17:02:31 2018 (r472335)
@@ -0,0 +1,20 @@
+--- src/corelib/tools/qtimezoneprivate_tz.cpp.orig 2018-06-13 08:09:13.578248000 -0700
++++ src/corelib/tools/qtimezoneprivate_tz.cpp 2018-06-13 08:11:15.328743000 -0700
+@@ -1072,6 +1072,17 @@ QByteArray QTzTimeZonePrivate::systemTim
+ }
+ }
+
++ // On many FreeBSD systems, /etc/localtime is a regular file while the actual name is in /var/db/zoneinfo
++ if (ianaId.isEmpty()) {
++ QFile tzif(QStringLiteral("/var/db/zoneinfo"));
++ if (tzif.open(QIODevice::ReadOnly)) {
++ // TODO QTextStream inefficient, replace later
++ QTextStream ts(&tzif);
++ if (!ts.atEnd())
++ ianaId = ts.readLine().toUtf8();
++ }
++ }
++
+ // On some Red Hat distros /etc/localtime is real file with name held in /etc/sysconfig/clock
+ // in a line like ZONE="Europe/Oslo" or TIMEZONE="Europe/Oslo"
+ if (ianaId.isEmpty()) {
More information about the svn-ports-head
mailing list