From patchwork Fri Mar 21 14:49:13 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Marcel Steinbeck X-Patchwork-Id: 40576 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 DDE4227BBEA; Fri, 21 Mar 2025 21:21:29 +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=-7.5 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE, SPF_HELO_PASS,URIBL_BLOCKED,URIBL_SBL_A 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 4DF0827BBE2 for ; Fri, 21 Mar 2025 21:21:28 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tvjns-0005Ls-73; Fri, 21 Mar 2025 17:21:20 -0400 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 1tvgWP-0004jE-4v for guix-patches@gnu.org; Fri, 21 Mar 2025 13:51:10 -0400 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 1tvgWM-0007GP-J8 for guix-patches@gnu.org; Fri, 21 Mar 2025 13:51:03 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:Date:From:To:Subject; bh=FgPeUSPUKI7kqaT+ykqOZO4yX+E/RRG48ceqMZy6Nb0=; b=NcH5VoIvIZzUH+TvPq0BClaucmSO7tGPqLkrwsk8/yZsKwl8qN7Sj18emCT4ZBpfoJhlNh8mxx1VI0n/Z/Z4DdggzHYCoLMjKbCXfg3ZZad8z4aunjcM/rWpdr/+skTK8WpUv5owKPRJFAizZ7MKUp+AmZKrY+Rjq9PgOQbYGJKl1tJoXxGw+I9VR9m4v0YCekwlRlNzRoZAplEm1ag7j2pZWQiHizSiERkpcqWXgckt5vLiG1H9/QN9QfZaqufwKfN4FKnryQwP9WQEUmcL31KTUG6SSRT9Cexd39hE8bSCZjfV1eGdg8CUUBjSmbQTdFj8HPJUgc5imXBlM0CaOA==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1tvgWM-00030f-D0 for guix-patches@gnu.org; Fri, 21 Mar 2025 13:51:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#77155] [PATCH] Add package for styling Qt-5 based applications in LXQt Resent-From: Marcel Steinbeck Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 21 Mar 2025 17:51:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 77155 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 77155@debbugs.gnu.org X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.174257944811541 (code B ref -1); Fri, 21 Mar 2025 17:51:02 +0000 Received: (at submit) by debbugs.gnu.org; 21 Mar 2025 17:50:48 +0000 Received: from localhost ([127.0.0.1]:39402 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tvgW6-000300-RA for submit@debbugs.gnu.org; Fri, 21 Mar 2025 13:50:48 -0400 Received: from lists.gnu.org ([2001:470:142::17]:33540) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1tvdgl-0006qK-Hy for submit@debbugs.gnu.org; Fri, 21 Mar 2025 10:49:39 -0400 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 1tvdga-0000u8-2u for guix-patches@gnu.org; Fri, 21 Mar 2025 10:49:25 -0400 Received: from mout01.posteo.de ([185.67.36.65]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tvdgV-0005BA-Vi for guix-patches@gnu.org; Fri, 21 Mar 2025 10:49:22 -0400 Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id 842BF240027 for ; Fri, 21 Mar 2025 15:49:15 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1742568555; bh=hs/Jpwa1/8AdY8sVA34ik7GnYNgzPjONC0kELTUGpKs=; h=Message-ID:Subject:From:To:Date:Content-Type:MIME-Version:From; b=d2Ds+j4FhmrFmB66zmlMSQlwkz4zB8wdQ2YQDViL8Rx01wFcyKRWkaE6yid8F+clu I0oMyAOJeyTakeUSFG4tiG2nzBR0cuzyeM/eqFWW2Yn1C5L2qiDZB6E8YkxWf4srdd zSEydQExPD/9cf7Wk17e3qYT00pWQx4j/tzF8V+BI06N2gCPFuLT+2Acdq6Iq8Hu8F m8jCK/d66SYXEVdgkiKoWVecPujuLDij+LrsNIF2ziNyZaBWQPdUfYh2Ine/yQmiht CV6TvW/6MN3s8m3JTJacYwSy8Nttrz5j0yCpQG9tLOdzbwBD9PUjFRStEdN2m1BO2Y n8qg81kCJYTVA== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4ZK51l1SgHz6tyB for ; Fri, 21 Mar 2025 15:49:14 +0100 (CET) Message-ID: <6e075f9720b5e2c595be17cb70ccd72990e36156.camel@posteo.net> From: Marcel Steinbeck Date: Fri, 21 Mar 2025 14:49:13 +0000 MIME-Version: 1.0 Received-SPF: pass client-ip=185.67.36.65; envelope-from=msteinbeck@posteo.net; helo=mout01.posteo.de X-Spam_score_int: -42 X-Spam_score: -4.3 X-Spam_bar: ---- X-Spam_report: (-4.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_SBL_A=0.1 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Fri, 21 Mar 2025 13:50:44 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-Mailman-Approved-At: Fri, 21 Mar 2025 17:21:13 -0400 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 Hey everyone, According to https://github.com/lxqt/lxqt/wiki/Building-from-source#qt5-support LXQt requires the libraries added in this patch file to style Qt5-based applications. I extracted the package definitions from the Git history and updated the minor versions to the latest available. To make package lxqt not dependent on Qt5, I have added an additional package: lxqt- qt5-styling. From 566c44d0f750ccccf7b7f6f8f2481afb8912ac44 Mon Sep 17 00:00:00 2001 From: Marcel Steinbeck Date: Fri, 21 Mar 2025 15:29:41 +0100 Subject: [PATCH] gnu: lxqt: add lxqt-qt5-styling --- gnu/packages/lxqt.scm | 193 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 193 insertions(+) diff --git a/gnu/packages/lxqt.scm b/gnu/packages/lxqt.scm index 2662235679..61349e07d9 100644 --- a/gnu/packages/lxqt.scm +++ b/gnu/packages/lxqt.scm @@ -1068,6 +1068,177 @@ (define-public lxqt-archiver like @command{tar} and @command{zip}.") (license license:gpl2+))) +;; Qt5-styling + +(define-public lxqt-build-tools-qt5 + (package + (name "lxqt-build-tools") + (version "0.13.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/lxqt/lxqt-build-tools/releases" + "/download/" version + "/lxqt-build-tools-" version ".tar.xz")) + (sha256 + (base32 "1kjrxc1aj7yfn3v72lwryn58hkwsribsspm480qg4qbw1nfijg7x")))) + (build-system cmake-build-system) + (arguments + (list + #:tests? #f ; no tests + #:modules `((ice-9 regex) + (guix build cmake-build-system) + (guix build utils)) + ;; In phases and configure-flags: Set LXQT_TRANSLATIONS_DIR, + ;; LXQT_DATA_DIR, etc. to relative paths, so that packages using + ;; LXQtConfigVars.cmake from lxqt-build-tools will install translations + ;; and data files into their outputs, remove the need to patch their + ;; cmake files. + #:phases + #~(modify-phases %standard-phases + (add-after 'install 'patch-LXQtConfigVars.cmake + (lambda _ + (substitute* (string-append #$output + "/share/cmake/lxqt-build-tools" + "/modules/LXQtConfigVars.cmake") + (((regexp-quote (string-append #$output "/"))) ""))))) + #:configure-flags + #~(list "-DLXQT_ETC_XDG_DIR=etc/xdg"))) + (native-inputs + (list pkg-config glib)) + (inputs + (list qtbase-5)) + (propagated-inputs + ;; Dependent projects require Perl via the CMake files. + (list perl)) + (synopsis "LXQt Build tools") + (description + "Lxqt-build-tools is providing several tools needed to build LXQt +itself as well as other components maintained by the LXQt project.") + (home-page "https://lxqt-project.org") + (license license:lgpl2.1+))) + +(define-public libqtxdg-qt5 + (package + (name "libqtxdg") + (version "3.12.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/lxqt/libqtxdg/releases/download/" version + "/libqtxdg-" version ".tar.xz")) + (sha256 + (base32 "1p6l0sapz6izxxjm0sijdi67i3ija6qh0626hif5f83j8kzmcs3j")))) + (build-system cmake-build-system) + (arguments + '(#:configure-flags '("-DBUILD_TESTS=ON" + "-DQTXDGX_ICONENGINEPLUGIN_INSTALL_PATH=lib/qt5/plugins/iconengines") + #:phases (modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + ;; Run the tests offscreen. + (setenv "QT_QPA_PLATFORM" "offscreen") #t))))) + (propagated-inputs + ;; required by Qt5XdgIconLoader.pc + (list glib qtbase-5 qtsvg-5)) + (native-inputs (list lxqt-build-tools-qt5 pkg-config)) + (home-page "https://github.com/lxqt/libqtxdg") + (synopsis "Qt implementation of freedesktop.org xdg specifications") + (description "Libqtxdg implements the freedesktop.org xdg specifications +in Qt.") + (license license:lgpl2.1+))) + +(define-public lxqt-menu-data-qt5 + (package + (name "lxqt-menu-data") + (version "1.4.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/lxqt/lxqt-menu-data/releases/download/" + version "/lxqt-menu-data-" version ".tar.xz")) + (sha256 + (base32 "15nmf85ralkb8iarl8sv7sksin3km3dyxdfff8ifqqfgmxrd7d47")))) + (build-system cmake-build-system) + (arguments + (list + #:tests? #f)) ;no tests + (inputs (list qtbase-5)) + (native-inputs (list lxqt-build-tools-qt5 qttools-5)) + (home-page "https://lxqt-project.org") + (synopsis "LXQt menu files") + (description "This package provides freedesktop compliant menu files for +LXQt Panel, Configuration Center and PCManFM-Qt/libfm-qt.") + (license license:lgpl2.1+))) + +(define-public libfm-qt-qt5 + (package + (name "libfm-qt") + (version "1.4.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/lxqt/libfm-qt/releases/download/" version + "/libfm-qt-" version ".tar.xz")) + (sha256 + (base32 "0lvpdw6p7qzx8yd9xhxycfm690ykarc5f0rzllqxzw9x08p8iqrf")))) + (build-system cmake-build-system) + (arguments + '(#:tests? #f)) ;no tests + (inputs (list glib + libexif + libfm + libxcb + lxqt-menu-data-qt5 + menu-cache + pcre + qtbase-5 + qtx11extras)) + (native-inputs (list pkg-config lxqt-build-tools-qt5 qttools-5)) + (home-page "https://lxqt-project.org") + (synopsis "Qt binding for libfm") + (description + "libfm-qt is the Qt port of libfm, a library providing +components to build desktop file managers which belongs to LXDE.") + (license license:lgpl2.1+))) + +(define-public lxqt-qtplugin-qt5 + (package + (name "lxqt-qtplugin") + (version "1.4.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/lxqt/lxqt-qtplugin/releases/download/" + version "/lxqt-qtplugin-" version ".tar.xz")) + (sha256 + (base32 "1m7cfx39wmd0cdfdidgsc6y6kivbqpaxwh062kcq2wmwap6j0d4m")))) + (build-system cmake-build-system) + (inputs (list libdbusmenu-qt + libfm-qt-qt5 + libqtxdg-qt5 + qtbase-5 + qtsvg-5 + qtx11extras)) + (native-inputs (list lxqt-build-tools-qt5 qttools-5)) + (arguments + '(#:tests? #f ;no tests + #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda _ + (substitute* '("src/CMakeLists.txt") + (("DESTINATION \"\\$\\{QT_PLUGINS_DIR\\}") + "DESTINATION \"lib/qt5/plugins")) #t))))) + (home-page "https://lxqt-project.org") + (synopsis "LXQt Qt platform integration plugin") + (description "lxqt-qtplugin is providing a library libqtlxqt to integrate +Qt with LXQt.") + (license license:lgpl2.1+))) + ;; The LXQt Desktop Environment (define-public lxqt @@ -1122,3 +1293,25 @@ (define-public lxqt (description "LXQt is a lightweight Qt desktop environment.") (home-page "https://lxqt-project.org") (license license:gpl2+))) + +(define-public lxqt-qt5-styling + (package + (name "lxqt-qt5-styling") + (version (package-version lxqt)) + (source + #f) + (build-system trivial-build-system) + (arguments + '(#:builder (begin + (mkdir %output) #t))) + (propagated-inputs (list libqtxdg-qt5 libfm-qt-qt5 lxqt-qtplugin-qt5)) + (native-search-paths + (list (search-path-specification + ;; For finding lxqt-qtplugin-qt5 etc. + (variable "QT_PLUGIN_PATH") + (files '("lib/qt5/plugins"))))) + (synopsis "LXQt Qt5-styling") + (description "Libraries for styling Qt5-based applications and allowing +them to use the LXQt file dialog.") + (home-page "https://lxqt-project.org") + (license license:gpl2+))) -- 2.48.1