From patchwork Fri Mar 8 06:30:01 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zheng Junjie X-Patchwork-Id: 61493 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 1F3DF27BBEB; Fri, 8 Mar 2024 06:32:34 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI, SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id DFD4B27BBE2 for ; Fri, 8 Mar 2024 06:32:32 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1riTlv-0006BF-WE; Fri, 08 Mar 2024 01:32:00 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1riTlV-0005my-2h for guix-patches@gnu.org; Fri, 08 Mar 2024 01:31:33 -0500 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1riTlU-0007iW-Pi for guix-patches@gnu.org; Fri, 08 Mar 2024 01:31:32 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1riTly-0004mA-I0; Fri, 08 Mar 2024 01:32:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#69628] [PATCH WIP qt-team 01/21] FIXME: gnu: qtbase: Update to 6.6.2. Resent-From: Zheng Junjie Original-Sender: "Debbugs-submit" Resent-CC: andreas@enge.fr, maxim.cournoyer@gmail.com, iyzsong@envs.net, guix-patches@gnu.org Resent-Date: Fri, 08 Mar 2024 06:32:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 69628 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 69628@debbugs.gnu.org Cc: Andreas Enge , Maxim Cournoyer , =?utf-8?b?5a6L5paH5q2m?= X-Debbugs-Original-Xcc: Andreas Enge , Maxim Cournoyer , =?utf-8?b?5a6L5paH5q2m?= Received: via spool by 69628-submit@debbugs.gnu.org id=B69628.170987949617828 (code B ref 69628); Fri, 08 Mar 2024 06:32:02 +0000 Received: (at 69628) by debbugs.gnu.org; 8 Mar 2024 06:31:36 +0000 Received: from localhost ([127.0.0.1]:55949 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1riTlX-0004dL-8S for submit@debbugs.gnu.org; Fri, 08 Mar 2024 01:31:35 -0500 Received: from smtp84.cstnet.cn ([159.226.251.84]:39292 helo=cstnet.cn) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1riTlE-0004bH-HG for 69628@debbugs.gnu.org; Fri, 08 Mar 2024 01:31:25 -0500 Received: from m.taildaf0f.ts.net (unknown [183.247.5.134]) by APP-05 (Coremail) with SMTP id zQCowAD3F6mGsOplhRDeBA--.65112S2; Fri, 08 Mar 2024 14:30:31 +0800 (CST) From: Zheng Junjie Date: Fri, 8 Mar 2024 14:30:01 +0800 Message-ID: <14c084f94067e3fddae771bc5912515e74204c85.1709877023.git.zhengjunjie@iscas.ac.cn> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 X-CM-TRANSID: zQCowAD3F6mGsOplhRDeBA--.65112S2 X-Coremail-Antispam: 1UD129KBjvJXoWxtFyUuFyfKr48XrW3XFWxXrb_yoWfAr1UpF 4akFna9w4rGFy5Jrs3J342q34avw42kFy3Cw1xCwn5t34jka4UZFWftr45Cr13W3yfCw13 Wa18Xr13ua43AFJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUyab7Iv0xC_Kw4lb4IE77IF4wAFF20E14v26r1j6r4UM7CY07I2 0VC2zVCF04k26cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rw A2F7IY1VAKz4vEj48ve4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_JFI_Gr1l84ACjcxK6xII jxv20xvEc7CjxVAFwI0_Jr0_Gr1l84ACjcxK6I8E87Iv67AKxVW8Jr0_Cr1UM28EF7xvwV C2z280aVCY1x0267AKxVWxJr0_GcWle2I262IYc4CY6c8Ij28IcVAaY2xG8wAqx4xG64xv F2IEw4CE5I8CrVC2j2WlYx0E2Ix0cI8IcVAFwI0_Jr0_Jr4lYx0Ex4A2jsIE14v26r1j6r 4UMcvjeVCFs4IE7xkEbVWUJVW8JwACjcxG0xvY0x0EwIxGrwCF04k20xvY0x0EwIxGrwCF x2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E14v26r1j6r18MI8I3I0E7480Y4vE14 v26r106r1rMI8E67AF67kF1VAFwI0_Jr0_JrylIxkGc2Ij64vIr41lIxAIcVC0I7IYx2IY 67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7CjxVAFwI0_Jr0_Gr1lIxAIcVCF04k26cxKx2 IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r1j6r4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_ Jr0_GrUvcSsGvfC2KfnxnUUI43ZEXa7IU5PpnJUUUUU== X-Originating-IP: [183.247.5.134] X-CM-SenderInfo: x2kh0wxmxqyx3h6l2u1dvotugofq/ X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * gnu/packages/qt.scm (qtbase): Update to 6.6.2. [source]: unbundle pcre2, md4c, remove qtbase-use-TZDIR.patch [arguments]<#:phase>: skip tst_qt_cmake_create,tst_selftests test. [inputs]: add libb2. * gnu/packages/patches/qtbase-use-TZDIR.patch: remove this. * gnu/local.mk(dist_patch_DATA): remove patch. Change-Id: I650d1b3380095fdae269adcdbf014c7d918080a6 Change-Id: Ief788d0da5be0e9772ca1f35695f17cd658bd8f7 --- gnu/local.mk | 1 - gnu/packages/patches/qtbase-use-TZDIR.patch | 141 -------------------- gnu/packages/qt.scm | 18 +-- 3 files changed, 10 insertions(+), 150 deletions(-) delete mode 100644 gnu/packages/patches/qtbase-use-TZDIR.patch diff --git a/gnu/local.mk b/gnu/local.mk index 83937db4c8..0a0ef49719 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1950,7 +1950,6 @@ dist_patch_DATA = \ %D%/packages/patches/qtbase-moc-ignore-gcc-macro.patch \ %D%/packages/patches/qtbase-qmake-use-libname.patch \ %D%/packages/patches/qtbase-5-use-TZDIR.patch \ - %D%/packages/patches/qtbase-use-TZDIR.patch \ %D%/packages/patches/qtscript-disable-tests.patch \ %D%/packages/patches/quagga-reproducible-build.patch \ %D%/packages/patches/quickswitch-fix-dmenu-check.patch \ diff --git a/gnu/packages/patches/qtbase-use-TZDIR.patch b/gnu/packages/patches/qtbase-use-TZDIR.patch deleted file mode 100644 index 98bf7493e9..0000000000 --- a/gnu/packages/patches/qtbase-use-TZDIR.patch +++ /dev/null @@ -1,141 +0,0 @@ -From 1075606f8b2f9e153c82f8e50cbd69cea9c72e87 Mon Sep 17 00:00:00 2001 -From: Edward Welbourne -Date: Mon, 11 Sep 2023 11:41:39 +0200 -Subject: [PATCH] Support the TZDIR environment variable - -On Linux / glibc, this overrides the default system location for the -zone info. So check for files there first. Break out a function to -manage the trying of (now three) zoneinfo directories when opening a -file by name relative to there. - -Pick-to: 6.6 6.5 -Task-number: QTBUG-116017 -Change-Id: I1f97107aabd9015c0a5543639870f1d70654ca67 ---- -* Rebased on top of v6.5.2. - - src/corelib/time/qtimezoneprivate_tz.cpp | 73 ++++++++++++++++-------- - 1 file changed, 49 insertions(+), 24 deletions(-) - -diff --git a/src/corelib/time/qtimezoneprivate_tz.cpp b/src/corelib/time/qtimezoneprivate_tz.cpp -index 067191d816..a8b2fc894e 100644 ---- a/src/corelib/time/qtimezoneprivate_tz.cpp -+++ b/src/corelib/time/qtimezoneprivate_tz.cpp -@@ -51,17 +51,41 @@ typedef QHash QTzTimeZoneHash; - - static bool isTzFile(const QString &name); - -+// Open a named file under the zone info directory: -+static bool openZoneInfo(QString name, QFile *file) -+{ -+ // At least on Linux / glibc (see man 3 tzset), $TZDIR overrides the system -+ // default location for zone info: -+ const QString tzdir = qEnvironmentVariable("TZDIR"); -+ if (!tzdir.isEmpty()) { -+ file->setFileName(QDir(tzdir).filePath(name)); -+ if (file->open(QIODevice::ReadOnly)) -+ return true; -+ } -+ // Try modern system path first: -+ constexpr auto zoneShare = "/usr/share/zoneinfo/"_L1; -+ if (tzdir != zoneShare && tzdir != zoneShare.chopped(1)) { -+ file->setFileName(zoneShare + name); -+ if (file->open(QIODevice::ReadOnly)) -+ return true; -+ } -+ // Fall back to legacy system path: -+ constexpr auto zoneLib = "/usr/lib/zoneinfo/"_L1; -+ if (tzdir != zoneLib && tzdir != zoneLib.chopped(1)) { -+ file->setFileName(zoneShare + name); -+ if (file->open(QIODevice::ReadOnly)) -+ return true; -+ } -+ return false; -+} -+ - // Parse zone.tab table for territory information, read directories to ensure we - // find all installed zones (many are omitted from zone.tab; even more from - // zone1970.tab). - static QTzTimeZoneHash loadTzTimeZones() - { -- QString path = QStringLiteral("/usr/share/zoneinfo/zone.tab"); -- if (!QFile::exists(path)) -- path = QStringLiteral("/usr/lib/zoneinfo/zone.tab"); -- -- QFile tzif(path); -- if (!tzif.open(QIODevice::ReadOnly)) -+ QFile tzif; -+ if (!openZoneInfo("zone.tab"_L1, &tzif)) - return QTzTimeZoneHash(); - - QTzTimeZoneHash zonesHash; -@@ -91,6 +115,7 @@ static QTzTimeZoneHash loadTzTimeZones() - } - } - -+ const QString path = tzif.fileName(); - const qsizetype cut = path.lastIndexOf(u'/'); - Q_ASSERT(cut > 0); - const QDir zoneDir = QDir(path.first(cut)); -@@ -761,20 +786,13 @@ QTzTimeZoneCacheEntry QTzTimeZoneCache::findEntry(const QByteArray &ianaId) - tzif.setFileName(QStringLiteral("/etc/localtime")); - if (!tzif.open(QIODevice::ReadOnly)) - return ret; -- } else { -- // Open named tz, try modern path first, if fails try legacy path -- tzif.setFileName("/usr/share/zoneinfo/"_L1 + QString::fromLocal8Bit(ianaId)); -- if (!tzif.open(QIODevice::ReadOnly)) { -- tzif.setFileName("/usr/lib/zoneinfo/"_L1 + QString::fromLocal8Bit(ianaId)); -- if (!tzif.open(QIODevice::ReadOnly)) { -- // ianaId may be a POSIX rule, taken from $TZ or /etc/TZ -- auto check = validatePosixRule(ianaId); -- if (check.isValid) { -- ret.m_hasDst = check.hasDst; -- ret.m_posixRule = ianaId; -- } -- return ret; -- } -+ } else if (!openZoneInfo(QString::fromLocal8Bit(ianaId), &tzif)) { -+ // ianaId may be a POSIX rule, taken from $TZ or /etc/TZ -+ auto check = validatePosixRule(ianaId); -+ if (check.isValid) { -+ ret.m_hasDst = check.hasDst; -+ ret.m_posixRule = ianaId; -+ return ret; - } - } - -@@ -1317,7 +1335,8 @@ private: - { - // On most distros /etc/localtime is a symlink to a real file so extract - // name from the path -- const auto zoneinfo = "/zoneinfo/"_L1; -+ const QString tzdir = qEnvironmentVariable("TZDIR"); -+ constexpr auto zoneinfo = "/zoneinfo/"_L1; - QString path = QStringLiteral("/etc/localtime"); - long iteration = getSymloopMax(); - // Symlink may point to another symlink etc. before being under zoneinfo/ -@@ -1325,9 +1344,15 @@ private: - // symlink, like America/Montreal pointing to America/Toronto - do { - path = QFile::symLinkTarget(path); -- int index = path.indexOf(zoneinfo); -- if (index >= 0) // Found zoneinfo file; extract zone name from path: -- return QStringView{ path }.mid(index + zoneinfo.size()).toUtf8(); -+ // If it's a zoneinfo file, extract the zone name from its path: -+ int index = tzdir.isEmpty() ? -1 : path.indexOf(tzdir); -+ if (index >= 0) { -+ const auto tail = QStringView{ path }.sliced(index + tzdir.size()).toUtf8(); -+ return tail.startsWith(u'/') ? tail.sliced(1) : tail; -+ } -+ index = path.indexOf(zoneinfo); -+ if (index >= 0) -+ return QStringView{ path }.sliced(index + zoneinfo.size()).toUtf8(); - } while (!path.isEmpty() && --iteration > 0); - - return QByteArray(); - -base-commit: af457a9f0f7eb1a2a7d11f495da508faab91a442 --- -2.41.0 - diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 761d12e31f..13008154c4 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -67,6 +67,7 @@ (define-module (gnu packages qt) #:use-module (gnu packages bash) #:use-module (gnu packages base) #:use-module (gnu packages bison) + #:use-module (gnu packages crypto) #:use-module (gnu packages check) #:use-module (gnu packages cmake) #:use-module (gnu packages compression) @@ -654,25 +655,22 @@ (define-public qtbase (package (inherit qtbase-5) (name "qtbase") - (version "6.5.2") + (version "6.6.2") (source (origin (inherit (package-source qtbase-5)) (uri (qt-url name version)) (sha256 (base32 - "0s8jwzdcv97dfy8n3jjm8zzvllv380l73mwdva7rs2nqnhlwgd1x")) + "0yv78bwqzy975854h53rbiilsms62f3v02i3jqz7v8ajk1ml56xq")) (modules '((guix build utils))) (snippet ;; corelib uses bundled harfbuzz, md4, md5, sha3 '(with-directory-excursion "src/3rdparty" (for-each delete-file-recursively - ;; The bundled pcre2 copy is kept, as its headers - ;; are required by some internal bootstrap target - ;; used for the tools. (list "double-conversion" "freetype" "harfbuzz-ng" - "libpng" "libjpeg" "sqlite" "xcb" "zlib")))) - (patches (search-patches "qtbase-use-TZDIR.patch" - "qtbase-moc-ignore-gcc-macro.patch" + "pcre2" "md4c" "libpng" "libjpeg" + "sqlite" "xcb" "zlib")))) + (patches (search-patches "qtbase-moc-ignore-gcc-macro.patch" "qtbase-absolute-runpath.patch" "qtbase-qmake-use-libname.patch")))) (build-system cmake-build-system) @@ -814,6 +812,9 @@ (define-public qtbase (string-join (append (list + ;; FIXME + "tst_qt_cmake_create" + "tst_selftests" ;; The 'tst_moc' test fails with "'fi.exists()' returned FALSE". "tst_moc" @@ -984,6 +985,7 @@ (define-public qtbase bash-minimal coreutils-minimal md4c + libb2 libice libsm libxcb