unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCH] gnu: kde: Add kdelibs.
@ 2014-11-04 21:37 Andreas Enge
  2014-11-05 13:18 ` Ludovic Courtès
  0 siblings, 1 reply; 22+ messages in thread
From: Andreas Enge @ 2014-11-04 21:37 UTC (permalink / raw)
  To: guix-devel

Hello,

thanks to Ludovic's help with debugging Qt and dbus, I finally have a working
recipe for kdelibs that allows me to compile the KDE "Hello, world"
tutorial at
  https://techbase.kde.org/Development/Tutorials/First_program

It looks like all KDE programs require at least kdelibs, qt, phonon and
automoc4 to compile; but as these are not needed for running the program,
it seems inappropriate to make them propagated inputs.

The configure flags
   "-DCMAKE_SHARED_LINKER_FLAGS=-lQtNetwork -lQtXml"
   "-DCMAKE_EXE_LINKER_FLAGS=-lQtCore"
look like bugs in kdelibs to me; but I wonder if reporting them makes sense.
I sense the answer that we should simply keep Qt in a standard location...

Quite a few of the tests fail, and already the first one (which is a simple
compression and archiver test) hangs at 100% CPU before being killed after
1500s. I can try to run all the tests and see whether there is some useful
output. Otherwise hunting down the test failures looks hopeless.

Comments are welcome.

Andreas


* gnu/packages/kde.scm (kdelibs): New variable.
---
 gnu/packages/kde.scm | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 98 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index 8c2673e..602f5fb 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -17,14 +17,22 @@
 ;;; 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) #:select (bsd-2 lgpl2.0 lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3+))
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system cmake)
+  #: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)
@@ -225,3 +233,92 @@ calculation of sha1 for every file crawled
     (synopsis "oxygen icon theme for the KDE desktop")
     (description "KDE desktop environment")
     (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
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("attica" ,attica)
+       ("automoc4" ,automoc4)
+       ("bison" ,bison)
+       ("docbook-xml" ,docbook-xml)
+       ("docbook-xsl" ,docbook-xsl)
+       ("flex" ,flex)
+       ("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 ; currently failing
+       #:configure-flags
+        (list "-DCMAKE_SHARED_LINKER_FLAGS=-lQtNetwork -lQtXml"
+              "-DCMAKE_EXE_LINKER_FLAGS=-lQtCore"
+              (string-append "-DDOCBOOKXML_CURRENTDTD_DIR="
+                             (assoc-ref %build-inputs "docbook-xml")
+                             "/xml/dtd/docbook/")
+              (let* ((docbook-xsl (assoc-ref %build-inputs "docbook-xsl"))
+                     (docbook-xsl-version ,(package-version docbook-xsl)))
+                    (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 "Main libraries for the KDE desktop")
+    (description "KDE desktop environment")
+    (license lgpl2.0))) ; the libraries; examples are under GPL
-- 
2.1.2

^ permalink raw reply related	[flat|nested] 22+ messages in thread
* Re: [PATCH] gnu: kde: Add kdelibs.
@ 2014-11-05 19:50 Federico Beffa
  2014-11-05 20:15 ` Ludovic Courtès
  0 siblings, 1 reply; 22+ messages in thread
From: Federico Beffa @ 2014-11-05 19:50 UTC (permalink / raw)
  To: andreas, Guix-devel, Ludovic Courtès

Andreas Enge <andreas@enge.fr> writes:
> As usual, the libraries and binaries are not explicitly linked with the
> libraries they depend on. So in a context where the input libraries are not
> in /usr/lib, executing binaries fails.
>
> In my private branch I also tried to compile a few KDE packages. The same
> problem everywhere: Unless I set an LD_LIBRARY_PATH, they do not find the
> necessary KDE and Qt libraries. I think we need a more general solution,
> as also witnessed by this:

I'm working on dconf and I had the same problem: the produced binaries
like dconf-edit, but even shared libraries produced by the build would
not find their own companions. Initially I did set LD_LIBRARY_PATH to
resolve the problem.  However, after setting

       #:configure-flags
       ;; Set the correct RUNPATH in binaries.
       (list (string-append "LDFLAGS=-Wl,-rpath="
                            (assoc-ref %outputs "out") "/lib"))

at build time, everything was working fine without having to set
LD_LIBRARY_PATH. That is not in dconf and not in packages build against
dconf's libraries.

Regards,
Fede

^ permalink raw reply	[flat|nested] 22+ messages in thread
[parent not found: <641d5f5d.31e3.14aaea456bc.Coremail.iyzsong@163.com>]

end of thread, other threads:[~2015-01-04 21:30 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-11-04 21:37 [PATCH] gnu: kde: Add kdelibs Andreas Enge
2014-11-05 13:18 ` Ludovic Courtès
2014-11-05 13:49   ` 宋文武
2014-11-05 19:22   ` Andreas Enge
  -- strict thread matches above, loose matches on Subject: below --
2014-11-05 19:50 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
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

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).