X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/bf4af30bb2bce9dd5baf91f313ea35c55893eb10..bfb22078fd3a184f60968938851ada97d7dead58:/gnu/packages/wxwidgets.scm diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm index ee270ff105..6cbfd76e10 100644 --- a/gnu/packages/wxwidgets.scm +++ b/gnu/packages/wxwidgets.scm @@ -1,5 +1,12 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer +;;; Copyright © 2016 Ricardo Wurmus +;;; Copyright © 2016 Theodoros Foradis +;;; Copyright © 2016 Danny Milosavljevic +;;; Copyright © 2017 Rene Saavedra +;;; Copyright © 2017 Efraim Flashner +;;; Copyright © 2017 Thomas Danckaert +;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,7 +28,9 @@ #:use-module (guix download) #:use-module ((guix licenses) #:prefix l:) #:use-module (guix build-system glib-or-gtk) + #:use-module (guix build-system python) #:use-module (guix build utils) + #:use-module (guix utils) #:use-module (gnu packages) #:use-module (gnu packages compression) #:use-module (gnu packages databases) @@ -29,23 +38,27 @@ #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages image) + #:use-module (gnu packages photo) + #:use-module (gnu packages video) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) #:use-module (gnu packages sdl) + #:use-module (gnu packages webkit) #:use-module (gnu packages xorg)) (define-public wxwidgets (package (name "wxwidgets") - (version "3.0.2") + (version "3.0.4") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/wxwindows/" version + (uri (string-append "https://github.com/wxWidgets/wxWidgets/" + "releases/download/v" version "/wxWidgets-" version ".tar.bz2")) (sha256 - (base32 "0paq27brw4lv8kspxh9iklpa415mxi8zc117vbbbhfjgapf7js1l")))) + (base32 "1w7pgfqjab7n84lc4aarydl3g55d1hdgl2ilwml766r6inc7y5cn")))) (build-system glib-or-gtk-build-system) - ;; TODO: add WebKit (inputs `(("glu" ,glu) ;; XXX gstreamer-0.10 builds fail @@ -56,12 +69,21 @@ ("libsm" ,libsm) ("libtiff" ,libtiff) ("mesa" ,mesa) + ("webkitgtk" ,webkitgtk) ("sdl" ,sdl))) (native-inputs `(("pkg-config" ,pkg-config))) (arguments - '(#:configure-flags - '("--with-regex=sys" "--with-libmspack" "--with-sdl") + `(#:configure-flags + '("--with-regex" "--with-libmspack" + "--with-sdl" + "--enable-webview" + "--enable-webkit" + "--enable-webviewwebkit" + ,@(if (string=? "aarch64-linux" + (%current-system)) + '("--build=aarch64-unknown-linux-gnu") + '())) #:make-flags (list (string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib")) @@ -82,8 +104,9 @@ and many other languages.") (source (origin (method url-fetch) - (uri (string-append - "mirror://sourceforge/wxwindows/wxGTK-" version ".tar.gz")) + (uri (string-append "https://github.com/wxWidgets/wxWidgets/" + "releases/download/v" version + "/wxGTK-" version ".tar.gz")) (sha256 (base32 "1gjs9vfga60mk4j4ngiwsk9h6c7j22pw26m3asxr1jwvqbr8kkqk")))) (inputs @@ -96,5 +119,147 @@ and many other languages.") (arguments `(#:configure-flags '("--enable-unicode" "--with-regex=sys" "--with-sdl") + #:make-flags + (list (string-append "LDFLAGS=-Wl,-rpath=" + (assoc-ref %outputs "out") "/lib")) ;; No 'check' target. #:tests? #f)))) + +(define-public wxwidgets-gtk2 + (package (inherit wxwidgets) + (inputs `(("gtk+" ,gtk+-2) + ,@(alist-delete + "gtk+" + (package-inputs wxwidgets)))) + (name "wxwidgets-gtk2"))) + +;; Development version of wxWidgets, required to build against gstreamer-1.x. +;; This can be removed when wxWidgets is updated to the next stable version. +(define-public wxwidgets-3.1 + (package (inherit wxwidgets) + (version "3.1.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/wxWidgets/wxWidgets/archive/v" + version ".tar.gz")) + (file-name (string-append "wxwidgets-" version ".tar.gz")) + (sha256 + (base32 "1yan5ysjwh6a7xw82sfjd1xn0nsy1dn2s0cx9ac7cw19191blc3y")))) + (inputs `(("gstreamer" ,gstreamer) + ("gst-plugins-base" ,gst-plugins-base) + ,@(package-inputs wxwidgets))) + (arguments + (substitute-keyword-arguments (package-arguments wxwidgets) + ((#:configure-flags flags) + `(cons "--enable-mediactrl" ,flags)))))) + +(define-public wxwidgets-gtk2-3.1 + (package (inherit wxwidgets-3.1) + (inputs `(("gtk+" ,gtk+-2) + ,@(alist-delete + "gtk+" + (package-inputs wxwidgets-3.1)))) + (name "wxwidgets-gtk2"))) + +(define-public python2-wxpython + (package + (name "python2-wxpython") + (version "3.0.2.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/wxpython/wxPython/" + version "/wxPython-src-" version ".tar.bz2")) + (sha256 + (base32 + "0qfzx3sqx4mwxv99sfybhsij4b5pc03ricl73h4vhkzazgjjjhfm")) + (modules '((guix build utils))) + (snippet + '(begin + (lambda (folder) + (delete-file-recursively (string-append "src/" folder)) + '("expat" "jpeg" "png" "tiff" "zlib" "msw" "osx" "msdos")) + (substitute* '("wxPython/setup.py") + ;; setup.py tries to keep its own license the same as wxwidget's + ;; license (which it expects under $WXWIN/docs). + (("'preamble.txt', 'licence.txt', 'licendoc.txt', 'lgpl.txt'") + "")) + #t)))) + (build-system python-build-system) + (arguments + `(#:python ,python-2 + #:tests? #f ; tests fail + ;; wxPython directly extends distutils command classes, + ;; we can't easily make setup.py use setuptools. + #:use-setuptools? #f + #:configure-flags (list "WXPORT=gtk2" + "UNICODE=1") + #:phases + (modify-phases %standard-phases + (add-before 'build 'chdir + (lambda _ + (chdir "wxPython") + #t)) + (add-after 'chdir 'set-wx-out-dir + (lambda* (#:key outputs #:allow-other-keys) + ;; By default, install phase tries to copy the wxPython headers in + ;; gnu/store/...-wxwidgets-3.0.2 , which it can't, so they are + ;; redirected to the output directory by setting WXPREFIX. + (substitute* "config.py" + (("= getWxConfigValue\\('--prefix'\\)") + (string-append "= '" (assoc-ref outputs "out") "'"))) + (substitute* "wx/build/config.py" + (("= getWxConfigValue\\('--prefix'\\)") + (string-append "= '" (assoc-ref outputs "out") "'"))) + #t)) + (add-after 'set-wx-out-dir 'setenv + (lambda* (#:key inputs outputs #:allow-other-keys) + (setenv "WXWIN" (assoc-ref inputs "wxwidgets")) + (use-modules (ice-9 popen) (ice-9 rdelim)) + (let ((port (open-pipe* OPEN_READ + (string-append (assoc-ref inputs "wxwidgets") + "/bin/wx-config") "--cppflags"))) + (setenv "CPPFLAGS" (read-string port)) + (close-pipe port)) + #t))))) + (native-inputs + `(("mesa" ,mesa) ; for glcanvas + ("pkg-config" ,pkg-config))) + (inputs + `(("gtk+" ,gtk+-2) ; for wxPython/src/helpers.cpp + ("wxwidgets" ,wxwidgets-gtk2))) + (synopsis "Python 2 Bindings for wxWidgets") + (description "@code{wxpython} provides Python 2 bindings for wxWidgets.") + (home-page "http://wxpython.org/") + (license (package-license wxwidgets)))) + +(define-public wxsvg + (package + (name "wxsvg") + (version "1.5.12") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/wxsvg/wxsvg/" + version "/wxsvg-" version ".tar.bz2")) + (sha256 + (base32 + "1hn3h9kzsjs4wimlpknzjfgn7q0n792hh7v3mshjgsjxdcrckzan")))) + (build-system glib-or-gtk-build-system) + (inputs + `(("wxwidgets" ,wxwidgets-3.1) + ("cairo" ,cairo) + ("pango" ,pango) + ("libexif" ,libexif) + ("ffmpeg" ,ffmpeg))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (synopsis "C++ library to create, manipulate and render SVG files") + (description "wxSVG is a C++ library to create, manipulate and render +@dfn{Scalable Vector Graphics} (SVG) files with the wxWidgets toolkit.") + (home-page "http://wxsvg.sourceforge.net") + + ;; wxSVG is licenced under the "wxWindows library licence", which is + ;; the LGPL2.0+, with a few extra permissions. + (license (list l:lgpl2.0+ (l:fsf-free "file://COPYING")))))