From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id o9hhJlAIcWBd4AAAgWs5BA (envelope-from ) for ; Sat, 10 Apr 2021 04:07:12 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id eLFAHVAIcWBPfAAAbx9fmQ (envelope-from ) for ; Sat, 10 Apr 2021 02:07:12 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 27DBFCA5E for ; Sat, 10 Apr 2021 04:07:12 +0200 (CEST) Received: from localhost ([::1]:34422 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lV31j-0004ib-4n for larch@yhetil.org; Fri, 09 Apr 2021 22:07:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34194) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lV31a-0004hW-JN for guix-patches@gnu.org; Fri, 09 Apr 2021 22:07:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:39668) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lV31a-0005tQ-CR for guix-patches@gnu.org; Fri, 09 Apr 2021 22:07:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lV31a-0004SR-7q for guix-patches@gnu.org; Fri, 09 Apr 2021 22:07:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#47684] [PATCH 2/2] gnu: Add qtbase (version 6). Resent-From: Maxim Cournoyer Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 10 Apr 2021 02:07:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47684 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 47684@debbugs.gnu.org Cc: Maxim Cournoyer Received: via spool by 47684-submit@debbugs.gnu.org id=B47684.161802041217113 (code B ref 47684); Sat, 10 Apr 2021 02:07:02 +0000 Received: (at 47684) by debbugs.gnu.org; 10 Apr 2021 02:06:52 +0000 Received: from localhost ([127.0.0.1]:51213 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lV31Q-0004Rw-5T for submit@debbugs.gnu.org; Fri, 09 Apr 2021 22:06:52 -0400 Received: from mail-qt1-f181.google.com ([209.85.160.181]:44651) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lV31O-0004RV-GX for 47684@debbugs.gnu.org; Fri, 09 Apr 2021 22:06:51 -0400 Received: by mail-qt1-f181.google.com with SMTP id y12so5739560qtx.11 for <47684@debbugs.gnu.org>; Fri, 09 Apr 2021 19:06:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=1uNiXulJh2dHK1CEQ41zefjKp7C4H9yFArg+YrrcsN8=; b=IEktMiY+wpHnhC1riMtJgnPzB/ktk2ps7klalMkYle+m3HpriOo66DEv8iyTSObdQ6 gVIU7RSbkjaiEqW0u3rsSr+e41BVYcwclHpl4q6tehbuaMFcgOtsbdLra77/kKrp6Asi XUrnvCDp1uGOTPTGZ2HndWBqNpl7iSaF5RS5d6V7REUkl7kLWYZ6x721unZSBxfq7zdN NX7yTpCj9HJgRZtNGQWZZtLQy7mVAuckQewGZcH8HcyO1ddJ9nz1B7K80vRSLL6Knv/x QQ1fqZSsCjsFefKQ2NgxgrOiOoGCTVix+UZU92GNORtr742E7oxnjpLvLC+TlAOYCiAx CUNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=1uNiXulJh2dHK1CEQ41zefjKp7C4H9yFArg+YrrcsN8=; b=Knww6wP48wkp3qMFkd2BY4RzVHxVihgC64OfgiZjAJEipRjd40VmEW9dorA5f0cN3x bSBdjiwJDTLnisQMcv+RZb2y+ZE1MYaPAVHdtz1I6d0LyMtiKG3w2OskGhSEZerPNzMQ SXZlP2cnH6Q2jljPWloOG0RNS29XxflXdze1ssUAfke8NO5a5vcTLOQ2EVc7w/0njPVq 1VcWu4i+tAum8fJUYfOvyKkdbMVjGEL5yBF5PT4UxPL/DIFVVKKB4+tOTe795NVgJtPe LxI1XtVmSMlx4Abu6pTzIeNaQ+e4jxA3wOGg8ujynNKfRvqYCn4cBie0yOKxgqQOamnl ehrw== X-Gm-Message-State: AOAM531t12/OWYny1xQqA3hkK3vJNV2fCSN9LtmQwK2ZRHFHeBDMHu9u Sv01XTnMe1PCyy6fee9f0FJTySr+5QA= X-Google-Smtp-Source: ABdhPJwKuNMhxGJFZ7e6rSJ98RevK82OAa6+HJ7ZJsaYuc92FtdGIp+b5abvU8ut8Dot42vhXBOa2g== X-Received: by 2002:a05:622a:549:: with SMTP id m9mr15653230qtx.359.1618020404822; Fri, 09 Apr 2021 19:06:44 -0700 (PDT) Received: from localhost.localdomain (dsl-236-123-235.b2b2c.ca. [207.236.123.235]) by smtp.gmail.com with ESMTPSA id o197sm3121594qka.26.2021.04.09.19.06.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 09 Apr 2021 19:06:44 -0700 (PDT) From: Maxim Cournoyer Date: Fri, 9 Apr 2021 22:06:34 -0400 Message-Id: <20210410020634.17009-2-maxim.cournoyer@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210410020634.17009-1-maxim.cournoyer@gmail.com> References: <20210410020634.17009-1-maxim.cournoyer@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1618020432; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=1uNiXulJh2dHK1CEQ41zefjKp7C4H9yFArg+YrrcsN8=; b=rx6FQADoWgcFXNhQwhlFHfwlaasJS26DZ5YP3V2jtkoVCJLxkO/CUs8JPzK5bSrDj3TFwy vE+729Y4xNYxY1JjzPjpU7e70sJLL8q/TaBFyyDRXAwh81Zg3xj9DKqQRTeTGB8bqH7bPe o7Ac7gRXWFRx2Jrha8csxnFbr2u6elhR7E2qh90TyG4cLJk3VBdO0x3GY72IUD4T5EYnqT QUTHNh2UmyV4nz7crNAcLtpfpRwzV5MIoghUtOpPfDtubbehjemH4N7XuRki0fNyXMuzhV abf7+tvyD8/VDSXzT03df0vmirhHnCBBFpQCM99LonQ4uDFmNMx214uVA9+ceA== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1618020432; a=rsa-sha256; cv=none; b=WTodsdzeAMTG0kmNMfH0jwdxtSpg5y5MUVe1OqNKJZiH63nwAO0lELBblmcwuXXotcUOK3 M0mrgNuGZYL1ZbkjITDg8i5eajN280uhDh5GPfmHbCjUuXp5b0gwkfjFyqhA4cIJiyYr3A 8RBcSpY+Wpvg1b29VJO6cShpoCd2VadkvDGieCfkMflbU6enszo17gqFSDLSiOGuMHCzXA upqGbmsV/rIOUak/SUHznFw0ViXgD6rBjipIuQ6YyeymF7c5HT8Dcs6y/+9cds/JKGE8ez 3/FLTsaqhHzT4oA+wc/uy3vbkEenAgDOCNSN34OMzhOgb6UYKpIwcrwVnYCGpA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gmail.com header.s=20161025 header.b=IEktMiY+; dmarc=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Spam-Score: 4.16 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gmail.com header.s=20161025 header.b=IEktMiY+; dmarc=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Queue-Id: 27DBFCA5E X-Spam-Score: 4.16 X-Migadu-Scanner: scn0.migadu.com X-TUID: Ax5S42pC6KwF * gnu/packages/qt.scm (qtbase): New variable. --- gnu/packages/qt.scm | 153 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 151 insertions(+), 2 deletions(-) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 00bd4c29a7..b38d672c5e 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -552,8 +552,157 @@ system, and the core design of Django is reused in Grantlee.") developers using C++ or QML, a CSS & JavaScript like language.") (license (list license:lgpl2.1 license:lgpl3)))) -;; qt used to refer to the monolithic Qt 5.x package -(define-deprecated qt qtbase) +(define-public qtbase + (package/inherit qtbase-5 + (name "qtbase") + (version "6.0.3") + (source (origin + (inherit (package-source qtbase-5)) + (uri (qt5-urls name version)) + (sha256 + (base32 + "156k21z8xqg0jxipil1dfrly42dkrd0fmqshbii6969l58fbci8s")) + (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")))))) + (build-system cmake-build-system) + (arguments + (substitute-keyword-arguments (package-arguments qtbase-5) + ;; XXX: There are many test failures, because the test suite + ;; requires a real X server (a virtual one such as Xvfb is not + ;; enough) or a functional network. It's also quite expensive to + ;; build and run. + ((#:tests? _ #f) #f) + ;; ((#:cmake _) + ;; cmake) ;requires a CMake >= 3.18.4 + ((#:configure-flags _ ''()) + `(let ((out (assoc-ref %outputs "out"))) + (list "-GNinja" ;the build fails otherwise + (string-append "-DINSTALL_ARCHDATADIR=" out "/lib/qt6") + (string-append "-DINSTALL_DATADIR=" out "/share/qt6") + (string-append "-DINSTALL_DOCDIR=" out "/share/doc/qt6") + (string-append "-DINSTALL_MKSPECSDIR=" out "/lib/qt6/mkspecs") + (string-append "-DINSTALL_EXAMPLESDIR=" out + "/share/doc/qt6/examples") + (string-append "-DINSTALL_INCLUDEDIR=" out "/include/qt6") + ;; Link with DBus and OpenSSL so they don't get dlopen'ed. + "-DINPUT_dbus=linked" + "-DINPUT_openssl=linked" + ;; These features require higher versions of Linux than the + ;; minimum version of the glibc. See + ;; src/corelib/global/minimum-linux_p.h. By disabling these + ;; features Qt applications can be used on the oldest kernels + ;; that the glibc supports, including the RHEL6 (2.6.32) and + ;; RHEL7 (3.10) kernels. + "-DFEATURE_getentropy=OFF" ; requires Linux 3.17 + "-DFEATURE_renameat2=OFF" ; requires Linux 3.16 + ;; Most system libraries are used by default, except in some + ;; cases such as for those below. + "-DFEATURE_system_pcre2=ON" + "-DFEATURE_system_sqlite=ON" + ;; Don't use the precompiled headers. + "-DBUILD_WITH_PCH=OFF" + ;; Drop special machine instructions that do not have runtime + ;; detection. + ,@(if (string-prefix? "x86_64" + (or (%current-target-system) + (%current-system))) + '() ;implicitly enabled + '("-DFEATURE_sse2=OFF" + "-DFEATURE_sse3=OFF" + "-DFEATURE_ssse3=OFF" + "-DFEATURE_sse4_1=OFF" + "-DFEATURE_sse4_2=OFF")) + "-DFEATURE_mips_dsp=OFF" + "-DFEATURE_mips_dspr2=OFF"))) + ((#:phases phases) + `(modify-phases ,phases + (delete 'patch-bin-sh) + (delete 'patch-xdg-open) + (add-after 'patch-paths 'patch-more-paths + (lambda _ + (substitute* "src/gui/platform/unix/qgenericunixservices.cpp" + (("\"xdg-open\"") + (format #f "~s" (which "xdg-open")))) + (substitute* "src/corelib/global/global.pri" + (("/bin/ls") + (which "ls"))) + (substitute* '("mkspecs/features/qt_functions.prf" + "qmake/library/qmakebuiltins.cpp") + (("/bin/sh") + (which "sh"))))) + (replace 'configure + (assoc-ref %standard-phases 'configure)) + (replace 'build + (lambda* (#:key parallel-build? #:allow-other-keys) + (apply invoke "cmake" "--build" "." + (if parallel-build? + `("--parallel" ,(number->string (parallel-job-count))) + '())))) + (replace 'install + (lambda _ + (invoke "cmake" "--install" "."))) + (replace 'patch-mkspecs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (archdata (string-append out "/lib/qt6")) + (mkspecs (string-append archdata "/mkspecs")) + (qt_config.prf (string-append + mkspecs "/features/qt_config.prf"))) + ;; For each Qt module, let `qmake' uses search paths in the + ;; module directory instead of all in QT_INSTALL_PREFIX. + (substitute* qt_config.prf + (("\\$\\$\\[QT_INSTALL_HEADERS\\]") + "$$clean_path($$replace(dir, mkspecs/modules, ../../include/qt6))") + (("\\$\\$\\[QT_INSTALL_LIBS\\]") + "$$clean_path($$replace(dir, mkspecs/modules, ../../lib))") + (("\\$\\$\\[QT_HOST_LIBS\\]") + "$$clean_path($$replace(dir, mkspecs/modules, ../../lib))") + (("\\$\\$\\[QT_INSTALL_BINS\\]") + "$$clean_path($$replace(dir, mkspecs/modules, ../../bin))")) + + ;; Searches Qt tools in the current PATH instead of QT_HOST_BINS. + (substitute* (string-append mkspecs "/features/qt_functions.prf") + (("cmd = \\$\\$\\[QT_HOST_BINS\\]/\\$\\$2") + "cmd = $$system(which $${2}.pl 2>/dev/null || which $${2})")) + + ;; Resolve qmake spec files within qtbase by absolute paths. + (substitute* + (map (lambda (file) + (string-append mkspecs "/features/" file)) + '("device_config.prf" "moc.prf" "qt_build_config.prf" + "qt_config.prf")) + (("\\$\\$\\[QT_HOST_DATA/get\\]") archdata) + (("\\$\\$\\[QT_HOST_DATA/src\\]") archdata))))))))) + (native-inputs + `(("gtk+" ,gtk+) ;for GTK theme support + ("ninja" ,ninja) + ("wayland-protocols" ,wayland-protocols) + ("xorg-server" ,xorg-server-for-tests) + ,@(package-native-inputs qtbase-5))) + (native-search-paths + (list (search-path-specification + (variable "QMAKEPATH") + (files '("lib/qt6"))) + (search-path-specification + (variable "QML2_IMPORT_PATH") + (files '("lib/qt6/qml"))) + (search-path-specification + (variable "QT_PLUGIN_PATH") + (files '("lib/qt6/plugins"))) + (search-path-specification + (variable "XDG_DATA_DIRS") + (files '("share"))) + (search-path-specification + (variable "XDG_CONFIG_DIRS") + (files '("etc/xdg"))))))) (define-public qtsvg (package (inherit qtbase) -- 2.31.1