diff options
author | Marius Bakke <marius@gnu.org> | 2022-08-30 20:18:55 +0200 |
---|---|---|
committer | Marius Bakke <marius@gnu.org> | 2022-08-30 20:18:55 +0200 |
commit | 59c136ef611b7a00683af1d1bb406dbd1af1a2bd (patch) | |
tree | 1ab434580130c7fd11b8ef5c22a91087b8401559 /gnu/packages | |
parent | a6f42953626df657041fddfc36a207b06c38f944 (diff) | |
parent | d62fc2cc837b095ff1a633ae2639513ea3253596 (diff) | |
download | guix-59c136ef611b7a00683af1d1bb406dbd1af1a2bd.tar.gz |
Merge branch 'staging' into core-updates
Diffstat (limited to 'gnu/packages')
67 files changed, 1772 insertions, 556 deletions
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 0424d92a65..ed6c387e94 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -1725,12 +1725,12 @@ over ssh connections.") (substitute* "Makefile" ((".*/service/realmd-.*") ""))))))) (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("glib-bin" ,glib "bin") - ("intltool" ,intltool) - ("pkg-config" ,pkg-config) - ("python" ,python))) + (list autoconf + automake + `(,glib "bin") + intltool + pkg-config + python)) (inputs (list glib mit-krb5 openldap polkit)) (synopsis "DBus service for network authentication") diff --git a/gnu/packages/animation.scm b/gnu/packages/animation.scm index b8524681fa..a1932b5f06 100644 --- a/gnu/packages/animation.scm +++ b/gnu/packages/animation.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Pkill -9 <pkill9@runbox.com> ;;; Copyright © 2020, 2021, 2022 Vinicius Monego <monego@posteo.net> +;;; Copyright © 2022 Tomasz Jeneralczyk <tj@schwi.pl> ;;; ;;; This file is part of GNU Guix. ;;; @@ -47,6 +48,7 @@ #:use-module (gnu packages image) #:use-module (gnu packages imagemagick) #:use-module (gnu packages jemalloc) + #:use-module (gnu packages mp3) #:use-module (gnu packages networking) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) @@ -495,3 +497,100 @@ waveform until they line up with the proper sounds.") lets you create traditional hand-drawn animations (cartoons) using both bitmap and vector graphics.") (license license:gpl2))) + +(define-public swftools + ;; Last release of swftools was 0.9.2 on 2012-04-21 - it is really old and + ;; does not compile with what's available in guix, master on the other hand works. + (let ((commit "772e55a271f66818b06c6e8c9b839befa51248f4") + (revision "1")) + (package + (name "swftools") + (version (git-version "0.9.2" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/matthiaskramm/swftools") + (commit commit))) + (sha256 + (base32 "0a8a29rn7gpxnba3spnvkpdgr7mdlssvr273mzw5b2wjvbzard3w")) + (file-name (git-file-name name version)) + (modules '((guix build utils))) + (snippet + '(begin + ;; XXX: Swftools includes the source tarball of an old version of + ;; xpdf. + + ;; To fix a linking error I followed the workaround in: + ;; https://github.com/matthiaskramm/swftools/issues/178 + ;; and implented it as a two-step snippet because substitute* + ;; does not match multiline regexes. + (substitute* "lib/lame/quantize.c" + ;; move inline keywords to the same line as their function headers + (("^inline.*\n") "inline ")) + (substitute* "lib/lame/quantize.c" + ;; make this particular function not inline + (("inline (void bitpressure_strategy1)" _ f) f)))))) + (build-system gnu-build-system) + (arguments + (list #:tests? #f)) ; no rule for check + (inputs (list zlib freetype giflib libjpeg-turbo lame)) + (home-page "http://www.swftools.org") + (synopsis "Collection of utilities for working with Adobe Flash files") + + ;; XXX: This package will built all of swftools' tools but one: PDF2SWF, + ;; purposefuly commented out of the description below. + (description "SWFTools is a collection of utilities for working with +Adobe Flash files (SWF files). The tool collection includes programs for +reading SWF files, combining them, and creating them from other content (like +images, sound files, videos or sourcecode). The current collection is + comprised of the programs detailed below: + +@itemize +@comment PDF2SWF is not currentlybeing build alongside other tools. The next +@comment two lines should be uncommented if this will ever get fixed. +@comment @item +@comment @command{pdf2swf} A PDF to SWF Converter. + +@item +@command{swfcombine} A multi-function tool for inserting, contatenating, +stacking and changing parameters in SWFs. + +@item +@command{swfstrings} Scans SWFs for text data. +@item +@command{swfdump} Prints out various informations about SWFs. + +@item +@command{jpeg2swf} Takes one or more JPEG pictures and generates a SWF +slideshow from them. + +@item +@command{png2swf} Like JPEG2SWF, only for PNGs. + +@item +@command{gif2swf} Converts GIFs to SWF. Also able to handle animated GIFs. + +@item +@command{wav2swf} Converts WAV audio files to SWFs, using the LAME MP3 + encoder library. + +@item +@command{font2swf} Converts font files (TTF, Type1) to SWF. + +@item +@command{swfbbox} Allows to read out, optimize and readjust SWF bounding boxes. + +@item +@command{swfc} A tool for creating SWF files from simple script files. Supports +both ActionScript 2.0 aand 3.0. + +@item +@command{swfextract} Allows to extract Movieclips, Sounds, Images etc. from SWF + files. + +@item +@command{as3compile} A standalone ActionScript 3.0 compiler. Mostly compatible + with Flex. +@end itemize") + (license license:gpl2+)))) diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index facfb75abf..2a3776e8b5 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2016, 2017, 2018, 2020, 2021 Roel Janssen <roel@gnu.org> ;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl> ;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com> -;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2017, 2022 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017, 2018, 2019, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019, 2020, 2021, 2022 Simon Tournier <zimon.toutoune@gmail.com> ;;; Copyright © 2020 Peter Lo <peterloleungyau@gmail.com> @@ -2756,13 +2756,13 @@ over-abundant or less-abundant as compared to that of normal cells.") (define-public r-iranges (package (name "r-iranges") - (version "2.30.0") + (version "2.30.1") (source (origin (method url-fetch) (uri (bioconductor-uri "IRanges" version)) (sha256 (base32 - "0hfx5n0b4pqrrc1w2dik596803ly8ffnxfs768iy5l5kr8wwyc8k")))) + "1r01c9lczkchgd9hbxxd6wrd5avhy52mfqjck7l9avjq1jimvzv3")))) (properties `((upstream-name . "IRanges"))) (build-system r-build-system) @@ -4328,13 +4328,13 @@ genomic intervals. In addition, it can use BAM or BigWig files as input.") (define-public r-genomeinfodb (package (name "r-genomeinfodb") - (version "1.32.2") + (version "1.32.3") (source (origin (method url-fetch) (uri (bioconductor-uri "GenomeInfoDb" version)) (sha256 (base32 - "1n37bwb2fqmdgqbn19rgsd2qn8vbdhv6khdwjr7v12bwabcbx9xh")))) + "17nwcq2ivj3bdibdywfyjq4n6z0djispbh9ahqa55sp31ksq41xh")))) (properties `((upstream-name . "GenomeInfoDb"))) (build-system r-build-system) @@ -4647,14 +4647,14 @@ Shiny-based display methods for Bioconductor objects.") (define-public r-keggrest (package (name "r-keggrest") - (version "1.36.2") + (version "1.36.3") (source (origin (method url-fetch) (uri (bioconductor-uri "KEGGREST" version)) (sha256 (base32 - "1rn03w8y80prbvzahkvf8275haiymnjj1ijcgn55p3d0sb54yzgw")))) + "0lzb3z6pzm323q70931b7220ygml7jb4g81dybwa79wqiqz15pni")))) (properties `((upstream-name . "KEGGREST"))) (build-system r-build-system) (propagated-inputs diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm index 38a7ee2783..5c9d5409cb 100644 --- a/gnu/packages/build-tools.scm +++ b/gnu/packages/build-tools.scm @@ -34,6 +34,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix utils) #:use-module (guix packages) + #:use-module (guix gexp) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system cmake) @@ -53,6 +54,7 @@ #:use-module (gnu packages pretty-print) #:use-module (gnu packages protobuf) #:use-module (gnu packages python) + #:use-module (gnu packages python-build) #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) @@ -384,6 +386,105 @@ other lower-level build files.") scripted definition of a software project and outputs @file{Makefile}s or other lower-level build files."))) +(define-public scons + (package + (name "scons") + (version "4.4.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/SCons/scons") + (commit version))) + (file-name (git-file-name name version)) + (patches (search-patches "scons-test-environment.patch")) + (sha256 + (base32 + "1czswx1fj2j48rspkrvarkr43k0vii9rsmz054c9yby1dq362fgr")))) + (build-system python-build-system) + (arguments + (list + #:modules (append %python-build-system-modules + '((ice-9 ftw) (srfi srfi-26))) + #:phases + #~(modify-phases (@ (guix build python-build-system) %standard-phases) + (add-after 'unpack 'adjust-hard-coded-paths + (lambda _ + (substitute* "SCons/Script/Main.py" + (("/usr/share/scons") + (string-append #$output "/share/scons"))))) + (add-before 'build 'bootstrap + (lambda _ + ;; XXX: Otherwise setup.py bdist_wheel fails. + (setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH")) + (invoke "python" "scripts/scons.py"))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "python" "runtest.py" "--all" "--unit-only")))) + (add-after 'install 'move-manuals + (lambda _ + ;; XXX: For some reason manuals get installed to the top-level + ;; #$output directory. + (with-directory-excursion #$output + (let ((man1 (string-append #$output "/share/man/man1")) + (stray-manuals (scandir "." + (cut string-suffix? ".1" <>)))) + (mkdir-p man1) + (for-each (lambda (manual) + (link manual (string-append man1 "/" manual)) + (delete-file manual)) + stray-manuals)))))))) + (native-inputs + ;; TODO: Add 'fop' when available in Guix to generate manuals. + (list python-wheel + ;;For tests. + python-psutil)) + (home-page "https://scons.org/") + (synopsis "Software construction tool written in Python") + (description + "SCons is a software construction tool. Think of SCons as an improved, +cross-platform substitute for the classic Make utility with integrated +functionality similar to autoconf/automake and compiler caches such as ccache. +In short, SCons is an easier, more reliable and faster way to build +software.") + (license license:x11))) + +(define-public scons-3 + (package + (inherit scons) + (version "3.0.4") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/SCons/scons") + (commit version))) + (file-name (git-file-name "scons" version)) + (sha256 + (base32 + "1xy8jrwz87y589ihcld4hv7wn122sjbz914xn8h50ww77wbhk8hn")))) + (arguments + `(#:use-setuptools? #f ; still relies on distutils + #:tests? #f ; no 'python setup.py test' command + #:phases + (modify-phases %standard-phases + (add-before 'build 'bootstrap + (lambda _ + (substitute* "src/engine/SCons/compat/__init__.py" + (("sys.modules\\[new\\] = imp.load_module\\(old, \\*imp.find_module\\(old\\)\\)") + "sys.modules[new] = __import__(old)")) + (substitute* "src/engine/SCons/Platform/__init__.py" + (("mod = imp.load_module\\(full_name, file, path, desc\\)") + "mod = __import__(full_name)")) + (invoke "python" "bootstrap.py" "build/scons" "DEVELOPER=guix") + (chdir "build/scons") + #t))))) + (native-inputs '()))) + +(define-public scons-python2 + (package + (inherit (package-with-python2 scons-3)) + (name "scons-python2"))) + (define-public tup (package (name "tup") diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm index f4855e12e9..cc0abedd35 100644 --- a/gnu/packages/code.scm +++ b/gnu/packages/code.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2021 lu hui <luhuins@163.com> ;;; Copyright © 2021, 2022 Foo Chuan Wei <chuanwei.foo@hotmail.com> +;;; Copyright © 2022 Michael Rohleder <mike@rohleder.de> ;;; ;;; This file is part of GNU Guix. ;;; @@ -744,7 +745,7 @@ independent targets.") (define-public uncrustify (package (name "uncrustify") - (version "0.74.0") + (version "0.75.1") (source (origin (method git-fetch) (uri (git-reference @@ -753,7 +754,7 @@ independent targets.") (file-name (git-file-name name version)) (sha256 (base32 - "0v48vhmzxjzysbf0vhxzayl2pkassvbabvwg84xd6b8n5i74ijxd")))) + "1mzzzd4alajjdshbjd2a5mddqcpag8yyss72n09mfpialzyf7g60")))) (build-system cmake-build-system) (native-inputs `(("python" ,python-wrapper))) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 34514ea0c7..dd76f715c6 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -48962,14 +48962,14 @@ memory to speed up reallocation.") (define-public rust-regex-1 (package (name "rust-regex") - (version "1.5.4") + (version "1.6.0") (source (origin (method url-fetch) (uri (crate-uri "regex" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "0qf479kjbmb582h4d1d6gfl75h0j8aq2nrdi5wg6zdcy6llqcynh")))) + (base32 "12wqvyh4i75j7pc8sgvmqh4yy3qaj4inc4alyv1cdf3lf4kb6kjc")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs @@ -49081,14 +49081,14 @@ uses finite automata and guarantees linear time matching on all inputs.") (define-public rust-regex-syntax-0.6 (package (name "rust-regex-syntax") - (version "0.6.25") + (version "0.6.27") (source (origin (method url-fetch) (uri (crate-uri "regex-syntax" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "16y87hz1bxmmz6kk360cxwfm3jnbsxb3x4zw9x1gzz7khic2i5zl")))) + (base32 "0i32nnvyzzkvz1rqp2qyfxrp2170859z8ck37jd63c8irrrppy53")))) (build-system cargo-build-system) (home-page "https://github.com/rust-lang/regex") (synopsis "Regular expression parser") diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 7002aedd05..57467135a6 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -1153,7 +1153,7 @@ Language.") ("libaio" ,libaio) ("libxml2" ,libxml2) ("ncurses" ,ncurses) - ("openssl" ,openssl) + ("openssl" ,openssl-1.1) ("pam" ,linux-pam) ("pcre2" ,pcre2) ("xz" ,xz) diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm index 80685900eb..b3ddfbdee6 100644 --- a/gnu/packages/debug.scm +++ b/gnu/packages/debug.scm @@ -621,7 +621,7 @@ error reporting, better tracing, profiling, and a debugger.") (define-public rr (package (name "rr") - (version "5.5.0") + (version "5.6.0") (source (origin (method git-fetch) (uri (git-reference @@ -629,7 +629,7 @@ error reporting, better tracing, profiling, and a debugger.") (commit version))) (sha256 (base32 - "079x891axkiy8qbvjar9vbaldlx7pm9p0i3nq6infdc66nc69635")) + "0sdpsd7bcbmx9gmp7lv71znzxz708wm8qxq5apbyc6hh80z4fzqz")) (file-name (git-file-name name version)))) (build-system cmake-build-system) (arguments @@ -641,7 +641,9 @@ error reporting, better tracing, profiling, and a debugger.") ;; Satisfy the ‘validate-runpath’ phase. This isn't a direct ;; consequence of clearing CMAKE_INSTALL_RPATH. (string-append "-DCMAKE_EXE_LINKER_FLAGS=-Wl,-rpath=" - (assoc-ref %build-inputs "capnproto") "/lib") + (assoc-ref %build-inputs "capnproto") + "/lib,-rpath=" (assoc-ref %build-inputs "zlib") + "/lib") ,@(if (and (not (%current-target-system)) (member (%current-system) '("x86_64-linux" "aarch64-linux"))) @@ -666,7 +668,7 @@ error reporting, better tracing, profiling, and a debugger.") (native-inputs (list pkg-config ninja which)) (inputs - (list gdb capnproto python python-pexpect)) + (list gdb capnproto python python-pexpect zlib)) (home-page "https://rr-project.org/") (synopsis "Record and reply debugging framework") (description diff --git a/gnu/packages/direct-connect.scm b/gnu/packages/direct-connect.scm index d342537122..4898c7a038 100644 --- a/gnu/packages/direct-connect.scm +++ b/gnu/packages/direct-connect.scm @@ -25,12 +25,12 @@ #:use-module (guix download) #:use-module (gnu packages) #:use-module (gnu packages boost) + #:use-module (gnu packages build-tools) #:use-module (gnu packages compression) #:use-module (gnu packages gettext) #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) #:use-module (gnu packages pkg-config) - #:use-module (gnu packages python-xyz) #:use-module (gnu packages tls) #:use-module (gnu packages version-control)) diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index 69c02347c3..60605417a9 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -45,6 +45,7 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages bash) + #:use-module (gnu packages build-tools) #:use-module (gnu packages c) #:use-module (gnu packages check) #:use-module (gnu packages compression) diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm index 6c1c5b6c25..ef26890414 100644 --- a/gnu/packages/display-managers.scm +++ b/gnu/packages/display-managers.scm @@ -10,7 +10,7 @@ ;;; Copyright © 2020 Fredrik Salomonsson <plattfot@gmail.com> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2021 Zheng Junjie <873216071@qq.com> -;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2021, 2022 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com> ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; @@ -37,6 +37,7 @@ #:use-module (guix build-system cmake) #:use-module (guix build-system qt) #:use-module (guix build-system gnu) + #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system trivial) #:use-module (guix packages) #:use-module (guix utils) @@ -53,6 +54,7 @@ #:use-module (gnu packages gnome) #:use-module (gnu packages gnupg) #:use-module (gnu packages gtk) + #:use-module (gnu packages guile) #:use-module (gnu packages image) #:use-module (gnu packages kde-frameworks) #:use-module (gnu packages linux) @@ -75,7 +77,16 @@ "sddm-" version ".tar.xz")) (sha256 (base32 - "0hcdysw8ibr66vk8i7v56l0v5ijvhlq67v4460mc2xf2910g2m72")))) + "0hcdysw8ibr66vk8i7v56l0v5ijvhlq67v4460mc2xf2910g2m72")) + (snippet + #~(begin + ;; https://github.com/sddm/sddm/issues/1536 + ;; https://github.com/sddm/sddm/commit/e93bf95c54ad8c2a1604f8d7be05339164b19308 + ;; Commit comes shortly after the 0.19.0 release. + (use-modules ((guix build utils))) + (substitute* "src/daemon/XorgDisplayServer.cpp" + (("m_cookie\\[i\\] = digits\\[dis\\(gen\\)\\]") + "m_cookie[i] = QLatin1Char(digits[dis(gen)])")))))) (build-system qt-build-system) (native-inputs (list extra-cmake-modules pkg-config qttools-5)) @@ -266,7 +277,10 @@ experience for your users, your family and yourself") (file-name (git-file-name name version)) (sha256 (base32 - "1wr60c946p8jz9kb8zi4cd8d4mkcy7infbvlfzwajiglc22nblxn")))) + "1wr60c946p8jz9kb8zi4cd8d4mkcy7infbvlfzwajiglc22nblxn")) + (patches (search-patches "lightdm-arguments-ordering.patch" + "lightdm-vncserver-check.patch" + "lightdm-vnc-color-depth.patch")))) (build-system gnu-build-system) (arguments '(#:parallel-tests? #f ; fails when run in parallel @@ -301,8 +315,8 @@ experience for your users, your family and yourself") (unsetenv "LC_ALL")))))) (inputs (list audit - bash-minimal ;for cross-compilation - coreutils-minimal ;ditto + bash-minimal ;for cross-compilation + coreutils-minimal ;ditto linux-pam shadow ;for sbin/nologin libgcrypt @@ -347,17 +361,29 @@ display manager which supports different greeters.") (sha256 (base32 "04q62mvr97l9gv8h37hfarygqc7p0498ig7xclcg4kxkqw0b7yxy")))) - (build-system gnu-build-system) + (build-system glib-or-gtk-build-system) (arguments (list #:configure-flags #~(list "--disable-indicator-services-command" ;requires upstart + ;; Put the binary under /bin rather than /sbin, so that it gets + ;; wrapped by the glib-or-gtk-wrap phase. + (string-append "--sbindir=" #$output "/bin") + (string-append "--with-libxklavier") (string-append "--enable-at-spi-command=" (search-input-file - %build-inputs "libexec/at-spi-bus-launcher"))) - + %build-inputs "libexec/at-spi-bus-launcher") + " --launch-immediately")) #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'customize-default-config-path + (lambda _ + (substitute* "src/Makefile.in" + ;; Have the default config directory sourced from + ;; /etc/lightdm/lightdm-gtk-greeter.conf, which is where the + ;; lightdm service writes it. + (("\\$\\(sysconfdir)/lightdm/lightdm-gtk-greeter.conf") + "/etc/lightdm/lightdm-gtk-greeter.conf")))) (add-after 'install 'fix-.desktop-file (lambda* (#:key outputs #:allow-other-keys) (substitute* (search-input-file @@ -366,34 +392,38 @@ display manager which supports different greeters.") (("Exec=lightdm-gtk-greeter") (string-append "Exec=" (search-input-file - outputs "sbin/lightdm-gtk-greeter")))))) - (add-after 'fix-.desktop-file 'wrap-program - ;; Mimic glib-or-gtk build system which doesn't wrap files in - ;; /sbin. - (lambda* (#:key outputs inputs #:allow-other-keys) - (let ((gtk #$(this-package-input "gtk+")) - (shared-mime-info #$(this-package-input "shared-mime-info")) - (glib #$(this-package-input "glib"))) - (wrap-program (search-input-file - outputs "sbin/lightdm-gtk-greeter") - `("XDG_DATA_DIRS" ":" prefix - ,(cons "/run/current-system/profile/share" - (map (lambda (pkg) - (string-append pkg "/share")) - (list gtk shared-mime-info glib)))) - `("GTK_PATH" ":" prefix (,gtk)) - `("GIO_EXTRA_MODULES" ":" prefix (,gtk)) - '("XCURSOR_PATH" ":" prefix - ("/run/current-system/profile/share/icons"))))))))) + outputs "bin/lightdm-gtk-greeter")))))) + (add-after 'glib-or-gtk-wrap 'custom-wrap + (lambda* (#:key outputs #:allow-other-keys) + (wrap-script (search-input-file + outputs "bin/lightdm-gtk-greeter") + ;; Wrap GDK_PIXBUF_MODULE_FILE, so that the SVG loader is + ;; available at all times even outside of profiles, such as + ;; when used in the lightdm-service-type. Otherwise, it + ;; wouldn't be able to display its own icons. + `("GDK_PIXBUF_MODULE_FILE" = + (,(search-input-file + outputs + "lib/gdk-pixbuf-2.0/2.10.0/loaders.cache"))) + `("XDG_DATA_DIRS" ":" prefix + (,(string-append "/run/current-system/profile/share:" + (getenv "XDG_DATA_DIRS")))) + '("XCURSOR_PATH" ":" prefix + ("/run/current-system/profile/share/icons")))))))) (native-inputs - (list exo intltool pkg-config xfce4-dev-tools)) + (list exo + intltool + pkg-config + xfce4-dev-tools)) (inputs - (list bash-minimal ;for wrap-program + (list at-spi2-core + bash-minimal ;for wrap-program + gtk+ + guile-3.0 + librsvg + libxklavier lightdm - shared-mime-info - at-spi2-core - glib - gtk+)) + shared-mime-info)) (synopsis "GTK+ greeter for LightDM") (home-page "https://github.com/xubuntu/lightdm-gtk-greeter") (description "This package provides a LightDM greeter implementation using diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index b9144f32bc..5e03155d2d 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -1359,3 +1359,54 @@ Django's filtering system in ORM).") models that use Django's standard @code{ImageField}, in addition to the image files already supported by it.") (license license:expat))) + +(define-public python-django-cleanup + (package + (name "python-django-cleanup") + (version "6.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/un1t/django-cleanup") + (commit (string-append version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0c1nghn1bnlq0a4d3sy3s363ksqsnxksixbimdy3cc6a0vk4sjps")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-tests-settings + (lambda* (#:key inputs #:allow-other-keys) + ;; django-cleanup optionally integrates with + ;; sorl-thumbnail, which is not available in Guix yet, so + ;; this patch comments it out to avoid import failures in + ;; test settings. + (substitute* "django_cleanup/testapp/settings.py" + (("'sorl\\.thumbnail',") "# 'sorl.thumbnail',")))) + (replace 'check + (lambda* (#:key tests? inputs outputs #:allow-other-keys) + (when tests? + (add-installed-pythonpath inputs outputs) + ;; Add CWD to PYTHONPATH so that the tests can find the + ;; testapp package in the source. + (setenv "PYTHONPATH" (getcwd)) + (invoke "pytest"))))))) + (native-inputs + (list ;; python-django-sorl-thumbnail ; TODO: Add to Guix. + python-easy-thumbnails + python-pillow + python-pytest + python-pytest-cov + python-pytest-django + python-pytest-xdist)) + (propagated-inputs + (list python-django)) + (home-page "https://github.com/un1t/django-cleanup") + (synopsis "Automatically deletes unused media files") + (description "This application automatically deletes user-uploaded +files when a model is modified or deleted. It works for FileField, +ImageField and their subclasses. Files set as default values for any +FileField are not deleted.") + (license license:expat))) diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm index c5666fb02e..980088a670 100644 --- a/gnu/packages/education.scm +++ b/gnu/packages/education.scm @@ -579,7 +579,7 @@ a pen-tablet display and a beamer.") (define-public fet (package (name "fet") - (version "6.5.3") + (version "6.5.7") (source (origin (method url-fetch) @@ -588,7 +588,7 @@ a pen-tablet display and a beamer.") (list (string-append directory base) (string-append directory "old/" base)))) (sha256 - (base32 "030njv53azzw6fn2d5mkxn7hyvyb45yss2y49wxb8bgj3ayv1rgp")))) + (base32 "08j5i3dlp290fz142ljn68j8ssi5f3kabs0dd75ig33kms30hjs7")))) (build-system gnu-build-system) (arguments (list diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 379c5fb22c..90ee485f1e 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -16,7 +16,7 @@ ;;; Copyright © 2016, 2019 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2016-2022 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com> -;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Arun Isaac <arunisaac@systemreboot.net> +;;; Copyright © 2016-2022 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net> ;;; Copyright © 2017, 2018, 2019, 2020, 2022 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017, 2018, 2019, 2020, 2021, 2022 Clément Lassieur <clement@lassieur.org> @@ -1993,6 +1993,41 @@ directly.") Distributed @acronym{Source Control Management, SCM} system.") (license license:gpl3+)))) +(define-public emacs-alarm-clock + (package + (name "emacs-alarm-clock") + (version "1.0.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/wlemuel/alarm-clock") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "11afq6lnlqdzbll015fx3031bslwfaz5362qgk2ipgqlk872559h")))) + (build-system emacs-build-system) + (arguments + (list #:include #~(cons "alarm.mp3" %default-include) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'configure + (lambda* (#:key inputs #:allow-other-keys) + (let ((mpg123 (search-input-file inputs "/bin/mpg123")) + (notify-send + (search-input-file inputs "/bin/notify-send"))) + (substitute* "alarm-clock.el" + (("\"mpg123\"") (string-append "\"" mpg123 "\"")) + (("notify-send") notify-send)))))))) + (inputs + (list libnotify mpg123)) + (propagated-inputs + (list emacs-f)) + (home-page "https://github.com/wlemuel/alarm-clock") + (synopsis "Alarm clock for Emacs") + (description "Alarm Clock provides an alarm clock for Emacs.") + (license license:gpl3+))) + (define-public emacs-anaphora (package (name "emacs-anaphora") @@ -2922,14 +2957,14 @@ as a library for other Emacs packages.") (define-public emacs-auctex (package (name "emacs-auctex") - (version "13.1.3") + (version "13.1.4") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "auctex-" version ".tar")) (sha256 - (base32 "0v9rxwz6ngnwrgvzgdki861s136gq30lqhy2gcd9q0a36gb6zhwk")))) + (base32 "1r9qysnfdbiblq3c95rgsh7vgy3k4qabnj0vicqhdkca0cl2b2bj")))) (build-system emacs-build-system) ;; We use 'emacs' because AUCTeX requires dbus at compile time ;; ('emacs-minimal' does not provide dbus). @@ -6611,14 +6646,14 @@ user.") (define-public emacs-subed (package (name "emacs-subed") - (version "1.0.3") + (version "1.0.7") (source (origin (method url-fetch) (uri (string-append "https://elpa.nongnu.org/nongnu/subed-" version ".tar")) (sha256 (base32 - "0wibakmp1lhfyr6sifb7f3jcqp2s5sy0z37ad9n1n9rhj5q8yhzg")))) + "0js48yar8xgj3wjmlkv3k5208q1zvv74sg4lhk6asiy4cq3pqjia")))) (arguments (list #:tests? #t @@ -9232,6 +9267,31 @@ replaced with the directory you choose.") and present results either as single emails or full trees.") (license license:gpl3+))) +(define-public emacs-consult-org-roam + (let* ((commit "9572c5bc194a583dc9e86ea7d2751959d86b5c78") + (revision "0")) + (package + (name "emacs-consult-org-roam") + (version (git-version "0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jgru/consult-org-roam") + (commit commit))) + (sha256 + (base32 + "0c2hjd2gw77h77487fzdqfybg0ricsvlnwwfxai9baawz37bcn7q")))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-consult emacs-org-roam)) + (home-page "https://github.com/jgru/consult-org-roam") + (synopsis "Consult integration for Org Roam") + (description + "This is a set of functions to use Org Roam with Consult. This +packages replaces Org Roam's own completing read functions with equivalent +versions utilizing Consult's internal API.") + (license license:gpl3+)))) + (define-public emacs-consult-eglot (package (name "emacs-consult-eglot") @@ -10272,8 +10332,8 @@ state and will work even without lispy being enabled.") (define-public emacs-lpy ;; There is no proper release/tag. - (let ((commit "076ce9acb68f6ac1b39127b634a91ffd865d13d8") - (revision "4")) + (let ((commit "ce78a4613458790cc785c1687af7eed8f0d8d66c") + (revision "5")) (package (name "emacs-lpy") (version (git-version "0.1.0" revision commit)) @@ -10285,7 +10345,7 @@ state and will work even without lispy being enabled.") (commit commit))) (sha256 (base32 - "10sab50wmr3zn7jgzx93201ymhmacqacn3m2qllsqkfw2gpsi6dn")) + "1vxrjy6k030hcbclblgcaaw7h6k17kl3n9zla08527525c0gma01")) (file-name (git-file-name name version)))) (propagated-inputs (list emacs-zoutline emacs-lispy)) @@ -12148,7 +12208,7 @@ target will call @code{compile} on it.") (define-public emacs-cider (package (name "emacs-cider") - (version "1.4.1") + (version "1.5.0") (source (origin (method git-fetch) @@ -12157,11 +12217,19 @@ target will call @code{compile} on it.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "08635ln514nrglx6qyhaq1x7y7lw4mcd659ba8zs071yjiariarm")))) + (base32 "1ih902n8p3pl1apprprkyrlnrp2dxli86y5k09zahy9mglfz2z5n")))) (build-system emacs-build-system) (arguments '(#:exclude ;don't exclude 'cider-test.el' - '("^\\.dir-locals\\.el$" "^test/"))) + '("^\\.dir-locals\\.el$" "^test/") + #:phases + ;; XXX: file "test/cider-tests.el" contains a bogus "/bin/command" + ;; string, and `patch-el-files' phase chokes on it (even though the + ;; file is excluded from installation). Remove the phase altogether + ;; since there is no "/bin/executable" to replace in the code base + ;; anyway. + (modify-phases %standard-phases + (delete 'patch-el-files)))) (propagated-inputs (list emacs-clojure-mode emacs-parseedn @@ -13224,7 +13292,7 @@ programming and reproducible research.") (define-public emacs-org-contrib (package (name "emacs-org-contrib") - (version "0.3") + (version "0.4") (source (origin (method git-fetch) @@ -13233,16 +13301,7 @@ programming and reproducible research.") (commit (string-append "release_" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "17aca4mc3gbdh6nhlcaa5ymh1yy76nwysrvy9sfcqkzvd5lgagzc")) - ;; XXX: ob-sclang.el is packaged separately to avoid the dependency on - ;; SuperCollider and qtwebengine-5. This will be unnecessary in 0.4+ - ;; release as the file is going to be removed from the repository. - - ;; XXX: org-contacts.el is now maintained in a separate repository and - ;; will soon be removed from org-contrib - (modules '((guix build utils))) - (snippet '(begin (delete-file "lisp/ob-sclang.el") - (delete-file "lisp/org-contacts.el"))))) + (base32 "06b1rpywj596nnnap6pj6fnmcq8fcc4i30zv7qsvs3ryxciw01fb")))) (build-system emacs-build-system) (arguments `(#:phases @@ -13253,8 +13312,7 @@ programming and reproducible research.") (native-inputs (list emacs-cider)) (propagated-inputs - (list emacs-arduino-mode ;XXX: remove after 0.4+ release. - emacs-org)) + (list emacs-org)) (home-page "https://git.sr.ht/~bzg/org-contrib") (synopsis "Unmaintained add-ons for Org mode") (description @@ -13858,6 +13916,27 @@ files in Emacs. Files of this type (e.g., @file{BUILD.gn} or @file{*.gni}) are common in Chromium-derived projects.") (license license:bsd-3))) +(define-public emacs-drag-stuff + (package + (name "emacs-drag-stuff") + (version "0.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rejeep/drag-stuff") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1jrr59iazih3imkl9ja1lbni9v3xv6b8gmqs015g2mxhlql35jka")))) + (build-system emacs-build-system) + (home-page "https://github.com/rejeep/drag-stuff") + (synopsis "Drag stuff around in Emacs") + (description +"Drag Stuff is a minor mode for Emacs that makes it possible to drag +stuff (words, region, lines) around in Emacs.") + (license license:gpl3+))) + (define-public emacs-bazel ;; From 2021-11-21. ;; No releases available. @@ -16844,7 +16923,7 @@ groups.") (define-public emacs-taxy-magit-section (package (name "emacs-taxy-magit-section") - (version "0.9.1") + (version "0.10") (source (origin (method url-fetch) (uri (string-append @@ -16852,7 +16931,7 @@ groups.") ".tar")) (sha256 (base32 - "0ybkz5nqjdrg2z9bfd07xg4k49hrl26vsrwz2vqpfbsqqg5vr4pr")))) + "1g58nvpb04ldhn5qnjw2q5idrv6vhlfa0qmb46cvis6bkz46cxkw")))) (build-system emacs-build-system) (propagated-inputs (list emacs-magit emacs-taxy)) (home-page "https://github.com/alphapapa/taxy.el") @@ -19757,8 +19836,8 @@ never confused by comments or @code{foo-bar} matching @code{foo}.") (define-public emacs-crdt ;; XXX: Upstream does not always tag new releases. The commit below ;; corresponds exactly to latest version bump. - (let ((commit "2feb88ea9a2589946014878790af585cad9f28fc") - (version "0.3.2")) + (let ((commit "480f60fdda9e40848920fa460b59dfba23fa06e5") + (version "0.3.3")) (package (name "emacs-crdt") (version version) @@ -19770,7 +19849,7 @@ never confused by comments or @code{foo-bar} matching @code{foo}.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "1fc98kl5qm7h5hrd70g61zzbdinnbf0zvk9rghf6w78ndp6lv7fz")))) + (base32 "10hb2xwv8ylkm4cla2q5l11r1m1s1j4ywiwvy9x5884gxvbpbbph")))) (build-system emacs-build-system) (home-page "https://code.librehq.com/qhong/crdt.el") (synopsis "Real-time collaborative editing environment") @@ -24370,37 +24449,27 @@ other frame parameters.") (license license:gpl3+))) (define-public emacs-arduino-mode - (let ((commit "23ae47c9f28f559e70b790b471f20310e163a39b") - (revision "1")) ;no release yet + (let ((commit "652c6a328fa8f2db06534d5f231c6b6933be3edc") + (revision "0")) (package (name "emacs-arduino-mode") - (version (git-version "0" revision commit)) + (version (git-version "1.3.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/stardiviner/arduino-mode") + (url "https://repo.or.cz/arduino-mode") (commit commit))) (sha256 - (base32 "08vnbz9gpah1l93fzfd87aawrhcnh2v1kyfxgsn88pdwg8awz8rx")) + (base32 "16izwrk1dfsa14kylfhsxdwkx76g0jdk0znl1z7cypxh5q9ijy1x")) (file-name (git-file-name name version)))) (build-system emacs-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - ;; Emacs complains that "defmethod" and "defgeneric" are obsolete - ;; macros when compiling. Substitute them with the recommended - ;; macros "cl-defmethod" and "cl-defgeneric", respectively. - (add-after 'unpack 'fix-obsolete - (lambda _ - (substitute* "ede-arduino.el" - (("defmethod") "cl-defmethod") - (("defgeneric") "cl-defgeneric"))))))) (inputs (list emacs-flycheck emacs-spinner)) (synopsis "Emacs major mode for editing Arduino sketches") - (description "Emacs major mode for editing Arduino sketches.") - (home-page "https://github.com/stardiviner/arduino-mode") + (description "This package provides an Emacs major mode for editing +Arduino sketches and Org Babel support.") + (home-page "https://repo.or.cz/arduino-mode") (license license:gpl3+)))) (define-public emacs-annalist @@ -30311,6 +30380,28 @@ conversion program}, a Japanese input method on Emacs.") conversion program}, a Japanese input method on Emacs. This package adds support for the Nicola keyboard layout to it."))) +(define-public emacs-tamil99 + (package + (name "emacs-tamil99") + (version "0.1.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.systemreboot.net/tamil99/") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0f9s3b6fd42j21922qkxfr3j83a7qym73nynph86w87vkis40zqw")))) + (build-system emacs-build-system) + (home-page "https://git.systemreboot.net/tamil99/about/") + (synopsis "Tamil99 input method for Emacs") + (description "This package implements the @code{tamil99} input method for +Emacs. Tamil99 is a keyboard layout and input method that is specifically +designed for the Tamil language. Vowels and vowel modifiers are input with +your left hand, and consonants are input with your right hand.") + (license license:gpl3+))) + (define-public emacs-objed (package (name "emacs-objed") @@ -31020,7 +31111,7 @@ web development.") (define-public emacs-iter2 (package (name "emacs-iter2") - (version "1.2") + (version "1.3") (source (origin (method git-fetch) @@ -31029,7 +31120,7 @@ web development.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1jzd9kzxf3ncw40d55r1apw0cpk4i1a3s5p85mg9n20553cb6lhj")))) + (base32 "1hsg5q1acghb0xz2pv5g20zg5j32wikp47b62if8afq767rkc5f3")))) (build-system emacs-build-system) (home-page "https://github.com/doublep/iter2") (synopsis "Reimplementation of Elisp generators") diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 22e27be8e8..d6da781d76 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -1076,8 +1076,11 @@ fullscreen) or other display servers.") (build-system meson-build-system) (inputs (list wayland)) - (native-inputs - (list pkg-config python)) + (native-inputs (cons* pkg-config python + (if (%current-target-system) + (list pkg-config-for-build + wayland) ; for wayland-scanner + '()))) (synopsis "Wayland protocols") (description "Wayland-Protocols contains Wayland protocols that add functionality not available in the Wayland core protocol. Such protocols either @@ -1437,7 +1440,7 @@ message bus.") (define-public accountsservice (package (name "accountsservice") - (version "0.6.55") + (version "22.08.8") (source (origin (method url-fetch) @@ -1445,45 +1448,75 @@ message bus.") "accountsservice/accountsservice-" version ".tar.xz")) (sha256 - (base32 "16wwd633jak9ajyr1f1h047rmd09fhf3kzjz6g5xjsz0lwcj8azz")))) + (base32 "14d3lwik048h62qrzg1djdd2sqmxf3m1r859730pvzhrd6krg6ch")) + (patches (search-patches "accountsservice-extensions.patch")))) (build-system meson-build-system) (arguments - `(#:tests? #f ; XXX: tests require DocBook 4.1.2 - #:configure-flags + `(#:configure-flags '("--localstatedir=/var" - "-Dsystemdsystemunitdir=/tmp/empty" - "-Dsystemd=false" - "-Delogind=true") + "-Delogind=true" + "-Ddocbook=true" + "-Dgtk_doc=true" + "-Dsystemdsystemunitdir=/tmp/empty") #:phases (modify-phases %standard-phases - (add-after 'unpack 'patch-/bin/cat - (lambda _ - (substitute* "src/user.c" - (("/bin/cat") (which "cat"))))) - (add-before - 'configure 'pre-configure - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "meson_post_install.py" - (("in dst_dirs") "in []")) - (let ((shadow (assoc-ref inputs "shadow"))) - (substitute* '("src/user.c" "src/daemon.c") - (("/usr/sbin/usermod") - (string-append shadow "/sbin/usermod")) - (("/usr/sbin/useradd") - (string-append shadow "/sbin/useradd")) - (("/usr/sbin/userdel") - (string-append shadow "/sbin/userdel")) - (("/usr/bin/passwd") - (string-append shadow "/bin/passwd")) - (("/usr/bin/chage") - (string-append shadow "/bin/chage"))))))))) + (add-after 'unpack 'patch-docbook-references + ;; Having XML_CATALOG_FILES set is not enough; xmlto does not seem + ;; to honor it. + (lambda* (#:key inputs #:allow-other-keys) + (substitute* (find-files "." "\\.xml(\\.in)?$") + (("http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd") + (search-input-file inputs "share/xml/dbus-1/introspect.dtd")) + (("http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd") + (search-input-file inputs "xml/dtd/docbook/docbookx.dtd"))))) + (add-after 'unpack 'patch-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "meson_post_install.py" + (("in dst_dirs") "in []")) + (substitute* '("src/user.c" "src/daemon.c") + (("/bin/cat") + (search-input-file inputs "bin/cat")) + (("/usr/sbin/usermod") + (search-input-file inputs "sbin/usermod")) + (("/usr/sbin/useradd") + (search-input-file inputs "sbin/useradd")) + (("/usr/sbin/userdel") + (search-input-file inputs "sbin/userdel")) + (("/usr/bin/passwd") + (search-input-file inputs "bin/passwd")) + (("/usr/bin/chage") + (search-input-file inputs "bin/chage"))))) + (add-after 'install 'wrap-with-xdg-data-dirs + ;; This is to allow accountsservice finding extensions, which + ;; should be installed to the system profile. + (lambda* (#:key outputs #:allow-other-keys) + (wrap-program (search-input-file outputs "libexec/accounts-daemon") + '("XDG_DATA_DIRS" prefix + ("/run/current-system/profile/share")))))))) (native-inputs - `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc. - ("gobject-introspection" ,gobject-introspection) - ("intltool" ,intltool) - ("pkg-config" ,pkg-config))) + (list docbook-xml-4.1.2 + docbook-xsl + gettext-minimal + `(,glib "bin") ; for gdbus-codegen, etc. + gobject-introspection + gtk-doc + libxml2 ;for XML_CATALOG_FILES + libxslt + pkg-config + vala + xmlto + + ;; For the tests. + python + python-dbusmock + python-pygobject)) (inputs - (list dbus elogind polkit shadow)) + (list coreutils-minimal + dbus + elogind + shadow)) + (propagated-inputs + (list polkit)) ; listed in Requires.private (home-page "https://www.freedesktop.org/wiki/Software/AccountsService/") (synopsis "D-Bus interface for user account query and manipulation") (description diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 661e1c0e07..b3a54798d4 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -63,6 +63,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages boost) + #:use-module (gnu packages build-tools) #:use-module (gnu packages compression) #:use-module (gnu packages check) #:use-module (gnu packages curl) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index aa2e4e04b0..2b540ee59b 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -7622,148 +7622,6 @@ entirely config file, savegame, netplay and demo compatible with the original.") (home-page "https://www.chocolate-doom.org/wiki/index.php/Crispy_Doom"))) -(define shlomif-cmake-modules - (origin - (method url-fetch) - (uri (string-append - "https://raw.githubusercontent.com/shlomif/shlomif-cmake-modules/" - "89f05caf86078f783873975525230cf4fecede8a" - "/shlomif-cmake-modules/Shlomif_Common.cmake")) - (sha256 - (base32 "05xdikw5ln0yh8p5chsmd8qnndmxg5b5vjlfpdqrjcb1ncqzywkc")))) - -(define-public rinutils - (package - (name "rinutils") - (version "0.10.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/shlomif/rinutils") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0r90kncf6mvyklifpdsnm50iya7w2951nz35nlgndmqnr82gvdwf")))) - (build-system cmake-build-system) - (arguments - (list #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'copy-cmake-modules - (lambda _ - (copy-file #$shlomif-cmake-modules - (string-append "cmake/" - (strip-store-file-name - #$shlomif-cmake-modules))))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (with-directory-excursion "../source" - (setenv "FCS_TEST_BUILD" "1") - (setenv "RINUTILS_TEST_BUILD" "1") - ;; TODO: Run tests after setting RINUTILS_TEST_TIDY to `1', - ;; which requires tidy-all. - ;; (setenv "RINUTILS_TEST_TIDY" "1") - (invoke "perl" - "CI-testing/continuous-integration-testing.pl")))))))) - (native-inputs - (list perl - ;; The following are needed only for tests. - perl-class-xsaccessor - perl-file-find-object - perl-io-all - perl-test-differences - perl-test-runvalgrind - pkg-config)) - (inputs - (list cmocka - perl-env-path - perl-inline - perl-inline-c - perl-string-shellquote - perl-test-trailingspace - perl-file-find-object-rule - perl-text-glob - perl-number-compare - perl-moo)) - (home-page "https://www.shlomifish.org/open-source/projects/") - (synopsis "C11 / gnu11 utilities C library") - (description "This package provides C11 / gnu11 utilities C library") - (license license:expat))) - -(define-public fortune-mod - (package - (name "fortune-mod") - (version "3.14.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/shlomif/fortune-mod") - (commit (string-append "fortune-mod-" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1f2zif3s6vddbhph4jr1cymdsn7gagg59grrxs0yap6myqmy8shg")))) - (build-system cmake-build-system) - (arguments - (list #:configure-flags - #~(let ((fortunes (string-append #$output "/share/fortunes"))) - (list (string-append "-DLOCALDIR=" fortunes) - (string-append "-DLOCALODIR=" fortunes "/off") - (string-append "-DCOOKIEDIR=" fortunes) - (string-append "-DOCOOKIEDIR=" fortunes "/off"))) - #:test-target "check" - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'enter-build-directory - (lambda _ - (chdir "fortune-mod"))) - (add-after 'enter-build-directory 'symlink-rinutils - (lambda _ - (mkdir-p "rinutils") - (symlink #$(this-package-native-input "rinutils") - "rinutils/rinutils"))) - (add-after 'enter-build-directory 'copy-cmake-modules - (lambda _ - (copy-file #$shlomif-cmake-modules - (string-append "cmake/" - (strip-store-file-name - #$shlomif-cmake-modules))))) - (add-after 'enter-build-directory 'delete-failing-test - (lambda _ - ;; TODO: Valgrind tests fail for some reason. Similar issue? - ;; https://github.com/shlomif/fortune-mod/issues/21 - (delete-file "tests/data/valgrind.t") - (with-output-to-file "tests/scripts/split-valgrind.pl" - (const #t)))) - (add-after 'install 'fix-install-directory - ;; Move fortune from "games/" to "bin/" and remove the - ;; former. This is easier than patching CMakeLists.txt - ;; since the tests hard-code the location as well. - (lambda _ - (with-directory-excursion #$output - (rename-file "games/fortune" "bin/fortune") - (rmdir "games"))))))) - (inputs (list recode)) - (native-inputs - (list perl - ;; For generating the documentation. - docbook-xml-5 - docbook-xsl - perl-app-xml-docbook-builder - ;; The following are only needed for tests. - perl-file-find-object - perl-test-differences - perl-class-xsaccessor - perl-io-all - perl-test-runvalgrind - rinutils)) - (home-page "https://www.shlomifish.org/open-source/projects/fortune-mod/") - (synopsis "The Fortune Cookie program from BSD games") - (description "Fortune is a command-line utility which displays a random -quotation from a collection of quotes.") - (license license:bsd-4))) - (define xonotic-data (package (name "xonotic-data") diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index 66c97d3d6a..83bb4d9cb0 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -253,7 +253,7 @@ topology functions.") (define-public gnome-maps (package (name "gnome-maps") - (version "41.2") + (version "42.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -261,7 +261,7 @@ topology functions.") name "-" version ".tar.xz")) (sha256 (base32 - "037xmkmcmcw87vb1c1s3y225m8757k331cvk1m8cshf6mx61p0l1")))) + "1cb9s2zz1zib3f33c035lmgshpl679isbzdd3alrx4yclw61nvay")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t @@ -318,7 +318,7 @@ topology functions.") ("libhandy" ,libhandy) ("libsecret" ,libsecret) ("libsoup" ,libsoup-minimal-2) - ("libgweather" ,libgweather) + ("libgweather" ,libgweather4) ("libxml2" ,libxml2) ("librsvg" ,librsvg) ("glib-networking" ,glib-networking) diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm index a2a991ba4c..8de98b7eba 100644 --- a/gnu/packages/gimp.scm +++ b/gnu/packages/gimp.scm @@ -175,7 +175,7 @@ of a larger interface.") (define-public babl (package (name "babl") - (version "0.1.92") + (version "0.1.96") (source (origin (method url-fetch) (uri (list (string-append "https://download.gimp.org/pub/babl/" @@ -189,7 +189,7 @@ of a larger interface.") "/babl-" version ".tar.xz"))) (sha256 (base32 - "1hd2i1s7fng33msxiafavk3zb4zb9jk61w8qmmsn6jwl51876rzn")))) + "1xj5hlmm834lb84rpjlfxbqnm5piswgzhjas4h8z90x9b7j3yrrk")))) (build-system meson-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index f142649018..6f6b893e68 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -5445,27 +5445,24 @@ service via the system message bus.") "1rkf4yv43qcahyx7bismdv6z2vh5azdnm1fqfmnzrada9cm8ykna")))) (build-system meson-build-system) (arguments - `(#:tests? #f ; one of two tests requires network access - #:configure-flags - `(,(string-append "-Dzoneinfo_dir=" - (assoc-ref %build-inputs "tzdata") - "/share/zoneinfo")))) + (list + #:tests? #f ;one of two tests requires network access + #:configure-flags + #~(list (string-append "-Dzoneinfo_dir=" + (search-input-directory %build-inputs + "share/zoneinfo"))))) (native-inputs - `(("glib:bin" ,glib "bin") ; for glib-mkenums - ("gobject-introspection" ,gobject-introspection) - ("pkg-config" ,pkg-config) - ("python" ,python) - ("vala" ,vala) - ("intltool" ,intltool) - ("python-pygobject" ,python-pygobject))) + (list gettext-minimal + `(,glib "bin") ;for glib-mkenums + gobject-introspection + pkg-config + python + vala + python-pygobject)) (propagated-inputs ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and ;; libsoup. - `(("gtk+" ,gtk+) - ("gdk-pixbuf" ,gdk-pixbuf) - ("libxml2" ,libxml2) - ("libsoup" ,libsoup-minimal-2) - ("geocode-glib" ,geocode-glib))) + (list gtk+ gdk-pixbuf libxml2 libsoup-minimal-2 geocode-glib)) (inputs (list tzdata)) (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather") @@ -5475,6 +5472,55 @@ service via the system message bus.") services for numerous locations.") (license license:gpl2+))) +;; libgweather no longer follows the GNOME version, and recommends changing +;; the package name in distributions to avoid accidental downgrades. See +;; <https://discourse.gnome.org/t/changes-in-libgweather-for-gnome-42/7770/2>. +;; TODO: how to prevent the updater from picking version 40? +(define-public libgweather4 + (package + (inherit libgweather) + (name "libgweather4") + (version "4.0.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/libgweather/" + (version-major+minor version) "/" + "libgweather-" version ".tar.xz")) + (sha256 + (base32 + "0k43mr7vmcg14lkwjk6p9wwy3zlw23wkfpkfcy6b8wkg3f0483a4")))) + (arguments + (list + ;; FIXME: multiple tests fails as such: + ;; "GLib-GIO-FATAL-ERROR: Settings schema 'org.gnome.system.proxy' + ;; is not installed" + #:tests? #f + #:configure-flags + #~(list (string-append "-Dzoneinfo_dir=" + (search-input-directory %build-inputs + "share/zoneinfo")) + ;; TODO: Requires 'gi-docgen'. + "-Dgtk_doc=false") + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + (setenv "HOME" "/tmp")))))) + (native-inputs + (list gettext-minimal + `(,glib "bin") ;for glib-mkenums + gobject-introspection + pkg-config + python + vala + python-pygobject)) + ;; TODO: It would be good to make the package respect TZDIR instead + ;; of using a "hard coded" version of tzdata. + (inputs (list tzdata)) + (propagated-inputs + ;; gweather4.pc refers to all of these. + (list glib libxml2 libsoup-minimal-2 geocode-glib)))) + (define-public gnome-settings-daemon (package (name "gnome-settings-daemon") @@ -8575,6 +8621,7 @@ properties, screen resolution, and other GNOME parameters.") (uri (string-append "mirror://gnome/sources/" name "/" (version-major version) "/" name "-" version ".tar.xz")) + (patches (search-patches "gnome-shell-polkit-autocleanup.patch")) (sha256 (base32 "0ragmcln210zvzhc2br33yprbkj9drjzd7inp5sdxra0a7l73yaj")))) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 349cd58bcb..21bdee57aa 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -295,7 +295,7 @@ compatible to GNU Pth.") (version "2.2.36") (source (origin (method url-fetch) - (uri (string-append "ftp://ftp.gnupg.org/gcrypt/gnupg/gnupg-" version + (uri (string-append "mirror://gnupg/gnupg/gnupg-" version ".tar.bz2")) (patches (search-patches "gnupg-default-pinentry.patch")) (sha256 diff --git a/gnu/packages/gps.scm b/gnu/packages/gps.scm index e528807de7..91e0ee12ac 100644 --- a/gnu/packages/gps.scm +++ b/gnu/packages/gps.scm @@ -34,6 +34,7 @@ #:use-module (gnu packages) #:use-module (gnu packages algebra) #:use-module (gnu packages base) + #:use-module (gnu packages build-tools) #:use-module (gnu packages compression) #:use-module (gnu packages docbook) #:use-module (gnu packages glib) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index a09e20b174..e247f9c933 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -2155,6 +2155,109 @@ Features include: ") (license license:gpl3+))) +(define-public mmg + (package + (name "mmg") + (version "5.6.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/MmgTools/mmg") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "173biz5skbwg27i5w6layg7mydjzv3rmi1ywhra4rx9rjf5c0cc5")))) + (build-system cmake-build-system) + (outputs '("out" "lib" "doc")) + (arguments + (list #:configure-flags + #~(list (string-append "-DCMAKE_INSTALL_PREFIX=" #$output:lib) + (string-append "-DCMAKE_INSTALL_RPATH=" #$output:lib "/lib") + ;; The build doesn't honor -DCMAKE_INSTALL_BINDIR, hence + ;; the adjust-bindir phase. + ;;(string-append "-DCMAKE_INSTALL_BINDIR=" #$output "/bin") + "-DBUILD_SHARED_LIBS=ON" + "-DBUILD_TESTING=ON" + ;; The longer tests are for continuous integration and + ;; depend on input data which must be downloaded. + "-DONLY_VERY_SHORT_TESTS=ON" + ;; TODO: Add Elas (from + ;; https://github.com/ISCDtoolbox/LinearElasticity). + "-DUSE_ELAS=OFF" + ;; TODO: Figure out how to add VTK to inputs without + ;; causing linking errors in ASLI of the form: + ;; + ;; ld: /gnu/store/…-vtk-9.0.1/lib/libvtkWrappingPythonCore-9.0.so.1: + ;; undefined reference to `PyUnicode_InternFromString' + ;; + ;; Also, adding VTK to inputs requires adding these as well: + ;; + ;; double-conversion eigen expat freetype gl2ps glew hdf5 + ;; jsoncpp libjpeg-turbo libpng libtheora libtiff libx11 + ;; libxml2 lz4 netcdf proj python sqlite zlib + "-DUSE_VTK=OFF") + #:phases + #~(modify-phases %standard-phases + (add-after 'build 'build-doc + (lambda _ + ;; Fontconfig wants to write to a cache directory. + (setenv "HOME" "/tmp") + (invoke "make" "doc"))) + (add-after 'install 'install-doc + (lambda _ + (copy-recursively + "../source/doc/man" (string-append #$output + "/share/man/man1")) + (copy-recursively + "doc" (string-append #$output:doc "/share/doc/" + #$name "-" #$version)))) + (add-after 'install 'adjust-bindir + (lambda _ + (let ((src (string-append #$output:lib "/bin")) + (dst (string-append #$output "/bin"))) + (copy-recursively src dst) + (delete-file-recursively src)))) + ;; Suffixing program names with build information, i.e., + ;; optimization flags and whether debug symbols were generated, + ;; is unusual and fragilizes scripts calling these programs. + (add-after 'adjust-bindir 'fix-program-names + (lambda _ + (with-directory-excursion (string-append #$output "/bin") + (rename-file "mmg2d_O3d" "mmg2d") + (rename-file "mmg3d_O3d" "mmg3d") + (rename-file "mmgs_O3d" "mmgs"))))))) + (native-inputs + ;; For the documentation + (list doxygen graphviz + ;; TODO: Fix failing LaTeX invocation (which results in equations + ;; being inserted literally into PNGs rather than being typeset). + ;;texlive-tiny + )) + (inputs + (list scotch)) + (home-page "http://www.mmgtools.org/") + (synopsis "Surface and volume remeshers") + (description "Mmg is a collection of applications and libraries for +bidimensional and tridimensional surface and volume remeshing. It consists +of: + +@itemize +@item the @code{mmg2d} application and library: mesh generation from a set of +edges, adaptation and optimization of a bidimensional triangulation and +isovalue discretization; + +@item the @code{mmgs} application and library: adaptation and optimization of +a surface triangulation and isovalue discretization; + +@item the @code{mmg3d} application and library: adaptation and optimization of +a tetrahedral mesh, isovalue discretization and Lagrangian movement; + +@item the @code{mmg} library gathering the @code{mmg2d}, @code{mmgs} and +@code{mmg3d} libraries. +@end itemize") + (license license:lgpl3+))) + (define-public f3d ;; There have been many improvements since the last tagged version (1.2.1, ;; released in December 2021), including support for the Alembic file diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 7608327e51..4e9c39ea67 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -69,7 +69,6 @@ #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages boost) - #:use-module (gnu packages build-tools) #:use-module (gnu packages texinfo) #:use-module (gnu packages check) #:use-module (gnu packages compression) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index 0ce47e0902..039f4871f2 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -12000,9 +12000,6 @@ in the @code{IO} monad, like @code{IORef}s or parts of the OpenGL state.") (base32 "0j9awbg47fzb58k5z2wgkp6a0042j7hqrl1g6lyflrbsfswdp5n4")))) (build-system haskell-build-system) - (arguments - '(;; Two tests fail: "Discrete CDF is OK" and "Quantile is CDF inverse". - #:tests? #t)) (inputs (list ghc-aeson ghc-async diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm index 3dfe086af8..0225f72651 100644 --- a/gnu/packages/image-processing.scm +++ b/gnu/packages/image-processing.scm @@ -20,6 +20,7 @@ ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru> ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2022 Tomasz Jeneralczyk <tj@schwi.pl> ;;; ;;; This file is part of GNU Guix. ;;; @@ -511,6 +512,9 @@ integrates with various databases on GUI toolkits such as Qt and Tk.") ;; DISPATCH is the list of optional dispatches. "-DCPU_BASELINE=SSE2" + ;; Build Python bindings. + "-DBUILD_opencv_python3=ON" + ,@(match (%current-system) ("x86_64-linux" '("-DCPU_DISPATCH=NEON;VFPV3;FP16;SSE;SSE2;SSE3;SSSE3;SSE4_1;SSE4_2;POPCNT;AVX;FP16;AVX2;FMA3;AVX_512F;AVX512_SKX" diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm index 52c9584f67..23175472ef 100644 --- a/gnu/packages/image-viewers.scm +++ b/gnu/packages/image-viewers.scm @@ -25,6 +25,7 @@ ;;; Copyright © 2021 dissent <disseminatedissent@protonmail.com> ;;; Copyright © 2022 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2022 Tomasz Jeneralczyk <tj@schwi.pl> ;;; ;;; This file is part of GNU Guix. ;;; @@ -55,6 +56,7 @@ #:use-module (guix build-system qt) #:use-module (gnu packages autotools) #:use-module (gnu packages algebra) + #:use-module (gnu packages animation) #:use-module (gnu packages backup) #:use-module (gnu packages base) #:use-module (gnu packages bash) @@ -85,14 +87,20 @@ #:use-module (gnu packages photo) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-check) + #:use-module (gnu packages python-compression) + #:use-module (gnu packages python-crypto) + #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) #:use-module (gnu packages suckless) #:use-module (gnu packages terminals) + #:use-module (gnu packages upnp) #:use-module (gnu packages version-control) #:use-module (gnu packages video) #:use-module (gnu packages web) #:use-module (gnu packages xdisorg) + #:use-module (gnu packages xml) #:use-module (gnu packages xorg) #:use-module (gnu packages)) @@ -973,3 +981,131 @@ synchronization of multiple instances.") (description "xzgv is a fast image viewer that provides extensive keyboard support.") (license license:gpl2+))) + +(define-public hydrus-network + (package + (name "hydrus-network") + (version "495") ;upstream has a weekly release cycle + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hydrusnetwork/hydrus") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "03zhrcmjzbk37sl9nwjahfmr8aflss84c4xhg5ci5b8jvbbqmr1j")) + (modules '((guix build utils))) + (snippet + ;; Remove pre-built binaries from bin/. + #~(for-each delete-file (find-files "bin" "^swfrender"))))) + (build-system python-build-system) + (arguments + (list + #:phases + #~(let ((static-dir "/share/hydrus/static")) + (modify-phases %standard-phases + ;; Hydrus is a python program but does not uses setup.py or any + ;; other build system to build itself - it's delivered ready to + ;; run from the source. + (replace 'check + (lambda _ + (setenv "DISPLAY" ":0") + (setenv "XDG_CACHE_HOME" (getcwd)) + (setenv "HOME" (getcwd)) + (invoke "xvfb-run" "python" "test.py"))) + ;; XXX: program help files are not built. Updating + ;; python-pymdown-extensions to its latest version might be the + ;; solution, but this would require also packaging its new build + ;; system that is not present in guix yet. + (delete 'build) + (add-before 'install 'patch-variables + (lambda* (#:key outputs inputs #:allow-other-keys) + (let ((ffmpeg (search-input-file inputs "/bin/ffmpeg")) + (swfrender (search-input-file inputs "/bin/swfrender")) + (upnpc (search-input-file inputs "/bin/upnpc")) + (out (assoc-ref outputs "out"))) + (with-directory-excursion "hydrus" + ;; Without this the program would incorrectly assume + ;; that it uses user's ffmpeg binary when it isn't. + (substitute* "client/ClientController.py" + (("if (HydrusVideoHandling\\.FFMPEG_PATH).*" _ var) + (string-append "if " var " == \"" ffmpeg "\":\n"))) + (with-directory-excursion "core" + (substitute* "HydrusConstants.py" + (("STATIC_DIR = .*") + (string-append "STATIC_DIR = \"" out static-dir "\"\n"))) + (substitute* "HydrusFlashHandling.py" + (("SWFRENDER_PATH = .*\n") + (string-append "SWFRENDER_PATH = \"" swfrender "\"\n"))) + (substitute* "HydrusVideoHandling.py" + (("FFMPEG_PATH = .*\n") + (string-append "FFMPEG_PATH = \"" ffmpeg "\"\n"))) + (substitute* "networking/HydrusNATPunch.py" + (("UPNPC_PATH = .*\n") + (string-append "UPNPC_PATH = \"" upnpc "\"\n")))))))) + ;; Since everything lives in hydrus's root directory, it needs to + ;; be spread out to comply with guix's expectations. + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (client (string-append out "/bin/hydrus")) + (server (string-append out "/bin/hydrus-server"))) + (copy-recursively "static" + (string-append out static-dir)) + (copy-recursively "hydrus" + (string-append out + "/lib/python" + (python-version + #$(this-package-input "python")) + "/site-packages/hydrus")) + (mkdir (string-append out "/bin")) + (copy-file "client.py" client) + (chmod client #o0555) + (copy-file "server.py" server) + (chmod server #o0555)))))))) + ;; All native-inputs are only needed for the the check phase + (native-inputs + (list xvfb-run + python-nose + python-mock + python-httmock)) + ;; All python packages were taken from static/build_files/linux/requirements.txt + (propagated-inputs + (list python-beautifulsoup4 + python-cbor2 + python-chardet + python-cloudscraper + python-html5lib + python-lxml + python-lz4 + python-numpy + opencv ; its python bindings are a drop-in replacement for opencv-python-headless + python-pillow + python-psutil + python-pylzma + python-pyopenssl + ;; Since hydrus' version 494 it supports python-pyside-6 but it's not yet + ;; in guix. pyside-2 is still supported as a fallback. + python-pyside-2 + python-pysocks + python-mpv + python-pyyaml + python-qtpy + python-requests + python-send2trash + python-service-identity + python-six + python-twisted)) + (inputs + (list swftools ffmpeg miniupnpc python)) + (synopsis "Organize your media with tags like a dektop booru") + (description + "The hydrus network client is an application written for +internet-fluent media nerds who have large image/swf/webm collections. +It browses with tags instead of folders, a little like a booru on your desktop. +Advanced users can share tags and files anonymously through custom servers that +any user may run. Everything is free and privacy is the first concern.") + (home-page "https://hydrusnetwork.github.io/hydrus/") + (license license:wtfpl2))) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 60b710b53b..1b41482420 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -58,6 +58,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages boost) + #:use-module (gnu packages build-tools) #:use-module (gnu packages check) #:use-module (gnu packages cmake) #:use-module (gnu packages cpp) @@ -964,7 +965,7 @@ Metafile}, and @acronym{EMF+, Enhanced Metafile Plus} files.") (define-public imlib2 (package (name "imlib2") - (version "1.9.0") + (version "1.9.1") (source (origin (method url-fetch) (uri (string-append @@ -972,7 +973,7 @@ Metafile}, and @acronym{EMF+, Enhanced Metafile Plus} files.") "/imlib2-" version ".tar.xz")) (sha256 (base32 - "0l662h74i3mzl5ligj1352rf8bf48drasj97wygr2037gk5fijas")))) + "0hsdfs7wa5f7fwb5nfgqzvf29bp59rgy0i0c4m6mvgpzpww408ja")))) (build-system gnu-build-system) (arguments '(#:configure-flags (list "--disable-static"))) diff --git a/gnu/packages/installers.scm b/gnu/packages/installers.scm index 30cd0e4e6c..79738598cb 100644 --- a/gnu/packages/installers.scm +++ b/gnu/packages/installers.scm @@ -19,9 +19,9 @@ (define-module (gnu packages installers) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) + #:use-module (gnu packages build-tools) #:use-module (gnu packages compression) #:use-module (gnu packages cross-base) - #:use-module (gnu packages python-xyz) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system scons) diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm index e5b159245c..6aa185486b 100644 --- a/gnu/packages/julia-xyz.scm +++ b/gnu/packages/julia-xyz.scm @@ -165,7 +165,8 @@ provides functions to run a few automatable checks for Julia packages.") ;; Expression: @inferred(ArrayInterface.size(Rnr)) === (StaticInt(4),) ;; Evaluated: (static(2),) === (static(4),) ;; Disable as stopgap. - (list #:tests? (not (target-x86-32?)))) + (list #:tests? (not (or (%current-target-system) + (target-x86-32?))))) (propagated-inputs (list julia-ifelse julia-requires @@ -2048,7 +2049,8 @@ c-style numerical formatting.") ;; Expression: dual_isapprox(FDNUM ^ PRIMAL, exp(PRIMAL * log(FDNUM))) ;; ERROR: LoadError: LoadError: There was an error during testing ;; Disable as stopgap. - (list #:tests? (not (target-x86-32?)))) + (list #:tests? (not (or (%current-target-system) + (target-x86-32?))))) (inputs ;required for tests (list julia-calculus julia-difftests)) @@ -2937,7 +2939,8 @@ each one has a fixed size. Currently support inline strings from 1 byte up to ;; Got exception outside of a @test ;; OverflowError: 96908232 * 106943408 overflowed for type Int32 ;; Disable as stopgap. - #:tests? (not (target-x86-32?)))) + #:tests? (not (or (%current-target-system) + (target-x86-32?))))) (propagated-inputs (list julia-axisalgorithms julia-offsetarrays @@ -4658,7 +4661,8 @@ can be avoided.") ;; Expression: hash(tr_float, hash(1)) === hash(v_float, hash(1)) ;; MethodError: no method matching decompose(::ReverseDiff.TrackedReal{Float64, Float64, Nothing}) ;; Disable as stopgap. - (list #:tests? (not (target-x86-32?)))) + (list #:tests? (not (or (%current-target-system) + (target-x86-32?))))) (propagated-inputs (list julia-diffresults julia-diffrules diff --git a/gnu/packages/julia.scm b/gnu/packages/julia.scm index 29c981189c..9f3ef031c3 100644 --- a/gnu/packages/julia.scm +++ b/gnu/packages/julia.scm @@ -82,6 +82,10 @@ "1jk3bmiw61ypcchqkk1fyg5wh8wpggk574wxyfyaic870zh3lhgq") (julia-patch "libunwind-cfa-rsp" "1aswjhvysahhldbzh1afbf0hsjxrvs6xidsz2i7s1cjkjbdiia1z")))))) + (arguments + (substitute-keyword-arguments (package-arguments libunwind) + ;; Skip tests on this older and patched version of libunwind. + ((#:tests? _ #t) #f))) (home-page "https://github.com/JuliaLang/tree/master/deps/"))) (define (julia-patch-url version name) diff --git a/gnu/packages/libffi.scm b/gnu/packages/libffi.scm index 923019c2ca..ecdeaf45cd 100644 --- a/gnu/packages/libffi.scm +++ b/gnu/packages/libffi.scm @@ -188,28 +188,22 @@ project.") (define-public ruby-ffi (package (name "ruby-ffi") - (version "1.12.2") + (version "1.15.5") (source (origin ;; Pull from git because the RubyGems release bundles LibFFI, ;; and comes with a gemspec that makes it difficult to unbundle. (method git-fetch) (uri (git-reference (url "https://github.com/ffi/ffi") - (commit version))) + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "1cvqsbjr2gfjgqggq9kdx90qhhzr7qkyr9wmxdsfsik6cnxnnpmd")))) + "1qk55s1zwpdjykwkj9l37m71i5n228i7f8bg3ply3ks9py16m7s6")))) (build-system ruby-build-system) (arguments `(#:phases (modify-phases %standard-phases - (add-after 'unpack 'do-not-depend-on-ccache - (lambda _ - (substitute* "spec/ffi/fixtures/GNUmakefile" - (("^CCACHE := .*") - "")) - #t)) (replace 'replace-git-ls-files (lambda _ ;; Do not try to execute git, or include the (un)bundled LibFFI. @@ -219,9 +213,10 @@ project.") (("lfs \\+?= .*") "lfs = []\n")) (substitute* "Rakefile" + (("git .*ls-files -z") + "find * -type f -print0 | sort -z") (("LIBFFI_GIT_FILES = .*") - "LIBFFI_GIT_FILES = []\n")) - #t)) + "LIBFFI_GIT_FILES = []\n")))) (replace 'build (lambda _ ;; Tests depend on the native extensions, so we build it @@ -240,8 +235,7 @@ project.") (setenv "MAKE" "make") (setenv "CC" "gcc") (invoke "rspec" "spec")) - (format #t "test suite not run~%")) - #t))))) + (format #t "test suite not run~%"))))))) (native-inputs (list ruby-rake-compiler ruby-rspec ruby-rubygems-tasks)) (inputs diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 6aa5891057..ae73b9eab0 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -7645,9 +7645,9 @@ Text-based output formats: CSV, XML, Netfilter's LOG, Netfilter's conntrack ;; Disable the test suite on armhf-linux, as there are too many ;; failures to keep track of (see for example: ;; https://github.com/proot-me/proot/issues/286). - `(#:tests? ,(not (string-prefix? "armhf" - (or (%current-target-system) - (%current-system)))) + `(#:tests? ,(not (or (%current-target-system) + (string-prefix? "armhf" + (or (%current-system))))) #:make-flags '("-C" "src") #:phases (modify-phases %standard-phases (add-after 'unpack 'patch-sources diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 6018c4deff..2170a9e267 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -22762,6 +22762,37 @@ binding @code{*debugger-hook*} is not enough -- most notably, for ;; Tests fail on ECL: https://github.com/phoe/trivial-custom-debugger/issues/3 '(#:tests? #f)))) +(define-public sbcl-safe-read + (let ((commit "d25f08597b34d7aaeb86b045d57f7b020a5bb5f0") + (revision "0")) + (package + (name "sbcl-safe-read") + (version (git-version "0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/phoe/safe-read") + (commit commit))) + (file-name (git-file-name "cl-safe-read" version)) + (sha256 + (base32 "1r9k8danfnqgpbn2vb90n6wdc6jd92h1ig565yplrbh6232lhi26")))) + (build-system asdf-build-system/sbcl) + (inputs + (list sbcl-local-time sbcl-trivial-garbage)) + (home-page "https://github.com/phoe/safe-read/") + (synopsis "Safer variant of READ") + (description + "This package provides a safer variant of @code{READ} secure against +internbombing, excessive input and macro characters.") + (license license:bsd-2)))) + +(define-public cl-safe-read + (sbcl-package->cl-source-package sbcl-safe-read)) + +(define-public ecl-safe-read + (sbcl-package->ecl-package sbcl-safe-read)) + (define-public sbcl-ospm (package (name "sbcl-ospm") diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index 4072dca076..93a5227084 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -24,6 +24,7 @@ ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2022 Greg Hogan <code@greghogan.com> ;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com> +;;; Copyright © 2022 Clément Lassieur <clement@lassieur.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1846,6 +1847,7 @@ setup(name=\"clang\", packages=[\"clang\"])\n"))))) (build-system emacs-build-system) (inputs (list clang)) + (propagated-inputs '()) (arguments `(#:phases (modify-phases %standard-phases diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm index afebc6bc1f..c3bb1e8f5b 100644 --- a/gnu/packages/lua.scm +++ b/gnu/packages/lua.scm @@ -1179,48 +1179,43 @@ enabled.") (license license:boost1.0))) (define-public fennel - ;; The 1.0.0 release had a bug where fennel installed under 5.4 no matter - ;; what lua was used to compile it. There has since been an update that - ;; corrects this issue, so we can rely on the version of the lua input to - ;; determine where the fennel.lua file got installed to. - (let ((commit "03c1c95f2a79e45a9baf607f96a74c693b8b70f4") - (revision "0")) - (package - (name "fennel") - (version (git-version "1.0.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://git.sr.ht/~technomancy/fennel") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1znp38h5q819gvcyl248zwvjsljfxdxdk8n82fnj6lyibiiqzgvx")))) - (build-system gnu-build-system) - (arguments - '(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) - #:tests? #t ; even on cross-build - #:test-target "test" - #:phases - (modify-phases %standard-phases - (delete 'configure) - (add-after 'build 'patch-fennel - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "fennel" - (("/usr/bin/env .*lua") - (search-input-file inputs "/bin/lua"))))) - (delete 'check) - (add-after 'install 'check - (assoc-ref %standard-phases 'check))))) - (inputs (list lua)) - (home-page "https://fennel-lang.org/") - (synopsis "Lisp that compiles to Lua") - (description - "Fennel is a programming language that brings together the speed, + (package + (name "fennel") + (version "1.2.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~technomancy/fennel") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0klqxhgc9s6rm2xbn2fyzw9nzdas65g84js7s69by0gv2jzalyad")))) + (build-system gnu-build-system) + (arguments + (list #:make-flags #~(list (string-append "PREFIX=" + (assoc-ref %outputs "out"))) + #:tests? #t ;even on cross-build + #:test-target "test" + #:phases #~(modify-phases %standard-phases + (delete 'configure) + (add-after 'build 'patch-fennel + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "fennel" + (("/usr/bin/env .*lua") + (search-input-file inputs "/bin/lua"))))) + (delete 'check) + (add-after 'install 'check + (assoc-ref %standard-phases + 'check))))) + (inputs (list lua)) + (home-page "https://fennel-lang.org/") + (synopsis "Lisp that compiles to Lua") + (description + "Fennel is a programming language that brings together the speed, simplicity, and reach of Lua with the flexibility of a Lisp syntax and macro system.") - (license license:expat)))) + (license license:expat))) (define-public fnlfmt (package diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index e1de632dda..5b6440455e 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -565,7 +565,7 @@ It is a fork of Clementine aimed at music collectors and audiophiles.") (define-public cmus (package (name "cmus") - (version "2.9.1") + (version "2.10.0") (source (origin (method git-fetch) (uri (git-reference @@ -574,7 +574,7 @@ It is a fork of Clementine aimed at music collectors and audiophiles.") (file-name (git-file-name name version)) (sha256 (base32 - "0zjkimni2fhv4yskrjrgj6b74f33rfj58zgd7khwrz4z8nf88j0w")))) + "0csj59q2n7hz9zihq92kb4kzvb51rgzl65y6vd0chq6j3li1pb8x")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; cmus does not include tests diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index f1e1433d8c..eeca6fc43c 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -1727,14 +1727,14 @@ of the same name.") (define-public wireshark (package (name "wireshark") - (version "3.6.2") + (version "3.6.7") (source (origin (method url-fetch) (uri (string-append "https://www.wireshark.org/download/src/wireshark-" version ".tar.xz")) (sha256 - (base32 "03n34jh4318y3q14jclxfxi4r7b9l393w9fw9bq57ydff9aim42x")))) + (base32 "1idpxnh8vrvan3g0ymaa24bd4iyxi19xrr76sdrrpxx2r8shmqfc")))) (build-system cmake-build-system) (arguments `(#:phases diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index 782d109b24..99e56e8360 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -290,7 +290,7 @@ icu4c libuv `(,nghttp2-for-node "lib") - openssl + openssl-1.1 zlib ;; Regular build-time dependencies. perl @@ -867,7 +867,7 @@ source files.") icu4c libuv-for-node `(,nghttp2-for-node "lib") - openssl + openssl-1.1 zlib ;; Regular build-time dependencies. perl @@ -884,7 +884,7 @@ source files.") llhttp-bootstrap brotli `(,nghttp2-for-node "lib") - openssl + openssl-1.1 python-wrapper ;; for node-gyp (supports python3) zlib)))) diff --git a/gnu/packages/ocr.scm b/gnu/packages/ocr.scm index 21d257ef24..0382e0d869 100644 --- a/gnu/packages/ocr.scm +++ b/gnu/packages/ocr.scm @@ -177,9 +177,11 @@ models for the Tesseract OCR Engine.") (inputs (list cairo icu4c - leptonica pango python-wrapper)) + (propagated-inputs + ;; Required by tesseract.pc. + (list leptonica)) (native-search-paths (list (search-path-specification (variable "TESSDATA_PREFIX") (files (list "share/tesseract-ocr/tessdata")) diff --git a/gnu/packages/patches/accountsservice-extensions.patch b/gnu/packages/patches/accountsservice-extensions.patch new file mode 100644 index 0000000000..2cfab580e3 --- /dev/null +++ b/gnu/packages/patches/accountsservice-extensions.patch @@ -0,0 +1,25 @@ +Patch from NixOS retrieved from +https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/development/libraries/accountsservice/drop-prefix-check-extensions.patch. + +diff --git a/src/extensions.c b/src/extensions.c +index 038dcb2..830465d 100644 +--- a/src/extensions.c ++++ b/src/extensions.c +@@ -121,16 +121,7 @@ daemon_read_extension_directory (GHashTable *ifaces, + continue; + } + +- /* Ensure it looks like "../../dbus-1/interfaces/${name}" */ +- const gchar * const prefix = "../../dbus-1/interfaces/"; +- if (g_str_has_prefix (symlink, prefix) && g_str_equal (symlink + strlen (prefix), name)) { +- daemon_read_extension_file (ifaces, filename); +- } +- else { +- g_warning ("Found accounts service vendor extension symlink %s, but it must be exactly " +- "equal to '../../dbus-1/interfaces/%s' for forwards-compatibility reasons.", +- filename, name); +- } ++ daemon_read_extension_file (ifaces, filename); + } + + g_dir_close (dir); diff --git a/gnu/packages/patches/gnome-shell-polkit-autocleanup.patch b/gnu/packages/patches/gnome-shell-polkit-autocleanup.patch new file mode 100644 index 0000000000..08968b83a1 --- /dev/null +++ b/gnu/packages/patches/gnome-shell-polkit-autocleanup.patch @@ -0,0 +1,50 @@ +Don't redefine G_DEFINE_AUTOPTR_CLEANUP_FUNC when available in polkit. + +Taken from upstream: + + https://gitlab.gnome.org/GNOME/gnome-shell/-/commit/1d0a08b5e25fea7b0e792ec9798e68a7c5606a75 + +diff --git a/config.h.meson b/config.h.meson +index b93fda8727..ff355d3062 100644 +--- a/config.h.meson ++++ b/config.h.meson +@@ -33,3 +33,6 @@ + + /* Define if fdwalk is available in libc */ + #mesondefine HAVE_FDWALK ++ ++/* Define if polkit defines autocleanup functions */ ++#mesondefine HAVE_POLKIT_AUTOCLEANUP +diff --git a/meson.build b/meson.build +index 42ec01c566..778a34c6ef 100644 +--- a/meson.build ++++ b/meson.build +@@ -169,6 +169,13 @@ cdata.set('HAVE_FDWALK', + cc.has_function('fdwalk') + ) + ++polkit_has_autocleanup = cc.compiles( ++ '#define POLKIT_AGENT_I_KNOW_API_IS_SUBJECT_TO_CHANGE ++ #include <polkitagent/polkitagent.h> ++ void main(void) { g_autoptr(PolkitAgentListener) agent = NULL; }', ++ dependencies: polkit_dep) ++cdata.set('HAVE_POLKIT_AUTOCLEANUP', polkit_has_autocleanup) ++ + buildtype = get_option('buildtype') + if buildtype != 'plain' + all_warnings = [ +diff --git a/src/shell-polkit-authentication-agent.h b/src/shell-polkit-authentication-agent.h +index 55b46af110..4f14749563 100644 +--- a/src/shell-polkit-authentication-agent.h ++++ b/src/shell-polkit-authentication-agent.h +@@ -14,8 +14,10 @@ + + G_BEGIN_DECLS + ++#ifndef HAVE_POLKIT_AUTOCLEANUP + /* Polkit doesn't have g_autoptr support, thus we have to manually set the autoptr function here */ + G_DEFINE_AUTOPTR_CLEANUP_FUNC (PolkitAgentListener, g_object_unref) ++#endif + + #define SHELL_TYPE_POLKIT_AUTHENTICATION_AGENT (shell_polkit_authentication_agent_get_type()) + diff --git a/gnu/packages/patches/lightdm-arguments-ordering.patch b/gnu/packages/patches/lightdm-arguments-ordering.patch new file mode 100644 index 0000000000..c3b513a19a --- /dev/null +++ b/gnu/packages/patches/lightdm-arguments-ordering.patch @@ -0,0 +1,54 @@ +When providing the VNCServer command as 'Xvnc -SecurityTypes None', +the formatted command line used would look like: + + Xvnc -SecurityTypes None :1 -auth /var/run/lightdm/root/:1 + +which is invalid (the display number must appear first). + +Submitted upstream at: https://github.com/canonical/lightdm/pull/265 + + src/x-server-local.c | 14 +++++++++++++- + 1 file changed, 13 insertions(+), 1 deletion(-) + +diff --git a/src/x-server-local.c b/src/x-server-local.c +index 7c4ab870..6c540d18 100644 +--- a/src/x-server-local.c ++++ b/src/x-server-local.c +@@ -463,14 +463,20 @@ x_server_local_start (DisplayServer *display_server) + l_debug (display_server, "Logging to %s", log_file); + + g_autofree gchar *absolute_command = get_absolute_command (priv->command); ++ g_auto(GStrv) tokens = g_strsplit (absolute_command, " ", 2); ++ const gchar* binary = tokens[0]; ++ const gchar *extra_options = tokens[1]; ++ + if (!absolute_command) + { + l_debug (display_server, "Can't launch X server %s, not found in path", priv->command); + stopped_cb (priv->x_server_process, X_SERVER_LOCAL (server)); + return FALSE; + } +- g_autoptr(GString) command = g_string_new (absolute_command); ++ g_autoptr(GString) command = g_string_new (binary); + ++ /* The display argument must be given first when the X server used ++ * is Xvnc. */ + g_string_append_printf (command, " :%d", priv->display_number); + + if (priv->config_file) +@@ -513,6 +519,12 @@ x_server_local_start (DisplayServer *display_server) + if (X_SERVER_LOCAL_GET_CLASS (server)->add_args) + X_SERVER_LOCAL_GET_CLASS (server)->add_args (server, command); + ++ /* Any extra user options provided via the VNCServer 'command' ++ * config option are appended last, so the user can override any ++ * of the above. */ ++ if (extra_options) ++ g_string_append_printf (command, " %s", extra_options); ++ + process_set_command (priv->x_server_process, command->str); + + l_debug (display_server, "Launching X Server"); +-- +2.36.1 + diff --git a/gnu/packages/patches/lightdm-vnc-color-depth.patch b/gnu/packages/patches/lightdm-vnc-color-depth.patch new file mode 100644 index 0000000000..cd69977d6a --- /dev/null +++ b/gnu/packages/patches/lightdm-vnc-color-depth.patch @@ -0,0 +1,81 @@ +There is no longer support for 8 bit color depth in TigerVNC (see: +https://github.com/TigerVNC/tigervnc/commit/e86d8720ba1e79b486ca29a5c2b27fa25811e6a2); +using it causes a fatal error. + +Submitted upstream at: https://github.com/canonical/lightdm/pull/265. + +diff --git a/data/lightdm.conf b/data/lightdm.conf +index 0df38429..60e3e8b4 100644 +--- a/data/lightdm.conf ++++ b/data/lightdm.conf +@@ -160,4 +160,4 @@ + #listen-address= + #width=1024 + #height=768 +-#depth=8 ++#depth=24 +diff --git a/src/x-server-xvnc.c b/src/x-server-xvnc.c +index 68340d53..27ca4454 100644 +--- a/src/x-server-xvnc.c ++++ b/src/x-server-xvnc.c +@@ -127,7 +127,7 @@ x_server_xvnc_init (XServerXVNC *server) + XServerXVNCPrivate *priv = x_server_xvnc_get_instance_private (server); + priv->width = 1024; + priv->height = 768; +- priv->depth = 8; ++ priv->depth = 24; + } + + static void +diff --git a/tests/scripts/vnc-command.conf b/tests/scripts/vnc-command.conf +index 0f1e25fd..335956d9 100644 +--- a/tests/scripts/vnc-command.conf ++++ b/tests/scripts/vnc-command.conf +@@ -19,7 +19,7 @@ command=Xvnc -option + #?VNC-CLIENT CONNECT + + # Xvnc server starts +-#?XVNC-0 START GEOMETRY=1024x768 DEPTH=8 OPTION=TRUE ++#?XVNC-0 START GEOMETRY=1024x768 DEPTH=24 OPTION=TRUE + + # Daemon connects when X server is ready + #?*XVNC-0 INDICATE-READY +diff --git a/tests/scripts/vnc-guest.conf b/tests/scripts/vnc-guest.conf +index 431bb244..ce2b97db 100644 +--- a/tests/scripts/vnc-guest.conf ++++ b/tests/scripts/vnc-guest.conf +@@ -21,7 +21,7 @@ user-session=default + #?VNC-CLIENT CONNECT + + # Xvnc server starts +-#?XVNC-0 START GEOMETRY=1024x768 DEPTH=8 OPTION=FALSE ++#?XVNC-0 START GEOMETRY=1024x768 DEPTH=24 OPTION=FALSE + + # Daemon connects when X server is ready + #?*XVNC-0 INDICATE-READY +diff --git a/tests/scripts/vnc-login.conf b/tests/scripts/vnc-login.conf +index cdfe17b8..f0d65b7f 100644 +--- a/tests/scripts/vnc-login.conf ++++ b/tests/scripts/vnc-login.conf +@@ -21,7 +21,7 @@ user-session=default + #?VNC-CLIENT CONNECT + + # Xvnc server starts +-#?XVNC-0 START GEOMETRY=1024x768 DEPTH=8 OPTION=FALSE ++#?XVNC-0 START GEOMETRY=1024x768 DEPTH=24 OPTION=FALSE + + # Daemon connects when X server is ready + #?*XVNC-0 INDICATE-READY +diff --git a/tests/scripts/vnc-open-file-descriptors.conf b/tests/scripts/vnc-open-file-descriptors.conf +index 753c84dd..e5d35730 100644 +--- a/tests/scripts/vnc-open-file-descriptors.conf ++++ b/tests/scripts/vnc-open-file-descriptors.conf +@@ -21,7 +21,7 @@ user-session=default + #?VNC-CLIENT CONNECT + + # Xvnc server starts +-#?XVNC-0 START GEOMETRY=1024x768 DEPTH=8 OPTION=FALSE ++#?XVNC-0 START GEOMETRY=1024x768 DEPTH=24 OPTION=FALSE + + # Daemon connects when X server is ready + #?*XVNC-0 INDICATE-READY diff --git a/gnu/packages/patches/lightdm-vncserver-check.patch b/gnu/packages/patches/lightdm-vncserver-check.patch new file mode 100644 index 0000000000..0e31ff3d68 --- /dev/null +++ b/gnu/packages/patches/lightdm-vncserver-check.patch @@ -0,0 +1,66 @@ +Honor the Xvnc command specified in the config instead of using a hard-coded +default. + +Submitted upstream at: https://github.com/canonical/lightdm/pull/265 + +diff --git a/src/lightdm.c b/src/lightdm.c +index 74f9ff2d..0ccfcd78 100644 +--- a/src/lightdm.c ++++ b/src/lightdm.c +@@ -349,27 +349,42 @@ start_display_manager (void) + /* Start the VNC server */ + if (config_get_boolean (config_get_instance (), "VNCServer", "enabled")) + { +- g_autofree gchar *path = g_find_program_in_path ("Xvnc"); +- if (path) ++ /* Validate that a the VNC command is available. */ ++ g_autofree gchar *command = config_get_string (config_get_instance (), "VNCServer", "command"); ++ if (command) + { +- vnc_server = vnc_server_new (); +- if (config_has_key (config_get_instance (), "VNCServer", "port")) ++ g_auto(GStrv) tokens = g_strsplit (command, " ", 2); ++ if (!g_find_program_in_path (tokens[0])) + { +- gint port = config_get_integer (config_get_instance (), "VNCServer", "port"); +- if (port > 0) +- vnc_server_set_port (vnc_server, port); ++ g_warning ("Can't start VNC server; command '%s' not found", tokens[0]); ++ return; + } +- g_autofree gchar *listen_address = config_get_string (config_get_instance (), "VNCServer", "listen-address"); +- vnc_server_set_listen_address (vnc_server, listen_address); +- g_signal_connect (vnc_server, VNC_SERVER_SIGNAL_NEW_CONNECTION, G_CALLBACK (vnc_connection_cb), NULL); +- +- g_debug ("Starting VNC server on TCP/IP port %d", vnc_server_get_port (vnc_server)); +- vnc_server_start (vnc_server); + } + else +- g_warning ("Can't start VNC server, Xvnc is not in the path"); ++ { ++ /* Fallback to 'Xvnc'. */ ++ if (!g_find_program_in_path ("Xvnc")) { ++ g_warning ("Can't start VNC server; 'Xvnc' command not found"); ++ return; ++ } ++ } ++ ++ vnc_server = vnc_server_new (); ++ if (config_has_key (config_get_instance (), "VNCServer", "port")) ++ { ++ gint port = config_get_integer (config_get_instance (), "VNCServer", "port"); ++ if (port > 0) ++ vnc_server_set_port (vnc_server, port); ++ } ++ g_autofree gchar *listen_address = config_get_string (config_get_instance (), "VNCServer", "listen-address"); ++ vnc_server_set_listen_address (vnc_server, listen_address); ++ g_signal_connect (vnc_server, VNC_SERVER_SIGNAL_NEW_CONNECTION, G_CALLBACK (vnc_connection_cb), NULL); ++ ++ g_debug ("Starting VNC server on TCP/IP port %d", vnc_server_get_port (vnc_server)); ++ vnc_server_start (vnc_server); + } + } ++ + static void + service_ready_cb (DisplayManagerService *service) + { diff --git a/gnu/packages/patches/mercurial-openssl-compat.patch b/gnu/packages/patches/mercurial-openssl-compat.patch new file mode 100644 index 0000000000..139356f285 --- /dev/null +++ b/gnu/packages/patches/mercurial-openssl-compat.patch @@ -0,0 +1,89 @@ +Tweak cipher selection to make TLS < 1.2 work with OpenSSL 3. + +Taken from Debian: + + https://salsa.debian.org/python-team/packages/mercurial/-/blob/debian/master/debian/patches/openssl_3_cipher_tlsv1.patch + +--- a/mercurial/sslutil.py ++++ b/mercurial/sslutil.py +@@ -117,17 +117,17 @@ def _hostsettings(ui, hostname): + ciphers = ui.config(b'hostsecurity', b'%s:ciphers' % bhostname, ciphers) + + # If --insecure is used, we allow the use of TLS 1.0 despite config options. + # We always print a "connection security to %s is disabled..." message when + # --insecure is used. So no need to print anything more here. + if ui.insecureconnections: + minimumprotocol = b'tls1.0' + if not ciphers: +- ciphers = b'DEFAULT' ++ ciphers = b'DEFAULT:@SECLEVEL=0' + + s[b'minimumprotocol'] = minimumprotocol + s[b'ciphers'] = ciphers + + # Look for fingerprints in [hostsecurity] section. Value is a list + # of <alg>:<fingerprint> strings. + fingerprints = ui.configlist( + b'hostsecurity', b'%s:fingerprints' % bhostname +@@ -621,17 +621,17 @@ def wrapserversocket( + + # Improve forward secrecy. + sslcontext.options |= getattr(ssl, 'OP_SINGLE_DH_USE', 0) + sslcontext.options |= getattr(ssl, 'OP_SINGLE_ECDH_USE', 0) + + # In tests, allow insecure ciphers + # Otherwise, use the list of more secure ciphers if found in the ssl module. + if exactprotocol: +- sslcontext.set_ciphers('DEFAULT') ++ sslcontext.set_ciphers('DEFAULT:@SECLEVEL=0') + elif util.safehasattr(ssl, b'_RESTRICTED_SERVER_CIPHERS'): + sslcontext.options |= getattr(ssl, 'OP_CIPHER_SERVER_PREFERENCE', 0) + # pytype: disable=module-attr + sslcontext.set_ciphers(ssl._RESTRICTED_SERVER_CIPHERS) + # pytype: enable=module-attr + + if requireclientcert: + sslcontext.verify_mode = ssl.CERT_REQUIRED +--- a/tests/test-https.t ++++ b/tests/test-https.t +@@ -356,19 +356,19 @@ Start servers running supported TLS vers + $ cat ../hg1.pid >> $DAEMON_PIDS + $ hg serve -p $HGPORT2 -d --pid-file=../hg2.pid --certificate=$PRIV \ + > --config devel.serverexactprotocol=tls1.2 + $ cat ../hg2.pid >> $DAEMON_PIDS + $ cd .. + + Clients talking same TLS versions work + +- $ P="$CERTSDIR" hg --config hostsecurity.minimumprotocol=tls1.0 --config hostsecurity.ciphers=DEFAULT id https://localhost:$HGPORT/ ++ $ P="$CERTSDIR" hg --config hostsecurity.minimumprotocol=tls1.0 --config hostsecurity.ciphers=DEFAULT:@SECLEVEL=0 id https://localhost:$HGPORT/ + 5fed3813f7f5 +- $ P="$CERTSDIR" hg --config hostsecurity.minimumprotocol=tls1.1 --config hostsecurity.ciphers=DEFAULT id https://localhost:$HGPORT1/ ++ $ P="$CERTSDIR" hg --config hostsecurity.minimumprotocol=tls1.1 --config hostsecurity.ciphers=DEFAULT:@SECLEVEL=0 id https://localhost:$HGPORT1/ + 5fed3813f7f5 + $ P="$CERTSDIR" hg --config hostsecurity.minimumprotocol=tls1.2 id https://localhost:$HGPORT2/ + 5fed3813f7f5 + + Clients requiring newer TLS version than what server supports fail + + $ P="$CERTSDIR" hg id https://localhost:$HGPORT/ + (could not negotiate a common security protocol (tls1.1+) with localhost; the likely cause is Mercurial is configured to be more secure than the server can support) +@@ -400,17 +400,17 @@ Clients requiring newer TLS version than + + $ hg --config hostsecurity.minimumprotocol=tls1.2 id --insecure https://localhost:$HGPORT1/ + warning: connection security to localhost is disabled per current settings; communication is susceptible to eavesdropping and tampering + 5fed3813f7f5 + + The per-host config option overrides the default + + $ P="$CERTSDIR" hg id https://localhost:$HGPORT/ \ +- > --config hostsecurity.ciphers=DEFAULT \ ++ > --config hostsecurity.ciphers=DEFAULT:@SECLEVEL=0 \ + > --config hostsecurity.minimumprotocol=tls1.2 \ + > --config hostsecurity.localhost:minimumprotocol=tls1.0 + 5fed3813f7f5 + + The per-host config option by itself works + + $ P="$CERTSDIR" hg id https://localhost:$HGPORT/ \ + > --config hostsecurity.localhost:minimumprotocol=tls1.2 diff --git a/gnu/packages/patches/scons-test-environment.patch b/gnu/packages/patches/scons-test-environment.patch new file mode 100644 index 0000000000..be5b61b2d4 --- /dev/null +++ b/gnu/packages/patches/scons-test-environment.patch @@ -0,0 +1,57 @@ +Inherit essential environment variables in tests. + +Note: it could be better to generalize this in SCons/Platform/posix.py +instead of just patching the tests. + +diff --git a/SCons/ActionTests.py b/SCons/ActionTests.py +--- a/SCons/ActionTests.py ++++ b/SCons/ActionTests.py +@@ -98,6 +98,7 @@ outfile2 = test.workpath('outfile2') + pipe_file = test.workpath('pipe.out') + + scons_env = SCons.Environment.Environment() ++scons_env['ENV']['PATH'] += os.environ['PATH'] + + # Capture all the stuff the Actions will print, + # so it doesn't clutter the output. +@@ -1090,6 +1091,8 @@ class CommandActionTestCase(unittest.TestCase): + except AttributeError: + env = Environment() + ++ env = Environment(ENV={'PATH': os.environ['PATH']}) ++ + cmd1 = r'%s %s %s xyzzy' % (_python_, act_py, outfile) + + act = SCons.Action.CommandAction(cmd1) +@@ -1884,7 +1887,7 @@ class ListActionTestCase(unittest.TestCase): + f.write("class2b\n") + + act = SCons.Action.ListAction([cmd2, function2, class2a(), class2b]) +- r = act([], [], Environment(out=outfile)) ++ r = act([], [], Environment(out=outfile, ENV={'PATH' : os.getenv('PATH')})) + assert isinstance(r.status, class2b), r.status + c = test.read(outfile, 'r') + assert c == "act.py: 'syzygy'\nfunction2\nclass2a\nclass2b\n", c +@@ -1948,7 +1951,7 @@ class LazyActionTestCase(unittest.TestCase): + a([], [], env=Environment(BAR=f, s=self)) + assert self.test == 1, self.test + cmd = r'%s %s %s lazy' % (_python_, act_py, outfile) +- a([], [], env=Environment(BAR=cmd, s=self)) ++ a([], [], env=Environment(BAR=cmd, s=self, ENV={'PATH' : os.getenv('PATH')})) + c = test.read(outfile, 'r') + assert c == "act.py: 'lazy'\n", c + +diff --git a/SCons/SConfTests.py b/SCons/SConfTests.py +--- a/SCons/SConfTests.py ++++ b/SCons/SConfTests.py +@@ -71,7 +71,9 @@ class SConfTestCase(unittest.TestCase): + # and we need a new environment, cause references may point to + # old modules (well, at least this is safe ...) + self.scons_env = self.Environment.Environment() +- self.scons_env.AppendENVPath('PATH', os.environ['PATH']) ++ # Inherit the OS environment to get essential variables. ++ inherited_env = os.environ.copy() ++ self.scons_env['ENV'] = inherited_env + + # we want to do some autodetection here + # this stuff works with diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 2a24751f55..f3353d8b97 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -83,6 +83,7 @@ #:use-module (gnu packages man) #:use-module (gnu packages markup) #:use-module (gnu packages nss) + #:use-module (gnu packages ocr) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages photo) @@ -522,7 +523,7 @@ using the DjVuLibre library.") (define-public zathura-pdf-mupdf (package (name "zathura-pdf-mupdf") - (version "0.3.6") + (version "0.3.9") (source (origin (method url-fetch) (uri @@ -530,39 +531,39 @@ using the DjVuLibre library.") "/download/zathura-pdf-mupdf-" version ".tar.xz")) (sha256 (base32 - "1r3v37k9fl2rxipvacgxr36llywvy7n20a25h3ajlyk70697sa66")))) + "01vw0lrcj9g7d5h2xvm4xb08mvfld4syfr381fjrbdj52zm9bxvp")))) (native-inputs (list pkg-config)) (inputs - `(("jbig2dec" ,jbig2dec) - ("libjpeg" ,libjpeg-turbo) - ("mujs" ,mujs) - ("mupdf" ,mupdf) - ("openjpeg" ,openjpeg) - ("openssl" ,openssl) - ("zathura" ,zathura))) + (list gumbo-parser + jbig2dec + libjpeg-turbo + mujs + mupdf + openjpeg + openssl + tesseract-ocr + zathura)) (build-system meson-build-system) (arguments `(#:tests? #f ; package does not contain tests #:configure-flags (list (string-append "-Dplugindir=" (assoc-ref %outputs "out") - "/lib/zathura") - "-Dlink-external=true") + "/lib/zathura")) #:phases (modify-phases %standard-phases (add-after 'unpack 'remove-libmupdfthird.a-requirement (lambda _ ;; Ignore a missing (apparently superfluous) static library. (substitute* "meson.build" - ((".*mupdfthird.*") "")) - #t)) - (add-before 'configure 'add-mujs-to-dependencies + (("mupdfthird = .*") + "") + ((", mupdfthird") + "")))) + (add-after 'unpack 'fix-mupdf-detection (lambda _ - ;; Add mujs to the 'build_dependencies'. (substitute* "meson.build" - (("^ libopenjp2 = dependency.*" x) - (string-append x " mujs = cc.find_library('mujs')\n")) - (("^ libopenjp2") - " libopenjp2, mujs"))))))) + (("dependency\\('mupdf', required: false\\)") + "cc.find_library('mupdf')"))))))) (home-page "https://pwmt.org/projects/zathura-pdf-mupdf/") (synopsis "PDF support for zathura (mupdf backend)") (description "The zathura-pdf-mupdf plugin adds PDF support to zathura @@ -735,20 +736,20 @@ and based on PDF specification 1.7.") (define-public mupdf (package (name "mupdf") - (version "1.19.1") + (version "1.20.3") (source (origin (method url-fetch) (uri (string-append "https://mupdf.com/downloads/archive/" - "mupdf-" version "-source.tar.xz")) + "mupdf-" version "-source.tar.lz")) (sha256 - (base32 "0gl0wf16m1cafs20h3v1f4ysf7zlbijjyd6s1r1krwvlzriwdsmm")) + (base32 + "0s0qclxxdjis04mczgz0fhfpv0j8llk48g82zlfrk0daz0zgcwvg")) (modules '((guix build utils))) (snippet #~(begin - ;; Remove bundled software. - (let* ((keep (list "extract" - "lcms2")) ; different from our lcms2 package + ;; Remove bundled software. Keep patched variants. + (let* ((keep (list "extract" "freeglut" "lcms2")) (from "thirdparty") (kept (string-append from "~temp"))) (mkdir-p kept) @@ -761,7 +762,9 @@ and based on PDF specification 1.7.") (build-system gnu-build-system) (inputs (list curl - freeglut + libxrandr + libxi + freeglut ;for GL/gl.h freetype gumbo-parser harfbuzz @@ -777,24 +780,36 @@ and based on PDF specification 1.7.") (list pkg-config)) (arguments (list - #:tests? #f ; no check target - #:make-flags - #~(list "verbose=yes" - (string-append "CC=" #$(cc-for-target)) - "XCFLAGS=-fpic" - "USE_SYSTEM_LIBS=yes" - "USE_SYSTEM_MUJS=yes" - "shared=yes" - ;; Even with the linkage patch we must fix RUNPATH. - (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib") - (string-append "prefix=" #$output)) - #:phases - #~(modify-phases %standard-phases - (delete 'configure)))) ; no configure script + #:tests? #f ;no check target + #:make-flags + #~(list "verbose=yes" + (string-append "CC=" #$(cc-for-target)) + "XCFLAGS=-fpic" + "USE_SYSTEM_FREETYPE=yes" + "USE_SYSTEM_GUMBO=yes" + "USE_SYSTEM_HARFBUZZ=yes" + "USE_SYSTEM_JBIG2DEC=yes" + "USE_SYSTEM_JPEGXR=no # not available" + "USE_SYSTEM_LCMS2=no # lcms2mt is strongly preferred" + "USE_SYSTEM_LIBJPEG=yes" + "USE_SYSTEM_MUJS=no # not available" + "USE_SYSTEM_OPENJPEG=yes" + "USE_SYSTEM_ZLIB=yes" + "USE_SYSTEM_GLUT=no" + "USE_SYSTEM_CURL=yes" + "USE_SYSTEM_LEPTONICA=yes" + "USE_SYSTEM_TESSERACT=yes" + "USE_SYSTEM_MUJS=yes" + "shared=yes" + (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib") + (string-append "prefix=" #$output)) + #:phases + #~(modify-phases %standard-phases + (delete 'configure)))) ;no configure script (home-page "https://mupdf.com") (synopsis "Lightweight PDF viewer and toolkit") (description - "MuPDF is a C library that implements a PDF and XPS parsing and + "MuPDF is a C library that implements a PDF and XPS parsing and rendering engine. It is used primarily to render pages into bitmaps, but also provides support for other operations such as searching and listing the table of contents and hyperlinks. @@ -803,9 +818,9 @@ The library ships with a rudimentary X11 viewer, and a set of command line tools for batch rendering @command{pdfdraw}, rewriting files @command{pdfclean}, and examining the file structure @command{pdfshow}.") (license (list license:agpl3+ - license:bsd-3 ; resources/cmaps - license:x11 ; thirdparty/lcms2 - license:silofl1.1 ; resources/fonts/{han,noto,sil,urw} + license:bsd-3 ;resources/cmaps + license:x11 ;thirdparty/lcms2 + license:silofl1.1 ;resources/fonts/{han,noto,sil,urw} license:asl2.0)))) ; resources/fonts/droid (define-public qpdf diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm index 1da5dc6fe4..edbd96486a 100644 --- a/gnu/packages/python-check.scm +++ b/gnu/packages/python-check.scm @@ -15,6 +15,7 @@ ;;; Copyright © 2021 Bonface Munyoki Kilyungi <me@bonfacemunyoki.com> ;;; Copyright © 2022 Malte Frank Gerdes <malte.f.gerdes@gmail.com> ;;; Copyright © 2022 Felix Gruber <felgru@posteo.net> +;;; Copyright © 2022 Tomasz Jeneralczyk <tj@schwi.pl> ;;; ;;; This file is part of GNU Guix. ;;; @@ -2373,3 +2374,24 @@ diagnostics to end up in your TAP output (as TAP diagnostics, YAML blocks, or attachments). @end itemize") (license license:expat))) + +(define-public python-xvfbwrapper + (package + (name "python-xvfbwrapper") + (version "0.2.9") + (source (origin + (method url-fetch) + (uri (pypi-uri "xvfbwrapper" version)) + (sha256 + (base32 + "097wxhvp01ikqpg1z3v8rqhss6f1vwr399zpz9a05d2135bsxx5w")))) + (build-system python-build-system) + (propagated-inputs (list xorg-server-for-tests)) + (home-page "https://github.com/cgoldberg/xvfbwrapper") + (synopsis "Python module for controlling virtual displays with Xvfb") + (description + "Xvfb (X virtual framebuffer) is a display server implementing +the X11 display server protocol. It runs in memory and does not require a +physical display. Only a network layer is necessary. Xvfb is useful for +running acceptance tests on headless servers.") + (license license:expat))) diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index 3ff05c0c9f..417f9c5a34 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -608,7 +608,7 @@ message digests and key derivation functions.") (add-after 'unpack 'set-no-rust (lambda _ (setenv "CRYPTOGRAPHY_DONT_BUILD_RUST" "1")))))) - (inputs (list openssl)) + (inputs (list openssl-1.1)) (native-inputs (list python-cryptography-vectors python-hypothesis diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 8760b3968f..6ae6673ad3 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -54,6 +54,8 @@ ;;; Copyright © 2022 Antero Mejr <antero@mailbox.org> ;;; Copyright © 2022 Luis Henrique Gomes Higino <luishenriquegh2701@gmail.com> ;;; Copyright © 2022 Nicolas Graves <ngraves@ngraves.fr> +;;; Copyright © 2022 Tomasz Jeneralczyk <tj@schwi.pl> +;;; Copyright © 2022 msimonin <matthieu.simonin@inria.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -6270,17 +6272,16 @@ Encoding for HTTP.") (define-public python-cloudscraper (package (name "python-cloudscraper") - (version "1.2.58") + (version "1.2.60") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/VeNoMouS/cloudscraper") - ;; Corresponds to 1.2.58 - (commit "f3a3d067ea8b5238e9a0948aed0c3fa0d9c29b96"))) + (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "18fbp086imabjxly04rrchbf6n6m05bpd150zxbw7z2w3mjnpsqd")) + (base32 "00cmxgwdm0x1j4a4ipwvpzih735hdzidljbijk1b3laj3dgvnvsm")) (modules '((guix build utils))) (snippet '(with-directory-excursion "cloudscraper" @@ -6320,7 +6321,7 @@ Encoding for HTTP.") python-requests python-requests-toolbelt python-responses - python-pyparsing-2.4.7)) + python-pyparsing)) (native-inputs (list python-pytest)) (home-page "https://github.com/venomous/cloudscraper") @@ -7786,3 +7787,28 @@ list, create, update, or delete resources (e.g. Order, Product, Collection).") (description "This package provides a library to parse and apply patches.") (license license:expat))) + +(define-public python-grid5000 + (package + (name "python-grid5000") + (version "1.2.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.inria.fr/msimonin/python-grid5000") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + "097pm8b68ihk29xz9zv29b1x0bhgjb4lfj8zxk2grbsh7wr9dipg"))) + (build-system python-build-system) + (native-inputs (list python-wheel)) + (propagated-inputs (list python-requests python-ipython python-pyyaml)) + (arguments + (list #:tests? #f)) ; No tests. + (home-page "https://pypi.org/project/python-grid5000/") + (synopsis "Grid5000 python client") + (description + "python-grid5000 is a python package wrapping the Grid5000 REST API. +You can use it as a library in your python project or you can explore the +Grid5000 resources interactively using the embedded shell.") + (license license:gpl3+))) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index ca4d7f9cf4..17df17fa9d 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -127,6 +127,7 @@ ;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com> ;;; Copyright © 2022 Marek Felšöci <marek@felsoci.sk> ;;; Copyright © 2022 Hilton Chain <hako@ultrarare.space> +;;; Copyright © 2022 Tomasz Jeneralczyk <tj@schwi.pl> ;;; ;;; This file is part of GNU Guix. ;;; @@ -3047,51 +3048,6 @@ user configuration files. It does not have support for serializing into YAML and is not compatible with JSON.") (license license:expat))) -(define-public scons - (package - (name "scons") - (version "3.0.4") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/SCons/scons") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1xy8jrwz87y589ihcld4hv7wn122sjbz914xn8h50ww77wbhk8hn")))) - (build-system python-build-system) - (arguments - `(#:use-setuptools? #f ; still relies on distutils - #:tests? #f ; no 'python setup.py test' command - #:phases - (modify-phases %standard-phases - (add-before 'build 'bootstrap - (lambda _ - (substitute* "src/engine/SCons/compat/__init__.py" - (("sys.modules\\[new\\] = imp.load_module\\(old, \\*imp.find_module\\(old\\)\\)") - "sys.modules[new] = __import__(old)")) - (substitute* "src/engine/SCons/Platform/__init__.py" - (("mod = imp.load_module\\(full_name, file, path, desc\\)") - "mod = __import__(full_name)")) - (invoke "python" "bootstrap.py" "build/scons" "DEVELOPER=guix") - (chdir "build/scons") - #t))))) - (home-page "https://scons.org/") - (synopsis "Software construction tool written in Python") - (description - "SCons is a software construction tool. Think of SCons as an improved, -cross-platform substitute for the classic Make utility with integrated -functionality similar to autoconf/automake and compiler caches such as ccache. -In short, SCons is an easier, more reliable and faster way to build -software.") - (license license:x11))) - -(define-public scons-python2 - (package - (inherit (package-with-python2 scons)) - (name "scons-python2"))) - (define-public python-exceptiongroup (package (name "python-exceptiongroup") @@ -8281,7 +8237,7 @@ procedures.") (substitute-keyword-arguments (package-arguments python-jaraco-context-bootstrap) ((#:tests? _ #f) - #t) + (not (%current-target-system))) ((#:phases phases #~%standard-phases) #~(modify-phases #$phases (replace 'check @@ -8332,7 +8288,7 @@ module with a few extra procedures.") (substitute-keyword-arguments (package-arguments python-jaraco-functools-bootstrap) ((#:tests? _ #f) - #t) + (not (%current-target-system))) ((#:phases phases #~%standard-phases) #~(modify-phases #$phases (replace 'check @@ -8732,7 +8688,7 @@ installing @code{kernelspec}s for use with Jupyter frontends.") (arguments (substitute-keyword-arguments (package-arguments base) ((#:tests? _ #f) - #t) + (not (%current-target-system))) ((#:phases phases #~%standard-phases) #~(modify-phases #$phases (replace 'check @@ -9715,7 +9671,7 @@ Python style, together with a fast and comfortable execution environment.") ;; because there are no AWS credentials. (delete-file "tests/test_tibanna.py") (invoke "pytest"))))))) - (inputs + (propagated-inputs (list python-appdirs python-configargparse python-connection-pool @@ -9766,15 +9722,14 @@ Python style, together with a fast and comfortable execution environment.") ;; For cluster execution Snakemake will call Python. Since there is ;; no suitable GUIX_PYTHONPATH set, cluster execution will fail. We ;; fix this by calling the snakemake wrapper instead. - - ;; XXX: There is another instance of sys.executable on line 692, but - ;; it is not clear how to patch it. (add-after 'unpack 'call-wrapper-not-wrapped-snakemake (lambda* (#:key outputs #:allow-other-keys) (substitute* "snakemake/executors/__init__.py" - (("\\{sys.executable\\} -m snakemake") - (string-append (assoc-ref outputs "out") - "/bin/snakemake"))))) + (("self\\.get_python_executable\\(\\),") + "") + (("\"-m snakemake\"") + (string-append "\"" (assoc-ref outputs "out") + "/bin/snakemake" "\""))))) (replace 'check (lambda* (#:key tests? #:allow-other-keys) (when tests? @@ -9786,7 +9741,7 @@ Python style, together with a fast and comfortable execution environment.") ;; to the Google Storage service. (delete-file "tests/test_google_lifesciences.py") (invoke "pytest"))))))) - (inputs + (propagated-inputs (list python-appdirs python-configargparse python-connection-pool @@ -11332,7 +11287,7 @@ from an XML-based format.") (arguments (substitute-keyword-arguments (package-arguments python-fonttools) ((#:tests? _ #f) - #t) + (not (%current-target-system))) ((#:phases phases '%standard-phases) `(modify-phases ,phases (replace 'check @@ -12409,7 +12364,7 @@ invoked on those path objects directly.") (substitute-keyword-arguments (package-arguments python-path-bootstrap) ((#:tests? _ #f) - #t) + (not (%current-target-system))) ((#:phases phases #~%standard-phases) #~(modify-phases #$phases (replace 'check @@ -12532,7 +12487,7 @@ $ rm -rf /tmp/env (arguments (substitute-keyword-arguments (package-arguments python-pip-run-bootstrap) ((#:tests? _ #f) - #t) + (not (%current-target-system))) ((#:phases phases #~%standard-phases) #~(modify-phases #$phases (replace 'check @@ -30450,6 +30405,68 @@ binary diff utility. It also provides two command-line tools, @code{bsdiff4} and @code{bspatch4}.") (license license:bsd-2))) +(define-public python-mpv + (package + (name "python-mpv") + (version "1.0.1") + (source + (origin + ;; python-mpv from pypi does not include the tests directory. + (method git-fetch) + (uri (git-reference + (url "https://github.com/jaseg/python-mpv") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "10w6j3n62ap45sf6q487kz8z6g58sha37i14fa2hhng794z7a8jh")) + (modules '((guix build utils))) + (snippet + #~(begin + ;; One of the tests never completes, so neutering it using + ;; early return allows other test to run without issue. + (substitute* "tests/test_mpv.py" + ;; Note the typo in "prooperty" - this was fixed later in + ;; upstream but has no effect on whether the tests hangs or not. + (("test_wait_for_prooperty_event_overflow.*" line) + ;; The long whitespace between \n and return is to match the + ;; identation level, which is significant in python. + (string-append line "\n return\n"))))))) + (build-system python-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-before 'build 'patch-reference-to-mpv + (lambda* (#:key inputs #:allow-other-keys) + ;; Without an absolute path it is not able find and + ;; load the libmpv library. + (substitute* "mpv.py" + (("sofile = .*") + (string-append "sofile = \"" + (search-input-file inputs "/lib/libmpv.so") + "\"\n"))))) + (add-before 'check 'prepare-for-tests + (lambda _ + ;; Fontconfig throws errors when it has no cache dir to use. + (setenv "XDG_CACHE_HOME" (getcwd)) + ;; Some tests fail without a writable and readable HOME. + (setenv "HOME" (getcwd))))))) + (native-inputs + (list python-xvfbwrapper)) ; needed for tests only + (inputs (list mpv)) + (propagated-inputs (list python-pillow)) ; for raw screenshots + (home-page "https://github.com/jaseg/python-mpv") + (synopsis "Python interface to the mpv media player") + (description + "python-mpv is a ctypes-based python interface to the mpv media player. +It gives you more or less full control of all features of the player, just +as the lua interface does.") + ;; From the project's README: + ;; python-mpv inherits the underlying libmpv's license, which can be either + ;; GPLv2 or later (default) or LGPLv2.1 or later. For details, see the mpv + ;; copyright page. + (license license:gpl2+))) + (define-public python-biblib (let ((upstream-version "0.1.0") (commit "ab0e857b9198fe425ec9b02fcc293b5d9fd0c406") diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 1c3d037d99..b090668e53 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -389,7 +389,7 @@ gdbm libffi ; for ctypes sqlite ; for sqlite extension - openssl + openssl-1.1 readline zlib tcl @@ -557,6 +557,9 @@ data types.") (map cdr outputs))))) (replace 'install-sitecustomize.py ,(customize-site version)))))) + (inputs + (modify-inputs (package-inputs python-2.7) + (replace "openssl" openssl))) (native-inputs `(("tzdata" ,tzdata-for-tests) ("unzip" ,unzip) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index cc41338b74..5a1d3f22c8 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -2831,7 +2831,7 @@ linux/libcurl_wrapper.h" (file-type 'regular) (separator #f) (variable "QTWEBENGINEPROCESS_PATH") - (files '("lib/qt5/libexec/QtWebEngineProcess"))))) + (files '("lib/qt6/libexec/QtWebEngineProcess"))))) (home-page "https://wiki.qt.io/QtWebEngine") (synopsis "Qt WebEngine module") (description "The Qt WebEngine module provides support for web diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index d612d1ab5b..1518f11906 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -29,6 +29,7 @@ ;;; Copyright © 2020 Tomás Ortín Fernández <tomasortin@mailbox.org> ;;; Copyright © 2021 Giovanni Biscuolo <g@xelera.eu> ;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com> +;;; Copyright © 2022 Remco van 't Veer <remco@remworks.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -100,7 +101,7 @@ (define-public ruby-2.6 (package (name "ruby") - (version "2.6.5") + (version "2.6.10") (source (origin (method url-fetch) @@ -109,7 +110,7 @@ "/ruby-" version ".tar.xz")) (sha256 (base32 - "0qhsw2mr04f3lqinkh557msr35pb5rdaqy4vdxcj91flgxqxmmnm")) + "1wn12klc44hn2nh5v1lkqbdyvljip6qhwjqvkkf8zf112gaxxn2z")) (modules '((guix build utils))) (snippet `(begin ;; Remove bundled libffi @@ -137,7 +138,7 @@ (("/bin/sh") (which "sh"))) #t))))) (inputs - (list readline openssl libffi gdbm)) + (list readline openssl-1.1 libffi gdbm)) (propagated-inputs (list zlib)) (native-search-paths @@ -154,6 +155,7 @@ a focus on simplicity and productivity.") (package (inherit ruby-2.6) (version "2.7.4") + (replacement ruby-2.7-fixed) ; security fixes (source (origin (inherit (package-source ruby-2.6)) @@ -188,24 +190,24 @@ a focus on simplicity and productivity.") (native-inputs (list autoconf)))) -(define-public ruby-3.0 +(define ruby-2.7-fixed (package (inherit ruby-2.7) - (version "3.0.2") + (version "2.7.6") (source (origin - (method url-fetch) - (uri (string-append "http://cache.ruby-lang.org/pub/ruby/" + (inherit (package-source ruby-2.7)) + (uri (string-append "https://cache.ruby-lang.org/pub/ruby/" (version-major+minor version) - "/ruby-" version ".tar.xz")) + "/ruby-" version ".tar.gz")) (sha256 (base32 - "0h2w2ms4gx2s96v3lzdr3add94bd2qqkhdjzaycmaqhg21rpf3jp")))))) + "042xrdk7hsv4072bayz3f8ffqh61i8zlhvck10nfshllq063n877")))))) -(define-public ruby-3.1 +(define-public ruby-3.0 (package (inherit ruby-2.7) - (version "3.1.1") + (version "3.0.4") (source (origin (method url-fetch) @@ -214,26 +216,15 @@ a focus on simplicity and productivity.") "/ruby-" version ".tar.xz")) (sha256 (base32 - "1akcl7vhmwfm6ybj7493kzy58ykh2r39ri9f4xfm2xmhg1msmvvs")))))) - -(define-public ruby-2.5 - (package - (inherit ruby-2.6) - (version "2.5.9") - (source - (origin - (method url-fetch) - (uri (string-append "http://cache.ruby-lang.org/pub/ruby/" - (version-major+minor version) - "/ruby-" version ".tar.xz")) - (sha256 - (base32 - "1w2qncacm7h3f3il1whghdabwnv9fvwmz9f1a9vcg32006ljyzx8")))))) + "1w7jpq3flnm007z5kj8kixgm8l4smb80w8ak4993a12j0irzq8lf")))) + (inputs + (modify-inputs (package-inputs ruby-2.7) + (replace "openssl" openssl))))) -(define-public ruby-2.4 +(define-public ruby-3.1 (package - (inherit ruby-2.6) - (version "2.4.10") + (inherit ruby-3.0) + (version "3.1.2") (source (origin (method url-fetch) @@ -242,12 +233,7 @@ a focus on simplicity and productivity.") "/ruby-" version ".tar.xz")) (sha256 (base32 - "1prhqlgik1zmw9lakl6hkriqslspw48pvhxff17h7ns42p8qwrnm")) - (modules '((guix build utils))) - (snippet `(begin - ;; Remove bundled libffi - (delete-file-recursively "ext/fiddle/libffi-3.2.1") - #t)))))) + "0amzqczgvr51ilcqfgw0n41hrfanzi0wh8k6am3x5dm1z0bx046a")))))) (define-public ruby ruby-2.7) @@ -7203,7 +7189,8 @@ run.") (arguments `(#:test-target "default" ;; TODO: Figure out why test hangs. - #:tests? ,(not (target-riscv64?)) + #:tests? ,(not (or (%current-target-system) + (target-riscv64?))) #:phases (modify-phases %standard-phases (add-before 'check 'set-home diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index 8aad752054..2fb43f13cb 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -166,7 +166,7 @@ (inputs `(("libcurl" ,curl) ("llvm" ,llvm) - ("openssl" ,openssl) + ("openssl" ,openssl-1.1) ("zlib" ,zlib))) (native-inputs `(("bison" ,bison) @@ -586,7 +586,7 @@ safety and thread safety guarantees.") (arguments (substitute-keyword-arguments (package-arguments base-rust) ((#:tests? _ #f) - #t) + (not (%current-target-system))) ((#:phases phases) `(modify-phases ,phases (add-after 'unpack 'relax-gdb-auto-load-safe-path diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index 9434455c19..3247b3c25a 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -12,6 +12,7 @@ ;;; Copyright © 2020, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2022 Jean-Pierre De Jesus DIAZ <me@jeandudey.tech> ;;; Copyright © 2022 Guillaume Le Vaillant <glv@posteo.net> +;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be> ;;; ;;; This file is part of GNU Guix. ;;; @@ -187,6 +188,8 @@ external dependencies.") (name "samba") (version "4.17.0rc3") ;4.16.4 doesn't build with mit-krb5 1.20 (source + ;; For updaters: the current PGP fingerprint is + ;; 81F5E2832BD2545A1897B713AA99442FB680B620. (origin (method url-fetch) (uri (string-append "https://download.samba.org/pub/samba/rc/" diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index e2842cfa08..5ae7cb0f2c 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -381,7 +381,7 @@ OpenSSL for TARGET." (error "unsupported openssl target architecture"))))) (string-append kernel "-" arch)))) -(define-public openssl +(define-public openssl-1.1 (package (name "openssl") (version "1.1.1q") @@ -515,7 +515,7 @@ OpenSSL for TARGET." (define-public openssl-3.0 (package - (inherit openssl) + (inherit openssl-1.1) (version "3.0.5") (source (origin (method url-fetch) @@ -531,7 +531,7 @@ OpenSSL for TARGET." (base32 "0yja085lygkdxbf4k4rckkj9r24p8dgix8avqljnbbbixydqszda")))) (arguments - (substitute-keyword-arguments (package-arguments openssl) + (substitute-keyword-arguments (package-arguments openssl-1.1) ((#:phases phases '%standard-phases) #~(modify-phases #$phases (add-before 'configure 'configure-perl @@ -541,6 +541,8 @@ OpenSSL for TARGET." "/bin/perl")))))))) (license license:asl2.0))) +(define-public openssl openssl-1.1) + (define-public bearssl (package (name "bearssl") diff --git a/gnu/packages/toys.scm b/gnu/packages/toys.scm index fb2f367490..8967c0c25b 100644 --- a/gnu/packages/toys.scm +++ b/gnu/packages/toys.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2017, 2018, 2020–2022 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Jesse Gibbons <jgibbons2357+guix@gmail.com> ;;; Copyright © 2019, 2020, 2021 Timotej Lazar <timotej.lazar@araneo.si> -;;; Copyright © 2019 Liliana Marie Prikler <liliana.prikler@gmail.com> +;;; Copyright © 2019, 2022 Liliana Marie Prikler <liliana.prikler@gmail.com> ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2021 Leo Famulari <leo@famulari.name> ;;; @@ -23,22 +23,119 @@ (define-module (gnu packages toys) #:use-module (gnu packages) + #:use-module (gnu packages base) + #:use-module (gnu packages bash) #:use-module (gnu packages bison) #:use-module (gnu packages flex) #:use-module (gnu packages gtk) #:use-module (gnu packages man) + #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) + #:use-module (gnu packages pretty-print) #:use-module (gnu packages pkg-config) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) #:use-module (guix build-system gnu) + #:use-module (guix build-system copy) + #:use-module (guix build-system meson) #:use-module (guix download) + #:use-module (guix gexp) #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix utils)) +(define-public daikichi + (package + (name "daikichi") + (version "0.3.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/lilyp/daikichi") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1y35f1qpxl743s0s83dg5ivkvprv19mqn0azm14k3y8pmp6cs52z")))) + (build-system meson-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'hard-code-test-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* (list "test-dat.in" "test-strings.in") + (("(basename|cmp|diff|mktemp|rm|sed|seq)" cmd) + (search-input-file inputs + (string-append "bin/" cmd))))))))) + (inputs (list bash-minimal coreutils sed + fmt gmp)) + (native-inputs (list pkg-config)) + (home-page "https://gitlab.com/lilyp/daikichi") + (synopsis "Display random fortunes") + (description "Daikichi is an alternative implementation of +@command{fortune}, which displays random quotes from a database. +This package provides just the utilities and no quotes.") + (license license:gpl3+) + (native-search-paths + (list (search-path-specification + (variable "DAIKICHI_FORTUNE_PATH") + (files '("share/fortunes"))))))) + +(define-public fortunes-jkirchartz + ;; No public release. + ;; Note to updaters: Please ensure that new quotes do not bring harm + ;; rather than fortune. + (let ((commit "2e32ba0a57e3842dc06c8128d880ab4c8ec3aefc") + (revision "0")) + (package + (name "fortunes-jkirchartz") + (version (git-version "0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/JKirchartz/fortunes") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1ym4ldzww5yfd76q7zvhi491bqlykfjnc215bqx1cbj0c8ndb2l4")) + (snippet + #~(for-each delete-file + ;; incompatible license + '("BibleAbridged"))))) + (build-system copy-build-system) + (native-inputs (list daikichi gnu-make)) + (arguments + (list #:install-plan + #~`(("." "share/fortunes" #:include-regexp ("\\.dat$"))) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda* (#:key inputs native-inputs #:allow-other-keys) + (substitute* "showerthoughts" + (("<") "<") + ((">") ">") + (("&") "&")) + (substitute* "Makefile" + (("strfile") "daikichi pack")))) + (add-before 'install 'build + (lambda _ + (invoke "make"))) + (add-after 'build 'check + (lambda* (#:key inputs tests? #:allow-other-keys) + (when tests? + (apply + invoke + (search-input-file inputs "libexec/daikichi/test-dat") + (find-files "." "\\.dat$")))))))) + (home-page "https://github.com/JKirchartz/fortunes") + (synopsis "Collection of fortunes") + (description "This package contains a large collection of quotes to +display via @command{fortune}, drawn from sources all around the world.") + (license license:unlicense)))) + (define-public lolcat (let ((commit "35dca3d0a381496d7195cd78f5b24aa7b62f2154") (revision "0")) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 15f3471c88..40eb9def72 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -1733,15 +1733,16 @@ execution of any hook written in any language before every commit.") (define-public mercurial (package (name "mercurial") - (version "5.8.1") + (version "6.2.1") (source (origin (method url-fetch) (uri (string-append "https://www.mercurial-scm.org/" "release/mercurial-" version ".tar.gz")) - (patches (search-patches "mercurial-hg-extension-path.patch")) + (patches (search-patches "mercurial-hg-extension-path.patch" + "mercurial-openssl-compat.patch")) (sha256 (base32 - "16xi4bmjqzi7ig8sfa5mnypfpbbbiyafmmqrs4nxmgc743za7fl1")))) + "1nl2726szaxyrxlyssrsir5c6vb4ci0i6g969i6xaahw1nidgica")))) (build-system gnu-build-system) (arguments `(#:make-flags @@ -1751,13 +1752,11 @@ execution of any hook written in any language before every commit.") (delete 'configure) (add-after 'unpack 'patch-tests (lambda _ - (substitute* '("tests/test-extdiff.t" - "tests/test-logtoprocess.t" - "tests/test-patchbomb.t" - "tests/test-run-tests.t" - "tests/test-transplant.t") + (substitute* (find-files "tests" "\\.(t|py)$") (("/bin/sh") - (which "sh"))))) + (which "sh")) + (("/usr/bin/env") + (which "env"))))) (replace 'check (lambda* (#:key tests? #:allow-other-keys) (with-directory-excursion "tests" @@ -1768,6 +1767,12 @@ execution of any hook written in any language before every commit.") ;; PATH from before (that's why we are building it!)? "test-hghave.t" + ;; This test creates a shebang spanning multiple + ;; lines which is difficult to substitute. It + ;; only tests the test runner itself, which gets + ;; thoroughly tested during the check phase anyway. + "test-run-tests.t" + ;; These tests fail because the program is not ;; connected to a TTY in the build container. "test-nointerrupt.t" @@ -1776,6 +1781,15 @@ execution of any hook written in any language before every commit.") ;; FIXME: This gets killed but does not receive an interrupt. "test-commandserver.t" + ;; These tests get unexpected warnings about using + ;; deprecated functionality in Python, but otherwise + ;; succeed; try enabling for later Mercurial versions. + "test-demandimport.py" + "test-patchbomb-tls.t" + ;; Similarly, this gets a more informative error + ;; message from Python 3.10 than it expects. + "test-http-bad-server.t" + ;; Only works when run in a hg-repo, not in an ;; extracted tarball "test-doctest.py" @@ -1806,7 +1820,7 @@ execution of any hook written in any language before every commit.") ;; The following inputs are only needed to run the tests. python-nose unzip which)) (inputs - (list python)) + (list python-wrapper)) ;; Find third-party extensions. (native-search-paths (list (search-path-specification diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index e59ff028e8..32530a4566 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -2497,7 +2497,7 @@ YouTube.com and many more sites.") (base32 "07qz1zdndlpki0asw35zk5hdjcwpl3n1g54nxg4yb1iykbyv7rll")))) (arguments (substitute-keyword-arguments (package-arguments youtube-dl) - ((#:tests? _) #t) + ((#:tests? _) (not (%current-target-system))) ((#:phases phases) #~(modify-phases #$phases ;; See the comment for the corresponding phase in youtube-dl. diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index a07c681cb3..f19b47c50d 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm @@ -77,7 +77,7 @@ (define-public vim (package (name "vim") - (version "9.0.0235") + (version "9.0.0325") (source (origin (method git-fetch) (uri (git-reference @@ -86,7 +86,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "1fshlggcq1fw4cbsgmagwxkmdiwv2cla0vds383z49ayqgqnamnj")))) + "18m3lhp7d8a0n3bx0kqn082gqrh7lyar1ndvwq79gj73fz5c19vh")))) (build-system gnu-build-system) (arguments `(#:test-target "test" diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index d451b8529e..73e6f89166 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -14,7 +14,7 @@ ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> ;;; Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com> -;;; Copyright © 2020, 2021 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2020, 2021, 2022 Marius Bakke <marius@gnu.org> ;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2021 Leo Famulari <leo@famulari.name> @@ -1311,9 +1311,16 @@ pretty simple, REST API.") (substitute* "scripts/meson-install-dirs.py" (("destdir = .*") "destdir = '/tmp'")))) + (add-after 'unpack 'use-absolute-dnsmasq + (lambda* (#:key inputs #:allow-other-keys) + (let ((dnsmasq (search-input-file inputs "sbin/dnsmasq"))) + (substitute* "src/util/virdnsmasq.c" + (("#define DNSMASQ \"dnsmasq\"") + (string-append "#define DNSMASQ \"" dnsmasq "\"")))))) (add-before 'configure 'disable-broken-tests (lambda _ (let ((tests (list "commandtest" ; hangs idly + "networkxml2conftest" ; fails with absolute dnsmasq "qemuxml2argvtest" ; fails "virnetsockettest"))) ; tries to network (substitute* "tests/meson.build" diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index c0b382f294..0d9bdb13be 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -107,6 +107,7 @@ #:use-module (gnu packages bison) #:use-module (gnu packages bittorrent) #:use-module (gnu packages boost) + #:use-module (gnu packages build-tools) #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages cpp) @@ -1953,7 +1954,8 @@ from streaming URLs. It is a command-line wrapper for the libquvi library.") ;;("gss" ,gss) zlib)) (arguments - `(#:scons-flags (list (string-append "APR=" (assoc-ref %build-inputs "apr")) + `(#:scons ,scons-3 ;TODO: remove in the next rebuild cycle + #:scons-flags (list (string-append "APR=" (assoc-ref %build-inputs "apr")) (string-append "APU=" (assoc-ref %build-inputs "apr-util")) (string-append "OPENSSL=" (assoc-ref %build-inputs "openssl")) ;; (string-append "GSSAPI=" (assoc-ref %build-inputs "gss")) diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm index d9e84b95a3..1af610b17f 100644 --- a/gnu/packages/webkit.scm +++ b/gnu/packages/webkit.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2022 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -123,7 +124,7 @@ the WPE-flavored port of WebKit.") engine that uses Wayland for graphics output.") (license license:bsd-2))) -(define %webkit-version "2.36.4") +(define %webkit-version "2.36.7") (define-public webkitgtk (package @@ -134,7 +135,7 @@ engine that uses Wayland for graphics output.") (uri (string-append "https://www.webkitgtk.org/releases/" name "-" version ".tar.xz")) (sha256 - (base32 "1a72w9md2xvb82rd2sk3c7pqrvr28rqa8i4yq5ldjyd4hlgvxgmn")) + (base32 "0hqpfgzbb7lzdih9aw86rmkljm8ynv8zw3b72z88211gngr0q9hc")) (patches (search-patches "webkitgtk-adjust-bubblewrap-paths.patch")))) (build-system cmake-build-system) @@ -302,7 +303,7 @@ propagated by default) such as @code{gst-plugins-good} and (uri (string-append "https://wpewebkit.org/releases/" name "-" version ".tar.xz")) (sha256 - (base32 "08f0sz4d5bpgrgvkgby3fri3wk5474f66gvp3y39laflypnknyih")))) + (base32 "1jcm5fjzn1k9l87qwqgmvd5qriwpv3vgs632zc6asqn5zxr7sx7k")))) (arguments (substitute-keyword-arguments (package-arguments webkitgtk) ((#:configure-flags flags) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index ebbd1a06bd..2a471a247b 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -579,7 +579,16 @@ subscribe to events.") (assoc-ref inputs "pango") "/lib/libpango-1.0.so.0\")\n")) (("^pangocairo = ffi.dlopen.*") (string-append "pangocairo = ffi.dlopen(\"" - (assoc-ref inputs "pango") "/lib/libpangocairo-1.0.so.0\")\n")))))))) + (assoc-ref inputs "pango") "/lib/libpangocairo-1.0.so.0\")\n"))))) + (add-after 'install 'install-xsession + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (xsessions (string-append out "/share/xsessions")) + (qtile (string-append out "/bin/qtile start"))) + (mkdir-p xsessions) + (copy-file "resources/qtile.desktop" (string-append xsessions "/qtile.desktop")) + (substitute* (string-append xsessions "/qtile.desktop") + (("qtile start") qtile)))))))) (inputs (list glib pango pulseaudio)) (propagated-inputs diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 0ba5f740ea..a88d9afa7a 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -93,6 +93,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages bison) + #:use-module (gnu packages build-tools) #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages documentation) |