From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 30 16:59:21 2019 Received: (at submit) by debbugs.gnu.org; 30 Nov 2019 21:59:21 +0000 Received: from localhost ([127.0.0.1]:35223 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ibAlt-0005ce-Dz for submit@debbugs.gnu.org; Sat, 30 Nov 2019 16:59:21 -0500 Received: from lists.gnu.org ([209.51.188.17]:41993) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ibAls-0005cX-8T for submit@debbugs.gnu.org; Sat, 30 Nov 2019 16:59:20 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:39709) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ibAlq-0003qk-UI for guix-patches@gnu.org; Sat, 30 Nov 2019 16:59:20 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW, URIBL_BLOCKED autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ibAlp-0007pl-Mx for guix-patches@gnu.org; Sat, 30 Nov 2019 16:59:18 -0500 Received: from mail-out.m-online.net ([212.18.0.9]:33366) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ibAlp-0007mk-Gv for guix-patches@gnu.org; Sat, 30 Nov 2019 16:59:17 -0500 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 47QQJL3GVSz1qqkW for ; Sat, 30 Nov 2019 22:59:14 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 47QQJL39pHz1qwZJ for ; Sat, 30 Nov 2019 22:59:14 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id EmOAWCXhUv8F for ; Sat, 30 Nov 2019 22:59:13 +0100 (CET) Received: from hermia.goebel-consult.de (ppp-188-174-57-47.dynamic.mnet-online.de [188.174.57.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPS for ; Sat, 30 Nov 2019 22:59:13 +0100 (CET) Received: from thisbe.fritz.box (unknown [192.168.110.24]) by hermia.goebel-consult.de (Postfix) with ESMTP id 99B26601FB for ; Sat, 30 Nov 2019 22:59:46 +0100 (CET) From: Hartmut Goebel To: guix-patches@gnu.org Subject: [PATCH 0/5] Add the `qt` build-system. Date: Sat, 30 Nov 2019 22:59:10 +0100 Message-Id: <20191130215910.18891-1-h.goebel@crazy-compilers.com> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 212.18.0.9 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Works and is a good substitude for `wrap-program` from `qt-utils`. This `wrap-program` is still kept, since some packagins not using the cmake-build-syttem use it. Like `wrap-program`, this implementation has one deficit: The wrapper collects paths from *all* inputs, thus e.g. cmake will become a dependency of *every* binary packages using qt-build-system. But contraty to `wrap-program` this implementation does not use env-vars = to build the paths, but inputs. Thus it will be easier to solve the issue by filtering inputs. Comments on the code are heardy welcome. Also see Hartmut Goebel (5): guix: Add the 'qt' build system. gnu: sddm: Use qt-build-system. gnu: ktouch: Use qt-build-system. gnu: kdeconnect: Use qt-build-system. gnu: quaternion: Use qt-build-system. Makefile.am | 2 + doc/guix.texi | 21 ++- gnu/packages/display-managers.scm | 18 +- gnu/packages/education.scm | 17 +- gnu/packages/kde.scm | 18 +- gnu/packages/messaging.scm | 17 +- guix/build-system/qt.scm | 295 ++++++++++++++++++++++++++++++ guix/build/qt-build-system.scm | 109 +++++++++++ 8 files changed, 440 insertions(+), 57 deletions(-) create mode 100644 guix/build-system/qt.scm create mode 100644 guix/build/qt-build-system.scm --=20 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 30 17:01:11 2019 Received: (at 38440) by debbugs.gnu.org; 30 Nov 2019 22:01:11 +0000 Received: from localhost ([127.0.0.1]:35234 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ibAnZ-0005hi-4q for submit@debbugs.gnu.org; Sat, 30 Nov 2019 17:01:11 -0500 Received: from mail-out.m-online.net ([212.18.0.9]:41032) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ibAnW-0005h0-D2 for 38440@debbugs.gnu.org; Sat, 30 Nov 2019 17:01:04 -0500 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 47QQLP4sktz1qqkZ for <38440@debbugs.gnu.org>; Sat, 30 Nov 2019 23:01:01 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 47QQLP31JGz1qwZM for <38440@debbugs.gnu.org>; Sat, 30 Nov 2019 23:01:01 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id EDCaAXfVPqLg for <38440@debbugs.gnu.org>; Sat, 30 Nov 2019 23:00:59 +0100 (CET) Received: from hermia.goebel-consult.de (ppp-188-174-57-47.dynamic.mnet-online.de [188.174.57.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPS for <38440@debbugs.gnu.org>; Sat, 30 Nov 2019 23:00:58 +0100 (CET) Received: from thisbe.fritz.box (unknown [192.168.110.24]) by hermia.goebel-consult.de (Postfix) with ESMTP id E8CF0601FB for <38440@debbugs.gnu.org>; Sat, 30 Nov 2019 23:01:31 +0100 (CET) From: Hartmut Goebel To: 38440@debbugs.gnu.org Subject: [PATCH 1/5] guix: Add the 'qt' build system. Date: Sat, 30 Nov 2019 23:00:51 +0100 Message-Id: <20191130220055.19069-1-h.goebel@crazy-compilers.com> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 38440 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * guix/build-system/qt.scm, guix/build/qt-build-system.scm: New files. * Makefile.am (MODULES): Add them. * doc/guix.texi (Buiild systems): Add the new build system. --- Makefile.am | 2 + doc/guix.texi | 21 ++- guix/build-system/qt.scm | 295 +++++++++++++++++++++++++++++++++ guix/build/qt-build-system.scm | 109 ++++++++++++ 4 files changed, 426 insertions(+), 1 deletion(-) create mode 100644 guix/build-system/qt.scm create mode 100644 guix/build/qt-build-system.scm diff --git a/Makefile.am b/Makefile.am index b3f03d44c8..97f1ff514b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -132,6 +132,7 @@ MODULES = \ guix/build-system/perl.scm \ guix/build-system/python.scm \ guix/build-system/ocaml.scm \ + guix/build-system/qt.scm \ guix/build-system/waf.scm \ guix/build-system/r.scm \ guix/build-system/rakudo.scm \ @@ -178,6 +179,7 @@ MODULES = \ guix/build/perl-build-system.scm \ guix/build/python-build-system.scm \ guix/build/ocaml-build-system.scm \ + guix/build/qt-build-system.scm \ guix/build/r-build-system.scm \ guix/build/rakudo-build-system.scm \ guix/build/ruby-build-system.scm \ diff --git a/doc/guix.texi b/doc/guix.texi index 23a30ce553..cf1d38afc9 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -47,7 +47,7 @@ Copyright @copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 Christopher Allan Webber@* Copyright @copyright{} 2017, 2018 Marius Bakke@* -Copyright @copyright{} 2017 Hartmut Goebel@* +Copyright @copyright{} 2017, 2019 Hartmut Goebel@* Copyright @copyright{} 2017, 2019 Maxim Cournoyer@* Copyright @copyright{} 2017, 2018, 2019 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* @@ -6408,6 +6408,25 @@ passes flags specified by the @code{#:make-maker-flags} or Which Perl package is used can be specified with @code{#:perl}. @end defvr +@defvr {Scheme Variable} qt-build-system +This variable is exported by @code{(guix build-system qt)}. It +is intended for use with applications using Qt or KDE. + +This build system adds the phase @code{qt-wrap} to the ones defined by +@var{cmake-build-system}, after the @code{install} phase. + +This phase searches for Qt5 plugin paths, QML paths and some XDG in the inputs +and output. In case some path is found, all programs in the output's +@file{bin/}, @file{sbin/}, @file{libexec/} and @file{lib/libexec/} directories +are wrapped in scripts defining the necessary environment variables. + +It is possible to exclude specific package outputs from that wrapping process +by listing their names in the @code{#:qt-wrap-excluded-outputs} parameter. +This is useful when an output is known not to contain any Qt binaries, and +where wrapping would gratuitously add a dependency of that output on Qt, KDE, +or such. +@end defvr + @defvr {Scheme Variable} r-build-system This variable is exported by @code{(guix build-system r)}. It implements the build procedure used by @uref{https://r-project.org, R} diff --git a/guix/build-system/qt.scm b/guix/build-system/qt.scm new file mode 100644 index 0000000000..5ce4e91c41 --- /dev/null +++ b/guix/build-system/qt.scm @@ -0,0 +1,295 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2013 Cyril Roelandt +;;; Copyright © 2017 Ricardo Wurmus +;;; Copyright © 2019 Hartmut Goebel +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix build-system qt) + #:use-module (guix store) + #:use-module (guix utils) + #:use-module (guix derivations) + #:use-module (guix search-paths) + #:use-module (guix build-system) + #:use-module (guix build-system cmake) + #:use-module (guix build-system gnu) + #:use-module (guix packages) + #:use-module (ice-9 match) + #:export (%qt-build-system-modules + qt-build + qt-build-system)) + +;; Commentary: +;; +;; This build system is an extension of the 'cmake-build-system'. It +;; accommodates the needs of Qt and KDE applications by adding a phase run +;; after the 'install' phase: +;; +;; 'qt-wrap' phase: +;; +;; This phase looks for Qt5 plugin paths, QML paths and some XDG paths as well +;; as the corresponding environment variables. If any of these is found in +;; the output or if respective environment variables are set, then all +;; programs in the output's "bin", "sbin", "libexec and "lib/libexec" +;; directories are wrapped in scripts defining the necessary environment +;; variables. +;; +;; Code: + +(define %qt-build-system-modules + ;; Build-side modules imported and used by default. + `((guix build qt-build-system) + ,@%cmake-build-system-modules)) + +(define (default-cmake) + "Return the default CMake package." + + ;; Do not use `@' to avoid introducing circular dependencies. + (let ((module (resolve-interface '(gnu packages cmake)))) + (module-ref module 'cmake-minimal))) + +;; This barely is a copy from (guix build-system cmake), only adjusted to use +;; the variables defined here. +(define* (lower name + #:key source inputs native-inputs outputs system target + (cmake (default-cmake)) + #:allow-other-keys + #:rest arguments) + "Return a bag for NAME." + (define private-keywords + `(#:source #:cmake #:inputs #:native-inputs #:outputs + ,@(if target '() '(#:target)))) + + (bag + (name name) + (system system) + (target target) + (build-inputs `(,@(if source + `(("source" ,source)) + '()) + ,@`(("cmake" ,cmake)) + ,@native-inputs + ,@(if target + ;; Use the standard cross inputs of + ;; 'gnu-build-system'. + (standard-cross-packages target 'host) + '()) + ;; Keep the standard inputs of 'gnu-build-system'. + ,@(standard-packages))) + (host-inputs inputs) + + ;; The cross-libc is really a target package, but for bootstrapping + ;; reasons, we can't put it in 'host-inputs'. Namely, 'cross-gcc' is a + ;; native package, so it would end up using a "native" variant of + ;; 'cross-libc' (built with 'gnu-build'), whereas all the other packages + ;; would use a target variant (built with 'gnu-cross-build'.) + (target-inputs (if target + (standard-cross-packages target 'target) + '())) + (outputs outputs) + (build (if target qt-cross-build qt-build)) + (arguments (strip-keyword-arguments private-keywords arguments)))) + + +(define* (qt-build store name inputs + #:key (guile #f) + (outputs '("out")) (configure-flags ''()) + (search-paths '()) + (make-flags ''()) + (out-of-source? #t) + (build-type "RelWithDebInfo") + (tests? #t) + (test-target "test") + (parallel-build? #t) (parallel-tests? #f) + (validate-runpath? #t) + (patch-shebangs? #t) + (strip-binaries? #t) + (strip-flags ''("--strip-debug")) + (strip-directories ''("lib" "lib64" "libexec" + "bin" "sbin")) + (phases '(@ (guix build qt-build-system) + %qt-standard-phases)) + (qt-wrap-excluded-outputs ''()) + (system (%current-system)) + (imported-modules %qt-build-system-modules) + (modules '((guix build cmake-build-system) + (guix build utils)))) + "Build SOURCE using CMAKE, and with INPUTS. This assumes that SOURCE +provides a 'CMakeLists.txt' file as its build system." + (define builder + `(begin + (use-modules ,@modules) + (cmake-build #:source ,(match (assoc-ref inputs "source") + (((? derivation? source)) + (derivation->output-path source)) + ((source) + source) + (source + source)) + #:system ,system + #:outputs %outputs + #:inputs %build-inputs + #:search-paths ',(map search-path-specification->sexp + search-paths) + #:phases ,phases + #:qt-wrap-excluded-outputs ,qt-wrap-excluded-outputs + #:configure-flags ,configure-flags + #:make-flags ,make-flags + #:out-of-source? ,out-of-source? + #:build-type ,build-type + #:tests? ,tests? + #:test-target ,test-target + #:parallel-build? ,parallel-build? + #:parallel-tests? ,parallel-tests? + #:validate-runpath? ,validate-runpath? + #:patch-shebangs? ,patch-shebangs? + #:strip-binaries? ,strip-binaries? + #:strip-flags ,strip-flags + #:strip-directories ,strip-directories))) + + (define guile-for-build + (match guile + ((? package?) + (package-derivation store guile system #:graft? #f)) + (#f ; the default + (let* ((distro (resolve-interface '(gnu packages commencement))) + (guile (module-ref distro 'guile-final))) + (package-derivation store guile system #:graft? #f))))) + + (build-expression->derivation store name builder + #:system system + #:inputs inputs + #:modules imported-modules + #:outputs outputs + #:guile-for-build guile-for-build)) + + +;;; +;;; Cross-compilation. +;;; + +(define* (qt-cross-build store name + #:key + target native-drvs target-drvs + (guile #f) + (outputs '("out")) + (configure-flags ''()) + (search-paths '()) + (native-search-paths '()) + (make-flags ''()) + (out-of-source? #t) + (build-type "RelWithDebInfo") + (tests? #f) ; nothing can be done + (test-target "test") + (parallel-build? #t) (parallel-tests? #f) + (validate-runpath? #t) + (patch-shebangs? #t) + (strip-binaries? #t) + (strip-flags ''("--strip-debug" + "--enable-deterministic-archives")) + (strip-directories ''("lib" "lib64" "libexec" + "bin" "sbin")) + (phases '(@ (guix build qt-build-system) + %qt-standard-phases)) + (system (%current-system)) + (build (nix-system->gnu-triplet system)) + (imported-modules %qt-build-system-modules) + (modules '((guix build cmake-build-system) + (guix build utils)))) + "Cross-build NAME using CMAKE for TARGET, where TARGET is a GNU triplet and +with INPUTS. This assumes that SOURCE provides a 'CMakeLists.txt' file as its +build system." + (define builder + `(begin + (use-modules ,@modules) + (let () + (define %build-host-inputs + ',(map (match-lambda + ((name (? derivation? drv) sub ...) + `(,name . ,(apply derivation->output-path drv sub))) + ((name path) + `(,name . ,path))) + native-drvs)) + + (define %build-target-inputs + ',(map (match-lambda + ((name (? derivation? drv) sub ...) + `(,name . ,(apply derivation->output-path drv sub))) + ((name (? package? pkg) sub ...) + (let ((drv (package-cross-derivation store pkg + target system))) + `(,name . ,(apply derivation->output-path drv sub)))) + ((name path) + `(,name . ,path))) + target-drvs)) + + (cmake-build #:source ,(match (assoc-ref native-drvs "source") + (((? derivation? source)) + (derivation->output-path source)) + ((source) + source) + (source + source)) + #:system ,system + #:build ,build + #:target ,target + #:outputs %outputs + #:inputs %build-target-inputs + #:native-inputs %build-host-inputs + #:search-paths ',(map search-path-specification->sexp + search-paths) + #:native-search-paths ',(map + search-path-specification->sexp + native-search-paths) + #:phases ,phases + #:configure-flags ,configure-flags + #:make-flags ,make-flags + #:out-of-source? ,out-of-source? + #:build-type ,build-type + #:tests? ,tests? + #:test-target ,test-target + #:parallel-build? ,parallel-build? + #:parallel-tests? ,parallel-tests? + #:validate-runpath? ,validate-runpath? + #:patch-shebangs? ,patch-shebangs? + #:strip-binaries? ,strip-binaries? + #:strip-flags ,strip-flags + #:strip-directories ,strip-directories)))) + + (define guile-for-build + (match guile + ((? package?) + (package-derivation store guile system #:graft? #f)) + (#f ; the default + (let* ((distro (resolve-interface '(gnu packages commencement))) + (guile (module-ref distro 'guile-final))) + (package-derivation store guile system #:graft? #f))))) + + (build-expression->derivation store name builder + #:system system + #:inputs (append native-drvs target-drvs) + #:outputs outputs + #:modules imported-modules + #:guile-for-build guile-for-build)) + +(define qt-build-system + (build-system + (name 'qt) + (description + "The CMake build system augmented with definition of suitable environment +variables for Qt and KDE in program wrappers.") + (lower lower))) diff --git a/guix/build/qt-build-system.scm b/guix/build/qt-build-system.scm new file mode 100644 index 0000000000..46fcad7848 --- /dev/null +++ b/guix/build/qt-build-system.scm @@ -0,0 +1,109 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 Federico Beffa +;;; Copyright © 2014, 2015 Ludovic Courtès +;;; Copyright © 2018 Mark H Weaver +;;; Copyright © 2019 Hartmut Goebel +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix build qt-build-system) + #:use-module ((guix build cmake-build-system) #:prefix cmake:) + #:use-module (guix build utils) + #:use-module (ice-9 match) + #:use-module (ice-9 regex) + #:use-module (ice-9 ftw) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:export (%standard-phases + qt-build)) + +;; Commentary: +;; +;; Builder-side code of the standard Qt build procedure. +;; +;; Code: + +(define (variables-for-wrapping base-directories) + + (define (collect-sub-dirs base-directories subdirectory) + (filter-map + (lambda (dir) + (let ((directory (string-append dir subdirectory))) + (if (directory-exists? directory) directory #f))) + base-directories)) + + (filter + (lambda (var-to-wrap) (not (null? (last var-to-wrap)))) + (map + (lambda (var-spec) + `(,(first var-spec) = ,(collect-sub-dirs base-directories (last var-spec)))) + (list + ;; these shall match the search-path-specification for Qt and KDE + ;; libraries + '("XDG_DATA_DIRS" "/share") + '("XDG_CONFIG_DIRS" "/etc/xdg") + '("QT_PLUGIN_PATH" "/lib/qt5/plugins") + '("QML2_IMPORT_PATH" "/lib/qt5/qml"))))) + +(define* (wrap-all-programs #:key inputs outputs + (qt-wrap-excluded-outputs '()) + #:allow-other-keys) + "Implement phase \"qt-wrap\": look for GSettings schemas and +gtk+-v.0 libraries and create wrappers with suitably set environment variables +if found. + +Wrapping is not applied to outputs whose name is listed in +QT-WRAP-EXCLUDED-OUTPUTS. This is useful when an output is known not +to contain any Qt binaries, and where wrapping would gratuitously +add a dependency of that output on Qt." + (define (find-files-to-wrap directory) + (append-map + (lambda (dir) + (if (directory-exists? dir) (find-files dir ".*") (list))) + (list (string-append directory "/bin") + (string-append directory "/sbin") + (string-append directory "/libexec") + (string-append directory "/lib/libexec")))) + + (define input-directories + ;; FIXME: Filter out unwanted inputs, e.g. cmake + (match inputs + (((_ . dir) ...) + dir))) + + (define handle-output + (match-lambda + ((output . directory) + (unless (member output qt-wrap-excluded-outputs) + (let ((bin-list (find-files-to-wrap directory)) + (vars-to-wrap (variables-for-wrapping + (append (list output) + input-directories)))) + (when (not (null? vars-to-wrap)) + (for-each (cut apply wrap-program <> vars-to-wrap) + bin-list))))))) + + (for-each handle-output outputs) + #t) + +(define %standard-phases + (modify-phases cmake:%standard-phases + (add-after 'install 'qt-wrap wrap-all-programs))) + +(define* (qt-build #:key inputs (phases %standard-phases) + #:allow-other-keys #:rest args) + "Build the given package, applying all of PHASES in order." + (apply cmake:cmake-build #:inputs inputs #:phases phases args)) -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 30 17:01:11 2019 Received: (at 38440) by debbugs.gnu.org; 30 Nov 2019 22:01:11 +0000 Received: from localhost ([127.0.0.1]:35238 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ibAnf-0005i2-Bx for submit@debbugs.gnu.org; Sat, 30 Nov 2019 17:01:11 -0500 Received: from mail-out.m-online.net ([212.18.0.9]:37611) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ibAnZ-0005hj-Lt for 38440@debbugs.gnu.org; Sat, 30 Nov 2019 17:01:06 -0500 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 47QQLT0xFdz1qqkb for <38440@debbugs.gnu.org>; Sat, 30 Nov 2019 23:01:05 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 47QQLT0krTz1qwZJ for <38440@debbugs.gnu.org>; Sat, 30 Nov 2019 23:01:05 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id Ggpa9OJnWyWz for <38440@debbugs.gnu.org>; Sat, 30 Nov 2019 23:01:04 +0100 (CET) Received: from hermia.goebel-consult.de (ppp-188-174-57-47.dynamic.mnet-online.de [188.174.57.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPS for <38440@debbugs.gnu.org>; Sat, 30 Nov 2019 23:01:04 +0100 (CET) Received: from thisbe.fritz.box (unknown [192.168.110.24]) by hermia.goebel-consult.de (Postfix) with ESMTP id 10BC960236 for <38440@debbugs.gnu.org>; Sat, 30 Nov 2019 23:01:32 +0100 (CET) From: Hartmut Goebel To: 38440@debbugs.gnu.org Subject: [PATCH 2/5] gnu: sddm: Use qt-build-system. Date: Sat, 30 Nov 2019 23:00:52 +0100 Message-Id: <20191130220055.19069-2-h.goebel@crazy-compilers.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191130220055.19069-1-h.goebel@crazy-compilers.com> References: <20191130220055.19069-1-h.goebel@crazy-compilers.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 38440 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) * gnu/packages/display-managers.scm (sddm): Use qt-build-sytem. [arguments]: Remove. : Base on phases from qt-build-system. {wrap-programs}: Remove. --- gnu/packages/display-managers.scm | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm index 21afc0ec5c..75eab48572 100644 --- a/gnu/packages/display-managers.scm +++ b/gnu/packages/display-managers.scm @@ -27,6 +27,7 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system cmake) + #:use-module (guix build-system qt) #:use-module (guix build-system gnu) #:use-module (guix packages) #:use-module (guix utils) @@ -62,7 +63,7 @@ (sha256 (base32 "0nilrhwlyvkngjgxfc08n73c16azgmw80pvx0a78xqww9y3hv4xh")))) - (build-system cmake-build-system) + (build-system qt-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) ("pkg-config" ,pkg-config) @@ -105,24 +106,13 @@ (assoc-ref %outputs "out") "/lib/qt5/qml") (string-append "-DCMAKE_INSTALL_SYSCONFDIR=" (assoc-ref %outputs "out") "/etc")) - #:modules ((guix build cmake-build-system) - (guix build qt-utils) - (guix build utils)) - #:imported-modules (,@%cmake-build-system-modules - (guix build qt-utils)) #:phases - (modify-phases %standard-phases + (modify-phases (@ (guix build qt-build-system) %standard-phases) (add-after 'unpack 'embed-loginctl-reference (lambda _ (substitute* "CMakeLists.txt" (("/usr/bin/loginctl") (which "loginctl"))) - #t)) - (add-after 'install 'wrap-programs - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (wrap-qt-program out "sddm") - (wrap-qt-program out "sddm-greeter") - #t)))))) + #t))))) (synopsis "QML based X11 and Wayland display manager") (description "SDDM is a display manager for X11 and Wayland aiming to be fast, simple and beautiful. SDDM is themeable and puts no restrictions on the -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 30 17:01:14 2019 Received: (at 38440) by debbugs.gnu.org; 30 Nov 2019 22:01:14 +0000 Received: from localhost ([127.0.0.1]:35241 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ibAnh-0005iP-Nq for submit@debbugs.gnu.org; Sat, 30 Nov 2019 17:01:13 -0500 Received: from mail-out.m-online.net ([212.18.0.9]:35776) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ibAnd-0005hs-37 for 38440@debbugs.gnu.org; Sat, 30 Nov 2019 17:01:09 -0500 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 47QQLX433Gz1qqkW for <38440@debbugs.gnu.org>; Sat, 30 Nov 2019 23:01:08 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 47QQLX3x2Jz1qwZM for <38440@debbugs.gnu.org>; Sat, 30 Nov 2019 23:01:08 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id N37ynh6Bx7EK for <38440@debbugs.gnu.org>; Sat, 30 Nov 2019 23:01:07 +0100 (CET) Received: from hermia.goebel-consult.de (ppp-188-174-57-47.dynamic.mnet-online.de [188.174.57.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPS for <38440@debbugs.gnu.org>; Sat, 30 Nov 2019 23:01:07 +0100 (CET) Received: from thisbe.fritz.box (unknown [192.168.110.24]) by hermia.goebel-consult.de (Postfix) with ESMTP id 2B1A16034B for <38440@debbugs.gnu.org>; Sat, 30 Nov 2019 23:01:32 +0100 (CET) From: Hartmut Goebel To: 38440@debbugs.gnu.org Subject: [PATCH 3/5] gnu: ktouch: Use qt-build-system. Date: Sat, 30 Nov 2019 23:00:53 +0100 Message-Id: <20191130220055.19069-3-h.goebel@crazy-compilers.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191130220055.19069-1-h.goebel@crazy-compilers.com> References: <20191130220055.19069-1-h.goebel@crazy-compilers.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 38440 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) * gnu/packages/display-managers.scm (ktouch): Use qt-build-sytem. [arguments]: Remove. : Base on phases from qt-build-system. {wrap-executables}: Remove. --- gnu/packages/education.scm | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm index c84fa54223..5d49bfb42d 100644 --- a/gnu/packages/education.scm +++ b/gnu/packages/education.scm @@ -58,6 +58,7 @@ #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system python) + #:use-module (guix build-system qt) #:use-module (guix build-system trivial) #:use-module (srfi srfi-1)) @@ -563,15 +564,10 @@ language and very flexible regarding to new or unknown keyboard layouts.") (sha256 (base32 "19rdk94pls75hdvx11hnfk3qpm6l28p9q45q5f04sknxagrfaznr")))) - (build-system cmake-build-system) + (build-system qt-build-system) (arguments - `(#:modules ((guix build cmake-build-system) - (guix build qt-utils) - (guix build utils)) - #:imported-modules (,@%cmake-build-system-modules - (guix build qt-utils)) - #:phases - (modify-phases %standard-phases + `(#:phases + (modify-phases (@ (guix build qt-build-system) %standard-phases) (add-after 'configure 'patch-makefiles (lambda* (#:key inputs #:allow-other-keys) (let ((qtdec (assoc-ref inputs "qtdeclarative"))) @@ -579,11 +575,6 @@ language and very flexible regarding to new or unknown keyboard layouts.") "src/CMakeFiles/ktouch.dir/build.make") (("/gnu/store/.*qmlcachegen") (string-append qtdec "/bin/qmlcachegen")))) - #t)) - (add-after 'install 'wrap-executable - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (wrap-qt-program out "ktouch")) #t))))) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 30 17:01:14 2019 Received: (at 38440) by debbugs.gnu.org; 30 Nov 2019 22:01:14 +0000 Received: from localhost ([127.0.0.1]:35243 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ibAni-0005iR-0f for submit@debbugs.gnu.org; Sat, 30 Nov 2019 17:01:14 -0500 Received: from mail-out.m-online.net ([212.18.0.9]:41358) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ibAng-0005iE-B1 for 38440@debbugs.gnu.org; Sat, 30 Nov 2019 17:01:12 -0500 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 47QQLb5qVyz1qqkW for <38440@debbugs.gnu.org>; Sat, 30 Nov 2019 23:01:11 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 47QQLb5kyQz1qwZJ for <38440@debbugs.gnu.org>; Sat, 30 Nov 2019 23:01:11 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id MO73G4YHHfrp for <38440@debbugs.gnu.org>; Sat, 30 Nov 2019 23:01:11 +0100 (CET) Received: from hermia.goebel-consult.de (ppp-188-174-57-47.dynamic.mnet-online.de [188.174.57.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPS for <38440@debbugs.gnu.org>; Sat, 30 Nov 2019 23:01:11 +0100 (CET) Received: from thisbe.fritz.box (unknown [192.168.110.24]) by hermia.goebel-consult.de (Postfix) with ESMTP id 419016034C for <38440@debbugs.gnu.org>; Sat, 30 Nov 2019 23:01:32 +0100 (CET) From: Hartmut Goebel To: 38440@debbugs.gnu.org Subject: [PATCH 4/5] gnu: kdeconnect: Use qt-build-system. Date: Sat, 30 Nov 2019 23:00:54 +0100 Message-Id: <20191130220055.19069-4-h.goebel@crazy-compilers.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191130220055.19069-1-h.goebel@crazy-compilers.com> References: <20191130220055.19069-1-h.goebel@crazy-compilers.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 38440 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) * gnu/packages/display-managers.scm (kdeconnect): Use qt-build-sytem. [arguments]: Remove. : Base on phases from qt-build-system. {wrap-executable}: Remove. --- gnu/packages/kde.scm | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm index 778873e99c..a9cb6ad114 100644 --- a/gnu/packages/kde.scm +++ b/gnu/packages/kde.scm @@ -24,6 +24,7 @@ (define-module (gnu packages kde) #:use-module (guix build-system cmake) + #:use-module (guix build-system qt) #:use-module (guix download) #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) @@ -540,28 +541,15 @@ different notification systems.") (sha256 (base32 "02lr3xx5s2mgddac4n3lkgr7ppf1z5m6ajs90rjix0vs8a271kp5")))) - (build-system cmake-build-system) + (build-system qt-build-system) (arguments `(#:configure-flags '("-DBUILD_TESTING=ON") #:tests? #f ; tests fail hard in our build environment - #:modules ((guix build cmake-build-system) - (guix build qt-utils) - (guix build utils)) - #:imported-modules (,@%cmake-build-system-modules - (guix build qt-utils)) #:phases - (modify-phases %standard-phases + (modify-phases (@ (guix build qt-build-system) %standard-phases) (add-before 'check 'check-setup (lambda _ (setenv "QT_QPA_PLATFORM" "offscreen") - #t)) - (add-after 'install 'wrap-executable - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (wrap-qt-program out "../lib/libexec/kdeconnectd") - (wrap-qt-program out "kdeconnect-cli") - (wrap-qt-program out "kdeconnect-handler") - (wrap-qt-program out "kdeconnect-indicator")) #t))))) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 30 17:01:20 2019 Received: (at 38440) by debbugs.gnu.org; 30 Nov 2019 22:01:21 +0000 Received: from localhost ([127.0.0.1]:35246 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ibAno-0005ir-Fg for submit@debbugs.gnu.org; Sat, 30 Nov 2019 17:01:20 -0500 Received: from mail-out.m-online.net ([212.18.0.10]:52779) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ibAnk-0005if-Er for 38440@debbugs.gnu.org; Sat, 30 Nov 2019 17:01:16 -0500 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 47QQLg5LsMz1rGRb for <38440@debbugs.gnu.org>; Sat, 30 Nov 2019 23:01:15 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 47QQLg2bbwz1qwZJ for <38440@debbugs.gnu.org>; Sat, 30 Nov 2019 23:01:15 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id 9li7js1uyFHP for <38440@debbugs.gnu.org>; Sat, 30 Nov 2019 23:01:14 +0100 (CET) Received: from hermia.goebel-consult.de (ppp-188-174-57-47.dynamic.mnet-online.de [188.174.57.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPS for <38440@debbugs.gnu.org>; Sat, 30 Nov 2019 23:01:14 +0100 (CET) Received: from thisbe.fritz.box (unknown [192.168.110.24]) by hermia.goebel-consult.de (Postfix) with ESMTP id 59031603C9 for <38440@debbugs.gnu.org>; Sat, 30 Nov 2019 23:01:32 +0100 (CET) From: Hartmut Goebel To: 38440@debbugs.gnu.org Subject: [PATCH 5/5] gnu: quaternion: Use qt-build-system. Date: Sat, 30 Nov 2019 23:00:55 +0100 Message-Id: <20191130220055.19069-5-h.goebel@crazy-compilers.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191130220055.19069-1-h.goebel@crazy-compilers.com> References: <20191130220055.19069-1-h.goebel@crazy-compilers.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 38440 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) * gnu/packages/display-managers.scm (quaternion): Use qt-build-sytem. [arguments]: Remove. --- gnu/packages/messaging.scm | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 33e752c9a0..88a7246e32 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -97,6 +97,7 @@ #:use-module (guix build-system meson) #:use-module (guix build-system perl) #:use-module (guix build-system python) + #:use-module (guix build-system qt) #:use-module (guix build-system trivial) #:use-module (guix download) #:use-module (guix git-download) @@ -1786,7 +1787,7 @@ QMatrixClient project.") (file-name (git-file-name name version)) (sha256 (base32 "0gpv6b3nn3lsyym8809kiqkpdszfasldqjpk5s542zyn41gdlql4")))) - (build-system cmake-build-system) + (build-system qt-build-system) (inputs `(("libqmatrixclient" ,libqmatrixclient) ("qtbase" ,qtbase) @@ -1797,19 +1798,7 @@ QMatrixClient project.") ("qtsvg" ,qtsvg) ("qttools" ,qttools))) (arguments - `(#:tests? #f ; no tests - #:modules ((guix build cmake-build-system) - (guix build qt-utils) - (guix build utils)) - #:imported-modules (,@%cmake-build-system-modules - (guix build qt-utils)) - #:phases - (modify-phases %standard-phases - (add-after 'install 'wrap-program - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (wrap-qt-program out "quaternion") - #t)))))) + `(#:tests? #f)) ; no tests (home-page "https://matrix.org/docs/projects/client/quaternion.html") (synopsis "Graphical client for the Matrix instant messaging protocol") (description "Quaternion is a Qt5 desktop client for the Matrix instant -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 30 17:15:32 2019 Received: (at 38440) by debbugs.gnu.org; 30 Nov 2019 22:15:32 +0000 Received: from localhost ([127.0.0.1]:35267 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ibB1U-0006AA-Jt for submit@debbugs.gnu.org; Sat, 30 Nov 2019 17:15:32 -0500 Received: from mout02.posteo.de ([185.67.36.66]:39395) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ibB1T-00069o-0A for 38440@debbugs.gnu.org; Sat, 30 Nov 2019 17:15:27 -0500 Received: from submission (posteo.de [89.146.220.130]) by mout02.posteo.de (Postfix) with ESMTPS id 8C3F02400FD for <38440@debbugs.gnu.org>; Sat, 30 Nov 2019 23:15:20 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1575152120; bh=Fk0ozdpm8/XV3MEN6x+4n4x1LIR2v1dnTaDin4ql2XY=; h=From:To:Cc:Subject:Date:From; b=UytLYyWFlLrjHR26vTbRyseD/imPnKl9duCsilK/Juoc7KRE4TZ+DkKFzKXk1rdTW Oks5uTAHwu60hXYxiYrxbnQPoXIWVwDn9jGkvqD+j7+uTjOKfIyr5gpW3whD5ooa3b WKj0yt/2LJdx4HWItZbevZHDylDmq5o4ueaHSyPrzgp0J9GqotuB6tjpstTaWbu2ua mK0E+IquLPDoU8utxJYXDK9EERG36xBv55enfF+QuxySPTsUiAfBHOOBU6RVEBbSTW Zn5NP2+07CYDwvSxLTETVdy9tRGl7MswhexzoIuKrIv1f2cPKFAqmp4VJNTfLZZfEE 1wiUw+ikioELA== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 47QQfv2nnsz9rxM; Sat, 30 Nov 2019 23:15:19 +0100 (CET) From: Brett Gilio To: Hartmut Goebel Subject: Re: [bug#38440] [PATCH 0/5] Add the `qt` build-system. References: <20191130215910.18891-1-h.goebel@crazy-compilers.com> Date: Sat, 30 Nov 2019 16:15:30 -0600 In-Reply-To: <20191130215910.18891-1-h.goebel@crazy-compilers.com> (Hartmut Goebel's message of "Sat, 30 Nov 2019 22:59:10 +0100") Message-ID: <87imn1m2nx.fsf@posteo.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 38440 Cc: 38440@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hartmut Goebel writes: > Works and is a good substitude for `wrap-program` from `qt-utils`. This > `wrap-program` is still kept, since some packagins not using the > cmake-build-syttem use it. > > Like `wrap-program`, this implementation has one deficit: The > wrapper collects paths from *all* inputs, thus e.g. cmake will become a > dependency of *every* binary packages using qt-build-system. > > But contraty to `wrap-program` this implementation does not use env-vars to > build the paths, but inputs. Thus it will be easier to solve the issue by > filtering inputs. > > Comments on the code are heardy welcome. > > Also see > > > > Hartmut Goebel (5): > guix: Add the 'qt' build system. > gnu: sddm: Use qt-build-system. > gnu: ktouch: Use qt-build-system. > gnu: kdeconnect: Use qt-build-system. > gnu: quaternion: Use qt-build-system. > > Makefile.am | 2 + > doc/guix.texi | 21 ++- > gnu/packages/display-managers.scm | 18 +- > gnu/packages/education.scm | 17 +- > gnu/packages/kde.scm | 18 +- > gnu/packages/messaging.scm | 17 +- > guix/build-system/qt.scm | 295 ++++++++++++++++++++++++++++++ > guix/build/qt-build-system.scm | 109 +++++++++++ > 8 files changed, 440 insertions(+), 57 deletions(-) > create mode 100644 guix/build-system/qt.scm > create mode 100644 guix/build/qt-build-system.scm Hartmut, LGTM! Thanks for your work. -- Brett M. Gilio https://git.sr.ht/~brettgilio/ From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 30 17:17:22 2019 Received: (at 38440) by debbugs.gnu.org; 30 Nov 2019 22:17:22 +0000 Received: from localhost ([127.0.0.1]:35271 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ibB3E-0006E3-Eq for submit@debbugs.gnu.org; Sat, 30 Nov 2019 17:17:22 -0500 Received: from mail-out.m-online.net ([212.18.0.9]:51440) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ibB3C-0006Dt-3P for 38440@debbugs.gnu.org; Sat, 30 Nov 2019 17:17:15 -0500 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 47QQj46YTYz1qqkZ for <38440@debbugs.gnu.org>; Sat, 30 Nov 2019 23:17:12 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 47QQj46SGNz1qwZJ for <38440@debbugs.gnu.org>; Sat, 30 Nov 2019 23:17:12 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id IJGsl5s_Zs8p for <38440@debbugs.gnu.org>; Sat, 30 Nov 2019 23:17:10 +0100 (CET) Received: from hermia.goebel-consult.de (ppp-188-174-57-47.dynamic.mnet-online.de [188.174.57.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPS for <38440@debbugs.gnu.org>; Sat, 30 Nov 2019 23:17:10 +0100 (CET) Received: from thisbe.fritz.box (unknown [192.168.110.24]) by hermia.goebel-consult.de (Postfix) with ESMTP id CF00B601FB for <38440@debbugs.gnu.org>; Sat, 30 Nov 2019 23:17:43 +0100 (CET) From: Hartmut Goebel To: 38440@debbugs.gnu.org Subject: [PATCH v2] guix: Add the 'qt' build system. Date: Sat, 30 Nov 2019 23:17:07 +0100 Message-Id: <20191130221707.26727-1-h.goebel@crazy-compilers.com> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 38440 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * guix/build-system/qt.scm, guix/build/qt-build-system.scm: New files. * Makefile.am (MODULES): Add them. * doc/guix.texi (Buiild systems): Add the new build system. --- Makefile.am | 2 + doc/guix.texi | 21 ++- guix/build-system/qt.scm | 295 +++++++++++++++++++++++++++++++++ guix/build/qt-build-system.scm | 109 ++++++++++++ 4 files changed, 426 insertions(+), 1 deletion(-) create mode 100644 guix/build-system/qt.scm create mode 100644 guix/build/qt-build-system.scm diff --git a/Makefile.am b/Makefile.am index b3f03d44c8..97f1ff514b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -132,6 +132,7 @@ MODULES = \ guix/build-system/perl.scm \ guix/build-system/python.scm \ guix/build-system/ocaml.scm \ + guix/build-system/qt.scm \ guix/build-system/waf.scm \ guix/build-system/r.scm \ guix/build-system/rakudo.scm \ @@ -178,6 +179,7 @@ MODULES = \ guix/build/perl-build-system.scm \ guix/build/python-build-system.scm \ guix/build/ocaml-build-system.scm \ + guix/build/qt-build-system.scm \ guix/build/r-build-system.scm \ guix/build/rakudo-build-system.scm \ guix/build/ruby-build-system.scm \ diff --git a/doc/guix.texi b/doc/guix.texi index 23a30ce553..cf1d38afc9 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -47,7 +47,7 @@ Copyright @copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 Christopher Allan Webber@* Copyright @copyright{} 2017, 2018 Marius Bakke@* -Copyright @copyright{} 2017 Hartmut Goebel@* +Copyright @copyright{} 2017, 2019 Hartmut Goebel@* Copyright @copyright{} 2017, 2019 Maxim Cournoyer@* Copyright @copyright{} 2017, 2018, 2019 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* @@ -6408,6 +6408,25 @@ passes flags specified by the @code{#:make-maker-flags} or Which Perl package is used can be specified with @code{#:perl}. @end defvr +@defvr {Scheme Variable} qt-build-system +This variable is exported by @code{(guix build-system qt)}. It +is intended for use with applications using Qt or KDE. + +This build system adds the phase @code{qt-wrap} to the ones defined by +@var{cmake-build-system}, after the @code{install} phase. + +This phase searches for Qt5 plugin paths, QML paths and some XDG in the inputs +and output. In case some path is found, all programs in the output's +@file{bin/}, @file{sbin/}, @file{libexec/} and @file{lib/libexec/} directories +are wrapped in scripts defining the necessary environment variables. + +It is possible to exclude specific package outputs from that wrapping process +by listing their names in the @code{#:qt-wrap-excluded-outputs} parameter. +This is useful when an output is known not to contain any Qt binaries, and +where wrapping would gratuitously add a dependency of that output on Qt, KDE, +or such. +@end defvr + @defvr {Scheme Variable} r-build-system This variable is exported by @code{(guix build-system r)}. It implements the build procedure used by @uref{https://r-project.org, R} diff --git a/guix/build-system/qt.scm b/guix/build-system/qt.scm new file mode 100644 index 0000000000..b776845377 --- /dev/null +++ b/guix/build-system/qt.scm @@ -0,0 +1,295 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2013 Cyril Roelandt +;;; Copyright © 2017 Ricardo Wurmus +;;; Copyright © 2019 Hartmut Goebel +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix build-system qt) + #:use-module (guix store) + #:use-module (guix utils) + #:use-module (guix derivations) + #:use-module (guix search-paths) + #:use-module (guix build-system) + #:use-module (guix build-system cmake) + #:use-module (guix build-system gnu) + #:use-module (guix packages) + #:use-module (ice-9 match) + #:export (%qt-build-system-modules + qt-build + qt-build-system)) + +;; Commentary: +;; +;; This build system is an extension of the 'cmake-build-system'. It +;; accommodates the needs of Qt and KDE applications by adding a phase run +;; after the 'install' phase: +;; +;; 'qt-wrap' phase: +;; +;; This phase looks for Qt5 plugin paths, QML paths and some XDG paths as well +;; as the corresponding environment variables. If any of these is found in +;; the output or if respective environment variables are set, then all +;; programs in the output's "bin", "sbin", "libexec and "lib/libexec" +;; directories are wrapped in scripts defining the necessary environment +;; variables. +;; +;; Code: + +(define %qt-build-system-modules + ;; Build-side modules imported and used by default. + `((guix build qt-build-system) + ,@%cmake-build-system-modules)) + +(define (default-cmake) + "Return the default CMake package." + + ;; Do not use `@' to avoid introducing circular dependencies. + (let ((module (resolve-interface '(gnu packages cmake)))) + (module-ref module 'cmake-minimal))) + +;; This barely is a copy from (guix build-system cmake), only adjusted to use +;; the variables defined here. +(define* (lower name + #:key source inputs native-inputs outputs system target + (cmake (default-cmake)) + #:allow-other-keys + #:rest arguments) + "Return a bag for NAME." + (define private-keywords + `(#:source #:cmake #:inputs #:native-inputs #:outputs + ,@(if target '() '(#:target)))) + + (bag + (name name) + (system system) + (target target) + (build-inputs `(,@(if source + `(("source" ,source)) + '()) + ,@`(("cmake" ,cmake)) + ,@native-inputs + ,@(if target + ;; Use the standard cross inputs of + ;; 'gnu-build-system'. + (standard-cross-packages target 'host) + '()) + ;; Keep the standard inputs of 'gnu-build-system'. + ,@(standard-packages))) + (host-inputs inputs) + + ;; The cross-libc is really a target package, but for bootstrapping + ;; reasons, we can't put it in 'host-inputs'. Namely, 'cross-gcc' is a + ;; native package, so it would end up using a "native" variant of + ;; 'cross-libc' (built with 'gnu-build'), whereas all the other packages + ;; would use a target variant (built with 'gnu-cross-build'.) + (target-inputs (if target + (standard-cross-packages target 'target) + '())) + (outputs outputs) + (build (if target qt-cross-build qt-build)) + (arguments (strip-keyword-arguments private-keywords arguments)))) + + +(define* (qt-build store name inputs + #:key (guile #f) + (outputs '("out")) (configure-flags ''()) + (search-paths '()) + (make-flags ''()) + (out-of-source? #t) + (build-type "RelWithDebInfo") + (tests? #t) + (test-target "test") + (parallel-build? #t) (parallel-tests? #f) + (validate-runpath? #t) + (patch-shebangs? #t) + (strip-binaries? #t) + (strip-flags ''("--strip-debug")) + (strip-directories ''("lib" "lib64" "libexec" + "bin" "sbin")) + (phases '(@ (guix build qt-build-system) + %standard-phases)) + (qt-wrap-excluded-outputs ''()) + (system (%current-system)) + (imported-modules %qt-build-system-modules) + (modules '((guix build cmake-build-system) + (guix build utils)))) + "Build SOURCE using CMAKE, and with INPUTS. This assumes that SOURCE +provides a 'CMakeLists.txt' file as its build system." + (define builder + `(begin + (use-modules ,@modules) + (cmake-build #:source ,(match (assoc-ref inputs "source") + (((? derivation? source)) + (derivation->output-path source)) + ((source) + source) + (source + source)) + #:system ,system + #:outputs %outputs + #:inputs %build-inputs + #:search-paths ',(map search-path-specification->sexp + search-paths) + #:phases ,phases + #:qt-wrap-excluded-outputs ,qt-wrap-excluded-outputs + #:configure-flags ,configure-flags + #:make-flags ,make-flags + #:out-of-source? ,out-of-source? + #:build-type ,build-type + #:tests? ,tests? + #:test-target ,test-target + #:parallel-build? ,parallel-build? + #:parallel-tests? ,parallel-tests? + #:validate-runpath? ,validate-runpath? + #:patch-shebangs? ,patch-shebangs? + #:strip-binaries? ,strip-binaries? + #:strip-flags ,strip-flags + #:strip-directories ,strip-directories))) + + (define guile-for-build + (match guile + ((? package?) + (package-derivation store guile system #:graft? #f)) + (#f ; the default + (let* ((distro (resolve-interface '(gnu packages commencement))) + (guile (module-ref distro 'guile-final))) + (package-derivation store guile system #:graft? #f))))) + + (build-expression->derivation store name builder + #:system system + #:inputs inputs + #:modules imported-modules + #:outputs outputs + #:guile-for-build guile-for-build)) + + +;;; +;;; Cross-compilation. +;;; + +(define* (qt-cross-build store name + #:key + target native-drvs target-drvs + (guile #f) + (outputs '("out")) + (configure-flags ''()) + (search-paths '()) + (native-search-paths '()) + (make-flags ''()) + (out-of-source? #t) + (build-type "RelWithDebInfo") + (tests? #f) ; nothing can be done + (test-target "test") + (parallel-build? #t) (parallel-tests? #f) + (validate-runpath? #t) + (patch-shebangs? #t) + (strip-binaries? #t) + (strip-flags ''("--strip-debug" + "--enable-deterministic-archives")) + (strip-directories ''("lib" "lib64" "libexec" + "bin" "sbin")) + (phases '(@ (guix build qt-build-system) + %standard-phases)) + (system (%current-system)) + (build (nix-system->gnu-triplet system)) + (imported-modules %qt-build-system-modules) + (modules '((guix build cmake-build-system) + (guix build utils)))) + "Cross-build NAME using CMAKE for TARGET, where TARGET is a GNU triplet and +with INPUTS. This assumes that SOURCE provides a 'CMakeLists.txt' file as its +build system." + (define builder + `(begin + (use-modules ,@modules) + (let () + (define %build-host-inputs + ',(map (match-lambda + ((name (? derivation? drv) sub ...) + `(,name . ,(apply derivation->output-path drv sub))) + ((name path) + `(,name . ,path))) + native-drvs)) + + (define %build-target-inputs + ',(map (match-lambda + ((name (? derivation? drv) sub ...) + `(,name . ,(apply derivation->output-path drv sub))) + ((name (? package? pkg) sub ...) + (let ((drv (package-cross-derivation store pkg + target system))) + `(,name . ,(apply derivation->output-path drv sub)))) + ((name path) + `(,name . ,path))) + target-drvs)) + + (cmake-build #:source ,(match (assoc-ref native-drvs "source") + (((? derivation? source)) + (derivation->output-path source)) + ((source) + source) + (source + source)) + #:system ,system + #:build ,build + #:target ,target + #:outputs %outputs + #:inputs %build-target-inputs + #:native-inputs %build-host-inputs + #:search-paths ',(map search-path-specification->sexp + search-paths) + #:native-search-paths ',(map + search-path-specification->sexp + native-search-paths) + #:phases ,phases + #:configure-flags ,configure-flags + #:make-flags ,make-flags + #:out-of-source? ,out-of-source? + #:build-type ,build-type + #:tests? ,tests? + #:test-target ,test-target + #:parallel-build? ,parallel-build? + #:parallel-tests? ,parallel-tests? + #:validate-runpath? ,validate-runpath? + #:patch-shebangs? ,patch-shebangs? + #:strip-binaries? ,strip-binaries? + #:strip-flags ,strip-flags + #:strip-directories ,strip-directories)))) + + (define guile-for-build + (match guile + ((? package?) + (package-derivation store guile system #:graft? #f)) + (#f ; the default + (let* ((distro (resolve-interface '(gnu packages commencement))) + (guile (module-ref distro 'guile-final))) + (package-derivation store guile system #:graft? #f))))) + + (build-expression->derivation store name builder + #:system system + #:inputs (append native-drvs target-drvs) + #:outputs outputs + #:modules imported-modules + #:guile-for-build guile-for-build)) + +(define qt-build-system + (build-system + (name 'qt) + (description + "The CMake build system augmented with definition of suitable environment +variables for Qt and KDE in program wrappers.") + (lower lower))) diff --git a/guix/build/qt-build-system.scm b/guix/build/qt-build-system.scm new file mode 100644 index 0000000000..46fcad7848 --- /dev/null +++ b/guix/build/qt-build-system.scm @@ -0,0 +1,109 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 Federico Beffa +;;; Copyright © 2014, 2015 Ludovic Courtès +;;; Copyright © 2018 Mark H Weaver +;;; Copyright © 2019 Hartmut Goebel +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix build qt-build-system) + #:use-module ((guix build cmake-build-system) #:prefix cmake:) + #:use-module (guix build utils) + #:use-module (ice-9 match) + #:use-module (ice-9 regex) + #:use-module (ice-9 ftw) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:export (%standard-phases + qt-build)) + +;; Commentary: +;; +;; Builder-side code of the standard Qt build procedure. +;; +;; Code: + +(define (variables-for-wrapping base-directories) + + (define (collect-sub-dirs base-directories subdirectory) + (filter-map + (lambda (dir) + (let ((directory (string-append dir subdirectory))) + (if (directory-exists? directory) directory #f))) + base-directories)) + + (filter + (lambda (var-to-wrap) (not (null? (last var-to-wrap)))) + (map + (lambda (var-spec) + `(,(first var-spec) = ,(collect-sub-dirs base-directories (last var-spec)))) + (list + ;; these shall match the search-path-specification for Qt and KDE + ;; libraries + '("XDG_DATA_DIRS" "/share") + '("XDG_CONFIG_DIRS" "/etc/xdg") + '("QT_PLUGIN_PATH" "/lib/qt5/plugins") + '("QML2_IMPORT_PATH" "/lib/qt5/qml"))))) + +(define* (wrap-all-programs #:key inputs outputs + (qt-wrap-excluded-outputs '()) + #:allow-other-keys) + "Implement phase \"qt-wrap\": look for GSettings schemas and +gtk+-v.0 libraries and create wrappers with suitably set environment variables +if found. + +Wrapping is not applied to outputs whose name is listed in +QT-WRAP-EXCLUDED-OUTPUTS. This is useful when an output is known not +to contain any Qt binaries, and where wrapping would gratuitously +add a dependency of that output on Qt." + (define (find-files-to-wrap directory) + (append-map + (lambda (dir) + (if (directory-exists? dir) (find-files dir ".*") (list))) + (list (string-append directory "/bin") + (string-append directory "/sbin") + (string-append directory "/libexec") + (string-append directory "/lib/libexec")))) + + (define input-directories + ;; FIXME: Filter out unwanted inputs, e.g. cmake + (match inputs + (((_ . dir) ...) + dir))) + + (define handle-output + (match-lambda + ((output . directory) + (unless (member output qt-wrap-excluded-outputs) + (let ((bin-list (find-files-to-wrap directory)) + (vars-to-wrap (variables-for-wrapping + (append (list output) + input-directories)))) + (when (not (null? vars-to-wrap)) + (for-each (cut apply wrap-program <> vars-to-wrap) + bin-list))))))) + + (for-each handle-output outputs) + #t) + +(define %standard-phases + (modify-phases cmake:%standard-phases + (add-after 'install 'qt-wrap wrap-all-programs))) + +(define* (qt-build #:key inputs (phases %standard-phases) + #:allow-other-keys #:rest args) + "Build the given package, applying all of PHASES in order." + (apply cmake:cmake-build #:inputs inputs #:phases phases args)) -- 2.21.0 From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 01 14:29:04 2019 Received: (at 38440-close) by debbugs.gnu.org; 1 Dec 2019 19:29:04 +0000 Received: from localhost ([127.0.0.1]:36725 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ibUu0-0005AP-CX for submit@debbugs.gnu.org; Sun, 01 Dec 2019 14:29:04 -0500 Received: from mail-out.m-online.net ([212.18.0.10]:47134) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ibUtz-0005AE-88 for 38440-close@debbugs.gnu.org; Sun, 01 Dec 2019 14:29:03 -0500 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 47QywZ10Wbz1rQBp; Sun, 1 Dec 2019 20:29:01 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 47QywY6Ydrz1qqkC; Sun, 1 Dec 2019 20:29:01 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id Guf76m1lrEp5; Sun, 1 Dec 2019 20:29:01 +0100 (CET) Received: from hermia.goebel-consult.de (ppp-188-174-51-8.dynamic.mnet-online.de [188.174.51.8]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPS; Sun, 1 Dec 2019 20:29:01 +0100 (CET) Received: from thisbe.goebel-consult.de (hermia.goebel-consult.de [192.168.110.7]) by hermia.goebel-consult.de (Postfix) with ESMTP id 34E80600B0; Sun, 1 Dec 2019 20:29:36 +0100 (CET) Subject: Re: [bug#38440] [PATCH 0/5] Add the `qt` build-system. To: Brett Gilio References: <20191130215910.18891-1-h.goebel@crazy-compilers.com> <87imn1m2nx.fsf@posteo.net> From: Hartmut Goebel Autocrypt: addr=h.goebel@crazy-compilers.com; prefer-encrypt=mutual; keydata= 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 Organization: crazy-compilers.com Message-ID: <7f53dafc-0372-8437-aff0-c3c7ce35d7b9@crazy-compilers.com> Date: Sun, 1 Dec 2019 20:28:58 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.2.2 MIME-Version: 1.0 In-Reply-To: <87imn1m2nx.fsf@posteo.net> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Language: de-DE X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 38440-close Cc: 38440-close@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Thanks for the review, pushed as 34e31612e22f0a9174eeb7abc94d9096b41fa542 -- Regards Hartmut Goebel | Hartmut Goebel | h.goebel@crazy-compilers.com | | www.crazy-compilers.com | compilers which you thought are impossible | From unknown Sat Aug 16 21:20:18 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Mon, 30 Dec 2019 12:24:06 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator