all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Andreas Enge <andreas@enge.fr>
To: Federico Beffa <beffa@ieee.org>
Cc: Guix-devel <guix-devel@gnu.org>
Subject: Re: [PATCH] gnu: kde: Add kdelibs.
Date: Thu, 6 Nov 2014 00:20:32 +0100	[thread overview]
Message-ID: <20141105232032.GA24522@debian> (raw)
In-Reply-To: <20141105211818.GA1181@debian>

[-- Attachment #1: Type: text/plain, Size: 975 bytes --]

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


[-- Attachment #2: 0001-gnu-kde-Add-kdelibs.patch --]
[-- Type: text/plain, Size: 7256 bytes --]

From 4c82ecb734da93dbe8d41a0466b1cd20ab52981f Mon Sep 17 00:00:00 2001
From: Andreas Enge <andreas@enge.fr>
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 <http://www.gnu.org/licenses/>.
 
 (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


  reply	other threads:[~2014-11-05 23:20 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-05 19:50 [PATCH] gnu: kde: Add kdelibs Federico Beffa
2014-11-05 20:15 ` Ludovic Courtès
2014-11-05 20:28   ` Eric Bavier
2014-11-05 21:00     ` Federico Beffa
2014-11-05 21:18       ` Andreas Enge
2014-11-05 23:20         ` Andreas Enge [this message]
2014-11-06 11:46           ` Ludovic Courtès
2014-11-06 22:37             ` Andreas Enge
2014-11-06 22:54               ` Andreas Enge
2014-11-06 23:12                 ` Andreas Enge
2014-11-06 23:09               ` Eric Bavier
2014-11-06 23:24                 ` Andreas Enge
2014-11-07  9:20               ` Ludovic Courtès
2014-11-07 14:51                 ` Andreas Enge
2014-11-07 14:59               ` 宋文武
     [not found] <641d5f5d.31e3.14aaea456bc.Coremail.iyzsong@163.com>
2015-01-03  7:20 ` 宋文武
2015-01-03 11:06   ` Andreas Enge
2015-01-04 21:29   ` Ludovic Courtès
  -- strict thread matches above, loose matches on Subject: below --
2014-11-04 21:37 Andreas Enge
2014-11-05 13:18 ` Ludovic Courtès
2014-11-05 13:49   ` 宋文武
2014-11-05 19:22   ` Andreas Enge

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20141105232032.GA24522@debian \
    --to=andreas@enge.fr \
    --cc=beffa@ieee.org \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.