From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andreas Enge Subject: Re: [PATCH] gnu: kde: Add kdelibs. Date: Thu, 6 Nov 2014 00:20:32 +0100 Message-ID: <20141105232032.GA24522@debian> References: <87tx2d2ykt.fsf@gnu.org> <87ioitwfxf.fsf@gmail.com> <20141105211818.GA1181@debian> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="5vNYLRcllDrimb99" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:55565) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xm9sY-0002ua-OE for guix-devel@gnu.org; Wed, 05 Nov 2014 18:20:47 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Xm9sT-0003bp-OY for guix-devel@gnu.org; Wed, 05 Nov 2014 18:20:42 -0500 Received: from mout.kundenserver.de ([212.227.17.10]:53272) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xm9sT-0003bU-D9 for guix-devel@gnu.org; Wed, 05 Nov 2014 18:20:37 -0500 Content-Disposition: inline In-Reply-To: <20141105211818.GA1181@debian> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Federico Beffa Cc: Guix-devel --5vNYLRcllDrimb99 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Wed, Nov 05, 2014 at 10:18:18PM +0100, Andreas Enge wrote: > It definitely sounds like a good idea. We could add the rpath linker flags > for Qt and for KDE via -DCMAKE_SHARED_LINKER_FLAGS and > -DCMAKE_EXE_LINKER_FLAGS to the kde build system. I would like to give > it a try. It works! I am attaching the updated kdelibs patch (still not finished, just for your information; but I took Ludovic's suggestions into account). So for the kde build system, we could add such lines to code the Qt and KDE libraries into the rpath. Different submodules (at least kdegames) also come with their own additional libraries. Anyway, I had the intention of creating separate guile modules for them to keep a manageable number of packages per module. So one could imagine a KDE build system, and a local extended variant in each module inheriting from it. So is this a solution we should implement, or does anyone have a better idea or an argument why this would be bad? Andreas --5vNYLRcllDrimb99 Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="0001-gnu-kde-Add-kdelibs.patch" >From 4c82ecb734da93dbe8d41a0466b1cd20ab52981f Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Tue, 4 Nov 2014 21:44:16 +0100 Subject: [PATCH] gnu: kde: Add kdelibs. * gnu/packages/kde.scm (kdelibs): New variable. --- gnu/packages/kde.scm | 122 +++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 114 insertions(+), 8 deletions(-) diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm index e97ac27..27838f2 100644 --- a/gnu/packages/kde.scm +++ b/gnu/packages/kde.scm @@ -17,14 +17,23 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages kde) - #:use-module ((guix licenses) #:select (bsd-2 lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3+)) + #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system cmake) + #:use-module (gnu packages avahi) + #:use-module (gnu packages bison) #:use-module (gnu packages compression) + #:use-module (gnu packages docbook) #:use-module (gnu packages doxygen) + #:use-module (gnu packages flex) #:use-module (gnu packages geeqie) #:use-module (gnu packages glib) + #:use-module (gnu packages gnome) + #:use-module (gnu packages image) + #:use-module (gnu packages linux) + #:use-module (gnu packages openssl) + #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages pulseaudio) @@ -55,7 +64,7 @@ (home-page "http://techbase.kde.org/Development/Tools/Automoc4") (synopsis "Build tool for KDE") (description "AutoMoc4 automatically generates moc-files for KDE.") - (license bsd-2))) + (license license:bsd-2))) (define-public phonon (package @@ -85,7 +94,7 @@ (home-page "http://phonon.kde.org/") (synopsis "Qt 4 multimedia API") (description "KDE desktop environment") - (license lgpl2.1+))) + (license license:lgpl2.1+))) (define-public qjson (package @@ -108,7 +117,7 @@ (description "QJson is a Qt-based library that maps JSON data to QVariant objects and vice versa. JSON arrays are mapped to QVariantList instances, while JSON objects are mapped to QVariantMap.") - (license lgpl2.1+))) + (license license:lgpl2.1+))) (define-public libdbusmenu-qt (package @@ -136,7 +145,7 @@ while JSON objects are mapped to QVariantMap.") (description "The library provides a Qt implementation of the DBusMenu protocol. The DBusMenu protocol makes it possible for applications to export and import their menus over DBus.") - (license lgpl2.0+))) + (license license:lgpl2.0+))) (define-public attica (package @@ -160,7 +169,7 @@ Collaboration Services API version 1.6. It grants easy access to the services such as querying information about persons and contents. The library is used in KNewStuff3 as content provider. In order to integrate with KDE's Plasma Desktop, a platform plugin exists in kdebase.") - (license lgpl2.1+))) + (license license:lgpl2.1+))) (define-public strigi (package @@ -204,7 +213,7 @@ currently a simple socket; simple interface for implementing plugins for extracting information; calculation of sha1 for every file crawled (allows fast finding of duplicates).") - (license lgpl2.0+))) + (license license:lgpl2.0+))) (define-public oxygen-icons (package @@ -224,4 +233,101 @@ calculation of sha1 for every file crawled (home-page "http://www.kde.org/") (synopsis "oxygen icon theme for the KDE desktop") (description "KDE desktop environment") - (license lgpl3+))) + (license license:lgpl3+))) + +(define-public kdelibs + (package + (name "kdelibs") + (version "4.14.2") + (source (origin + (method url-fetch) + (uri (string-append "http://download.kde.org/stable/" version + "/src/" name "-" + version ".tar.xz")) + (sha256 + (base32 + "0nw9zl54wdzw26l9l1a520ykjqgrzc1dx9aa6y015k0ry1vmlx1r")))) + (build-system cmake-build-system) + (native-inputs + `(("automoc4" ,automoc4) + ("bison" ,bison) + ("docbook-xml" ,docbook-xml) + ("docbook-xsl" ,docbook-xsl) + ("flex" ,flex) + ("pkg-config" ,pkg-config))) + (inputs + `(("attica" ,attica) + ("avahi" ,avahi) + ("giflib" ,giflib) + ("libdbusmenu-qt" ,libdbusmenu-qt) + ("libice" ,libice) + ("libjpeg" ,libjpeg-8) + ("libpng" ,libpng) + ("libsm" ,libsm) + ("libx11" ,libx11) + ("libxau" ,libxau) + ("libxcomposite" ,libxcomposite) + ("libxcursor" ,libxcursor) + ("libxdamage" ,libxdamage) + ("libxdmcp" ,libxdmcp) + ("libxext" ,libxext) + ("libxfixes" ,libxfixes) + ("libxft" ,libxft) + ("libxi" ,libxi) + ("libxinerama" ,libxinerama) + ("libxkbfile" ,libxkbfile) + ("libxml2" ,libxml2) + ("libxpm" ,libxpm) + ("libxrandr" ,libxrandr) + ("libxrender" ,libxrender) + ("libxscrnsaver" ,libxscrnsaver) + ("libxslt" ,libxslt) + ("libxt" ,libxt) + ("libxtst" ,libxtst) + ("libxv" ,libxv) + ("libxxf86vm" ,libxxf86vm) + ("openssl" ,openssl) + ("pcre" ,pcre) + ("perl" ,perl) + ("phonon" ,phonon) + ("python" ,python-wrapper) + ("qt" ,qt-4) + ("shared-mime-info" ,shared-mime-info) + ("soprano" ,soprano) + ("strigi" ,strigi) + ("eudev" ,eudev) + ("zlib" ,zlib))) + (arguments + `(#:tests? #f ; FIXME: some tests currently time out or fail + #:configure-flags + (let* + ((docbook-xsl (assoc-ref %build-inputs "docbook-xsl")) + (docbook-xsl-version ,(package-version docbook-xsl)) + (qt (assoc-ref %build-inputs "qt")) + (qt-lib (string-append qt "/lib"))) + (list + (string-append "-DCMAKE_SHARED_LINKER_FLAGS=-Wl,-rpath=" qt-lib) + (string-append "-DCMAKE_EXE_LINKER_FLAGS=-Wl,-rpath=" qt-lib) + (string-append "-DDOCBOOKXML_CURRENTDTD_DIR=" + (assoc-ref %build-inputs "docbook-xml") + "/xml/dtd/docbook/") + (string-append "-DDOCBOOKXSL_DIR=" docbook-xsl + "/xml/xsl/docbook-xsl-" docbook-xsl-version + "/"))) + #:phases + (alist-cons-before + 'configure 'patch-bin-sh + (lambda _ + (substitute* "cmake/modules/kde4_exec_via_sh.cmake" + (("/bin/sh") (which "sh")))) + %standard-phases))) + (home-page "http://www.kde.org/") + (synopsis "KDE libraries") + (description "This package includes libraries that are central to the +development and execution of a KDE program, as well as internationalization +files for these libraries, HTML documentation, theme modules, and +regression tests.") + ;; The different files are under various licenses; libraries under + ;; lgpl2.0 or lgpl2.0+, other programs under gpl. + ;; For details, see the file README in the source. + (license license:lgpl2.0))) -- 2.1.2 --5vNYLRcllDrimb99--