diff options
Diffstat (limited to 'gnu/packages')
57 files changed, 3250 insertions, 2492 deletions
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 83572e2fc6..564002202d 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -401,7 +401,7 @@ precision.") (define-public giac (package (name "giac") - (version "1.9.0-998") + (version "2.0.0-10") (source (origin (method url-fetch) @@ -413,7 +413,7 @@ precision.") "https://www-fourier.ujf-grenoble.fr/~parisse/debian/dists/" "stable/main/source/giac_" version ".tar.gz")) (sha256 - (base32 "1r71kl21xxf3872r0q25r2b9wpg03zrp08rsnpyqrhajmxb0ljbz")))) + (base32 "1lzb0jjmkg5ml1qfl0m00qqng4sxgfqwrbq10gpkp4b301k2ckv1")))) (build-system gnu-build-system) (arguments (list @@ -428,12 +428,12 @@ precision.") (substitute* (cons "micropython-1.12/xcas/Makefile" (find-files "doc" "^Makefile")) (("/bin/cp") (which "cp"))))) - (add-after 'unpack 'disable-failing-test - ;; FIXME: Tests failing. Not sure why. - (lambda _ - (substitute* "check/Makefile.in" - (("chk_fhan(4|11)") "") - (("chk_fhan(14|21)") "")))) ;fail specifically on i686 + (replace 'bootstrap + (lambda _ + ;; XXX: Regenerate "src/mkjs" to avoid a build error because + ;; the default file is bogus in a Guix environment. + (delete-file "src/mkjs") + (invoke "autoreconf" "-vfi"))) (add-after 'install 'fix-doc (lambda _ ;; Most French documentation has a non-commercial license, so we @@ -454,7 +454,7 @@ precision.") ;; TODO: Unbundle "libmicropython.a". (list ao fltk-1.3 - glpk-4 + glpk gmp gsl libjpeg-turbo @@ -474,9 +474,12 @@ precision.") perl tcsh)) (native-inputs - (list bison + (list autoconf + automake + bison flex hevea + libtool python-wrapper readline (texlive-local-tree))) @@ -1235,6 +1238,28 @@ features, and more.") (synopsis "Micro-benchmarks of the Eigen linear algebra library"))) +(define-public eigen-for-onnxruntime + (let ((commit "1d8b82b0740839c0de7f1242a3585e3390ff5f33") + (revision "0")) + (package/inherit eigen + (name "eigen") + (version (git-version "3.4.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/libeigen/eigen") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0pxh81jjnz97ndwaanla6zch1128bfdrf2kgqxgxyjvqbdg1vqwi")))) + ;; XXX: Some tests fail, but onnxruntime will move on to the next + ;; release soon enough. + (arguments + (substitute-keyword-arguments (package-arguments eigen) + ((#:tests? tests? #t) + #f)))))) + (define-public eigen-for-tensorflow (let ((changeset "fd6845384b86") (revision "1")) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index f804f98a0f..f9bc43f952 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -772,7 +772,7 @@ line. The project also attempts to maintain the same terminal output.") (define-public android-udev-rules (package (name "android-udev-rules") - (version "20210501") + (version "20250525") (source (origin (method git-fetch) @@ -781,7 +781,7 @@ line. The project also attempts to maintain the same terminal output.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0pl1wfd7k9vz8mvy2jb2icc5f11c5p07aixpyhjs6gi5cyaywm5f")))) + (base32 "1m5ngii9alsia81nk0cr8d13kpkrizbk7gpf9ai5yq8m9bsd9q70")))) (build-system trivial-build-system) (native-inputs `(("source" ,source))) (arguments diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm index 5f5c8b8885..0960b567a5 100644 --- a/gnu/packages/astronomy.scm +++ b/gnu/packages/astronomy.scm @@ -2011,6 +2011,40 @@ implementation package such as asdf-astropy.") python-wheel)) (propagated-inputs '())))) +(define-public python-asdf-wcs-schemas + (hidden-package + (package + (name "python-asdf-wcs-schemas") + (version "0.5.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "asdf_wcs_schemas" version)) + (sha256 + (base32 "1dar2pzf2plwyl1rbmnv8fqvx1ljgpf3z39d4ybmn690djjdsyxg")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags #~(list "tests"))) + (native-inputs + (list python-asdf + python-pytest + python-pytest-openfiles + python-setuptools-next + python-setuptools-scm + python-wheel)) + (propagated-inputs + (list python-asdf-coordinates-schemas + python-asdf-standard + python-asdf-transform-schemas)) + (home-page "https://github.com/asdf-format/asdf-wcs-schemas") + (synopsis "ASDF WCS Schemas") + (description + "This package provides ASDF schemas for validating World Coordinate +System (WCS) tags. Users should not need to install this directly; instead, +install an implementation package such as gwcs.") + (license license:bsd-3)))) + (define-public python-asdf-zarr (package (name "python-asdf-zarr") @@ -4573,6 +4607,40 @@ observationally-derived galaxy merger catalogs.") satellite.") (license license:bsd-3))) +(define-public python-jplephem + (package + (name "python-jplephem") + (version "2.22") + (source + (origin + (method url-fetch) + (uri (pypi-uri "jplephem" version)) + (sha256 + (base32 "0b2rgb7pvwnl72pqjryf9c812mmdxr69fwiym7mnz05l2xrcr6hd")))) + (build-system pyproject-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "python" "-m" "unittest" "discover" "-s" "test"))))))) + (native-inputs + (list python-setuptools + python-wheel)) + (propagated-inputs + (list python-numpy)) + (home-page "https://github.com/brandon-rhodes/python-jplephem") + (synopsis "Python version of NASA DE4xx ephemerides") + (description + "@code{skyfield} computes positions for the stars, planets, and +satellites in orbit around the Earth. Its results should agree with the +positions generated by the United States Naval Observatory and their +Astronomical Almanac to within 0.0005 arcseconds (half a @emph{mas} or +milliarcsecond).") + (license license:expat))) + (define-public python-jwst (package (name "python-jwst") @@ -5325,6 +5393,179 @@ profiles. In particular, PetroFit includes tools for performing accurate photometry, segmentations, Petrosian profiling, and Sérsic fitting.") (license license:bsd-3))) +(define-public python-photutils + (package + (name "python-photutils") + (version "2.2.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "photutils" version)) + (sha256 + (base32 "1h1bf8694pf9qdv9gf0934v6dk08d3ybrj858salqnfz6prnfnzb")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + #~(list "--pyargs" "photutils" + "--numprocesses" (number->string (min 8 (parallel-job-count)))) + #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? test-flags #:allow-other-keys) + (when tests? + (with-directory-excursion "/tmp" + (apply invoke "pytest" "-vv" test-flags)))))))) + (propagated-inputs + (list python-astropy + python-bottleneck + python-gwcs + python-matplotlib + python-numpy + python-rasterio + python-regions + python-scikit-image + python-scipy + python-shapely + python-tqdm)) + (native-inputs + (list python-cython-3 + python-extension-helpers + python-pytest-astropy + python-pytest-xdist + python-setuptools + python-setuptools-scm)) + (home-page "https://github.com/astropy/photutils") + (synopsis "Source detection and photometry") + (description "Photutils is an Astropy package for detection and photometry +of astronomical sources.") + (license license:bsd-3))) + +(define-public python-pint-pulsar + (package + (name "python-pint-pulsar") + (version "1.1.3") + (source + (origin + (method git-fetch) ; no tests data in the PyPI tarball + (uri (git-reference + (url "https://github.com/nanograv/PINT") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0n66z7v30q1981hx4q5vy3mibrh453gak8dd938038r5mwddya3f")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + #~(list "-k" (string-join + ;; Tests failing with assertion on not correct precision + ;; or missing data files. + (list "not test_astropy_observatory" + "test_copy_wideband_fitter_object" + "test_IERS_B_builtin_agree_with_IERS_Auto_dX" + "test_astropy_observatory" + "test_time_construction_jds_exact[tdb]" + "test_copy_toa_object" + "test_copy_residuals" + "test_copy_fitter_object") + " and not ") + ;; XXX: The most of the tests require additional data, select + ;; files where they may run without it and check how to enable + ;; more. + "tests/test_Galactic.py" + "tests/test_all_component_and_model_builder.py" + "tests/test_astrometry.py" + "tests/test_astropy_observatory.py" + "tests/test_astropy_times.py" + "tests/test_astropy_version.py" + "tests/test_binary_generic.py" + "tests/test_binconvert.py" + "tests/test_compare.py" + "tests/test_compare_model.py" + "tests/test_compare_model_ecl_vs_icrs.py" + "tests/test_convert_parfile.py" + "tests/test_copy.py" + "tests/test_covariance_matrix.py" + "tests/test_datafiles.py" + "tests/test_derived_quantities.py" + "tests/test_derivedparams.py" + "tests/test_dmxrange_add_sub.py" + "tests/test_erfautils.py" + "tests/test_eventstats.py" + "tests/test_funcpar.py" + "tests/test_kepler.py" + "tests/test_leapsec.py" + "tests/test_model_manual.py" + "tests/test_numpy.py" + "tests/test_observatory_envar.py" + "tests/test_observatory_metadata.py" + "tests/test_parfile.py" + "tests/test_parunits.py" + "tests/test_pb.py" + "tests/test_phase.py" + "tests/test_pickle.py" + "tests/test_plk_widget.py" + "tests/test_plot_utils.py" + "tests/test_plrednoise.py" + "tests/test_pmtransform_units.py" + "tests/test_precision.py" + "tests/test_prefix_param_inheritance.py" + "tests/test_priors.py" + "tests/test_process_parfile.py" + "tests/test_pulsar_mjd.py" + "tests/test_pulsar_position.py" + "tests/test_reduced_precision.py" + "tests/test_satobs.py" + "tests/test_t2binary2pint.py" + "tests/test_tcb2tdb.py" + "tests/test_templates.py" + "tests/test_variety_parfiles.py" + "tests/test_version.py") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-deprecated-scripts + ;; ImportError: cannot import name 'CompositeMCMCFitter' from + ;; 'pint.mcmc_fitter'. + ;; + ;; Removed in 1.1.3: Broken fitter class `CompositeMCMCFitter` + ;; (this fitter was added seemingly to deal with combined radio and + ;; high-energy datasets, but has since been broken for a while.) + (lambda _ + (substitute* "pyproject.toml" + (("event_optimize_multiple.*") ""))))))) + (native-inputs + (list python-pytest + python-setuptools + python-versioneer + python-wheel)) + (propagated-inputs + (list python-astropy + python-corner + python-emcee + python-jplephem + python-loguru + python-matplotlib + python-nestle + python-numdifftools + python-numpy + python-pyerfa + python-scipy + python-uncertainties)) + (home-page "https://github.com/nanograv/PINT") + (synopsis "Software for high-precision pulsar timing") + (description + "PINT is not TEMPO3 - package providing a Pulsar Timing, written in +Python from scratch. +Features: +@itemize +@item a robust system to produce high-precision timing results that is +completely independent of TEMPO and Tempo2 +@item a system that is easy to extend and modify due to a good design +and the use of a modern programming language, techniques, and libraries +@end itemize") + (license license:bsd-3))) + (define-public python-pixell (package (name "python-pixell") @@ -5588,6 +5829,63 @@ Features: @end itemize") (license license:expat))) +(define-public python-pysat + (package + (name "python-pysat") + (version "3.2.2") + (source + (origin + (method git-fetch) ; no tests data in the PyPI tarball + (uri (git-reference + (url "https://github.com/pysat/pysat") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0gm71zafigwc94s37wqyl86yjabpq6wx9izwxag74wg1ynhqyvf0")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + #~(list "--durations=10" ; report 10 slowest tests + ;; Tests require pysatSpaceWeather which is not packed yet. + "--ignore=pysat/tests/test_utils_files.py" + "-k" "not test_from_os") + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + ;; Do not run test coverage. + (substitute* "pyproject.toml" + ((".*addopts.*cov.*") "")) + ;; No such file or directory: '/homeless-shelter/.pysat' + (setenv "HOME" "/tmp") + (mkdir "pysatData") + (invoke "python" "-c" + "import pysat; pysat.params['data_dirs'] = 'pysatData'")))))) + (native-inputs + (list python-pytest + python-pytest-xdist + python-setuptools + python-wheel)) + (propagated-inputs + (list python-dask + python-netcdf4 + python-numpy + python-pandas + python-portalocker + python-scipy + python-toolz + python-xarray)) + (home-page "https://github.com/pysat/pysat") + (synopsis "Supports science analysis across disparate data platforms") + (description + "The Python Satellite Data Analysis Toolkit (pysat) provides a simple and +flexible interface for robust data analysis from beginning to end - including +downloading, loading, cleaning, managing, processing, and analyzing +data. Pysat's plug-in design allows analysis support for any data, including +user provided data sets.") + (license license:bsd-3))) + (define-public python-pysiril (package (name "python-pysiril") @@ -5926,6 +6224,69 @@ PSF} describing how the optical system spreads light from sources.") observations from the Nancy Grace Roman Space Telescope.") (license license:bsd-3)))) +(define-public python-sbpy + (package + (name "python-sbpy") + (version "0.5.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "sbpy" version)) + (sha256 + (base32 "1xqi29rrh7v05zmvyl8gffrkrw5rlcxig1w6xw1v8f7ikydb5plv")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + #~(list "--numprocesses" (number->string (parallel-job-count))) + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'set-home-env + (lambda _ + ;; Tests require HOME to be set. + ;; No such file or directory: '/homeless-shelter/.astropy' + (setenv "HOME" "/tmp")))))) + (propagated-inputs + (list python-ads + python-astropy + python-astroquery + python-ginga + python-numpy + python-photutils + ;python-pyoorb ;not packed yet in Guix + python-pyyaml + python-scipy + python-synphot)) + (native-inputs + (list python-pytest + python-pytest-astropy + python-pytest-doctestplus + python-pytest-remotedata + python-pytest-xdist + python-setuptools-scm)) + (home-page "https://sbpy.org") + (synopsis "Python module for small-body planetary astronomy") + (description + "@code{sbpy} is a package for small-body planetary astronomy. It is +meant to supplement functionality provided by @code{astropy} with functions +and methods that are frequently used in the context of planetary astronomy +with a clear focus on asteroids and comets. +Features: +@itemize +@item observation planning tools tailored to moving objects +@item photometry models for resolved and unresolved observations +@item wrappers and tools for astrometry and orbit fitting +@item spectroscopy analysis tools and models for reflected solar light and +emission from gas +@item cometary gas and dust coma simulation and analysis tools +@item asteroid thermal models for flux estimation and size/albedo estimation +@item image enhancement tools for comet comae and PSF subtraction tools +@item lightcurve and shape analysis tools +@item access tools for various databases for orbital and physical data, as +well as ephemerides services +@end itemize") + (license license:bsd-3))) + (define-public python-sep (package/inherit libsep (name "python-sep") @@ -5954,6 +6315,68 @@ observations from the Nancy Grace Roman Space Telescope.") (list python-numpy)) (synopsis "Python library for Source Extraction and Photometry"))) +(define-public python-sep-pjw + (package + (name "python-sep-pjw") + (version "1.3.8") + (source + (origin + (method url-fetch) + (uri (pypi-uri "sep_pjw" version)) + (sha256 + (base32 "0lhxfq1acc6qc8nszfdrpwq6dizaypz3b6frknfv5qm59mb488r0")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags #~(list "test.py"))) + (native-inputs + (list python-cython + python-pytest + python-setuptools + python-setuptools-scm-next + python-wheel)) + (propagated-inputs + (list python-numpy + python-sep)) + (home-page "https://github.com/PJ-Watson/sep-pjw") + (synopsis "Alternative fork of SEP library") + (description + "This package provides an alternative maintained fork of SEP python +library with bug fixtures.") + (license (list license:expat license:lgpl3+ license:bsd-3)))) + +(define-public python-sgp4 + (package + (name "python-sgp4") + (version "2.24") + (source + (origin + (method url-fetch) + (uri (pypi-uri "sgp4" version)) + (sha256 + (base32 "0ll3gxjf697llh6nvisxnj2h4hl23nq1m24ymsykz8kf4ygj8man")))) + (build-system pyproject-build-system) + (native-inputs + (list python-setuptools + python-wheel)) + (propagated-inputs + (list python-numpy)) + (home-page "https://github.com/brandon-rhodes/python-sgp4") + (synopsis "Track earth satellite TLE orbits using SGP4") + (description + "This package provides a Python implementation for computations of the +position and velocity of an earth-orbiting satellite, given the satellite’s +@acronym{TLE, Two-line element set} orbital elements from a source like +@url{CelesTrak, https://celestrak.org/}. + +It implements the most recent version of @acronym{SGP4, Simplified General +Perturbation models}, and is regularly run against the SGP4 test suite to make +sure that its satellite position predictions agree to within 0.1 mm with the +predictions of the standard distribution of the algorithm. This error is far +less than the 1–3 km/day by which satellites themselves deviate from the ideal +orbits described in TLE files.") + (license license:expat))) + (define-public python-sirilic (package (name "python-sirilic") @@ -6391,88 +6814,6 @@ instruments.") (license (list license:bsd-3 ; licenses/LICENSE.rst, same as python-astropy license:expat)))) ; licenses/KOSMOS_LICENSE -(define-public python-jplephem - (package - (name "python-jplephem") - (version "2.22") - (source - (origin - (method url-fetch) - (uri (pypi-uri "jplephem" version)) - (sha256 - (base32 "0b2rgb7pvwnl72pqjryf9c812mmdxr69fwiym7mnz05l2xrcr6hd")))) - (build-system pyproject-build-system) - (arguments - (list - #:phases - #~(modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "python" "-m" "unittest" "discover" "-s" "test"))))))) - (native-inputs - (list python-setuptools - python-wheel)) - (propagated-inputs - (list python-numpy)) - (home-page "https://github.com/brandon-rhodes/python-jplephem") - (synopsis "Python version of NASA DE4xx ephemerides") - (description - "@code{skyfield} computes positions for the stars, planets, and -satellites in orbit around the Earth. Its results should agree with the -positions generated by the United States Naval Observatory and their -Astronomical Almanac to within 0.0005 arcseconds (half a @emph{mas} or -milliarcsecond).") - (license license:expat))) - -(define-public python-photutils - (package - (name "python-photutils") - (version "2.2.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "photutils" version)) - (sha256 - (base32 "1h1bf8694pf9qdv9gf0934v6dk08d3ybrj858salqnfz6prnfnzb")))) - (build-system pyproject-build-system) - (arguments - (list - #:test-flags - #~(list "--pyargs" "photutils" - "--numprocesses" (number->string (min 8 (parallel-job-count)))) - #:phases - #~(modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? test-flags #:allow-other-keys) - (when tests? - (with-directory-excursion "/tmp" - (apply invoke "pytest" "-vv" test-flags)))))))) - (propagated-inputs - (list python-astropy - python-bottleneck - python-gwcs - python-matplotlib - python-numpy - python-rasterio - python-regions - python-scikit-image - python-scipy - python-shapely - python-tqdm)) - (native-inputs - (list python-cython-3 - python-extension-helpers - python-pytest-astropy - python-pytest-xdist - python-setuptools - python-setuptools-scm)) - (home-page "https://github.com/astropy/photutils") - (synopsis "Source detection and photometry") - (description "Photutils is an Astropy package for detection and photometry -of astronomical sources.") - (license license:bsd-3))) - ;; XXX: The project is archived, maintained fork is available see ;; <https://github.com/poliastro/poliastro/issues/1640>. ;; Maintained fork <https://github.com/pleiszenburg/hapsira>. @@ -6756,38 +7097,6 @@ re-gridding of images from one world coordinate system to another e.g. changing the pixel resolution, orientation, coordinate system.") (license license:bsd-3))) -(define-public python-sgp4 - (package - (name "python-sgp4") - (version "2.24") - (source - (origin - (method url-fetch) - (uri (pypi-uri "sgp4" version)) - (sha256 - (base32 "0ll3gxjf697llh6nvisxnj2h4hl23nq1m24ymsykz8kf4ygj8man")))) - (build-system pyproject-build-system) - (native-inputs - (list python-setuptools - python-wheel)) - (propagated-inputs - (list python-numpy)) - (home-page "https://github.com/brandon-rhodes/python-sgp4") - (synopsis "Track earth satellite TLE orbits using SGP4") - (description - "This package provides a Python implementation for computations of the -position and velocity of an earth-orbiting satellite, given the satellite’s -@acronym{TLE, Two-line element set} orbital elements from a source like -@url{CelesTrak, https://celestrak.org/}. - -It implements the most recent version of @acronym{SGP4, Simplified General -Perturbation models}, and is regularly run against the SGP4 test suite to make -sure that its satellite position predictions agree to within 0.1 mm with the -predictions of the standard distribution of the algorithm. This error is far -less than the 1–3 km/day by which satellites themselves deviate from the ideal -orbits described in TLE files.") - (license license:expat))) - (define-public python-spectral-cube (package (name "python-spectral-cube") @@ -7393,63 +7702,6 @@ astrophysical simulations supporting PKDGRAV/Gasoline, Gadget, Gadget4/Arepo, N-Chilada and RAMSES AMR outputs.") (license license:gpl3+))) -(define-public python-pysat - (package - (name "python-pysat") - (version "3.2.2") - (source - (origin - (method git-fetch) ; no tests data in the PyPI tarball - (uri (git-reference - (url "https://github.com/pysat/pysat") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0gm71zafigwc94s37wqyl86yjabpq6wx9izwxag74wg1ynhqyvf0")))) - (build-system pyproject-build-system) - (arguments - (list - #:test-flags - #~(list "--durations=10" ; report 10 slowest tests - ;; Tests require pysatSpaceWeather which is not packed yet. - "--ignore=pysat/tests/test_utils_files.py" - "-k" "not test_from_os") - #:phases - #~(modify-phases %standard-phases - (add-before 'check 'pre-check - (lambda _ - ;; Do not run test coverage. - (substitute* "pyproject.toml" - ((".*addopts.*cov.*") "")) - ;; No such file or directory: '/homeless-shelter/.pysat' - (setenv "HOME" "/tmp") - (mkdir "pysatData") - (invoke "python" "-c" - "import pysat; pysat.params['data_dirs'] = 'pysatData'")))))) - (native-inputs - (list python-pytest - python-pytest-xdist - python-setuptools - python-wheel)) - (propagated-inputs - (list python-dask - python-netcdf4 - python-numpy - python-pandas - python-portalocker - python-scipy - python-toolz - python-xarray)) - (home-page "https://github.com/pysat/pysat") - (synopsis "Supports science analysis across disparate data platforms") - (description - "The Python Satellite Data Analysis Toolkit (pysat) provides a simple and -flexible interface for robust data analysis from beginning to end - including -downloading, loading, cleaning, managing, processing, and analyzing -data. Pysat's plug-in design allows analysis support for any data, including -user provided data sets.") - (license license:bsd-3))) - (define-public python-pysiaf (package (name "python-pysiaf") @@ -7544,99 +7796,6 @@ photometric systems are available, and users can incorporate their own filters, spectra, and data.") (license license:bsd-3)))) -(define-public python-sbpy - (package - (name "python-sbpy") - (version "0.5.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "sbpy" version)) - (sha256 - (base32 "1xqi29rrh7v05zmvyl8gffrkrw5rlcxig1w6xw1v8f7ikydb5plv")))) - (build-system pyproject-build-system) - (arguments - (list - #:test-flags - #~(list "--numprocesses" (number->string (parallel-job-count))) - #:phases - #~(modify-phases %standard-phases - (add-before 'check 'set-home-env - (lambda _ - ;; Tests require HOME to be set. - ;; No such file or directory: '/homeless-shelter/.astropy' - (setenv "HOME" "/tmp")))))) - (propagated-inputs - (list python-ads - python-astropy - python-astroquery - python-ginga - python-numpy - python-photutils - ;python-pyoorb ;not packed yet in Guix - python-pyyaml - python-scipy - python-synphot)) - (native-inputs - (list python-pytest - python-pytest-astropy - python-pytest-doctestplus - python-pytest-remotedata - python-pytest-xdist - python-setuptools-scm)) - (home-page "https://sbpy.org") - (synopsis "Python module for small-body planetary astronomy") - (description - "@code{sbpy} is a package for small-body planetary astronomy. It is -meant to supplement functionality provided by @code{astropy} with functions -and methods that are frequently used in the context of planetary astronomy -with a clear focus on asteroids and comets. -Features: -@itemize -@item observation planning tools tailored to moving objects -@item photometry models for resolved and unresolved observations -@item wrappers and tools for astrometry and orbit fitting -@item spectroscopy analysis tools and models for reflected solar light and -emission from gas -@item cometary gas and dust coma simulation and analysis tools -@item asteroid thermal models for flux estimation and size/albedo estimation -@item image enhancement tools for comet comae and PSF subtraction tools -@item lightcurve and shape analysis tools -@item access tools for various databases for orbital and physical data, as -well as ephemerides services -@end itemize") - (license license:bsd-3))) - -(define-public python-sep-pjw - (package - (name "python-sep-pjw") - (version "1.3.8") - (source - (origin - (method url-fetch) - (uri (pypi-uri "sep_pjw" version)) - (sha256 - (base32 "0lhxfq1acc6qc8nszfdrpwq6dizaypz3b6frknfv5qm59mb488r0")))) - (build-system pyproject-build-system) - (arguments - (list - #:test-flags #~(list "test.py"))) - (native-inputs - (list python-cython - python-pytest - python-setuptools - python-setuptools-scm-next - python-wheel)) - (propagated-inputs - (list python-numpy - python-sep)) - (home-page "https://github.com/PJ-Watson/sep-pjw") - (synopsis "Alternative fork of SEP library") - (description - "This package provides an alternative maintained fork of SEP python -library with bug fixtures.") - (license (list license:expat license:lgpl3+ license:bsd-3)))) - (define-public python-asdf-standard (package (name "python-asdf-standard") @@ -7745,165 +7904,6 @@ implementation package such as asdf-astropy.") "This package provides ASDF schemas for validating FITS tags.") (license license:bsd-3))))) -(define-public python-asdf-wcs-schemas - (hidden-package - (package - (name "python-asdf-wcs-schemas") - (version "0.5.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "asdf_wcs_schemas" version)) - (sha256 - (base32 "1dar2pzf2plwyl1rbmnv8fqvx1ljgpf3z39d4ybmn690djjdsyxg")))) - (build-system pyproject-build-system) - (arguments - (list - #:test-flags #~(list "tests"))) - (native-inputs - (list python-asdf - python-pytest - python-pytest-openfiles - python-setuptools-next - python-setuptools-scm - python-wheel)) - (propagated-inputs - (list python-asdf-coordinates-schemas - python-asdf-standard - python-asdf-transform-schemas)) - (home-page "https://github.com/asdf-format/asdf-wcs-schemas") - (synopsis "ASDF WCS Schemas") - (description - "This package provides ASDF schemas for validating World Coordinate -System (WCS) tags. Users should not need to install this directly; instead, -install an implementation package such as gwcs.") - (license license:bsd-3)))) - -(define-public python-pint-pulsar - (package - (name "python-pint-pulsar") - (version "1.1.3") - (source - (origin - (method git-fetch) ; no tests data in the PyPI tarball - (uri (git-reference - (url "https://github.com/nanograv/PINT") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0n66z7v30q1981hx4q5vy3mibrh453gak8dd938038r5mwddya3f")))) - (build-system pyproject-build-system) - (arguments - (list - #:test-flags - #~(list "-k" (string-join - ;; Tests failing with assertion on not correct precision - ;; or missing data files. - (list "not test_astropy_observatory" - "test_copy_wideband_fitter_object" - "test_IERS_B_builtin_agree_with_IERS_Auto_dX" - "test_astropy_observatory" - "test_time_construction_jds_exact[tdb]" - "test_copy_toa_object" - "test_copy_residuals" - "test_copy_fitter_object") - " and not ") - ;; XXX: The most of the tests require additional data, select - ;; files where they may run without it and check how to enable - ;; more. - "tests/test_Galactic.py" - "tests/test_all_component_and_model_builder.py" - "tests/test_astrometry.py" - "tests/test_astropy_observatory.py" - "tests/test_astropy_times.py" - "tests/test_astropy_version.py" - "tests/test_binary_generic.py" - "tests/test_binconvert.py" - "tests/test_compare.py" - "tests/test_compare_model.py" - "tests/test_compare_model_ecl_vs_icrs.py" - "tests/test_convert_parfile.py" - "tests/test_copy.py" - "tests/test_covariance_matrix.py" - "tests/test_datafiles.py" - "tests/test_derived_quantities.py" - "tests/test_derivedparams.py" - "tests/test_dmxrange_add_sub.py" - "tests/test_erfautils.py" - "tests/test_eventstats.py" - "tests/test_funcpar.py" - "tests/test_kepler.py" - "tests/test_leapsec.py" - "tests/test_model_manual.py" - "tests/test_numpy.py" - "tests/test_observatory_envar.py" - "tests/test_observatory_metadata.py" - "tests/test_parfile.py" - "tests/test_parunits.py" - "tests/test_pb.py" - "tests/test_phase.py" - "tests/test_pickle.py" - "tests/test_plk_widget.py" - "tests/test_plot_utils.py" - "tests/test_plrednoise.py" - "tests/test_pmtransform_units.py" - "tests/test_precision.py" - "tests/test_prefix_param_inheritance.py" - "tests/test_priors.py" - "tests/test_process_parfile.py" - "tests/test_pulsar_mjd.py" - "tests/test_pulsar_position.py" - "tests/test_reduced_precision.py" - "tests/test_satobs.py" - "tests/test_t2binary2pint.py" - "tests/test_tcb2tdb.py" - "tests/test_templates.py" - "tests/test_variety_parfiles.py" - "tests/test_version.py") - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'remove-deprecated-scripts - ;; ImportError: cannot import name 'CompositeMCMCFitter' from - ;; 'pint.mcmc_fitter'. - ;; - ;; Removed in 1.1.3: Broken fitter class `CompositeMCMCFitter` - ;; (this fitter was added seemingly to deal with combined radio and - ;; high-energy datasets, but has since been broken for a while.) - (lambda _ - (substitute* "pyproject.toml" - (("event_optimize_multiple.*") ""))))))) - (native-inputs - (list python-pytest - python-setuptools - python-versioneer - python-wheel)) - (propagated-inputs - (list python-astropy - python-corner - python-emcee - python-jplephem - python-loguru - python-matplotlib - python-nestle - python-numdifftools - python-numpy - python-pyerfa - python-scipy - python-uncertainties)) - (home-page "https://github.com/nanograv/PINT") - (synopsis "Software for high-precision pulsar timing") - (description - "PINT is not TEMPO3 - package providing a Pulsar Timing, written in -Python from scratch. -Features: -@itemize -@item a robust system to produce high-precision timing results that is -completely independent of TEMPO and Tempo2 -@item a system that is easy to extend and modify due to a good design -and the use of a modern programming language, techniques, and libraries -@end itemize") - (license license:bsd-3))) - (define-public python-rad (package (name "python-rad") diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 153eed9d9a..95c0de66eb 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -50,6 +50,7 @@ ;;; Copyright © 2024 mio <stigma@disroot.org> ;;; Copyright © 2024 Nikita Domnitskii <nikita@domnitskii.me> ;;; Copyright © 2024 Roman Scherer <roman@burningswell.com> +;;; Copyright © 2024 Sughosha <sughosha@disroot.org> ;;; Copyright © 2025 Junker <dk@junkeria.club> ;;; Copyright © 2025 Sughosha <sughosha@disroot.org> ;;; Copyright © 2025 Andrew Wong <wongandj@icloud.com> @@ -3473,16 +3474,28 @@ provided by Pipewire.") (define-public python-pyaudio (package (name "python-pyaudio") - (version "0.2.12") + (version "0.2.14") (source (origin (method url-fetch) (uri (pypi-uri "PyAudio" version)) (sha256 - (base32 "17pvc27pn2xbisbq7nibhidyw8h2kyms7g2xbyx7nlxwfbdzbpam")))) - (build-system python-build-system) - (inputs - (list portaudio)) + (base32 "11rgpnahh2kr3x4plr0r7kpccmbplm35cj669wglv6dlg4wgzpvq")))) + (build-system pyproject-build-system) + (arguments + (list + ;; XXX: Most tests require access to devices. + #:tests? #f + #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? test-flags #:allow-other-keys) + (when tests? + (setenv "PYTHONPATH" (string-append (getcwd) "/tests")) + (apply invoke "python" test-flags))))))) + (native-inputs + (list python-numpy python-setuptools python-wheel)) + (inputs (list portaudio)) (home-page "https://people.csail.mit.edu/hubert/pyaudio/") (synopsis "Bindings for PortAudio v19") (description "This package provides bindings for PortAudio v19, the @@ -3673,6 +3686,52 @@ one-dimensional sample-rate conversion library.") files.") (license license:expat))) +(define-public python-wavefile + (package + (name "python-wavefile") + (version "1.6.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "wavefile" version)) + (sha256 + (base32 "120r003xy0cv6a4d4cjxv140im007klgkvzfgc57m70rcbnggi7p")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + #~(list "-k" (string-join + ;; Assertion fail to compare files. + (list "not test_allFormats" + "test_commonFormats" + "test_majorFormats" + "test_subtypeFormats") + " and not ")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-libsndfile-path + (lambda _ + (substitute* "wavefile/libsndfile.py" + (("'libsndfile") + (string-append "'" #$(this-package-input "libsndfile") + "/lib/libsndfile")))))))) + (native-inputs + (list python-pytest + python-pytest-cov + python-setuptools-next)) + (inputs + (list libsndfile + portaudio)) + (propagated-inputs + (list python-numpy + python-pyaudio)) + (home-page "https://github.com/vokimon/python-wavefile") + (synopsis "Pythonic audio file reader and writer") + (description + "This package provides pythonic libsndfile wrapper to read and write audio +files.") + (license license:gpl3+))) + (define-public audio-to-midi (package (name "audio-to-midi") diff --git a/gnu/packages/avr-xyz.scm b/gnu/packages/avr-xyz.scm index c684b6183b..4a3571175e 100644 --- a/gnu/packages/avr-xyz.scm +++ b/gnu/packages/avr-xyz.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> -;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com> +;;; Copyright © 2022, 2025 Artyom V. Poptsov <poptsov.artyom@gmail.com> ;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; ;;; This file is part of GNU Guix. @@ -34,6 +34,7 @@ #:use-module (gnu packages bash) #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages gcc) #:use-module (gnu packages avr) #:use-module (gnu packages documentation) #:use-module (gnu packages elf) @@ -64,6 +65,13 @@ #:tests? #f #:phases #~(modify-phases %standard-phases (delete 'configure) + (add-after 'unpack 'disable-shared-library + (lambda _ + ;; XXX: "libsimavr.so"" fails to build due to a linker + ;; error. Disable the shared library for now. + (substitute* "simavr/Makefile" + (("ifeq \\(\\$\\{shell uname\\}, Linux\\)") + "ifeq (1, 0)")))) (replace 'check (lambda* (#:key tests? outputs #:allow-other-keys) (when tests? diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index c9d745c0d6..55087ed54a 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -21337,32 +21337,35 @@ repeated areas between contigs.") (define-public vembrane (package (name "vembrane") - (version "0.13.2") + (version "1.0.7") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/vembrane/vembrane") - (commit (string-append "v" version)))) + (url "https://github.com/vembrane/vembrane") + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "1gdih56gpqd8ks3sd4ah844kac09hi3g073k9gvazb32ah50900w")))) + "127wmwj0162nfaql68jwxlkz7rbnjya70xrj4j8zwvcnxcj7x5v3")))) (build-system pyproject-build-system) (arguments (list #:phases - '(modify-phases %standard-phases - (add-after 'unpack 'relax-requirements - (lambda _ - (substitute* "pyproject.toml" - (("pysam = \"\\^0.19\"") "pysam = \"^0.20\"") - (("numpy = \\{ version = \"\\^1.23\"") - "numpy = { version = \"^1\""))))))) + #~(modify-phases %standard-phases + (add-after 'unpack 'use-poetry-core + (lambda _ + ;; Patch to use the core poetry API. + (substitute* "pyproject.toml" + (("poetry.masonry.api") "poetry.core.masonry.api"))))))) (inputs - (list python-asttokens python-intervaltree python-numpy - python-pysam python-pyyaml)) + (list python-asttokens + python-intervaltree + python-numpy + python-pysam + python-pyyaml)) (native-inputs - (list poetry python-pytest)) + (list python-poetry-core + python-pytest)) (home-page "https://github.com/vembrane/vembrane") (synopsis "Filter VCF/BCF files with Python expressions") (description "Vembrane simultaneously filters variants based on @@ -24051,24 +24054,35 @@ parser for Python.") (define-public nanosv (package - (name "nanosv") - (version "1.2.4") - (source (origin - (method url-fetch) - (uri (pypi-uri "NanoSV" version)) - (sha256 - (base32 - "1wl2daj0bwrl8fx5xi8j8hfs3mp3vg3qycy66538n032v1qkc6xg")))) - (build-system python-build-system) - (inputs - (list python-configparser python-pysam python-pyvcf3)) - (home-page "https://github.com/mroosmalen/nanosv") - (synopsis "Structural variation detection tool for Oxford Nanopore data") - (description "NanoSV is a software package that can be used to identify + (name "nanosv") + (version "1.2.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "NanoSV" version)) + (sha256 + (base32 "1wl2daj0bwrl8fx5xi8j8hfs3mp3vg3qycy66538n032v1qkc6xg")))) + (build-system pyproject-build-system) + (arguments + (list + #:tests? #f ; No tests upstream, even in git. + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'relax-requirements + (lambda _ + (substitute* "setup.py" + (("'pyvcf'") + "'pyvcf3'"))))))) + (native-inputs (list python-setuptools python-wheel)) + (inputs (list python-configparser python-pysam python-pyvcf3)) + (home-page "https://github.com/mroosmalen/nanosv") + (synopsis "Structural variation detection tool for Oxford Nanopore data") + (description + "NanoSV is a software package that can be used to identify structural genomic variations in long-read sequencing data, such as data produced by Oxford Nanopore Technologies’ MinION, GridION or PromethION instruments, or Pacific Biosciences RSII or Sequel sequencers.") - (license license:expat))) + (license license:expat))) (define-public python-strawc (package diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm index 170d32f3e3..caf7efe197 100644 --- a/gnu/packages/build-tools.scm +++ b/gnu/packages/build-tools.scm @@ -720,29 +720,27 @@ a build worked by accident.") (file-name (git-file-name name version)) (sha256 (base32 "1sqdnkka3c6b6hwnrmlwrgy7w62cp8raq8mph9pgd2lydzzbvwlp")))) - (build-system python-build-system) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'install 'fix-filename - (lambda* (#:key outputs #:allow-other-keys) - (let ((bin (string-append (assoc-ref outputs "out") "/bin/"))) - ;; Main osc tool is renamed in spec file, not setup.py, let's - ;; do that too. - (rename-file - (string-append bin "osc-wrapper.py") - (string-append bin "osc")) - #t)))))) - (native-inputs - (list python-chardet)) - (inputs - (list python-m2crypto python-pycurl rpm)) ; for python-rpm + (list + ;; XXX: Tests require a config file. + #:tests? #f + #:phases + #~(modify-phases %standard-phases + (add-after 'install 'fix-filename + (lambda _ + (with-directory-excursion (string-append #$output "/bin") + ;; osc tool is renamed in spec file, not setup.py. + (rename-file "osc-wrapper.py" "osc"))))))) + (native-inputs (list python-chardet python-setuptools python-wheel)) + (inputs (list python-m2crypto python-pycurl rpm)) ;for python-rpm (home-page "https://github.com/openSUSE/osc") (synopsis "Open Build Service command line tool") - (description "@command{osc} is a command line interface to the Open Build -Service. It allows you to checkout, commit, perform reviews etc. The vast -majority of the OBS functionality is available via commands and the rest can -be reached via direct API calls.") + (description + "@command{osc} is a command line interface to the Open Build Service. It +allows you to checkout, commit, perform reviews etc. The vast majority of the +OBS functionality is available via commands and the rest can be reached via +direct API calls.") (license license:gpl2+))) (define-public compdb @@ -774,28 +772,36 @@ right compilation options.") (name "compiledb") (version "0.10.1") (source - (origin - (method url-fetch) - (uri (pypi-uri "compiledb" version)) - (sha256 - (base32 "0vlngsdxfakyl8b7rnvn8h3l216lhbrrydr04yhy6kd03zflgfq6")))) - (build-system python-build-system) + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nickdiego/compiledb") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0qricdgqzry7j3rmgwyd43av3c2kxpzkh6f9zcqbzrjkn78qbpd4")))) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'no-compat-shim-dependency - ;; shutilwhich is only needed for python 3.3 and earlier - (lambda _ - (substitute* "setup.py" (("^ *'shutilwhich'\n") "")) - (substitute* "compiledb/compiler.py" (("shutilwhich") "shutil"))))))) - (propagated-inputs - (list python-bashlex python-click)) - (native-inputs - (list python-pytest)) - (home-page - "https://github.com/nickdiego/compiledb") + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'no-compat-shim-dependency + ;; shutilwhich is only needed for python 3.3 and earlier + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "setup.py" + (("^ *'shutilwhich'\n") + "")) + (substitute* "compiledb/compiler.py" + (("shutilwhich") + "shutil")) + (substitute* "tests/data/multiple_commands_oneline.txt" + (("/bin/echo") + (search-input-file inputs "bin/echo")))))))) + (propagated-inputs (list python-bashlex python-click)) + (native-inputs (list python-pytest python-setuptools python-wheel)) + (home-page "https://github.com/nickdiego/compiledb") (synopsis - "Generate Clang JSON Compilation Database files for make-based build systems") + "Generate Clang JSON Compilation Database files for make-based build systems") (description "@code{compiledb} provides a @code{make} python wrapper script which, besides executing the make build command, updates the JSON compilation diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index bcfdc26778..d20cbf31e0 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -717,69 +717,44 @@ from an audio CD.") (name "abcde") (version "2.9.3") (home-page "https://abcde.einval.com/") - (source (origin - (method url-fetch) - (uri (string-append home-page "/download/abcde-" - version ".tar.gz")) - (sha256 - (base32 - "091ip2iwb6b67bhjsj05l0sxyq2whqjycbzqpkfbpm4dlyxx0v04")) - (modules '((guix build utils))) - (snippet - '(begin - (substitute* "Makefile" - (("/usr/bin/install") - "install")))))) + (source + (origin + (method url-fetch) + (uri (string-append home-page "/download/abcde-" version ".tar.gz")) + (sha256 + (base32 "091ip2iwb6b67bhjsj05l0sxyq2whqjycbzqpkfbpm4dlyxx0v04")))) (build-system gnu-build-system) (arguments - '(#:phases - (modify-phases %standard-phases - (replace 'configure - (lambda* (#:key outputs inputs #:allow-other-keys) - (substitute* "Makefile" - (("^prefix = .*$") - (string-append "prefix = " - (assoc-ref outputs "out") - "\n")) - (("^sysconfdir = .*$") - (string-append "sysconfdir = " - (assoc-ref outputs "out") - "/etc/\n"))))) - (add-after 'install 'wrap - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((wget (assoc-ref inputs "wget")) - (vorbis (assoc-ref inputs "vorbis-tools")) - (parano (assoc-ref inputs "cdparanoia")) - (which (assoc-ref inputs "which")) - (discid (assoc-ref inputs "cd-discid")) - (perl-discid (assoc-ref inputs "perl-musicbrainz-discid")) - (perl-ws (assoc-ref inputs "perl-webservice-musicbrainz")) - (perl-mojo (assoc-ref inputs "perl-mojolicious")) - (flac (assoc-ref inputs "flac")) - (out (assoc-ref outputs "out"))) - (define (wrap file) - (wrap-program file - `("PATH" ":" prefix - (,(string-append out "/bin:" - wget "/bin:" - flac "/bin:" - which "/bin:" - vorbis "/bin:" - discid "/bin:" - parano "/bin"))) - `("PERL5LIB" ":" prefix - (,(string-append perl-discid - "/lib/perl5/site_perl:" - perl-ws - "/lib/perl5/site_perl:" - perl-mojo - "/lib/perl5/site_perl"))))) - - (for-each wrap - (find-files (string-append out "/bin") - ".*")))))) - #:tests? #f)) ; no test target - + (list + #:tests? #f ; No test target. + #:modules `((guix build gnu-build-system) + (guix build utils) + (srfi srfi-26)) + #:make-flags + #~(list (string-append "INSTALL=" + #$(this-package-native-input "coreutils-minimal") + "/bin/install -c") + (string-append "prefix = " #$output) + (string-append "sysconfdir = " #$output "/etc/")) + #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (add-after 'install 'wrap + (lambda* (#:key inputs #:allow-other-keys) + (for-each + (cut wrap-program <> + `("PATH" ":" prefix + ,(map (compose dirname (cut search-input-file inputs <>)) + (list "/bin/wget" + "/bin/flac" + "/bin/which" + "/bin/ogginfo" + "/bin/cd-discid" + "/bin/cdparanoia"))) + `("PERL5LIB" ":" prefix + (,(getenv "PERL5LIB")))) + (find-files (string-append #$output "/bin")))))))) + (native-inputs (list coreutils-minimal)) (inputs (list bash-minimal wget which @@ -793,7 +768,6 @@ from an audio CD.") ;; A couple of Python and Perl scripts are included. python perl)) - (synopsis "Command-line audio CD ripper") (description "abcde is a front-end command-line utility (actually, a shell script) diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 004ddef446..9272c1dfc1 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -2237,26 +2237,24 @@ side-effects (such as setting environment variables).") (define-public python-scripttest (package (name "python-scripttest") - (version "1.3") + (version "2.0") (source (origin - (method url-fetch) - (uri (pypi-uri "scripttest" version)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/pypa/scripttest") + (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 - "0f4w84k8ck82syys7yg9maz93mqzc8p5ymis941x034v44jzq74m")))) - (build-system python-build-system) - (native-inputs - (list python-pytest)) - (arguments - ;; Tests not shipped with PyPI archive, and require TLS CA cert. - (list #:tests? #f)) - (home-page (string-append "https://web.archive.org/web/20161029233413/" - "http://pythonpaste.org/scripttest/")) + (base32 "07cyrh4yp8497radz8cx7la2p8yr78r77xm62hh77hcs1migznaf")))) + (build-system pyproject-build-system) + (native-inputs (list python-pytest python-setuptools python-wheel)) + (home-page "https://github.com/pypa/scripttest") (synopsis "Python library to test command-line scripts") - (description "Scripttest is a Python helper library for testing -interactive command-line applications. With it you can run a script in a -subprocess and see the output as well as any file modifications.") + (description + "Scripttest is a Python helper library for testing interactive +command-line applications. With it you can run a script in a subprocess and +see the output as well as any file modifications.") (license license:expat))) (define-public python-testtools-bootstrap @@ -2907,32 +2905,23 @@ failures.") (package (name "python-pytest-freezegun") (version "0.4.2") - (source (origin - ;; The test suite is not included in the PyPI archive. - (method git-fetch) - (uri (git-reference - (url "https://github.com/ktosiek/pytest-freezegun") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "10c4pbh03b4s1q8cjd75lr0fvyf9id0zmdk29566qqsmaz28npas")))) - (build-system python-build-system) - (arguments - (list - #:phases - #~(modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "pytest" "-vv"))))))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ktosiek/pytest-freezegun") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "10c4pbh03b4s1q8cjd75lr0fvyf9id0zmdk29566qqsmaz28npas")))) + (build-system pyproject-build-system) (propagated-inputs (list python-freezegun python-pytest)) - (native-inputs (list unzip)) + (native-inputs (list python-setuptools python-wheel)) (home-page "https://github.com/ktosiek/pytest-freezegun") (synopsis "Pytest plugin to freeze time in test fixtures") - (description "The @code{pytest-freezegun} plugin wraps tests and fixtures -with @code{freeze_time}, which controls (i.e., freeze) the time seen -by the test.") + (description + "The @code{pytest-freezegun} plugin wraps tests and fixtures with +@code{freeze_time}, which controls (i.e., freeze) the time seen by the test.") (license license:expat))) (define-public python-pytest-mypy @@ -3215,26 +3204,6 @@ pragmas to control it from within your code. Additionally, it is possible to write plugins to add your own checks.") (license license:gpl2+))) -(define-public python-pytest-capturelog - (package - (name "python-pytest-capturelog") - (version "0.7") - (source - (origin - (method url-fetch) - (uri (pypi-uri "pytest-capturelog" version ".tar.gz")) - (sha256 - (base32 - "038049nyjl7di59ycnxvc9nydivc5m8np3hqq84j2iirkccdbs5n")))) - (build-system python-build-system) - (propagated-inputs - (list python-pytest)) - (home-page "https://bitbucket.org/memedough/pytest-capturelog/overview") - (synopsis "Pytest plugin to catch log messages") - (description - "Python-pytest-catchlog is a pytest plugin to catch log messages.") - (license license:expat))) - (define-public python-nosexcover (package (name "python-nosexcover") diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index aac96f96a7..e060795da9 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -3664,34 +3664,36 @@ getopt(), getopt_long() and getopt_long_only().") (define-public safeint (package (name "safeint") - (version "3.0.27") - (home-page "https://github.com/dcleblanc/SafeInt") - (source (origin - (method git-fetch) - (uri (git-reference - (url home-page) - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "01d2dpdhyw3lghmamknb6g39w2gg0sv53pgxlrs2la8h694z6x7s")))) + (version "3.0.28") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dcleblanc/SafeInt") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0bgqvyz5zp4mqzkm9545r3564n52bcdnq8bjn6azhxdsmap26g56")) + (patches + (search-patches "safeint-disable-tests.patch")))) (build-system cmake-build-system) (arguments - (list #:phases #~(modify-phases %standard-phases - (replace 'install - (lambda _ - (let ((include-dir (string-append #$output - "/include"))) - (with-directory-excursion "../source" - (install-file "SafeInt.hpp" include-dir) - (install-file "safe_math.h" include-dir) - (install-file "safe_math_impl.h" include-dir))))) - (add-after 'install 'install-doc - (lambda _ - (let ((doc-dir (string-append #$output - "/share/doc/safeint"))) - (with-directory-excursion "../source" - (install-file "helpfile.md" doc-dir)))))))) + (list + #:phases + #~(modify-phases %standard-phases + (replace 'install + (lambda _ + (let ((include-dir (string-append #$output "/include"))) + (with-directory-excursion "../source" + (install-file "SafeInt.hpp" include-dir) + (install-file "safe_math.h" include-dir) + (install-file "safe_math_impl.h" include-dir))))) + (add-after 'install 'install-doc + (lambda _ + (let ((doc-dir (string-append #$output "/share/doc/safeint"))) + (with-directory-excursion "../source" + (install-file "helpfile.md" doc-dir)))))))) + (home-page "https://github.com/dcleblanc/SafeInt") (synopsis "C and C++ library for managing integer overflows") (description "SafeInt is a class library for C++ that manages integer overflows. It diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm index 8322818b77..e448e68090 100644 --- a/gnu/packages/cups.scm +++ b/gnu/packages/cups.scm @@ -53,6 +53,7 @@ #:use-module (gnu packages polkit) #:use-module (gnu packages pretty-print) #:use-module (gnu packages python) + #:use-module (gnu packages python-build) #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) #:use-module (gnu packages scanner) @@ -61,6 +62,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system meson) #:use-module (guix build-system python) + #:use-module (guix build-system pyproject) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix gexp) @@ -1078,20 +1080,24 @@ obtained and installed separately.") (define-public python-pycups (package (name "python-pycups") - (version "2.0.1") + (version "2.0.4") (source (origin - (method url-fetch) - (uri (pypi-uri "pycups" version ".tar.bz2")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/zdohnal/pycups") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 - "140c7073bkhx8w9qpaynllhynkkg0rzj3a4wjh9fnj15yvjlqhsp")))) - (build-system python-build-system) + (base32 "1fx2b04wr9mv87lxk8jpglkyaqwj7bhlj6hnai0dji3jm503dqlb")))) + (build-system pyproject-build-system) (arguments - '(;; Tests require CUPS to be running - #:tests? #f)) - (inputs - (list cups)) + (list + ;; XXX: Tests require CUPS to be running, a cups configuration, and + ;; access to associated printers. + #:tests? #f)) + (inputs (list cups)) + (native-inputs (list python-setuptools python-wheel)) (home-page "https://github.com/zdohnal/pycups") (synopsis "Python bindings for libcups") (description diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 881047af9d..00fa390886 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -3964,35 +3964,30 @@ with relational data.") (define-public aerich (package (name "aerich") - (version "0.7.2") + (version "0.8.1") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/tortoise/aerich") - (commit (string-append "v" version)))) + (url "https://github.com/tortoise/aerich") + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 - "0pcy945bg890p12s7cyw0mg7hxwsxyy570j600sbf7kwj2d3lilg")))) + (base32 "1cln1ik7519n6k4lnh06w956lp8xjb0khkkpsmaj8wqlm0jbvdbi")))) (build-system pyproject-build-system) (native-inputs - (list poetry - python-bandit - python-cryptography - python-isort - python-pydantic + (list python-cryptography python-pytest + python-poetry-core python-pytest-asyncio - python-pytest-mock - python-pytest-xdist)) + python-pytest-mock)) (propagated-inputs - (list python-asyncmy + (list python-asyncclick + python-asyncmy python-asyncpg - python-click - python-ddlparse python-dictdiffer - python-tomlkit + python-pydantic + python-tomli-w python-tortoise-orm)) (home-page "https://github.com/tortoise/aerich") (synopsis "Database migrations tool for Tortoise @acronym{ORM, Object Relational @@ -4118,47 +4113,41 @@ etc., and an SQL engine for performing simple SQL queries.") (package (name "python-lmdb") (version "1.0.0") - (source (origin - (method url-fetch) - (uri (pypi-uri "lmdb" version)) - (sha256 - (base32 - "1di1gj2agbxwqqwrpk4w58dpfah0kl10ha20s63dlqdd1bgzydj1")) - (modules '((guix build utils))) - (snippet - ;; Delete bundled lmdb source files. - '(begin - (for-each delete-file (list "lib/lmdb.h" - "lib/mdb.c" - "lib/midl.c" - "lib/midl.h")) - #t)))) - (build-system python-build-system) - (inputs - (list lmdb)) + (source + (origin + (method url-fetch) + (uri (pypi-uri "lmdb" version)) + (sha256 + (base32 "1di1gj2agbxwqqwrpk4w58dpfah0kl10ha20s63dlqdd1bgzydj1")) + (snippet + ;; Delete bundled lmdb source files. + #~(for-each delete-file + '("lib/lmdb.h" "lib/mdb.c" "lib/midl.c" "lib/midl.h"))))) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'build 'use-system-lmdb - (lambda* (#:key inputs #:allow-other-keys) - (let ((lmdb (assoc-ref inputs "lmdb"))) - (setenv "LMDB_PURE" "set") ; don't apply env-copy-txn.patch - (setenv "LMDB_FORCE_SYSTEM" "set") - (setenv "LMDB_INCLUDEDIR" (string-append lmdb "/include")) - (setenv "LMDB_LIBDIR" (string-append lmdb "/lib")) - #t)))) - ;; Tests fail with: ‘lmdb.tool: Please specify environment (--env)’. - #:tests? #f)) + (list + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'use-system-lmdb + (lambda* (#:key inputs #:allow-other-keys) + (let ((lmdb (assoc-ref inputs "lmdb"))) + (setenv "LMDB_PURE" "set") ;don't apply env-copy-txn.patch + (setenv "LMDB_FORCE_SYSTEM" "set") + (setenv "LMDB_INCLUDEDIR" + (string-append lmdb "/include")) + (setenv "LMDB_LIBDIR" + (string-append lmdb "/lib")))))))) + (native-inputs (list python-pytest python-setuptools python-wheel)) + (inputs (list lmdb)) (home-page "https://github.com/dw/py-lmdb") (synopsis "Python binding for the ‘Lightning’ database (LMDB)") (description "python-lmdb or py-lmdb is a Python binding for the @dfn{Lightning Memory-Mapped Database} (LMDB), a high-performance key-value store.") - (license - (list license:openldap2.8 - ;; ‘lib/win32/inttypes.h’ and ‘lib/win32-stdint/stdint.h’ are BSD-3, - ;; but not actually needed on platforms currently supported by Guix. - license:bsd-3)))) + (license (list license:openldap2.8 + ;; ‘lib/win32/inttypes.h’ and ‘lib/win32-stdint/stdint.h’ are BSD-3, + ;; but not actually needed on platforms currently supported by Guix. + license:bsd-3)))) (define-public virtuoso-ose (package @@ -4399,34 +4388,28 @@ You might also want to install the following optional dependencies: (name "python-alchemy-mock") (version "0.4.3") (home-page "https://github.com/miki725/alchemy-mock") - (source (origin - (method url-fetch) - (uri (pypi-uri "alchemy-mock" version)) - (sha256 - (base32 - "0ylxygl3bcdapzz529n8wgk7vx9gjwb3ism564ypkpd7dbsw653r")) - (snippet - #~(begin (use-modules (guix build utils)) - (substitute* "alchemy_mock/comparison.py" - (("collections\\.Mapping") "collections.abc.Mapping")))))) - (build-system python-build-system) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/miki725/alchemy-mock") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "053gj8d8ca5kpp7v61wd7lcm9mqp9xqz3d8pp9spdbcjsaqz9nk9")) + (snippet #~(begin + (use-modules (guix build utils)) + (substitute* "alchemy_mock/comparison.py" + (("collections\\.Mapping") + "collections.abc.Mapping")))))) + (build-system pyproject-build-system) (arguments - '(#:phases (modify-phases %standard-phases - (replace 'check - (lambda _ - ;; Create pytest.ini that adds doctest options to - ;; prevent test failure. Taken from tox.ini. - (call-with-output-file "pytest.ini" - (lambda (port) - (format port "[pytest] -doctest_optionflags=IGNORE_EXCEPTION_DETAIL -"))) - (invoke "pytest" "-vv" "--doctest-modules" - "alchemy_mock/")))))) - (native-inputs - (list python-mock python-pytest)) - (propagated-inputs - (list python-six python-sqlalchemy)) + (list + #:test-flags + #~(list "--doctest-modules" "alchemy_mock"))) + (native-inputs (list python-mock python-pytest python-setuptools + python-wheel)) + (propagated-inputs (list python-sqlalchemy)) (synopsis "Mock helpers for SQLAlchemy") (description "This package provides mock helpers for SQLAlchemy that makes it easy @@ -4858,13 +4841,13 @@ files or Python scripts that define a list of migration steps.") (define-public python-mysqlclient (package (name "python-mysqlclient") - (version "2.2.4") + (version "2.2.7") (source (origin (method url-fetch) (uri (pypi-uri "mysqlclient" version)) (sha256 - (base32 "0hdznfz9095d2qhl7awbp39s7wpqbxn37xzan487qzaf8srrzg1k")))) + (base32 "0i9q2vj6rb4w2iggk0mcp9jla2rm91sx7jcrgv7grm8njjsj5bi4")))) (build-system pyproject-build-system) (arguments (list #:test-flags diff --git a/gnu/packages/debian.scm b/gnu/packages/debian.scm index c54473f6f1..dcaf39c7a3 100644 --- a/gnu/packages/debian.scm +++ b/gnu/packages/debian.scm @@ -59,7 +59,7 @@ (define-public debian-archive-keyring (package (name "debian-archive-keyring") - (version "2023.4") + (version "2025.1") (source (origin (method git-fetch) @@ -68,10 +68,10 @@ (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0gn24dgzpg9zwq2hywkac4ljr5lrh7smyqxm21k2bivl0bhc4ca6")))) + (base32 "11i6gpff0sa7a6cngj3n3ysdphw745zp39zlhpw4iiv6mmqmp99m")))) (build-system gnu-build-system) (arguments - '(#:test-target "verify-results" + '(#:tests? #f ; no tests #:parallel-build? #f ; has race conditions #:phases (modify-phases %standard-phases @@ -158,6 +158,105 @@ contains the archive keys used for that.") ;; "The keys in the keyrings don't fall under any copyright." (license license:public-domain))) +(define-public elxr-archive-keyring + (package + (name "elxr-archive-keyring") + (version "2024.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://gitlab.com/elxr/packages/elxr-archive-keyring") + (commit (string-append "upstream/" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1cw7sn22g82g01g7xb4fp8pb6nvb4lck269w1i91rfcmhqxb4iz7")))) + (build-system gnu-build-system) + (arguments + (list + #:tests? #f + #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (replace 'install + (lambda _ + (install-file "elxr-archive-keyring.gpg" + (string-append #$output "/share/keyrings/"))))))) + (native-inputs (list gnupg)) + (home-page "https://pkg.elxr.org/pkg/elxr-archive-keyring") + (synopsis "GnuPG archive keys of the Elxr archive") + (description "The Elxr distribution signs its packages. This package +contains the archive keys used for that.") + (license (list license:public-domain ;; the keys + license:gpl2+)))) + +(define-public kali-archive-keyring + (package + (name "kali-archive-keyring") + (version "2025.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://gitlab.com/kalilinux/packages/kali-archive-keyring") + (commit (string-append "kali/" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "07iwh24myf3s2ziqd2wwzclm48vyv0qvddz0rb6771laaal4wd7w")) + (modules '((guix build utils))) + (snippet #~(delete-file-recursively "debian")))) + (build-system gnu-build-system) + (arguments + (list + #:tests? #f + #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (replace 'install + (lambda _ + (install-file "kali-archive-keyring.gpg" + (string-append #$output "/share/keyrings/"))))))) + (native-inputs (list gnupg)) + (home-page "https://pkg.kali.org/pkg/kali-archive-keyring") + (synopsis "GnuPG archive keys of the Kali archive") + (description "The Kali distribution signs its packages. This package +contains the archive keys used for that.") + (license (list license:public-domain ;; the keys + license:gpl2+)))) + +(define-public pardus-archive-keyring + (package + (name "pardus-archive-keyring") + (version "2021.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://depo.pardus.org.tr/pardus/pool/main/p/" + "pardus-archive-keyring/pardus-archive-keyring_" + version ".tar.xz")) + (sha256 + (base32 "0h4y9clpcfprx7fq2yy2bb22ykax5a0wlw8zlcq9kbiya83q02yr")))) + (build-system gnu-build-system) + (arguments + (list + #:tests? #f + #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (replace 'install + (lambda _ + (install-file "keyrings/pardus-archive-keyring.gpg" + (string-append #$output "/share/keyrings/"))))))) + (native-inputs (list jetring)) + (home-page "https://tracker.pardus.org.tr/yirmiuc/pardus-archive-keyring") + (synopsis "GnuPG archive keys of the Pardus archive") + (description "The Pardus distribution signs its packages. This package +contains the archive keys used for that.") + (license (list license:public-domain ;; the keys + license:gpl2+)))) + (define-public pureos-archive-keyring (package (name "pureos-archive-keyring") @@ -403,84 +502,74 @@ debbugs server.") (define-public debootstrap (package (name "debootstrap") - (version "1.0.134") + (version "1.0.141") (source - (origin - (method git-fetch) - (uri (git-reference + (origin + (method git-fetch) + (uri (git-reference (url "https://salsa.debian.org/installer-team/debootstrap.git") (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0k9gi6gn8qlqs81r2q1hx5wfyax3nvpkk450girdra7dh54iidr4")))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1xdw29cygp0ii65kz8ns8hf0lfrwdjhaxf3sm6q304cm0ic2m7aj")))) (build-system gnu-build-system) (arguments (list - #:phases - #~(modify-phases %standard-phases - (delete 'configure) - (add-after 'unpack 'patch-source - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((debian #$(this-package-input "debian-archive-keyring")) - (pureos #$(this-package-input "pureos-archive-keyring")) - (trisquel #$(this-package-input "trisquel-keyring")) - (ubuntu #$(this-package-input "ubuntu-keyring"))) - (substitute* "Makefile" - (("/usr") "")) - (substitute* '("scripts/etch" - "scripts/potato" - "scripts/sarge" - "scripts/sid" - "scripts/woody" - "scripts/woody.buildd") - (("/usr") debian)) - (substitute* "scripts/gutsy" - (("/usr") ubuntu)) - (substitute* "scripts/amber" - (("/usr/share/keyrings/pureos-archive-keyring.gpg") - (string-append - pureos - "/share/keyrings/pureos-archive-keyring.gpg"))) - (substitute* "scripts/robur" - (("/usr/share/keyrings/trisquel-archive-keyring.gpg") - (string-append - trisquel - "/share/keyrings/trisquel-archive-keyring.gpg"))) - (substitute* "debootstrap" - (("=/usr") (string-append "=" #$output)) - (("/usr/bin/dpkg") (search-input-file inputs "/bin/dpkg"))) - ;; Include the keyring locations by default. - (substitute* (find-files "scripts") - (("keyring.*(debian-archive-keyring.gpg)"_ keyring) - (string-append "keyring " debian "/share/keyrings/" keyring)) - (("keyring.*(pureos-archive-keyring.gpg)" _ keyring) - (string-append "keyring " pureos "/share/keyrings/" keyring)) - (("keyring.*(trisquel-archive-keyring.gpg)" _ keyring) - (string-append "keyring " trisquel "/share/keyrings/" keyring)) - (("keyring.*(ubuntu-archive-keyring.gpg)" _ keyring) - (string-append "keyring " ubuntu "/share/keyrings/" keyring))) - ;; Ensure PATH works both in guix and within the debian chroot - ;; workaround for: https://bugs.debian.org/929889 - (substitute* "functions" - (("PATH=/sbin:/usr/sbin:/bin:/usr/bin") - "PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin")) - (substitute* (find-files "scripts") - (("/usr/share/zoneinfo") - (search-input-directory inputs "/share/zoneinfo")))))) - (add-after 'install 'install-man-file - (lambda* (#:key outputs #:allow-other-keys) - (install-file "debootstrap.8" - (string-append #$output "/share/man/man8")))) - (add-after 'install 'wrap-executable - (lambda* (#:key outputs #:allow-other-keys) - (let ((debootstrap (string-append #$output "/sbin/debootstrap")) - (path (getenv "PATH"))) - (wrap-program debootstrap - `("PATH" ":" prefix (,path))))))) - #:make-flags #~(list (string-append "DESTDIR=" #$output)) - #:tests? #f)) ; no tests + #:tests? #f ; no tests + #:modules '((guix build gnu-build-system) + (guix build utils) + (ice-9 textual-ports) + (srfi srfi-1) + (srfi srfi-26)) + #:make-flags #~(list (string-append "DESTDIR=" #$output)) + #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'patch-source + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "Makefile" + (("/usr") "")) + (substitute* "debootstrap" + (("=/usr") (string-append "=" #$output)) + (("/usr/bin/dpkg") (search-input-file inputs "/bin/dpkg"))) + ;; XXX: For unsupported distros (here, tangly is abandonned), we + ;; simply remove the scripts, otherwise the following substitute* + ;; will error. + (for-each + delete-file + (find-files + "scripts" + (lambda (file stat) + (let ((content (call-with-input-file file get-string-all))) + (any (compose (cut string-contains content <>) + (cut string-append "/usr/share/keyrings/" <> + "-archive-keyring.gpg")) + (list "tanglu")))))) + (substitute* (find-files "scripts") + ;; Include the keyring locations by default. + (("/usr(/share/keyrings/.*.gpg)"_ keyring) + (search-input-file inputs keyring)) + ;; Patch zoneinfo. + (("/usr/share/zoneinfo") + (search-input-directory inputs "/share/zoneinfo"))) + ;; Ensure PATH works both in guix and within the debian chroot + ;; workaround for: https://bugs.debian.org/929889 + (substitute* "functions" + (("PATH=/sbin:/usr/sbin:/bin:/usr/bin") + "PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin")))) + (add-after 'install 'install-man-file + (lambda _ + (install-file "debootstrap.8" + (string-append #$output "/share/man/man8")))) + (add-after 'install 'wrap-executable + (lambda _ + (wrap-program (string-append #$output "/sbin/debootstrap") + `("PATH" ":" prefix (,(getenv "PATH"))))))))) (inputs (list debian-archive-keyring + elxr-archive-keyring + kali-archive-keyring + pardus-archive-keyring pureos-archive-keyring trisquel-keyring ubuntu-keyring diff --git a/gnu/packages/electronics.scm b/gnu/packages/electronics.scm index 05bee696b2..df9f8be91a 100644 --- a/gnu/packages/electronics.scm +++ b/gnu/packages/electronics.scm @@ -85,6 +85,40 @@ #:use-module (gnu packages xorg) #:use-module (gnu packages xml)) +(define-public camv-rnd + (package + (name "camv-rnd") + (version "1.1.6") + (source + (origin + (method url-fetch) + (uri (string-append "http://repo.hu/projects/camv-rnd/" + "releases/camv-rnd-" version ".tar.gz")) + (sha256 + (base32 + "1dp1vj5rpxlddx40paa9i727c92is3bz6z6pa0y6dy2nsjcm86fs")))) + (build-system glib-or-gtk-build-system) + (arguments + (list + #:tests? #f + #:phases + #~(modify-phases %standard-phases + (replace 'configure + ;; The configure script doesn't tolerate most of our configure + ;; flags. + (lambda _ + (setenv "CC" #$(cc-for-target)) + (setenv "LIBRND_PREFIX" #$(this-package-input "librnd")) + (invoke "./configure" (string-append "--prefix=" #$output))))))) + (inputs (list librnd)) + (home-page "http://repo.hu/projects/route-rnd/") + (synopsis "Viewer for electronic boards in CAM file formats") + (description + "@code{Camv-rnd} is a viewer for @acronym{PCB, Printed Circuit Board} +supporting gerber, excellon and g-code. It is part of the RiNgDove EDA +suite.") + (license license:gpl2+))) + (define-public comedilib (package (name "comedilib") @@ -919,6 +953,75 @@ netlists from the drawn schematic, allowing the simulation of the circuit.") (home-page "https://xschem.sourceforge.io/stefan/index.html") (license license:gpl2+))) +(define-public route-rnd + (package + (name "route-rnd") + (version "0.9.3") + (source + (origin + (method url-fetch) + (uri (string-append "http://repo.hu/projects/route-rnd/" + "releases/route-rnd-" version ".tar.gz")) + (sha256 + (base32 + "0fy3b48s72lpicyap3y6jr9fyvb2ri42jb0gqxk6s927a278bfhc")))) + (build-system gnu-build-system) + (arguments + (list + #:tests? #f + #:make-flags #~(list (string-append "PREFIX=" #$output)) + #:phases + #~(modify-phases %standard-phases + (replace 'configure + ;; The configure script doesn't tolerate most of our configure + ;; flags. + (lambda _ + (setenv "CC" #$(cc-for-target)) + (setenv "LIBRND_PREFIX" #$(this-package-input "librnd")) + (invoke "./configure" (string-append "--prefix=" #$output))))))) + (inputs (list librnd)) + (home-page "http://repo.hu/projects/route-rnd/") + (synopsis "Automatic routing for electronics boards") + (description + "@code{Route-rnd} is a generic external autorouter for @acronym{PCB, +Printed Circuit Board} using tEDAx file format, part of the RiNgDove EDA +suite.") + (license license:gpl2+))) + +(define-public sch-rnd + (package + (name "sch-rnd") + (version "1.0.9") + (source + (origin + (method url-fetch) + (uri (string-append "http://repo.hu/projects/sch-rnd/" + "releases/sch-rnd-" version ".tar.gz")) + (sha256 + (base32 + "07a1ik0rpsa5cscg9l7i5rnipx76543s7cdnkg802747rral7yj5")))) + (build-system glib-or-gtk-build-system) + (arguments + (list + #:test-target "test" + #:phases + #~(modify-phases %standard-phases + (replace 'configure + ;; The configure script doesn't tolerate most of our configure + ;; flags. + (lambda _ + (setenv "CC" #$(cc-for-target)) + (setenv "LIBRND_PREFIX" #$(this-package-input "librnd")) + (invoke "./configure" (string-append "--prefix=" #$output))))))) + (inputs (list librnd)) + (home-page "http://repo.hu/projects/sch-rnd/") + (synopsis "Scriptable editor of schematics for electronics boards") + (description + "@code{Sch-rnd} is a standalone and workflow agnostic schematics capture +tool for @acronym{PCB, Printed Circuit Board}, part of the RiNgDove EDA +suite.") + (license license:gpl2+))) + (define-public sigrok-cli (package (name "sigrok-cli") diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 86ab5354f6..9ccacb7e56 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -8490,29 +8490,23 @@ column by drawing a thin line down the length of the editing window.") (license license:gpl3+))) (define-public emacs-greader - (let ((commit "d58c1ee051afe384e23455b7c8b72ee1eae4850f")) ;version bump + (let ((commit "07266f027f9e3d4b690142f525b5bbde2cb4b19e")) ;version bump (package (name "emacs-greader") - (version "0.12.5") + (version "0.12.7") (source (origin (uri (git-reference - (url "https://gitlab.com/michelangelo-rodriguez/greader") - (commit commit))) + (url "https://gitlab.com/michelangelo-rodriguez/greader") + (commit commit))) (method git-fetch) (file-name (git-file-name name version)) (sha256 - (base32 "1wh9xbz4az4b90m2r2ffmrvwlv2ig75bxycmkqghaz4hhx2gkvaz")))) + (base32 "1qg9a3msnh95rj4jmih2j48r8dsisiqd8nlrj1qf3mfl4xr1kb7c")))) (build-system emacs-build-system) (arguments - (list - #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'add-requires - (lambda _ - (substitute* "greader-dict.el" - ((";;; Code:") - ";;; Code:\n(require 'greader)\n"))))))) - (inputs (list espeak-ng)) + (list #:tests? #f)) ;no tests + (inputs (list emacs-compat espeak-ng)) (home-page "https://gitlab.com/michelangelo-rodriguez/greader") (synopsis "Gnamù Reader, or Greader, sends buffer contents to a speech engine") @@ -8521,7 +8515,7 @@ column by drawing a thin line down the length of the editing window.") Text To Speech} engine, such as Espeak-NG or Speech Dispatcher. The mode supports timer reading, automatic scrolling of buffers in modes like -Info mode, and repeating reading of regions or the whole buffer. It also +Info mode, and repeating reading of regions or the whole buffer. It also includes a feature to facilitate the compilation of Espeak-NG pronunciations.") (license license:gpl3+)))) @@ -32788,32 +32782,30 @@ statistics with the help of @code{tokei}.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 - "0zkl9jkjbx0lmp9ylv4rqg1zwqibk053s4rp7s1h0i18nzk7vn8j")))) + (base32 "0zkl9jkjbx0lmp9ylv4rqg1zwqibk053s4rp7s1h0i18nzk7vn8j")))) (build-system emacs-build-system) - (inputs - (list youtube-dl)) (arguments - `(#:tests? #f ; Error : standard input is not a tty - #:test-command (list "make" "simulate") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'configure - (lambda* (#:key inputs #:allow-other-keys) - (let ((youtube-dl (assoc-ref inputs "youtube-dl"))) - ;; .el is read-only in git. - (chmod "youtube-dl.el" #o644) - ;; Specify the absolute file names of the various - ;; programs so that everything works out-of-the-box. - (emacs-substitute-variables - "youtube-dl.el" - ("youtube-dl-program" - (string-append youtube-dl "/bin/youtube-dl"))))))))) + (list + #:tests? #f ; Error : standard input is not a tty + #:test-command #~(list "make" "simulate") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'configure + (lambda* (#:key inputs #:allow-other-keys) + ;; .el is read-only in git. + (chmod "youtube-dl.el" #o644) + ;; Specify the absolute file names of the various + ;; programs so that everything works out-of-the-box. + (emacs-substitute-variables + "youtube-dl.el" + ("youtube-dl-program" + (search-input-file inputs "bin/yt-dlp")))))))) + (inputs (list yt-dlp)) (home-page "https://github.com/skeeto/youtube-dl-emacs/") (synopsis "Emacs youtube-dl download manager") (description "This package manages a video download queue for -@command{youtube-dl}, which serves as the back end. It manages a single -@command{youtube-dl} subprocess, downloading one video at a time. New videos +@command{yt-dlp}, which serves as the back end. It manages a single +@command{yt-dlp} subprocess, downloading one video at a time. New videos can be queued at any time.") (license license:unlicense)))) @@ -32834,27 +32826,28 @@ can be queued at any time.") (base32 "0y62lkgsg19j05dpd6sp6zify8vq8xvpc8caqiy4rwi7p4ahacsf")))) (build-system emacs-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'configure - (lambda* (#:key inputs #:allow-other-keys) - ;; .el is read-only in git. - (make-file-writable "ytdl.el") - ;; Specify the absolute file names of the various programs so - ;; that everything works out-of-the-box. - (emacs-substitute-variables "ytdl.el" - ("ytdl-command" - (search-input-file inputs "/bin/youtube-dl")))))))) + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'configure + (lambda* (#:key inputs #:allow-other-keys) + ;; .el is read-only in git. + (make-file-writable "ytdl.el") + ;; Specify the absolute file names of the various programs so + ;; that everything works out-of-the-box. + (emacs-substitute-variables "ytdl.el" + ("ytdl-command" + (search-input-file inputs "/bin/yt-dlp")))))))) (inputs - (list youtube-dl)) + (list yt-dlp)) (propagated-inputs (list emacs-async emacs-dash)) (home-page "https://gitlab.com/tuedachu/ytdl") (synopsis "Emacs interface for youtube-dl") (description - "This package manages a video download queue for @command{youtube-dl}, + "This package manages a video download queue for @command{yt-dlp}, which serves as the back end. New videos can be queued at any time. All -youtube-dl backends are supported. It is possible to create download profiles +yt-dlp backends are supported. It is possible to create download profiles depending on the downloaded URL.") (license license:gpl3+)))) diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 7c8202dd71..b456507324 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -468,10 +468,10 @@ It aims to support Nintendo DSi and 3DS as well.") "rangeset" "rcheevos") ;submodule (with-directory-excursion "Externals" + ;; Note: Not copying implot sources here, which would + ;; introduce a top-level circular dependency. (copy-recursively #$dolphin-rcheevos-submodule - "rcheevos/rcheevos") - (copy-recursively #$(package-source implot) - "implot/implot")) + "rcheevos/rcheevos")) (for-each delete-file (find-files @@ -495,6 +495,10 @@ It aims to support Nintendo DSi and 3DS as well.") (guix build utils)) #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'copy-implot-source + (lambda _ + (copy-recursively #$(package-source implot) + "Externals/implot/implot"))) (add-before 'configure 'generate-fonts&hardcode-libvulkan-path (lambda* (#:key inputs #:allow-other-keys) (let ((fontfile diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index cba13fff86..944204debd 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -3228,7 +3228,7 @@ Newton-Raphson power flow solvers in the C++ library lightsim2grid, and the (define-public python-scikit-rf (package (name "python-scikit-rf") - (version "1.7.0") + (version "1.8.0") (source (origin (method git-fetch) ;PyPI misses some files required for tests (uri (git-reference @@ -3236,7 +3236,7 @@ Newton-Raphson power flow solvers in the C++ library lightsim2grid, and the (commit (string-append "v" version)))) (sha256 (base32 - "148bfdbh0y69f5xhxb49jqvc6gabk0n4i0fl1j5f3fnm9vaypyis")) + "0hzgqsj2jnbimb8klijak44bhm7f3lnxvppaddgq1zxr063sj0y1")) (file-name (git-file-name name version)))) (build-system pyproject-build-system) (propagated-inputs (list python-numpy diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm index ac6c80a952..5648fa8f4a 100644 --- a/gnu/packages/fcitx5.scm +++ b/gnu/packages/fcitx5.scm @@ -92,7 +92,7 @@ client.") (define-public fcitx5 (package (name "fcitx5") - (version "5.1.12") + (version "5.1.14") (source (origin (method url-fetch) @@ -100,36 +100,36 @@ client.") "https://download.fcitx-im.org/fcitx5/fcitx5/fcitx5-" version "_dict.tar.zst")) (sha256 - (base32 "1zsmqicp4x2kpbrrh1r87ji3gsfxvl9ipgdni81b3mv6dv999nhr")))) + (base32 "1893994lrffzclblvw1jpcccqrqbpch8p5nd9jhc06ahajbz2nkk")))) (arguments (list #:configure-flags #~(list "-DUSE_SYSTEMD=OFF"))) (build-system cmake-build-system) (inputs - `(("cairo" ,cairo) - ("cairo-xcb" ,cairo-xcb) - ("dbus" ,dbus) - ("enchant" ,enchant) - ("expat" ,expat) - ("fmt" ,fmt) - ("gdk-pixbuf" ,gdk-pixbuf) - ("gettext" ,gettext-minimal) - ("glib" ,glib) - ("iso-codes" ,iso-codes/pinned) - ("json-c" ,json-c) - ("libevent" ,libevent) - ("libuuid" ,util-linux "lib") - ("libuv" ,libuv) - ("libxcb" ,libxcb) - ("libxkbcommon" ,libxkbcommon) - ("libxkbfile" ,libxkbfile) - ("pango" ,pango) - ("wayland" ,wayland) - ("wayland-protocols" ,wayland-protocols) - ("xcb-imdkit" ,xcb-imdkit) - ("xcb-util" ,xcb-util) - ("xcb-util-keysyms" ,xcb-util-keysyms) - ("xcb-util-wm" ,xcb-util-wm) - ("xkeyboard-config" ,xkeyboard-config))) + (list cairo + cairo-xcb + dbus + enchant + expat + fmt + gdk-pixbuf + gettext-minimal + glib + iso-codes/pinned + json-c + libevent + libuv + libxcb + libxkbcommon + libxkbfile + pango + `(,util-linux "lib") ;For libuuid. + wayland + wayland-protocols + xcb-imdkit + xcb-util + xcb-util-keysyms + xcb-util-wm + xkeyboard-config)) (native-inputs (list extra-cmake-modules zstd @@ -151,7 +151,7 @@ client.") (define-public fcitx5-lua (package (name "fcitx5-lua") - (version "5.0.14") + (version "5.0.15") (source (origin (method url-fetch) @@ -159,7 +159,7 @@ client.") "https://download.fcitx-im.org/fcitx5/fcitx5-lua/fcitx5-lua-" version ".tar.zst")) (sha256 - (base32 "0lmw62pd8x5ys8ci0dz43pw8q8401zjcfs24gjslbljhc4aqnp9r")))) + (base32 "1yp5z97m8n7fwvxps1gn8pflg69j3yawgabz36bpd4wl43zkgchg")))) (build-system cmake-build-system) (arguments (list @@ -177,14 +177,14 @@ client.") (define-public libime (package (name "libime") - (version "1.1.10") + (version "1.1.11") (source (origin (method url-fetch) (uri (string-append "https://download.fcitx-im.org/fcitx5/libime/libime-" version "_dict.tar.zst")) (sha256 - (base32 "17mdxbj8bb6vmjwfghy0hm0vvzcank835ayz9h8nhsaiap46nx54")))) + (base32 "1ms8vmv9fdr2czf7511jxiw7wyclvbkd82xkk16hahcvrszbrjqb")))) (build-system cmake-build-system) (inputs (list fcitx5 boost (list zstd "lib"))) @@ -199,7 +199,7 @@ editors.") (define-public fcitx5-gtk (package (name "fcitx5-gtk") - (version "5.1.3") + (version "5.1.4") (source (origin (method url-fetch) @@ -207,7 +207,7 @@ editors.") "/fcitx5-gtk/fcitx5-gtk-" version ".tar.zst")) (sha256 - (base32 "1j2cmqmcdzfv8cxnjd75mfkfpd7r1a1iqdqc8zdx8dc88vz4dmis")))) + (base32 "0lwl17mbfm3pxpd3y7h4sxf77npr16hyzygrc7a6v26bx6ycbkqx")))) (build-system cmake-build-system) (arguments (list @@ -317,7 +317,7 @@ IM module for GTK+3 applications. (define-public fcitx5-qt (package (name "fcitx5-qt") - (version "5.1.9") + (version "5.1.10") (source (origin (method url-fetch) @@ -325,7 +325,7 @@ IM module for GTK+3 applications. "/fcitx5-qt/fcitx5-qt-" version ".tar.zst")) (sha256 - (base32 "1s45iyyyl0js5p15zb3hxwsjspj0p3p4m81c7x9bz00a60b58m1i")))) + (base32 "0v07g2nsdjcijl81i7zrv3krr9w4nh88lkri0xq9l9cbri91h0mf")))) (build-system cmake-build-system) (arguments (list #:configure-flags @@ -356,7 +356,7 @@ for Qt based application.") (define-public fcitx5-anthy (package (name "fcitx5-anthy") - (version "5.1.6") + (version "5.1.7") (source (origin (method url-fetch) @@ -364,7 +364,7 @@ for Qt based application.") "/fcitx5-anthy/fcitx5-anthy-" version ".tar.zst")) (sha256 - (base32 "08lw5d9kpjmgdss76rqf0qzs39jw371fnbb56k3z64wjg1h3722w")))) + (base32 "1vfv0i62z9dclm5zcxk2v57x46z85m36w2yvskpfwyc8nwald3lm")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ;; no tests @@ -380,7 +380,7 @@ the Anthy input method.") (define-public fcitx5-skk (package (name "fcitx5-skk") - (version "5.1.6") + (version "5.1.7") (source (origin (method git-fetch) @@ -389,7 +389,7 @@ the Anthy input method.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "109fx80iaa896652lwhfdr8x9h4vmw6pc9fwns3cwp610p9x21yn")))) + (base32 "0xvsbsc9ybq6j0xnvq3wiidw9f6kh5n8jr3z69b7hshw59jirjaq")))) (build-system cmake-build-system) (arguments (list #:tests? #f ; no tests @@ -416,14 +416,14 @@ backend.") (define-public fcitx5-chewing (package (name "fcitx5-chewing") - (version "5.1.7") + (version "5.1.8") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/fcitx/fcitx5-chewing") (commit version))) (sha256 - (base32 "1hr5ylyzm5r02la5lh6alrp6g19y0dm9ccydd9ygy30srd26pga0")) + (base32 "1l9hps0w1da3rjmkipzgb13fyh1nhalapgynywvjd1zvj9njazrs")) (file-name (git-file-name name version)))) (build-system cmake-build-system) (arguments @@ -445,7 +445,7 @@ backend.") (define-public fcitx5-chinese-addons (package (name "fcitx5-chinese-addons") - (version "5.1.8") + (version "5.1.9") (source (origin (method url-fetch) @@ -453,32 +453,32 @@ backend.") "/fcitx5-chinese-addons/fcitx5-chinese-addons-" version "_dict.tar.zst")) (sha256 - (base32 "06ls6ww60y7l39bjk1h1xvjq9c3va5cib6hs4y0xk9p69f2s41l3")))) + (base32 "0j0xx4kil93ixa81j08y4mm5qfpl32qf3fdlcw2sbjn92v238hbv")))) (build-system cmake-build-system) (arguments - `(#:configure-flags - '("-DUSE_WEBKIT=off") - #:phases - (modify-phases %standard-phases - (add-before 'configure 'split-outputs - ;; Build with GUI supports requires Qt and increase package closure - ;; by 800M on x86_64, so place it under another output. - (lambda* (#:key outputs #:allow-other-keys) - (substitute* "gui/pinyindictmanager/CMakeLists.txt" - (("\\$\\{CMAKE_INSTALL_LIBDIR\\}" _) - (string-append (assoc-ref outputs "gui") "/lib")))))))) + (list #:configure-flags + #~(list "-DUSE_WEBKIT=off") + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'split-outputs + ;; Build with GUI supports requires Qt and increase package + ;; closure by 800M on x86_64, so place it under another output. + (lambda _ + (substitute* "gui/pinyindictmanager/CMakeLists.txt" + (("\\$\\{CMAKE_INSTALL_LIBDIR\\}" _) + (string-append #$output:gui "/lib")))))))) (inputs - `(("fcitx5" ,fcitx5) - ("fcitx5-lua" ,fcitx5-lua) - ("boost" ,boost) - ("libime",libime) - ("curl" ,curl) - ("gettext" ,gettext-minimal) - ("fmt" ,fmt) - ("opencc" ,opencc) - ("qtbase" ,qtbase) - ("fcitx5-qt" ,fcitx5-qt) - ("qtwebengine" ,qtwebengine))) + (list boost + curl + fcitx5 + fcitx5-lua + fcitx5-qt + fmt + gettext-minimal + libime + opencc + qtbase + qtwebengine)) (native-inputs (list extra-cmake-modules pkg-config)) (outputs '("out" "gui")) @@ -506,7 +506,7 @@ including input methods previous bundled inside Fcitx 4: (define-public fcitx5-configtool (package (name "fcitx5-configtool") - (version "5.1.8") + (version "5.1.10") (source (origin (method url-fetch) @@ -514,7 +514,7 @@ including input methods previous bundled inside Fcitx 4: "https://download.fcitx-im.org/fcitx5" "/fcitx5-configtool/fcitx5-configtool-" version ".tar.zst")) (sha256 - (base32 "1kg0hddds7raqf5y4qw2x02hb4i5impv4hjfm2qvcn3g775rzrq6")))) + (base32 "1fb21mbc0k33cadslq0rjwi5y7fxm5jzgdk9yna3h2r62sdmdb60")))) (build-system cmake-build-system) (arguments (list #:tests? #f @@ -626,7 +626,7 @@ for Fcitx 5 with following color variants: (define-public fcitx5-rime (package (name "fcitx5-rime") - (version "5.1.10") + (version "5.1.11") (source (origin (method url-fetch) (uri (string-append "https://download.fcitx-im.org/fcitx5" @@ -634,7 +634,7 @@ for Fcitx 5 with following color variants: ".tar.zst")) (sha256 (base32 - "12c5cjpqkz37b6s106p7r4k56mssz1m8q2f6py82zbg0ybsvn980")))) + "1xk5a0nfnxy1xaml6pdibpqf92wl2237ayyrpnkmamaxvgvw3kvi")))) (build-system cmake-build-system) (arguments '(#:tests? #f ;no tests diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index 7408389b91..236cdbf960 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -2496,38 +2496,59 @@ filtering and ordering functionality. (license license:gpl3+))) (define-public watcher - (package - (name "watcher") - (version "0.13.6") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/e-dant/watcher") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1ikcdskb3z3wggxb12vi0y3rng2hcswl0fpk6sjqqlz34nvwijcr")))) - (build-system cmake-build-system) - (arguments - (list #:configure-flags - #~(list "-DBUILD_TESTING=ON" - ;; This is needed to find 'snitch' from the system. - "-DFETCHCONTENT_TRY_FIND_PACKAGE_MODE=ALWAYS") - #:phases - #~(modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (setenv "PATH" (string-append (getcwd) ":" (getenv "PATH"))) - (substitute* "../source/tool/test/.ctx" - (("../../out") - "../../../build") - (("which") "command -v")) - (invoke "../source/tool/test/all")))))) - (native-inputs (list jq snitch)) - (home-page "https://github.com/e-dant/watcher") - (synopsis "File system watcher program and library") - (description "Watcher may be used as a library or a program that can be + (let ((commit "0aff9ee86f0b62f17d7b0105cae6304ef1bcfbb2") + (revision "0")) + (package + (name "watcher") + (version (git-version "0.13.6" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/e-dant/watcher") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "10bwdqnhgpsk2w60331npspkqjvdgb0jh2by89g8d3hwfjibk3p4")))) + (build-system cmake-build-system) + (arguments + (list + ;; The test suite is currently flaky + ;; (see: https://github.com/e-dant/watcher/issues/85). + #:tests? #f + #:configure-flags + #~(list "-DBUILD_TESTING=ON" + ;; This is needed to find 'snitch' from the system. + "-DFETCHCONTENT_TRY_FIND_PACKAGE_MODE=ALWAYS") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-.pc-files-prefix + ;; There are some issues with the new .pc files (see: + ;; <https://github.com/e-dant/watcher/issues/82>). + (lambda _ + (substitute* "CMakeLists.txt" + (("\"\\$\\{CMAKE_INSTALL_LIBDIR}\"") + "\"${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}\"") + (("\\$\\{CMAKE_INSTALL_INCLUDEDIR}/wtr") + "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}/wtr")) + (substitute* "watcher.pc.in" + (("@PC_WATCHER_PREFIX@") + #$output)) + (substitute* "watcher-c/watcher-c.pc.in" + (("@PC_LIBWATCHER_C_PREFIX@") + #$output)))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (setenv "PATH" (string-append (getcwd) ":" (getenv "PATH"))) + (substitute* "../source/tool/test/.ctx" + (("../../out") + "../../../build")) + (invoke "../source/tool/test/all"))))))) + (native-inputs (list jq snitch)) + (home-page "https://github.com/e-dant/watcher") + (synopsis "File system watcher program and library") + (description "Watcher may be used as a library or a program that can be used to efficiently watch a file system for changes. This package provides the following components: @table @asis @@ -2540,4 +2561,4 @@ Command-line interface (CLI) @item @command{tw} Minimal, more human-readable CLI variant @end table") - (license license:expat))) + (license license:expat)))) diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index 205f252b7d..3da97f5b4b 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -1001,28 +1001,35 @@ the Monero GUI client.") (license license:bsd-3))) (define-public python-bech32 - (package - (name "python-bech32") - (version "1.2.0") - (source (origin - (method url-fetch) - (uri (pypi-uri "bech32" version)) - (sha256 - (base32 - "16fq5cfy5id9hp123ylhpl55pf38xwk0hv7sziqpig838qhvhvbx")))) - (build-system python-build-system) - (home-page "https://github.com/fiatjaf/bech32") - (synopsis "Reference implementation for Bech32 and Segwit addresses") - (description "This package provides a python reference implementation for + ;; XXX: No tags upstream. + (let ((commit "231e4d88b15f3dc8faf7d339f365b84f6ab5cbcc") + (revision "0")) + (package + (name "python-bech32") + (version (git-version "1.2.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fiatjaf/bech32") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0wq6q0yrw3x42d81v445xy4nh2qlrn7swsydgpv81dkay11kajrz")))) + (build-system pyproject-build-system) + (native-inputs (list python-setuptools python-wheel)) + (home-page "https://github.com/fiatjaf/bech32") + (synopsis "Reference implementation for Bech32 and Segwit addresses") + (description "This package provides a python reference implementation for Bech32 and segwit addresses.") - (license license:expat))) + (license license:expat)))) (define-public python-trezor-agent ;; It is called 'libagent' in pypi; i.e. this is the library as opposed to ;; the toplevel app called trezor-agent. (package (name "python-trezor-agent") - (version "0.14.7") + (version "0.15.0") (source (origin (method git-fetch) @@ -1031,22 +1038,21 @@ Bech32 and segwit addresses.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "04dds5bbw73nk36zm8d02qw6qr92nrlcf8r1cq8ba96mzi34jbk0")))) - (build-system python-build-system) + (base32 "09y55ys3x5krszh58yhl5gpdri0zrlhfld6psrmiyxfbp344asin")))) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'remove-requires-backports-shutil-which - ;; Remove requires on backport of shutil_which, as python 3.4+ has - ;; a built-in implementation supported in python-trezor-agent. - (lambda _ - (substitute* "setup.py" - (("'backports.shutil_which>=3.5.1',") "")))) - (delete 'check) - (add-after 'install 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "pytest" "-v"))))))) + (list + #:test-flags + ;; XXX: Requires $HOME to be /run/user. + #~(list "-k" "not test_get_agent_sock_path") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-requires-backports-shutil-which + ;; Remove requires on backport of shutil_which, as python 3.4+ has + ;; a built-in implementation supported in python-trezor-agent. + (lambda _ + (substitute* "setup.py" + (("'backports.shutil_which>=3.5.1',") ""))))))) (propagated-inputs (list python-bech32 python-configargparse @@ -1064,7 +1070,9 @@ Bech32 and segwit addresses.") (native-inputs ; Only needed for running the tests (list gnupg python-mock - python-pytest)) + python-pytest + python-setuptools + python-wheel)) (home-page "https://github.com/romanz/trezor-agent") (synopsis "Use hardware wallets as SSH and GPG agent") (description @@ -1340,7 +1348,7 @@ the KeepKey Hardware Wallet.") (uri (origin-uri (package-source python-trezor-agent))) (file-name (git-file-name name version)) (sha256 - (base32 "04dds5bbw73nk36zm8d02qw6qr92nrlcf8r1cq8ba96mzi34jbk0")) + (base32 "09y55ys3x5krszh58yhl5gpdri0zrlhfld6psrmiyxfbp344asin")) (modules '((guix build utils) (ice-9 ftw) @@ -1360,45 +1368,40 @@ the KeepKey Hardware Wallet.") (scandir "./agents/trezor/" (negate (cut member <> '("." "..") string=)))) (delete-file-recursively "./agents") - ;; Without deleting ./contrib the sanity-check phase fails. Reported - ;; upstream as https://github.com/romanz/trezor-agent/issues/429. - (delete-file-recursively "./contrib") ;; Without deleting ./libagent setuptools complains as follows: ;; "error: Multiple top-level packages discovered in a flat-layout: ['contrib', 'libagent']." (delete-file-recursively "./libagent"))))) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'relax-requirements - (lambda _ - (substitute* "setup.py" - (("'trezor\\[hidapi]>=0.12.0,<0.13'") - "'trezor[hidapi]>=0.13'")))) - (add-after 'wrap 'fixup-agent-py - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out"))) - ;; The wrap phase also wraps trezor_agent.py (besides the - ;; public facing executable called trezor-agent). We need to - ;; undo that wrapping. The reason this is needed is that the - ;; python easy install generates a toplevel script (?) that - ;; messes with argv[0] and then re-opens the python - ;; module. This fails when the wrapped file is actually a shell - ;; script, not a python file. - (delete-file (string-append out "/bin/.trezor_agent.py-real")) - ;; Overwrite the wrapped one with the real thing. - (install-file "./trezor_agent.py" - (string-append out "/bin")))))))) - (build-system python-build-system) + (list + #:tests? #f ; No tests there. + #:phases + #~(modify-phases %standard-phases + (add-after 'wrap 'fixup-agent-py + (lambda _ + ;; The wrap phase also wraps trezor_agent.py (besides the public + ;; facing executable called trezor-agent). We need to undo that + ;; wrapping. The reason this is needed is that the python easy + ;; install generates a toplevel script (?) that messes with + ;; argv[0] and then re-opens the python module. This fails when + ;; the wrapped file is actually a shell script, not a python file. + (delete-file + (string-append #$output "/bin/.trezor_agent.py-real")) + ;; Overwrite the wrapped one with the real thing. + (install-file "./trezor_agent.py" + (string-append #$output "/bin"))))))) (inputs (list python-trezor python-trezor-agent)) (native-inputs ; Only needed for running the tests (list python-attrs python-bech32 - python-simple-rlp)) + python-simple-rlp + python-setuptools + python-wheel)) (home-page "https://github.com/romanz/trezor-agent") (synopsis "Using Trezor as hardware SSH/GPG agent") - (description "This package allows using Trezor as a hardware SSH/GPG -agent.") + (description + "This package allows using Trezor as a hardware SSH/GPG agent.") (license license:lgpl3))) (define-public keepkey-agent diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 12d4efff4a..c41ec45a6f 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -5345,7 +5345,7 @@ falling, themeable graphics and sounds, and replays.") (define-public wesnoth (package (name "wesnoth") - (version "1.18.3") + (version "1.18.5") (source (origin (method git-fetch) (uri (git-reference @@ -5354,7 +5354,7 @@ falling, themeable graphics and sounds, and replays.") (file-name (git-file-name name version)) (sha256 (base32 - "0habv0whb0y0r52sjln7yin1nfm3vjjxqlavm7jarcrg2s3v743k")))) + "16mrdpz1yq12ppnrmm4yv768zmh08qjdxh892pzc5i17n7xkmpy4")))) (build-system cmake-build-system) (arguments (list #:tests? #f ;no test target diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index aa1454ca96..caeba83735 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -918,14 +918,14 @@ It also includes runtime support libraries for these languages.") (define-public gcc-15 (package (inherit gcc-14) - (version "15.1.0") + (version "15.2.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gcc/gcc-" version "/gcc-" version ".tar.xz")) (sha256 (base32 - "1skcy1a3wwb8k25f9l1qy11nj8b5089f05dpzzn1zw302v19xc72")) + "0knj4ph6y7r7yhnp1v4339af7mki5nkh7ni9b948433bhabdk3s3")) (patches (search-patches "gcc-12-strmov-store-file-names.patch" "gcc-5.0-libvtv-runpath.patch")) (modules '((guix build utils))) diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index ecb324d738..a1095a7fba 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -96,6 +96,7 @@ #:use-module (gnu packages fonts) #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) + #:use-module (gnu packages fribidi) #:use-module (gnu packages gcc) #:use-module (gnu packages gettext) #:use-module (gnu packages ghostscript) @@ -1293,6 +1294,61 @@ amenities/points of interest, building footprints, elevation data, street bearings/orientations, and speed/travel time.") (license license:expat))) +(define-public python-owslib + (package + (name "python-owslib") + (version "0.34.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/geopython/OWSLib") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "14pb96h0nl4c6hs58i2z7mx0fpd4g886ajflbrs69hwiqj2x8a3f")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + #~(list + ;; XXX: Those tests require network access. + "-k" (string-join + (list "not test_ows_interfaces_wcs" + "test_system_readonly" + "test_sampling_features_readonly" + "test_datastreams_readonly" + "test_observations_readonly" + "test_system_history") + " and not ") + ;; XXX: Not collected properly. + "--ignore-glob=tests/doctests/*") + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'cleanup-build-directory + (lambda _ + (delete-file-recursively "build")))))) + (native-inputs + (list python-dateutil + python-pyproj + python-pyyaml + python-pytest + python-pytest-cov + python-pytest-httpserver + python-pytz + python-requests + python-setuptools + python-wheel)) + (propagated-inputs + (list python-lxml)) + (synopsis "Interface for Open Geospatial Consortium web service") + (description + "OWSLib is a Python package for client programming with Open Geospatial +Consortium (OGC) web service (hence OWS) interface standards, and their related +content models.") + (home-page "https://geopython.github.io/OWSLib/") + (license license:bsd-3))) + (define-public mapnik ;; There hasn't been a release since early 2021, and it fails to build with ;; Boost 1.77+. @@ -3907,107 +3963,114 @@ time. Interactively visualize vector, raster and volume data.") (license license:gpl2+))) (define-public navit - (package - (name "navit") - (version "0.5.6") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/navit-gps/navit") - (commit (string-append "v" version)))) - (sha256 - (base32 - "1jhlif0sc5m8wqb5j985g1xba2ki7b7mm14pkvzdghjd0q0gf15s")) - (file-name (git-file-name name version)))) - (build-system cmake-build-system) - (arguments - (list - ;; There are no tests - #:tests? #f - ;; With -DSAMPLE_MAP=TRUE (the default), it tries to download a - ;; map during the build process. - #:configure-flags #~(list "-DSAMPLE_MAP=FALSE") - #:phases - #~(modify-phases %standard-phases - (add-after - 'unpack 'patch-navit-config - (lambda _ - ;; For now this package only supports SDL, so if we keep - ;; the configuration as-is, Navit doesn't start. - (substitute* - "navit/navit_shipped.xml" - (("<graphics type=\"gtk_drawing_area\"/>") - "<graphics type=\"sdl\"/>")) - ;; Users are expected to be able to add XML files inside - ;; $NAVIT_SHAREDIR, however that directory is in the store. - (substitute* - "navit/navit_shipped.xml" - (("<xi:include href=\"\\$NAVIT_SHAREDIR/maps/\\*\\.xml\"/>") - "<xi:include href=\"$NAVIT_USER_DATADIR/maps/*.xml\"/>")) - ;; Navit also works without GPS but in that case there is - ;; no automatic zooming, so we need zoom buttons to be able - ;; to manually zoom in or out. - (substitute* - "navit/navit_shipped.xml" - (((string-append - "<osd enabled=\"no\" type=\"button\" x=\"-96\" y=\"-96\" " - "command=\"zoom_in()")) - (string-append - "<osd enabled=\"yes\" type=\"button\" x=\"-96\" y=\"-96\" " - "command=\"zoom_in()")) - (((string-append - "<osd enabled=\"no\" type=\"button\" x=\"0\" y=\"-96\" " - "command=\"zoom_out()")) - (string-append - "<osd enabled=\"yes\" type=\"button\" x=\"0\" y=\"-96\" " - "command=\"zoom_out()\" src=\"zoom_out.png\"/>"))))) - (add-before - 'build 'set-cache - ;; During the build, svg icons are converted in different - ;; formats, and this needs XDG_CACHE_HOME to work. - (lambda _ - (setenv "XDG_CACHE_HOME" "/tmp/xdg-cache")))))) - (inputs (list dbus-glib - espeak - freeglut - freeimage - freetype - glib - gettext-minimal - gpsd - gdk-pixbuf - imlib2 - python - sdl - sdl-image)) - (native-inputs (list fontconfig - (librsvg-for-system) - pkg-config)) - (home-page "https://www.navit-project.org") - (synopsis "Car navigation system with routing engine that uses vector maps data") - (description "Navit is a car navigation system with a routing engine. + ;; XXX: The latest commit provides compatibility with GCC 14, switch to tag + ;; when a fresh release is available. + (let ((commit "2418e3f42af0641c734f93f3d6d20d3025ad2182") + (revision "0")) + (package + (name "navit") + (version (git-version "0.5.6" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/navit-gps/navit") + (commit commit))) + (sha256 + (base32 + "0s7rhg1xyj56g19fh84znj6fzdiglgf010appjydivn5gkyzb9kq")) + (file-name (git-file-name name version)))) + (build-system cmake-build-system) + (arguments + (list + ;; There are no tests + #:tests? #f + ;; With -DSAMPLE_MAP=TRUE (the default), it tries to download a + ;; map during the build process. + #:configure-flags #~(list "-DSAMPLE_MAP=FALSE") + #:phases + #~(modify-phases %standard-phases + (add-after + 'unpack 'patch-navit-config + (lambda _ + ;; For now this package only supports SDL, so if we keep + ;; the configuration as-is, Navit doesn't start. + (substitute* + "navit/navit_shipped.xml" + (("<graphics type=\"gtk_drawing_area\"/>") + "<graphics type=\"sdl\"/>")) + ;; Users are expected to be able to add XML files inside + ;; $NAVIT_SHAREDIR, however that directory is in the store. + (substitute* + "navit/navit_shipped.xml" + (("<xi:include href=\"\\$NAVIT_SHAREDIR/maps/\\*\\.xml\"/>") + "<xi:include href=\"$NAVIT_USER_DATADIR/maps/*.xml\"/>")) + ;; Navit also works without GPS but in that case there is + ;; no automatic zooming, so we need zoom buttons to be able + ;; to manually zoom in or out. + (substitute* + "navit/navit_shipped.xml" + (((string-append + "<osd enabled=\"no\" type=\"button\" x=\"-96\" y=\"-96\" " + "command=\"zoom_in()")) + (string-append + "<osd enabled=\"yes\" type=\"button\" x=\"-96\" y=\"-96\" " + "command=\"zoom_in()")) + (((string-append + "<osd enabled=\"no\" type=\"button\" x=\"0\" y=\"-96\" " + "command=\"zoom_out()")) + (string-append + "<osd enabled=\"yes\" type=\"button\" x=\"0\" y=\"-96\" " + "command=\"zoom_out()\" src=\"zoom_out.png\"/>"))))) + (add-before + 'build 'set-cache + ;; During the build, svg icons are converted in different + ;; formats, and this needs XDG_CACHE_HOME to work. + (lambda _ + (setenv "XDG_CACHE_HOME" "/tmp/xdg-cache")))))) + (inputs (list dbus-glib + espeak + freeglut + freeimage + freetype + fribidi + glib + gettext-minimal + gpsd + gdk-pixbuf + imlib2 + python + sdl + sdl-image)) + (native-inputs (list fontconfig + (librsvg-for-system) + libxslt + pkg-config + protobuf-c)) + (home-page "https://www.navit-project.org") + (synopsis "Car navigation system with routing engine that uses vector maps data") + (description + "Navit is a car navigation system with a routing engine. -It is meant to work with touchscreen devices, but it also works -without a touchscreen. It also supports text to speech. +It is meant to work with touchscreen devices, but it also works without a +touchscreen. It also supports text to speech. -It can be configured extensively through its own configuration file -format. For instance we can configure the graphical interface, and -which map data is to be displayed at which zoom level. +It can be configured extensively through its own configuration file format. +For instance we can configure the graphical interface, and which map data is +to be displayed at which zoom level. It supports different routing profiles: bike, car, car_avoid_toll, car_pedantic, car_shortest, horse, pedestrian, truck. -It can use gpsd or NMEA GPS directly to get position data. It also -works without GPS: in this case users can also enter position data -directly. +It can use gpsd or NMEA GPS directly to get position data. It also works +without GPS: in this case users can also enter position data directly. -It can also be used to log GPS data to files using the GPX or NMEA -formats, or to replay NMEA data. +It can also be used to log GPS data to files using the GPX or NMEA formats, or +to replay NMEA data. -For maps, it can uses its own \"binfile\" map format, or Garmin map -file format, and data from OpenStreetMap, Garmin maps, Marco Polo -Grosser Reiseplaner, Routeplaner Europa 2007, Map + Route.") - (license license:gpl2))) +For maps, it can uses its own \"binfile\" map format, or Garmin map file +format, and data from OpenStreetMap, Garmin maps, Marco Polo Grosser +Reiseplaner, Routeplaner Europa 2007, Map + Route.") + (license license:gpl2)))) (define-public laszip (package diff --git a/gnu/packages/graphviz.scm b/gnu/packages/graphviz.scm index 40a5cf7401..1e78a9de27 100644 --- a/gnu/packages/graphviz.scm +++ b/gnu/packages/graphviz.scm @@ -327,7 +327,7 @@ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(srcdir)/predicates_init.c \ (file-name (git-file-name name version)) (sha256 (base32 "1l34ahvcz90j3j7aspp9wqvxpq10mzgq7l0sanrj142ihdnbahvy")))) - (build-system python-build-system) + (build-system pyproject-build-system) (arguments (list #:phases #~(modify-phases %standard-phases @@ -350,13 +350,12 @@ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(srcdir)/predicates_init.c \ (setenv "LD_LIBRARY_PATH" (dirname lib))))) ;; We wrap xdot, so that we don't propagate gtk+ and graphviz - (add-after 'install 'wrap + (replace 'wrap (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (graphviz (assoc-ref inputs "graphviz")) + (let ((graphviz (assoc-ref inputs "graphviz")) (gi-typelib-path (getenv "GI_TYPELIB_PATH")) (python-path (getenv "GUIX_PYTHONPATH"))) - (wrap-program (string-append out "/bin/xdot") + (wrap-program (string-append #$output "/bin/xdot") `("PATH" ":" prefix (,(string-append graphviz "/bin"))) `("GI_TYPELIB_PATH" ":" prefix @@ -381,6 +380,8 @@ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(srcdir)/predicates_init.c \ python-numpy python-pycairo python-pygobject + python-setuptools + python-wheel vulkan-loader)) (home-page "https://pypi.org/project/xdot/") (synopsis "Interactive viewer for graphviz dot files") diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm index 0f5cf2a302..a4a73b9435 100644 --- a/gnu/packages/image-processing.scm +++ b/gnu/packages/image-processing.scm @@ -88,6 +88,7 @@ #:use-module (gnu packages image) #:use-module (gnu packages imagemagick) #:use-module (gnu packages linux) + #:use-module (gnu packages lua) #:use-module (gnu packages maths) #:use-module (gnu packages mpi) #:use-module (gnu packages opencl) @@ -108,6 +109,7 @@ #:use-module (gnu packages sphinx) #:use-module (gnu packages sqlite) #:use-module (gnu packages ssh) + #:use-module (gnu packages statistics) #:use-module (gnu packages swig) #:use-module (gnu packages tbb) #:use-module (gnu packages textutils) @@ -1286,9 +1288,16 @@ libraries designed for computer vision research and implementation.") ;; For a remote MODULE, use the commit in ;; 'Modules/Remote/MODULE.remote.cmake'. ;; MorphologicalContourInterpolation is required by itk-snap. - (let* ((module-commit "821bf9b3ef8eaaab10391ed060dc9ca5e4d37b39") - (module-file (git-file-name "ITKMorphologicalContourInterpolation" - module-commit))) + ;; SimpleITKFilters and GenericLabelInterpolator are required by simpleitk. + (let* ((module-mci-commit "821bf9b3ef8eaaab10391ed060dc9ca5e4d37b39") + (module-mci-file (git-file-name "ITKMorphologicalContourInterpolation" + module-mci-commit)) + (module-sitkf-commit "bb896868fc6480835495d0da4356d5db009592a6") + (module-sitkf-file (git-file-name "ITKSimpleITKFilters" + module-sitkf-commit)) + (module-gli-commit "ebf2436469ccf82c08fab54b7446f699ad0eae01") + (module-gli-file (git-file-name "ITKGenericLabelInterpolator" + module-gli-commit))) (package (name "insight-toolkit") (version "5.4.4") @@ -1343,6 +1352,8 @@ libraries designed for computer vision research and implementation.") ;; Python is not built with Py_LIMITED_API. "-DITK_USE_PYTHON_LIMITED_API=OFF" "-DModule_MorphologicalContourInterpolation=ON" + "-DModule_SimpleITKFilters=ON" + "-DModule_GenericLabelInterpolator=ON" "-DCMAKE_CXX_STANDARD=17" "-DBUILD_TESTING=OFF") @@ -1376,12 +1387,21 @@ libraries designed for computer vision research and implementation.") (lambda _ ;; ITK module MorphologicalContourInterpolation ;; is for ITK-SNAP. - (symlink #$(this-package-native-input module-file) + (symlink #$(this-package-native-input module-mci-file) "Modules/Remote/MorphologicalContourInterpolation") (delete-file (string-append "Modules/Remote/" - "MorphologicalContourInterpolation.remote.cmake")))) + "MorphologicalContourInterpolation.remote.cmake")) + ;; ITK modules SimpleITKFilters and GenericLabelInterpolator + ;; are for SimpleITK. + (symlink #$(this-package-native-input module-sitkf-file) + "Modules/Remote/SimpleITKFilters") + (delete-file "Modules/Remote/SimpleITKFilters.remote.cmake") + (symlink #$(this-package-native-input module-gli-file) + "Modules/Remote/GenericLabelInterpolator") + (delete-file + "Modules/Remote/GenericLabelInterpolator.remote.cmake"))) (add-after 'unpack 'fix-numpy-bool (lambda _ ;; <https://github.com/InsightSoftwareConsortium/ITK/pull/5402> @@ -1423,11 +1443,33 @@ libraries designed for computer vision research and implementation.") (url (string-append "https://github.com/KitwareMedical/" "ITKMorphologicalContourInterpolation")) - (commit module-commit))) - (file-name module-file) + (commit module-mci-commit))) + (file-name module-mci-file) (sha256 (base32 - "00myhgvlk3n062i8bnknz1d10zkv3jlvs7f4jnk24727gd4v2n4i"))))) + "00myhgvlk3n062i8bnknz1d10zkv3jlvs7f4jnk24727gd4v2n4i"))) + (origin + (method git-fetch) + (uri (git-reference + (url (string-append + "https://github.com/InsightSoftwareConsortium/" + "ITKSimpleITKFilters")) + (commit module-sitkf-commit))) + (file-name module-sitkf-file) + (sha256 + (base32 + "13nys94wl4k77f89i8y1dm3y4pmgmw3rrc0la1rzl0vi9h1qixii"))) + (origin + (method git-fetch) + (uri (git-reference + (url (string-append + "https://github.com/InsightSoftwareConsortium/" + "ITKGenericLabelInterpolator")) + (commit module-gli-commit))) + (file-name module-gli-file) + (sha256 + (base32 + "1khakqh6pzdg6csli8jypzrhcdr9xmhnzgwz265krv8r5mbnndrg"))))) ;; The 'CMake/ITKSetStandardCompilerFlags.cmake' file normally sets ;; '-mtune=native -march=corei7', suggesting there's something to be @@ -1708,6 +1750,122 @@ Scan Tailer Advanced is a fork of Scan Tailer that merges Scan Tailor Featured and Scan Tailor Enhanced versions as well as including many more bug fixes.") (license license:gpl3+)))) +(define-public simpleitk + (package + (name "simpleitk") + (version "2.5.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/SimpleITK/SimpleITK") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ykrfrfh2012cg1122689w23pan2y731sszfpb701zhsb6fwv7j7")))) + (build-system cmake-build-system) + (outputs '("out" "python" "r")) + (arguments + (list + #:configure-flags + #~(list "-DBUILD_SHARED_LIBS=ON" + "-DWRAP_LUA=OFF" + "-DWRAP_PYTHON=ON" + "-DWRAP_R=ON" + "-DSimpleITK_PYTHON_USE_VIRTUALENV=OFF") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'early-GTest-discovery + (lambda _ + ;; Find GTest before targets link to 'GTest::GTest'. + (substitute* "Testing/Unit/CMakeLists.txt" + (("add_subdirectory\\(TestBase\\)" anchor) + (string-append "find_package(GTest REQUIRED)\n" anchor))))) + (add-after 'unpack 'extract-test-data + (lambda _ + (invoke "tar" "xvf" + #$(this-package-native-input + (string-append "SimpleITKData-" version ".tar.gz")) + "--strip-components=1"))) + (add-after 'unpack 'fix-runpath + (lambda _ + ;; The SWIG-generated shared libraries do not have SimpleITK's + ;; libraries in their RUNPATH. + (define (cmake-snippet start) + (string-append + start + "set_target_properties(${SWIG_MODULE_SimpleITK_TARGET_NAME} " + "PROPERTIES BUILD_WITH_INSTALL_RPATH TRUE " + "INSTALL_RPATH \"" #$output "/lib\")\n")) + (substitute* "Wrapping/Python/CMakeLists.txt" + (("^set\\(SWIG_MODULE_SimpleITKPython.*" anchor) + (cmake-snippet anchor))) + (substitute* "Wrapping/R/CMakeLists.txt" + (("^set\\(SWIG_MODULE_SimpleITKR.*" anchor) + (cmake-snippet anchor))))) + (add-after 'unpack 'patch-cmake-config-itk-path + (lambda _ + ;; Allow building SimpleITK C++ projects without ITK installed + ;; in the profile. + #$(let* + ((itk (this-package-input "insight-toolkit")) + (itk-version (package-version itk)) + (itk-version-major+minor + (version-major+minor itk-version))) + #~(substitute* "SimpleITKConfig.cmake.in" + (((string-append + "find_package\\(ITK \"@ITK_VERSION@\" " + "EXACT REQUIRED\\)")) + (string-append + "find_package(ITK \"" #$itk-version + "\" EXACT REQUIRED PATHS " #$itk + "/lib/cmake/ITK-" + #$itk-version-major+minor ")")))))) + (add-after 'install 'install-language-extension-modules + (lambda _ + (with-directory-excursion "Wrapping/Python" + (invoke "python3" "setup.py" "bdist_wheel") + (apply invoke "pip" "--no-cache-dir" "--no-input" "install" + "--no-deps" "--prefix" #$output:python + (find-files "dist" "\\.whl$"))) + (let ((r-package-path + (string-append #$output:r "/site-library/SimpleITK"))) + (mkdir-p r-package-path) + (copy-recursively "Wrapping/R/R_libs/SimpleITK" + r-package-path)))) + (delete 'check) + (add-after 'install 'check-after-install + ;; Run the tests when the SimpleITK libraries are where the + ;; language extension modules expect them to be. + (assoc-ref %standard-phases 'check))))) + (home-page "https://simpleitk.org") + (inputs (list insight-toolkit python r-minimal)) + (native-inputs + (list googletest + lua + python-numpy ;for tests + python-pip + python-setuptools + python-wheel + swig-next + (origin + (method url-fetch) + (uri (string-append + "https://github.com/SimpleITK/SimpleITK/releases/download/v" + version "/SimpleITKData-" version ".tar.gz")) + (sha256 + (base32 + "13y44qqsgsvbrm84073i8clhggdgk8f36i6102sjg4j3fq790gal"))))) + (synopsis "Simplified interface to @acronym{ITK, Insight Toolkit}") + (description + "SimpleITK is an image analysis toolkit built on top of @acronym{ITK, +Insight Toolkit}. It provides a simplified interface to most of the +image filters and the input/output and registration frameworks in +@acronym{ITK, Insight Toolkit}. It is written in C++ and provides +bindings for interpreted languages. This package includes the C++, +Python and R interfaces.") + (license license:asl2.0))) + (define-public stiff (package (name "stiff") diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm index 3e1c30b8d7..af80f441c7 100644 --- a/gnu/packages/image-viewers.scm +++ b/gnu/packages/image-viewers.scm @@ -1156,7 +1156,7 @@ synchronization of multiple instances.") (define-public hydrus-network (package (name "hydrus-network") - (version "495") ;upstream has a weekly release cycle + (version "630") ;upstream has a weekly release cycle (source (origin (method git-fetch) @@ -1166,7 +1166,7 @@ synchronization of multiple instances.") (file-name (git-file-name name version)) (sha256 (base32 - "03zhrcmjzbk37sl9nwjahfmr8aflss84c4xhg5ci5b8jvbbqmr1j")) + "0x133m93nx2rphs0zymmhfknp1274r2fh2jc91rrv9vmdqfh9yyc")) (modules '((guix build utils))) (snippet ;; Remove pre-built binaries from bin/. @@ -1177,7 +1177,7 @@ synchronization of multiple instances.") #:phases #~(let ((static-dir "/share/hydrus/static")) (modify-phases %standard-phases - ;; Hydrus is a python program but does not uses setup.py or any + ;; Hydrus is a python program but does not use setup.py or any ;; other build system to build itself - it's delivered ready to ;; run from the source. (replace 'check @@ -1185,7 +1185,7 @@ synchronization of multiple instances.") (setenv "DISPLAY" ":0") (setenv "XDG_CACHE_HOME" (getcwd)) (setenv "HOME" (getcwd)) - (invoke "xvfb-run" "python" "test.py"))) + (invoke "xvfb-run" "python" "hydrus_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 @@ -1207,15 +1207,17 @@ synchronization of multiple instances.") (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")))))))) + (with-directory-excursion "files" + (substitute* "HydrusFlashHandling.py" + (("SWFRENDER_PATH = .*\n") + (string-append "SWFRENDER_PATH = \"" swfrender "\"\n"))) + (substitute* "HydrusVideoHandling.py" + (("FFMPEG_PATH = .*\n") + (string-append "FFMPEG_PATH = \"" ffmpeg "\"\n")))) + (with-directory-excursion "networking" + (substitute* "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 @@ -1232,9 +1234,9 @@ synchronization of multiple instances.") #$(this-package-input "python")) "/site-packages/hydrus")) (mkdir (string-append out "/bin")) - (copy-file "client.py" client) + (copy-file "hydrus_client.py" client) (chmod client #o0555) - (copy-file "server.py" server) + (copy-file "hydrus_server.py" server) (chmod server #o0555)))))))) ;; All native-inputs are only needed for the the check phase (native-inputs @@ -1248,6 +1250,7 @@ synchronization of multiple instances.") python-cbor2 python-chardet python-cloudscraper + python-dateparser python-html5lib python-lxml python-lz4 @@ -1255,11 +1258,8 @@ synchronization of multiple instances.") 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-pyside-6 python-pysocks python-mpv python-pyyaml diff --git a/gnu/packages/ipfs.scm b/gnu/packages/ipfs.scm index f0ee0fd807..96153a4415 100644 --- a/gnu/packages/ipfs.scm +++ b/gnu/packages/ipfs.scm @@ -374,6 +374,63 @@ provides a single @code{GetBlock/AddBlock} interface that seamlessly retrieves data either locally or from a remote peer through the exchange.") (license license:expat))) +(define-public go-github-com-ipfs-go-cid + (package + (name "go-github-com-ipfs-go-cid") + (version "0.4.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ipfs/go-cid") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0gfd5dg0shj2daraai2kkf8sg24jp5cr6dsv857wp4q1ni612a23")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ipfs/go-cid")) + (propagated-inputs + (list go-github-com-multiformats-go-multihash + go-github-com-multiformats-go-multibase + go-github-com-multiformats-go-varint)) + (home-page "https://github.com/ipfs/go-cid") + (synopsis "Content ID v1 implemented in Go") + (description + "Implementation in Go of the @url{https://github.com/ipld/cid, CID spec}. It is +used in @code{go-ipfs} and related packages to refer to a typed hunk of data.") + (license license:expat))) + +(define-public go-github-com-ipfs-go-cidutil + (package + (name "go-github-com-ipfs-go-cidutil") + (version "0.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ipfs/go-cidutil") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0j18wf42rfxrrh2fjdbjsjvjqxwgvg46b9wl6y5ig22fx5hvpm1n")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ipfs/go-cidutil")) + (propagated-inputs + (list go-github-com-ipfs-go-cid + go-github-com-multiformats-go-multibase + go-github-com-multiformats-go-multicodec + go-github-com-multiformats-go-multihash)) + (home-page "https://github.com/ipfs/go-cidutil") + (synopsis "Utility functions and types for working with CIDs") + (description + "@code{go-cidutil} implements various utilities and helper functions for working +with @url{https://github.com/ipld/cid, CIDs}.") + (license license:expat))) + (define-public go-github-com-ipfs-go-ds-badger4 (package (name "go-github-com-ipfs-go-ds-badger4") @@ -618,63 +675,6 @@ datastore, giving a clean interface for getting and putting block objects.") @url{https://github.com/ipfs/go-block-format, IPFS blocks}.") (license license:expat))) -(define-public go-github-com-ipfs-go-cid - (package - (name "go-github-com-ipfs-go-cid") - (version "0.4.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ipfs/go-cid") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0gfd5dg0shj2daraai2kkf8sg24jp5cr6dsv857wp4q1ni612a23")))) - (build-system go-build-system) - (arguments - (list - #:import-path "github.com/ipfs/go-cid")) - (propagated-inputs - (list go-github-com-multiformats-go-multihash - go-github-com-multiformats-go-multibase - go-github-com-multiformats-go-varint)) - (home-page "https://github.com/ipfs/go-cid") - (synopsis "Content ID v1 implemented in Go") - (description - "Implementation in Go of the @url{https://github.com/ipld/cid, CID spec}. It is -used in @code{go-ipfs} and related packages to refer to a typed hunk of data.") - (license license:expat))) - -(define-public go-github-com-ipfs-go-cidutil - (package - (name "go-github-com-ipfs-go-cidutil") - (version "0.1.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ipfs/go-cidutil") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0j18wf42rfxrrh2fjdbjsjvjqxwgvg46b9wl6y5ig22fx5hvpm1n")))) - (build-system go-build-system) - (arguments - (list - #:import-path "github.com/ipfs/go-cidutil")) - (propagated-inputs - (list go-github-com-ipfs-go-cid - go-github-com-multiformats-go-multibase - go-github-com-multiformats-go-multicodec - go-github-com-multiformats-go-multihash)) - (home-page "https://github.com/ipfs/go-cidutil") - (synopsis "Utility functions and types for working with CIDs") - (description - "@code{go-cidutil} implements various utilities and helper functions for working -with @url{https://github.com/ipld/cid, CIDs}.") - (license license:expat))) - (define-public go-github-com-ipfs-go-ipfs-cmds (package (name "go-github-com-ipfs-go-ipfs-cmds") @@ -1136,6 +1136,34 @@ implementation of @code{go-ipld-format}") "An implementation of a @url{https://cbor.io/, CBOR} encoded merkledag object.") (license license:expat))) +(define-public go-github-com-ipfs-go-ipld-format + (package + (name "go-github-com-ipfs-go-ipld-format") + (version "0.6.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ipfs/go-ipld-format") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zl172ncmx9h5z2p3d0j1377xm9glw4zfyamks31p0pvvx2kyn7c")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ipfs/go-ipld-format")) + (propagated-inputs + (list go-github-com-multiformats-go-multihash + go-github-com-ipfs-go-block-format + go-github-com-ipfs-go-cid)) + (home-page "https://github.com/ipfs/go-ipld-format") + (synopsis "IPLD Node and Resolver interfaces in Go") + (description + "@code{go-ipld-format} is a set of interfaces that a type needs to implement in +order to be a part of the @acronym{IPLD, InterPlanetary Linked Data} merkle-forest.") + (license license:expat))) + (define-public go-github-com-ipfs-go-ipld-git (package (name "go-github-com-ipfs-go-ipld-git") @@ -1178,34 +1206,6 @@ IPLD graph as detailed below. Objects are demonstrated here using both @url{https://ipld.io/docs/schemas/,IPLD Schemas} and example JSON forms.") (license license:expat))) -(define-public go-github-com-ipfs-go-ipld-format - (package - (name "go-github-com-ipfs-go-ipld-format") - (version "0.6.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ipfs/go-ipld-format") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0zl172ncmx9h5z2p3d0j1377xm9glw4zfyamks31p0pvvx2kyn7c")))) - (build-system go-build-system) - (arguments - (list - #:import-path "github.com/ipfs/go-ipld-format")) - (propagated-inputs - (list go-github-com-multiformats-go-multihash - go-github-com-ipfs-go-block-format - go-github-com-ipfs-go-cid)) - (home-page "https://github.com/ipfs/go-ipld-format") - (synopsis "IPLD Node and Resolver interfaces in Go") - (description - "@code{go-ipld-format} is a set of interfaces that a type needs to implement in -order to be a part of the @acronym{IPLD, InterPlanetary Linked Data} merkle-forest.") - (license license:expat))) - (define-public go-github-com-ipfs-go-ipld-legacy (package (name "go-github-com-ipfs-go-ipld-legacy") @@ -1284,6 +1284,36 @@ Graphs, DAG} data structures as specified in @url{https://docs.ipfs.tech/concepts/merkle-dag}.") (license license:expat))) +(define-public go-github-com-ipfs-go-metrics-interface + (package + (name "go-github-com-ipfs-go-metrics-interface") + (version "0.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ipfs/go-metrics-interface") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0d7jh9aclmxq4z5hynn4lc0ab8c8rip92xkc224vjw2y7kg6jyvg")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/ipfs/go-metrics-interface")) + (propagated-inputs + (list go-github-com-ipfs-go-cid + go-github-com-ipfs-go-datastore + go-github-com-multiformats-go-base32 + go-github-com-multiformats-go-multihash)) + (home-page "https://github.com/ipfs/go-metrics-interface") + ;; XXX: The project neither has no a proper description, nor a README, see + ;; <https://github.com/ipfs/go-metrics-interface/issues/1>. + (synopsis "Metrics interface for IPFS") + (description + "Metrics interface for IPFS (Kubo).") + (license license:expat))) + (define-public go-github-com-ipfs-go-metrics-prometheus (package (name "go-github-com-ipfs-go-metrics-prometheus") @@ -1770,36 +1800,6 @@ their levels to be controlled individually.") (list #:import-path "github.com/ipfs/go-log")))) -(define-public go-github-com-ipfs-go-metrics-interface - (package - (name "go-github-com-ipfs-go-metrics-interface") - (version "0.3.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ipfs/go-metrics-interface") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0d7jh9aclmxq4z5hynn4lc0ab8c8rip92xkc224vjw2y7kg6jyvg")))) - (build-system go-build-system) - (arguments - (list - #:import-path "github.com/ipfs/go-metrics-interface")) - (propagated-inputs - (list go-github-com-ipfs-go-cid - go-github-com-ipfs-go-datastore - go-github-com-multiformats-go-base32 - go-github-com-multiformats-go-multihash)) - (home-page "https://github.com/ipfs/go-metrics-interface") - ;; XXX: The project neither has no a proper description, nor a README, see - ;; <https://github.com/ipfs/go-metrics-interface/issues/1>. - (synopsis "Metrics interface for IPFS") - (description - "Metrics interface for IPFS (Kubo).") - (license license:expat))) - (define-public go-github-com-ipshipyard-p2p-forge (package (name "go-github-com-ipshipyard-p2p-forge") diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm index f8e80851f2..472fdb5372 100644 --- a/gnu/packages/kde-frameworks.scm +++ b/gnu/packages/kde-frameworks.scm @@ -2752,40 +2752,6 @@ but may be a runtime requirement for Qt-based software to support certain image formats.") (license license:lgpl2.1+))) -(define-public kimageformats-5 - (package - (inherit kimageformats) - (name "kimageformats") - (version "5.116.0") - (source (origin - (method url-fetch) - (uri (string-append - "mirror://kde/stable/frameworks/" - (version-major+minor version) "/" - name "-" version ".tar.xz")) - (sha256 - (base32 - "174g32s3m7irzv2h3lk7bmp3yfc7zrmp7lmp02n3m5ppbv6rn4bw")))) - (native-inputs - (list extra-cmake-modules pkg-config)) - (inputs - (list karchive-5 ; for Krita and OpenRaster images - openexr-2 ; for OpenEXR high dynamic-range images - qtbase-5 - qtimageformats-5)) - (arguments - (list - #:phases - #~(modify-phases %standard-phases - (add-before 'check 'check-setup - (lambda _ - ;; make Qt render "offscreen", required for tests - (setenv "QT_QPA_PLATFORM" "offscreen")))) - #:configure-flags #~(list (string-append "-DCMAKE_CXX_FLAGS=-I" - (assoc-ref %build-inputs - "ilmbase") - "/include/OpenEXR")))))) - (define-public kjobwidgets (package (name "kjobwidgets") diff --git a/gnu/packages/kde-plasma.scm b/gnu/packages/kde-plasma.scm index 097207a089..8c6e858ccf 100644 --- a/gnu/packages/kde-plasma.scm +++ b/gnu/packages/kde-plasma.scm @@ -440,6 +440,53 @@ concept.") (home-page "https://invent.kde.org/plasma/kactivitymanagerd") (license (list license:gpl2 license:gpl3)))) +(define-public klassy + (package + (name "klassy") + (version "6.4.breeze6.4.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/paulmcauley/klassy") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0hrr8kg988qzpk8mccc8kk9lah9b89wx0h47s1981wvb9bci5dpr")))) + (build-system qt-build-system) + (native-inputs (list extra-cmake-modules)) + (inputs (list qtsvg + kirigami + qtdeclarative + kconfig + kconfigwidgets + kcoreaddons + kcolorscheme + kdecoration + kcmutils + kguiaddons + kiconthemes + kwindowsystem + ki18n)) + (arguments + (list + #:qtbase qtbase + #:tests? #f ; No tests. + #:configure-flags + #~(list "-DBUILD_QT5=OFF"))) + (home-page "https://github.com/paulmcauley/klassy") + (synopsis "Customizable window decoration for the KDE Plasma desktop") + (description + "Klassy is a highly customizable binary Window Decoration, +Application Style and Global Theme plugin for recent versions of the KDE Plasma +desktop.") + (license (list license:bsd-3 + license:cc0 + license:expat + license:gpl2 + license:gpl2+ + license:gpl3)))) + (define-public krdp (package (name "krdp") diff --git a/gnu/packages/language.scm b/gnu/packages/language.scm index 356aaacbc8..dc10309668 100644 --- a/gnu/packages/language.scm +++ b/gnu/packages/language.scm @@ -941,6 +941,8 @@ and manipulation.") (build-system gnu-build-system) (arguments (list #:parallel-tests? #f ;Concurrency issues in tests. + ;; relax gcc 14 strictness + #:configure-flags #~(list "CFLAGS=-g2 -O2 -Wno-error=int-conversion") #:phases #~(modify-phases %standard-phases (add-after 'install 'symlink-skk-jisyo diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 34dd73e32e..d673618fec 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -17,7 +17,7 @@ ;;; Copyright © 2020 Edouard Klein <edk@beaver-labs.com> ;;; Copyright © 2020-2025 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2020, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> -;;; Copyright © 2022, 2023, 2024 Nicolas Graves <ngraves@ngraves.fr> +;;; Copyright © 2022-2025 Nicolas Graves <ngraves@ngraves.fr> ;;; Copyright © 2022 Kiran Shila <me@kiranshila.com> ;;; Copyright © 2022 Wiktor Zelazny <wzelazny@vurv.cz> ;;; Copyright © 2023 zamfofex <zamfofex@twdb.moe> @@ -76,6 +76,7 @@ #:use-module (gnu packages boost) #:use-module (gnu packages build-tools) #:use-module (gnu packages c) + #:use-module (gnu packages calendar) #:use-module (gnu packages check) #:use-module (gnu packages cmake) #:use-module (gnu packages compression) @@ -220,6 +221,40 @@ representations and sentence classification.") family of functions.") (license license:expat))) +(define-public python-faster-whisper + (package + (name "python-faster-whisper") + (version "1.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/SYSTRAN/faster-whisper") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0g9cdvphifn4rqhh7p4z1d3pp6bhcx0jmcahjigvcgry0qsijgfn")))) + (build-system pyproject-build-system) + ;; XXX: Currently tests requires model download, which we'd rather avoid + ;; in Guix unless we're sure about the FOSS weights. To test in source : + ;; guix shell -D python-faster-whisper -- pytest + (arguments (list #:tests? #f)) + (propagated-inputs (list (list onnxruntime "python") + python-av + python-ctranslate2 + python-huggingface-hub + python-tokenizers + python-tqdm)) + (native-inputs (list python-numpy + python-pytest + python-setuptools-next)) + (home-page "https://github.com/SYSTRAN/faster-whisper") + (synopsis "Whisper transcription reimplementation") + (description + "This package provides a reimplementation of OpenAI's Whisper model using +CTranslate2, which is a inference engine for transformer models.") + (license license:expat))) + (define-public python-fasttext (package (inherit fasttext) @@ -1501,37 +1536,25 @@ unsupervised text tokenizer.") (define-public python-sentence-transformers (package (name "python-sentence-transformers") - (version "3.0.1") + (version "5.1.0") (source (origin - (method url-fetch) - (uri (pypi-uri "sentence_transformers" version)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/UKPLab/sentence-transformers/") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 "1xmzbyrlp6wa7adf42n67c544db17nz95b10ri603lf4gi9jqgca")))) + (base32 + "1jkj77q25b21nxrdszvlw127jnx1m7x8czldiq2mfyj76yjk0ymj")))) (build-system pyproject-build-system) (arguments - (list - #:test-flags - '(list - ;; Missing fixture / train or test data. - ;; Requires internet access. - "--ignore=tests/test_sentence_transformer.py" - "--ignore=tests/test_train_stsb.py" - "--ignore=tests/test_compute_embeddings.py" - "--ignore=tests/test_cross_encoder.py" - "--ignore=tests/test_model_card_data.py" - "--ignore=tests/test_multi_process.py" - "--ignore=tests/test_pretrained_stsb.py" - "-k" (string-append - "not test_LabelAccuracyEvaluator" - " and not test_ParaphraseMiningEvaluator" - " and not test_cmnrl_same_grad" - " and not test_paraphrase_mining" - " and not test_simple_encode")))) + (list #:tests? #f)) ;network access is required (propagated-inputs (list python-huggingface-hub python-numpy python-pillow python-pytorch + python-typing-extensions python-scikit-learn python-scipy python-tqdm @@ -1843,6 +1866,139 @@ aim is to provide all such passes along with ONNX so that they can be re-used with a single function call.") (license license:expat))) +(define-public onnxruntime + (package + (name "onnxruntime") + (version "1.22.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/microsoft/onnxruntime") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0z2s79l4wdilssw9lmj319ypyyqi2y0dx0fpwr2yhq8bax3ci50n")))) + (build-system cmake-build-system) + (arguments + (list + #:modules '((guix build cmake-build-system) + (guix build utils) + ((guix build pyproject-build-system) #:prefix py:)) + #:imported-modules (append %cmake-build-system-modules + %pyproject-build-system-modules) + #:configure-flags + #~(list "-Donnxruntime_BUILD_UNIT_TESTS=OFF" + "-Donnxruntime_BUILD_SHARED_LIB=ON" + "-Donnxruntime_ENABLE_LTO=ON" + "-Donnxruntime_ENABLE_PYTHON=ON" + "-Donnxruntime_USE_FULL_PROTOBUF=OFF" + ;; XXX: Fixes build with gcc@14. + "-DCMAKE_CXX_FLAGS=-Wl,-z,noexecstack") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ + (chdir "cmake"))) + (add-after 'unpack 'relax-dependencies + (lambda _ + (with-output-to-file "cmake/external/eigen.cmake" + (lambda _ + (display "find_package(Eigen3 REQUIRED)\n"))) + (substitute* "cmake/external/abseil-cpp.cmake" + (("20240722") + (car (string-split #$(package-version + (this-package-input "abseil-cpp")) + #\.)))))) + (add-after 'install 'build-python + (lambda _ + (invoke "python3" "../setup.py" "bdist_wheel"))) + (add-after 'build-python 'install-python + (lambda* (#:key inputs #:allow-other-keys) + ((assoc-ref py:%standard-phases 'install) + #:inputs inputs + #:outputs `(("out" . ,#$output:python))))) + (add-after 'install-python 'add-install-to-pythonpath + (lambda* (#:key inputs #:allow-other-keys) + ((assoc-ref py:%standard-phases 'add-install-to-pythonpath) + #:inputs inputs + #:outputs `(("out" . ,#$output:python))))) + (delete 'check) + (add-after 'add-install-to-pythonpath 'check + (lambda* (#:key tests? #:allow-other-keys) + (with-directory-excursion "../onnxruntime/test/python" + ((assoc-ref py:%standard-phases 'check) + #:tests? tests? + #:test-flags + `(;; XXX: NotImplementedError + "--ignore-glob=quantization/*" + ;; XXX: These tests require transformer models or have + ;; import issues. + "--ignore=transformers/test_generation.py" + "--ignore=transformers/test_gpt2_benchmark.py" + "--ignore=transformers/test_gpt2_to_onnx.py" + "--ignore=transformers/test_optimizer_huggingface_bert.py" + "--ignore=transformers/test_parity_huggingface_gpt_attention.py" + "--ignore=transformers/test_shape_infer_helper.py" + ;; XXX: onnxscript ModuleNotFound + "--ignore=transformers/test_gelu_fusions.py" + "--ignore=transformers/test_gemma3_vision.py" + ;; XXX: Other failing tests. + "-k" ,(string-append + "not test_gelu_is_fused_by_default" + " and not test_inverse")))))) + (add-after 'check 'python-sanity-check + (lambda* (#:key tests? inputs #:allow-other-keys) + ((assoc-ref py:%standard-phases 'sanity-check) + #:inputs `(("sanity-check.py" . ,#$(default-sanity-check.py)) + ,@inputs) + #:outputs `(("out" . ,#$output:python)))))))) + (outputs (list "out" "python")) + (inputs + (list abseil-cpp + boost + cpuinfo + dlpack + c++-gsl + date + eigen-for-onnxruntime + flatbuffers-23.5 + googletest + nlohmann-json + onnx + protobuf + pybind11 + re2-next + safeint + zlib)) + (native-inputs + (list pkg-config + python-einops + python-wrapper + python-numpy + python-parameterized + python-psutil + python-pytest + python-pytorch + python-sentencepiece + python-setuptools-next)) + (propagated-inputs + (list python-coloredlogs + python-flatbuffers + python-protobuf + python-sympy)) + (home-page "https://github.com/microsoft/onnxruntime") + (synopsis "Cross-platform, high performance scoring engine for ML models") + (description + "ONNX Runtime is a performance-focused complete scoring engine +for Open Neural Network Exchange (ONNX) models, with an open +extensible architecture to continually address the latest developments +in AI and Deep Learning. ONNX Runtime stays up to date with the ONNX +standard with complete implementation of all ONNX operators, and +supports all ONNX releases (1.2+) with both future and backwards +compatibility.") + (license license:expat))) + (define-public rxcpp (package (name "rxcpp") @@ -6669,22 +6825,25 @@ simple speech recognition.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/ideasman42/nerd-dictation") - (commit commit))) + (url "https://github.com/ideasman42/nerd-dictation") + (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 "0frdpswv6w3cwj3c7wd5w8gj3s1hvpdwd48qhfhfxf7imahz9bqf")))) - (build-system python-build-system) + (build-system pyproject-build-system) (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'chdir - (lambda _ (chdir "package/python")))))) + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ + (chdir "package/python")))))) + (native-inputs (list python-setuptools python-wheel)) (propagated-inputs (list python-vosk)) (home-page "https://github.com/ideasman42/nerd-dictation") (synopsis "Offline speech-to-text for desktop Linux") - (description "\ -This package provides simple access speech to text for using in + (description + "This package provides simple access speech to text for using in Linux without being tied to a desktop environment, using the @code{vosk-api}. The user configuration lets you manipulate text using Python string operations. It has zero overhead, as this relies on manual activation and diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 9dcc4660d0..e6bc71710b 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -4726,23 +4726,23 @@ and Conformance} (uri (pypi-uri "dkimpy" version)) (sha256 (base32 "088iz5cqjqh4c7141d94pvn13bh25aizqlrifwv6fs5g16zj094s")))) - (build-system python-build-system) + (build-system pyproject-build-system) (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'patch-source-shebangs 'patch-more-source - (lambda* (#:key inputs #:allow-other-keys) - (let ((openssl (assoc-ref inputs "openssl"))) - (substitute* "dkim/dknewkey.py" - (("/usr/bin/openssl") (string-append openssl "/bin/openssl")))) - #t)) - (replace 'check - (lambda _ - (invoke "python" "test.py")))))) + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'patch-source-shebangs 'patch-more-source + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "dkim/dknewkey.py" + (("/usr/bin/openssl") + (search-input-file inputs "bin/openssl"))))) + (replace 'check + (lambda _ + (invoke "python" "test.py")))))) (propagated-inputs (list python-dnspython)) (native-inputs - (list python-authres python-pynacl)) + (list python-authres python-pynacl python-setuptools python-wheel)) (inputs (list openssl)) (home-page "https://launchpad.net/dkimpy") diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm index b0e9322b76..119fc5988a 100644 --- a/gnu/packages/mate.scm +++ b/gnu/packages/mate.scm @@ -27,13 +27,13 @@ (define-module (gnu packages mate) #:use-module ((guix licenses) #:prefix license:) - #:use-module (guix packages) + #:use-module (guix build-system glib-or-gtk) + #:use-module (guix build-system gnu) + #:use-module (guix build-system trivial) #:use-module (guix download) #:use-module (guix gexp) + #:use-module (guix packages) #:use-module (guix utils) - #:use-module (guix build-system gnu) - #:use-module (guix build-system glib-or-gtk) - #:use-module (guix build-system trivial) #:use-module (gnu packages) #:use-module (gnu packages attr) #:use-module (gnu packages autotools) @@ -61,12 +61,12 @@ #:use-module (gnu packages javascript) #:use-module (gnu packages libcanberra) #:use-module (gnu packages linux) - #:use-module (gnu packages multiprecision) #:use-module (gnu packages messaging) + #:use-module (gnu packages multiprecision) #:use-module (gnu packages nss) - #:use-module (gnu packages pkg-config) #:use-module (gnu packages pdf) #:use-module (gnu packages photo) + #:use-module (gnu packages pkg-config) #:use-module (gnu packages polkit) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) @@ -74,8 +74,8 @@ #:use-module (gnu packages tex) #:use-module (gnu packages webkit) #:use-module (gnu packages xdisorg) - #:use-module (gnu packages xml) #:use-module (gnu packages xdisorg) + #:use-module (gnu packages xml) #:use-module (gnu packages xorg)) (define-public mate-common @@ -167,37 +167,42 @@ actions.") (source (origin (method url-fetch) - (uri (string-append "mirror://mate/" (version-major+minor version) "/" - name "-" version ".tar.xz")) + (uri (string-append "mirror://mate/" + (version-major+minor version) + "/" + name + "-" + version + ".tar.xz")) (sha256 - (base32 - "000vr9cnbl2qlysf2gyg1lsjirqdzmwrnh6d3hyrsfc0r2vh4wna")))) + (base32 "000vr9cnbl2qlysf2gyg1lsjirqdzmwrnh6d3hyrsfc0r2vh4wna")))) (build-system gnu-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'autoconf - (lambda _ - (setenv "SHELL" (which "sh")) - (setenv "CONFIG_SHELL" (which "sh")) - (invoke "sh" "autogen.sh")))))) + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'autoconf + (lambda _ + (setenv "SHELL" (which "sh")) + (setenv "CONFIG_SHELL" (which "sh")) + (invoke "sh" "autogen.sh")))))) (native-inputs ;; autoconf-wrapper is required due to the non-standard ;; 'autoconf phase. - `(("autoconf" ,autoconf-wrapper) - ("automake" ,automake) - ("intltool" ,intltool) - ("icon-naming-utils" ,icon-naming-utils) - ("libtool" ,libtool) - ("mate-common" ,mate-common) - ("pkg-config" ,pkg-config) - ("which" ,which))) + (list autoconf-wrapper + automake + intltool + icon-naming-utils + libtool + mate-common + pkg-config + which)) (home-page "https://mate-desktop.org/") (synopsis "MATE desktop environment icon theme faenza") (description - "Icon theme using Faenza and Faience icon themes and some -customized icons for MATE. Furthermore it includes some icons -from Mint-X-F and Faenza-Fresh icon packs.") + "Icon theme using Faenza and Faience icon themes and some customized +icons for MATE. Furthermore it includes some icons from Mint-X-F and +Faenza-Fresh icon packs.") (license license:gpl2+))) (define-public mate-themes @@ -262,39 +267,48 @@ desktop and the mate-about program.") (source (origin (method url-fetch) - (uri (string-append "mirror://mate/" (version-major+minor version) "/" - "libmateweather-" version ".tar.xz")) + (uri (string-append "mirror://mate/" + (version-major+minor version) + "/" + name + "-" + version + ".tar.xz")) (sha256 (base32 "1dfj68q3x9camd7h94pcwv8a5969cv5d4p979gcbk4xknpg76hsm")))) (build-system gnu-build-system) (arguments - '(#:configure-flags - (list (string-append "--with-zoneinfo-dir=/var/empty")) - #:phases - (modify-phases %standard-phases - (add-before 'check 'fix-tzdata-location - (lambda* (#:key inputs #:allow-other-keys) - (setenv "TZDIR" (search-input-directory inputs "/share/zoneinfo")) - (substitute* "data/check-timezones.sh" - (("/usr/share/zoneinfo/zone.tab") - (search-input-file inputs "/share/zoneinfo/zone.tab")) - ;; XXX: Ignore this test for now, which requires tzdata-2023c. - (("exit 1") "exit 0"))))))) + (list + #:configure-flags #~(list "--with-zoneinfo-dir=/var/empty") + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'fix-tzdata-location + (lambda* (#:key inputs #:allow-other-keys) + (setenv "TZDIR" + (search-input-directory inputs "/share/zoneinfo")) + (substitute* "data/check-timezones.sh" + (("/usr/share/zoneinfo/zone.tab") + (search-input-file inputs "/share/zoneinfo/zone.tab")) + ;; XXX: Ignore this test for now, which requires tzdata-2023c. + (("exit 1") + "exit 0"))))))) (native-inputs - `(("pkg-config" ,pkg-config) - ("intltool" ,intltool) - ("dconf" ,dconf) - ("glib:bin" ,glib "bin"))) + (list dconf + (list glib "bin") + intltool + pkg-config)) (inputs - (list gtk+ tzdata-for-tests)) + (list gtk+ + tzdata-for-tests)) (propagated-inputs - ;; both of these are requires.private in mateweather.pc - (list libsoup-minimal-2 libxml2)) + ;; both of these are requires.private in mateweather.pc + (list libsoup-minimal-2 + libxml2)) (home-page "https://mate-desktop.org/") (synopsis "MATE library for weather information from the Internet") (description - "This library provides access to weather information from the internet for -the MATE desktop environment.") + "This library provides access to weather information from the internet +for the MATE desktop environment.") (license license:lgpl2.1+))) (define-public mate-terminal @@ -807,24 +821,24 @@ hypertext navigation, and table-of-contents bookmarks.") "0ylm46wgg7linppid6pdfaixhdb8zgyrxl3lxz17x0am2k718c0y")))) (build-system glib-or-gtk-build-system) (arguments - `(#:configure-flags '("--disable-update-mimedb") - #:tests? #f ; tests fail even with display set - #:phases - (modify-phases %standard-phases - (add-before 'check 'pre-check - (lambda _ - ;; Tests require a running X server. - (system "Xvfb :1 &") - (setenv "DISPLAY" ":1") - ;; For the missing /etc/machine-id. - (setenv "DBUS_FATAL_WARNINGS" "0") - #t))))) + (list + #:tests? #f ; tests fail even with display set + #:configure-flags #~(list "--disable-update-mimedb") + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda _ + ;; Tests require a running X server. + (system "Xvfb :1 &") + (setenv "DISPLAY" ":1") + ;; For the missing /etc/machine-id. + (setenv "DBUS_FATAL_WARNINGS" "0")))))) (native-inputs - `(("pkg-config" ,pkg-config) - ("intltool" ,intltool) - ("glib:bin" ,glib "bin") - ("xorg-server" ,xorg-server) - ("gobject-introspection" ,gobject-introspection))) + (list pkg-config + intltool + (list glib "bin") + xorg-server + gobject-introspection)) (inputs (list exempi gtk+ @@ -837,8 +851,8 @@ hypertext navigation, and table-of-contents bookmarks.") startup-notification)) (native-search-paths (list (search-path-specification - (variable "CAJA_EXTENSIONDIR") - (files (list "lib/caja/extensions-2.0/**"))))) + (variable "CAJA_EXTENSIONDIR") + (files (list "lib/caja/extensions-2.0/**"))))) (home-page "https://mate-desktop.org/") (synopsis "File manager for the MATE desktop") (description @@ -914,6 +928,44 @@ applications associated with them. Caja is also responsible for handling the icons on the MATE desktop. It works on local and remote file systems.") (license license:gpl2+))) +(define-public python-caja + (package + (name "python-caja") + (version "1.28.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://mate/" + (version-major+minor version) + "/" + name + "-" + version + ".tar.xz")) + (sha256 + (base32 "1ml0yrkbly1mz5gmz1wynn3zff5900szncc4rk83xqyzvcww4mmh")))) + (build-system glib-or-gtk-build-system) + (arguments + (list + #:configure-flags + #~(list (string-append "--with-cajadir=" + #$output + "/lib/caja/extensions-2.0/")))) + (native-inputs + (list pkg-config + gettext-minimal + python-wrapper)) + (inputs + (list caja + gtk+ + python-pygobject)) + (home-page "https://mate-desktop.org/") + (synopsis "Python bindings for Caja components") + (description + "This package provides Python bindings to Caja, a file manager for the +MATE desktop.") + (license license:gpl2+))) + (define-public mate-control-center (package (name "mate-control-center") @@ -927,22 +979,22 @@ icons on the MATE desktop. It works on local and remote file systems.") (base32 "1g0lg4x3idilaxhwq1s90pajkvv9i012kzrnk0pxqj2jzl2cgwpb")))) (build-system glib-or-gtk-build-system) (arguments - '(#:phases (modify-phases %standard-phases - (add-before 'configure 'use-elogind-as-systemd - (lambda _ - (substitute* "configure" - (("systemd") "libelogind")))) - (add-before 'build 'fix-polkit-action - (lambda* (#:key outputs #:allow-other-keys) - ;; Make sure the polkit file refers to the right - ;; executable. - (let ((out (assoc-ref outputs "out"))) - (substitute* - '("capplets/display/org.mate.randr.policy.in" - "capplets/display/org.mate.randr.policy") - (("/usr/sbin") - (string-append out "/sbin"))) - #t)))))) + (list + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'use-elogind-as-systemd + (lambda _ + (substitute* "configure" + (("systemd") "libelogind")))) + (add-before 'build 'fix-polkit-action + (lambda _ + ;; Make sure the polkit file refers to the right + ;; executable. + (substitute* + '("capplets/display/org.mate.randr.policy.in" + "capplets/display/org.mate.randr.policy") + (("/usr/sbin") + (string-append #$output "/sbin")))))))) (native-inputs (list pkg-config intltool diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 7974a2f0b7..0c36a60948 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -829,20 +829,6 @@ translator for the language. In addition to the C library, a stand-alone LP/MIP solver is included in the package.") (license license:gpl3+))) -(define-public glpk-4 - (package - (inherit glpk) - (name "glpk") - (version "4.65") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://gnu/glpk/glpk-" - version ".tar.gz")) - (sha256 - (base32 - "040sfaa9jclg2nqdh83w71sv9rc1sznpnfiripjdyr48cady50a2")))))) - (define-public linasm (package (name "linasm") diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index a4f8538bd2..d3df3507f0 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -39,6 +39,7 @@ #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system meson) + #:use-module (guix build-system pyproject) #:use-module (guix build-system python) #:use-module (gnu packages algebra) #:use-module (gnu packages audio) @@ -74,6 +75,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages pretty-print) #:use-module (gnu packages python) + #:use-module (gnu packages python-build) #:use-module (gnu packages python-xyz) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages qt) @@ -358,20 +360,28 @@ information about tracks being played to a scrobbler, such as Libre.FM.") (package (name "python-mpd2") (version "3.0.4") - (source (origin - (method url-fetch) - (uri (pypi-uri "python-mpd2" version)) - (sha256 - (base32 - "1r8saq1460yfa0sxfrvxqs2r453wz2xchlc9gzbpqznr49786rvs")))) - (build-system python-build-system) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Mic92/python-mpd2") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "06j1n43sg3blp89xwgm64yssz6478y5r09xwdg9mnsgihpjpm89a")))) + (build-system pyproject-build-system) (arguments - '(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda _ (invoke "python" "-m" "pytest" "mpd/tests.py")))))) + (list + #:test-flags #~(list "-m" "unittest" "mpd.tests") + #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? test-flags #:allow-other-keys) + (if tests? + (apply invoke "python" test-flags) + (format #t "test suite not run~%"))))))) (native-inputs - (list python-mock python-pytest)) + (list python-mock python-setuptools python-wheel)) (home-page "https://github.com/Mic92/python-mpd2") (synopsis "Python MPD client library") (description "Python-mpd2 is a Python library which provides a client diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 860d63b366..982285299b 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -4205,17 +4205,22 @@ of tags.") (package (name "python-musicbrainzngs") (version "0.7.1") - (source (origin - (method url-fetch) - (uri (pypi-uri "musicbrainzngs" version)) - (sha256 - (base32 - "09z6k07pxncfgfc8clfmmxl2xqbd7h8x8bjzwr95hc0bzl00275b")))) - (build-system python-build-system) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alastair/python-musicbrainzngs") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05rv5wmasamwxkbs8v9lbp2js6y5hhqz6c58c2afz2b202yp932m")))) + (build-system pyproject-build-system) + (native-inputs (list python-setuptools python-wheel)) (home-page "https://python-musicbrainzngs.readthedocs.org/") (synopsis "Python bindings for MusicBrainz NGS webservice") - (description "Musicbrainzngs implements Python bindings of the MusicBrainz -web service. This library can be used to retrieve music metadata from the + (description + "Musicbrainzngs implements Python bindings of the MusicBrainz web +service. This library can be used to retrieve music metadata from the MusicBrainz database.") ;; 'musicbrainzngs/compat.py' is ISC licensed. (license (list license:bsd-2 license:isc)))) @@ -4279,24 +4284,32 @@ websites such as Libre.fm.") (sha256 (base32 "0j7qivaa04bpdz3anmgci5833dgiyfqqwq9fdrpl9m68b34gl773")))) - (build-system python-build-system) - (propagated-inputs - (list python-requests eyed3 python-beautifulsoup4 youtube-dl)) + (build-system pyproject-build-system) (arguments - '(#:modules ((guix build python-build-system) - (guix build utils) - (srfi srfi-26)) - #:phases (modify-phases %standard-phases - (add-before 'build 'change-directory - (lambda _ - (chdir "instantmusic-0.1") #t)) - (add-before 'install 'fix-file-permissions - (lambda _ - ;; Fix some read-only files that would cause a build failure - (for-each (cut chmod <> #o644) - (find-files "instantmusic.egg-info" - "PKG-INFO|.*\\.txt")) - #t))))) + (list + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'change-directory + (lambda _ + (chdir "instantmusic-0.1"))) + (add-before 'build 'patch-yt-dlp + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "bin/instantmusic" + (("youtube-dl") + (search-input-file inputs "bin/yt-dlp"))) + (substitute* "setup.py" + (("youtube-dl") + "yt-dlp")))) + (add-before 'install 'fix-file-permissions + (lambda _ + ;; Fix some read-only files that would cause a build failure + (for-each (lambda (file) + (chmod file #o644)) + (find-files "instantmusic.egg-info" + "PKG-INFO|.*\\.txt"))))))) + (native-inputs (list python-setuptools python-wheel)) + (inputs (list yt-dlp)) + (propagated-inputs (list python-requests eyed3 python-beautifulsoup4)) (home-page "https://github.com/yask123/Instant-Music-Downloader") (synopsis "Command-line program to download a song from YouTube") (description "InstantMusic downloads a song from YouTube in MP3 format. diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm index 9874b2b910..b99b57459c 100644 --- a/gnu/packages/parallel.scm +++ b/gnu/packages/parallel.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2020 Eric Bavier <bavier@posteo.net> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> -;;; Copyright © 2015-2018, 2020-2025 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2015-2025 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl> ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2016, 2020, 2021, 2022, 2023 Ricardo Wurmus <rekado@elephly.net> @@ -10,13 +10,15 @@ ;;; Copyright © 2018–2022 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2019-2024 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2019 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de> ;;; Copyright © 2020 Roel Janssen <roel@gnu.org> +;;; Copyright © 2021, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2021 Stefan Reichör <stefan@xsteve.at> ;;; Copyright © 2024 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2024, 2025 David Elsing <david.elsing@posteo.net> ;;; Copyright © 2024 Romain Garbage <romain.garbage@inria.fr> ;;; Copyright © 2024 Arun Isaac <arunisaac@systemreboot.net> -;;; Copyright © 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2025 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -497,6 +499,78 @@ can use the same high-level API to link their software with different cluster/resource management systems.") (license license:gpl3+))) +(define-public python-pathos + (package + (name "python-pathos") + (version "0.3.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pathos" version)) + (sha256 + (base32 "0m077iw5fml4r7csgi4j7ngvdmg1y9jxly64gi56argq1qnr3m5s")))) + (build-system pyproject-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (replace 'check + ;; XXX: Tests freeze when invoked with Pytest directly, this step + ;; is taken from project's tox.ini. + (lambda* (#:key tests? inputs outputs #:allow-other-keys) + (when tests? + (invoke "python" "./pathos/tests/__main__.py"))))))) + (native-inputs + (list python-setuptools-next)) + (propagated-inputs + (list python-dill + python-multiprocess + python-pox + python-ppft)) + (home-page "https://pypi.org/project/pathos/") + (synopsis + "Parallel graph management and execution in heterogeneous computing") + (description + "Python-pathos is a framework for heterogeneous computing. It provides a +consistent high-level interface for configuring and launching parallel +computations across heterogeneous resources. Python-pathos provides +configurable launchers for parallel and distributed computing, where each +launcher contains the syntactic logic to configure and launch jobs in an +execution environment.") + (license license:bsd-3))) + +(define-public python-ppft + (package + (name "python-ppft") + (version "1.7.7") + (source + (origin + (method url-fetch) + (uri (pypi-uri "ppft" version)) + (sha256 + (base32 + "15hvw39m2r3chm8zbqgkld0m1cl049rxidln4a6jnk72rx479xzk")))) + (build-system pyproject-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? inputs outputs #:allow-other-keys) + (when tests? + (invoke "python" "./ppft/tests/__main__.py"))))))) + (native-inputs + (list python-setuptools-next)) + (home-page "https://pypi.org/project/ppft/") + (synopsis "Fork of Parallel Python") + (description + "This package is a fork of Parallel Python. The Parallel Python +module (@code{pp}) provides an easy and efficient way to create +parallel-enabled applications for @dfn{symmetric multiprocessing} (SMP) +computers and clusters. It features cross-platform portability and dynamic +load balancing.") + (license license:bsd-3))) + (define-public python-schwimmbad (package (name "python-schwimmbad") diff --git a/gnu/packages/patches/dolphin-emu-unbundle-tinygltf.patch b/gnu/packages/patches/dolphin-emu-unbundle-tinygltf.patch index 1c91823785..8c6e954926 100644 --- a/gnu/packages/patches/dolphin-emu-unbundle-tinygltf.patch +++ b/gnu/packages/patches/dolphin-emu-unbundle-tinygltf.patch @@ -1,46 +1,9 @@ Upstream-status: https://github.com/dolphin-emu/dolphin/pull/13824 -diff --git a/CMake/DolphinLibraryTools.cmake b/CMake/DolphinLibraryTools.cmake -index 4c395a8ef9..efa0d6a9e2 100644 ---- a/CMake/DolphinLibraryTools.cmake -+++ b/CMake/DolphinLibraryTools.cmake -@@ -1,14 +1,3 @@ --# like add_library(new ALIAS old) but avoids add_library cannot create ALIAS target "new" because target "old" is imported but not globally visible. on older cmake --# This can be replaced with a direct alias call once our minimum is cmake 3.18 --function(dolphin_alias_library new old) -- string(REPLACE "::" "" library_no_namespace ${old}) -- if (NOT TARGET _alias_${library_no_namespace}) -- add_library(_alias_${library_no_namespace} INTERFACE) -- target_link_libraries(_alias_${library_no_namespace} INTERFACE ${old}) -- endif() -- add_library(${new} ALIAS _alias_${library_no_namespace}) --endfunction() -- - # Makes an imported target if it doesn't exist. Useful for when find scripts from older versions of cmake don't make the targets you need - function(dolphin_make_imported_target_if_missing target lib) - if(${lib}_FOUND AND NOT TARGET ${target}) -@@ -85,7 +74,7 @@ function(dolphin_find_optional_system_library_pkgconfig library search alias bun - endif() - if(${library}_FOUND) - message(STATUS "Using system ${library}") -- dolphin_alias_library(${alias} PkgConfig::${library}) -+ add_library(${alias} ALIAS PkgConfig::${library}) - set(${library}_TYPE "System" PARENT_SCOPE) - else() - dolphin_add_bundled_library(${library} ${use_system} ${bundled_path}) diff --git a/CMakeLists.txt b/CMakeLists.txt -index c277e2a10a..67b72179f3 100644 +index 964a33ac13..7779cf2eac 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -1,7 +1,7 @@ - ######################################## - # General setup - # --cmake_minimum_required(VERSION 3.13) -+cmake_minimum_required(VERSION 3.18) - - cmake_policy(SET CMP0079 NEW) # let target_link_libraries() link to a target defined in a different directory - cmake_policy(SET CMP0080 OLD) # allow using BundleUtilities at configure time @@ -657,7 +657,11 @@ add_subdirectory(Externals/glslang) if(WIN32 OR APPLE) add_subdirectory(Externals/spirv_cross) @@ -48,7 +11,7 @@ index c277e2a10a..67b72179f3 100644 -add_subdirectory(Externals/tinygltf) + +dolphin_find_optional_system_library(TinyGLTF Externals/tinygltf) -+if(NOT DEFINED tinygltf) ++if(NOT TARGET tinygltf) + add_library(tinygltf ALIAS tinygltf::tinygltf) # using system library +endif() @@ -65,6 +28,32 @@ index 0d86268bbe..9e6a99c6f8 100644 -target_include_directories(tinygltf INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) +target_include_directories(tinygltf INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/tinygltf) dolphin_disable_warnings(tinygltf) +diff --git a/Externals/tinygltf/exports.props b/Externals/tinygltf/exports.props +index 7e2fde81cf..09f43c1bae 100644 +--- a/Externals/tinygltf/exports.props ++++ b/Externals/tinygltf/exports.props +@@ -2,7 +2,7 @@ + <Project> + <ItemDefinitionGroup> + <ClCompile> +- <AdditionalIncludeDirectories>$(ExternalsDir)tinygltf;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> ++ <AdditionalIncludeDirectories>$(ExternalsDir)tinygltf\tinygltf;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>TINYGLTF_NOEXCEPTION;TINYGLTF_NO_EXTERNAL_IMAGE;TINYGLTF_USE_CPP14;%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ClCompile> + </ItemDefinitionGroup> +diff --git a/Externals/tinygltf/tinygltf.vcxproj b/Externals/tinygltf/tinygltf.vcxproj +index e33d949e56..4995626f22 100644 +--- a/Externals/tinygltf/tinygltf.vcxproj ++++ b/Externals/tinygltf/tinygltf.vcxproj +@@ -17,7 +17,7 @@ + <PropertyGroup Label="UserMacros" /> + <ItemDefinitionGroup> + <ClCompile> +- <AdditionalIncludeDirectories>tinygltf;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> ++ <AdditionalIncludeDirectories>tinygltf\tinygltf;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + </ItemDefinitionGroup> + <ItemGroup> diff --git a/Source/Core/VideoCommon/Assets/MeshAsset.cpp b/Source/Core/VideoCommon/Assets/MeshAsset.cpp index bde8c8aab6..13eb2b4448 100644 --- a/Source/Core/VideoCommon/Assets/MeshAsset.cpp diff --git a/gnu/packages/patches/dolphin-emu-unbundle-watcher.patch b/gnu/packages/patches/dolphin-emu-unbundle-watcher.patch index c18a6c2ec4..d6046d440c 100644 --- a/gnu/packages/patches/dolphin-emu-unbundle-watcher.patch +++ b/gnu/packages/patches/dolphin-emu-unbundle-watcher.patch @@ -1,50 +1,30 @@ Upstream-status: https://github.com/dolphin-emu/dolphin/pull/13823 -diff --git a/CMake/DolphinLibraryTools.cmake b/CMake/DolphinLibraryTools.cmake -index 4c395a8ef9..fb806b1b90 100644 ---- a/CMake/DolphinLibraryTools.cmake -+++ b/CMake/DolphinLibraryTools.cmake -@@ -92,3 +92,30 @@ function(dolphin_find_optional_system_library_pkgconfig library search alias bun - set(${library}_TYPE "Bundled" PARENT_SCOPE) - endif() - endfunction() -+ -+# This can be used for header-only libraries that doesn't offer a -+# pkg-config or CMake file. It uses CMake's find_file. LIBRARY is the -+# name of the library providing it, INCLUDE is the header file name -+# without its installation prefix (e.g. "wtr/watcher.hpp") while -+# BUNDLED_PATH is the root directory of the bundled library. -+function(dolphin_find_optional_system_include library include bundled_path) -+ dolphin_optional_system_library(use_system ${library}) -+ string(TOUPPER ${library} upperlib) -+ if(use_system) -+ find_file(${library}_INCLUDE ${include}) -+ if((NOT ${library}_INCLUDE) AND (NOT ${use_system} STREQUAL "AUTO")) -+ message(FATAL_ERROR "No system ${library} headers found. \ -+Please install it or set USE_SYSTEM_${upperlib} to AUTO or OFF.") -+ endif() -+ endif() -+ if(${library}_INCLUDE) -+ message(STATUS "Using system ${library} headers") -+ set(${library}_TYPE "System" PARENT_SCOPE) -+ add_library(${library} INTERFACE IMPORTED GLOBAL) -+ set_target_properties(${library} PROPERTIES -+ INTERFACE_INCLUDE_DIRECTORIES ${${library}_INCLUDE}) -+ else() -+ dolphin_add_bundled_library(${library} ${use_system} ${bundled_path}) -+ set(${library}_TYPE "Bundled" PARENT_SCOPE) -+ endif() -+endfunction() diff --git a/CMakeLists.txt b/CMakeLists.txt -index c277e2a10a..12b1c36ef0 100644 +index c277e2a10a..9b9ec00f91 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -786,7 +786,7 @@ if (USE_RETRO_ACHIEVEMENTS) +@@ -786,7 +786,9 @@ if (USE_RETRO_ACHIEVEMENTS) add_subdirectory(Externals/rcheevos) endif() -add_subdirectory(Externals/watcher) -+dolphin_find_optional_system_include(watcher wtr/watcher.hpp Externals/watcher) ++dolphin_find_optional_system_library_pkgconfig( ++ WATCHER watcher watcher::watcher Externals/watcher ++) ######################################## # Pre-build events: Define configuration variables and write SCM info header +diff --git a/Source/Core/Common/CMakeLists.txt b/Source/Core/Common/CMakeLists.txt +index ee738ba4e3..629c739c8d 100644 +--- a/Source/Core/Common/CMakeLists.txt ++++ b/Source/Core/Common/CMakeLists.txt +@@ -186,7 +186,7 @@ PRIVATE + FatFs + Iconv::Iconv + spng::spng +- watcher ++ watcher::watcher + ${VTUNE_LIBRARIES} + ) + diff --git a/gnu/packages/patches/safeint-disable-tests.patch b/gnu/packages/patches/safeint-disable-tests.patch new file mode 100644 index 0000000000..baecd85b1b --- /dev/null +++ b/gnu/packages/patches/safeint-disable-tests.patch @@ -0,0 +1,42 @@ +--- + Test/GccTest/CMakeLists.txt | 18 ------------------ + 1 file changed, 18 deletions(-) + +diff --git a/Test/GccTest/CMakeLists.txt b/Test/GccTest/CMakeLists.txt +index 8a3bef4..9254d70 100644 +--- a/Test/GccTest/CMakeLists.txt ++++ b/Test/GccTest/CMakeLists.txt +@@ -105,15 +105,6 @@ else() + + target_compile_options(CompileTest_gcc PUBLIC -Wall) + +- add_executable(CompileTest_gcc17 +- ../CompileTest.cpp +- ../ConstExpr.cpp +- ../CleanCompile.cpp +- ../../SafeInt.hpp +- ) +- +- target_compile_options(CompileTest_gcc17 PUBLIC -Wall -std=c++17) +- + add_executable(CompileTest_gcc14 + ../CompileTest.cpp + ../ConstExpr.cpp +@@ -132,15 +123,6 @@ else() + + target_compile_options(CompileTest_gcc14_NoEH PUBLIC -Wall -std=c++14 -fno-exceptions) + +- add_executable(CompileTest_gcc98 +- ../CompileTest.cpp +- ../ConstExpr.cpp +- ../CleanCompile.cpp +- ../../SafeInt.hpp +- ) +- +- target_compile_options(CompileTest_gcc98 PUBLIC -D SAFEINT_USE_CPLUSCPLUS_98 -Wall -std=c++98 -fno-exceptions) +- + add_executable(safe_math_test_gcc + ../c_safe_math/safe_math_test.c + ../c_safe_math/safe_math_test.h +-- +2.50.1 diff --git a/gnu/packages/prolog.scm b/gnu/packages/prolog.scm index 61c2f13951..e16cbc0e96 100644 --- a/gnu/packages/prolog.scm +++ b/gnu/packages/prolog.scm @@ -185,7 +185,7 @@ it.") (define-public trealla (package (name "trealla") - (version "2.82.2") + (version "2.82.9") (source (origin (method git-fetch) @@ -194,7 +194,7 @@ it.") (url "https://github.com/trealla-prolog/trealla") (commit (string-append "v" version)))) (sha256 - (base32 "0ahcc7whfl1izzdqmqsxr87i997x07c0sg6ribawmwfpwqf7r0xa")) + (base32 "15vah9mk81di4srd7rd8ggwl9k2hbzra9bmgkk73fdnmd9db3ryr")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (native-inputs diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm index b98e9dfa09..f43b49163d 100644 --- a/gnu/packages/python-check.scm +++ b/gnu/packages/python-check.scm @@ -1249,18 +1249,10 @@ Python program.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 - "0fg8jflcf4c929gd4zbcrk73d08waaqjfjmdjrgnv54mzl35pjxl")))) - (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "pytest"))))))) + (base32 "0fg8jflcf4c929gd4zbcrk73d08waaqjfjmdjrgnv54mzl35pjxl")))) + (build-system pyproject-build-system) (native-inputs - (list python-numpy python-pytest)) + (list python-numpy python-pytest python-setuptools python-wheel)) (home-page "https://github.com/kaste/mockito-python") (synopsis "Mocking library for Python") (description "This package provides a Python implementation of the Java @@ -1268,7 +1260,6 @@ library of the same name. It eases monkey patching, for example to stub out side effects when unit testing.") (license license:expat))) - (define-public python-mypy (package (name "python-mypy") @@ -1608,13 +1599,13 @@ flake8 to check PEP-8 naming conventions.") (method url-fetch) (uri (pypi-uri "pyannotate" version)) (sha256 - (base32 - "16bm0mf7wxvy0lgmcs1p8n1ji8pnvj1jvj8zk3am70dkp825iv84")))) - (build-system python-build-system) + (base32 "16bm0mf7wxvy0lgmcs1p8n1ji8pnvj1jvj8zk3am70dkp825iv84")))) + (build-system pyproject-build-system) + (native-inputs + (list python-setuptools python-wheel)) (propagated-inputs (list python-mypy-extensions python-six)) - (home-page - "https://github.com/dropbox/pyannotate") + (home-page "https://github.com/dropbox/pyannotate") (synopsis "Auto-generate PEP-484 annotations") (description "This package, PyAnnotate, is used to auto-generate PEP-484 annotations.") @@ -1979,18 +1970,21 @@ of the project to ensure it renders properly.") (version "1.0.2") (source (origin - (method url-fetch) - (uri - (pypi-uri "pytest_click" version)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/Stranger6667/pytest-click") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 "1rcv4m850rl7djzdgzz2zhjd8g5ih8w6l0sj2f9hsynymlsq82xl")))) - (build-system python-build-system) - (propagated-inputs - (list python-click python-pytest)) + (base32 "197nvlqlyfrqpy5lrkmfh1ywpr6j9zipxl9d7syg2a2n7jz3a8rj")))) + (build-system pyproject-build-system) + (native-inputs (list python-setuptools python-wheel)) + (propagated-inputs (list python-click python-pytest)) (home-page "https://github.com/Stranger6667/pytest-click") - (synopsis "Py.test plugin for Click") - (description "This package provides a plugin to test Python click -interfaces with pytest.") + (synopsis "Pytest plugin for Click") + (description + "This package provides a plugin to test Python click interfaces with +pytest.") (license license:expat))) (define-public python-pytest-console-scripts diff --git a/gnu/packages/python-compression.scm b/gnu/packages/python-compression.scm index 66f6828377..9166620f28 100644 --- a/gnu/packages/python-compression.scm +++ b/gnu/packages/python-compression.scm @@ -168,7 +168,6 @@ to access its data, so it can be used as a drop-in replacement.") python-coverage python-coveralls python-hypothesis - python-pyannotate python-pytest python-pytest-cov python-setuptools @@ -394,8 +393,7 @@ library.") (build-system pyproject-build-system) (propagated-inputs (list python-importlib-metadata)) (native-inputs - (list python-pyannotate - python-pytest + (list python-pytest python-setuptools-scm python-setuptools python-wheel)) @@ -561,29 +559,26 @@ Python.") (define-public python-lzo (package (name "python-lzo") - (version "1.14") + (version "1.15") (source (origin (method url-fetch) (uri (pypi-uri "python-lzo" version)) (sha256 - (base32 "0315nq6r39n51n8qqamb7xv0ib0qrh76q7g3a1977172mbndijw3")))) - (build-system python-build-system) + (base32 "0jbv6853p8flk65ks0nw37f6f5v0ryi6nhppv5fm3863ql0alym5")))) + (build-system pyproject-build-system) (arguments (list - #:test-target "check" #:phases #~(modify-phases %standard-phases (add-after 'unpack 'patch-setuppy - (lambda _ + (lambda* (#:key inputs #:allow-other-keys) (substitute* "setup.py" (("include_dirs.append\\(.*\\)") - (string-append "include_dirs.append('" - #$(this-package-input "lzo") - "/include/lzo" - "')")))))))) - (inputs - (list lzo)) + (format #f "include_dirs.append(~s)" + (search-input-directory inputs "include/lzo"))))))))) + (native-inputs (list python-pytest python-setuptools python-wheel)) + (inputs (list lzo)) (home-page "https://github.com/jd-boyd/python-lzo") (synopsis "Python bindings for the LZO data compression library") (description @@ -639,9 +634,10 @@ the LZ4 frame format.") (method url-fetch) (uri (pypi-uri "lzstring" version)) (sha256 - (base32 - "18ly9pppy2yspxzw7k1b23wk77k7m44rz2g0271bqgqrk3jn3yhs")))) - (build-system python-build-system) + (base32 "18ly9pppy2yspxzw7k1b23wk77k7m44rz2g0271bqgqrk3jn3yhs")))) + (build-system pyproject-build-system) + (native-inputs + (list python-setuptools python-wheel)) (propagated-inputs (list python-future)) (home-page "https://github.com/gkovacs/lz-string-python") diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index a80da0d470..79bbf1b08b 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -917,23 +917,24 @@ Python.") (define-public python-josepy (package (name "python-josepy") - (version "1.13.0") - (source (origin - (method url-fetch) - (uri (pypi-uri "josepy" version)) - (sha256 - (base32 - "1jaxqyp53paks2z8zyzr50gqvzfxbar7r2qf98kqak4aizrxlcc9")))) - (build-system python-build-system) - (arguments - ;; TODO: some test dependencies are missing (see pyproject.toml). - '(#:tests? #f)) - (propagated-inputs - (list python-cryptography python-pyopenssl)) + (version "2.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/certbot/josepy") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1zplnfrmc4nps9lgl3fz434ja7lmi9v8waydflzvpi75kf5fqxc1")))) + (build-system pyproject-build-system) + (native-inputs (list python-poetry-core python-pytest)) + (propagated-inputs (list python-cryptography)) (home-page "https://github.com/certbot/josepy") (synopsis "JOSE protocol implementation in Python") - (description "This package provides a Python implementation of the JOSE -protocol (Javascript Object Signing and Encryption).") + (description + "This package provides a Python implementation of the JOSE protocol +(Javascript Object Signing and Encryption).") (license license:asl2.0))) (define pycryptodome-unbundle-tomcrypt-snippet diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index c78af1a279..4f6a237ae0 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -2663,20 +2663,13 @@ API, but uses asyncio to parallelise downloading the files.") (method url-fetch) (uri (pypi-uri "html2text" version)) (sha256 - (base32 - "1fvv4z6dblii2wk1x82981ag8yhxbim1v2ksgywxsndh2s7335p2")))) - (build-system python-build-system) - (arguments - '(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda _ - (invoke "pytest" "test/")))))) - (native-inputs - (list python-pytest)) + (base32 "1fvv4z6dblii2wk1x82981ag8yhxbim1v2ksgywxsndh2s7335p2")))) + (build-system pyproject-build-system) + (native-inputs (list python-pytest python-setuptools python-wheel)) (home-page "https://github.com/Alir3z4/html2text") (synopsis "Convert HTML into plain text") - (description "html2text takes HTML and converts it into plain ASCII text + (description + "html2text takes HTML and converts it into plain ASCII text which is also valid markdown. html2text was originally written by Aaron Swartz.") (license license:gpl3+))) @@ -8382,17 +8375,19 @@ association.") (define-public python-livereload (package (name "python-livereload") - (version "2.6.3") + (version "2.7.1") (source (origin - (method url-fetch) - (uri (pypi-uri "livereload" version)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/lepture/python-livereload") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 - "0scqjnhg3ap81v36ghp0pik774dnfdkwqsx5j1jfbzarbs32yvvp")))) - (build-system python-build-system) - (propagated-inputs - (list python-six python-tornado)) + (base32 "19wkdd1grw6mcd4qi8iaw4jdr207h3m24951vgy69j7g904lynjq")))) + (build-system pyproject-build-system) + (native-inputs (list python-django python-setuptools python-wheel)) + (propagated-inputs (list python-tornado)) (home-page "https://github.com/lepture/python-livereload") (synopsis "Python LiveReload") (description @@ -9327,11 +9322,12 @@ using a pure Python implementation.") (uri (pypi-uri "pyjsparser" version)) (sha256 (base32 "0ycmf9fsvwliqmm1n6sfz7x71y7i2kbfgn39d8lsbiccfxmxlq5y")))) - (build-system python-build-system) + (build-system pyproject-build-system) + (native-inputs (list python-setuptools python-wheel)) (home-page "https://github.com/PiotrDabkowski/pyjsparser") (synopsis "Fast JavaScript parser") - (description "This package provides a fast JavaScript parser (based on -esprima.js)") + (description + "This package provides a fast JavaScript parser (based on esprima.js)") (license license:expat))) (define-public python-js2py @@ -10932,7 +10928,9 @@ metadata from HTML markup. Currently, extruct supports: (uri (pypi-uri "wadllib" version)) (sha256 (base32 "1z65crvdsjxh9nahz1g6q021ijmv85ixmq88l96d61qh5imavndc")))) - (build-system python-build-system) + (build-system pyproject-build-system) + (native-inputs + (list python-setuptools python-wheel)) (propagated-inputs (list python-lazr-uri)) (home-page "https://launchpad.net/wadllib") (synopsis "Web Application Description Language (WADL) navigation library") diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 92e517e959..0107f3f08e 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -166,6 +166,7 @@ ;;; Copyright © 2025, Cayetano Santos <csantosb@inventati.org> ;;; Copyright © 2025 Jake Forster <jakecameron.forster@gmail.com> ;;; Copyright © 2025 Luis Felipe López Acevedo <sirgazil@zoho.com> +;;; Copyright © 2025 Josep Bigorra <jjbigorra@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -189,7 +190,6 @@ #:use-module (gnu packages aidc) #:use-module (gnu packages algebra) #:use-module (gnu packages attr) - #:use-module (gnu packages audio) #:use-module (gnu packages autotools) #:use-module (gnu packages backup) #:use-module (gnu packages base) @@ -262,7 +262,6 @@ #:use-module (gnu packages photo) #:use-module (gnu packages pkg-config) #:use-module (gnu packages protobuf) - #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) #:use-module (gnu packages python-build) #:use-module (gnu packages python-check) @@ -382,6 +381,55 @@ These aspects include CPU, network fabrics, etc. In addition, it offers APIs to detect, query, and compare them.") (license license:expat))) +(define-public python-asyncclick + (package + (name "python-asyncclick") + (version "8.2.2.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "asyncclick" version)) + (sha256 + (base32 "0q26q8r1x5j9nz72xcb80vjx5maha6yswdmw2li4mwqyzdxnnkq1")))) + (build-system pyproject-build-system) + (arguments + (list + ;; tests: 1397 passed, 29 skipped, 72 deselected, 4 xfailed + #:test-flags + #~(list "-k" (string-join + ;; See: <https://github.com/python-trio/asyncclick/issues/42>. + (list "not test_confirm_repeat[asyncio]" + "test_confirm_repeat[trio]" + "test_file_prompt_default_format[asyncio-file_kwargs0]" + "test_file_prompt_default_format[asyncio-file_kwargs1]" + "test_file_prompt_default_format[asyncio-file_kwargs2]" + "test_file_prompt_default_format[trio-file_kwargs0]" + "test_file_prompt_default_format[trio-file_kwargs1]" + "test_file_prompt_default_format[trio-file_kwargs2]" + "test_prompts[asyncio]" + "test_prompts[trio]" + ;; Requires less + "test_echo_via_pager") + " and not ")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-conftest + ;; See: <https://github.com/python-trio/asyncclick/pull/39>. + (lambda _ + (substitute* "tests/conftest.py" + (("from click") "from asyncclick"))))))) + (native-inputs + (list python-anyio + python-flit-core-next + python-pytest + python-trio)) + (home-page "https://github.com/python-trio/asyncclick") + (synopsis "Python composable command line utility, trio-compatible version ") + (description + "AsyncClick is a fork of Click that works well with anyio, Trio, or +asyncio.") + (license license:bsd-3))) + (define-public python-asyncstdlib (package (name "python-asyncstdlib") @@ -927,6 +975,34 @@ of Ordered Set.") your terminal.") (license license:expat))) +(define-public python-puccinialin + (package + (name "python-puccinialin") + (version "0.1.5") + (source + (origin + (method url-fetch) + (uri (pypi-uri "puccinialin" version)) + (sha256 + (base32 "00nnqcvvyn10zxkhgzcfn8czwvdzm0vh5z16plb0dxspccd69dmv")))) + (build-system pyproject-build-system) + (arguments + (list #:tests? #f)) ;no tests in PyPI or Git + (native-inputs + (list python-hatchling)) + (propagated-inputs + (list python-httpx + python-platformdirs + python-tqdm)) + (home-page "https://github.com/konstin/puccinialin") + (synopsis "Helper for bootstrapping Rust-based build back-ends for Python") + (description + "This tool helps to install Rust into a temporary directory, allowing +support of Rust-based Python builds. Cargo and rustc are installed into a +cache directory, to avoid modifying the host's environment, and further +activated using a set of environment variables.") + (license (list license:expat license:asl2.0)))) + (define-public python-pyxdameraulevenshtein (package (name "python-pyxdameraulevenshtein") @@ -5850,36 +5926,6 @@ videos in a notebook.") audio playback capability for Python 3 on OSX, Windows, and Linux.") (license license:expat))) ; MIT license -(define-public python-wavefile - (package - (name "python-wavefile") - (version "1.6.2") - (source (origin - (method url-fetch) - (uri (pypi-uri "wavefile" version)) - (sha256 - (base32 - "04mdcxq7n1vnwb9y65j0cwpy91ik5rh9vki1f45xqnh4ygz91n75")))) - (build-system python-build-system) - (arguments - (list #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'patch-libsndfile-path - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "wavefile/libsndfile.py" - (("'libsndfile") - (string-append "'" (assoc-ref inputs "libsndfile") - "/lib/libsndfile")))))))) - (inputs - (list libsndfile portaudio)) - (propagated-inputs (list python-numpy python-pyaudio)) - (home-page "https://github.com/vokimon/python-wavefile") - (synopsis "Pythonic audio file reader and writer") - (description - "This package provides pythonic libsndfile wrapper to read and write audio -files.") - (license license:gpl3+))) - (define-public python-jsonalias (package (name "python-jsonalias") @@ -10780,27 +10826,37 @@ objects.") "This is a Python library for color math and conversions.") (license license:bsd-3))) +(define-public python-colormath2 + (package + (inherit python-colormath) + (name "python-colormath2") + (version "3.0.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "colormath2" version)) + (sha256 + (base32 "1yigkhvjgbl9nrlijn4iwcs6k7i5y58drix1331cd1hb9wzn35z7")))) + (build-system pyproject-build-system) + (propagated-inputs (list python-networkx python-numpy)) + (native-inputs (list python-setuptools python-wheel)) + (home-page "https://github.com/bkmgit/python-colormath2"))) + (define-public python-spectra (package (name "python-spectra") - (version "0.0.11") + (version "0.1.0") (source (origin (method url-fetch) (uri (pypi-uri "spectra" version)) (sha256 - (base32 - "1f322x914bhkg6r5gv1vmnir3iy0k5kih0fd2gp3rdkw32jn5cwf")))) - (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda _ (invoke "nosetests" "-v")))))) + (base32 "0gva48a1rn5yxj6dgy76dnndqaf09k5q2l9r41h2a66b84rf6c3a")))) + (build-system pyproject-build-system) (propagated-inputs - (list python-colormath)) + (list python-colormath2)) (native-inputs - (list python-nose)) + (list python-pytest python-setuptools python-wheel)) (home-page "https://github.com/jsvine/spectra") (synopsis "Color scales and color conversion") (description @@ -27975,21 +28031,20 @@ belong to tagged versions.") (method url-fetch) (uri (pypi-uri "setuptools-git" version)) (sha256 - (base32 - "0i84qjwp5m0l9qagdjww2frdh63r37km1c48mrvbmaqsl1ni6r7z")))) - (build-system python-build-system) + (base32 "0i84qjwp5m0l9qagdjww2frdh63r37km1c48mrvbmaqsl1ni6r7z")))) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - ;; This is needed for tests. - (add-after 'unpack 'configure-git - (lambda _ - (setenv "HOME" "/tmp") - (invoke "git" "config" "--global" "user.email" "guix") - (invoke "git" "config" "--global" "user.name" "guix") - #t))))) + (list + #:phases + #~(modify-phases %standard-phases + ;; This is needed for tests. + (add-after 'unpack 'configure-git + (lambda _ + (setenv "HOME" "/tmp") + (invoke "git" "config" "--global" "user.email" "guix") + (invoke "git" "config" "--global" "user.name" "guix")))))) (native-inputs - `(("git" ,git-minimal))) + (list git-minimal python-setuptools python-wheel)) (home-page "https://github.com/msabramo/setuptools-git") (synopsis "Setuptools revision control system plugin for Git") (description @@ -30245,13 +30300,13 @@ N-dimensional arrays for Python.") (define-public python-dill (package (name "python-dill") - (version "0.3.9") + (version "0.4.0") (source (origin (method url-fetch) (uri (pypi-uri "dill" version)) (sha256 - (base32 "0b2inivjahjlph54a70x6wi3pax4qsgclhlw0blbz37nvmyjdal1")))) + (base32 "1w5w5hlijw7ahqji45ssyvdip5pv074h4nw97bsj8ws7vz9g2cq6")))) (build-system pyproject-build-system) (arguments (list @@ -30280,14 +30335,14 @@ the saved state of the original interpreter session.") (define-public python-multiprocess (package (name "python-multiprocess") - (version "0.70.17") + (version "0.70.18") (source (origin (method url-fetch) (uri (pypi-uri "multiprocess" version)) (sha256 (base32 - "0ypm9yj1ng1s96hk2iwll190dkpc2j5zras8kay9x00n6hdg3qja")))) + "03bdxiincqq3g66vl3sf5ygagjz5sbrpr83djlipprmkwql72ngr")))) (build-system pyproject-build-system) (arguments (list @@ -30319,7 +30374,7 @@ preload_resources\ (format #t "test suite not run~%"))))))) (propagated-inputs (list python-dill)) - (native-inputs (list python-setuptools python-wheel)) + (native-inputs (list python-setuptools-next)) (home-page "https://pypi.org/project/multiprocess/") (synopsis "Multiprocessing and multithreading in Python") (description @@ -31299,26 +31354,22 @@ by Igor Pavlov.") (define-public python-ifaddr (package (name "python-ifaddr") - (version "0.1.7") + (version "0.2.0") (source (origin (method url-fetch) (uri (pypi-uri "ifaddr" version)) (sha256 - (base32 - "150sxdlicwrphmhnv03ykxplyd2jdrxz0mikgnivavgilrn8m7hz")))) - (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda _ (invoke "nosetests")))))) + (base32 "1m5fqjqf53m31qrl8fxp2sbwf4mvk5mbjpw2jm2x8rgpmg5by36c")) + (snippet #~(delete-file "ifaddr/_win32.py")))) + (build-system pyproject-build-system) (native-inputs - (list python-nose)) + (list python-pytest python-setuptools python-wheel)) (home-page "https://github.com/pydron/ifaddr") (synopsis "Network interface and IP address enumeration library") - (description "This package provides a network interface and IP address -enumeration library in Python.") + (description + "This package provides a network interface and IP address enumeration +library in Python.") (license license:expat))) (define-public python-zeroconf @@ -32123,56 +32174,33 @@ layer and then tune the behaviour with any of the lower layers including the native API of @code{python-argparse}.") (license license:lgpl3+))) -(define-public python-ppft - (package - (name "python-ppft") - (version "1.6.6.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "ppft" version)) - (sha256 - (base32 - "1z1invkhszc5d2mvgr221v7cszzifcc77mz0pv3wjp6x5q2768cy")))) - (build-system python-build-system) - (arguments '(#:tests? #f)) ; there are none - (propagated-inputs - (list python-six)) - (home-page "https://pypi.org/project/ppft/") - (synopsis "Fork of Parallel Python") - (description - "This package is a fork of Parallel Python. The Parallel Python -module (@code{pp}) provides an easy and efficient way to create -parallel-enabled applications for @dfn{symmetric multiprocessing} (SMP) -computers and clusters. It features cross-platform portability and dynamic -load balancing.") - (license license:bsd-3))) - (define-public python-pox (package (name "python-pox") - (version "0.2.7") + (version "0.3.6") (source (origin (method url-fetch) (uri (pypi-uri "pox" version)) (sha256 (base32 - "0y17ckc2p6i6709s279sjdj4q459mpcc38ymg9zv9y6vl6jf3bq6")))) - (build-system python-build-system) + "01gnsgz6wfmpmb57qr4cgpkampiy6l7c1kxa0hlacn81c0wyvvl4")))) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda _ - (mkdir-p "/tmp/guix") - (setenv "SHELL" "bash") - (setenv "USERNAME" "guix") - (setenv "HOME" "/tmp/guix") ; must end on USERNAME... - (invoke "py.test" "-vv") - #t))))) + (list + #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? inputs outputs #:allow-other-keys) + (when tests? + (mkdir-p "/tmp/guix") + (setenv "SHELL" "bash") + (setenv "USERNAME" "guix") + (setenv "HOME" "/tmp/guix") ; must end on USERNAME... + (invoke "python" "./pox/tests/__main__.py"))))))) (native-inputs - (list python-pytest which)) + (list python-setuptools-next + which)) ;pox/tests/test_shutils.py (home-page "https://pypi.org/project/pox/") (synopsis "Python utilities for file system exploration and automated builds") (description @@ -32185,39 +32213,6 @@ discovery of what has been installed on an operating system, and where the essential tools are located.") (license license:bsd-3))) -(define-public python-pathos - (package - (name "python-pathos") - (version "0.2.5") - (source - (origin - (method url-fetch) - (uri (pypi-uri "pathos" version)) - (sha256 - (base32 - "0in8hxdz7k081ijn6q94gr39ycy7363sx4zysmbwyvd7snqjrbi1")))) - (build-system python-build-system) - (arguments - '(#:phases - (modify-phases %standard-phases - (replace 'check - (lambda _ - (invoke "python" "./tests/__main__.py")))))) - (propagated-inputs - (list python-dill python-multiprocess python-pox python-ppft)) - (native-inputs - (list python-pytest)) - (home-page "https://pypi.org/project/pathos/") - (synopsis - "Parallel graph management and execution in heterogeneous computing") - (description - "Python-pathos is a framework for heterogeneous computing. It provides a -consistent high-level interface for configuring and launching parallel -computations across heterogeneous resources. Python-pathos provides configurable -launchers for parallel and distributed computing, where each launcher contains -the syntactic logic to configure and launch jobs in an execution environment.") - (license license:bsd-3))) - (define-public python-flit (package (name "python-flit") @@ -32367,17 +32362,20 @@ memoization.") (version "0.8") (source (origin - (method url-fetch) - (uri (pypi-uri "cson" version)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/avakar/pycson") + (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 "00cyvigg4npbph39ghkg77xbxisa6plf75vii24igxfizik0337f")))) - (build-system python-build-system) - (propagated-inputs - (list python-speg)) + (base32 "0d2zbmak0hzsl1w71dgc8x4q4vdfbpk46vwyi9vvvqv7gdqj59fn")))) + (build-system pyproject-build-system) + (native-inputs (list python-pytest python-setuptools python-wheel)) + (propagated-inputs (list python-speg)) (home-page "https://github.com/avakar/pycson") (synopsis "Parser for Coffeescript Object Notation (CSON)") - (description "This package is a parser for Coffeescript Object -Notation (CSON).") + (description + "This package is a parser for Coffeescript Object Notation (CSON).") (license license:expat))) (define-public python-aionotify @@ -32830,30 +32828,6 @@ prevent debuggers and other applications from inspecting the memory within your process.") (license license:expat))) -(define-public python-owslib - (package - (name "python-owslib") - (version "0.19.2") - (source - (origin - (method url-fetch) - (uri (pypi-uri "OWSLib" version)) - (sha256 - (base32 "0v8vg0naa9rywvd31cpq65ljbdclpsrx09788v4xj7lg10np8nk0")))) - (build-system python-build-system) - (arguments - ;; TODO: package dependencies required for tests. - '(#:tests? #f - #:phases (modify-phases %standard-phases - (delete 'sanity-check)))) - (synopsis "Interface for Open Geospatial Consortium web service") - (description - "OWSLib is a Python package for client programming with Open Geospatial -Consortium (OGC) web service (hence OWS) interface standards, and their related -content models.") - (home-page "https://geopython.github.io/OWSLib/") - (license license:bsd-3))) - (define-public python-xattr (package (name "python-xattr") @@ -37410,18 +37384,30 @@ It implements advanced Python dictionaries with dot notation access.") (name "python-aspectlib") (version "1.5.2") (source - (origin - (method url-fetch) - (uri (pypi-uri "aspectlib" version)) - (sha256 - (base32 "1am4ycf292zbmgz791z393v63w7qrynf8q5p9db2wwf2qj1fqxfj")))) - (build-system python-build-system) + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ionelmc/python-aspectlib") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1mfhflg33684gkp6ckkywshn4xa3vqaia521kcagaxgr3xm6c9pv")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + #~(list ;; XXX: Require more dependencies. + "--ignore=tests/test_integrations.py" + "--ignore=tests/test_integrations_py3.py" + ;; XXX: Unimportant warning errors. + "-k" (string-append "not test_story_empty_play_proxy_class" + " and not test_story_half_play_proxy_class")))) + (native-inputs (list python-pytest python-setuptools python-tornado python-wheel)) (propagated-inputs (list python-fields)) (home-page "https://github.com/ionelmc/python-aspectlib") - (synopsis - "Python monkey-patching and decorators") + (synopsis "Python monkey-patching and decorators") (description - "This package provides an aspect-oriented programming, monkey-patch + "This package provides an aspect-oriented programming, monkey-patch and decorators library. It is useful when changing behavior in existing code is desired. It includes tools for debugging and testing: simple mock/record and a complete capture/replay framework.") diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm index 7b989d38f9..665a074d65 100644 --- a/gnu/packages/radio.scm +++ b/gnu/packages/radio.scm @@ -1668,34 +1668,6 @@ users.") (home-page "https://hamlib.github.io/") (license (list license:gpl2+ license:lgpl2.1+)))) -(define wsjtx-hamlib - ;; Fork of hamlib with custom patches used by wsjtx. - (package - (inherit hamlib) - (name "wsjtx-hamlib") - (version "2.5.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://git.code.sf.net/u/bsomervi/hamlib.git") - (commit (string-append "wsjtx-" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1bgf7bz2280739a7ip7lvpns0i7x6svryxfmsp32cff2dr146lz3")))) - (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("libtool" ,libtool) - ("texinfo" ,texinfo) - ,@(package-native-inputs hamlib))) - (arguments - `(#:configure-flags '("--disable-static" - "--with-lua-binding" - "--with-python-binding" - "--with-tcl-binding" - "--with-xml-support"))))) - (define-public jtdx-hamlib ;; Fork of hamlib with custom patches used by jtdx. (package @@ -1909,10 +1881,7 @@ focused on DXing and being shaped by community of DXers.JTDX") (("set \\(ENV\\{PKG_CONFIG_PATH\\}.*\\)") "set (__pc_path $ENV{PKG_CONFIG_PATH}) list (APPEND __pc_path \"${__hamlib_pc_path}\") - set (ENV{PKG_CONFIG_PATH} \"${__pc_path}\")")) - (substitute* "HamlibTransceiver.hpp" - (("#ifdef JS8_USE_LEGACY_HAMLIB") - "#if 1")))) + set (ENV{PKG_CONFIG_PATH} \"${__pc_path}\")")))) (delete 'check) (add-after 'install 'check (lambda* (#:key tests? #:allow-other-keys) @@ -1928,11 +1897,11 @@ focused on DXing and being shaped by community of DXers.JTDX") (list boost fftw fftwf + hamlib libusb qtbase-5 qtmultimedia-5 - qtserialport-5 - wsjtx-hamlib)) + qtserialport-5)) (home-page "http://js8call.com/") (synopsis "Weak-signal ham radio communication program") (description @@ -2081,7 +2050,7 @@ gain and standing wave ratio.") (define-public dump1090 (package (name "dump1090") - (version "8.2") + (version "10.2") (source (origin (method git-fetch) @@ -2090,12 +2059,17 @@ gain and standing wave ratio.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "16ylywy2fdwf5kqr8kgl9lbzy1zwx4ckj9y122k3h86pfkswljs9")))) + (base32 "0dc1f18n1xlamdhxg96db6cm6kp04cqzxb36qmd141d0rca7qcli")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove FPGA firmware binary. + (delete-file-recursively "bladerf"))))) (build-system gnu-build-system) (native-inputs (list pkg-config)) (inputs - (list bladerf hackrf libusb ncurses rtl-sdr)) + (list bladerf hackrf libusb ncurses rtl-sdr soapysdr)) (arguments (list #:test-target "test" @@ -2838,7 +2812,7 @@ based devices in packet mode over a serial link.") (define-public cm256cc (package (name "cm256cc") - (version "1.1.0") + (version "1.1.1") (source (origin (method git-fetch) @@ -2847,7 +2821,7 @@ based devices in packet mode over a serial link.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1n9v7g6d370263bgqrjv38s9aq5953rzy7jvd8i30xq6aram9djg")))) + (base32 "07gx6yb17m9kd885qpf98cryn1acp546qg80c0rncy3hic0hd6pf")))) (build-system cmake-build-system) (arguments ;; Disable some SIMD features for reproducibility. diff --git a/gnu/packages/ruby-check.scm b/gnu/packages/ruby-check.scm index 151f00e145..5ff48039bd 100644 --- a/gnu/packages/ruby-check.scm +++ b/gnu/packages/ruby-check.scm @@ -28,7 +28,7 @@ ;;; Copyright © 2022 Stephen Paul Weber <singpolyma@singpolyma.net> ;;; Copyright © 2022 Taiju HIGASHI <higashi@taiju.info> ;;; Copyright © 2022 Tom Fitzhenry <tom@tom-fitzhenry.me.uk> -;;; Copyright © 2023 gemmaro <gemmaro.dev@gmail.com> +;;; Copyright © 2023, 2025 gemmaro <gemmaro.dev@gmail.com> ;;; Copyright © 2023 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream> ;;; Copyright © 2025 Nicolas Graves <ngraves@ngraves.fr> @@ -113,37 +113,19 @@ converting AsciiDoc content to HTML5, DocBook 5, PDF, and other formats.") (define-public ruby-builder (package (name "ruby-builder") - (version "3.2.4") + (version "3.3.0") (source (origin (method url-fetch) (uri (rubygems-uri "builder" version)) (sha256 (base32 - "045wzckxpwcqzrjr353cxnyaxgf0qg22jh00dcx7z38cys5g1jlr")))) + "0pw3r2lyagsxkm71bf44v5b74f7l9r7di22brbyji9fwz791hya9")))) (build-system ruby-build-system) - (arguments - (list - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'patch - (lambda _ - (substitute* "rakelib/tags.rake" - (("File\\.exists\\?") "File.exist?")) - - ;; TODO This test is broken - ;; https://github.com/tenderlove/builder/issues/13 - (substitute* "test/test_blankslate.rb" - (("test_late_included_module_in_kernel_is_ok") - "test_late_included_module_in_kernel_is_ok - skip(\"test expected to fail\") -")) - (substitute* "rakelib/tags.rake" - (("RVM_GEMDIR = .*") "RVM_GEMDIR = 'no-rvm-please'\n"))))))) (synopsis "Ruby library to create structured data") (description "Builder provides a number of builder objects that make it easy to create structured data. Currently the following builder objects are supported: XML Markup and XML Events.") - (home-page "https://github.com/tenderlove/builder") + (home-page "https://github.com/rails/builder") (license license:expat))) (define-public ruby-cucumber-ci-environment diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm index 5b2f023736..445571f3c0 100644 --- a/gnu/packages/serialization.scm +++ b/gnu/packages/serialization.scm @@ -997,6 +997,26 @@ game development and other performance-critical applications.") ((#:configure-flags flags #~'()) #~(append #$flags '("-DCMAKE_POSITION_INDEPENDENT_CODE=ON"))))))) +(define-public flatbuffers-23.5 + (hidden-package + (package + (inherit flatbuffers) + ;; needed explicitly by onnxruntime + (version "23.5.26") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/flatbuffers") + (commit (string-append "v" version)))) + (file-name (git-file-name "flatbuffers" version)) + (sha256 + (base32 "0cd12dvkzqdafz46q4302mzgpzbz589zmmiga7bq07f2sqy4vrvv")))) + (arguments + (substitute-keyword-arguments (package-arguments flatbuffers) + ((#:configure-flags flags #~'()) + #~(append #$flags '("-DCMAKE_POSITION_INDEPENDENT_CODE=ON")))))))) + (define-public go-github-com-google-flatbuffers (package/inherit flatbuffers (name "go-github-com-google-flatbuffers") diff --git a/gnu/packages/sphinx.scm b/gnu/packages/sphinx.scm index 1211a5f3e7..90bf376b39 100644 --- a/gnu/packages/sphinx.scm +++ b/gnu/packages/sphinx.scm @@ -1331,22 +1331,12 @@ executed during the Sphinx build process.") (method url-fetch) (uri (pypi-uri "sphobjinv" version)) (sha256 - (base32 - "10x4g92agj6aai0lj0xpcx58zlm1zamzws1w9dczsl1izpz07ij7")) - (patches (search-patches - "python-sphobjinv-defer-ssl-import.patch")))) - (build-system python-build-system) - (arguments - (list - #:phases - #~(modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "pytest"))))))) + (base32 "10x4g92agj6aai0lj0xpcx58zlm1zamzws1w9dczsl1izpz07ij7")) + (patches (search-patches "python-sphobjinv-defer-ssl-import.patch")))) + (build-system pyproject-build-system) (native-inputs (list python-dictdiffer python-pytest python-pytest-check - python-sphinx python-stdio-mgr)) + python-setuptools python-wheel python-sphinx python-stdio-mgr)) (propagated-inputs (list python-attrs python-certifi python-jsonschema)) (home-page "https://github.com/bskinn/sphobjinv") diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index e685cdf4a5..9770e73f52 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -25,6 +25,7 @@ ;;; Copyright © 2024-2025 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; Copyright © 2025 Jonas Freimuth <jonas.freimuth@posteo.de> ;;; Copyright © 2025 Janneke Nieuwenhuizen <janneke@gnu.org> +;;; Copyright © 2025 Rikard Nordgren <hrn@posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -119,6 +120,96 @@ #:use-module (srfi srfi-1) #:use-module (ice-9 match)) +(define-public jags + (package + (name "jags") + (version "4.3.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/mcmc-jags/JAGS/" + (version-major version) ".x/Source/" + "JAGS-" version ".tar.gz")) + (sha256 + (base32 + "0aa2w4g5057vn1qjp954s2kwxfmy1h7p5yn56fyi7sz9nmaq69gr")))) + (build-system gnu-build-system) + (arguments + (list #:configure-flags + #~(list "--with-lapack=-lopenblas" + "--with-blas=-lopenblas"))) + (home-page "https://mcmc-jags.sourceforge.net/") + (native-inputs + (list gfortran openblas)) + (synopsis "Gibbs sampler") + (description "JAGS is Just Another Gibbs Sampler. It is a program for +analysis of Bayesian hierarchical models using Markov Chain Monte Carlo (MCMC) +simulation not wholly unlike BUGS. JAGS was written with three aims in mind: + +@enumerate +@item To have a cross-platform engine for the BUGS language; +@item To be extensible, allowing users to write their own functions, + distributions and samplers; +@item To be a platform for experimentation with ideas in Bayesian modelling. +@end enumerate\n") + (license license:gpl2))) + +(define-public java-jdistlib + (package + (name "java-jdistlib") + (version "0.4.5") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/jdistlib/jdistlib-" + version "-src.jar")) + (sha256 + (base32 + "1pkj8aahw9ydr1isbaqrkd05nvq98ik5jwwhf3yf3rky3z869v11")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "jdistlib.jar" + #:jdk ,icedtea-8 + #:tests? #f ; no dedicated test directory + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-broken-encoding + (lambda _ + (with-fluids ((%default-port-encoding "ISO-8859-1")) + (substitute* "src/jdistlib/Beta.java" + (("Scheff.+-Tukey") "Scheffe-Tukey"))) + #t))))) + (propagated-inputs + (list java-jtransforms)) + (native-inputs + (list java-junit)) + (home-page "https://jdistlib.sourceforge.net/") + (synopsis "Java library of statistical distributions") + (description "JDistlib is the Java Statistical Distribution Library, a +Java package that provides routines for various statistical distributions.") + ;; The files that were translated from R code are under GPLv2+; some files + ;; are under the GPLv3, which is a mistake. The author confirmed in an + ;; email that this whole project should be under GPLv2+. + (license license:gpl2+))) + +(define-public libxls + (package + (name "libxls") + (version "1.6.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/libxls/libxls/releases/download/" + "v" version "/libxls-" version ".tar.gz")) + (sha256 + (base32 "0b327zafbwnfxj75n722z6a6zw195rs5bjmm5wskl9dml1p87yxj")))) + (build-system gnu-build-system) + (home-page "https://github.com/libxls/libxls") + (synopsis "Read binary (.xls) Excel spreadsheet files") + (description + "libxls is a C library to read .xls spreadsheet files in the binary OLE +BIFF8 format as created by Excel 97 and later versions. It cannot write them. + +This package also provides @command{xls2csv} to export Excel files to CSV.") + (license license:bsd-2))) (define-public pspp (package @@ -174,59 +265,107 @@ can be imported from spreadsheets, text files and database sources and it can be output in text, PostScript, PDF or HTML.") (license license:gpl3+))) -(define-public jags +(define-public python-altair (package - (name "jags") - (version "4.3.1") + (name "python-altair") + (version "5.3.0") (source (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/mcmc-jags/JAGS/" - (version-major version) ".x/Source/" - "JAGS-" version ".tar.gz")) + (method git-fetch) ; no tests in PyPI + (uri (git-reference + (url "https://github.com/altair-viz/altair") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "0aa2w4g5057vn1qjp954s2kwxfmy1h7p5yn56fyi7sz9nmaq69gr")))) - (build-system gnu-build-system) + "1lx3pkphi36pljns6jjxhyn9fbrana8f1y6gcg4yca48nvwlfssl")))) + (build-system pyproject-build-system) (arguments - (list #:configure-flags - #~(list "--with-lapack=-lopenblas" - "--with-blas=-lopenblas"))) - (home-page "https://mcmc-jags.sourceforge.net/") - (native-inputs - (list gfortran openblas)) - (synopsis "Gibbs sampler") - (description "JAGS is Just Another Gibbs Sampler. It is a program for -analysis of Bayesian hierarchical models using Markov Chain Monte Carlo (MCMC) -simulation not wholly unlike BUGS. JAGS was written with three aims in mind: - -@enumerate -@item To have a cross-platform engine for the BUGS language; -@item To be extensible, allowing users to write their own functions, - distributions and samplers; -@item To be a platform for experimentation with ideas in Bayesian modelling. -@end enumerate\n") - (license license:gpl2))) + (list #:test-flags + ;; XXX: This test file requires hard to package python-anywidgets. + #~(list "--ignore=tests/test_jupyter_chart.py" + "-k" (string-join + (list + ;; these tests open an external connection. + "not test_from_and_to_json_roundtrip" + "test_render_examples_to_chart" + ;; introduces a circular dependency on altair-viewer. + "not test_save_html" + ;; these tests require the vl-convert vega compiler + "test_vegalite_compiler" + "test_to_dict_with_format_vega" + "test_to_json_with_format_vega" + "test_to_url" + "test_renderer_with_none_embed_options" + "test_jupyter_renderer_mimetype") + " and not ")))) + (propagated-inputs (list python-jinja2 + python-jsonschema + python-numpy + python-pandas + python-setuptools + python-toolz + python-typing-extensions)) + (native-inputs (list python-black + python-hatchling + python-ipython + python-pytest + python-vega-datasets)) + (home-page "https://altair-viz.github.io/") + (synopsis "Declarative statistical visualization library for Python") + (description + "Vega-Altair is a declarative statistical visualization library for Python.") + (license license:expat))) -(define-public libxls +(define-public python-arviz (package - (name "libxls") - (version "1.6.3") - (source - (origin - (method url-fetch) - (uri (string-append "https://github.com/libxls/libxls/releases/download/" - "v" version "/libxls-" version ".tar.gz")) - (sha256 - (base32 "0b327zafbwnfxj75n722z6a6zw195rs5bjmm5wskl9dml1p87yxj")))) - (build-system gnu-build-system) - (home-page "https://github.com/libxls/libxls") - (synopsis "Read binary (.xls) Excel spreadsheet files") + (name "python-arviz") + (version "0.21.0") + (source (origin + (method git-fetch) ; PyPI misses some test files + (uri (git-reference + (url "https://github.com/arviz-devs/arviz") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "02bqpl61gzn65vhwspi6gx9ln2wlwh8xm418i8vhmls44rvszcxf")))) + (build-system pyproject-build-system) + (arguments + ;; FIXME: matplotlib tests fail because of the "--save" test flag. + (list #:test-flags #~'("--ignore" + "arviz/tests/base_tests/test_plots_matplotlib.py") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-radon + (lambda _ + (delete-file + ;; This dataset is loaded remotely, it's not supposed to + ;; be copied locally. + "arviz/data/example_data/code/radon/radon.json"))) + (add-before 'check 'write-permission + (lambda _ + ;; 3 tests require write permission. + (setenv "HOME" "/tmp")))))) + (native-inputs (list python-cloudpickle python-pytest)) + (propagated-inputs (list python-dm-tree + python-h5netcdf + python-matplotlib + python-numpy + python-packaging + python-pandas + python-scipy + python-typing-extensions + python-xarray + python-xarray-einstats + python-setuptools + python-wheel)) + (home-page "https://github.com/arviz-devs/arviz") + (synopsis "Exploratory analysis of Bayesian models") (description - "libxls is a C library to read .xls spreadsheet files in the binary OLE -BIFF8 format as created by Excel 97 and later versions. It cannot write them. - -This package also provides @command{xls2csv} to export Excel files to CSV.") - (license license:bsd-2))) + "ArviZ is a Python package for exploratory analysis of Bayesian models. +It includes functions for posterior analysis, data storage, model checking, +comparison and diagnostics.") + (license license:asl2.0))) ;; Update this package together with the set of recommended packages: r-boot, ;; r-class, r-cluster, r-codetools, r-foreign, r-kernsmooth, r-lattice, @@ -468,6 +607,42 @@ publication-quality data plots. A large amount of 3rd-party packages are available, greatly increasing its breadth and scope.") (license license:gpl3+))) +(define-public python-chaospy + (package + (name "python-chaospy") + (version "4.3.13") + (source (origin ;; PyPI misses Pytest fixtures. + (method git-fetch) + (uri (git-reference + (url "https://github.com/jonathf/chaospy") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1bn4jmwygs5h0dskbniivj20qblgm75pyi9hcjf47r25kawd730m")))) + (build-system pyproject-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + ;; The deprecation warnings break the tests. + (add-after 'unpack 'dont-treat-deprecation-warnings-as-error + (lambda _ + (substitute* "pyproject.toml" + (("\"error::DeprecationWarning\",") ""))))))) + (propagated-inputs (list python-importlib-metadata python-numpoly + python-numpy python-scipy)) + (native-inputs (list python-pytest python-scikit-learn python-setuptools + python-wheel)) + (home-page "https://chaospy.readthedocs.io/en/master/") + (synopsis "Numerical tool for performing uncertainty quantification") + (description "Chaospy is a numerical toolbox for performing uncertainty +quantification using polynomial chaos expansions, advanced Monte Carlo +methods implemented in Python. It also include a full suite of tools for +doing low-discrepancy sampling, quadrature creation, polynomial manipulations, +and a lot more.") + (license license:expat))) + (define-public python-dcor (package (name "python-dcor") @@ -835,55 +1010,29 @@ Keizer et al. (2013) <doi:10.1038/psp.2013.24>, and Jonsson et al. and Vega-Lite examples.") (license license:expat))) -(define-public python-altair +(define-public python-emcee (package - (name "python-altair") - (version "5.3.0") - (source (origin - (method git-fetch) ; no tests in PyPI - (uri (git-reference - (url "https://github.com/altair-viz/altair") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1lx3pkphi36pljns6jjxhyn9fbrana8f1y6gcg4yca48nvwlfssl")))) + (name "python-emcee") + (version "3.1.6") + (source + (origin + (method url-fetch) + (uri (pypi-uri "emcee" version)) + (sha256 + (base32 "0zb3ihja3hyj6zjbhkpxhyyppnv58q2jjg0yd1lwmydqdaplvbqi")))) (build-system pyproject-build-system) - (arguments - (list #:test-flags - ;; XXX: This test file requires hard to package python-anywidgets. - #~(list "--ignore=tests/test_jupyter_chart.py" - "-k" (string-join - (list - ;; these tests open an external connection. - "not test_from_and_to_json_roundtrip" - "test_render_examples_to_chart" - ;; introduces a circular dependency on altair-viewer. - "not test_save_html" - ;; these tests require the vl-convert vega compiler - "test_vegalite_compiler" - "test_to_dict_with_format_vega" - "test_to_json_with_format_vega" - "test_to_url" - "test_renderer_with_none_embed_options" - "test_jupyter_renderer_mimetype") - " and not ")))) - (propagated-inputs (list python-jinja2 - python-jsonschema - python-numpy - python-pandas - python-setuptools - python-toolz - python-typing-extensions)) - (native-inputs (list python-black - python-hatchling - python-ipython + (propagated-inputs (list python-numpy)) + (native-inputs (list python-coverage python-pytest - python-vega-datasets)) - (home-page "https://altair-viz.github.io/") - (synopsis "Declarative statistical visualization library for Python") + python-pytest-cov + python-setuptools + python-setuptools-scm + python-wheel)) + (home-page "https://emcee.readthedocs.io/en/stable/") + (synopsis "Ensemble sampling toolkit for MCMC") (description - "Vega-Altair is a declarative statistical visualization library for Python.") + "@code{emcee} is a Python implementation of the affine-invariant ensemble +sampler for Markov chain Monte Carlo (MCMC).") (license license:expat))) (define-public python-george @@ -1044,57 +1193,6 @@ is widely used in many areas of astrophysical research.") algorithms for evaluating Bayesian evidence.") (license license:expat))) -(define-public python-arviz - (package - (name "python-arviz") - (version "0.21.0") - (source (origin - (method git-fetch) ; PyPI misses some test files - (uri (git-reference - (url "https://github.com/arviz-devs/arviz") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "02bqpl61gzn65vhwspi6gx9ln2wlwh8xm418i8vhmls44rvszcxf")))) - (build-system pyproject-build-system) - (arguments - ;; FIXME: matplotlib tests fail because of the "--save" test flag. - (list #:test-flags #~'("--ignore" - "arviz/tests/base_tests/test_plots_matplotlib.py") - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'remove-radon - (lambda _ - (delete-file - ;; This dataset is loaded remotely, it's not supposed to - ;; be copied locally. - "arviz/data/example_data/code/radon/radon.json"))) - (add-before 'check 'write-permission - (lambda _ - ;; 3 tests require write permission. - (setenv "HOME" "/tmp")))))) - (native-inputs (list python-cloudpickle python-pytest)) - (propagated-inputs (list python-dm-tree - python-h5netcdf - python-matplotlib - python-numpy - python-packaging - python-pandas - python-scipy - python-typing-extensions - python-xarray - python-xarray-einstats - python-setuptools - python-wheel)) - (home-page "https://github.com/arviz-devs/arviz") - (synopsis "Exploratory analysis of Bayesian models") - (description - "ArviZ is a Python package for exploratory analysis of Bayesian models. -It includes functions for posterior analysis, data storage, model checking, -comparison and diagnostics.") - (license license:asl2.0))) - (define-public python-pymc (package (name "python-pymc") @@ -1141,42 +1239,6 @@ modeling focusing on advanced Markov chain Monte Carlo (MCMC) and variational inference (VI) algorithms.") (license license:asl2.0))) -(define-public python-chaospy - (package - (name "python-chaospy") - (version "4.3.13") - (source (origin ;; PyPI misses Pytest fixtures. - (method git-fetch) - (uri (git-reference - (url "https://github.com/jonathf/chaospy") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1bn4jmwygs5h0dskbniivj20qblgm75pyi9hcjf47r25kawd730m")))) - (build-system pyproject-build-system) - (arguments - (list - #:phases - #~(modify-phases %standard-phases - ;; The deprecation warnings break the tests. - (add-after 'unpack 'dont-treat-deprecation-warnings-as-error - (lambda _ - (substitute* "pyproject.toml" - (("\"error::DeprecationWarning\",") ""))))))) - (propagated-inputs (list python-importlib-metadata python-numpoly - python-numpy python-scipy)) - (native-inputs (list python-pytest python-scikit-learn python-setuptools - python-wheel)) - (home-page "https://chaospy.readthedocs.io/en/master/") - (synopsis "Numerical tool for performing uncertainty quantification") - (description "Chaospy is a numerical toolbox for performing uncertainty -quantification using polynomial chaos expansions, advanced Monte Carlo -methods implemented in Python. It also include a full suite of tools for -doing low-discrepancy sampling, quadrature creation, polynomial manipulations, -and a lot more.") - (license license:expat))) - (define-public python-patsy (package (name "python-patsy") @@ -1301,31 +1363,6 @@ uncertainties and are backed by strong theoretical guarantees thanks to conformal prediction methods intervals.") (license license:bsd-3))) -(define-public python-emcee - (package - (name "python-emcee") - (version "3.1.6") - (source - (origin - (method url-fetch) - (uri (pypi-uri "emcee" version)) - (sha256 - (base32 "0zb3ihja3hyj6zjbhkpxhyyppnv58q2jjg0yd1lwmydqdaplvbqi")))) - (build-system pyproject-build-system) - (propagated-inputs (list python-numpy)) - (native-inputs (list python-coverage - python-pytest - python-pytest-cov - python-setuptools - python-setuptools-scm - python-wheel)) - (home-page "https://emcee.readthedocs.io/en/stable/") - (synopsis "Ensemble sampling toolkit for MCMC") - (description - "@code{emcee} is a Python implementation of the affine-invariant ensemble -sampler for Markov chain Monte Carlo (MCMC).") - (license license:expat))) - (define-public python-statsmodels (package (name "python-statsmodels") @@ -3095,43 +3132,6 @@ editing and rich syntax highlight. One would consider Radian as a IPython clone for R, though its design is more aligned to Julia.") (license license:expat))) -(define-public java-jdistlib - (package - (name "java-jdistlib") - (version "0.4.5") - (source (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/jdistlib/jdistlib-" - version "-src.jar")) - (sha256 - (base32 - "1pkj8aahw9ydr1isbaqrkd05nvq98ik5jwwhf3yf3rky3z869v11")))) - (build-system ant-build-system) - (arguments - `(#:jar-name "jdistlib.jar" - #:jdk ,icedtea-8 - #:tests? #f ; no dedicated test directory - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-broken-encoding - (lambda _ - (with-fluids ((%default-port-encoding "ISO-8859-1")) - (substitute* "src/jdistlib/Beta.java" - (("Scheff.+-Tukey") "Scheffe-Tukey"))) - #t))))) - (propagated-inputs - (list java-jtransforms)) - (native-inputs - (list java-junit)) - (home-page "https://jdistlib.sourceforge.net/") - (synopsis "Java library of statistical distributions") - (description "JDistlib is the Java Statistical Distribution Library, a -Java package that provides routines for various statistical distributions.") - ;; The files that were translated from R code are under GPLv2+; some files - ;; are under the GPLv3, which is a mistake. The author confirmed in an - ;; email that this whole project should be under GPLv2+. - (license license:gpl2+))) - (define-public emacs-ess (package (name "emacs-ess") @@ -3276,32 +3276,6 @@ statistical analysis programs such as R, Julia, and JAGS.") files, including Rmarkdown files.") (license license:gpl3+))) -(define-public readstat - (let ((commit "718d49155e327471ed9bf4a8c157f849f285b46c") - (revision "0")) - (package - (name "readstat") - (version (git-version "1.1.9" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/WizardMac/ReadStat") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "121axcx4shd0fqlcr1mk7y841sd59r9mx473c4av8gs81xfhcg0h")))) - (build-system gnu-build-system) - (native-inputs - (list autoconf automake gettext-minimal libtool)) - (inputs - (list zlib)) - (home-page "https://github.com/WizardMac/ReadStat") - (synopsis "Convert SAS, Stata, and SPSS files") - (description "Command-line tool and C library for reading files from -popular stats packages like SAS, Stata and SPSS.") - (license license:expat)))) - (define-public python-pyreadstat (package (name "python-pyreadstat") @@ -3346,59 +3320,6 @@ files into/from Pandas DataFrames. It is a wrapper around the C library @code{readstat}.") (license license:asl2.0))) -(define-public xlispstat - (let ((commit "f1bea6053df658ee48612bf1f63c35de99e2c649") - (revision "0")) - (package - (name "xlispstat") - (version (git-version "3.52.23" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jhbadger/xlispstat.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1p0cmgy19kbkxia139cb5w9dnkp2cdqp5n3baag6cq3prn3n71mf")))) - (build-system gnu-build-system) - (arguments - `(#:parallel-build? #f ; Parallel builds are not supported - #:configure-flags (list "--with-gcc") - #:phases - (modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (with-output-to-file "exit.lsp" - (lambda () (display "(exit)"))) - (invoke "./xlisp" "tests/test" "exit"))))))) - (inputs (list tcsh - libx11 - libxmu - libxext - libxpm - libxaw - ncurses - gnuplot)) - (native-inputs (list pkg-config)) - (synopsis "Statistical analysis environment with interactive graphics") - (description "XLISP-STAT is a statistical environment based on a Lisp -dialect called XLISP. To facilitate statistical computations, standard -functions for addition, logarithms, etc., have been modified to operate on -lists and arrays of numbers, and a number of basic statistical functions have -been added. Many of these functions have been written in Lisp, and additional -functions can be added easily by a user. Several basic forms of plots, -including histograms, scatterplots, rotatable plots and scatterplot matrices -are provided. These plots support various forms of interactive highlighting -operations and can be linked so points highlighted in one plot will be -highlighted in all linked plots. Interactions with the plots are controlled -by the mouse, menus and dialog boxes. An object-oriented programming system -is used to allow menus, dialogs, and the response to mouse actions to be - customized.") - (home-page "https://homepage.divms.uiowa.edu/~luke/xls/xlsinfo/") - (license license:expat)))) - (define-public r-rlrsim (package (name "r-rlrsim") @@ -3537,6 +3458,67 @@ simple slopes, standardized coefficients, regions of significance (Johnson & Neyman, 1936; cf. Spiller et al., 2012), etc.") (license license:gpl3))) +(define-public r-vpc + (package + (name "r-vpc") + (version "1.2.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ronkeizer/vpc") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1bkp0zy1pswrqgcsdvxvc7gyfl544k89qrjqdcj4aqkif0bfqmx8")))) + (build-system r-build-system) + (native-inputs + (list r-testit)) + (propagated-inputs + (list r-classint + r-dplyr + r-ggplot2 + r-mass + r-readr + r-stringr + r-survival + r-tidyr)) + (home-page "https://vpc.ronkeizer.com/") + (synopsis "Create visual predictive checks") + (description + "Visual predictive checks are a commonly used diagnostic plot in +pharmacometrics, showing how certain statistics (percentiles) for observed +data compare to those same statistics for data simulated from a model. The +package can generate VPCs for continuous, categorical, censored, and +(repeated) time-to-event data.") + (license license:expat))) + +(define-public readstat + (let ((commit "718d49155e327471ed9bf4a8c157f849f285b46c") + (revision "0")) + (package + (name "readstat") + (version (git-version "1.1.9" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/WizardMac/ReadStat") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "121axcx4shd0fqlcr1mk7y841sd59r9mx473c4av8gs81xfhcg0h")))) + (build-system gnu-build-system) + (native-inputs + (list autoconf automake gettext-minimal libtool)) + (inputs + (list zlib)) + (home-page "https://github.com/WizardMac/ReadStat") + (synopsis "Convert SAS, Stata, and SPSS files") + (description "Command-line tool and C library for reading files from +popular stats packages like SAS, Stata and SPSS.") + (license license:expat)))) + (define-public ruby-enumerable-statistics (package (name "ruby-enumerable-statistics") @@ -3634,3 +3616,56 @@ statistical summary in arrays and enumerables.") can be used for learning (Structure and Parameter), inference (Probabilistic and Causal), and simulations in Bayesian Networks.") (license license:expat))) + +(define-public xlispstat + (let ((commit "f1bea6053df658ee48612bf1f63c35de99e2c649") + (revision "0")) + (package + (name "xlispstat") + (version (git-version "3.52.23" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jhbadger/xlispstat.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1p0cmgy19kbkxia139cb5w9dnkp2cdqp5n3baag6cq3prn3n71mf")))) + (build-system gnu-build-system) + (arguments + `(#:parallel-build? #f ; Parallel builds are not supported + #:configure-flags (list "--with-gcc") + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (with-output-to-file "exit.lsp" + (lambda () (display "(exit)"))) + (invoke "./xlisp" "tests/test" "exit"))))))) + (inputs (list tcsh + libx11 + libxmu + libxext + libxpm + libxaw + ncurses + gnuplot)) + (native-inputs (list pkg-config)) + (synopsis "Statistical analysis environment with interactive graphics") + (description "XLISP-STAT is a statistical environment based on a Lisp +dialect called XLISP. To facilitate statistical computations, standard +functions for addition, logarithms, etc., have been modified to operate on +lists and arrays of numbers, and a number of basic statistical functions have +been added. Many of these functions have been written in Lisp, and additional +functions can be added easily by a user. Several basic forms of plots, +including histograms, scatterplots, rotatable plots and scatterplot matrices +are provided. These plots support various forms of interactive highlighting +operations and can be linked so points highlighted in one plot will be +highlighted in all linked plots. Interactions with the plots are controlled +by the mouse, menus and dialog boxes. An object-oriented programming system +is used to allow menus, dialogs, and the response to mouse actions to be + customized.") + (home-page "https://homepage.divms.uiowa.edu/~luke/xls/xlsinfo/") + (license license:expat)))) diff --git a/gnu/packages/time.scm b/gnu/packages/time.scm index 2fe41d1358..3ec115f318 100644 --- a/gnu/packages/time.scm +++ b/gnu/packages/time.scm @@ -411,20 +411,23 @@ business day calculation.") (version "2.6") (source (origin - (method url-fetch) - (uri (pypi-uri "parsedatetime" version)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/bear/parsedatetime") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 - "0mfl0ixshqkwx7z5siaib7ix5j2iahb1jqfpyhqp42wan7xnicsc")))) - (build-system python-build-system) + (base32 "001rxkawjjjffbqzjg96znkhj4z6q7ky349rldd8yx6vk8cgdc2m")))) + (build-system pyproject-build-system) (native-inputs - (list python-nose python-pyicu python-pytest python-pytest-runner)) + (list python-pyicu python-pytest python-setuptools python-wheel)) (propagated-inputs (list python-future)) (home-page "https://github.com/bear/parsedatetime/") (synopsis "Parse human-readable date/time text") (description - "Parse human-readable date/time text.") + "This package provides some tools to parse human-readable date/time text +in Python.") (license asl2.0))) (define-public python-ciso8601 diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 7eefc31928..8dd820429c 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -50,6 +50,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system go) #:use-module (guix build-system perl) + #:use-module (guix build-system pyproject) #:use-module (guix build-system python) #:use-module (guix build-system cmake) #:use-module (guix build-system trivial) @@ -77,6 +78,7 @@ #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #: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) @@ -710,48 +712,48 @@ netcat implementation that supports TLS.") (package (name "python-acme") ;; Remember to update the hash of certbot when updating python-acme. - (version "2.3.0") - (source (origin - (method url-fetch) - (uri (pypi-uri "acme" version)) - (sha256 - (base32 - "1z6293g4pyxvx5w7v07j8wnaxyr7srsqfqvgly888b8k52fq9ipa")))) - (build-system python-build-system) + (version "4.2.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "acme" version)) + (sha256 + (base32 "0h8ckyal5j8lkm24fd52dajy38mxa76zh4q022i28f6b3878rxhd")))) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'build 'build-documentation - (lambda _ - (invoke "make" "-C" "docs" "man" "info"))) - (add-after 'install 'install-documentation - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (man (string-append out "/share/man/man1")) - (info (string-append out "/info"))) - (install-file "docs/_build/texinfo/acme-python.info" info) - (install-file "docs/_build/man/acme-python.1" man)))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "pytest" "-vv"))))))) + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'relax-requirements + (lambda _ + (substitute* "setup.py" + (("'PyOpenSSL.*',") + "'PyOpenSSL',")))) + (add-after 'build 'build-documentation + (lambda _ + (invoke "make" "-C" "docs" "man" "info"))) + (add-after 'install 'install-documentation + (lambda _ + (let ((man (string-append #$output "/share/man/man1")) + (info (string-append #$output "/info"))) + (install-file "docs/_build/texinfo/acme-python.info" info) + (install-file "docs/_build/man/acme-python.1" man))))))) (native-inputs (list python-pytest + python-pytest-xdist + python-setuptools + python-wheel ;; For documentation python-sphinx python-sphinxcontrib-programoutput python-sphinx-rtd-theme texinfo)) (propagated-inputs - (list python-chardet + (list python-cryptography python-josepy - python-requests - python-requests-toolbelt - python-pytz + python-pyopenssl python-pyrfc3339 - python-pyasn1 - python-cryptography - python-pyopenssl)) + python-requests)) (home-page "https://github.com/certbot/certbot") (synopsis "ACME protocol implementation in Python") (description "ACME protocol implementation in Python") @@ -763,30 +765,33 @@ netcat implementation that supports TLS.") ;; Certbot and python-acme are developed in the same repository, and their ;; versions should remain synchronized. (version (package-version python-acme)) - (source (origin - (method url-fetch) - (uri (pypi-uri "certbot" version)) - (sha256 - (base32 - "12nd9nmdj3bf1xlvhj1ln473xbyv4qzxf6qhz0djbca7jl59zlwk")))) - (build-system python-build-system) + (source + (origin + (method url-fetch) + (uri (pypi-uri "certbot" version)) + (sha256 + (base32 "0yy287h1sjdkm5cj4wazq316igwwla856yqcmi4yqaq7ib55c7pv")))) + (build-system pyproject-build-system) (arguments - `(,@(substitute-keyword-arguments (package-arguments python-acme) - ((#:phases phases) - `(modify-phases ,phases - (replace 'install-documentation - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (man1 (string-append out "/share/man/man1")) - (man7 (string-append out "/share/man/man7")) - (info (string-append out "/info"))) - (install-file "docs/_build/texinfo/Certbot.info" info) - (install-file "docs/_build/man/certbot.1" man1) - (install-file "docs/_build/man/certbot.7" man7) - #t)))))))) + (substitute-keyword-arguments (package-arguments python-acme) + ((#:test-flags flags '()) + ;; XXX: No time zone found with key Asia/Sanghai, pytz version? + #~(list "-k" "not test_add_time_interval")) + ((#:phases phases) + #~(modify-phases #$phases + (replace 'install-documentation + (lambda* (#:key outputs #:allow-other-keys) + (let ((man1 (string-append #$output "/share/man/man1")) + (man7 (string-append #$output "/share/man/man7")) + (info (string-append #$output "/info"))) + (install-file "docs/_build/texinfo/Certbot.info" info) + (install-file "docs/_build/man/certbot.1" man1) + (install-file "docs/_build/man/certbot.7" man7)))))))) (native-inputs (list python-mock python-pytest + python-setuptools + python-wheel ;; For documentation python-sphinx python-sphinx-rtd-theme @@ -806,8 +811,9 @@ netcat implementation that supports TLS.") python-requests python-pytz)) (synopsis "Let's Encrypt client by the Electronic Frontier Foundation") - (description "Certbot automatically receives and installs X.509 certificates -to enable Transport Layer Security (TLS) on servers. It interoperates with the + (description + "Certbot automatically receives and installs X.509 certificates to enable +Transport Layer Security (TLS) on servers. It interoperates with the Let’s Encrypt certificate authority (CA), which issues browser-trusted certificates for free.") (home-page "https://certbot.eff.org/") diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 45f42f63d1..cb54059240 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -4847,7 +4847,7 @@ developer workflow, and project and release management.") (define-public hut (package (name "hut") - (version "0.6.0") + (version "0.7.0") (source (origin (method git-fetch) @@ -4856,16 +4856,7 @@ developer workflow, and project and release management.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "14cia976i2jdzyzw4wk9fhkh6zqgmb09ryf31ys24smmfcdfxyf1")) - (modules '((guix build utils))) - (snippet - #~(begin - ;; XXX: Module name has been changed upstream, it's already - ;; adjusted on master, consider to remove in the next refresh - ;; cycle. - (substitute* (find-files "." "\\.go$") - (("git.sr.ht/~emersion/go-scfg") - "codeberg.org/emersion/go-scfg")))))) + (base32 "0scw4nvm3qpg7l6anhljkixn3g36k03ikg6pl0hs76a3wkf89km5")))) (build-system go-build-system) (arguments (list diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index f4966439cb..fedc4827aa 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -96,6 +96,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix utils) #:use-module (guix packages) + #:use-module (guix deprecation) #:use-module (guix download) #:use-module (guix gexp) #:use-module (guix git-download) @@ -2943,23 +2944,30 @@ Jellyfin. It has support for various media files without transcoding.") (define-public gallery-dl (package (name "gallery-dl") - (version "1.28.2") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/mikf/gallery-dl" - "/releases/download/v" version "/gallery_dl-" - version ".tar.gz")) - (sha256 - (base32 - "0j4hxp1lbcxgg34ilzhcpxvswgnvvrlk66pn3w9ksv5g8jdz7rpi")))) - (build-system python-build-system) + (version "1.30.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mikf/gallery-dl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "15sgvk81s61v4yzzv1s5ksr4z77qhmv7ynyn34zrx5x41g72hgpz")))) + (build-system pyproject-build-system) + (arguments + (list + ;; XXX: A lot of those require network. + #:test-flags #~(list "--ignore=test/test_results.py"))) + (native-inputs (list python-pytest python-setuptools python-wheel)) (inputs (list python-requests ffmpeg)) (home-page "https://github.com/mikf/gallery-dl") (synopsis "Command-line program to download images from several sites") - (description "Gallery-dl is a command-line program that downloads image -galleries and collections from several image hosting sites. While this package -can use youtube-dl or yt-dlp packages to download videos, the focus is more on -images and image hosting sites.") + (description + "Gallery-dl is a command-line program that downloads image galleries and +collections from several image hosting sites. While this package can use +yt-dlp packages to download videos, the focus is more on images and image +hosting sites.") (license license:gpl2))) (define-public mpv-mpris @@ -3172,88 +3180,7 @@ to download videos from Austria's national television broadcaster.") video streaming services of the Finnish national broadcasting company Yle.") (license license:gpl3+))) -(define-public youtube-dl - (package - (name "youtube-dl") - (version "2021.12.17") - (source (origin - (method url-fetch) - (uri (string-append "https://youtube-dl.org/downloads/latest/" - "youtube-dl-" version ".tar.gz")) - (sha256 - (base32 - "1prm84ci1n1kjzhikhrsbxbgziw6br822psjnijm2ibqnz49jfwz")) - (snippet - '(begin - ;; Delete the pre-generated files, except for the man page - ;; which requires 'pandoc' to build. - (for-each delete-file '("youtube-dl" - ;;pandoc is needed to generate - ;;"youtube-dl.1" - "youtube-dl.bash-completion" - "youtube-dl.fish" - "youtube-dl.zsh")))))) - (build-system python-build-system) - (arguments - ;; The problem here is that the directory for the man page and completion - ;; files is relative, and for some reason, setup.py uses the - ;; auto-detected sys.prefix instead of the user-defined "--prefix=FOO". - ;; So, we need pass the prefix directly. In addition, make sure the Bash - ;; completion file is called 'youtube-dl' rather than - ;; 'youtube-dl.bash-completion'. - `(#:tests? #f ; Many tests fail. The test suite can be run with pytest. - #:phases (modify-phases %standard-phases - (add-after 'unpack 'default-to-the-ffmpeg-input - (lambda _ - ;; See <https://issues.guix.gnu.org/43418#5>. - ;; ffmpeg is big but required to request free formats - ;; from, e.g., YouTube so pull it in unconditionally. - ;; Continue respecting the --ffmpeg-location argument. - (substitute* "youtube_dl/postprocessor/ffmpeg.py" - (("\\.get\\('ffmpeg_location'\\)" match) - (format #f "~a or '~a'" match (which "ffmpeg")))))) - (add-before 'build 'build-generated-files - (lambda _ - ;; Avoid the make targets that require pandoc. - (invoke "make" - "PYTHON=python" - "youtube-dl" - ;;"youtube-dl.1" ; needs pandoc - "youtube-dl.bash-completion" - "youtube-dl.zsh" - "youtube-dl.fish"))) - (add-before 'install 'fix-the-data-directories - (lambda* (#:key outputs #:allow-other-keys) - (let ((prefix (assoc-ref outputs "out"))) - (mkdir "bash-completion") - (rename-file "youtube-dl.bash-completion" - "bash-completion/youtube-dl") - (substitute* "setup.py" - (("youtube-dl\\.bash-completion") - "bash-completion/youtube-dl") - (("'etc/") - (string-append "'" prefix "/etc/")) - (("'share/") - (string-append "'" prefix "/share/")))))) - (add-after 'install 'install-completion - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (zsh (string-append out - "/share/zsh/site-functions"))) - (mkdir-p zsh) - (copy-file "youtube-dl.zsh" - (string-append zsh "/_youtube-dl")))))))) - (native-inputs - (list zip)) - (inputs - (list ffmpeg)) - (synopsis "Download videos from YouTube.com and other sites") - (description - "Youtube-dl is a small command-line program to download videos from -YouTube.com and many more sites.") - (home-page "https://yt-dl.org") - (properties '((release-monitoring-url . "https://yt-dl.org/downloads/"))) - (license license:public-domain))) +(define-deprecated/public-alias youtube-dl yt-dlp) (define-public yt-dlp (package @@ -3407,8 +3334,7 @@ audio, images) from the Web. It can use either mpv or vlc for playback.") perl-term-readline-gnu perl-unicode-linebreak xdg-utils - ;; Some videos play without youtube-dl, but others silently fail to. - youtube-dl)) + yt-dlp)) (arguments `(#:modules ((guix build perl-build-system) (guix build utils) @@ -3421,9 +3347,9 @@ audio, images) from the Web. It can use either mpv or vlc for playback.") (add-after 'unpack 'refer-to-inputs (lambda* (#:key inputs #:allow-other-keys) (substitute* "lib/WWW/YoutubeViewer.pm" - (("'youtube-dl'") - (format #f "'~a/bin/youtube-dl'" - (assoc-ref inputs "youtube-dl")))) + (("'yt-dlp'") + (format #f "'~a'" + (search-input-file inputs "bin/yt-dlp")))) (substitute* '("bin/gtk2-youtube-viewer" "bin/gtk3-youtube-viewer") (("'xdg-open'") @@ -5100,44 +5026,6 @@ specifications.") Content System specification.") (license license:lgpl2.1+))) -(define-public mps-youtube - (package - (name "mps-youtube") - (version "0.2.8") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/mps-youtube/mps-youtube") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1w1jhw9rg3dx7vp97cwrk5fymipkcy2wrbl1jaa38ivcjhqg596y")))) - (build-system python-build-system) - (arguments - ;; Tests need to be disabled until #556 upstream is fixed. It reads as if the - ;; test suite results differ depending on the country and also introduce - ;; non-determinism in the tests. - ;; https://github.com/mps-youtube/mps-youtube/issues/556 - '(#:tests? #f - #:phases (modify-phases %standard-phases - ;; Loading this as a library will create cache directories, - ;; etc; which fails in the build container. - (delete 'sanity-check)))) - (propagated-inputs - (list python-pafy python-pygobject)) ; For mpris2 support - (home-page "https://github.com/mps-youtube/mps-youtube") - (synopsis "Terminal based YouTube player and downloader") - (description - "@code{mps-youtube} is based on mps, a terminal based program to -search, stream and download music. This implementation uses YouTube as -a source of content and can play and download video as well as audio. -It can use either mpv or mplayer for playback, and for conversion of -formats ffmpeg or libav is used. Users should install one of the -supported players in addition to this package.") - (license license:gpl3+))) - (define-public handbrake (package (name "handbrake") @@ -6759,6 +6647,92 @@ and press \"Record\". Peek is optimized for generating animated GIFs, but you can also directly record to WebM or MP4 if you prefer.") (license license:gpl3+))) +(define-public python-yewtube + (package + (name "python-yewtube") + (version "2.12.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mps-youtube/yewtube") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1bvn1zcycsq2gnvs10hn82ic8zp9q4s9gmmi6flahg3wavpnspzr")))) + (build-system pyproject-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'relax-requirements + (lambda _ + (substitute* "mps_youtube/__init__.py" + (("from pip\\._vendor import pkg_resources.*") + "") + (("__version__ =.*") + (format #f "__version__ = ~s~%" + #$(package-version this-package)))) + (substitute* "requirements.txt" + (("httpx.*") + "httpx\n")))) + (add-before 'check 'configure-tests + (lambda _ + (setenv "HOME" (getcwd)))) + ;; XXX: This can happen when some side-effects happens at + ;; initialization. See https://codeberg.org/guix/guix/issues/1089 + (add-before 'sanity-check 'patch-script + (lambda _ + (substitute* (string-append #$output "/bin/.yt-real") + (("import mps_youtube as mod") + "from mps_youtube.main import main") + (("sys\\.exit \\(mod\\.main\\.main \\(\\)\\)") + "sys.exit(main())")))) + (replace 'sanity-check + (lambda _ + (invoke (string-append #$output "/bin/yt") "-h")))))) + (native-inputs + (list python-dbus + python-pygobject + python-pytest + python-setuptools-next + python-wheel)) + (propagated-inputs + (list python-pylast + python-pyperclip + python-requests + python-youtube-search + yt-dlp)) + (home-page "https://github.com/mps-youtube/yewtube") + (synopsis "Terminal based YouTube player and downloader") + (description + "This package provides a terminal based @code{YouTube} player and +downloader. It does not require a Youtube API key.") + (license license:gpl3+))) + +(define-deprecated/public-alias mps-youtube python-yewtube) + +(define-public python-youtube-search + (package + (name "python-youtube-search") + (version "1.6.6") + (source + (origin + (method url-fetch) + (uri (pypi-uri "youtube-search-python" version)) + (sha256 + (base32 "1xgw6nqypnj3ymjkfyzc1vvwar73qvp08prnp15ypmzcd7bx2s25")))) + (build-system pyproject-build-system) + (propagated-inputs (list python-httpx)) + (native-inputs (list python-setuptools python-wheel)) + (home-page "https://github.com/alexmercerind/youtube-search-python") + (synopsis "Search for YouTube videos, channels & playlists") + (description + "This package provides tools to search for @code{YouTube} videos, +channels and playlists; as well as getting video metadata from links. This +package does not rely on the @code{YouTube} Data API v3.") + (license license:expat))) + (define-public wf-recorder (package (name "wf-recorder") diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index e511423525..8c4204ce8f 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -798,6 +798,12 @@ others.") (arguments `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'use-poetry-core + (lambda _ + ;; Patch to use the core poetry API. + (substitute* "pyproject.toml" + (("poetry.masonry.api") + "poetry.core.masonry.api")))) (add-after 'unpack 'patch-openconnect (lambda* (#:key inputs #:allow-other-keys) (substitute* "openconnect_sso/app.py" @@ -807,7 +813,6 @@ others.") "\"")))))))) (inputs (list openconnect - poetry python-attrs python-colorama python-keyring @@ -822,7 +827,8 @@ others.") python-toml qtwebengine-5)) (native-inputs - (list python-pytest + (list python-poetry-core + python-pytest python-pytest-asyncio python-pytest-httpserver)) (home-page "https://github.com/vlaci/openconnect-sso") @@ -1050,35 +1056,31 @@ DNS domain name queries.") (version "1.5.1") (source (origin - (method url-fetch) - (uri (pypi-uri name version)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/albertodonato/sshoot") + (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 - "05i54nga4vy660yy9yf6dl376yj0jc51303yr295qk3k9w0k96yd")))) - (build-system python-build-system) + (base32 "0725p0l2gx881hsjw3nj44n4gm1kv9hirv5cd4d9yr1ba87whp3q")))) + (build-system pyproject-build-system) (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-paths - (lambda _ - (substitute* "sshoot/tests/test_manager.py" - (("/bin/sh") (which "sh"))))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "pytest" "-vv" "--pyargs" "sshoot"))))))) - (inputs - (list python-argcomplete - python-prettytable - python-pyyaml - python-pyxdg - python-toolrack)) - ;; For tests only. - (native-inputs - (list python-pytest python-pytest-mock)) + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "sshoot/tests/test_manager.py" + (("/bin/sh") + (search-input-file inputs "bin/sh")))))))) + (inputs (list python-argcomplete python-prettytable python-pyyaml + python-pyxdg python-toolrack)) + (native-inputs (list python-pytest python-pytest-mock python-setuptools + python-wheel)) (home-page "https://github.com/albertodonato/sshoot") (synopsis "VPN session manager (sshuttle)") - (description "sshoot provides a command-line interface to manage multiple + (description + "sshoot provides a command-line interface to manage multiple @command{sshuttle} virtual private networks. It supports flexible profiles with configuration options for most of @command{sshuttle}’s features.") (license license:gpl3+))) @@ -1297,22 +1299,27 @@ L2TP allows you to tunnel PPP over UDP.") (version "0.16.1") (source (origin - (method url-fetch) - (uri (pypi-uri "vpn-slice" version)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/dlenski/vpn-slice") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 "1anfx4hn2ggm6sbwqmqx68s3l2rjcy4z4l038xqb440jnk8jvl18")))) - (build-system python-build-system) + (base32 "16shhgypw78d9982r7v293h8fbmpl4wvjb6076w66baincn599ag")))) + (build-system pyproject-build-system) (arguments (list + #:tests? #f ; No tests. #:phases - '(modify-phases %standard-phases - (add-after 'unpack 'patch-FHS-file-names - (lambda _ - (substitute* "vpn_slice/linux.py" - (("/sbin/iptables") - (which "iptables")) - (("/sbin/ip") - (which "ip")))))))) + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-FHS-file-names + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "vpn_slice/linux.py" + (("/sbin/iptables") + (search-input-file inputs "/sbin/iptables")) + (("/sbin/ip") + (search-input-file inputs "/sbin/ip")))))))) + (native-inputs (list python-setuptools python-wheel)) (inputs (list python-dnspython python-setproctitle iproute iptables)) (home-page "https://github.com/dlenski/vpn-slice") (synopsis "Split tunneling replacement for vpnc-script") diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index fd57213a12..de59e8dbb8 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -1141,7 +1141,7 @@ similar to live activity monitoring provided with NGINX plus.") (define-public lighttpd (package (name "lighttpd") - (version "1.4.79") + (version "1.4.80") (source (origin (method url-fetch) (uri (string-append "https://download.lighttpd.net/lighttpd/" @@ -1149,7 +1149,7 @@ similar to live activity monitoring provided with NGINX plus.") "lighttpd-" version ".tar.xz")) (sha256 (base32 - "1gc4c352jlqqgxyrgz2f5s7li1vxpd15ykza3wnp125dncjsca9v")))) + "1wsvy92dsyhlq99b7rvlj5n72m7rqggr27jxajnnpvmjx1qhypyc")))) (build-system gnu-build-system) (arguments (list #:configure-flags |