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-all mailing list