200 lines
		
	
	
	
		
			7.8 KiB
		
	
	
	
		
			Scheme
		
	
	
	
	
	
			
		
		
	
	
			200 lines
		
	
	
	
		
			7.8 KiB
		
	
	
	
		
			Scheme
		
	
	
	
	
	
| ;;; GNU Guix --- Functional package management for GNU
 | |
| ;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
 | |
| ;;;
 | |
| ;;; 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 <http://www.gnu.org/licenses/>.
 | |
| 
 | |
| (define-module (gnu packages qt)
 | |
|   #:use-module ((guix licenses) #:select (lgpl2.1 x11-style))
 | |
|   #:use-module (guix packages)
 | |
|   #:use-module (guix download)
 | |
|   #:use-module (guix build utils)
 | |
|   #:use-module (guix build-system gnu)
 | |
|   #:use-module (gnu packages)
 | |
|   #:use-module (gnu packages bison)
 | |
|   #:use-module (gnu packages compression)
 | |
|   #:use-module (gnu packages fontutils)
 | |
|   #:use-module (gnu packages glib)
 | |
|   #:use-module (gnu packages icu4c)
 | |
|   #:use-module (gnu packages libjpeg)
 | |
|   #:use-module (gnu packages libpng)
 | |
|   #:use-module (gnu packages linux)
 | |
|   #:use-module (gnu packages mysql)
 | |
|   #:use-module (gnu packages openssl)
 | |
|   #:use-module (gnu packages perl)
 | |
|   #:use-module (gnu packages pkg-config)
 | |
|   #:use-module (gnu packages pulseaudio)
 | |
|   #:use-module (gnu packages python)
 | |
|   #:use-module (gnu packages gl)
 | |
|   #:use-module (gnu packages xorg))
 | |
| 
 | |
| (define-public libxkbcommon
 | |
|   (package
 | |
|     (name "libxkbcommon")
 | |
|     (version "0.3.1")
 | |
|     (source (origin
 | |
|              (method url-fetch)
 | |
|              (uri (string-append "http://xkbcommon.org/download/" name "-"
 | |
|                                  version ".tar.xz"))
 | |
|              (sha256
 | |
|               (base32
 | |
|                "13mk335r4dhi9qglzbp46ina1wz4qgcp8r7s06iq7j50pf0kb5ww"))))
 | |
|     (build-system gnu-build-system)
 | |
|     (native-inputs
 | |
|      `(("bison" ,bison)))
 | |
|     (home-page "http://xkbcommon.org/")
 | |
|     (synopsis "library to handle keyboard descriptions")
 | |
|     (description "Xkbcommon is a library to handle keyboard descriptions,
 | |
| including loading them from disk, parsing them and handling their
 | |
| state.  It is mainly meant for client toolkits, window systems, and other
 | |
| system applications; currently that includes Wayland, kmscon, GTK+, Qt,
 | |
| Clutter, and more.  Despite the name, it is not currently used by anything
 | |
| X11 (yet).")
 | |
|     (license (x11-style "file://COPYING"
 | |
|                         "See 'COPYING' in the distribution."))))
 | |
| 
 | |
| (define-public qt
 | |
|   (package
 | |
|     (name "qt")
 | |
|     (version "5.2.1")
 | |
|     (source (origin
 | |
|              (method url-fetch)
 | |
|              (uri (string-append "http://download.qt-project.org/official_releases/qt/"
 | |
|                                  (string-copy version 0 (string-rindex version #\.))
 | |
|                                  "/" version
 | |
|                                  "/single/qt-everywhere-opensource-src-"
 | |
|                                  version ".tar.xz"))
 | |
|              (sha256
 | |
|               (base32
 | |
|                "0kkqrxpd9gqb52a2zj09d7vhd4adczpjg32vjvll5wyzmh092m85"))))
 | |
|     (build-system gnu-build-system)
 | |
|     (propagated-inputs
 | |
|      `(("mesa" ,mesa)))
 | |
|     (inputs
 | |
|      ;; FIXME: Add input ruby once available.
 | |
|      `(("alsa-lib" ,alsa-lib)
 | |
|        ("dbus" ,dbus)
 | |
|        ("fontconfig" ,fontconfig)
 | |
|        ("freetype" ,freetype)
 | |
|        ("glib" ,glib)
 | |
|        ("icu4c" ,icu4c)
 | |
|        ("libjpeg" ,libjpeg)
 | |
|        ("libpng" ,libpng)
 | |
|        ("libx11" ,libx11)
 | |
|        ("libxi" ,libxi)
 | |
|        ("libxkbcommon" ,libxkbcommon)
 | |
|        ("libxrender" ,libxrender)
 | |
|        ("mysql" ,mysql)
 | |
|        ("openssl" ,openssl)
 | |
|        ("pulseaudio" ,pulseaudio)
 | |
|        ("python-wrapper" ,python-wrapper)
 | |
|        ("xcb-util" ,xcb-util)
 | |
|        ("xcb-util-image" ,xcb-util-image)
 | |
|        ("xcb-util-keysyms" ,xcb-util-keysyms)
 | |
|        ("xcb-util-renderutil" ,xcb-util-renderutil)
 | |
|        ("xcb-util-wm" ,xcb-util-wm)
 | |
|        ("zlib" ,zlib)))
 | |
|     (native-inputs
 | |
|       `(("perl" ,perl)
 | |
|         ("pkg-config" ,pkg-config)))
 | |
|     (arguments
 | |
|      `(#:phases
 | |
|          (alist-replace
 | |
|           'configure
 | |
|           (lambda* (#:key outputs #:allow-other-keys)
 | |
|             (let ((out (assoc-ref outputs "out")))
 | |
|               (substitute* '("configure" "qtbase/configure")
 | |
|                            (("/bin/pwd") (which "pwd")))
 | |
|               ;; do not pass "--enable-fast-install", which makes the
 | |
|               ;; configure process fail
 | |
|               (zero? (system*
 | |
|                       "./configure"
 | |
|                       "-verbose"
 | |
|                       "-prefix" out
 | |
|                       "-opensource"
 | |
|                       "-confirm-license"
 | |
|                       ;; drop special machine instructions not supported
 | |
|                       ;; on all instances of the target
 | |
|                       ,@(if (string-prefix? "x86_64"
 | |
|                                             (or (%current-target-system)
 | |
|                                                 (%current-system)))
 | |
|                             '()
 | |
|                             '("-no-sse2"))
 | |
|                       "-no-sse3"
 | |
|                       "-no-ssse3"
 | |
|                       "-no-sse4.1"
 | |
|                       "-no-sse4.2"
 | |
|                       "-no-avx"
 | |
|                       "-no-avx2"
 | |
|                       "-no-neon"
 | |
|                       "-no-mips_dsp"
 | |
|                       "-no-mips_dspr2"))))
 | |
|           %standard-phases)))
 | |
|     (home-page "http://qt-project.org/")
 | |
|     (synopsis "Cross-platform GUI library")
 | |
|     (description "Qt is a cross-platform application and UI framework for
 | |
| developers using C++ or QML, a CSS & JavaScript like language.")
 | |
|     (license lgpl2.1)))
 | |
| 
 | |
| (define-public qt-4
 | |
|   (package (inherit qt)
 | |
|     (version "4.8.6")
 | |
|     (source (origin
 | |
|              (method url-fetch)
 | |
|              (uri (string-append "http://download.qt-project.org/official_releases/qt/"
 | |
|                                  (string-copy version 0 (string-rindex version #\.))
 | |
|                                  "/" version
 | |
|                                  "/qt-everywhere-opensource-src-"
 | |
|                                  version ".tar.gz"))
 | |
|              (sha256
 | |
|               (base32
 | |
|                "0b036iqgmbbv37dgwwfihw3mihjbnw3kb5kaisdy0qi8nn8xs54b"))
 | |
|              (patches (list (search-patch "qt4-tests.patch")))))
 | |
|     (inputs `(,@(alist-delete "libjpeg" (package-inputs qt))
 | |
|               ("libjepg" ,libjpeg-8)
 | |
|               ("libsm" ,libsm)))
 | |
|     (arguments
 | |
|      `(#:phases
 | |
|          (alist-replace
 | |
|           'configure
 | |
|           (lambda* (#:key outputs #:allow-other-keys)
 | |
|             (let ((out (assoc-ref outputs "out")))
 | |
|               (substitute* '("configure")
 | |
|                            (("/bin/pwd") (which "pwd")))
 | |
|               ;; do not pass "--enable-fast-install", which makes the
 | |
|               ;; configure process fail
 | |
|               (zero? (system*
 | |
|                       "./configure"
 | |
|                       "-verbose"
 | |
|                       "-prefix" out
 | |
|                       "-opensource"
 | |
|                       "-confirm-license"
 | |
|                       ;; drop special machine instructions not supported
 | |
|                       ;; on all instances of the target
 | |
|                       ,@(if (string-prefix? "x86_64"
 | |
|                                             (or (%current-target-system)
 | |
|                                                 (%current-system)))
 | |
|                             '()
 | |
|                             '("-no-mmx"
 | |
|                               "-no-3dnow"
 | |
|                               "-no-sse"
 | |
|                               "-no-sse2"))
 | |
|                       "-no-sse3"
 | |
|                       "-no-ssse3"
 | |
|                       "-no-sse4.1"
 | |
|                       "-no-sse4.2"
 | |
|                       "-no-avx"
 | |
|                       "-no-neon"))))
 | |
|           %standard-phases)))))
 |