gnu: wxWidgets: Update to 3.2.1.

* gnu/packages/wxwidgets.scm (wxwidgets): Update to 3.2.1.
[source](modules, snippet): New fields.
[inputs]: Remove SDL.  Add CATCH-FRAMEWORK, EXPAT, GSTREAMER,
GST-PLUGINS-BASE, LIBNOTIFY, LIBPNG, LIBSECRET, PCRE, SDL2,
WEBKITGTK-WITH-LIBSOUP2, and ZLIB
[arguments]: Add "--enable-mediactrl" and "--enable-gui" to #:configure-flags.
Remove aarch64 workaround.  Install catch header in refer-to-inputs phase.
Add phase to adjust WebKitGTK version.
(wxwidgets-3.1, wxwidgets-gtk2-3.1): Remove variables.
(wxwidgets-3.0, (wxwidgets-gtk2-3.0): New variables.
(wxsvg)[inputs]: Change from WXWIDGETS-3.1 to WXWIDGETS.
* gnu/packages/audio.scm (audacity)[inputs]: Likewise.
* gnu/packages/cdrom.scm (dvdstyler)[inputs]: Likewise.
* gnu/packages/astronomy.scm (imppg)[inputs]: Change from WXWIDGETS to
WXWIDGETS-3.0.
* gnu/packages/ftp.scm (filezilla)[inputs]: Likewise.
* gnu/packages/games.scm (megaglest)[inputs]: Likewise.
* gnu/packages/geo.scm (opencpn)[inputs]: Likewise.
* gnu/packages/music.scm (sooperlooper)[inputs]: Likewise.
* gnu/packages/engineering.scm (kicad)[arguments]: Enable EGL support.
This commit is contained in:
Marius Bakke 2022-11-26 17:43:26 +01:00
parent 8737ee0479
commit f16358144f
No known key found for this signature in database
GPG key ID: A2A06DF2A33A54FA
9 changed files with 138 additions and 83 deletions

View file

@ -1925,7 +1925,7 @@ (define-public imppg
(native-inputs
(list boost pkg-config))
(inputs
(list cfitsio freeimage glew wxwidgets))
(list cfitsio freeimage glew wxwidgets-3.0))
(home-page "https://github.com/GreatAttractor/imppg")
(synopsis "Astronomical Image Post-Proccessor (ImPPG)")
(description

View file

@ -892,7 +892,7 @@ (define-public audacity
#t))))
(build-system cmake-build-system)
(inputs
(list wxwidgets-3.1
(list wxwidgets
gtk+
alsa-lib
jack-1

View file

@ -515,7 +515,7 @@ (define-public dvdstyler
#t)))
#:tests? #f)) ; No tests.
(inputs ; TODO package bundled wxvillalib
`(("wxwidgets" ,wxwidgets-3.1)
`(("wxwidgets" ,wxwidgets)
("wssvg" ,wxsvg)
("dbus" ,dbus)
("cdrtools" ,cdrtools)

View file

@ -964,6 +964,7 @@ (define-public kicad
#$(this-package-input "opencascade-occt")
"/include/opencascade")
"-DKICAD_SCRIPTING_WXPYTHON_PHOENIX=ON"
"-DKICAD_USE_EGL=ON" ;because wxWidgets uses EGL
"-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE")
#:phases
(modify-phases %standard-phases

View file

@ -240,7 +240,7 @@ (define-public filezilla
nettle
pugixml
sqlite
wxwidgets))
wxwidgets-3.0))
(home-page "https://filezilla-project.org")
(synopsis "Full-featured graphical FTP/FTPS/SFTP client")
(description

View file

@ -6151,7 +6151,7 @@ (define-public megaglest
libvorbis
lua
sdl2
wxwidgets))
wxwidgets-3.0))
(native-inputs
(list cppunit pkg-config))
(arguments

View file

@ -2158,7 +2158,7 @@ (define-public opencpn
sqlite
tinyxml
wxsvg
wxwidgets
wxwidgets-3.0
xz
zlib))
(arguments

View file

@ -4040,7 +4040,7 @@ (define-public sooperlooper
(inputs
(list jack-1
alsa-lib
wxwidgets-gtk2
wxwidgets-gtk2-3.0
libsndfile
libsamplerate
liblo

View file

@ -8,6 +8,7 @@
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2022 Marius Bakke <marius@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -35,6 +36,7 @@ (define-module (gnu packages wxwidgets)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages check)
#:use-module (gnu packages curl)
#:use-module (gnu packages compression)
#:use-module (gnu packages databases)
#:use-module (gnu packages freedesktop)
@ -45,18 +47,19 @@ (define-module (gnu packages wxwidgets)
#:use-module (gnu packages image)
#:use-module (gnu packages photo)
#:use-module (gnu packages video)
#:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages sdl)
#:use-module (gnu packages webkit)
#:use-module (gnu packages xorg)
#:use-module ((srfi srfi-1) #:select (alist-delete)))
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg))
(define-public wxwidgets
(package
(name "wxwidgets")
(version "3.0.5.1")
(version "3.2.1")
(source
(origin
(method url-fetch)
@ -64,24 +67,128 @@ (define-public wxwidgets
"releases/download/v" version
"/wxWidgets-" version ".tar.bz2"))
(sha256
(base32 "01y89999jw5q7njrhxajincx7lydls6yq37ikazjryssrxrnw3s4"))))
(base32 "0rpsyph7l7kmpld376y0940la3c94y5vdpxmbkj8isqknimrfaf2"))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
'(begin
;; wxWidgets bundles third-party code in the "3rdparty" directory as
;; well as the "src" directory. Remove external components that are
;; not required.
(let ((preserved-3rdparty '("nanosvg"))
;; The src directory contains a mixture of third party libraries
;; and similarly-named integration code. Cautiously use a
;; blacklist approach here.
(bundled-src '("expat" "jpeg" "png" "tiff" "zlib")))
(with-directory-excursion "3rdparty"
(for-each delete-file-recursively
(scandir "." (negate (cut member <>
(append '("." "..")
preserved-3rdparty))))))
(with-directory-excursion "src"
(for-each delete-file-recursively bundled-src)))))))
(build-system glib-or-gtk-build-system)
(inputs
(list glu
;; XXX gstreamer-0.10 builds fail
;; ("gstreamer" ,gstreamer-0.10)
(list catch-framework
curl
expat
glu
gstreamer
gst-plugins-base
gtk+
libjpeg-turbo
libmspack
libnotify
libpng
libsecret
libsm
libtiff
mesa
webkitgtk
sdl
pcre2
sdl2
shared-mime-info
xdg-utils))
webkitgtk-with-libsoup2
xdg-utils
zlib))
(native-inputs
(list pkg-config))
(arguments
(list
#:configure-flags #~'("--with-libmspack"
"--with-regex"
"--with-sdl"
"--enable-gui"
"--enable-mediactrl"
"--enable-webview"
"--enable-webviewwebkit")
#:make-flags
#~(list (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib"))
#:tests? #f ;TODO
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'use-newer-webkit
(lambda _
;; XXX: The configure script tests only for an ancient
;; WebKitGTK version.
(substitute* "configure"
(("webkit2gtk-4\\.0")
"webkit2gtk-4.1"))))
(add-after 'unpack 'refer-to-inputs
(lambda* (#:key inputs #:allow-other-keys)
(let ((catch (search-input-file inputs "include/catch.hpp"))
(mime (search-input-directory inputs "share/mime"))
(xdg-open (search-input-file inputs "bin/xdg-open")))
(install-file catch "3rdparty/catch/include/")
(substitute* "src/unix/utilsx11.cpp"
(("wxExecute\\(xdg_open \\+")
(string-append "wxExecute(\"" xdg-open "\"")))
(substitute* "src/unix/mimetype.cpp"
(("/usr(/local)?/share/mime")
mime)))))
(replace 'configure
(lambda* (#:key native-inputs inputs configure-flags
#:allow-other-keys)
(let ((sh (search-input-file (or native-inputs inputs)
"bin/sh")))
;; The configure script does not understand some of the default
;; options of gnu-build-system, so run it "by hand".
(apply invoke "./configure"
(string-append "SHELL=" sh)
(string-append "CONFIG_SHELL=" sh)
(string-append "--prefix=" #$output)
configure-flags)))))))
(home-page "https://www.wxwidgets.org/")
(synopsis "Widget toolkit for creating graphical user interfaces")
(description
"wxWidgets is a C++ library that lets developers create applications with
a graphical user interface. It has language bindings for Python, Perl, Ruby
and many other languages.")
(license (list l:lgpl2.0+ (l:fsf-free "file://doc/license.txt")))))
(define-public wxwidgets-gtk2
(package/inherit wxwidgets
(name "wxwidgets-gtk2")
(inputs (modify-inputs (package-inputs wxwidgets)
(delete "gtk+")
(prepend gtk+-2)))
(arguments
(substitute-keyword-arguments (package-arguments wxwidgets)
((#:configure-flags flags #~'())
#~(append #$flags '("--with-gtk=2")))))))
(define-public wxwidgets-3.0
(package
(inherit wxwidgets)
(version "3.0.5.1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/wxWidgets/wxWidgets/"
"releases/download/v" version
"/wxWidgets-" version ".tar.bz2"))
(sha256
(base32
"01y89999jw5q7njrhxajincx7lydls6yq37ikazjryssrxrnw3s4"))))
(arguments
`(#:configure-flags
'("--with-regex" "--with-libmspack"
@ -108,15 +215,18 @@ (define-public wxwidgets
(("wxExecute\\(xdg_open \\+")
(string-append "wxExecute(\"" xdg-open "\"")))
(substitute* "src/unix/mimetype.cpp"
(("/usr(/local)?/share/mime") mime))
#t))))))
(home-page "https://www.wxwidgets.org/")
(synopsis "Widget toolkit for creating graphical user interfaces")
(description
"wxWidgets is a C++ library that lets developers create applications with
a graphical user interface. It has language bindings for Python, Perl, Ruby
and many other languages.")
(license (list l:lgpl2.0+ (l:fsf-free "file://doc/license.txt")))))
(("/usr(/local)?/share/mime") mime))))))))))
(define-public wxwidgets-gtk2-3.0
(package/inherit wxwidgets-3.0
(name "wxwidgets-gtk2")
(inputs (modify-inputs (package-inputs wxwidgets-3.0)
(delete "gtk+")
(prepend gtk+-2)))
(arguments
(substitute-keyword-arguments (package-arguments wxwidgets-3.0)
((#:configure-flags flags #~'())
#~(append #$flags '("--with-gtk=2")))))))
(define-public wxwidgets-2
(package
@ -153,62 +263,6 @@ (define-public wxwidgets-2
(("-Wall") "-Wall -Wno-narrowing"))
#t)))))))
(define-public wxwidgets-gtk2
(package/inherit wxwidgets
(name "wxwidgets-gtk2")
(inputs (modify-inputs (package-inputs wxwidgets)
(delete "gtk+")
(prepend gtk+-2)))))
;; 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.5")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/wxWidgets/wxWidgets")
(commit (string-append "v" version))))
(file-name (git-file-name "wxwidgets" version))
(sha256
(base32
"0j998nzqmycafignclxmahgqm5kgs1fiqbsiyvzm7bnpnafi333y"))))
(inputs (modify-inputs (package-inputs wxwidgets)
(prepend catch-framework gstreamer gst-plugins-base)))
(arguments
(substitute-keyword-arguments (package-arguments wxwidgets)
((#:configure-flags flags)
'(list "--with-regex" "--with-libmspack" "--with-sdl"
"--enable-mediactrl" "--enable-webviewwebkit"))
((#:phases phases)
`(modify-phases ,phases
(add-after 'unpack 'add-catch
(lambda* (#:key inputs #:allow-other-keys)
(install-file
(search-input-file inputs "include/catch.hpp")
"3rdparty/catch/include/")))
(replace 'configure
(lambda* (#:key configure-flags inputs native-inputs outputs
#:allow-other-keys)
(let ((sh (search-input-file (or native-inputs inputs)
"bin/sh")))
(apply invoke "./configure"
(string-append "SHELL=" sh)
(string-append "CONFIG_SHELL=" sh)
(string-append "--prefix="
(assoc-ref outputs "out"))
configure-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 python-wxpython
(package
(name "python-wxpython")
@ -278,7 +332,7 @@ (define-public wxsvg
(base32 "1fdbvihw1w2vm29xj54cqgpdabhlg0ydf3clkb0qrlf7mhgkc1rz"))))
(build-system glib-or-gtk-build-system)
(inputs
(list wxwidgets-3.1 cairo ffmpeg))
(list wxwidgets cairo ffmpeg))
(native-inputs
(list pkg-config))
(propagated-inputs