me
/
guix
Archived
1
0
Fork 0

Merge branch 'staging'

master
Marius Bakke 2020-11-28 22:39:12 +01:00
commit 4dadb49779
No known key found for this signature in database
GPG Key ID: A2A06DF2A33A54FA
92 changed files with 6441 additions and 7313 deletions

View File

@ -68,7 +68,7 @@ Copyright @copyright{} 2019 Ivan Petkov@*
Copyright @copyright{} 2019 Jakob L. Kreuze@*
Copyright @copyright{} 2019 Kyle Andrews@*
Copyright @copyright{} 2019 Alex Griffin@*
Copyright @copyright{} 2019 Guillaume Le Vaillant@*
Copyright @copyright{} 2019, 2020 Guillaume Le Vaillant@*
Copyright @copyright{} 2020 Leo Prikler@*
Copyright @copyright{} 2019, 2020 Simon Tournier@*
Copyright @copyright{} 2020 Wiktor Żelazny@*
@ -7261,30 +7261,27 @@ Additionally, the corresponding source package should be labeled using
the same convention as python packages (see @ref{Python Modules}), using
the @code{cl-} prefix.
For binary packages, each system should be defined as a Guix package.
If one package @code{origin} contains several systems, package variants
can be created in order to build all the systems. Source packages,
which use @code{asdf-build-system/source}, may contain several systems.
In order to create executable programs and images, the build-side
procedures @code{build-program} and @code{build-image} can be used.
They should be called in a build phase after the @code{create-symlinks}
phase, so that the system which was just built can be used within the
resulting image. @code{build-program} requires a list of Common Lisp
expressions to be passed as the @code{#:entry-program} argument.
They should be called in a build phase after the
@code{create-asdf-configuration} phase, so that the system which was
just built can be used within the resulting image. @code{build-program}
requires a list of Common Lisp expressions to be passed as the
@code{#:entry-program} argument.
If the system is not defined within its own @file{.asd} file of the same
name, then the @code{#:asd-file} parameter should be used to specify
which file the system is defined in. Furthermore, if the package
defines a system for its tests in a separate file, it will be loaded
before the tests are run if it is specified by the
By default, all the @file{.asd} files present in the sources are read to
find system definitions. The @code{#:asd-files} parameter can be used
to specify the list of @file{.asd} files to read. Furthermore, if the
package defines a system for its tests in a separate file, it will be
loaded before the tests are run if it is specified by the
@code{#:test-asd-file} parameter. If it is not set, the files
@code{<system>-tests.asd}, @code{<system>-test.asd}, @code{tests.asd},
and @code{test.asd} will be tried if they exist.
If for some reason the package must be named in a different way than the
naming conventions suggest, the @code{#:asd-system-name} parameter can
be used to specify the name of the system.
naming conventions suggest, or if several systems must be compiled, the
@code{#:asd-systems} parameter can be used to specify the list of system
names.
@end defvr

View File

@ -913,7 +913,6 @@ dist_patch_DATA = \
%D%/packages/patches/dbus-c++-gcc-compat.patch \
%D%/packages/patches/dbus-c++-threading-mutex.patch \
%D%/packages/patches/dbxfs-remove-sentry-sdk.patch \
%D%/packages/patches/dconf-meson-0.52.patch \
%D%/packages/patches/debops-constants-for-external-program-names.patch \
%D%/packages/patches/debops-debops-defaults-fall-back-to-less.patch \
%D%/packages/patches/dee-vapi.patch \
@ -1040,6 +1039,7 @@ dist_patch_DATA = \
%D%/packages/patches/gcc-8-strmov-store-file-names.patch \
%D%/packages/patches/gcc-9-asan-fix-limits-include.patch \
%D%/packages/patches/gcc-9-strmov-store-file-names.patch \
%D%/packages/patches/gdb-hurd.patch \
%D%/packages/patches/gd-fix-tests-on-i686.patch \
%D%/packages/patches/gd-brect-bounds.patch \
%D%/packages/patches/gdm-default-session.patch \
@ -1110,7 +1110,6 @@ dist_patch_DATA = \
%D%/packages/patches/gpsbabel-qstring.patch \
%D%/packages/patches/grantlee-merge-theme-dirs.patch \
%D%/packages/patches/grep-timing-sensitive-test.patch \
%D%/packages/patches/grim-revert-output-rotation.patch \
%D%/packages/patches/grocsvs-dont-use-admiral.patch \
%D%/packages/patches/gromacs-tinyxml2.patch \
%D%/packages/patches/groovy-add-exceptionutilsgenerator.patch \
@ -1167,8 +1166,8 @@ dist_patch_DATA = \
%D%/packages/patches/icecat-use-older-reveal-hidden-html.patch \
%D%/packages/patches/icecat-use-system-graphite2+harfbuzz.patch \
%D%/packages/patches/icecat-use-system-media-libs.patch \
%D%/packages/patches/icedtea-6-hotspot-gcc-segfault-workaround.patch \
%D%/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch \
%D%/packages/patches/icedtea-6-extend-hotspot-aarch64-support.patch \
%D%/packages/patches/icedtea-7-hotspot-aarch64-use-c++98.patch \
%D%/packages/patches/icu4c-CVE-2020-10531.patch \
%D%/packages/patches/id3lib-CVE-2007-4460.patch \
%D%/packages/patches/id3lib-UTF16-writing-bug.patch \
@ -1184,10 +1183,14 @@ dist_patch_DATA = \
%D%/packages/patches/json-c-0.13-CVE-2020-12762.patch \
%D%/packages/patches/json-c-0.12-CVE-2020-12762.patch \
%D%/packages/patches/jacal-fix-texinfo.patch \
%D%/packages/patches/jamvm-1.5.1-aarch64-support.patch \
%D%/packages/patches/jamvm-1.5.1-armv7-support.patch \
%D%/packages/patches/jamvm-2.0.0-aarch64-support.patch \
%D%/packages/patches/jamvm-2.0.0-disable-branch-patching.patch \
%D%/packages/patches/jamvm-arm.patch \
%D%/packages/patches/jamvm-2.0.0-opcode-guard.patch \
%D%/packages/patches/java-antlr4-Add-standalone-generator.patch \
%D%/packages/patches/java-antlr4-fix-code-too-large.java \
%D%/packages/patches/java-tunnelvisionlabs-antlr-code-too-large.patch \
%D%/packages/patches/java-apache-ivy-port-to-latest-bouncycastle.patch \
%D%/packages/patches/java-commons-collections-fix-java8.patch \
%D%/packages/patches/java-jeromq-fix-tests.patch \
@ -1252,7 +1255,7 @@ dist_patch_DATA = \
%D%/packages/patches/libbonobo-activation-test-race.patch \
%D%/packages/patches/libcanberra-sound-theme-freedesktop.patch \
%D%/packages/patches/libcanberra-wayland-crash.patch \
%D%/packages/patches/libdrm-realpath-virtio.patch \
%D%/packages/patches/libcyaml-libyaml-compat.patch \
%D%/packages/patches/libgeotiff-adapt-test-script-for-proj-6.2.patch \
%D%/packages/patches/libgit2-mtime-0.patch \
%D%/packages/patches/libgnome-encoding.patch \
@ -1276,10 +1279,6 @@ dist_patch_DATA = \
%D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch \
%D%/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch \
%D%/packages/patches/libquicktime-ffmpeg.patch \
%D%/packages/patches/libsndfile-armhf-type-checks.patch \
%D%/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch \
%D%/packages/patches/libsndfile-CVE-2017-8362.patch \
%D%/packages/patches/libsndfile-CVE-2017-12562.patch \
%D%/packages/patches/libtar-CVE-2013-4420.patch \
%D%/packages/patches/libtgvoip-disable-sse2.patch \
%D%/packages/patches/libtgvoip-disable-webrtc.patch \
@ -1327,7 +1326,6 @@ dist_patch_DATA = \
%D%/packages/patches/lvm2-static-link.patch \
%D%/packages/patches/mailutils-fix-uninitialized-variable.patch \
%D%/packages/patches/make-impure-dirs.patch \
%D%/packages/patches/mariadb-client-test-32bit.patch \
%D%/packages/patches/mars-install.patch \
%D%/packages/patches/mars-sfml-2.3.patch \
%D%/packages/patches/maxima-defsystem-mkdir.patch \
@ -1389,7 +1387,6 @@ dist_patch_DATA = \
%D%/packages/patches/nginx-socket-cloexec.patch \
%D%/packages/patches/nsis-env-passthru.patch \
%D%/packages/patches/nss-increase-test-timeout.patch \
%D%/packages/patches/nss-pkgconfig.patch \
%D%/packages/patches/nss-3.56-pkgconfig.patch \
%D%/packages/patches/ntfs-3g-CVE-2019-9755.patch \
%D%/packages/patches/nvi-assume-preserve-path.patch \
@ -1521,7 +1518,6 @@ dist_patch_DATA = \
%D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \
%D%/packages/patches/python-configobj-setuptools.patch \
%D%/packages/patches/python-flask-restful-werkzeug-compat.patch \
%D%/packages/patches/python-gst-fix-build-with-python-3.8.patch \
%D%/packages/patches/python-keras-integration-test.patch \
%D%/packages/patches/python-pep8-stdlib-tokenize-compat.patch \
%D%/packages/patches/python-pyfakefs-remove-bad-test.patch \
@ -1598,7 +1594,6 @@ dist_patch_DATA = \
%D%/packages/patches/rust-openssl-sys-no-vendor.patch \
%D%/packages/patches/rxvt-unicode-escape-sequences.patch \
%D%/packages/patches/sbcl-geco-fix-organism-class.patch \
%D%/packages/patches/sbcl-graph-asdf-definitions.patch \
%D%/packages/patches/scalapack-blacs-mpi-deprecations.patch \
%D%/packages/patches/scheme48-tests.patch \
%D%/packages/patches/scotch-build-parallelism.patch \

View File

@ -74,7 +74,7 @@
("expat" ,expat)
("gdbm" ,gdbm)
("glib" ,glib)
("libcap" ,libcap) ;to enable chroot support in avahi-daemon
("libcap" ,libcap-2.31) ;to enable chroot support in avahi-daemon
("libdaemon" ,libdaemon)
("libevent" ,libevent)))
(native-inputs

View File

@ -1103,7 +1103,7 @@ interactive mode.")
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("check" ,check)
("check" ,check-0.14)
("pkg-config" ,pkg-config)))
(home-page "https://burp.grke.org")
(synopsis "Differential backup and restore")

View File

@ -324,7 +324,7 @@ used to apply commands with arbitrarily long arguments.")
,@(if (and (not (%current-target-system))
(member (%current-system)
(package-supported-systems libcap)))
`(("libcap" ,libcap)) ;capability support in 'ls', etc.
`(("libcap" ,libcap-2.31)) ;capability support in 'ls', etc.
'())))
(native-inputs
;; Perl is needed to run tests in native builds, and to run the bundled
@ -1229,7 +1229,7 @@ command.")
(define-public tzdata
(package
(name "tzdata")
(version "2020a")
(version "2020d")
(source (origin
(method url-fetch)
(uri (string-append
@ -1237,10 +1237,10 @@ command.")
version ".tar.gz"))
(sha256
(base32
"18lrp0zh8m931jjlrv8lvjas4ka5dfkzdbwnbw5lwd2dlbn62wal"))))
"1wxskk9mh1x2073n99qna2mq58mgi648mbq5dxlqfcrnvrbkk0cd"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f
`(#:tests? #f
#:make-flags (let ((out (assoc-ref %outputs "out"))
(tmp (getenv "TMPDIR")))
(list (string-append "TOPDIR=" out)
@ -1252,6 +1252,16 @@ command.")
(string-append "LIBDIR=" tmp "/lib")
(string-append "MANDIR=" tmp "/man")
;; XXX: tzdata 2020b changed the on-disk format
;; of the time zone files from 'fat' to 'slim'.
;; Many packages (particularly evolution-data-server)
;; can not yet handle the latter, so we stick with
;; 'fat' for now.
,@(if (version>=? (package-version this-package)
"2020b")
'("CPPFLAGS=-DZIC_BLOAT_DEFAULT='\"fat\"'")
'())
"AWK=awk"
"CC=gcc"))
#:modules ((guix build utils)
@ -1287,7 +1297,7 @@ command.")
version ".tar.gz"))
(sha256
(base32
"0sfnlqw1p93r7klny69rwr94fh22mz632h52phgzfgg01q9gfakx"))))))
"1mgsckixmmk9qxzsflfxnp3999qi3ls72bgksclk01g852x51w3c"))))))
(home-page "https://www.iana.org/time-zones")
(synopsis "Database of current and historical time zones")
(description "The Time Zone Database (often called tz or zoneinfo)

View File

@ -11386,7 +11386,6 @@ models. TADbit is complemented by TADkit for visualizing 3D models.")
("tcsh" ,tcsh)
("perl" ,perl)
("libpng" ,libpng)
("mariadb" ,mariadb "lib")
("mariadb-dev" ,mariadb "dev")
("openssl" ,openssl-1.0)))
(home-page "https://genome.cse.ucsc.edu/index.html")
@ -15786,7 +15785,7 @@ than is possible with plain-text methods alone.")
(propagated-inputs
`(("libxml2" ,libxml2)))
(native-inputs
`(("check" ,check)
`(("check" ,check-0.14)
("swig" ,swig)))
(home-page "http://sbml.org/Software/libSBML")
(synopsis "Process SBML files and data streams")

View File

@ -38,6 +38,7 @@
#:use-module (gnu packages base)
#:use-module (gnu packages check)
#:use-module (gnu packages dav)
#:use-module (gnu packages docbook)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
@ -125,12 +126,20 @@ the <tz.h> library for handling time zones and leap seconds.")
(build-system cmake-build-system)
(arguments
'(#:tests? #f ; test suite appears broken
#:parallel-build? #f ;may cause GIR generation failure
#:configure-flags '("-DSHARED_ONLY=true"
;; required by evolution-data-server
"-DGOBJECT_INTROSPECTION=true"
"-DICAL_GLIB_VAPI=true")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-docbook-reference
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "doc/reference/libical-glib/libical-glib-docs.sgml.in"
(("http://www.oasis-open.org/docbook/xml/4.3/")
(string-append (assoc-ref inputs "docbook-xml")
"/xml/dtd/docbook/")))
#t))
(add-before 'configure 'patch-paths
(lambda* (#:key inputs #:allow-other-keys)
;; TODO: libical 3.1.0 supports using TZDIR instead of a hard-coded
@ -145,7 +154,8 @@ the <tz.h> library for handling time zones and leap seconds.")
(("\\\"/usr/share/lib/zoneinfo\\\"") "")))
#t)))))
(native-inputs
`(("gobject-introspection" ,gobject-introspection)
`(("docbook-xml" ,docbook-xml-4.3)
("gobject-introspection" ,gobject-introspection)
("gtk-doc" ,gtk-doc)
("perl" ,perl)
("pkg-config" ,pkg-config)

View File

@ -76,7 +76,7 @@
(define-public nss-certs
(package
(name "nss-certs")
(version "3.52.1")
(version "3.57")
(source (origin
(method url-fetch)
(uri (let ((version-with-underscores
@ -87,7 +87,7 @@
"nss-" version ".tar.gz")))
(sha256
(base32
"0y4jb9095f7bbgw7d7kvzm4c3g4p5i6y68fwhb8wlkpb7b1imj5w"))))
"10n3pncg6k81ikjz12la147rppwqn57bkrdl9gb820w6pq0nra2m"))))
(build-system gnu-build-system)
(outputs '("out"))
(native-inputs

View File

@ -135,7 +135,7 @@ like Jasmine or Mocha.")
(define-public check
(package
(name "check")
(version "0.14.0")
(version "0.15.2")
(source
(origin
(method url-fetch)
@ -143,7 +143,7 @@ like Jasmine or Mocha.")
version "/check-" version ".tar.gz"))
(sha256
(base32
"02zkfiyklckmivrfvdsrlzvzphkdsgjrz3igncw05dv5pshhq3xx"))))
"02m25y9m46pb6n46s51av62kpd936lkfv3b13kfpckgvmh5lxpm8"))))
(build-system gnu-build-system)
(home-page "https://libcheck.github.io/check/")
(synopsis "Unit test framework for C")
@ -156,7 +156,19 @@ faults or other signals. The output from unit tests can be used within
source code editors and IDEs.")
(license license:lgpl2.1+)))
;; Some packages require this older version. Removed once no longer needed.
;; Some packages require older versions. Removed once no longer needed.
(define-public check-0.14
(package
(inherit check)
(version "0.14.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/libcheck/check/releases"
"/download/" version "/check-" version ".tar.gz"))
(sha256
(base32
"02zkfiyklckmivrfvdsrlzvzphkdsgjrz3igncw05dv5pshhq3xx"))))))
(define-public check-0.12
(package
(inherit check)
@ -924,13 +936,13 @@ and many external plugins.")
(package
(inherit (strip-python2-variant python-pytest))
(name "python2-pytest")
(version "4.6.9")
(version "4.6.11")
(source (origin
(method url-fetch)
(uri (pypi-uri "pytest" version))
(sha256
(base32
"0fgkmpc31nzy97fxfrkqbzycigdwxwwmninx3qhkzp81migggs0r"))))
"0ls3pqr86xgif6bphsb6wrww9r2vc7p7a2naq8zcq8115wwq5yjh"))))
(build-system python-build-system)
(arguments
`(#:python ,python-2
@ -1562,14 +1574,14 @@ have failed since the last commit or what tests are currently failing.")))
(define-public python-coverage
(package
(name "python-coverage")
(version "5.0.3")
(version "5.2.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "coverage" version))
(sha256
(base32
"1vrg8panqw79pswg52ygbrff3wdnxarrd9qz6c64ah0c4h2cmbvp"))))
"16z8i18msgs8k74n73dj9x49wzkl0vk4vq8k5pl1bsj70y7b4k53"))))
(build-system python-build-system)
(arguments
;; FIXME: 95 tests failed, 539 passed, 6 skipped, 2 errors.

View File

@ -787,42 +787,43 @@ decompression of some loosely related file formats used by Microsoft.")
(define-public lz4
(package
(name "lz4")
(version "1.9.2")
(version "1.9.3")
(source
(origin
(method git-fetch)
(uri (git-reference (url "https://github.com/lz4/lz4")
(commit (string-append "v" version))))
(sha256
(base32
"0lpaypmk70ag2ks3kf2dl4ac3ba40n5kc1ainkp9wfjawz76mh61"))
(base32 "1w02kazh1fps3sji2sn89fz862j1199c5ajrqcgl1bnlxj09kcbz"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(outputs (list "out" "static"))
(native-inputs
`(;; For tests.
("python" ,python)
("valgrind" ,valgrind)))
(arguments
`(#:test-target "test"
;; TODO: Integrate in next rebuild cycle.
#:make-flags (list ,(if (%current-target-system)
(string-append "CC=" (cc-for-target))
"CC=gcc")
#:make-flags (list (string-append "CC=" ,(cc-for-target))
(string-append "prefix=" (assoc-ref %outputs "out")))
#:phases (modify-phases %standard-phases
(delete 'configure) ;no configure script
(add-before 'check 'disable-broken-test
(lambda _
;; XXX: test_install.sh fails when prefix is a subdirectory.
(substitute* "tests/Makefile"
(("^test: (.*) test-install" _ targets)
(string-append "test: " targets)))
#t))
(add-after 'install 'delete-static-library
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(delete-file (string-append out "/lib/liblz4.a"))
#t))))))
#:phases
(modify-phases %standard-phases
(delete 'configure) ; no configure script
(add-before 'check 'disable-broken-test
(lambda _
(substitute* "tests/Makefile"
;; This fails when $prefix is not a single top-level directory.
(("^test: (.*) test-install" _ targets)
(string-append "test: " targets)))
#t))
(add-after 'install 'move-static-library
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(static (assoc-ref outputs "static")))
(mkdir-p (string-append static "/lib"))
(rename-file (string-append out "/lib/liblz4.a")
(string-append static "/lib/liblz4.a"))
#t))))))
(home-page "https://www.lz4.org")
(synopsis "Compression algorithm focused on speed")
(description "LZ4 is a lossless compression algorithm, providing

View File

@ -3331,8 +3331,7 @@ dimensioned arrays.")
(properties `((upstream-name . "RMySQL")))
(build-system r-build-system)
(inputs
`(("mariadb" ,mariadb "lib")
("mariadb-dev" ,mariadb "dev")
`(("mariadb-dev" ,mariadb "dev")
("zlib" ,zlib)))
(propagated-inputs
`(("r-dbi" ,r-dbi)))

View File

@ -898,7 +898,7 @@ Language.")
(define-public mariadb
(package
(name "mariadb")
(version "10.1.45")
(version "10.5.6")
(source (origin
(method url-fetch)
(uri (string-append "https://downloads.mariadb.com/MariaDB"
@ -906,8 +906,7 @@ Language.")
version ".tar.gz"))
(sha256
(base32
"1mfs0x4c0z7d306n128dxdawk3llk25vxif5zwl20fv1z5qhz3wx"))
(patches (search-patches "mariadb-client-test-32bit.patch"))
"1i257h0zdypdfj5wkg6ck9pxlkph0jvjs92k22pjr6gnx5lxs1gz"))
(modules '((guix build utils)))
(snippet
'(begin
@ -925,8 +924,8 @@ Language.")
(for-each (lambda (file)
(unless (string-suffix? "CMakeLists.txt" file)
(delete-file file)))
(append (find-files "extra/yassl")
(find-files "pcre") (find-files "zlib")))
(append (find-files "extra/wolfssl")
(find-files "zlib")))
#t))))
(build-system cmake-build-system)
(outputs '("out" "lib" "dev"))
@ -980,29 +979,20 @@ Language.")
"-DINSTALL_SHAREDIR=share")
#:phases
(modify-phases %standard-phases
,@(if (string-prefix? "arm" (%current-system))
;; XXX: Because of the GCC 5 input, we need to hide GCC 7 from
;; CPLUS_INCLUDE_PATH so that its headers do not shadow GCC 5.
'((add-after 'set-paths 'hide-default-gcc
(lambda* (#:key inputs #:allow-other-keys)
(let ((gcc (assoc-ref inputs "gcc")))
(setenv "CPLUS_INCLUDE_PATH"
(string-join
(delete (string-append gcc "/include/c++")
(string-split (getenv "CPLUS_INCLUDE_PATH")
#\:))
":"))
#t))))
'())
(add-after 'unpack 'fix-pcre-detection
(add-after 'unpack 'adjust-output-references
(lambda _
;; The bundled PCRE in MariaDB has a patch that was upstreamed
;; in version 8.34. Unfortunately the upstream patch behaves
;; slightly differently and the build system fails to detect it.
;; See <https://bugs.exim.org/show_bug.cgi?id=2173>.
;; XXX: Consider patching PCRE instead.
(substitute* "cmake/pcre.cmake"
((" OR NOT PCRE_STACK_SIZE_OK") ""))
;; The build system invariably prepends $CMAKE_INSTALL_PREFIX
;; to other variables such as $INSTALL_INCLUDEDIR, which does
;; not work when the latter uses an absolute file name.
(substitute* "libmariadb/mariadb_config/mariadb_config.c.in"
(("@CMAKE_INSTALL_PREFIX@/@INSTALL_INCLUDEDIR@")
"@INSTALL_INCLUDEDIR@"))
(substitute* "libmariadb/mariadb_config/libmariadb.pc.in"
(("\\$\\{prefix\\}/@INSTALL_INCLUDEDIR@")
"@INSTALL_INCLUDEDIR@"))
(substitute* "include/CMakeLists.txt"
(("\\\\\\$\\{CMAKE_INSTALL_PREFIX\\}/\\$\\{INSTALL_INCLUDEDIR\\}")
"${INSTALL_INCLUDEDIR}"))
#t))
(add-after 'unpack 'adjust-tests
(lambda _
@ -1010,6 +1000,7 @@ Language.")
'(;; These fail because root@hostname == root@localhost in
;; the build environment, causing a user count mismatch.
;; See <https://jira.mariadb.org/browse/MDEV-7761>.
"funcs_1.is_columns_mysql"
"main.join_cache"
"main.explain_non_select"
"main.stat_tables"
@ -1018,20 +1009,7 @@ Language.")
;; This file contains a time bomb which makes it fail after
;; 2030-12-31. See <https://bugs.gnu.org/34351> for details.
"main.mysqldump"
;; FIXME: This test fails on i686:
;; -myisampack: Can't create/write to file (Errcode: 17 "File exists")
;; +myisampack: Can't create/write to file (Errcode: 17 "File exists)
;; When running "myisampack --join=foo/t3 foo/t1 foo/t2"
;; (all three tables must exist and be identical)
;; in a loop it produces the same error around 1/240 times.
;; montywi on #maria suggested removing the real_end check in
;; "strings/my_vsnprintf.c" on line 503, yet it still does not
;; reach the ending quote occasionally. Disable it for now.
"main.myisampack"
;; FIXME: This test fails on armhf-linux:
"mroonga/storage.index_read_multiple_double"))
"main.mysqldump"))
;; This file contains a list of known-flaky tests for this
;; release. Append our own items.
@ -1042,9 +1020,10 @@ Language.")
disabled-tests)
(close-port unstable-tests)
;; XXX: This test fails because it expects a latin1 charset and
;; XXX: These fail because they expect a latin1 charset and
;; collation. See <https://jira.mariadb.org/browse/MDEV-21264>.
(substitute* "mysql-test/r/gis_notembedded.result"
(substitute* '("mysql-test/main/gis_notembedded.result"
"mysql-test/main/system_mysql_db.result")
(("latin1_swedish_ci") "utf8_general_ci")
(("\tlatin1") "\tutf8"))
@ -1077,6 +1056,10 @@ Language.")
"--testcase-timeout=40"
"--suite-timeout=600"
"--parallel" (number->string (parallel-job-count))
;; Skip the replication tests: they are very I/O
;; intensive and frequently causes indeterministic
;; failures even on powerful hardware.
"--skip-rpl"
"--skip-test-list=unstable-tests"))
(format #t "test suite not run~%"))
#t))
@ -1087,56 +1070,57 @@ Language.")
(dev (assoc-ref outputs "dev"))
(lib (assoc-ref outputs "lib"))
(openssl (assoc-ref inputs "openssl")))
(substitute* (string-append out "/bin/mysql_install_db")
(substitute* (list (string-append out "/bin/mariadb-install-db")
(string-append out "/bin/mysql_install_db"))
(("basedir=\"\"")
(string-append "basedir=\"" out "\"")))
(string-append "basedir=\"" out "\""))
(("\\$basedir/share/mysql")
(string-append lib "/share/mysql")))
;; Remove unneeded files for testing.
(with-directory-excursion lib
(for-each delete-file-recursively
'("data" "mysql-test" "sql-bench"))
'("mysql-test" "sql-bench"))
;; And static libraries.
(for-each delete-file (find-files "lib" "\\.a$")))
(with-directory-excursion out
(delete-file "share/man/man1/mysql-test-run.pl.1")
;; Delete huge and unnecessary executables.
(for-each delete-file (find-files "bin" "(test|embedded)")))
(for-each delete-file (find-files "bin" "test$")))
(mkdir-p (string-append dev "/share"))
(mkdir-p (string-append dev "/bin"))
(rename-file (string-append lib "/bin/mariadbd")
(string-append out "/bin/mariadbd"))
(rename-file (string-append lib "/bin/mysqld")
(string-append out "/bin/mysqld"))
(rename-file (string-append lib "/share/pkgconfig")
(string-append dev "/share/pkgconfig"))
(mkdir-p (string-append dev "/lib"))
(rename-file (string-append lib "/lib/pkgconfig")
(string-append dev "/lib/pkgconfig"))
(rename-file (string-append lib "/bin/mariadb_config")
(string-append dev "/bin/mariadb_config"))
(rename-file (string-append out "/bin/mysql_config")
(string-append dev "/bin/mysql_config"))
(substitute* (string-append out "/bin/mysql_install_db")
(("\\$basedir/share/mysql")
(string-append lib "/share/mysql")))
;; Embed an absolute reference to OpenSSL in mysql_config
;; and the pkg-config file to avoid propagation.
;; XXX: how to do this for mariadb_config.c.in?
(substitute* (list (string-append dev "/bin/mysql_config")
(string-append dev "/share/pkgconfig/mariadb.pc"))
(string-append dev "/lib/pkgconfig/mariadb.pc"))
(("-lssl -lcrypto" all)
(string-append "-L" openssl "/lib " all)))
#t))))))
(native-inputs
`(("bison" ,bison)
;; XXX: On armhf, use GCC 5 to work around <https://bugs.gnu.org/37605>.
,@(if (string-prefix? "armhf" (%current-system))
`(("gcc@5" ,gcc-5))
'())
("perl" ,perl)))
(inputs
`(("jemalloc" ,jemalloc)
("libaio" ,libaio)
("libxml2" ,libxml2)
("ncurses" ,ncurses)
("openssl" ,openssl-1.0)
("openssl" ,openssl)
("pam" ,linux-pam)
("pcre" ,pcre)
("pcre2" ,pcre2)
("xz" ,xz)
("zlib" ,zlib)))
;; The test suite is very resource intensive and can take more than three
@ -1323,7 +1307,7 @@ organized in a hash table or B+ tree.")
(native-inputs `(("bc" ,bc)
("bash:include" ,bash "include")
("check" ,check)
("check" ,check-0.14)
("pkg-config" ,pkg-config)))
;; TODO: Add more optional inputs.
@ -2086,7 +2070,7 @@ valid SQL query.")
(define-public unixodbc
(package
(name "unixodbc")
(version "2.3.7")
(version "2.3.9")
(source (origin
(method url-fetch)
(uri
@ -2094,7 +2078,7 @@ valid SQL query.")
"ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-"
version ".tar.gz"))
(sha256
(base32 "0xry3sg497wly8f7715a7gwkn2k36bcap0mvzjw74jj53yx6kwa5"))))
(base32 "01xj65d02i3yjy7p9z08y9jakcs5szmz4rask868n7387nn3x0sj"))))
(build-system gnu-build-system)
(synopsis "Data source abstraction library")
(description "Unixodbc is a library providing an API with which to access
@ -3222,8 +3206,7 @@ files or Python scripts that define a list of migration steps.")
(build-system python-build-system)
(arguments '(#:tests? #f)) ;XXX: requires a live database
(inputs
`(("mysql" ,mariadb "lib")
("mysql-dev" ,mariadb "dev")))
`(("mysql-dev" ,mariadb "dev")))
(home-page "https://github.com/PyMySQL/mysqlclient-python")
(synopsis "MySQLdb is an interface to the popular MySQL database server for Python")
(description "MySQLdb is an interface to the popular MySQL database server
@ -3905,8 +3888,7 @@ The drivers officially supported by @code{libdbi} are:
("sqlite" ,sqlite)
("odbc" ,unixodbc)
("boost" ,boost)
("mariadb:dev" ,mariadb "dev")
("mariadb:lib" ,mariadb "lib")))
("mariadb:dev" ,mariadb "dev")))
(arguments
`(#:configure-flags
;; C++11 (-DSOCI_CXX11) is OFF by default. hyperledger-iroha needs it.

View File

@ -88,7 +88,7 @@ to take care of the OS-specific details when writing software that uses serial p
"/share/doc/libsigrokdecode"))
#t)))))
(native-inputs
`(("check" ,check)
`(("check" ,check-0.14)
("doxygen" ,doxygen)
("graphviz" ,graphviz)
("pkg-config" ,pkg-config)))

View File

@ -7,6 +7,7 @@
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Mark Wielaard <mark@klomp.org>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;;
;;; This file is part of GNU Guix.
;;;
@ -214,7 +215,7 @@ static analysis of the ELF binaries at hand.")
(define-public patchelf
(package
(name "patchelf")
(version "0.10")
(version "0.11")
(source (origin
(method url-fetch)
(uri (string-append
@ -223,7 +224,7 @@ static analysis of the ELF binaries at hand.")
"/patchelf-" version ".tar.bz2"))
(sha256
(base32
"1wzwvnlyf853hw9zgqq5522bvf8gqadk8icgqa41a5n7593csw7n"))))
"16ms3ijcihb88j3x6cl8cbvhia72afmfcphczb9cfwr0gbc22chx"))))
(build-system gnu-build-system)
(arguments
'(#:phases

View File

@ -79,7 +79,7 @@
"0svybbrvpf6q955y6fclxh3md64z0dgmh0x54x2j60503hhs071m"))))
(build-system meson-build-system)
(native-inputs
`(("check" ,check)
`(("check" ,check-0.14)
("gettext" ,gettext-minimal)
("pkg-config" ,pkg-config)))
(inputs
@ -470,7 +470,7 @@ Libraries stack (eo, evas, ecore, edje, emotion, ethumb and elementary).")
(lambda _ (setenv "HOME" "/tmp") #t)))
#:tests? #f)) ; tests require running dbus service
(native-inputs
`(("check" ,check)
`(("check" ,check-0.14)
("gettext" ,gettext-minimal)
("pkg-config" ,pkg-config)))
(inputs

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -97,14 +98,14 @@ by the different predictive algorithms.")
(define-public fcitx
(package
(name "fcitx")
(version "4.2.9.7")
(version "4.2.9.8")
(source (origin
(method url-fetch)
(uri (string-append "http://download.fcitx-im.org/fcitx/"
"fcitx-" version "_dict.tar.xz"))
(sha256
(base32
"13vg7yzfq0vj2r8zdf9ly3n243nwwggkhd5qv3z6yqdyj0m3ncyg"))))
"1iik80l7g8yk9iwsls6nl9whwgm0sj8i7s6s0bz4c5anl35iaddw"))))
(build-system cmake-build-system)
(outputs '("out" "gtk2" "gtk3"))
(arguments

View File

@ -373,14 +373,14 @@ freedesktop.org project.")
;; Updating this will rebuild over 700 packages through libinput-minimal.
(package
(name "libinput")
(version "1.15.5")
(version "1.16.2")
(source (origin
(method url-fetch)
(uri (string-append "https://freedesktop.org/software/libinput/"
"libinput-" version ".tar.xz"))
(sha256
(base32
"15ww4jl3lcxyi8m8idg8canklbqv729gnwpkz7r98c1w8a7zq3m9"))))
"1ab0q4iya07kvjd2g1vzamj9h57qldi15h3b8324vg3szr88qggw"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags '("-Ddocumentation=false")
@ -459,7 +459,7 @@ the freedesktop.org XDG Base Directory specification.")
(define-public elogind
(package
(name "elogind")
(version "243.4")
(version "243.7")
(source (origin
(method git-fetch)
(uri (git-reference
@ -468,7 +468,7 @@ the freedesktop.org XDG Base Directory specification.")
(file-name (git-file-name name version))
(sha256
(base32
"141frvgyk4fafcxsix94qc0d9ffrwksld8lqq4hq6xsgjlvv0mrs"))))
"1ccj3cbs9nsfg497wg195in1a7b9csm1jdm7z6q7vvx1ynpjxlxz"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags
@ -507,14 +507,6 @@ the freedesktop.org XDG Base Directory specification.")
(("join_paths\\(bindir, 'pkttyagent'\\)")
"'\"/run/current-system/profile/bin/pkttyagent\"'"))
#t))
(add-after 'unpack 'adjust-dbus-socket-address
(lambda _
;; Look for the D-Bus socket in /var/run instead of /run. Remove
;; this for versions > 243.4.
(substitute* "src/libelogind/sd-bus/bus-internal.h"
(("=/run/dbus/system_bus_socket")
"=/var/run/dbus/system_bus_socket"))
#t))
(add-after 'unpack 'adjust-tests
(lambda _
;; This test tries to copy some bytes from /usr/lib/os-release,
@ -825,14 +817,14 @@ Python.")
(define-public wayland
(package
(name "wayland")
(version "1.17.0")
(version "1.18.0")
(source (origin
(method url-fetch)
(uri (string-append "https://wayland.freedesktop.org/releases/"
name "-" version ".tar.xz"))
(sha256
(base32
"194ibzwpdcn6fvk4xngr4bf5axpciwg2bj82fdvz88kfmjw13akj"))))
"0k995rn96xkplrapz5k648j651wc43kq817xk1x8280h16gsfxa6"))))
(build-system gnu-build-system)
(arguments
`(#:parallel-tests? #f))
@ -861,7 +853,7 @@ applications, X servers (rootless or fullscreen) or other display servers.")
(define-public wayland-protocols
(package
(name "wayland-protocols")
(version "1.18")
(version "1.20")
(source (origin
(method url-fetch)
(uri (string-append
@ -869,7 +861,7 @@ applications, X servers (rootless or fullscreen) or other display servers.")
"wayland-protocols-" version ".tar.xz"))
(sha256
(base32
"1cvl93h83ymbfhb567jv5gzyq08181w7c46rsw4xqqqpcvkvfwrx"))))
"1rsdgvkkvxs3cjhpl6agvbkm53vm7k8rg127j9y2vn33m2hvg0lp"))))
(build-system gnu-build-system)
(inputs
`(("wayland" ,wayland)))

View File

@ -40,17 +40,18 @@
#:use-module (guix build-system gnu)
#:use-module (srfi srfi-1))
(define-public gdb-9.1
(define-public gdb-9.2
(package
(name "gdb")
(version "9.1")
(version "9.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gdb/gdb-"
version ".tar.xz"))
(patches (search-patches "gdb-hurd.patch"))
(sha256
(base32
"0dqp1p7w836iwijg1zb4a784n0j4pyjiw5v6h8fg5lpx6b40x7k9"))))
"0mf5fn8v937qwnal4ykn3ji1y2sxk0fa1yfqi679hxmpg6pdf31n"))))
(build-system gnu-build-system)
(arguments
@ -70,20 +71,14 @@
#t))
(add-after
'install 'remove-libs-already-in-binutils
(lambda* (#:key inputs outputs
;; TODO: Inline the native-inputs addition and
;; below usage in the next rebuild cycle.
,@(if (%current-target-system)
'(native-inputs)
'())
(lambda* (#:key native-inputs inputs outputs
#:allow-other-keys)
;; Like Binutils, GDB installs libbfd, libopcodes, etc.
;; However, this leads to collisions when both are
;; installed, and really is none of its business,
;; conceptually. So remove them.
(let* ((binutils ,@(if (%current-target-system)
'((assoc-ref native-inputs "binutils"))
'((assoc-ref inputs "binutils"))))
(let* ((binutils (or (assoc-ref inputs "binutils")
(assoc-ref native-inputs "binutils")))
(out (assoc-ref outputs "out"))
(files1 (with-directory-excursion binutils
(append (find-files "lib")
@ -137,7 +132,7 @@ written in C, C++, Ada, Objective-C, Pascal and more.")
;; <https://bugs.gnu.org/37810>.
(define-public gdb-8.2
(package
(inherit gdb-9.1)
(inherit gdb-9.2)
(version "8.2.1")
(source (origin
(method url-fetch)
@ -150,7 +145,7 @@ written in C, C++, Ada, Objective-C, Pascal and more.")
(define-public gdb
;; This is the fixed version that packages depend on. Update it rarely
;; enough to avoid massive rebuilds.
gdb-9.1)
gdb-9.2)
(define-public gdb-10
(package

View File

@ -233,14 +233,7 @@ also known as DXTn or DXTC) for Mesa.")
(define-public mesa
(package
(name "mesa")
(version "20.0.7")
;; Mesa 20.0.5 through 20.0.7 has problems with some graphic drivers, so
;; we need this newer version.
;; https://gitlab.freedesktop.org/mesa/mesa/-/issues/2882
;; https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4861
(replacement mesa-20.0.8)
(version "20.1.9")
(source
(origin
(method url-fetch)
@ -252,7 +245,7 @@ also known as DXTn or DXTC) for Mesa.")
version "/mesa-" version ".tar.xz")))
(sha256
(base32
"0y517qpdg6v6dsdgzb365p03m30511sbyh8pq0mcvhvjwy7javpy"))
"10kk8a8k7f4ip8yaiqdyrx162nbw8pw4h3b4hs4ha8mpd43wlldj"))
(patches
(search-patches "mesa-skip-disk-cache-test.patch"))))
(build-system meson-build-system)
@ -446,21 +439,6 @@ device drivers allows Mesa to be used in many different environments ranging
from software emulation to complete hardware acceleration for modern GPUs.")
(license license:x11)))
;; Replacement package to fix <https://gitlab.freedesktop.org/mesa/mesa/-/issues/2863>.
(define mesa-20.0.8
(package
(inherit mesa)
(version "20.0.8")
(source (origin
(inherit (package-source mesa))
(uri (list (string-append "https://mesa.freedesktop.org/archive/"
"mesa-" version ".tar.xz")
(string-append "ftp://ftp.freedesktop.org/pub/mesa/"
"mesa-" version ".tar.xz")))
(sha256
(base32
"0v0bfh3ay07s6msxmklvwfaif0q02kq2yhy65fdhys49vw8c1w3c"))))))
(define-public mesa-opencl
(package/inherit mesa
(name "mesa-opencl")

View File

@ -4438,17 +4438,16 @@ and RDP protocols.")
(define-public dconf
(package
(name "dconf")
(version "0.34.0")
(version "0.36.0")
(source (origin
(method url-fetch)
(uri (string-append
"mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(patches (search-patches "dconf-meson-0.52.patch"))
(sha256
(base32
"0lnsl85cp2vpzgp8pkf6l6yd2i3lp02jdvga1icfa78j2smr8fll"))))
"0bfs069pjv6lhp7xrzmrhz3876ay2ryqxzc6mlva1hhz34ibprlz"))))
(build-system meson-build-system)
(propagated-inputs
;; In Requires of dconf.pc.
@ -4467,10 +4466,17 @@ and RDP protocols.")
("pkg-config" ,pkg-config)
("vala" ,vala)))
(arguments
`(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
; or /etc/machine-id.
#:glib-or-gtk? #t
#:configure-flags '("-Denable-gtk-doc=true")))
`(#:glib-or-gtk? #t
#:configure-flags '("-Denable-gtk-doc=true")
#:phases (modify-phases %standard-phases
(add-after 'unpack 'increase-test-timeout
(lambda _
;; On big-memory systems, the engine test may take
;; much longer than the default of 30 seconds.
(substitute* "tests/meson.build"
(("test\\(unit_test\\[0\\], exe" all)
(string-append all ", timeout : 90")))
#t)))))
(home-page "https://developer.gnome.org/dconf/")
(synopsis "Low-level GNOME configuration system")
(description "Dconf is a low-level configuration system. Its main purpose
@ -6071,6 +6077,14 @@ discovery protocols.")
(substitute* "meson_post_install.py"
(("gtk-update-icon-cache") "true"))
#t))
(add-after 'unpack 'patch-failing-test
(lambda _
;; Work around test failure with GStreamer 1.18, because the test
;; relies on "und" not being mapped to a particular language:
;; https://gitlab.gnome.org/GNOME/totem/-/issues/450
(substitute* "src/test-totem.c"
(("und") "nosuchlang"))
#t))
(add-before
'install 'disable-cache-generation
(lambda _
@ -8100,7 +8114,7 @@ libxml2.")
("xmllint" ,libxml2)))
(inputs
`(("accountsservice" ,accountsservice)
("check" ,check) ; for testing
("check" ,check-0.14) ;for testing
("elogind" ,elogind)
("gnome-session" ,gnome-session)
("gnome-settings-daemon" ,gnome-settings-daemon)

View File

@ -168,7 +168,7 @@ generation.")
(define-public libassuan
(package
(name "libassuan")
(version "2.5.3")
(version "2.5.4")
(source
(origin
(method url-fetch)
@ -176,7 +176,7 @@ generation.")
version ".tar.bz2"))
(sha256
(base32
"00p7cpvzf0q3qwcgg51r9d0vbab4qga2xi8wpk2fgd36710b1g4i"))))
"1w7vnnycq4z7gf4bk38pi4hrb8qrrzgfpz3cd7frwldxnfbfx060"))))
(build-system gnu-build-system)
(propagated-inputs
`(("libgpg-error" ,libgpg-error)
@ -196,7 +196,7 @@ provided.")
(define-public libksba
(package
(name "libksba")
(version "1.3.5")
(version "1.5.0")
(source
(origin
(method url-fetch)
@ -205,7 +205,7 @@ provided.")
version ".tar.bz2"))
(sha256
(base32
"0h53q4sns1jz1pkmhcz5wp9qrfn9f5g9i3vjv6dafwzzlvblyi21"))))
"1fm0mf3wq9fmyi1rmc1vk2fafn6liiw2mgxml3g7ybbb44lz2jmf"))))
(build-system gnu-build-system)
(propagated-inputs
`(("libgpg-error" ,libgpg-error)))
@ -255,7 +255,7 @@ compatible to GNU Pth.")
(define-public gnupg
(package
(name "gnupg")
(version "2.2.23")
(version "2.2.25")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnupg/gnupg/gnupg-" version
@ -263,7 +263,7 @@ compatible to GNU Pth.")
(patches (search-patches "gnupg-default-pinentry.patch"))
(sha256
(base32
"0p6ss4f3vlkf91pmp27bmvfr5bdxxi0pb3dmxpqljglbsx4mxd8h"))))
"02n3klqbyzxyil13sg4wa0pcwr7vs7zjaslis926yjxg8yr0fly5"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))

View File

@ -1430,7 +1430,7 @@ standards of the IceCat project.")
("mesa" ,mesa)
("mit-krb5" ,mit-krb5)
("nspr" ,nspr)
("nss" ,nss-3.57)
("nss" ,nss)
("pango" ,pango)
("pixman" ,pixman)
("pulseaudio" ,pulseaudio)

View File

@ -20,6 +20,7 @@
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.com>
;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 raingloom <raingloom@riseup.net>
;;;
;;; This file is part of GNU Guix.
@ -149,6 +150,11 @@
("os/os_test.go" "(.+)(TestHostname.+)")
("time/format_test.go" "(.+)(TestParseInSydney.+)")
;; XXX: This test fails with tzdata 2020b and newer. Later
;; Go releases work fine, so just disable this for the
;; bootstrap Go.
("time/example_test.go" "(.+)(ExampleParseInLocation.+)")
("os/exec/exec_test.go" "(.+)(TestEcho.+)")
("os/exec/exec_test.go" "(.+)(TestCommandRelativeName.+)")
("os/exec/exec_test.go" "(.+)(TestCatStdin.+)")

File diff suppressed because it is too large Load Diff

View File

@ -34,6 +34,7 @@
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system trivial)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages audio)
@ -43,7 +44,6 @@
#:use-module (gnu packages cdrom)
#:use-module (gnu packages curl)
#:use-module (gnu packages compression)
#:use-module (gnu packages docbook)
#:use-module (gnu packages documentation)
#:use-module (gnu packages elf)
#:use-module (gnu packages flex)
@ -395,21 +395,73 @@ arrays of data.")
;; under the 3-clause BSD license, the rest is under 2-clause BSD license.
(license (list license:bsd-2 license:bsd-3))))
(define-public gstreamer-docs
(package
(name "gstreamer-docs")
(version "1.18.1")
(source (origin
(method url-fetch)
(uri (string-append
"https://gstreamer.freedesktop.org/src/gstreamer-docs"
"/gstreamer-docs-" version ".tar.xz"))
(sha256
(base32
"0npnsr1z4x951nw8bfcna1xlgi1p0b4qb291jj3pywlib2lscnnv"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder
(begin
(use-modules ((guix build utils)))
(let* ((source (assoc-ref %build-inputs "source"))
(tar (assoc-ref %build-inputs "tar"))
(xz (assoc-ref %build-inputs "xz"))
(out (assoc-ref %outputs "out"))
(books (string-append out "/share/devhelp/books")))
(setenv "PATH" (string-append xz "/bin"))
(mkdir-p books)
(with-directory-excursion books
(invoke (string-append tar "/bin/tar") "-xvf" source
"--strip-components=3"
(string-append ,name "-" ,version
"/devhelp/books/GStreamer")))
#t))))
(native-inputs
`(("tar" ,tar)
("xz" ,xz)))
(home-page "https://gstreamer.freedesktop.org/")
(synopsis "Developer documentation for GStreamer")
(description
"This package contains manuals, tutorials, and API reference for
the GStreamer multimedia framework.")
;; The documentation is covered by multiple licenses. Anything not
;; explicitly mentioned below is LGPL2.1+. See README.md for details.
(license (list
;; The tutorial code can be used with either of these licenses,
;; at the users option.
license:lgpl2.1+ license:bsd-2 license:expat
;; The developer manual and plugin writer guide carries
;; the Open Publication License v1.0.
(license:fsf-free "https://opencontent.org/openpub/"
"The Open Publication License v1.0")
;; Tutorials are covered by CC-BY-SA 4.0.
license:cc-by-sa4.0))))
;; Increase the test timeouts to accommodate slow or busy machines.
(define %common-gstreamer-phases
'((add-after 'unpack 'increase-test-timeout
(lambda _
(substitute* "tests/check/meson.build"
(("'CK_DEFAULT_TIMEOUT', '20'")
"'CK_DEFAULT_TIMEOUT', '60'")
(("timeout ?: 3 \\* 60")
"timeout: 9 * 60"))
(("'CK_DEFAULT_TIMEOUT', '[0-9]*'")
"'CK_DEFAULT_TIMEOUT', '600'")
(("timeout ?: .*\\)")
"timeout: 90 * 60)"))
#t))))
(define-public gstreamer
(package
(name "gstreamer")
(version "1.16.2")
(version "1.18.1")
(source
(origin
(method url-fetch)
@ -418,9 +470,8 @@ arrays of data.")
version ".tar.xz"))
(sha256
(base32
"0kp93622y29pck8asvil1fmzf55s2gx76wv475a6izc3cwj49w73"))))
"1fpcpsw740svvdxvvwn0hly5i72miizm4s0mbid10ji83zi8vpvr"))))
(build-system meson-build-system)
(outputs '("out" "doc"))
(arguments
`(#:phases
(modify-phases %standard-phases
@ -438,23 +489,13 @@ arrays of data.")
(("tcase_add_test \\(tc_chain, test_stress_reschedule.*")
""))
#t)))
'())
(add-after 'install 'move-docs
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(doc (assoc-ref outputs "doc")))
(mkdir-p (string-append doc "/share"))
(copy-recursively (string-append out "/share/gtk-doc")
(string-append doc "/share/gtk-doc"))
(delete-file-recursively (string-append out "/share/gtk-doc"))
#t))))))
'()))))
(propagated-inputs `(("glib" ,glib))) ; required by gstreamer-1.0.pc.
(native-inputs
`(("bison" ,bison)
("flex" ,flex)
("glib" ,glib "bin")
("gobject-introspection" ,gobject-introspection)
("gtk-doc" ,gtk-doc)
("perl" ,perl)
("pkg-config" ,pkg-config)
("python-wrapper" ,python-wrapper)))
@ -480,7 +521,7 @@ This package provides the core library and elements.")
(define-public gst-plugins-base
(package
(name "gst-plugins-base")
(version "1.16.2")
(version "1.18.1")
(source
(origin
(method url-fetch)
@ -488,7 +529,7 @@ This package provides the core library and elements.")
name "-" version ".tar.xz"))
(sha256
(base32
"0sl1hxlyq46r02k7z70v09vx1gi4rcypqmzra9jid93lzvi76gmi"))))
"0hf66sh8d4x2ksfnvaq2rqrrfq0vi0pv6wbh9i5jixrhvvbm99hv"))))
(build-system meson-build-system)
(propagated-inputs
`(("glib" ,glib) ;required by gstreamer-sdp-1.0.pc
@ -523,10 +564,7 @@ This package provides the core library and elements.")
("gobject-introspection" ,gobject-introspection)
("python-wrapper" ,python-wrapper)))
(arguments
`(#:configure-flags '("-Dgl=disabled"
;; FIXME: Documentation fails to build without
;; enabling GL above, which causes other problems.
"-Ddoc=false")
`(#:configure-flags '("-Dgl=disabled")
#:phases
(modify-phases %standard-phases
,@%common-gstreamer-phases
@ -545,7 +583,7 @@ for the GStreamer multimedia library.")
(define-public gst-plugins-good
(package
(name "gst-plugins-good")
(version "1.16.2")
(version "1.18.1")
(source
(origin
(method url-fetch)
@ -554,22 +592,22 @@ for the GStreamer multimedia library.")
"https://gstreamer.freedesktop.org/src/" name "/"
name "-" version ".tar.xz"))
(sha256
(base32 "068k3cbv1yf3gbllfdzqsg263kzwh21y8dpwr0wvgh15vapkpfs0"))))
(base32 "0v329xi4qhlfh9aksfyviryqk9lclm4wj1lxrjnbdv4haldfj472"))))
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-docbook-xml
(lambda* (#:key inputs #:allow-other-keys)
(with-directory-excursion "docs"
(substitute* "plugins/gst-plugins-good-plugins-docs.sgml"
(("http://www.oasis-open.org/docbook/xml/4.1.2/")
(string-append (assoc-ref inputs "docbook-xml")
"/xml/dtd/docbook/"))))
,@%common-gstreamer-phases
(add-after 'unpack 'fix-broken-test
(lambda _
;; Fix test failure on 32-bit. Remove for > 1.18.1.
;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/803
(substitute* "tests/check/elements/qtdemux.c"
(("10000000")
"G_GUINT64_CONSTANT (10000000)"))
#t))
(add-before
'check 'pre-check
(add-before 'check 'pre-check
(lambda _
;; Tests require a running X server.
(system "Xvfb :1 +extension GLX &")
@ -582,8 +620,7 @@ for the GStreamer multimedia library.")
(setenv "DBUS_FATAL_WARNINGS" "0")
#t)))))
(native-inputs
`(("docbook-xml" ,docbook-xml-4.1.2)
("gettext" ,gettext-minimal)
`(("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
("gobject-introspection" ,gobject-introspection)
("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
@ -644,14 +681,14 @@ model to base your own plug-in on, here it is.")
(define-public gst-plugins-bad
(package
(name "gst-plugins-bad")
(version "1.16.2")
(version "1.18.1")
(source (origin
(method url-fetch)
(uri (string-append "https://gstreamer.freedesktop.org/src/"
name "/" name "-" version ".tar.xz"))
(sha256
(base32
"0x0y0hm0ga3zqi5q4090hw5sjh59y1ry9ak16qsaascm72i7mjzi"))))
"1cn18cbqyysrxnrk5bpxdzd5xcws9g2kmm5rbv00cx6rhn69g5f1"))))
(build-system meson-build-system)
(arguments
`(#:phases
@ -668,21 +705,32 @@ model to base your own plug-in on, here it is.")
""))
#t)))
'())
(add-after 'unpack 'disable-failing-test
(lambda _
;; FIXME: Why is this failing.
(substitute* "tests/check/meson.build"
((".*elements/dash_mpd\\.c.*") "")
((".*elements/curlhttpsrc\\.c.*") "")
((".*elements/webrtcbin\\.c.*") ""))
#t)))))
(add-after 'unpack 'adjust-tests
(lambda* (#:key native-inputs inputs #:allow-other-keys)
(let ((gst-plugins-good (assoc-ref (or native-inputs inputs)
"gst-plugins-good")))
(substitute* "tests/check/meson.build"
;; Make gst-plugin-good available for tests, see
;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1426
(("'GST_PLUGIN_SYSTEM_PATH_1_0', ''")
(string-append "'GST_PLUGIN_SYSTEM_PATH_1_0', '"
gst-plugins-good "/lib/gstreamer-1.0'"))
;; FIXME: Why is this failing.
((".*elements/dash_mpd\\.c.*") "")
;; These tests are flaky and occasionally time out:
;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/932
((".*elements/curlhttpsrc\\.c.*") "")
;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1412
((".*elements/dtls\\.c.*") ""))
#t))))))
(propagated-inputs
`(("gst-plugins-base" ,gst-plugins-base)))
(native-inputs
`(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
("gobject-introspection" ,gobject-introspection)
;; TODO: Enable documentation for 1.18.
;;("gtk-doc" ,gtk-doc)
("gst-plugins-good" ,gst-plugins-good) ;for tests
("pkg-config" ,pkg-config)
("python" ,python)))
(inputs
@ -741,7 +789,7 @@ par compared to the rest.")
(define-public gst-plugins-ugly
(package
(name "gst-plugins-ugly")
(version "1.16.2")
(version "1.18.1")
(source
(origin
(method url-fetch)
@ -749,22 +797,14 @@ par compared to the rest.")
(string-append "https://gstreamer.freedesktop.org/src/"
name "/" name "-" version ".tar.xz"))
(sha256
(base32 "1jpvc32x6q01zjkfgh6gmq6aaikiyfwwnhj7bmvn52syhrdl202m"))))
(base32 "09gpbykjchw3lb51ipxj53fy238gr9mg9jybcg5135pb56w6rk8q"))))
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-docbook-xml
(lambda* (#:key inputs #:allow-other-keys)
(with-directory-excursion "docs"
(substitute* "plugins/gst-plugins-ugly-plugins-docs.sgml"
(("http://www.oasis-open.org/docbook/xml/4.1.2/")
(string-append (assoc-ref inputs "docbook-xml")
"/xml/dtd/docbook/"))))
#t))
(add-before
'check 'pre-check
,@%common-gstreamer-phases
(add-before 'check 'pre-check
(lambda _
;; Tests require a running X server.
(system "Xvfb :1 +extension GLX &")
@ -777,8 +817,7 @@ par compared to the rest.")
(setenv "DBUS_FATAL_WARNINGS" "0")
#t)))))
(native-inputs
`(("docbook-xml" ,docbook-xml-4.1.2)
("gettext" ,gettext-minimal)
`(("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
("gobject-introspection" ,gobject-introspection)
("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
@ -809,7 +848,7 @@ think twice about shipping them.")
(define-public gst-libav
(package
(name "gst-libav")
(version "1.16.2")
(version "1.18.1")
(source
(origin
(method url-fetch)
@ -818,28 +857,10 @@ think twice about shipping them.")
"https://gstreamer.freedesktop.org/src/" name "/"
name "-" version ".tar.xz"))
(sha256
(base32 "1wpfilc98bad9nsv3y1qapxp35dvn2mvwvrmqwrsj58cf09gc967"))
(modules '((guix build utils)))
(snippet
'(begin
;; Drop bundled ffmpeg.
(delete-file-recursively "gst-libs/ext/libav")
#t))))
(base32 "1n1fkkbxxsndblnbm0c2ziqp967hrz5gag6z36xbpvqk4sy1g9rr"))))
(build-system meson-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-docbook-xml
(lambda* (#:key inputs #:allow-other-keys)
(with-directory-excursion "docs"
(substitute* "plugins/gst-libav-plugins-docs.sgml"
(("http://www.oasis-open.org/docbook/xml/4.1.2/")
(string-append (assoc-ref inputs "docbook-xml")
"/xml/dtd/docbook/"))))
#t)))))
(native-inputs
`(("docbook-xml" ,docbook-xml-4.1.2)
("perl" ,perl)
`(("perl" ,perl)
("pkg-config" ,pkg-config)
("python" ,python-wrapper)
("ruby" ,ruby)))
@ -857,15 +878,15 @@ decoders, muxers, and demuxers provided by FFmpeg.")
(define-public gst-editing-services
(package
(name "gst-editing-services")
(version "1.16.2")
(version "1.18.1")
(source (origin
(method url-fetch)
(uri (string-append
"https://gstreamer.freedesktop.org/src/" name "/"
"gstreamer-editing-services-" version ".tar.xz"))
"gst-editing-services-" version ".tar.xz"))
(sha256
(base32
"05hcf3prna8ajjnqd53221gj9syarrrjbgvjcbhicv0c38csc1hf"))))
"09rr5a198p1r9wcbsjl01xg6idkfkgj5h9x7xxywarb5i7qv6g79"))))
(build-system meson-build-system)
(arguments
;; FIXME: 16/22 failing tests.
@ -892,7 +913,7 @@ non-linear editors.")
(define-public python-gst
(package
(name "python-gst")
(version "1.16.2")
(version "1.18.1")
(source (origin
(method url-fetch)
(uri (string-append
@ -900,9 +921,7 @@ non-linear editors.")
"gst-python-" version ".tar.xz"))
(sha256
(base32
"1a48ca66izmm8hnp608jv5isg3jxb0vlfmhns0bg9nbkilag7390"))
(patches
(search-patches "python-gst-fix-build-with-python-3.8.patch"))))
"1xpncj9xdn6ycnmrqnk6iaqaia658licyj08cxbjgcvs5x18kcj2"))))
(build-system meson-build-system)
(arguments
`(#:modules ((guix build meson-build-system)

View File

@ -830,7 +830,7 @@ application suites.")
(define-public gtk+
(package (inherit gtk+-2)
(name "gtk+")
(version "3.24.20")
(version "3.24.23")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@ -838,7 +838,7 @@ application suites.")
name "-" version ".tar.xz"))
(sha256
(base32
"1wqxkd3xnqwihcawncp9mkf9bv5a5fg5i4ahm6klpl782vvnkb1d"))
"1cg2vbwbcp7bc84ky0b69ipgdr9djhspnf5k8lajb8jphcj4v1jx"))
(patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch"
"gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch"))))
(propagated-inputs
@ -1619,7 +1619,7 @@ and routines to assist in editing internationalized text.")
(sha256
(base32 "08rpw9hkaprm4r853xy1d35i2af1pji8c3mzzl01mmwmyr9p0x8k"))))
(native-inputs `(("pkg-config" ,pkg-config)
("check" ,check)
("check" ,check-0.14)
("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
("xorg-server" ,xorg-server-for-tests)))

View File

@ -502,12 +502,9 @@ use HUnit assertions as QuickCheck properties.")
(base32
"0426j43af8v3qmdjjqxivazsvr3a2brac8yw09vpgpjkb2m0nmkv"))))
(build-system haskell-build-system)
(arguments
`(#:tests? #f)) ; FIXME: currently missing libraries used for tests.
(inputs
`(("ghc-random" ,ghc-random)
("ghc-splitmix" ,ghc-splitmix-bootstrap)
("ghc-tf-random" ,ghc-tf-random)))
("ghc-splitmix" ,ghc-splitmix-bootstrap)))
(home-page "https://github.com/nick8325/quickcheck")
(synopsis "Automatic testing of Haskell programs")
(description

View File

@ -79,6 +79,7 @@
#:use-module (gnu packages textutils)
#:use-module (gnu packages video)
#:use-module (gnu packages web)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module ((guix licenses) #:prefix license:)
@ -977,7 +978,7 @@ Metafile}, and @acronym{EMF+, Enhanced Metafile Plus} files.")
(define-public imlib2
(package
(name "imlib2")
(version "1.6.1")
(version "1.7.0")
(source (origin
(method url-fetch)
(uri (string-append
@ -985,8 +986,10 @@ Metafile}, and @acronym{EMF+, Enhanced Metafile Plus} files.")
"/imlib2-" version ".tar.bz2"))
(sha256
(base32
"0v8n3dswx7rxqfd0q03xwc7j2w1mv8lv18rdxv487a1xw5vklfad"))))
"0zdk4afdrrr1539f2q15zja19j4wwfmpswzws2ffgflcnhywlxhr"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags (list "--disable-static")))
(native-inputs
`(("pkgconfig" ,pkg-config)))
(inputs
@ -1906,8 +1909,7 @@ identical visual appearance.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0fjmjq0ws9rlblkcqxxw2lv7zvvyi618jqzlnz5z9zb477jwdfib"))
(patches (search-patches "grim-revert-output-rotation.patch"))))
(base32 "0fjmjq0ws9rlblkcqxxw2lv7zvvyi618jqzlnz5z9zb477jwdfib"))))
(build-system meson-build-system)
(native-inputs `(("pkg-config" ,pkg-config)
("scdoc" ,scdoc)))
@ -1924,7 +1926,7 @@ identical visual appearance.")
(define-public slurp
(package
(name "slurp")
(version "1.2.0")
(version "1.3.1")
(source
(origin
(method git-fetch)
@ -1933,18 +1935,20 @@ identical visual appearance.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0580m6kaiilgsrcj608r837r37sl6a25y7w21p7d6ij20fs3gvg1"))))
(base32 "1fby2v2ylcadgclds05wpkl9xi2r9dfz49dqyqpn20rjv1wnz3jv"))))
(build-system meson-build-system)
(native-inputs `(("pkg-config" ,pkg-config)))
(inputs `(("cairo" ,cairo)
("scdoc" ,scdoc)
("wayland" ,wayland)
("wayland-protocols" ,wayland-protocols)))
(native-inputs
`(("pkg-config" ,pkg-config)
("scdoc" ,scdoc)))
(inputs
`(("cairo" ,cairo)
("libxkbcommon" ,libxkbcommon)
("wayland" ,wayland)
("wayland-protocols" ,wayland-protocols)))
(home-page "https://github.com/emersion/slurp")
(synopsis "Select a region in a Wayland compositor")
(description "Slurp can select a region in a Wayland compositor and print it
to the standard output. It works well together with grim.")
;; MIT license.
(license license:expat)))
(define-public sng

View File

@ -7,6 +7,7 @@
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -48,14 +49,14 @@
;; The 7 release series has an incompatible API, while the 6 series is still
;; maintained. Don't update to 7 until we've made sure that the ImageMagick
;; users are ready for the 7-series API.
(version "6.9.11-11")
(version "6.9.11-34")
(source (origin
(method url-fetch)
(uri (string-append "mirror://imagemagick/ImageMagick-"
version ".tar.xz"))
(sha256
(base32
"1b67rrppvm04aqr76qky5h2a0j2d161h8kwa04fv611w5xwandr2"))))
"0acdjkkgjgpfcwj9h9zncywjjrrgb9sh0cvfn3jamjxh5byf638s"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch"
@ -124,6 +125,20 @@ transform images, adjust image colors, apply various special effects, or draw
text, lines, polygons, ellipses and Bézier curves.")
(license (license:fsf-free "http://www.imagemagick.org/script/license.php"))))
;; XXX: 'transcode' fails to detect the above ImageMagick, so we provide
;; this newer version.
(define-public imagemagick-next
(package
(inherit imagemagick)
(version "6.9.11-37")
(source (origin
(method url-fetch)
(uri (string-append "mirror://imagemagick/ImageMagick-"
version ".tar.xz"))
(sha256
(base32
"19r6fyhr1bycx0p6jz034mil1zh2k7hfr02is40h4g3wf9b9sdni"))))))
(define-public perl-image-magick
(package
(name "perl-image-magick")

View File

@ -22,6 +22,7 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (gnu packages gettext)
@ -31,21 +32,22 @@
(define-public iso-codes
(package
(name "iso-codes")
(version "3.77")
(version "4.5.0")
(home-page "https://salsa.debian.org/iso-codes-team/iso-codes")
(source (origin
(method url-fetch)
(uri (string-append
"https://pkg-isocodes.alioth.debian.org/downloads/iso-codes-"
version ".tar.xz"))
(method git-fetch)
(uri (git-reference
(url home-page)
(commit (string-append "iso-codes-" version))))
(file-name (git-file-name name version))
(sha256
(base32
"140dgygv22a49xb8x1941xr5ff12cphd9zzwxds98pgrqsj77k91"))))
"1q6x9c5x4x0x4q11iygldsmxdyzhz1mb4n8im76glwsgqsqyjs80"))))
(build-system gnu-build-system)
(inputs
`(("gettext" ,gettext-minimal)
("perl" ,perl)
("python" ,python-wrapper)))
(home-page "https://salsa.debian.org/iso-codes-team/iso-codes")
(synopsis "Various ISO standards")
(description
"This package provides lists of various ISO standards (e.g. country,

View File

@ -37,6 +37,7 @@
#:use-module (guix hg-download)
#:use-module (guix git-download)
#:use-module (guix svn-download)
#:use-module ((guix build utils) #:select (alist-replace))
#:use-module (guix utils)
#:use-module (guix build-system ant)
#:use-module (guix build-system gnu)
@ -290,7 +291,8 @@ language.")
(uri (string-append "mirror://sourceforge/jamvm/jamvm/"
"JamVM%20" version "/jamvm-"
version ".tar.gz"))
(patches (search-patches "jamvm-arm.patch"))
(patches (search-patches "jamvm-1.5.1-aarch64-support.patch"
"jamvm-1.5.1-armv7-support.patch"))
(sha256
(base32
"06lhi03l3b0h48pc7x58bk9my2nrcf1flpmglvys3wyad6yraf36"))
@ -306,13 +308,30 @@ language.")
(assoc-ref %build-inputs "classpath"))
"--disable-int-caching"
"--enable-runtime-reloc-checks"
"--enable-ffi")))
"--enable-ffi")
#:phases
,(if (string-prefix? "aarch64" (or (%current-system)
(%current-target-system)))
;; Makefiles and the configure script need to be regenerated to
;; incorporate support for AArch64.
'(modify-phases %standard-phases
(replace 'bootstrap
(lambda _ (invoke "autoreconf" "-vif"))))
'%standard-phases)))
(inputs
`(("classpath" ,classpath-bootstrap)
("jikes" ,jikes)
("libffi" ,libffi)
("zip" ,zip)
("zlib" ,zlib)))
(native-inputs
(if (string-prefix? "aarch64" (or (%current-system)
(%current-target-system)))
;; Additional packages needed for autoreconf.
`(("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool))
'()))
(home-page "http://jamvm.sourceforge.net/")
(synopsis "Small Java Virtual Machine")
(description "JamVM is a Java Virtual Machine conforming to the JVM
@ -697,7 +716,8 @@ machine.")))
(file-name (string-append "classpath-" version "-checkout"))
(sha256
(base32
"1v2rww76ww322mpg3s12a1kkc6gkp31bm9gcxs532h0wq285fiw4"))))
"1v2rww76ww322mpg3s12a1kkc6gkp31bm9gcxs532h0wq285fiw4"))
(patches (search-patches "classpath-aarch64-support.patch"))))
(arguments
`(#:make-flags
;; Ensure that the initial heap size is smaller than the maximum
@ -763,7 +783,9 @@ machine.")))
(base32
"1nl0zxz8y5x8gwsrm7n32bry4dx8x70p8z3s9jbdvs8avyb8whkn"))
(patches
(search-patches "jamvm-2.0.0-disable-branch-patching.patch"))
(search-patches "jamvm-2.0.0-disable-branch-patching.patch"
"jamvm-2.0.0-opcode-guard.patch"
"jamvm-2.0.0-aarch64-support.patch"))
(snippet
'(begin
;; Remove precompiled software.
@ -771,9 +793,10 @@ machine.")))
#t))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
(list (string-append "--with-classpath-install-dir="
(assoc-ref %build-inputs "classpath")))))
(substitute-keyword-arguments (package-arguments jamvm-1-bootstrap)
((#:configure-flags _)
'(list (string-append "--with-classpath-install-dir="
(assoc-ref %build-inputs "classpath"))))))
(inputs
`(("classpath" ,classpath-devel)
("ecj-javac-wrapper" ,ecj-javac-wrapper)
@ -804,6 +827,8 @@ machine.")))
(sha256
(base32
"0bg9sb4f7qbq77c0zf9m17p47ga0kf0r9622g9p12ysg26jd1ksg"))
(patches (search-patches
"icedtea-6-extend-hotspot-aarch64-support.patch"))
(modules '((guix build utils)))
(snippet
'(begin
@ -832,7 +857,8 @@ machine.")))
`("--enable-bootstrap"
"--enable-nss"
"--without-rhino"
"--with-parallel-jobs"
,(string-append "--with-parallel-jobs="
(number->string (parallel-job-count)))
"--disable-downloading"
"--disable-tests"
,(string-append "--with-ecj="
@ -865,11 +891,8 @@ machine.")))
(assoc-ref inputs
(string-append part "-src"))
part))
'("jdk" "corba"
'("jdk" "hotspot" "corba"
"langtools" "jaxp" "jaxws")))
(with-directory-excursion "openjdk"
(invoke "tar" "xvf" (assoc-ref inputs "hotspot-src"))
(rename-file "hg-checkout" "hotspot"))
(substitute* "patches/freetypeversion.patch"
(("REQUIRED_FREETYPE_VERSION = 2.2.1")
"REQUIRED_FREETYPE_VERSION = 2.10.1"))
@ -1095,9 +1118,7 @@ machine.")))
(changeset "jdk6-b41")))
(sha256
(base32
"07lc1z4k5dj9nrc1wvwmpvxr3xgxrdkdh53xb95skk5ij49yagfd"))
(patches
(search-patches "icedtea-6-hotspot-gcc-segfault-workaround.patch"))))
"07lc1z4k5dj9nrc1wvwmpvxr3xgxrdkdh53xb95skk5ij49yagfd"))))
("corba-src"
,(origin
(method hg-fetch)
@ -1208,6 +1229,8 @@ bootstrapping purposes.")
"--enable-bootstrap"
"--enable-nss"
"--without-rhino"
,(string-append "--with-parallel-jobs="
(number->string (parallel-job-count)))
"--disable-downloading"
"--disable-tests" ;they are run in the check phase instead
"--with-openjdk-src-dir=./openjdk.src"
@ -1636,7 +1659,7 @@ bootstrapping purposes.")
(base32
"17bdv39n4lh8l5737c96f3xgamx4y305m067p01cywgp7zaddqws"))
(patches (search-patches
"icedtea-7-hotspot-gcc-segfault-workaround.patch"))))
"icedtea-7-hotspot-aarch64-use-c++98.patch"))))
("ant" ,ant-bootstrap)
("attr" ,attr)
("coreutils" ,coreutils)
@ -1739,6 +1762,8 @@ IcedTea build harness.")
`( ;;"--disable-bootstrap"
"--enable-bootstrap"
"--enable-nss"
,(string-append "--with-parallel-jobs="
(number->string (parallel-job-count)))
"--disable-downloading"
"--disable-system-pcsc"
"--disable-system-sctp"
@ -1830,16 +1855,8 @@ new Date();"))
,(drop "langtools"
"15wizy123vhk40chl1b4p552jf2pw2hdww0myf11qab425axz4nw"))
("hotspot-drop"
,(origin
(method url-fetch)
(uri (string-append
"http://icedtea.classpath.org/download/drops"
"/icedtea8/" version "/hotspot.tar.xz"))
(sha256
(base32
"1ciz1w9j0kz7s1dxdhyqq71nla9icyz6qvn0b9z2zgkklqa98qmm"))
(patches (search-patches
"icedtea-7-hotspot-gcc-segfault-workaround.patch"))))
,(drop "hotspot"
"1ciz1w9j0kz7s1dxdhyqq71nla9icyz6qvn0b9z2zgkklqa98qmm"))
("nashorn-drop"
,(drop "nashorn"
"19pzl3ppaw8j6r5cnyp8qiw3hxijh3hdc46l39g5yfhdl4pr4hpa"))
@ -2409,14 +2426,14 @@ new Date();"))
(define-public ant/java8
(package (inherit ant-bootstrap)
(name "ant")
(version "1.10.1")
(version "1.10.8")
(source (origin
(method url-fetch)
(uri (string-append "mirror://apache/ant/source/apache-ant-"
version "-src.tar.gz"))
(sha256
(base32
"10p3dh77lkzzzcy32dk9azljixzadp46fggjfbvgkl8mmb8cxxv8"))
"066k2isig5xm70cihj9p73hkp5w7h5zbfqz5kxb6cwr9cb86xl2k"))
(modules '((guix build utils)))
(snippet
'(begin
@ -2444,7 +2461,7 @@ new Date();"))
;; "check" phase, because the dependency on "test-jar" would always
;; result in the tests to be run.
(substitute* "build.xml"
(("depends=\"jars,test-jar\"") "depends=\"jars\""))
(("depends=\"jars,test-jar") "depends=\"jars"))
(invoke "bash" "bootstrap.sh"
(string-append "-Ddist.dir="
(assoc-ref outputs "out")))))))))
@ -2457,14 +2474,14 @@ new Date();"))
;; requires Java 8.
(define-public ant
(package (inherit ant/java8)
(version "1.9.9")
(version "1.9.15")
(source (origin
(method url-fetch)
(uri (string-append "mirror://apache/ant/source/apache-ant-"
version "-src.tar.gz"))
(sha256
(base32
"1k28mka0m3isy9yr8gz84kz1f3f879rwaxrd44vdn9xbfwvwk86n"))))
"1xy30f1w5gaqk6g3f0vw7ygix4rb6032qkcw42y4z8wd9jihgygd"))))
(native-inputs
`(("jdk" ,icedtea-7 "jdk")
("zip" ,zip)
@ -5118,6 +5135,72 @@ including java-asm.")
((#:tests? _) #f)))
(native-inputs `())))
(define-public java-asm-8
(package
(inherit java-asm)
(version "8.0.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.ow2.org/asm/asm")
(commit (string-append
"ASM_" (string-join (string-split version #\.)
"_")))))
(file-name (git-file-name "java-asm" version))
(sha256
(base32
"1s6j27zc1i76gh891w2g48b1c3abp9w8zp5j54yb1vm5h8djkd69"))))
(arguments
`(#:jar-name "asm8.jar"
#:source-dir "asm/src/main/java"
#:test-dir "asm/src/test"
;; tests depend on junit5
#:tests? #f))
(propagated-inputs '())
(native-inputs '())))
(define-public java-asm-tree-8
(package
(inherit java-asm-8)
(name "java-asm-tree")
(arguments
`(#:jar-name "asm-tree.jar"
#:source-dir "asm-tree/src/main/java"
#:test-dir "asm-tree/src/test"
;; tests depend on junit5
#:tests? #f))
(inputs
`(("java-asm" ,java-asm-8)))))
(define-public java-asm-analysis-8
(package
(inherit java-asm-8)
(name "java-asm-analysis")
(arguments
`(#:jar-name "asm-analysis.jar"
#:source-dir "asm-analysis/src/main/java"
#:test-dir "asm-analysis/src/test"
;; tests depend on junit5
#:tests? #f))
(inputs
`(("java-asm" ,java-asm-8)
("java-asm-tree" ,java-asm-tree-8)))))
(define-public java-asm-util-8
(package
(inherit java-asm-8)
(name "java-asm-util")
(arguments
`(#:jar-name "asm-util8.jar"
#:source-dir "asm-util/src/main/java"
#:test-dir "asm-util/src/test"
;; tests depend on junit5
#:tests? #f))
(inputs
`(("java-asm" ,java-asm-8)
("java-asm-analysis" ,java-asm-analysis-8)
("java-asm-tree" ,java-asm-tree-8)))))
(define-public java-cglib
(package
(name "java-cglib")
@ -8372,6 +8455,184 @@ text or binary files. It's widely used to build languages, tools, and
frameworks. From a grammar, ANTLR generates a parser that can build and walk
parse trees.")))
(define-public java-antlr4-runtime-4.1
(package
(inherit java-antlr4-runtime)
(version "4.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/antlr/antlr4")
(commit version)))
(file-name (git-file-name "antlr4" version))
(sha256
(base32
"1i8hmx5an58cjyvhji0xgpvd6lq00z1k1mjys025q2wqc25wv4c1"))))
(arguments
(substitute-keyword-arguments (package-arguments java-antlr4-runtime)
((#:phases phases)
`(modify-phases ,phases
(add-before 'configure 'chmod
(lambda _
(chmod "build.xml" #o644)
#t))))))
(inputs
`(("java-treelayout" ,java-treelayout)))))
(define-public antlr4-4.1
(package
(inherit antlr4)
(version (package-version java-antlr4-runtime-4.1))
(source (package-source java-antlr4-runtime-4.1))
(arguments
(substitute-keyword-arguments (package-arguments antlr4)
((#:test-dir _)
"tool/test")
((#:test-exclude excludes)
`(list "**/TestParseErrors.java"
"**/TestTopologicalSort.java"
,@excludes))
((#:phases phases)
`(modify-phases ,phases
(delete 'generate-unicode)
(replace 'check
(lambda _
(invoke "ant" "check")
#t))
(add-before 'configure 'chmod
(lambda _
(chmod "build.xml" #o644)
#t))
(delete 'remove-graphemes)
(delete 'remove-unrelated-languages)
(delete 'generate-test-parsers)))))
(inputs
(alist-replace
"java-antlr4-runtime" (list java-antlr4-runtime-4.1)
(package-inputs antlr4)))))
(define-public java-tunnelvisionlabs-antlr4-runtime-annotations
(package
(inherit java-antlr4-runtime)
(name "java-tunnelvisionlabs-antlr4-runtime-annotations")
(version "4.7.4")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/tunnelvisionlabs/antlr4")
(commit (string-append version "-opt"))))
(file-name (git-file-name "java-tunnelvisionlabs-antlr4" version))
(sha256
(base32
"1mf2lvvsszpialsk23ma83pwp50nd32lrbjpa847zlm5gmranbr8"))
(patches
(search-patches "java-antlr4-Add-standalone-generator.patch"
"java-tunnelvisionlabs-antlr-code-too-large.patch"))))
(arguments
`(#:jar-name "java-antlr4-runtime-annotations.jar"
#:source-dir "runtime/JavaAnnotations/src"
#:tests? #f; no tests
#:phases
(modify-phases %standard-phases
(add-after 'build 'copy-resources
(lambda _
(copy-recursively "runtime/JavaAnnotations/resources"
"build/classes")
#t))
(add-after 'copy-resources 'rebuild-jar
(lambda _
(invoke "ant" "jar")
#t)))))
(inputs '())
(native-inputs '())
(synopsis "Annotations for ANTLR's runtime library")
(description "This package contains annotations used during the build of
the runtime library of ANTLR.")))
;; the runtime of this library requires a lexer that is generated by antlr4.
;; However, antlr4 itself requires this library at build and run-time. We
;; use antlr4@4.1, the closest version of antlr that doesn't need this
;; bootstrap process, to generate the lexer. The generated lexer is built
;; for the 4.1 runtime, which is slightly different from this runtime.
;; So, we build the runtime with antlr 4.1, with a broken xml lexer, that we
;; use to build antlr4. We then re-use this antlr4 to build the runtime, and
;; the proper, working, runtime to build antlr4 again.
(define java-tunnelvisionlabs-antlr4-runtime-bootstrap
(package
(inherit java-antlr4-runtime)
(name "java-tunnelvisionlabs-antlr4-runtime")
(version (package-version java-tunnelvisionlabs-antlr4-runtime-annotations))
(source (package-source java-tunnelvisionlabs-antlr4-runtime-annotations))
(arguments
`(#:jar-name "java-antlr4-runtime.jar"
#:source-dir "runtime/Java/src"
#:tests? #f; tests require antlr4, but antlr4 depends on this package
#:phases
(modify-phases %standard-phases
(add-before 'build 'generate-xpath-lexer
(lambda _
(invoke "antlr4" "-lib" "runtime/Java/src/org/antlr/v4/runtime/tree/xpath"
"-visitor" "-no-listener"
"-package" "org.antlr.v4.runtime.tree.xpath"
"runtime/Java/src/org/antlr/v4/runtime/tree/xpath/XPathLexer.g4")
;; Generated code is for an incompatible version of the runtime
(substitute* "runtime/Java/src/org/antlr/v4/runtime/tree/xpath/XPathLexer.java"
(("LexerATNSimulator\\(this,_ATN,_decisionToDFA,_sharedContextCache\\)")
"LexerATNSimulator(this,_ATN)"))
#t))
(add-before 'build 'copy-resources
(lambda _
(copy-recursively "runtime/Java/src/main/dot"
"build/classes")
#t)))))
(native-inputs
`(("antlr4" ,antlr4-4.1)
("java-tunnelvisionlabs-antlr4-runtime-annotations"
,java-tunnelvisionlabs-antlr4-runtime-annotations)))))
(define java-tunnelvisionlabs-antlr4-bootstrap
(package
(inherit antlr4)
(name "java-tunnelvisionlabs-antlr4")
(version (package-version java-tunnelvisionlabs-antlr4-runtime-annotations))
(source (package-source java-tunnelvisionlabs-antlr4-runtime-annotations))
(arguments
(substitute-keyword-arguments (package-arguments antlr4)
((#:test-dir _)
"tool/test:runtime-testsuite/src")
((#:phases phases)
`(modify-phases ,phases
(delete 'remove-unrelated-languages)
(delete 'remove-graphemes)
(delete 'generate-test-parsers)
(delete 'check)))))
(native-inputs '())
(inputs
`(("antlr3" ,antlr3)
("java-antlr4-runtime" ,java-tunnelvisionlabs-antlr4-runtime-bootstrap)
("java-tunnelvisionlabs-antlr4-runtime-annotations"
,java-tunnelvisionlabs-antlr4-runtime-annotations)
("java-icu4j" ,java-icu4j)
("java-jsonp-api" ,java-jsonp-api)
("java-stringtemplate" ,java-stringtemplate)
("java-treelayout" ,java-treelayout)))))
(define-public java-tunnelvisionlabs-antlr4-runtime
(package
(inherit java-tunnelvisionlabs-antlr4-runtime-bootstrap)
(native-inputs
(alist-replace
"antlr4" (list java-tunnelvisionlabs-antlr4-bootstrap)
(package-native-inputs java-tunnelvisionlabs-antlr4-runtime-bootstrap)))))
(define-public java-tunnelvisionlabs-antlr4
(package
(inherit java-tunnelvisionlabs-antlr4-bootstrap)
(inputs
(alist-replace
"java-antlr4-runtime" (list java-tunnelvisionlabs-antlr4-runtime)
(package-inputs java-tunnelvisionlabs-antlr4-bootstrap)))))
(define-public java-commons-cli-1.2
;; This is a bootstrap dependency for Maven2.
(package
@ -13183,3 +13444,98 @@ in Java, usable from Groovy, Kotlin, Scala, etc.")
used in JVM-based languages. They serve as an additional documentation and
can be interpreted by IDEs and static analysis tools to improve code analysis.")
(license license:expat)))
(define-public java-javaparser
(package
(name "java-javaparser")
(version "3.16.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/javaparser/javaparser")
(commit (string-append "javaparser-parent-" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1a4jk12ffa31fa0y8vda0739vpfj1206p0nha842b7bixbvwamv9"))
(modules '((guix build utils)))
(snippet
'(begin
(for-each delete-file
(find-files "." "\\.jar$"))
#t))))
(build-system ant-build-system)
(arguments
`(#:tests? #f; tests require jbehave and junit5
#:phases
(modify-phases %standard-phases
(add-before 'build 'fill-template
(lambda _
(with-directory-excursion "javaparser-core/src/main"
(copy-file "java-templates/com/github/javaparser/JavaParserBuild.java"
"java/com/github/javaparser/JavaParserBuild.java")
(substitute* "java/com/github/javaparser/JavaParserBuild.java"
(("\\$\\{project.version\\}") ,version)
(("\\$\\{project.name\\}") "javaparser")
(("\\$\\{project.build.finalName\\}") "javaparser")
(("\\$\\{maven.version\\}") "fake")
(("\\$\\{maven.build.version\\}") "fake")
(("\\$\\{build.timestamp\\}") "0")
(("\\$\\{java.vendor\\}") "Guix")
(("\\$\\{java.vendor.url\\}") "https://gnu.org/software/guix")
(("\\$\\{java.version\\}") "1.8")
(("\\$\\{os.arch\\}") "any")
(("\\$\\{os.name\\}") "GuixSD")
(("\\$\\{os.version\\}") "not available")))
#t))
(add-before 'build 'generate-javacc
(lambda _
(with-directory-excursion "javaparser-core/src/main/java"
(invoke "java" "javacc" "../javacc/java.jj"))
#t))
(add-before 'build 'copy-javacc-support
(lambda _
(with-directory-excursion "javaparser-core/src/main"
(copy-recursively "javacc-support" "java"))
#t))
(replace 'build
(lambda _
(define (build name)
(format #t "Building ~a~%" name)
(delete-file-recursively "build/classes")
(mkdir-p "build/classes")
(apply invoke "javac"
"-cp" (string-append (getenv "CLASSPATH") ":"
(string-join (find-files "build/jar" ".")
":"))
"-d" "build/classes"
(find-files (string-append name "/src/main/java")
".*.java"))
(invoke "jar" "-cf" (string-append "build/jar/" name ".jar")
"-C" "build/classes" "."))
(mkdir-p "build/classes")
(mkdir-p "build/test-classes")
(mkdir-p "build/jar")
(build "javaparser-core")
(build "javaparser-core-serialization")
(build "javaparser-core-generators")
(build "javaparser-core-metamodel-generator")
(build "javaparser-symbol-solver-core")
#t))
(replace 'install
(install-jars "build/jar")))))
(inputs
`(("java-guava" ,java-guava)
("java-jboss-javassist" ,java-jboss-javassist)
("java-jsonp-api" ,java-jsonp-api)))
(native-inputs
`(("javacc" ,javacc)))
(home-page "http://javaparser.org/")
(synopsis "Parser for Java")
(description
"This project contains a set of libraries implementing a Java 1.0 - Java
11 Parser with advanced analysis functionalities.")
(license (list
;; either lgpl or asl
license:lgpl3+
license:asl2.0))))

View File

@ -447,7 +447,7 @@ illustrate project schedules.")
("openexr" ,openexr)
("perl" ,perl)
("poppler-qt5" ,poppler-qt5)
("qtbase" ,qtbase-for-krita)
("qtbase" ,qtbase)
("qtdeclarative" ,qtdeclarative)
("qtmultimedia" ,qtmultimedia)
("qtsvg" ,qtsvg)

View File

@ -437,7 +437,7 @@ alternatives. In compilers, this can reduce the cascade of secondary errors.")
("libxrender" ,libxrender)
("libxslt" ,libxslt)
("lzo" ,lzo)
("mariadb" ,mariadb "lib")
("mariadb-dev" ,mariadb "lib")
("mariadb-dev" ,mariadb "dev")
("openssl" ,openssl)
("pcre" ,pcre)

View File

@ -157,6 +157,7 @@
#:use-module (guix store)
#:use-module (guix monads)
#:use-module (guix utils)
#:use-module (guix deprecation) ;for libcap/next
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-2)
#:use-module (srfi srfi-26)
@ -1302,7 +1303,7 @@ application by hooking GStreamer into the loopback device.")
(define-public linux-pam
(package
(name "linux-pam")
(version "1.3.1")
(version "1.4.0")
(source
(origin
(method url-fetch)
@ -1311,7 +1312,7 @@ application by hooking GStreamer into the loopback device.")
version "/Linux-PAM-" version ".tar.xz"))
(sha256
(base32
"1nyh9kdi3knhxcbv5v4snya0g3gff0m671lnvqcbygw3rm77mx7g"))
"0d6hvz6lpkac08hw5wnlhfdm0fhqd0n6jf6v7fz3jhg6a6694vfd"))
(patches (search-patches "linux-pam-no-setfsuid.patch"))))
(build-system gnu-build-system)
@ -2054,7 +2055,7 @@ intercept and print the system calls executed by the program.")
(define-public alsa-lib
(package
(name "alsa-lib")
(version "1.2.2")
(version "1.2.3.2")
(source (origin
(method url-fetch)
(uri (string-append
@ -2062,7 +2063,7 @@ intercept and print the system calls executed by the program.")
version ".tar.bz2"))
(sha256
(base32
"1v5kb8jyvrpkvvq7dq8hfbmcj68lml97i4s0prxpfx2mh3c57s6q"))))
"05dyk856ppvqymazyk1cmpln53g88cq1wjpnsygqrvnamyvwa7z8"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath="
@ -2078,14 +2079,14 @@ MIDI functionality to the Linux-based operating system.")
(define-public alsa-utils
(package
(name "alsa-utils")
(version "1.2.2")
(version "1.2.3")
(source (origin
(method url-fetch)
(uri (string-append "ftp://ftp.alsa-project.org/pub/utils/"
name "-" version ".tar.bz2"))
(sha256
(base32
"1wz460by17rmxrcydn583rd4lhj6wlvqs6x1j5pdzxn5g3app024"))))
"1ai1z4kf91b1m3qrpwqkc1af5vm2fkdkknqv95xdwf19q94aw6gz"))))
(build-system gnu-build-system)
(arguments
;; XXX: Disable man page creation until we have DocBook.
@ -2417,7 +2418,7 @@ network hardware types (plipconfig, slattach) and advanced aspects of IP
configuration (iptunnel, ipmaddr).")
(license license:gpl2+))))
(define-public libcap
(define-public libcap-2.31
(package
(name "libcap")
(version "2.31")
@ -2456,12 +2457,13 @@ Linux-based operating systems.")
;; License is BSD-3 or GPLv2, at the user's choice.
(license license:gpl2)))
;; libcap 2.31 causes problems for 'fakeroot', so provide this newer variant.
;; libcap 2.31 has problems with newer kernels, so provide this newer variant.
;; Keep the old libcap around to avoid rebuilding 'coreutils' and 'avahi'.
;; To be merged with libcap on the next rebuild cycle.
(define-public libcap/next
(define-public libcap
(package
(inherit libcap)
(version "2.34")
(inherit libcap-2.31)
(version "2.44")
(source (origin
(method url-fetch)
(uri (string-append
@ -2469,7 +2471,22 @@ Linux-based operating systems.")
"libcap2/libcap-" version ".tar.xz"))
(sha256
(base32
"048n1gy2p48vl9hkrr9wymfxxcpwj2aslz2bv79nhl4m2lhd9kdf"))))))
"1qf80lifygbnxwvqjf8jz5j24n6fqqx4ixnkbf76xs2vrmcq664j"))))
(arguments
(substitute-keyword-arguments (package-arguments libcap-2.31)
((#:phases phases)
`(modify-phases ,phases
(replace 'configure
(lambda _
;; Add $libdir to the RUNPATH of executables.
(substitute* "Make.Rules"
(("LDFLAGS \\?= #-g")
(string-append "LDFLAGS ?= -Wl,-rpath="
%output "/lib")))
#t))))))))
(define-deprecated libcap/next libcap)
(export libcap/next)
(define-public bridge-utils
(package
@ -4647,7 +4664,7 @@ Bluetooth audio output devices like headphones or loudspeakers.")
(define-public bluez
(package
(name "bluez")
(version "5.54")
(version "5.55")
(source (origin
(method url-fetch)
(uri (string-append
@ -4655,7 +4672,7 @@ Bluetooth audio output devices like headphones or loudspeakers.")
version ".tar.xz"))
(sha256
(base32
"1p2ncvjz6alr9n3l5wvq2arqgc7xjs6dqyar1l9jp0z8cfgapkb8"))))
"124v9s4y1s7s6klx5vlmzpk1jlr4x84ch7r7scm7x2f42dqp2qw8"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@ -4664,6 +4681,8 @@ Bluetooth audio output devices like headphones or loudspeakers.")
"--localstatedir=/var"
"--enable-library"
"--disable-systemd"
;; TODO: is this needed? Not installed by default since 5.55.
"--enable-hid2hci"
;; Install dbus/udev files to the correct location.
(string-append "--with-dbusconfdir=" out "/etc")
(string-append "--with-udevdir=" out "/lib/udev")))
@ -6043,43 +6062,40 @@ set the screen to be pitch black at a value of 0 (or higher).
(license license:gpl3+)))
(define-public brightnessctl
(let ((commit "6a791e7694aeeb5d027f71c6098e5182cf03371c"))
(package
(name "brightnessctl")
(version (git-version "0.4" "0" commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Hummer12007/brightnessctl/")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1n1gb8ldgqv3vs565yhk1w4jfvrviczp94r8wqlkv5q6ab43c8w9"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; no tests
#:make-flags (list "CC=gcc"
(string-append "PREFIX=" %output)
(string-append "UDEVDIR=" %output "/lib/udev/rules.d/"))
#:phases
(modify-phases %standard-phases
(delete 'configure)
(add-after 'unpack 'adjust-udev-rules
(lambda _
(substitute* "90-brightnessctl.rules"
(("/bin/") "/run/current-system/profile/bin/"))
#t)))))
(home-page "https://github.com/Hummer12007/brightnessctl")
(synopsis "Backlight and LED brightness control")
(description
"This program allows you read and control device brightness. Devices
(package
(name "brightnessctl")
(version "0.5.1")
(home-page "https://github.com/Hummer12007/brightnessctl")
(source (origin
(method git-fetch)
(uri (git-reference (url home-page) (commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0immxc7almmpg80n3bdn834p3nrrz7bspl2syhb04s3lawa5y2lq"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no tests
#:make-flags (list (string-append "CC=" ,(cc-for-target))
(string-append "PREFIX=" %output)
(string-append "UDEVDIR=" %output "/lib/udev/rules.d/"))
#:phases
(modify-phases %standard-phases
(delete 'configure)
(add-after 'unpack 'adjust-udev-rules
(lambda _
(substitute* "90-brightnessctl.rules"
(("/bin/") "/run/current-system/profile/bin/"))
#t)))))
(synopsis "Backlight and LED brightness control")
(description
"This program allows you read and control device brightness. Devices
include backlight and LEDs. It can also preserve current brightness before
applying the operation, such as on lid close.
The appropriate permissions must be set on the backlight or LED control
interface in sysfs, which can be accomplished with the included udev rules.")
(license license:expat))))
(license license:expat)))
(define-public tlp
(package
@ -7101,7 +7117,7 @@ the superuser to make device nodes.")
("xz" ,xz)))
(inputs
`(("acl" ,acl)
("libcap" ,libcap/next)
("libcap" ,libcap)
("util-linux" ,util-linux)
("sed" ,sed)
("coreutils" ,coreutils)))

File diff suppressed because it is too large Load Diff

View File

@ -76,21 +76,10 @@
#:use-module (gnu packages xorg)
#:use-module (ice-9 match))
(define (asdf-substitutions lisp)
;; Prepend XDG_DATA_DIRS/LISP-bundle-systems to ASDF's
;; 'default-system-source-registry'.
`((("\\(,dir \"systems/\"\\)\\)")
(format #f
"(,dir \"~a-bundle-systems\")))
,@(loop :for dir :in (xdg-data-dirs \"common-lisp/\")
:collect `(:directory (,dir \"systems\"))"
,lisp))))
(define-public cl-asdf
(package
(name "cl-asdf")
(version "3.3.3")
(version "3.3.4")
(source
(origin
(method url-fetch)
@ -98,7 +87,7 @@
(string-append "https://common-lisp.net/project/asdf/archives/asdf-"
version ".lisp"))
(sha256
(base32 "18lr6kxvzhr79c9rx3sdricz30aby866fj0m24w27zxsqlyvn3rd"))))
(base32 "1hpx30f6yrak15nw992k7x3pn75ahvjs04n4f134k68mhgs62km2"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils)
@ -110,9 +99,29 @@
(let* ((out (string-append (assoc-ref %outputs "out")))
(asdf-install (string-append out %source-install-prefix
"/source/asdf/"))
(asdf (string-append (assoc-ref %build-inputs "source"))))
(src-asdf (string-append (assoc-ref %build-inputs "source")))
(dst-asdf (string-append asdf-install "asdf.lisp")))
(mkdir-p asdf-install)
(copy-file asdf (string-append asdf-install "asdf.lisp"))))))
(copy-file src-asdf dst-asdf)
;; Patch ASDF to make it read the configuration files in all
;; the direcories listed in '$XDG_CONFIG_DIRS' instead of just
;; the first.
(substitute* dst-asdf
(("\\(xdg-config-pathname \\*source-registry-directory\\* direction\\)")
"`(:source-registry
,@(loop
for dir in (xdg-config-dirs
\"common-lisp/source-registry.conf.d/\")
collect `(:include ,dir))
:inherit-configuration)")
(("\\(xdg-config-pathname \\*output-translations-directory\\* direction\\)")
"`(:output-translations
,@(loop
for dir in (xdg-config-dirs
\"common-lisp/asdf-output-translations.conf.d/\")
collect `(:include ,dir))
:inherit-configuration)")))
#t)))
(home-page "https://common-lisp.net/project/asdf/")
(synopsis "Another System Definition Facility")
(description
@ -259,10 +268,7 @@ interface to the Tk widget system.")
"/share/common-lisp/source/asdf/asdf.lisp"))
(out (string-append (assoc-ref outputs "out")))
(contrib-asdf "contrib/asdf/asdf.lisp"))
(copy-file guix-asdf contrib-asdf)
;; Add ecl-bundle-systems to 'default-system-source-registry'.
(substitute* contrib-asdf
,@(asdf-substitutions name)))
(copy-file guix-asdf contrib-asdf))
#t))
(add-after 'install 'wrap
(lambda* (#:key inputs outputs #:allow-other-keys)
@ -296,7 +302,10 @@ interface to the Tk widget system.")
(native-search-paths
(list (search-path-specification
(variable "XDG_DATA_DIRS")
(files '("share")))))
(files '("share")))
(search-path-specification
(variable "XDG_CONFIG_DIRS")
(files '("etc")))))
(home-page "http://ecls.sourceforge.net/")
(synopsis "Embeddable Common Lisp")
(description "ECL is an implementation of the Common Lisp language as
@ -435,9 +444,7 @@ an interpreter, a compiler, a debugger, and much more.")
"/share/common-lisp/source/asdf/asdf.lisp"))
(out (string-append (assoc-ref outputs "out")))
(contrib-asdf "contrib/asdf/asdf.lisp"))
(copy-file guix-asdf contrib-asdf)
(substitute* contrib-asdf
,@(asdf-substitutions name)))
(copy-file guix-asdf contrib-asdf))
#t))
(add-before 'build 'patch-unix-tool-paths
(lambda* (#:key outputs inputs #:allow-other-keys)
@ -544,7 +551,10 @@ an interpreter, a compiler, a debugger, and much more.")
(native-search-paths
(list (search-path-specification
(variable "XDG_DATA_DIRS")
(files '("share")))))
(files '("share")))
(search-path-specification
(variable "XDG_CONFIG_DIRS")
(files '("etc")))))
(home-page "http://www.sbcl.org/")
(synopsis "Common Lisp implementation")
(description "Steel Bank Common Lisp (SBCL) is a high performance Common

View File

@ -543,7 +543,7 @@ authentication.")
(build-system glib-or-gtk-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
("check" ,check)
("check" ,check-0.14)
("intltool" ,intltool)
("gconf" ,gconf)
("python" ,python-2)

View File

@ -1267,7 +1267,7 @@ test_parse_format_ipv(4(|_listen_all|_mapped_ipv6)|6)\\);")
#:test-target "test"))
(inputs `(("net-tools" ,net-tools)
("zlib" ,zlib)))
(native-inputs `(("check" ,check)
(native-inputs `(("check" ,check-0.14)
("pkg-config" ,pkg-config)))
(home-page "https://code.kryo.se/iodine/")
(synopsis "Tunnel IPv4 data through a DNS server")

View File

@ -36,7 +36,7 @@
(define-public nspr
(package
(name "nspr")
(version "4.25")
(version "4.29")
(source (origin
(method url-fetch)
(uri (string-append
@ -44,7 +44,7 @@
version "/src/nspr-" version ".tar.gz"))
(sha256
(base32
"0mjjk2b7ika3v4y99cnaqz3z1iq1a50r1psn9i3s87gr46z0khqb"))))
"10i5x637x0jqmdi47grkzgn56fg6770naa3wrhr4dmsrh3dnna12"))))
(build-system gnu-build-system)
(native-inputs
`(("perl" ,perl)))
@ -73,7 +73,7 @@ in the Mozilla clients.")
(define-public nss
(package
(name "nss")
(version "3.52.1")
(version "3.57")
(source (origin
(method url-fetch)
(uri (let ((version-with-underscores
@ -84,9 +84,9 @@ in the Mozilla clients.")
"nss-" version ".tar.gz")))
(sha256
(base32
"0y4jb9095f7bbgw7d7kvzm4c3g4p5i6y68fwhb8wlkpb7b1imj5w"))
"10n3pncg6k81ikjz12la147rppwqn57bkrdl9gb820w6pq0nra2m"))
;; Create nss.pc and nss-config.
(patches (search-patches "nss-pkgconfig.patch"
(patches (search-patches "nss-3.56-pkgconfig.patch"
"nss-increase-test-timeout.patch"))
(modules '((guix build utils)))
(snippet
@ -139,128 +139,7 @@ in the Mozilla clients.")
;; leading to test failures:
;; <https://bugzilla.mozilla.org/show_bug.cgi?id=609734>. To
;; work around that, set the time to roughly the release date.
(invoke "faketime" "2020-02-01" "./nss/tests/all.sh")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append (assoc-ref outputs "bin") "/bin"))
(inc (string-append out "/include/nss"))
(lib (string-append out "/lib/nss"))
(obj (match (scandir "dist" (cut string-suffix? "OBJ" <>))
((obj) (string-append "dist/" obj)))))
;; Install nss-config to $out/bin.
(install-file (string-append obj "/bin/nss-config")
(string-append out "/bin"))
(delete-file (string-append obj "/bin/nss-config"))
;; Install nss.pc to $out/lib/pkgconfig.
(install-file (string-append obj "/lib/pkgconfig/nss.pc")
(string-append out "/lib/pkgconfig"))
(delete-file (string-append obj "/lib/pkgconfig/nss.pc"))
(rmdir (string-append obj "/lib/pkgconfig"))
;; Install other files.
(copy-recursively "dist/public/nss" inc)
(copy-recursively (string-append obj "/bin") bin)
(copy-recursively (string-append obj "/lib") lib)
;; FIXME: libgtest1.so is installed in the above step, and it's
;; (unnecessarily) linked with several NSS libraries, but
;; without the needed rpaths, causing the 'validate-runpath'
;; phase to fail. Here we simply delete libgtest1.so, since it
;; seems to be used only during the tests.
(delete-file (string-append lib "/libgtest1.so"))
(delete-file (string-append lib "/libgtestutil.so"))
#t))))))
(inputs
`(("sqlite" ,sqlite)
("zlib" ,zlib)))
(propagated-inputs `(("nspr" ,nspr))) ; required by nss.pc.
(native-inputs `(("perl" ,perl)
("libfaketime" ,libfaketime))) ;for tests
;; The NSS test suite takes around 48 hours on Loongson 3A (MIPS) when
;; another build is happening concurrently on the same machine.
(properties '((timeout . 216000))) ; 60 hours
(home-page
"https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS")
(synopsis "Network Security Services")
(description
"Network Security Services (@dfn{NSS}) is a set of libraries designed to
support cross-platform development of security-enabled client and server
applications. Applications built with NSS can support SSL v2 and v3, TLS,
PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 certificates, and other
security standards.")
(license license:mpl2.0)))
(define-public nss-3.57
(package
(inherit nss)
(version "3.57")
(source (origin
(method url-fetch)
(uri (let ((version-with-underscores
(string-join (string-split version #\.) "_")))
(string-append
"https://ftp.mozilla.org/pub/mozilla.org/security/nss/"
"releases/NSS_" version-with-underscores "_RTM/src/"
"nss-" version ".tar.gz")))
(sha256
(base32
"10n3pncg6k81ikjz12la147rppwqn57bkrdl9gb820w6pq0nra2m"))
;; Create nss.pc and nss-config.
(patches (search-patches "nss-3.56-pkgconfig.patch"
"nss-increase-test-timeout.patch"))
(modules '((guix build utils)))
(snippet
'(begin
;; Delete the bundled copy of these libraries.
(delete-file-recursively "nss/lib/zlib")
(delete-file-recursively "nss/lib/sqlite")
#t))))
(arguments
`(#:parallel-build? #f ; not supported
#:make-flags
(let* ((out (assoc-ref %outputs "out"))
(nspr (string-append (assoc-ref %build-inputs "nspr")))
(rpath (string-append "-Wl,-rpath=" out "/lib/nss")))
(list "-C" "nss" (string-append "PREFIX=" out)
"NSDISTMODE=copy"
"NSS_USE_SYSTEM_SQLITE=1"
(string-append "NSPR_INCLUDE_DIR=" nspr "/include/nspr")
;; Add $out/lib/nss to RPATH.
(string-append "RPATH=" rpath)
(string-append "LDFLAGS=" rpath)))
#:modules ((guix build gnu-build-system)
(guix build utils)
(ice-9 ftw)
(ice-9 match)
(srfi srfi-26))
#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda _
(setenv "CC" "gcc")
;; Tells NSS to build for the 64-bit ABI if we are 64-bit system.
,@(match (%current-system)
((or "x86_64-linux" "aarch64-linux")
`((setenv "USE_64" "1")))
(_
'()))
#t))
(replace 'check
(lambda _
;; Use 127.0.0.1 instead of $HOST.$DOMSUF as HOSTADDR for testing.
;; The later requires a working DNS or /etc/hosts.
(setenv "DOMSUF" "localdomain")
(setenv "USE_IP" "TRUE")
(setenv "IP_ADDRESS" "127.0.0.1")
;; The "PayPalEE.cert" certificate expires every six months,
;; leading to test failures:
;; <https://bugzilla.mozilla.org/show_bug.cgi?id=609734>. To
;; work around that, set the time to roughly the release date.
(invoke "faketime" "2020-02-01" "./nss/tests/all.sh")))
(invoke "faketime" "2020-10-01" "./nss/tests/all.sh")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@ -282,4 +161,25 @@ security standards.")
(copy-recursively "dist/public/nss" inc)
(copy-recursively (string-append obj "/bin") bin)
(copy-recursively (string-append obj "/lib") lib)
#t))))))))
#t))))))
(inputs
`(("sqlite" ,sqlite)
("zlib" ,zlib)))
(propagated-inputs `(("nspr" ,nspr))) ; required by nss.pc.
(native-inputs `(("perl" ,perl)
("libfaketime" ,libfaketime))) ;for tests
;; The NSS test suite takes around 48 hours on Loongson 3A (MIPS) when
;; another build is happening concurrently on the same machine.
(properties '((timeout . 216000))) ; 60 hours
(home-page
"https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS")
(synopsis "Network Security Services")
(description
"Network Security Services (@dfn{NSS}) is a set of libraries designed to
support cross-platform development of security-enabled client and server
applications. Applications built with NSS can support SSL v2 and v3, TLS,
PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 v3 certificates, and other
security standards.")
(license license:mpl2.0)))

View File

@ -81,7 +81,7 @@
`(("pkg-config" ,pkg-config)))
(inputs
`(("gnutls" ,gnutls)
("libcap" ,libcap/next)
("libcap" ,libcap)
("libseccomp" ,libseccomp)
("nettle" ,nettle)))
(home-page "https://chrony.tuxfamily.org/")
@ -144,7 +144,7 @@ time-stamping or reference clock, sub-microsecond accuracy is possible.")
;; to run as non-root (when invoked with '-u'.)
,@(if (string-suffix? "-linux"
(or (%current-target-system) (%current-system)))
`(("libcap" ,libcap/next))
`(("libcap" ,libcap))
'())))
(arguments
`(#:phases

View File

@ -143,7 +143,7 @@ from the protocol files.")
(define-public libnsl
(package
(name "libnsl")
(version "1.2.0")
(version "1.3.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -152,17 +152,10 @@ from the protocol files.")
(file-name (git-file-name name version))
(sha256
(base32
"1chzqhcgh0yia9js8mh92cmhyka7rh32ql6b3mgdk26n94dqzs8b"))))
"1dayj5i4bh65gn7zkciacnwv2a0ghm6nn58d78rsi4zby4lyj5w5"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--disable-static")
#:phases (modify-phases %standard-phases
(add-before 'bootstrap 'gettextize
(lambda _
;; Regenerate the bundled Makefile.in.in to avoid a
;; "gettext infrastructure mismatch" because the
;; existing version was generated by an older gettext.
(invoke "gettextize" "-f"))))))
`(#:configure-flags '("--disable-static")))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)

View File

@ -1,19 +0,0 @@
Fix build failure with Meson 0.52.
Taken from upstream:
https://gitlab.gnome.org/GNOME/dconf/commit/7ad890fb7a2ec90a777a756a1fa20a615ec7245e
https://gitlab.gnome.org/GNOME/dconf/merge_requests/54
diff --git a/client/meson.build b/client/meson.build
index f3b7122cb05bfa7bb481c487e3cd052aa1ad58e5..de6387e2cac2aba12b83f2614c277bada434fd16 100644
--- a/client/meson.build
+++ b/client/meson.build
@@ -28,7 +28,7 @@ libdconf_client = static_library(
libdconf_client_dep = declare_dependency(
dependencies: gio_dep,
- link_whole: libdconf_client,
+ link_with: libdconf_client,
)
libdconf = shared_library(

View File

@ -0,0 +1,69 @@
Taken from upstream, removed ChangeLog.
From 6930bffe3373690b3431d6291f9f7c116d6a1ec4 Mon Sep 17 00:00:00 2001
From: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date: Sat, 30 May 2020 18:35:59 +0000
Subject: [PATCH] hurd: fix gnu_debug_flag type
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Fixes
../../gdb/gnu-nat.c:96:6: error: conflicting declaration bool gnu_debug_flag
96 | bool gnu_debug_flag = false;
../../gdb/gnu-nat.c: In function void _initialize_gnu_nat():
../../gdb/gnu-nat.c:3511:7: error: cannot
gdb/ChangeLog:
* gnu-nat.h (gnu_debug_flag): Set type to bool.
---
gdb/ChangeLog | 4 ++++
gdb/gnu-nat.h | 2 +-
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/gdb/gnu-nat.h b/gdb/gnu-nat.h
index 77c57817b2..766f716587 100644
--- a/gdb/gnu-nat.h
+++ b/gdb/gnu-nat.h
@@ -111,7 +111,7 @@ extern char *proc_string (struct proc *proc);
__proc_pid (__proc), __proc->tid, \
host_address_to_string (__proc) , ##args); } while (0)
-extern int gnu_debug_flag;
+extern bool gnu_debug_flag;
#define debug(msg, args...) \
do { if (gnu_debug_flag) \
--
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com
commit 366f550a593c7e6bae3699a4b6d65fe937af5603
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date: Sat May 30 18:41:30 2020 +0000
hurd: add missing include
Fixes
../../gdb/gnu-nat.c:2522:14: error: target_gdbarch was not declared in this scope; did you mean target_detach?
2522 | paddress (target_gdbarch (), memaddr), pulongest (len),
gdb/Changelog:
* gnu-nat.c: Include "gdbarch.h".
diff --git a/gdb/gnu-nat.c b/gdb/gnu-nat.c
index 3b438a9a43..9b93488b41 100644
--- a/gdb/gnu-nat.c
+++ b/gdb/gnu-nat.c
@@ -64,6 +64,7 @@ extern "C"
#include "language.h"
#include "target.h"
#include "gdbsupport/gdb_wait.h"
+#include "gdbarch.h"
#include "gdbcmd.h"
#include "gdbcore.h"
#include "gdbthread.h"

View File

@ -1,27 +0,0 @@
From 80b17ceaff90b81b28b44004d2aca4cc40f365be Mon Sep 17 00:00:00 2001
From: Tobias Geerinckx-Rice <me@tobias.gr>
Date: Fri, 2 Oct 2020 00:07:30 +0200
Subject: [PATCH] Revert "Correct interpretation of output rotation"
This reverts commit 8f9d60885ce2f9bd66cd93d3378dcb6866d4588a.
It is incompatible with the current Sway version (1.4) in Guix.
---
render.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/render.c b/render.c
index 8f31e7e..a6b0b12 100644
--- a/render.c
+++ b/render.c
@@ -104,7 +104,7 @@ cairo_surface_t *render(struct grim_state *state, struct grim_box *geometry,
cairo_matrix_translate(&matrix,
(double)output->geometry.width / 2,
(double)output->geometry.height / 2);
- cairo_matrix_rotate(&matrix, get_output_rotation(output->transform));
+ cairo_matrix_rotate(&matrix, -get_output_rotation(output->transform));
cairo_matrix_scale(&matrix,
(double)raw_output_width / output_width * output_flipped_x,
(double)raw_output_height / output_height * output_flipped_y);
--
2.28.0

File diff suppressed because it is too large Load Diff

View File

@ -1,42 +0,0 @@
# HG changeset patch
# User Gábor Boskovits <boskovits@gmail.com>
# Date 1530519413 -7200
# Mon Jul 02 10:16:53 2018 +0200
# Node ID 77e5bc9e238a28d17e097647badc04ed67a6a452
# Parent 1ae05a34e052d1672b4a7894ddf5fc2f662eb861
Fix gcc segfault.
diff -r 1ae05a34e052 -r 77e5bc9e238a src/share/vm/opto/output.cpp
--- a/src/share/vm/opto/output.cpp Sun Dec 25 23:52:13 2016 +0000
+++ b/src/share/vm/opto/output.cpp Mon Jul 02 10:16:53 2018 +0200
@@ -1758,6 +1758,8 @@
// Initializer for class Scheduling
+volatile const void *eePointer = Pipeline_Use::elaborated_elements;
+
Scheduling::Scheduling(Arena *arena, Compile &compile)
: _arena(arena),
_cfg(compile.cfg()),
@@ -1802,8 +1804,8 @@
// Clear the bundling information
memcpy(_bundle_use_elements,
- Pipeline_Use::elaborated_elements,
- sizeof(Pipeline_Use::elaborated_elements));
+ (void *)eePointer,
+ 11*sizeof(Pipeline_Use_Element));
// Get the last node
Block *bb = _cfg->_blocks[_cfg->_blocks.size()-1];
@@ -1854,8 +1856,8 @@
_bundle_use.reset();
memcpy(_bundle_use_elements,
- Pipeline_Use::elaborated_elements,
- sizeof(Pipeline_Use::elaborated_elements));
+ (void *)eePointer,
+ 11*sizeof(Pipeline_Use_Element));
}
//------------------------------ScheduleAndBundle------------------------------

View File

@ -0,0 +1,33 @@
From 919dd016be1abd213b3a7d0e9a3b79e3286ef6ad Mon Sep 17 00:00:00 2001
From: Simon South <simon@simonsouth.net>
Date: Wed, 10 Jun 2020 13:02:09 -0400
Subject: [PATCH] aarch64: Use only C++98
This patch removes an unneeded C++ template that causes the build to
fail for aarch64 using gcc 7.5.0 and its default support for only the
C++98 standard.
It is based on original work by Severin Gehwolf <sgehwolf@redhat.com>.
See: https://bugzilla.redhat.com/show_bug.cgi?id=1307224
---
src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp | 4 ----
1 file changed, 4 deletions(-)
diff --git a/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp b/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
index 0bc0a2b..6f73ca0 100644
--- a/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
+++ b/src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp
@@ -194,10 +194,6 @@ static int reg2offset_out(VMReg r) {
return (r->reg2stack() + SharedRuntime::out_preserve_stack_slots()) * VMRegImpl::stack_slot_size;
}
-template <class T> static const T& min (const T& a, const T& b) {
- return (a > b) ? b : a;
-}
-
// ---------------------------------------------------------------------------
// Read the array of BasicTypes from a signature, and compute where the
// arguments should go. Values in the VMRegPair regs array refer to 4-byte
--
2.26.2

View File

@ -1,45 +0,0 @@
From 2f0ef2c69e99e1096a2a72c7a29025a736b044b4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?G=C3=A1bor=20Boskovits?= <boskovits@gmail.com>
Date: Mon, 2 Jul 2018 23:37:25 +0200
Subject: [PATCH] Fix gcc segfault.
---
src/share/vm/opto/output.cpp | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/share/vm/opto/output.cpp b/src/share/vm/opto/output.cpp
index d46cb87..0eb9eda 100644
--- a/src/share/vm/opto/output.cpp
+++ b/src/share/vm/opto/output.cpp
@@ -1787,6 +1787,8 @@ uint Scheduling::_total_instructions_per_bundle[Pipeline::_max_instrs_per_cycle+
// Initializer for class Scheduling
+volatile const void *eePointer = Pipeline_Use::elaborated_elements;
+
Scheduling::Scheduling(Arena *arena, Compile &compile)
: _arena(arena),
_cfg(compile.cfg()),
@@ -1829,7 +1831,7 @@ Scheduling::Scheduling(Arena *arena, Compile &compile)
memset(_current_latency, 0, node_max * sizeof(unsigned short));
// Clear the bundling information
- memcpy(_bundle_use_elements, Pipeline_Use::elaborated_elements, sizeof(Pipeline_Use::elaborated_elements));
+ memcpy(_bundle_use_elements, (void *)eePointer, 11*sizeof(Pipeline_Use_Element));
// Get the last node
Block* block = _cfg->get_block(_cfg->number_of_blocks() - 1);
@@ -1880,8 +1882,8 @@ void Scheduling::step_and_clear() {
_bundle_use.reset();
memcpy(_bundle_use_elements,
- Pipeline_Use::elaborated_elements,
- sizeof(Pipeline_Use::elaborated_elements));
+ (void *)eePointer,
+ 11*sizeof(Pipeline_Use_Element));
}
// Perform instruction scheduling and bundling over the sequence of
--
2.18.0

View File

@ -0,0 +1,572 @@
From 9c83c3d3f443eb92f87dc87c7dcfe95577b95621 Mon Sep 17 00:00:00 2001
From: Simon South <simon@simonsouth.net>
Date: Thu, 28 May 2020 14:29:55 -0400
Subject: [PATCH] Add support for aarch64 on GNU/Linux
---
configure.ac | 10 +-
src/arch/Makefile.am | 2 +-
src/arch/aarch64.h | 110 ++++++++++++++++
src/os/linux/Makefile.am | 2 +-
src/os/linux/aarch64/Makefile.am | 28 ++++
src/os/linux/aarch64/callNative.S | 212 ++++++++++++++++++++++++++++++
src/os/linux/aarch64/dll_md.c | 59 +++++++++
src/os/linux/aarch64/init.c | 51 +++++++
8 files changed, 469 insertions(+), 5 deletions(-)
create mode 100644 src/arch/aarch64.h
create mode 100644 src/os/linux/aarch64/Makefile.am
create mode 100644 src/os/linux/aarch64/callNative.S
create mode 100644 src/os/linux/aarch64/dll_md.c
create mode 100644 src/os/linux/aarch64/init.c
diff --git a/configure.ac b/configure.ac
index ccd530f..707f281 100644
--- a/configure.ac
+++ b/configure.ac
@@ -43,6 +43,7 @@ amd64-*-freebsd*) host_os=bsd libdl_needed=no ;;
arm*-*-linux*) host_cpu=arm host_os=linux ;;
arm*-*-openbsd*) host_cpu=arm host_os=bsd libdl_needed=no ;;
arm*-*-freebsd*) host_cpu=arm host_os=bsd libdl_needed=no ;;
+aarch64*-*-linux*) host_cpu=aarch64 host_os=linux ;;
powerpc*-*-linux*) host_cpu=powerpc host_os=linux ;;
powerpc*-*-openbsd*) host_cpu=powerpc host_os=bsd libdl_needed=no ;;
powerpc*-*-freebsd*) host_cpu=powerpc host_os=bsd libdl_needed=no ;;
@@ -149,9 +150,11 @@ AC_ARG_ENABLE(runtime-reloc-checks,
AC_ARG_ENABLE(int-inlining,
[AS_HELP_STRING(--enable-int-inlining,enable inline threaded version of the interpreter
- (by default enabled on x86_64, i386 and powerpc, disabled otherwise))],,
- [if test "$host_cpu" = x86_64 -o "$host_cpu" = i386 -o "$host_cpu" = powerpc && \
- test "$cross_compiling" = no -o "$enable_runtime_reloc_checks" != no; then
+ (by default enabled on x86_64, i386, powerpc and aarch64,
+ disabled otherwise))],,
+ [if test "$host_cpu" = x86_64 -o "$host_cpu" = i386 -o "$host_cpu" = powerpc -o \
+ "$host_cpu" = aarch64 && test "$cross_compiling" = no -o \
+ "$enable_runtime_reloc_checks" != no; then
enable_int_inlining=yes
else
enable_int_inlining=no
@@ -298,6 +301,7 @@ AC_CONFIG_FILES(
src/os/linux/x86_64/Makefile \
src/os/linux/parisc/Makefile \
src/os/linux/mips/Makefile \
+ src/os/linux/aarch64/Makefile \
src/os/darwin/i386/Makefile \
src/os/darwin/arm/Makefile \
src/os/darwin/powerpc/Makefile \
diff --git a/src/arch/Makefile.am b/src/arch/Makefile.am
index 078c1de..afb26d1 100644
--- a/src/arch/Makefile.am
+++ b/src/arch/Makefile.am
@@ -19,4 +19,4 @@
## Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
##
-EXTRA_DIST = powerpc.h arm.h i386.h x86_64.h parisc.h mips.h
+EXTRA_DIST = powerpc.h arm.h i386.h x86_64.h parisc.h mips.h aarch64.h
diff --git a/src/arch/aarch64.h b/src/arch/aarch64.h
new file mode 100644
index 0000000..c96aa9f
--- /dev/null
+++ b/src/arch/aarch64.h
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008
+ * Robert Lougher <rob@lougher.org.uk>.
+ * Copyright (C) 2020 Simon South <simon@simonsouth.net>.
+ *
+ * This file is part of JamVM.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2,
+ * or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include <stdint.h>
+
+#define OS_ARCH "aarch64"
+
+#define HANDLER_TABLE_T static const void
+#define DOUBLE_1_BITS 0x3ff0000000000000LL
+
+#define READ_DBL(v,p,l) v = ((u8)p[0]<<56)|((u8)p[1]<<48)|((u8)p[2]<<40) \
+ |((u8)p[3]<<32)|((u8)p[4]<<24)|((u8)p[5]<<16) \
+ |((u8)p[6]<<8)|(u8)p[7]; p+=8
+
+/* Needed for i386 -- empty here */
+#define FPU_HACK
+
+#define COMPARE_AND_SWAP_64(addr, old_val, new_val) \
+({ \
+ int result, read_val; \
+ __asm__ __volatile__ (" \
+ 1: ldaxr %2, %1; \
+ cmp %2, %3; \
+ b.ne 2f; \
+ stlxr %w0, %4, %1; \
+ cmp %w0, wzr; \
+ b.ne 1b; \
+ 2: cset %w0, eq;" \
+ : "=&r" (result), "+Q" (*addr), "=&r" (read_val) \
+ : "r" (old_val), "r" (new_val) \
+ : "cc"); \
+ result; \
+})
+
+#define COMPARE_AND_SWAP(addr, old_val, new_val) \
+ COMPARE_AND_SWAP_64(addr, old_val, new_val)
+
+#define LOCKWORD_READ(addr) \
+({ \
+ uintptr_t result; \
+ __asm__ __volatile__ (" \
+ ldar %0, %1;" \
+ : "=r" (result) \
+ : "Q" (*addr) \
+ : "cc"); \
+ result; \
+})
+
+#define LOCKWORD_WRITE(addr, value) \
+({ \
+ __asm__ __volatile__ (" \
+ stlr %1, %0;" \
+ : "=Q" (*addr) \
+ : "r" (value) \
+ : "cc"); \
+})
+
+#define LOCKWORD_COMPARE_AND_SWAP(addr, old_val, new_val) \
+ COMPARE_AND_SWAP_64(addr, old_val, new_val)
+
+#define FLUSH_CACHE(addr, length) \
+{ \
+ uintptr_t start = (uintptr_t) (addr); \
+ uintptr_t end = start + length; \
+ uintptr_t i; \
+ \
+ for(i = start & aarch64_data_cache_line_mask; \
+ i < end; \
+ i += aarch64_data_cache_line_len) \
+ __asm__ ("dc cvau, %0" :: "r" (i)); \
+ \
+ __asm__ ("dsb ish"); \
+ \
+ for(i = start & aarch64_instruction_cache_line_mask; \
+ i < end; \
+ i += aarch64_instruction_cache_line_len) \
+ __asm__ ("ic ivau, %0" :: "r" (i)); \
+ \
+ __asm__ ("dsb ish; isb"); \
+}
+
+#define MBARRIER() __asm__ ("dmb ish" ::: "memory")
+#define UNLOCK_MBARRIER() __asm__ ("dmb ish" ::: "memory")
+#define JMM_LOCK_MBARRIER() __asm__ ("dmb ish" ::: "memory")
+#define JMM_UNLOCK_MBARRIER() JMM_LOCK_MBARRIER()
+
+/* Defined in src/os/linux/aarch64/init.c */
+extern unsigned char aarch64_data_cache_line_len;
+extern uintptr_t aarch64_data_cache_line_mask;
+extern unsigned char aarch64_instruction_cache_line_len;
+extern uintptr_t aarch64_instruction_cache_line_mask;
diff --git a/src/os/linux/Makefile.am b/src/os/linux/Makefile.am
index aa29be1..d582b97 100644
--- a/src/os/linux/Makefile.am
+++ b/src/os/linux/Makefile.am
@@ -20,7 +20,7 @@
##
SUBDIRS = @arch@
-DIST_SUBDIRS = powerpc arm i386 x86_64 parisc mips
+DIST_SUBDIRS = powerpc arm i386 x86_64 parisc mips aarch64
noinst_LTLIBRARIES = libos.la
libos_la_SOURCES = os.c
diff --git a/src/os/linux/aarch64/Makefile.am b/src/os/linux/aarch64/Makefile.am
new file mode 100644
index 0000000..1024c3a
--- /dev/null
+++ b/src/os/linux/aarch64/Makefile.am
@@ -0,0 +1,28 @@
+##
+## Copyright (C) 2003, 2004, 2005, 2006, 2007, 2010, 2011, 2012
+## Robert Lougher <rob@lougher.org.uk>.
+##
+## File added by Simon South <simon@simonsouth.net>.
+##
+## This file is part of JamVM.
+##
+## This program is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License
+## as published by the Free Software Foundation; either version 2,
+## or (at your option) any later version.
+##
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+
+noinst_LTLIBRARIES = libnative.la
+libnative_la_SOURCES = init.c dll_md.c callNative.S
+
+AM_CPPFLAGS = -I$(top_builddir)/src -I$(top_srcdir)/src
+AM_CCASFLAGS = -I$(top_builddir)/src
diff --git a/src/os/linux/aarch64/callNative.S b/src/os/linux/aarch64/callNative.S
new file mode 100644
index 0000000..e067c4f
--- /dev/null
+++ b/src/os/linux/aarch64/callNative.S
@@ -0,0 +1,212 @@
+/*
+ * Copyright (C) 2008, 2009, 2011, 2012 Robert Lougher <rob@jamvm.org.uk>.
+ * Copyright (C) 2020 Simon South <simon@simonsouth.net>.
+ *
+ * This file is part of JamVM.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2,
+ * or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include "config.h"
+
+#ifndef USE_FFI
+ .text
+ .arch armv8-a
+ .align 2
+ .global callJNIMethod
+ .type callJNIMethod,function
+
+/*
+ * Arguments passed in:
+ *
+ * x0 JNIEnv
+ * x1 class or NULL
+ * x2 sig
+ * w3 extra arg
+ * x4 ostack
+ * x5 function pntr
+ * w6 args count
+ */
+
+/* Register usage:
+ *
+ * x20 ostack
+ * x19 sig pntr
+ * x16 function pntr
+ * x15 ostack pntr
+ * x14 args pntr
+ * x13 float/double handler
+ * x12 int/long handler
+ * w11 fp regs remaining
+ * w10 int regs remaining
+ * x9 scratch
+ * x2-x7 outgoing int args
+ * x1 outgoing class or this pntr
+ * x0 outgoing JNIEnv (as passed in)
+ *
+ * d0 - d7 outgoing float args
+ */
+
+callJNIMethod:
+ stp x29, x30, [sp, #-32]!
+ mov x29, sp
+ stp x19, x20, [x29, #16]
+
+ sub sp, sp, w3 /* allocate room for stacked args */
+ mov x14, sp
+
+ mov x20, x4 /* preserve ostack */
+ add x19, x2, #1 /* init sig pntr -- skipping '(' */
+
+ mov x16, x5 /* save function pntr */
+ mov x15, x20 /* init ostack pntr */
+
+ adr x13, fp_reg_handlers-8
+ adr x12, int_reg_handlers-8
+
+ mov w11, #8 /* fp regs remaining */
+ mov w10, #6 /* int regs remaining */
+
+ cbnz x1, scan_sig /* is method non-static? */
+ ldr x1, [x15], #8 /* yes, load x1 with "this" */
+
+scan_sig:
+ ldrb w9, [x19], #1 /* get next sig char */
+
+ cmp w9, #41 /* ')' */
+ b.eq done
+
+ cmp w9, #74 /* 'J' */
+ b.eq long
+
+ cmp w9, #70 /* 'F' */
+ b.eq float
+
+ cmp w9, #68 /* 'D' */
+ b.eq double
+
+skip_brackets:
+ cmp w9, #91 /* '[' */
+ b.ne 1f
+ ldrb w9, [x19], #1
+ b skip_brackets
+1:
+ cmp w9, #76 /* 'L' */
+ b.ne int
+
+skip_ref:
+ ldrb w9, [x19], #1
+ cmp w9, #59 /* ';' */
+ b.ne skip_ref
+
+int:
+ ldr x9, [x15], #8
+ cbz w10, stack_push
+
+load_int_reg:
+ sub w10, w10, #1
+ add x12, x12, #8
+ br x12
+
+int_reg_handlers:
+ mov x2, x9
+ b scan_sig
+ mov x3, x9
+ b scan_sig
+ mov x4, x9
+ b scan_sig
+ mov x5, x9
+ b scan_sig
+ mov x6, x9
+ b scan_sig
+ mov x7, x9
+ b scan_sig
+
+long:
+ ldr x9, [x15], #16
+ cbz w10, stack_push
+ b load_int_reg
+
+float:
+ ldr w9, [x15], #8
+ cbz w11, stack_push
+ b load_fp_reg
+
+double:
+ ldr x9, [x15], #16
+ cbz w11, stack_push
+
+load_fp_reg:
+ sub w11, w11, #1
+ add x13, x13, #8
+ br x13
+
+fp_reg_handlers:
+ fmov d0, x9
+ b scan_sig
+ fmov d1, x9
+ b scan_sig
+ fmov d2, x9
+ b scan_sig
+ fmov d3, x9
+ b scan_sig
+ fmov d4, x9
+ b scan_sig
+ fmov d5, x9
+ b scan_sig
+ fmov d6, x9
+ b scan_sig
+ fmov d7, x9
+ b scan_sig
+
+stack_push:
+ str x9, [x14], #8
+ b scan_sig
+
+done:
+ /* Call the function */
+ blr x16
+
+ mov sp, x29 /* Pop argument area */
+
+ ldrb w9, [x19] /* Return type */
+
+ cmp w9, #86 /* 'V' */
+ b.eq return
+
+ cmp w9, #68 /* 'D' */
+ b.ne 2f
+ str d0, [x20], #16
+ b return
+2:
+ cmp w9, #70 /* 'F' */
+ b.ne 3f
+ str s0, [x20], #8
+ b return
+3:
+ cmp w9, #74 /* 'J' */
+ b.ne 4f
+ str x0, [x20], #16
+ b return
+4:
+ str x0, [x20], #8
+
+return:
+ mov x0, x20 /* return ostack */
+
+ ldp x19, x20, [x29, #16]
+ ldp x29, x30, [sp], #32
+ ret
+#endif
diff --git a/src/os/linux/aarch64/dll_md.c b/src/os/linux/aarch64/dll_md.c
new file mode 100644
index 0000000..189f8a8
--- /dev/null
+++ b/src/os/linux/aarch64/dll_md.c
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2010, 2011
+ * Robert Lougher <rob@jamvm.org.uk>.
+ * Copyright (C) 2020 Simon South <simon@simonsouth.net>.
+ *
+ * This file is part of JamVM.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2,
+ * or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include "jam.h"
+
+#ifndef USE_FFI
+
+int nativeExtraArg(MethodBlock *mb) {
+ char *sig = mb->type;
+ int stack_args = 0;
+ int int_args = 6;
+ int fp_args = 8;
+
+ while(*++sig != ')')
+ switch(*sig) {
+ case 'F':
+ case 'D':
+ if(fp_args == 0)
+ stack_args += 8;
+ else
+ fp_args--;
+
+ default:
+ if(int_args == 0)
+ stack_args += 8;
+ else
+ int_args--;
+
+ if(*sig == '[')
+ while(*++sig == '[');
+ if(*sig == 'L')
+ while(*++sig != ';');
+ break;
+ }
+
+ /* Ensure the stack remains 16 byte aligned. */
+ return (stack_args + 15) & ~15;
+}
+
+#endif
diff --git a/src/os/linux/aarch64/init.c b/src/os/linux/aarch64/init.c
new file mode 100644
index 0000000..e03b446
--- /dev/null
+++ b/src/os/linux/aarch64/init.c
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2003, 2004, 2005, 2006, 2007
+ * Robert Lougher <rob@lougher.org.uk>.
+ * Copyright (C) 2020 Simon South <simon@simonsouth.net>.
+ *
+ * This file is part of JamVM.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2,
+ * or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include "arch/aarch64.h"
+
+/* Length in bytes of the smallest line in the host system's data cache */
+unsigned char aarch64_data_cache_line_len;
+
+/* Mask used to align a virtual address to a line in the data cache */
+uintptr_t aarch64_data_cache_line_mask;
+
+/* Length in bytes of the smallest line in the host system's instruction
+ cache */
+unsigned char aarch64_instruction_cache_line_len;
+
+/* Mask used to align a virtual address to a line in the instruction cache */
+uintptr_t aarch64_instruction_cache_line_mask;
+
+void initialisePlatform() {
+ unsigned int cache_type;
+
+ /* Extract information from the cache-type register, which describes aspects
+ of the host's cache configuration */
+ __asm__ ("mrs %0, ctr_el0" : "=r" (cache_type));
+
+ aarch64_data_cache_line_len = 4 << ((cache_type >> 16) & 0x0f);
+ aarch64_data_cache_line_mask = ~(aarch64_data_cache_line_len - 1);
+
+ aarch64_instruction_cache_line_len = 4 << (cache_type & 0x0f);
+ aarch64_instruction_cache_line_mask =
+ ~(aarch64_instruction_cache_line_len - 1);
+}
--
2.26.2

View File

@ -0,0 +1,645 @@
From a44154f7a18496cc3e5fc0b1b2ea69523ebc623a Mon Sep 17 00:00:00 2001
From: Simon South <simon@simonsouth.net>
Date: Mon, 1 Jun 2020 07:09:34 -0400
Subject: [PATCH] Add support for aarch64 on GNU/Linux
---
AUTHORS | 1 +
README | 2 +-
configure.ac | 7 +-
src/arch/Makefile.am | 2 +-
src/arch/aarch64.h | 147 +++++++++++++++++++++
src/jam.c | 3 +-
src/os/linux/Makefile.am | 2 +-
src/os/linux/aarch64/Makefile.am | 28 ++++
src/os/linux/aarch64/callNative.S | 212 ++++++++++++++++++++++++++++++
src/os/linux/aarch64/dll_md.c | 59 +++++++++
src/os/linux/aarch64/init.c | 51 +++++++
11 files changed, 508 insertions(+), 6 deletions(-)
create mode 100644 src/arch/aarch64.h
create mode 100644 src/os/linux/aarch64/Makefile.am
create mode 100644 src/os/linux/aarch64/callNative.S
create mode 100644 src/os/linux/aarch64/dll_md.c
create mode 100644 src/os/linux/aarch64/init.c
diff --git a/AUTHORS b/AUTHORS
index e1334fe..6fd0eeb 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1 +1,2 @@
Robert Lougher <rob@jamvm.org.uk>
+Simon South <simon@simonsouth.net>
diff --git a/README b/README
index c9d80bb..0e93d00 100644
--- a/README
+++ b/README
@@ -77,7 +77,7 @@ versions of JamVM also includes stubs for common method signatures.
The following platforms/architectures are recognised by configure. Those
marked with * must be configured to use libffi.
-- Linux: x86, x86_64, ARM, PowerPC, PowerPC64(*), MIPS, HPPA
+- Linux: x86, x86_64, ARM, ARM64, PowerPC, PowerPC64(*), MIPS, HPPA
- FreeBSD: x86, x86_64, ARM, PowerPC, PowerPC64(*), SPARC(*)
- OpenBSD: x86, x86_64, ARM, PowerPC, PowerPC64(*), SPARC(*)
- Mac OS X/Darwin: x86, x86_64, ARM, PowerPC, PowerPC64
diff --git a/configure.ac b/configure.ac
index 138b7e6..e7051d7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -46,6 +46,7 @@ x86_64-*-freebsd*) host_os=bsd libdl_needed=no ;;
arm*-*-linux*) host_cpu=arm host_os=linux interp_cflags=-marm ;;
arm*-*-openbsd*) host_cpu=arm host_os=bsd libdl_needed=no ;;
arm*-*-freebsd*) host_cpu=arm host_os=bsd libdl_needed=no ;;
+aarch64*-*-linux*) host_cpu=aarch64 host_os=linux ;;
powerpc*-*-linux*) host_cpu=powerpc host_os=linux ;;
powerpc*-*-openbsd*) host_cpu=powerpc host_os=bsd libdl_needed=no ;;
powerpc*-*-freebsd*) host_cpu=powerpc host_os=bsd libdl_needed=no ;;
@@ -155,10 +156,11 @@ AC_ARG_ENABLE(runtime-reloc-checks,
AC_ARG_ENABLE(int-inlining,
[AS_HELP_STRING(--enable-int-inlining,enable inline threaded version of the interpreter
- (by default enabled on x86_64, i386, powerpc, mips and arm,
+ (by default enabled on x86_64, i386, powerpc, mips, arm and aarch64,
disabled otherwise))],,
[if test "$host_cpu" = x86_64 -o "$host_cpu" = i386 -o "$host_cpu" = x86 -o \
- "$host_cpu" = powerpc -o "$host_cpu" = arm -o "$host_cpu" = mips; then
+ "$host_cpu" = powerpc -o "$host_cpu" = arm -o "$host_cpu" = mips -o \
+ "$host_cpu" = aarch64; then
enable_int_inlining=yes
else
enable_int_inlining=no
@@ -407,6 +409,7 @@ AC_CONFIG_FILES(
src/os/linux/x86_64/Makefile \
src/os/linux/parisc/Makefile \
src/os/linux/mips/Makefile \
+ src/os/linux/aarch64/Makefile \
src/os/darwin/i386/Makefile \
src/os/darwin/arm/Makefile \
src/os/darwin/powerpc/Makefile \
diff --git a/src/arch/Makefile.am b/src/arch/Makefile.am
index 7580a1b..4e2a4f9 100644
--- a/src/arch/Makefile.am
+++ b/src/arch/Makefile.am
@@ -19,4 +19,4 @@
## Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
##
-EXTRA_DIST = powerpc.h arm.h i386.h x86_64.h parisc.h mips.h sparc.h
+EXTRA_DIST = powerpc.h arm.h i386.h x86_64.h parisc.h mips.h sparc.h aarch64.h
diff --git a/src/arch/aarch64.h b/src/arch/aarch64.h
new file mode 100644
index 0000000..1912e79
--- /dev/null
+++ b/src/arch/aarch64.h
@@ -0,0 +1,147 @@
+/*
+ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008
+ * Robert Lougher <rob@jamvm.org.uk>.
+ * Copyright (C) 2020 Simon South <simon@simonsouth.net>.
+ *
+ * This file is part of JamVM.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2,
+ * or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include <stdint.h>
+
+#define OS_ARCH "aarch64"
+
+#define HANDLER_TABLE_T static const void
+#define DOUBLE_1_BITS 0x3ff0000000000000LL
+
+#define READ_DBL(v,p,l) v = ((u8)p[0]<<56)|((u8)p[1]<<48)|((u8)p[2]<<40) \
+ |((u8)p[3]<<32)|((u8)p[4]<<24)|((u8)p[5]<<16) \
+ |((u8)p[6]<<8)|(u8)p[7]; p+=8
+
+/* Needed for i386 -- empty here */
+#define FPU_HACK
+
+#define COMPARE_AND_SWAP_64(addr, old_val, new_val) \
+({ \
+ int result, read_val; \
+ __asm__ __volatile__ (" \
+ 1: ldaxr %2, %1; \
+ cmp %2, %3; \
+ b.ne 2f; \
+ stlxr %w0, %4, %1; \
+ cmp %w0, wzr; \
+ b.ne 1b; \
+ 2: cset %w0, eq;" \
+ : "=&r" (result), "+Q" (*addr), "=&r" (read_val) \
+ : "r" (old_val), "r" (new_val) \
+ : "cc"); \
+ result; \
+})
+
+#define COMPARE_AND_SWAP_32(addr, old_val, new_val) \
+({ \
+ int result, read_val; \
+ __asm__ __volatile__ (" \
+ 1: ldaxr %w2, %1; \
+ cmp %w2, %w3; \
+ b.ne 2f; \
+ stlxr %w0, %w4, %1; \
+ cmp %w0, wzr; \
+ b.ne 1b; \
+ 2: cset %w0, eq;" \
+ : "=&r" (result), "+Q" (*addr), "=&r" (read_val) \
+ : "r" (old_val), "r" (new_val) \
+ : "cc"); \
+ result; \
+})
+
+#define COMPARE_AND_SWAP(addr, old_val, new_val) \
+ COMPARE_AND_SWAP_64(addr, old_val, new_val)
+
+#define LOCKWORD_READ(addr) \
+({ \
+ uintptr_t result; \
+ __asm__ __volatile__ (" \
+ ldar %0, %1;" \
+ : "=r" (result) \
+ : "Q" (*addr) \
+ : "cc"); \
+ result; \
+})
+
+#define LOCKWORD_WRITE(addr, value) \
+({ \
+ __asm__ __volatile__ (" \
+ stlr %1, %0;" \
+ : "=Q" (*addr) \
+ : "r" (value) \
+ : "cc"); \
+})
+
+#define LOCKWORD_COMPARE_AND_SWAP(addr, old_val, new_val) \
+ COMPARE_AND_SWAP_64(addr, old_val, new_val)
+
+#define FLUSH_CACHE(addr, length) \
+{ \
+ uintptr_t start = (uintptr_t) (addr); \
+ uintptr_t end = start + length; \
+ uintptr_t i; \
+ \
+ for(i = start & aarch64_data_cache_line_mask; \
+ i < end; \
+ i += aarch64_data_cache_line_len) \
+ __asm__ ("dc cvau, %0" :: "r" (i)); \
+ \
+ __asm__ ("dsb ish"); \
+ \
+ for(i = start & aarch64_instruction_cache_line_mask; \
+ i < end; \
+ i += aarch64_instruction_cache_line_len) \
+ __asm__ ("ic ivau, %0" :: "r" (i)); \
+ \
+ __asm__ ("dsb ish; isb"); \
+}
+
+#define GEN_REL_JMP(target_addr, patch_addr, patch_size) \
+({ \
+ int patched = FALSE; \
+ \
+ if(patch_size >= 4) { \
+ /* Guard against the pointer difference being \
+ larger than the signed range */ \
+ long long offset = (uintptr_t)(target_addr) - \
+ (uintptr_t)(patch_addr); \
+ \
+ if(offset >= -1<<28 && offset < 1<<28) { \
+ *(uint32_t*)(patch_addr) = offset>>2 & 0x03ffffff \
+ | 0x14000000; \
+ patched = TRUE; \
+ } \
+ } \
+ patched; \
+})
+
+#define MBARRIER() __asm__ ("dmb ish" ::: "memory")
+#define RMBARRIER() __asm__ ("dmb ishld" ::: "memory")
+#define WMBARRIER() __asm__ ("dmb ishst" ::: "memory")
+#define JMM_LOCK_MBARRIER() __asm__ ("dmb ish" ::: "memory")
+#define JMM_UNLOCK_MBARRIER() JMM_LOCK_MBARRIER()
+
+/* Defined in src/os/linux/aarch64/init.c */
+extern unsigned char aarch64_data_cache_line_len;
+extern uintptr_t aarch64_data_cache_line_mask;
+extern unsigned char aarch64_instruction_cache_line_len;
+extern uintptr_t aarch64_instruction_cache_line_mask;
diff --git a/src/jam.c b/src/jam.c
index 052f84a..c97524a 100644
--- a/src/jam.c
+++ b/src/jam.c
@@ -98,7 +98,8 @@ void showUsage(char *name) {
void showVersionAndCopyright() {
printf("java version \"%s\"\n", JAVA_COMPAT_VERSION);
printf("JamVM version %s\n", VERSION);
- printf("Copyright (C) 2003-2014 Robert Lougher <rob@jamvm.org.uk>\n\n");
+ printf("Copyright (C) 2003-2014 Robert Lougher <rob@jamvm.org.uk>\n");
+ printf("Portions Copyright (C) 2020 Simon South <simon@simonsouth.net>\n\n");
printf("This program is free software; you can redistribute it and/or\n");
printf("modify it under the terms of the GNU General Public License\n");
printf("as published by the Free Software Foundation; either version 2,\n");
diff --git a/src/os/linux/Makefile.am b/src/os/linux/Makefile.am
index 542094e..83e7dfe 100644
--- a/src/os/linux/Makefile.am
+++ b/src/os/linux/Makefile.am
@@ -20,7 +20,7 @@
##
SUBDIRS = @arch@
-DIST_SUBDIRS = powerpc arm i386 x86_64 parisc mips
+DIST_SUBDIRS = powerpc arm i386 x86_64 parisc mips aarch64
noinst_LTLIBRARIES = libos.la
libos_la_SOURCES = os.c
diff --git a/src/os/linux/aarch64/Makefile.am b/src/os/linux/aarch64/Makefile.am
new file mode 100644
index 0000000..0e5134f
--- /dev/null
+++ b/src/os/linux/aarch64/Makefile.am
@@ -0,0 +1,28 @@
+##
+## Copyright (C) 2003, 2004, 2005, 2006, 2007, 2010, 2011, 2012
+## Robert Lougher <rob@jamvm.org.uk>.
+##
+## File added by Simon South <simon@simonsouth.net>.
+##
+## This file is part of JamVM.
+##
+## This program is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License
+## as published by the Free Software Foundation; either version 2,
+## or (at your option) any later version.
+##
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+
+noinst_LTLIBRARIES = libnative.la
+libnative_la_SOURCES = init.c dll_md.c callNative.S
+
+AM_CPPFLAGS = -I$(top_builddir)/src -I$(top_srcdir)/src
+AM_CCASFLAGS = -I$(top_builddir)/src
diff --git a/src/os/linux/aarch64/callNative.S b/src/os/linux/aarch64/callNative.S
new file mode 100644
index 0000000..e067c4f
--- /dev/null
+++ b/src/os/linux/aarch64/callNative.S
@@ -0,0 +1,212 @@
+/*
+ * Copyright (C) 2008, 2009, 2011, 2012 Robert Lougher <rob@jamvm.org.uk>.
+ * Copyright (C) 2020 Simon South <simon@simonsouth.net>.
+ *
+ * This file is part of JamVM.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2,
+ * or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include "config.h"
+
+#ifndef USE_FFI
+ .text
+ .arch armv8-a
+ .align 2
+ .global callJNIMethod
+ .type callJNIMethod,function
+
+/*
+ * Arguments passed in:
+ *
+ * x0 JNIEnv
+ * x1 class or NULL
+ * x2 sig
+ * w3 extra arg
+ * x4 ostack
+ * x5 function pntr
+ * w6 args count
+ */
+
+/* Register usage:
+ *
+ * x20 ostack
+ * x19 sig pntr
+ * x16 function pntr
+ * x15 ostack pntr
+ * x14 args pntr
+ * x13 float/double handler
+ * x12 int/long handler
+ * w11 fp regs remaining
+ * w10 int regs remaining
+ * x9 scratch
+ * x2-x7 outgoing int args
+ * x1 outgoing class or this pntr
+ * x0 outgoing JNIEnv (as passed in)
+ *
+ * d0 - d7 outgoing float args
+ */
+
+callJNIMethod:
+ stp x29, x30, [sp, #-32]!
+ mov x29, sp
+ stp x19, x20, [x29, #16]
+
+ sub sp, sp, w3 /* allocate room for stacked args */
+ mov x14, sp
+
+ mov x20, x4 /* preserve ostack */
+ add x19, x2, #1 /* init sig pntr -- skipping '(' */
+
+ mov x16, x5 /* save function pntr */
+ mov x15, x20 /* init ostack pntr */
+
+ adr x13, fp_reg_handlers-8
+ adr x12, int_reg_handlers-8
+
+ mov w11, #8 /* fp regs remaining */
+ mov w10, #6 /* int regs remaining */
+
+ cbnz x1, scan_sig /* is method non-static? */
+ ldr x1, [x15], #8 /* yes, load x1 with "this" */
+
+scan_sig:
+ ldrb w9, [x19], #1 /* get next sig char */
+
+ cmp w9, #41 /* ')' */
+ b.eq done
+
+ cmp w9, #74 /* 'J' */
+ b.eq long
+
+ cmp w9, #70 /* 'F' */
+ b.eq float
+
+ cmp w9, #68 /* 'D' */
+ b.eq double
+
+skip_brackets:
+ cmp w9, #91 /* '[' */
+ b.ne 1f
+ ldrb w9, [x19], #1
+ b skip_brackets
+1:
+ cmp w9, #76 /* 'L' */
+ b.ne int
+
+skip_ref:
+ ldrb w9, [x19], #1
+ cmp w9, #59 /* ';' */
+ b.ne skip_ref
+
+int:
+ ldr x9, [x15], #8
+ cbz w10, stack_push
+
+load_int_reg:
+ sub w10, w10, #1
+ add x12, x12, #8
+ br x12
+
+int_reg_handlers:
+ mov x2, x9
+ b scan_sig
+ mov x3, x9
+ b scan_sig
+ mov x4, x9
+ b scan_sig
+ mov x5, x9
+ b scan_sig
+ mov x6, x9
+ b scan_sig
+ mov x7, x9
+ b scan_sig
+
+long:
+ ldr x9, [x15], #16
+ cbz w10, stack_push
+ b load_int_reg
+
+float:
+ ldr w9, [x15], #8
+ cbz w11, stack_push
+ b load_fp_reg
+
+double:
+ ldr x9, [x15], #16
+ cbz w11, stack_push
+
+load_fp_reg:
+ sub w11, w11, #1
+ add x13, x13, #8
+ br x13
+
+fp_reg_handlers:
+ fmov d0, x9
+ b scan_sig
+ fmov d1, x9
+ b scan_sig
+ fmov d2, x9
+ b scan_sig
+ fmov d3, x9
+ b scan_sig
+ fmov d4, x9
+ b scan_sig
+ fmov d5, x9
+ b scan_sig
+ fmov d6, x9
+ b scan_sig
+ fmov d7, x9
+ b scan_sig
+
+stack_push:
+ str x9, [x14], #8
+ b scan_sig
+
+done:
+ /* Call the function */
+ blr x16
+
+ mov sp, x29 /* Pop argument area */
+
+ ldrb w9, [x19] /* Return type */
+
+ cmp w9, #86 /* 'V' */
+ b.eq return
+
+ cmp w9, #68 /* 'D' */
+ b.ne 2f
+ str d0, [x20], #16
+ b return
+2:
+ cmp w9, #70 /* 'F' */
+ b.ne 3f
+ str s0, [x20], #8
+ b return
+3:
+ cmp w9, #74 /* 'J' */
+ b.ne 4f
+ str x0, [x20], #16
+ b return
+4:
+ str x0, [x20], #8
+
+return:
+ mov x0, x20 /* return ostack */
+
+ ldp x19, x20, [x29, #16]
+ ldp x29, x30, [sp], #32
+ ret
+#endif
diff --git a/src/os/linux/aarch64/dll_md.c b/src/os/linux/aarch64/dll_md.c
new file mode 100644
index 0000000..189f8a8
--- /dev/null
+++ b/src/os/linux/aarch64/dll_md.c
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2010, 2011
+ * Robert Lougher <rob@jamvm.org.uk>.
+ * Copyright (C) 2020 Simon South <simon@simonsouth.net>.
+ *
+ * This file is part of JamVM.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2,
+ * or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include "jam.h"
+
+#ifndef USE_FFI
+
+int nativeExtraArg(MethodBlock *mb) {
+ char *sig = mb->type;
+ int stack_args = 0;
+ int int_args = 6;
+ int fp_args = 8;
+
+ while(*++sig != ')')
+ switch(*sig) {
+ case 'F':
+ case 'D':
+ if(fp_args == 0)
+ stack_args += 8;
+ else
+ fp_args--;
+
+ default:
+ if(int_args == 0)
+ stack_args += 8;
+ else
+ int_args--;
+
+ if(*sig == '[')
+ while(*++sig == '[');
+ if(*sig == 'L')
+ while(*++sig != ';');
+ break;
+ }
+
+ /* Ensure the stack remains 16 byte aligned. */
+ return (stack_args + 15) & ~15;
+}
+
+#endif
diff --git a/src/os/linux/aarch64/init.c b/src/os/linux/aarch64/init.c
new file mode 100644
index 0000000..b21dc55
--- /dev/null
+++ b/src/os/linux/aarch64/init.c
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2003, 2004, 2005, 2006, 2007
+ * Robert Lougher <rob@jamvm.org.uk>.
+ * Copyright (C) 2020 Simon South <simon@simonsouth.net>.
+ *
+ * This file is part of JamVM.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2,
+ * or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include "arch/aarch64.h"
+
+/* Length in bytes of the smallest line in the host system's data cache */
+unsigned char aarch64_data_cache_line_len;
+
+/* Mask used to align a virtual address to a line in the data cache */
+uintptr_t aarch64_data_cache_line_mask;
+
+/* Length in bytes of the smallest line in the host system's instruction
+ cache */
+unsigned char aarch64_instruction_cache_line_len;
+
+/* Mask used to align a virtual address to a line in the instruction cache */
+uintptr_t aarch64_instruction_cache_line_mask;
+
+void initialisePlatform() {
+ unsigned int cache_type;
+
+ /* Extract information from the cache-type register, which describes aspects
+ of the host's cache configuration */
+ __asm__ ("mrs %0, ctr_el0" : "=r" (cache_type));
+
+ aarch64_data_cache_line_len = 4 << ((cache_type >> 16) & 0x0f);
+ aarch64_data_cache_line_mask = ~(aarch64_data_cache_line_len - 1);
+
+ aarch64_instruction_cache_line_len = 4 << (cache_type & 0x0f);
+ aarch64_instruction_cache_line_mask =
+ ~(aarch64_instruction_cache_line_len - 1);
+}
--
2.26.2

View File

@ -0,0 +1,35 @@
From ca11b53896365c948426974cb90e8f71c70d123b Mon Sep 17 00:00:00 2001
From: Simon South <simon@simonsouth.net>
Date: Sun, 31 May 2020 20:36:43 -0400
Subject: [PATCH] Guard floating-point opcodes with explicit memory barrier
---
src/interp/engine/interp-inlining.h | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/src/interp/engine/interp-inlining.h b/src/interp/engine/interp-inlining.h
index 3339b0e..4ee5c5a 100644
--- a/src/interp/engine/interp-inlining.h
+++ b/src/interp/engine/interp-inlining.h
@@ -78,8 +78,17 @@
4.3, we need to insert a label, and ensure its address
is taken (to stop it being optimised out). However,
this reduces performance on PowerPC by approx 1 - 2%.
+
+ With gcc 5 and newer an asm statement with a "memory"
+ clobber argument explicitly sets a memory barrier for the
+ compiler, preventing it from reordering memory accesses
+ in a way that breaks decaching.
*/
-#if (__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)
+#if (__GNUC__ > 4)
+#define DEF_GUARD_TABLE(level) /* none */
+#define GUARD(opcode, level) __asm__("" ::: "memory");
+#define GUARD_TBLS /* none */
+#elif (__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)
#define DEF_GUARD_TABLE(level) DEF_HANDLER_TABLE(level, GUARD)
#define GUARD(opcode, level) label(opcode, level, GUARD)
#define GUARD_TBLS , HNDLR_TBLS(GUARD)
--
2.26.2

View File

@ -0,0 +1,87 @@
From 56ae699a27eca52cc0bb14cbc9944b62136be52b Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Sun, 20 Sep 2020 21:07:29 +0200
Subject: [PATCH] Separate addPropertyAliases in two methods
The quantity of data used to generate addPropertyAliases creates a big
method, that is too big for java and results in "error: code too large".
This is most likely due to added data between the expected version of
icu and the actual version of icu in Guix.
---
.../org/antlr/v4/tool/templates/unicodedata.st | 15 ++++++++++++---
.../unicode/UnicodeDataTemplateController.java | 18 ++++++++++--------
2 files changed, 22 insertions(+), 11 deletions(-)
diff --git a/tool/resources/org/antlr/v4/tool/templates/unicodedata.st b/tool/resources/org/antlr/v4/tool/templates/unicodedata.st
index f5052b7..125d15b 100644
--- a/tool/resources/org/antlr/v4/tool/templates/unicodedata.st
+++ b/tool/resources/org/antlr/v4/tool/templates/unicodedata.st
@@ -1,4 +1,4 @@
-unicodedata(propertyCodePointRanges, propertyAliases) ::= <<
+unicodedata(propertyCodePointRanges, propertyAliasesA, propertyAliasesB) ::= <<
package org.antlr.v4.unicode;
import java.util.Arrays;
@@ -17,7 +17,7 @@ public enum UnicodeData {
;
private static final Map\<String, IntervalSet\> propertyCodePointRanges = new HashMap\<String, IntervalSet\>(<length(propertyCodePointRanges)>);
- private static final Map\<String, String\> propertyAliases = new HashMap\<String, String\>(<length(propertyAliases)>);
+ private static final Map\<String, String\> propertyAliases = new HashMap\<String, String\>(<length(propertyAliasesA)> + <length(propertyAliasesB)>);
// Work around Java 64k bytecode method limit by splitting up static
// initialization into one method per Unicode property
@@ -33,8 +33,17 @@ static private void addProperty<i>() {
\}}; separator="\n\n">
// Property aliases
+ static private void addPropertyAliasesA() {
+ <propertyAliasesA.keys:{ k | propertyAliases.put("<k>".toLowerCase(Locale.US), "<propertyAliasesA.(k)>".toLowerCase(Locale.US)); }; separator="\n">
+ }
+
+ static private void addPropertyAliasesB() {
+ <propertyAliasesB.keys:{ k | propertyAliases.put("<k>".toLowerCase(Locale.US), "<propertyAliasesB.(k)>".toLowerCase(Locale.US)); }; separator="\n">
+ }
+
static private void addPropertyAliases() {
- <propertyAliases.keys:{ k | propertyAliases.put("<k>".toLowerCase(Locale.US), "<propertyAliases.(k)>".toLowerCase(Locale.US)); }; separator="\n">
+ addPropertyAliasesA();
+ addPropertyAliasesB();
}
// Put it all together
diff --git a/tool/src/org/antlr/v4/unicode/UnicodeDataTemplateController.java b/tool/src/org/antlr/v4/unicode/UnicodeDataTemplateController.java
index 570190c..692cee0 100644
--- a/tool/src/org/antlr/v4/unicode/UnicodeDataTemplateController.java
+++ b/tool/src/org/antlr/v4/unicode/UnicodeDataTemplateController.java
@@ -74,17 +74,19 @@ public abstract class UnicodeDataTemplateController {
addTR35ExtendedPictographicPropertyCodesToCodePointRanges(propertyCodePointRanges);
addEmojiPresentationPropertyCodesToCodePointRanges(propertyCodePointRanges);
- Map<String, String> propertyAliases = new LinkedHashMap<String, String>();
- addUnicodeCategoryCodesToNames(propertyAliases);
- addUnicodeBinaryPropertyCodesToNames(propertyAliases);
- addUnicodeScriptCodesToNames(propertyAliases);
- addUnicodeBlocksToNames(propertyAliases);
- addUnicodeIntPropertyCodesToNames(propertyAliases);
- propertyAliases.put("EP", "Extended_Pictographic");
+ Map<String, String> propertyAliasesA = new LinkedHashMap<String, String>();
+ Map<String, String> propertyAliasesB = new LinkedHashMap<String, String>();
+ addUnicodeCategoryCodesToNames(propertyAliasesA);
+ addUnicodeBinaryPropertyCodesToNames(propertyAliasesA);
+ addUnicodeScriptCodesToNames(propertyAliasesA);
+ addUnicodeBlocksToNames(propertyAliasesB);
+ addUnicodeIntPropertyCodesToNames(propertyAliasesB);
+ propertyAliasesB.put("EP", "Extended_Pictographic");
Map<String, Object> properties = new LinkedHashMap<String, Object>();
properties.put("propertyCodePointRanges", propertyCodePointRanges);
- properties.put("propertyAliases", propertyAliases);
+ properties.put("propertyAliasesA", propertyAliasesA);
+ properties.put("propertyAliasesB", propertyAliasesB);
return properties;
}
--
2.28.0

View File

@ -0,0 +1,51 @@
Fix build against libyaml 0.2.5.
Taken from upstream:
https://github.com/tlsa/libcyaml/commit/0e947264b947f51f7ea785068637c4bfce5d4171
diff --git a/test/units/save.c b/test/units/save.c
--- a/test/units/save.c
+++ b/test/units/save.c
@@ -3476,7 +3476,7 @@ static bool test_save_sequence_null_values_int(
ttest_report_ctx_t *report,
const cyaml_config_t *config)
{
- static const unsigned char ref[] =
+ static const unsigned char ref1[] =
"---\n"
"- 7\n"
"- 6\n"
@@ -3487,6 +3487,18 @@ static bool test_save_sequence_null_values_int(
"- \n"
"- 0\n"
"...\n";
+ /* As of libyaml 0.2.5, trailing spaces are not emitted. */
+ static const unsigned char ref2[] =
+ "---\n"
+ "- 7\n"
+ "- 6\n"
+ "- 5\n"
+ "-\n"
+ "- 3\n"
+ "- 2\n"
+ "-\n"
+ "- 0\n"
+ "...\n";
static const int d[] = { 7, 6, 5, 4, 3, 2, 1, 0 };
static const int *data[] = { d + 0, d + 1, d + 2, NULL,
d + 4, d + 5, NULL, d + 7, };
@@ -3515,11 +3527,12 @@ static bool test_save_sequence_null_values_int(
return ttest_fail(&tc, cyaml_strerror(err));
}
- if (len != YAML_LEN(ref) || memcmp(ref, buffer, len) != 0) {
+ if ((len != YAML_LEN(ref1) || memcmp(ref1, buffer, len) != 0) &&
+ (len != YAML_LEN(ref2) || memcmp(ref2, buffer, len) != 0)) {
return ttest_fail(&tc, "Bad data:\n"
"EXPECTED (%zu):\n\n%.*s\n\n"
"GOT (%zu):\n\n%.*s\n",
- YAML_LEN(ref), YAML_LEN(ref), ref,
+ YAML_LEN(ref1), YAML_LEN(ref1), ref1,
len, len, buffer);
}

View File

@ -1,42 +0,0 @@
Only check for for relative path on virtio devices. Otherwise it could
break driver loading in some circumstances, notably the IceCat sandbox.
https://gitlab.freedesktop.org/mesa/drm/-/issues/39
Taken from upstream:
https://gitlab.freedesktop.org/mesa/drm/-/commit/57df07572ce45a1b60bae6fb89770388d3abd6dd
diff --git a/xf86drm.c b/xf86drm.c
--- a/xf86drm.c
+++ b/xf86drm.c
@@ -3103,15 +3103,18 @@ static int drmParseSubsystemType(int maj, int min)
int subsystem_type;
snprintf(path, sizeof(path), "/sys/dev/char/%d:%d/device", maj, min);
- if (!realpath(path, real_path))
- return -errno;
- snprintf(path, sizeof(path), "%s", real_path);
subsystem_type = get_subsystem_type(path);
+ /* Try to get the parent (underlying) device type */
if (subsystem_type == DRM_BUS_VIRTIO) {
+ /* Assume virtio-pci on error */
+ if (!realpath(path, real_path))
+ return DRM_BUS_VIRTIO;
strncat(path, "/..", PATH_MAX);
subsystem_type = get_subsystem_type(path);
- }
+ if (subsystem_type < 0)
+ return DRM_BUS_VIRTIO;
+ }
return subsystem_type;
#elif defined(__OpenBSD__) || defined(__DragonFly__) || defined(__FreeBSD__)
return DRM_BUS_PCI;
@@ -3920,6 +3923,7 @@ process_device(drmDevicePtr *device, const char *d_name,
switch (subsystem_type) {
case DRM_BUS_PCI:
+ case DRM_BUS_VIRTIO:
return drmProcessPciDevice(device, node, node_type, maj, min,
fetch_deviceinfo, flags);
case DRM_BUS_USB:

View File

@ -1,97 +0,0 @@
Fix CVE-2017-12562:
https://github.com/erikd/libsndfile/issues/292
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-12562
Patch copied from upstream source repository:
https://github.com/erikd/libsndfile/commit/cf7a8182c2642c50f1cf90dddea9ce96a8bad2e8
From cf7a8182c2642c50f1cf90dddea9ce96a8bad2e8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B6rn=20Heusipp?= <osmanx@problemloesungsmaschine.de>
Date: Wed, 14 Jun 2017 12:25:40 +0200
Subject: [PATCH] src/common.c: Fix heap buffer overflows when writing strings
in binheader
Fixes the following problems:
1. Case 's' only enlarges the buffer by 16 bytes instead of size bytes.
2. psf_binheader_writef() enlarges the header buffer (if needed) prior to the
big switch statement by an amount (16 bytes) which is enough for all cases
where only a single value gets added. Cases 's', 'S', 'p' however
additionally write an arbitrary length block of data and again enlarge the
buffer to the required amount. However, the required space calculation does
not take into account the size of the length field which gets output before
the data.
3. Buffer size requirement calculation in case 'S' does not account for the
padding byte ("size += (size & 1) ;" happens after the calculation which
uses "size").
4. Case 'S' can overrun the header buffer by 1 byte when no padding is
involved
("memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size + 1) ;" while
the buffer is only guaranteed to have "size" space available).
5. "psf->header.ptr [psf->header.indx] = 0 ;" in case 'S' always writes 1 byte
beyond the space which is guaranteed to be allocated in the header buffer.
6. Case 's' can overrun the provided source string by 1 byte if padding is
involved ("memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size) ;"
where "size" is "strlen (strptr) + 1" (which includes the 0 terminator,
plus optionally another 1 which is padding and not guaranteed to be
readable via the source string pointer).
Closes: https://github.com/erikd/libsndfile/issues/292
---
src/common.c | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/src/common.c b/src/common.c
index 1a6204ca..6b2a2ee9 100644
--- a/src/common.c
+++ b/src/common.c
@@ -681,16 +681,16 @@ psf_binheader_writef (SF_PRIVATE *psf, const char *format, ...)
/* Write a C string (guaranteed to have a zero terminator). */
strptr = va_arg (argptr, char *) ;
size = strlen (strptr) + 1 ;
- size += (size & 1) ;
- if (psf->header.indx + (sf_count_t) size >= psf->header.len && psf_bump_header_allocation (psf, 16))
+ if (psf->header.indx + 4 + (sf_count_t) size + (sf_count_t) (size & 1) > psf->header.len && psf_bump_header_allocation (psf, 4 + size + (size & 1)))
return count ;
if (psf->rwf_endian == SF_ENDIAN_BIG)
- header_put_be_int (psf, size) ;
+ header_put_be_int (psf, size + (size & 1)) ;
else
- header_put_le_int (psf, size) ;
+ header_put_le_int (psf, size + (size & 1)) ;
memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size) ;
+ size += (size & 1) ;
psf->header.indx += size ;
psf->header.ptr [psf->header.indx - 1] = 0 ;
count += 4 + size ;
@@ -703,16 +703,15 @@ psf_binheader_writef (SF_PRIVATE *psf, const char *format, ...)
*/
strptr = va_arg (argptr, char *) ;
size = strlen (strptr) ;
- if (psf->header.indx + (sf_count_t) size > psf->header.len && psf_bump_header_allocation (psf, size))
+ if (psf->header.indx + 4 + (sf_count_t) size + (sf_count_t) (size & 1) > psf->header.len && psf_bump_header_allocation (psf, 4 + size + (size & 1)))
return count ;
if (psf->rwf_endian == SF_ENDIAN_BIG)
header_put_be_int (psf, size) ;
else
header_put_le_int (psf, size) ;
- memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size + 1) ;
+ memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size + (size & 1)) ;
size += (size & 1) ;
psf->header.indx += size ;
- psf->header.ptr [psf->header.indx] = 0 ;
count += 4 + size ;
break ;
@@ -724,7 +723,7 @@ psf_binheader_writef (SF_PRIVATE *psf, const char *format, ...)
size = (size & 1) ? size : size + 1 ;
size = (size > 254) ? 254 : size ;
- if (psf->header.indx + (sf_count_t) size > psf->header.len && psf_bump_header_allocation (psf, size))
+ if (psf->header.indx + 1 + (sf_count_t) size > psf->header.len && psf_bump_header_allocation (psf, 1 + size))
return count ;
header_put_byte (psf, size) ;

View File

@ -1,77 +0,0 @@
Fix CVE-2017-{8361,8363,8365}:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8361
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8363
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8365
Patch copied from upstream source repository:
https://github.com/erikd/libsndfile/commit/fd0484aba8e51d16af1e3a880f9b8b857b385eb3
From fd0484aba8e51d16af1e3a880f9b8b857b385eb3 Mon Sep 17 00:00:00 2001
From: Erik de Castro Lopo <erikd@mega-nerd.com>
Date: Wed, 12 Apr 2017 19:45:30 +1000
Subject: [PATCH] FLAC: Fix a buffer read overrun
Buffer read overrun occurs when reading a FLAC file that switches
from 2 channels to one channel mid-stream. Only option is to
abort the read.
Closes: https://github.com/erikd/libsndfile/issues/230
---
src/common.h | 1 +
src/flac.c | 13 +++++++++++++
src/sndfile.c | 1 +
3 files changed, 15 insertions(+)
diff --git a/src/common.h b/src/common.h
index 0bd810c3..e2669b6a 100644
--- a/src/common.h
+++ b/src/common.h
@@ -725,6 +725,7 @@ enum
SFE_FLAC_INIT_DECODER,
SFE_FLAC_LOST_SYNC,
SFE_FLAC_BAD_SAMPLE_RATE,
+ SFE_FLAC_CHANNEL_COUNT_CHANGED,
SFE_FLAC_UNKOWN_ERROR,
SFE_WVE_NOT_WVE,
diff --git a/src/flac.c b/src/flac.c
index 84de0e26..986a7b8f 100644
--- a/src/flac.c
+++ b/src/flac.c
@@ -434,6 +434,19 @@ sf_flac_meta_callback (const FLAC__StreamDecoder * UNUSED (decoder), const FLAC_
switch (metadata->type)
{ case FLAC__METADATA_TYPE_STREAMINFO :
+ if (psf->sf.channels > 0 && psf->sf.channels != (int) metadata->data.stream_info.channels)
+ { psf_log_printf (psf, "Error: FLAC stream changed from %d to %d channels\n"
+ "Nothing to be but to error out.\n" ,
+ psf->sf.channels, metadata->data.stream_info.channels) ;
+ psf->error = SFE_FLAC_CHANNEL_COUNT_CHANGED ;
+ return ;
+ } ;
+
+ if (psf->sf.channels > 0 && psf->sf.samplerate != (int) metadata->data.stream_info.sample_rate)
+ { psf_log_printf (psf, "Warning: FLAC stream changed sample rates from %d to %d.\n"
+ "Carrying on as if nothing happened.",
+ psf->sf.samplerate, metadata->data.stream_info.sample_rate) ;
+ } ;
psf->sf.channels = metadata->data.stream_info.channels ;
psf->sf.samplerate = metadata->data.stream_info.sample_rate ;
psf->sf.frames = metadata->data.stream_info.total_samples ;
diff --git a/src/sndfile.c b/src/sndfile.c
index 41875610..e2a87be8 100644
--- a/src/sndfile.c
+++ b/src/sndfile.c
@@ -245,6 +245,7 @@ ErrorStruct SndfileErrors [] =
{ SFE_FLAC_INIT_DECODER , "Error : problem with initialization of the flac decoder." },
{ SFE_FLAC_LOST_SYNC , "Error : flac decoder lost sync." },
{ SFE_FLAC_BAD_SAMPLE_RATE, "Error : flac does not support this sample rate." },
+ { SFE_FLAC_CHANNEL_COUNT_CHANGED, "Error : flac channel changed mid stream." },
{ SFE_FLAC_UNKOWN_ERROR , "Error : unknown error in flac decoder." },
{ SFE_WVE_NOT_WVE , "Error : not a WVE file." },
--
2.12.2

View File

@ -1,61 +0,0 @@
Fix CVE-2017-8362:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8362
Patch copied from upstream source repository:
https://github.com/erikd/libsndfile/commit/ef1dbb2df1c0e741486646de40bd638a9c4cd808
From ef1dbb2df1c0e741486646de40bd638a9c4cd808 Mon Sep 17 00:00:00 2001
From: Erik de Castro Lopo <erikd@mega-nerd.com>
Date: Fri, 14 Apr 2017 15:19:16 +1000
Subject: [PATCH] src/flac.c: Fix a buffer read overflow
A file (generated by a fuzzer) which increased the number of channels
from one frame to the next could cause a read beyond the end of the
buffer provided by libFLAC. Only option is to abort the read.
Closes: https://github.com/erikd/libsndfile/issues/231
---
src/flac.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/flac.c b/src/flac.c
index 5a4f8c21..e4f9aaa0 100644
--- a/src/flac.c
+++ b/src/flac.c
@@ -169,6 +169,14 @@ flac_buffer_copy (SF_PRIVATE *psf)
const int32_t* const *buffer = pflac->wbuffer ;
unsigned i = 0, j, offset, channels, len ;
+ if (psf->sf.channels != (int) frame->header.channels)
+ { psf_log_printf (psf, "Error: FLAC frame changed from %d to %d channels\n"
+ "Nothing to do but to error out.\n" ,
+ psf->sf.channels, frame->header.channels) ;
+ psf->error = SFE_FLAC_CHANNEL_COUNT_CHANGED ;
+ return 0 ;
+ } ;
+
/*
** frame->header.blocksize is variable and we're using a constant blocksize
** of FLAC__MAX_BLOCK_SIZE.
@@ -202,7 +210,6 @@ flac_buffer_copy (SF_PRIVATE *psf)
return 0 ;
} ;
-
len = SF_MIN (pflac->len, frame->header.blocksize) ;
if (pflac->remain % channels != 0)
@@ -436,7 +443,7 @@ sf_flac_meta_callback (const FLAC__StreamDecoder * UNUSED (decoder), const FLAC_
{ case FLAC__METADATA_TYPE_STREAMINFO :
if (psf->sf.channels > 0 && psf->sf.channels != (int) metadata->data.stream_info.channels)
{ psf_log_printf (psf, "Error: FLAC stream changed from %d to %d channels\n"
- "Nothing to be but to error out.\n" ,
+ "Nothing to do but to error out.\n" ,
psf->sf.channels, metadata->data.stream_info.channels) ;
psf->error = SFE_FLAC_CHANNEL_COUNT_CHANGED ;
return ;
--
2.12.2

View File

@ -1,42 +0,0 @@
This is a regression in 1.0.28 that causes a test failure on armhf.
Upstream bug URL:
https://github.com/erikd/libsndfile/issues/229
Patch copied from upstream source repository:
https://github.com/erikd/libsndfile/commit/9d470ee5577d3ccedb1c28c7e0a7295ba17feaf5
From 9d470ee5577d3ccedb1c28c7e0a7295ba17feaf5 Mon Sep 17 00:00:00 2001
From: Erik de Castro Lopo <erikd@mega-nerd.com>
Date: Sun, 16 Apr 2017 17:54:17 +1000
Subject: [PATCH] src/rf64.c: Fix varargs related bug
C's <stargs.h> functionality isn't type checked so that passing an
`sf_count_t` (64 bits) by mistake in place of a `unit32_t` can cause
errors. This would be fine if it was an error on every architecture
and platform, but its not. This particular problem only manifested
on armhf and some other Arm architectures. It was not an issue on
32 bit x86.
I have now fixed variants of this same bug several times.
Closes: https://github.com/erikd/libsndfile/issues/229
---
src/rf64.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/rf64.c b/src/rf64.c
index b3d637f..02dd904 100644
--- a/src/rf64.c
+++ b/src/rf64.c
@@ -742,7 +742,7 @@ rf64_write_header (SF_PRIVATE *psf, int calc_length)
pad_size = psf->dataoffset - 16 - psf->header.indx ;
if (pad_size >= 0)
- psf_binheader_writef (psf, "m4z", PAD_MARKER, pad_size, make_size_t (pad_size)) ;
+ psf_binheader_writef (psf, "m4z", PAD_MARKER, (unsigned int) pad_size, make_size_t (pad_size)) ;
if (wpriv->rf64_downgrade && (psf->filelength < RIFF_DOWNGRADE_BYTES))
psf_binheader_writef (psf, "tm8", data_MARKER, psf->datalength) ;

View File

@ -1,37 +0,0 @@
From 93efa48a7b972fc463406603574a4d508eefe792 Mon Sep 17 00:00:00 2001
From: Sergei Golubchik <serg@mariadb.org>
Date: Sun, 13 May 2018 18:50:21 +0200
Subject: [PATCH] fix failing main.mysql_client_test test on 32bit
in `ulonglong=ulong*uint` multiplication
is done in ulong, wrapping around on 32bit.
This became visible after C/C changed the
default charset to utf8, thus changing
mbmaxlem from 1 to 3.
---
tests/mysql_client_fw.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tests/mysql_client_fw.c b/tests/mysql_client_fw.c
index f69eb28a2871..4d036887629a 100644
--- a/tests/mysql_client_fw.c
+++ b/tests/mysql_client_fw.c
@@ -768,7 +768,7 @@ static void do_verify_prepare_field(MYSQL_RES *result,
{
MYSQL_FIELD *field;
CHARSET_INFO *cs;
- ulonglong expected_field_length;
+ ulonglong expected_field_length= length;
if (!(field= mysql_fetch_field_direct(result, no)))
{
@@ -777,7 +777,7 @@ static void do_verify_prepare_field(MYSQL_RES *result,
}
cs= get_charset(field->charsetnr, 0);
DIE_UNLESS(cs);
- if ((expected_field_length= length * cs->mbmaxlen) > UINT_MAX32)
+ if ((expected_field_length*= cs->mbmaxlen) > UINT_MAX32)
expected_field_length= UINT_MAX32;
if (!opt_silent)
{

View File

@ -1,225 +0,0 @@
Description: Create nss.pc and nss-config
Author: Lars Wendler <polynomial-c@gentoo.org>
Source: http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-libs/nss/files/nss-3.17.1-gentoo-fixups.patch
Modifications:
Change libdir from ${prefix}/lib64 to ${prefix}/lib/nss.
Remove optional patching in nss/Makefile.
Include -L$libdir in output from "nss-config --libs".
Later adapted to apply cleanly to nss-3.21.
--- nss-3.21/nss/config/Makefile
+++ nss-3.21/nss/config/Makefile
@@ -0,0 +1,40 @@
+CORE_DEPTH = ..
+DEPTH = ..
+
+include $(CORE_DEPTH)/coreconf/config.mk
+
+NSS_MAJOR_VERSION = `grep "NSS_VMAJOR" ../lib/nss/nss.h | awk '{print $$3}'`
+NSS_MINOR_VERSION = `grep "NSS_VMINOR" ../lib/nss/nss.h | awk '{print $$3}'`
+NSS_PATCH_VERSION = `grep "NSS_VPATCH" ../lib/nss/nss.h | awk '{print $$3}'`
+PREFIX = /usr
+
+all: export libs
+
+export:
+ # Create the nss.pc file
+ mkdir -p $(DIST)/lib/pkgconfig
+ sed -e "s,@prefix@,$(PREFIX)," \
+ -e "s,@exec_prefix@,\$${prefix}," \
+ -e "s,@libdir@,\$${prefix}/lib/nss," \
+ -e "s,@includedir@,\$${prefix}/include/nss," \
+ -e "s,@NSS_MAJOR_VERSION@,$(NSS_MAJOR_VERSION),g" \
+ -e "s,@NSS_MINOR_VERSION@,$(NSS_MINOR_VERSION)," \
+ -e "s,@NSS_PATCH_VERSION@,$(NSS_PATCH_VERSION)," \
+ nss.pc.in > nss.pc
+ chmod 0644 nss.pc
+ cp nss.pc $(DIST)/lib/pkgconfig
+
+ # Create the nss-config script
+ mkdir -p $(DIST)/bin
+ sed -e "s,@prefix@,$(PREFIX)," \
+ -e "s,@NSS_MAJOR_VERSION@,$(NSS_MAJOR_VERSION)," \
+ -e "s,@NSS_MINOR_VERSION@,$(NSS_MINOR_VERSION)," \
+ -e "s,@NSS_PATCH_VERSION@,$(NSS_PATCH_VERSION)," \
+ nss-config.in > nss-config
+ chmod 0755 nss-config
+ cp nss-config $(DIST)/bin
+
+libs:
+
+dummy: all export libs
+
--- nss-3.21/nss/config/nss-config.in
+++ nss-3.21/nss/config/nss-config.in
@@ -0,0 +1,145 @@
+#!/bin/sh
+
+prefix=@prefix@
+
+major_version=@NSS_MAJOR_VERSION@
+minor_version=@NSS_MINOR_VERSION@
+patch_version=@NSS_PATCH_VERSION@
+
+usage()
+{
+ cat <<EOF
+Usage: nss-config [OPTIONS] [LIBRARIES]
+Options:
+ [--prefix[=DIR]]
+ [--exec-prefix[=DIR]]
+ [--includedir[=DIR]]
+ [--libdir[=DIR]]
+ [--version]
+ [--libs]
+ [--cflags]
+Dynamic Libraries:
+ nss
+ ssl
+ smime
+ nssutil
+EOF
+ exit $1
+}
+
+if test $# -eq 0; then
+ usage 1 1>&2
+fi
+
+lib_ssl=yes
+lib_smime=yes
+lib_nss=yes
+lib_nssutil=yes
+
+while test $# -gt 0; do
+ case "$1" in
+ -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) optarg= ;;
+ esac
+
+ case $1 in
+ --prefix=*)
+ prefix=$optarg
+ ;;
+ --prefix)
+ echo_prefix=yes
+ ;;
+ --exec-prefix=*)
+ exec_prefix=$optarg
+ ;;
+ --exec-prefix)
+ echo_exec_prefix=yes
+ ;;
+ --includedir=*)
+ includedir=$optarg
+ ;;
+ --includedir)
+ echo_includedir=yes
+ ;;
+ --libdir=*)
+ libdir=$optarg
+ ;;
+ --libdir)
+ echo_libdir=yes
+ ;;
+ --version)
+ echo ${major_version}.${minor_version}.${patch_version}
+ ;;
+ --cflags)
+ echo_cflags=yes
+ ;;
+ --libs)
+ echo_libs=yes
+ ;;
+ ssl)
+ lib_ssl=yes
+ ;;
+ smime)
+ lib_smime=yes
+ ;;
+ nss)
+ lib_nss=yes
+ ;;
+ nssutil)
+ lib_nssutil=yes
+ ;;
+ *)
+ usage 1 1>&2
+ ;;
+ esac
+ shift
+done
+
+# Set variables that may be dependent upon other variables
+if test -z "$exec_prefix"; then
+ exec_prefix=`pkg-config --variable=exec_prefix nss`
+fi
+if test -z "$includedir"; then
+ includedir=`pkg-config --variable=includedir nss`
+fi
+if test -z "$libdir"; then
+ libdir=`pkg-config --variable=libdir nss`
+fi
+
+if test "$echo_prefix" = "yes"; then
+ echo $prefix
+fi
+
+if test "$echo_exec_prefix" = "yes"; then
+ echo $exec_prefix
+fi
+
+if test "$echo_includedir" = "yes"; then
+ echo $includedir
+fi
+
+if test "$echo_libdir" = "yes"; then
+ echo $libdir
+fi
+
+if test "$echo_cflags" = "yes"; then
+ echo -I$includedir
+fi
+
+if test "$echo_libs" = "yes"; then
+ libdirs=-L$libdir
+ if test -n "$lib_ssl"; then
+ libdirs="$libdirs -lssl${major_version}"
+ fi
+ if test -n "$lib_smime"; then
+ libdirs="$libdirs -lsmime${major_version}"
+ fi
+ if test -n "$lib_nss"; then
+ libdirs="$libdirs -lnss${major_version}"
+ fi
+ if test -n "$lib_nssutil"; then
+ libdirs="$libdirs -lnssutil${major_version}"
+ fi
+ echo $libdirs
+fi
+
--- nss-3.21/nss/config/nss.pc.in
+++ nss-3.21/nss/config/nss.pc.in
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: NSS
+Description: Network Security Services
+Version: @NSS_MAJOR_VERSION@.@NSS_MINOR_VERSION@.@NSS_PATCH_VERSION@
+Requires: nspr >= 4.8
+Libs: -L${libdir} -lssl3 -lsmime3 -lnss3 -lnssutil3
+Cflags: -I${includedir}
+
--- nss-3.21/nss/manifest.mn
+++ nss-3.21/nss/manifest.mn
@@ -10,4 +10,4 @@
RELEASE = nss
-DIRS = coreconf lib cmd cpputil gtests
+DIRS = coreconf lib cmd cpputil gtests config

View File

@ -1,36 +0,0 @@
Fix build with Python 3.8 by also checking for python-3.X-embed.pc. Since
Python 3.8 the normal checks don't include the Python libraries anymore and
linking of the gst-python module would fail.
See also https://github.com/mesonbuild/meson/issues/5629
Fixes https://gitlab.freedesktop.org/gstreamer/gst-python/issues/28
Patch based on upstream commit:
https://gitlab.freedesktop.org/gstreamer/gst-python/-/commit/10707f437f2fc3632067c6a0efa4432f7ebaf362
diff --git a/meson.build b/meson.build
index 5f13b48..d7c7e66 100644
--- a/meson.build
+++ b/meson.build
@@ -23,7 +23,17 @@ pygobject_dep = dependency('pygobject-3.0', fallback: ['pygobject', 'pygobject_d
pymod = import('python')
python = pymod.find_installation(get_option('python'))
-python_dep = python.dependency(required : true)
+pythonver = python.language_version()
+if pythonver.version_compare('<3.0')
+ error('Python2 is not supported anymore, please port your code to python3 (@0@ specified)'.format(python.language_version()))
+endif
+
+# Workaround for https://github.com/mesonbuild/meson/issues/5629
+# https://gitlab.freedesktop.org/gstreamer/gst-python/issues/28
+python_dep = dependency('python-@0@-embed'.format(pythonver), version: '>=3', required: false)
+if not python_dep.found()
+ python_dep = python.dependency(required : true)
+endif
python_abi_flags = python.get_variable('ABIFLAGS', '')
pylib_loc = get_option('libpython-dir')
--
2.26.2

View File

@ -1,70 +0,0 @@
commit 52ebece1243ae6900e414b6248b5145a28348eef
Author: Guillaume Le Vaillant <glv@posteo.net>
Date: Fri Oct 18 15:41:23 2019 +0200
Use basic ASDF system definitions instead of package-inferred-system
diff --git a/graph.asd b/graph.asd
index 193b6e3..56afc8f 100644
--- a/graph.asd
+++ b/graph.asd
@@ -3,12 +3,10 @@
:version "0.0.0"
:author ("Eric Schulte <schulte.eric@gmail.com>" "Thomas Dye")
:licence "GPL V3"
- :class :package-inferred-system
- :defsystem-depends-on (:asdf-package-system)
+ :in-order-to ((test-op (test-op graph-test)))
:depends-on (alexandria
metabang-bind
named-readtables
curry-compose-reader-macros
- graph/graph))
-
-(register-system-packages "femlisp-matlisp" '(:fl.matlisp))
+ cl-heap)
+ :components ((:file "graph")))
diff --git a/graph-dot.asd b/graph-dot.asd
new file mode 100644
index 0000000..12aec7e
--- /dev/null
+++ b/graph-dot.asd
@@ -0,0 +1,8 @@
+(defsystem :graph-dot
+ :depends-on (alexandria
+ metabang-bind
+ named-readtables
+ curry-compose-reader-macros
+ cl-ppcre
+ graph)
+ :components ((:file "dot")))
diff --git a/graph-json.asd b/graph-json.asd
new file mode 100644
index 0000000..e7d091f
--- /dev/null
+++ b/graph-json.asd
@@ -0,0 +1,8 @@
+(defsystem :graph-json
+ :depends-on (alexandria
+ metabang-bind
+ named-readtables
+ curry-compose-reader-macros
+ yason
+ graph)
+ :components ((:file "json")))
diff --git a/graph-test.asd b/graph-test.asd
new file mode 100644
index 0000000..1e811e1
--- /dev/null
+++ b/graph-test.asd
@@ -0,0 +1,10 @@
+(defsystem :graph-test
+ :depends-on (alexandria
+ metabang-bind
+ named-readtables
+ curry-compose-reader-macros
+ graph
+ stefil)
+ :perform (test-op (o s)
+ (uiop:symbol-call :graph/test 'test))
+ :components ((:file "test")))

View File

@ -36,7 +36,7 @@
(define-public pciutils
(package
(name "pciutils")
(version "3.6.4")
(version "3.7.0")
(source (origin
(method url-fetch)
(uri (string-append
@ -45,7 +45,7 @@
(patches (search-patches "pciutils-hurd-configure.patch"))
(sha256
(base32
"0mb0f2phdcmp4kfiqsszn2k6nlln0w160ffzrjjv4bbfjwrgfzzn"))))
"1ss0rnfsx8gvqjxaji4mvbhf9xyih4cadmgadbwwv8mnx1xvjh4x"))))
(build-system gnu-build-system)
(arguments
`(#:phases

View File

@ -59,27 +59,23 @@ line syntax.")
(define-public popt
(package
(name "popt")
(version "1.16")
(version "1.18")
(source (origin
(method url-fetch)
;; The original rpm5.org domain is not accessible since
;; 2019-06-13, so use Debians copy of the tarball.
(uri (string-append "https://deb.debian.org/debian/pool/main"
"/p/popt/popt_" version ".orig.tar.gz"))
;; Ensure the file name stays the same to prevent rebuilds.
(file-name (string-append "popt-" version ".tar.gz"))
(uri (string-append "http://ftp.rpm.org/popt/releases"
"/popt-1.x/popt-" version ".tar.gz"))
(sha256
(base32
"1j2c61nn2n351nhj4d25mnf3vpiddcykq005w2h6kw79dwlysa77"))))
"1lf5zlj5rbg6s4bww7hbhpca97prgprnarx978vcwa0bl81vqnai"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(add-before 'configure 'patch-test
(lambda _
(substitute* "test-poptrc.in"
(substitute* "tests/test-poptrc.in"
(("/bin/echo") (which "echo")))
(substitute* "testit.sh" ; don't expect old libtool names
(substitute* "tests/testit.sh" ;don't expect old libtool names
(("lt-test1") "test1"))
#t)))))
(home-page "http://rpm5.org/files/popt/")

View File

@ -71,45 +71,6 @@
(define-public libsndfile
(package
(name "libsndfile")
(version "1.0.28")
(replacement libsndfile-1.0.30)
(source (origin
(method url-fetch)
(uri (string-append "http://www.mega-nerd.com/libsndfile/files/libsndfile-"
version ".tar.gz"))
(patches (search-patches "libsndfile-armhf-type-checks.patch"
"libsndfile-CVE-2017-8361-8363-8365.patch"
"libsndfile-CVE-2017-8362.patch"
"libsndfile-CVE-2017-12562.patch"))
(sha256
(base32
"1afzm7jx34jhqn32clc5xghyjglccam2728yxlx37yj2y0lkkwqz"))))
(build-system gnu-build-system)
(inputs
`(("libvorbis" ,libvorbis)
("libogg" ,libogg)
("flac" ,flac)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "http://www.mega-nerd.com/libsndfile/")
(synopsis "Reading and writing files containing sampled sound")
(description
"Libsndfile is a C library for reading and writing files containing
sampled sound (such as MS Windows WAV and the Apple/SGI AIFF format) through
one standard library interface.
It was designed to handle both little-endian (such as WAV) and
big-endian (such as AIFF) data, and to compile and run correctly on
little-endian (such as Intel and DEC/Compaq Alpha) processor systems as well
as big-endian processor systems such as Motorola 68k, Power PC, MIPS and
SPARC. Hopefully the design of the library will also make it easy to extend
for reading and writing new sound file formats.")
(license l:gpl2+)))
;; Replacement package to fix multiple security vulnerabilities.
(define libsndfile-1.0.30
(package
(inherit libsndfile)
(version "1.0.30")
(source (origin
(method url-fetch)
@ -137,9 +98,28 @@ for reading and writing new sound file formats.")
(substitute* "tests/test_wrapper.sh.in"
(("^/usr/bin/env") "env"))
#t))))
(build-system gnu-build-system)
(inputs
`(("libvorbis" ,libvorbis)
("libogg" ,libogg)
("flac" ,flac)))
(native-inputs
`(("python" ,python)
,@(package-native-inputs libsndfile)))))
`(("pkg-config" ,pkg-config)
("python" ,python)))
(home-page "http://www.mega-nerd.com/libsndfile/")
(synopsis "Reading and writing files containing sampled sound")
(description
"Libsndfile is a C library for reading and writing files containing
sampled sound (such as MS Windows WAV and the Apple/SGI AIFF format) through
one standard library interface.
It was designed to handle both little-endian (such as WAV) and
big-endian (such as AIFF) data, and to compile and run correctly on
little-endian (such as Intel and DEC/Compaq Alpha) processor systems as well
as big-endian processor systems such as Motorola 68k, Power PC, MIPS and
SPARC. Hopefully the design of the library will also make it easy to extend
for reading and writing new sound file formats.")
(license l:gpl2+)))
(define-public libsamplerate
(package
@ -261,7 +241,7 @@ rates.")
("eudev" ,eudev))) ;for the detection of hardware audio devices
(native-inputs
`(("check" ,check)
`(("check" ,check-0.14)
("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
("m4" ,m4)

View File

@ -476,13 +476,13 @@ risk.")
(define-public python-certifi
(package
(name "python-certifi")
(version "2020.4.5.1")
(version "2020.11.8")
(source (origin
(method url-fetch)
(uri (pypi-uri "certifi" version))
(sha256
(base32
"06b5gfs7wmmipln8f3z928d2mmx2j4b3x7pnqmj6cvmyfh8v7z2i"))))
"1x4w18gm71dbwys5g2mbcnbw27b3dvphj5d56icg5ys45h4yypgh"))))
(build-system python-build-system)
(arguments '(#:tests? #f)) ;no tests
(home-page "https://certifi.io/")
@ -498,14 +498,14 @@ is used by the Requests library to verify HTTPS requests.")
(define-public python-cryptography-vectors
(package
(name "python-cryptography-vectors")
(version "2.9.2")
(version "3.1.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "cryptography_vectors" version))
(sha256
(base32
"1d4iykcv7cn9j399hczlxm5pzxmqy6d80h3j16dkjwlmv3293b4r"))))
"1xp2j79c1y8qj4b97ygx451gzp8l4cp830hnvg3zw8j134bcaaam"))))
(build-system python-build-system)
(home-page "https://github.com/pyca/cryptography")
(synopsis "Test vectors for the cryptography package")
@ -520,14 +520,14 @@ is used by the Requests library to verify HTTPS requests.")
(define-public python-cryptography
(package
(name "python-cryptography")
(version "2.9.2")
(version "3.1.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "cryptography" version))
(sha256
(base32
"0af25w5mkd6vwns3r6ai1w5ip9xp0ms9s261zzssbpadzdr05hx0"))))
"0z81q4d1nangw3r0v5f41mfl4d9r04qnbayl5ll5v5jpcfhwd7wx"))))
(build-system python-build-system)
(inputs
`(("openssl" ,openssl)))
@ -742,18 +742,23 @@ ECB and OFB).")
(define-public python-asn1crypto
(package
(name "python-asn1crypto")
(version "0.24.0")
(version "1.4.0")
(source
(origin
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/wbond/asn1crypto")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"10lai2cs5mnz3gpaffbw1m7b885ls8328q5wxm35vfmcip1f0xmb"))))
(url "https://github.com/wbond/asn1crypto")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"19abibn6jw20mzi1ln4n9jjvpdka8ygm4m439hplyrdfqbvgm01r"))))
(build-system python-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
(replace 'check
(lambda _
(invoke "python" "run.py" "tests"))))))
(home-page "https://github.com/wbond/asn1crypto")
(synopsis "ASN.1 parser and serializer in Python")
(description "asn1crypto is an ASN.1 parser and serializer with definitions

View File

@ -2428,13 +2428,13 @@ APIs.")
(define-public python-requests
(package
(name "python-requests")
(version "2.23.0")
(version "2.24.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "requests" version))
(sha256
(base32
"1rhpg0jb08v0gd7f19jjiwlcdnxpmqi1fhvw7r4s9avddi4kvx5k"))))
"06r3017hz0hzxv42gpg73l8xvdjbzw7q904ljvp36b5p3l9rlmdk"))))
(build-system python-build-system)
(propagated-inputs
`(("python-certifi" ,python-certifi)
@ -2681,7 +2681,6 @@ authenticated session objects providing things like keep-alive.")
("python-certifi" ,python-certifi)
("python-cryptography" ,python-cryptography)
("python-idna" ,python-idna)
("python-ipaddress" ,python-ipaddress)
("python-pyopenssl" ,python-pyopenssl)
("python-pysocks" ,python-pysocks)))
(home-page "https://urllib3.readthedocs.io/")
@ -2690,6 +2689,7 @@ authenticated session objects providing things like keep-alive.")
"Urllib3 supports features left out of urllib and urllib2 libraries. It
can reuse the same socket connection for multiple requests, it can POST files,
supports url redirection and retries, and also gzip and deflate decoding.")
(properties `((python2-variant . ,(delay python2-urllib3))))
(license license:expat)))
;; Some software requires an older version of urllib3, notably Docker.
@ -2705,7 +2705,12 @@ supports url redirection and retries, and also gzip and deflate decoding.")
(define-public python2-urllib3
(package-with-python2 python-urllib3))
(let ((base (package-with-python2 (strip-python2-variant python-urllib3))))
(package/inherit
base
(propagated-inputs
`(("python-ipaddress" ,python2-ipaddress)
,@(package-propagated-inputs base))))))
(define-public awscli
(package

View File

@ -3561,14 +3561,14 @@ text styles of documentation.")
(define-public python-pygments
(package
(name "python-pygments")
(version "2.5.2")
(version "2.6.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Pygments" version))
(sha256
(base32
"1zmhnswy0wxfn0xprs9aqsvx2c3kmzfn2wx14q8cv3vpkxdamj4q"))))
"0i4gnd4q0mgkq0dp5wymn7ca8zjd8fgp63139svs6jf2c6h48wv4"))))
(build-system python-build-system)
(arguments
;; FIXME: Tests require sphinx, which depends on this.
@ -3577,10 +3577,21 @@ text styles of documentation.")
(synopsis "Syntax highlighting")
(description
"Pygments is a syntax highlighting package written in Python.")
(license license:bsd-2)))
(license license:bsd-2)
(properties `((python2-variant . ,(delay python2-pygments))))))
;; Pygments 2.6 and later does not support Python 2.
(define-public python2-pygments
(package-with-python2 python-pygments))
(let ((base (package-with-python2 (strip-python2-variant python-pygments))))
(package
(inherit base)
(version "2.5.2")
(source (origin
(method url-fetch)
(uri (pypi-uri "Pygments" version))
(sha256
(base32
"1zmhnswy0wxfn0xprs9aqsvx2c3kmzfn2wx14q8cv3vpkxdamj4q")))))))
(define-public python-bumpversion
(package
@ -4334,14 +4345,14 @@ provides additional functionality on the produced Mallard documents.")
(define-public python-cython
(package
(name "python-cython")
(version "0.29.17")
(version "0.29.21")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Cython" version))
(sha256
(base32
"1wnaz40hdw4mg5acz5gqb6bhjhn4cvfxg0xdzfy7aa6qn665hqb3"))))
"1bcwpra7c6k30yvic3sw2v3rq2dr40ypc4zqif6kr52mpn4wnyp5"))))
(build-system python-build-system)
;; we need the full python package and not just the python-wrapper
;; because we need libpython3.3m.so
@ -9334,14 +9345,14 @@ versions of Python.")
(define-public python-idna
(package
(name "python-idna")
(version "2.9")
(version "2.10")
(source
(origin
(method url-fetch)
(uri (pypi-uri "idna" version))
(sha256
(base32
"1jxp2pdi8y4asi7ka1zhx3yx09kv8kzj533f0ds7viz49b0x323m"))))
"1xmk3s92d2vq42684p61wixfmh3qpr2mw762w0n6662vhlpqf1xk"))))
(build-system python-build-system)
(home-page "https://github.com/kjd/idna")
(synopsis "Internationalized domain names in applications")
@ -11320,14 +11331,14 @@ python-xdo for newer bindings.)")
(define-public python-mako
(package
(name "python-mako")
(version "1.1.2")
(version "1.1.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Mako" version))
(sha256
(base32
"17bd6r9ynp4hyfckkia0bb8gpd98f42jfl5rmzdpbld59bbcaf9i"))))
"09ywrmhr6gdyfx6d5727wwjnz73i6rklqcb4c14m7sqc830wi5c1"))))
(build-system python-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
@ -16918,14 +16929,14 @@ requirements is not met.")
(define-public python-pysocks
(package
(name "python-pysocks")
(version "1.7.0")
(version "1.7.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "PySocks" version))
(sha256
(base32
"0z4p31bpqm893cf87qqgb30k7nwd8kqfjwwjm5cvxb6zbyj1w0yr"))))
"184sg65mbmih6ljblfsxcmq5js5l7dj3gpn618w9q5dy3rbh921z"))))
(build-system python-build-system)
(arguments `(#:tests? #f))
(home-page "https://github.com/Anorov/PySocks")

View File

@ -195,7 +195,6 @@ system, and the core design of Django is reused in Grantlee.")
("libxslt" ,libxslt)
("libxtst" ,libxtst)
("mtdev" ,mtdev)
("mariadb" ,mariadb "lib")
("mariadb-dev" ,mariadb "dev")
("nss" ,nss)
("postgresql" ,postgresql)
@ -346,7 +345,6 @@ developers using C++ or QML, a CSS & JavaScript like language.")
(define-public qtbase
(package
(name "qtbase")
;; TODO Remove ((gnu packages kde) qtbase-for-krita) when upgrading qtbase.
(version "5.14.2")
(source (origin
(method url-fetch)
@ -359,7 +357,9 @@ developers using C++ or QML, a CSS & JavaScript like language.")
"12mjsahlma9rw3vz9a6b5h2s6ylg8b34hxc2vnlna5ll429fgfa8"))
;; Use TZDIR to avoid depending on package "tzdata".
(patches (search-patches "qtbase-use-TZDIR.patch"
"qtbase-moc-ignore-gcc-macro.patch"))
"qtbase-moc-ignore-gcc-macro.patch"
"qtbase-absolute-runpath.patch"
"qtbase-fix-krita-deadlock.patch"))
(modules '((guix build utils)))
(snippet
;; corelib uses bundled harfbuzz, md4, md5, sha3
@ -371,6 +371,7 @@ developers using C++ or QML, a CSS & JavaScript like language.")
"zlib"))
#t)))))
(build-system gnu-build-system)
(outputs '("out" "debug"))
(propagated-inputs
`(("mesa" ,mesa)
;; Use which the package, not the function
@ -404,7 +405,6 @@ developers using C++ or QML, a CSS & JavaScript like language.")
("libxslt" ,libxslt)
("libxtst" ,libxtst)
("mtdev" ,mtdev)
("mariadb" ,mariadb "lib")
("mariadb-dev" ,mariadb "dev")
("nss" ,nss)
("openssl" ,openssl)
@ -477,6 +477,9 @@ developers using C++ or QML, a CSS & JavaScript like language.")
"-opensource"
"-confirm-license"
;; Later stripped into the :debug output.
"-force-debug-info"
;; These features require higher versions of Linux than the
;; minimum version of the glibc. See
;; src/corelib/global/minimum-linux_p.h. By disabling these
@ -601,27 +604,6 @@ developers using C++ or QML, a CSS & JavaScript like language.")
;; qt used to refer to the monolithic Qt 5.x package
(define-deprecated qt qtbase)
;; This variable is required by 'python-pyside-2-tools', which copies some
;; qtbase executables that fail to run because RUNPATH refers to the
;; wrong $ORIGIN. TODO: Merge with qtbase in the next rebuild cycle.
(define qtbase/next
(package
(inherit qtbase)
(source
(origin
(inherit (package-source qtbase))
(patches (append (origin-patches (package-source qtbase))
(search-patches "qtbase-absolute-runpath.patch")))))))
(define-public qtbase-for-krita
(hidden-package
(package
(inherit qtbase)
(source (origin
(inherit (package-source qtbase))
(patches (append (origin-patches (package-source qtbase))
(search-patches "qtbase-fix-krita-deadlock.patch"))))))))
(define-public qtsvg
(package (inherit qtbase)
(name "qtsvg")
@ -2779,7 +2761,7 @@ generate Python bindings for your C or C++ code.")
(inputs
`(("python-pyside-2" ,python-pyside-2)
("python-shiboken-2" ,python-shiboken-2)
("qtbase" ,qtbase/next)))
("qtbase" ,qtbase)))
(native-inputs
`(("python" ,python-wrapper)))
(arguments

View File

@ -3801,8 +3801,7 @@ specs for Ruby implementations in ruby/spec.")
(invoke "rspec"))
#t)))))
(inputs
`(("mariadb" ,mariadb "lib")
("mariadb-dev" ,mariadb "dev")
`(("mariadb-dev" ,mariadb "dev")
("zlib" ,zlib)))
(native-inputs
`(("ruby-rspec" ,ruby-rspec)

View File

@ -85,6 +85,7 @@
(substitute* "src/options/view.rs"
(("test!\\(across:.*") "")
(("test!\\(cr:.*") "")
(("test!\\(empty:.*") "")
(("test!\\(gracross:.*") "")
(("test!\\(grid:.*") "")

View File

@ -4,7 +4,7 @@
;;; Copyright © 2016 Nikita <nikita@n0.is>
;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2017, 2018 Nikolai Merinov <nikolai.merinov@member.fsf.org>
;;; Copyright © 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Danny Milosavljevic <dannym+a@scratchpost.org>
;;; Copyright © 2019 Ivan Petkov <ivanppetkov@gmail.com>
@ -422,7 +422,9 @@ test = { path = \"../libtest\" }
`(("bison" ,bison) ; For the tests
("cmake" ,cmake-minimal)
("flex" ,flex) ; For the tests
("gdb" ,gdb) ; For the tests
;; FIXME: Rust 1.27 and some later versions require GDB 8.2 specifically.
;; See <https://bugs.gnu.org/37810>. Use it on all Rusts for simplicity.
("gdb" ,gdb-8.2) ; For the tests
("procps" ,procps) ; For the tests
("python-2" ,python-2)
("rustc-bootstrap" ,mrustc)
@ -758,6 +760,9 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
(patches (search-patches
"rust-coresimd-doctest.patch"
"rust-1.25-accept-more-detailed-gdb-lines.patch"))))
(inputs
(alist-replace "openssl" (list openssl)
(package-inputs base-rust)))
(arguments
(substitute-keyword-arguments (package-arguments base-rust)
((#:phases phases)
@ -800,7 +805,6 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
(("fn finds_author_git") "#[ignore]\nfn finds_author_git")
(("fn finds_local_author_git") "#[ignore]\nfn finds_local_author_git"))
#t))
;; TODO(rebuild-rust): Remove this phase in rust-1.28 when rebuilding.
(add-after 'patch-cargo-tests 'disable-cargo-test-for-nightly-channel
(lambda* _
;; This test failed to work on "nightly" channel builds
@ -829,11 +833,6 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
"rust-bootstrap-stage0-test.patch"
"rust-1.25-accept-more-detailed-gdb-lines.patch"
"rust-reproducible-builds.patch"))))
(native-inputs
;; FIXME: Rust 1.27 and some later versions require GDB 8.2 specifically.
;; See <https://bugs.gnu.org/37810>.
(alist-replace "gdb" (list gdb-8.2)
(package-native-inputs base-rust)))
(arguments
(substitute-keyword-arguments (package-arguments base-rust)
((#:phases phases)
@ -885,6 +884,8 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
(substitute* "src/test/run-pass/issue-44056.rs"
(("only-x86_64") "ignore-test"))
#t))
;; This is no longer needed as of 1.28
(delete 'disable-cargo-test-for-nightly-channel)
;; The thinlto test should pass with llvm 6.
(delete 'disable-thinlto-test))))))))
@ -1147,14 +1148,13 @@ move around."
(setenv "CARGO_HOME" cargo-home)
#t))))))))))
;; TODO(rebuild-rust): Switch to LLVM 9 in 1.38 instead of 1.40.
(define-public rust-1.38
(let ((base-rust
(rust-bootstrapped-package rust-1.37 "1.38.0"
"101dlpsfkq67p0hbwx4acqq6n90dj4bbprndizpgh1kigk566hk4")))
(package
(inherit base-rust)
#;(inputs
(inputs
(alist-replace "llvm" (list llvm-9)
(package-inputs base-rust)))
(arguments
@ -1197,9 +1197,6 @@ move around."
"1ba9llwhqm49w7sz3z0gqscj039m53ky9wxzhaj11z6yg1ah15yx")))
(package
(inherit base-rust)
(inputs
(alist-replace "llvm" (list llvm-9)
(package-inputs base-rust)))
(source
(origin
(inherit (package-source base-rust))
@ -1254,8 +1251,6 @@ move around."
,(patch-command-exec-tests-phase
'(match (find-files "src/test" "command-exec\\.rs")
((file) file))))
;; TODO(rebuild-rust): The test in question got fixed long ago.
(delete 'disable-cargo-test-for-nightly-channel)
;; The test got removed in commit 000fe63b6fc57b09828930cacbab20c2ee6e6d15
;; "Remove painful test that is not pulling its weight"
(delete 'remove-unsupported-tests)))))))))
@ -1324,4 +1319,4 @@ move around."
"0a17jby2pd050s24cy4dfc0gzvgcl585v3vvyfilniyvjrqknsid"))
;; TODO(staging): Bump this variable to the latest packaged rust.
(define-public rust rust-1.39)
(define-public rust rust-1.45)

View File

@ -216,14 +216,14 @@ with a PKCS #11 Cryptographic Token Interface.")
(define-public pcsc-lite
(package
(name "pcsc-lite")
(version "1.8.26")
(version "1.9.0")
(source (origin
(method url-fetch)
(uri (string-append "https://pcsclite.apdu.fr/files/"
"pcsc-lite-" version ".tar.bz2"))
(sha256
(base32
"1ndvvz0fgqwz70pijymsxmx25mzryb0zav1i8jjc067ndryvxdry"))))
"1y9f9zipnrmgiw0mxrvcgky8vfrcmg6zh40gbln5a93i2c1x8j01"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--enable-usbdropdir=/var/lib/pcsc/drivers"

View File

@ -48,14 +48,14 @@
(define-public python-sphinx
(package
(name "python-sphinx")
(version "2.3.1")
(version "3.2.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Sphinx" version))
(sha256
(base32
"19a28nsb0w4bs6k8rdfyk6vzrcwdpvhs2wq77rgpmww59yvndrz6"))))
"1s70hxhddzf656kmj01lws4cbywgsinbg8750r9ilf7s2sdns79j"))))
(build-system python-build-system)
(arguments
`(#:phases
@ -99,52 +99,7 @@
for Python projects or other documents consisting of multiple reStructuredText
sources.")
(license license:bsd-2)
(properties `((python2-variant . ,(delay python2-sphinx))))))
;; Sphinx 2 does not support Python 2, so we stick with this older version here.
;; Remove this package once python2-pbcore no longer requires it.
(define-public python2-sphinx
(let ((base (package-with-python2 (strip-python2-variant python-sphinx))))
(package
(inherit base)
(version "1.7.7")
(source (origin
(method url-fetch)
(uri (pypi-uri "Sphinx" version))
(sha256
(base32
"0pkkbfj7cl157q550gcs45am5y78ps0h7q6455d64s1zmw01jlvi"))))
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
`(modify-phases ,phases
(add-before 'check 'disable-broken-tests
(lambda _
;; These tests are broken when using Python2:
;; <https://github.com/sphinx-doc/sphinx/issues/4710>.
(for-each delete-file '("tests/test_api_translator.py"
"tests/test_setup_command.py"))
#t))))))
(native-inputs `(("python2-mock" ,python2-mock)
("python2-enum34" ,python2-enum34)
,@(package-native-inputs base)))
;; Sphinx 2 has some dependencies that do not support Python 2, so
;; we keep our own propagated-inputs here instead of inheriting.
(propagated-inputs `(("python2-pytz" ,python2-pytz)
("python2-typing" ,python2-typing)
("python2-imagesize" ,python2-imagesize)
("python2-sphinx-alabaster-theme"
,python2-sphinx-alabaster-theme)
("python2-babel" ,python2-babel-2.6)
("python2-snowballstemmer" ,python2-snowballstemmer)
("python2-docutils" ,python2-docutils-0.14)
("python2-jinja2" ,python2-jinja2)
("python2-packaging" ,python2-packaging)
("python2-pygments" ,python2-pygments)
("python2-requests" ,python2-requests)
("python2-six" ,python2-six)
("python2-sphinxcontrib-websupport"
,python2-sphinxcontrib-websupport))))))
(properties `((python2-variant . ,(delay python-sphinx))))))
(define-public python-sphinxcontrib-applehelp
(package
@ -556,14 +511,14 @@ and several other projects.")
(define-public python-breathe
(package
(name "python-breathe")
(version "4.13.1")
(version "4.22.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "breathe" version))
(sha256
(base32
"1aw749n2ry27434qd7gr99dvsrs3x3chyi9aywmhjj1g4m2j6xf6"))))
"0snk538xv60z4vfhl3f7v5g658za7257hddkg07cknkn33k6cjvf"))))
(build-system python-build-system)
(propagated-inputs
`(("python-docutils" ,python-docutils)

View File

@ -164,7 +164,7 @@ fundamental object types for C.")
("tdb" ,tdb)
("tevent" ,tevent)))
(native-inputs
`(("check" ,check)
`(("check" ,check-0.14)
("docbook-xsl" ,docbook-xsl)
("docbook-xml" ,docbook-xml)
("libxml2" ,libxml2) ; for xmllint

View File

@ -4,6 +4,7 @@
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -32,7 +33,9 @@
(define-public valgrind
(package
(name "valgrind")
(version "3.15.0")
;; Note: check "guix refresh -l -e '(@ (gnu packages valgrind) valgrind)'"
;; when updating this package to find which branch it should go to.
(version "3.16.1")
(source (origin
(method url-fetch)
(uri (list (string-append "https://sourceware.org/pub/valgrind"
@ -41,7 +44,7 @@
"/valgrind-" version ".tar.bz2")))
(sha256
(base32
"1ccawxrni8brcvwhygy12iprkvz409hbr9xkk1bd03gnm2fplz21"))
"1jik19rcd34ip8a5c9nv5wfj8k8maqb8cyclr4xhznq2gcpkl7y9"))
(patches (search-patches "valgrind-enable-arm.patch"))))
(build-system gnu-build-system)
(outputs '("doc" ;16 MB
@ -70,9 +73,6 @@
(mkdir-p dest)
(rename-file orig dest)
#t))))))
(inputs
;; GDB is needed to provide a sane default for `--db-command'.
`(("gdb" ,gdb)))
(native-inputs
`(("perl" ,perl)))
(home-page "https://www.valgrind.org/")
@ -82,4 +82,15 @@
tools. There are Valgrind tools that can automatically detect many memory
management and threading bugs, and profile your programs in detail. You can
also use Valgrind to build new tools.")
(license gpl2+)))
(license gpl2+)
;; Hide this variant so end users get the "interactive" Valgrind below.
(properties '((hidden? . #t)))))
(define-public valgrind/interactive
(package/inherit
valgrind
(inputs
;; GDB is needed to provide a sane default for `--db-command'.
`(("gdb" ,gdb)))
(properties '())))

View File

@ -245,7 +245,7 @@
("faac" ,faac)
("ffmpeg" ,ffmpeg)
("freetype" ,freetype)
("imagemagick" ,imagemagick)
("imagemagick" ,imagemagick-next)
("lame" ,lame)
("liba52" ,liba52)
("libdv" ,libdv)
@ -1327,7 +1327,7 @@ libebml is a C++ library to read and write EBML files.")
(define-public libva
(package
(name "libva")
(version "2.7.1")
(version "2.9.0")
(source
(origin
(method url-fetch)
@ -1339,7 +1339,7 @@ libebml is a C++ library to read and write EBML files.")
(string-append "https://www.freedesktop.org/software/vaapi/releases/"
"libva/libva-" version "/libva-" version ".tar.bz2")))
(sha256
(base32 "014av7ayyc624xfmr63xhbgg7nw8fynsswj1g2wmk4lnkyfz23x0"))))
(base32 "0jsq6ia3fzyzvq7lxsrn4a8kn2kx4z3v777xkxn6k4ny5lww2i73"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@ -3105,7 +3105,7 @@ and JACK.")
(define-public libvdpau
(package
(name "libvdpau")
(version "1.3")
(version "1.4")
(source
(origin
(method git-fetch)
@ -3115,7 +3115,7 @@ and JACK.")
(file-name (git-file-name name version))
(sha256
(base32
"1fb1nh5apr9kzx9bm2lysjwpyva1s60b2l2p230nqgvb11q25hd2"))))
"1hc4mcrbr1yhfiy4zfd8wc2iiqbp90z6jswap0jia20vmyk5lqld"))))
(build-system meson-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))

View File

@ -183,7 +183,7 @@ interpretation of the specifications for these languages.")
(define-public vulkan-headers
(package
(name "vulkan-headers")
(version "1.2.141")
(version "1.2.148")
(source
(origin
(method git-fetch)
@ -193,7 +193,7 @@ interpretation of the specifications for these languages.")
(file-name (git-file-name name version))
(sha256
(base32
"10nmx6y4llllfcczyfz76amd0vkqv09dj952d19zkzmmgcval7zq"))))
"1c877npvmkv2qxac308m3x0ij3il7hy5xk3fwsfi7s9dcsaxi63j"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; No tests.
@ -207,7 +207,7 @@ interpretation of the specifications for these languages.")
(define-public vulkan-loader
(package
(name "vulkan-loader")
(version "1.2.140")
(version "1.2.148")
(source
(origin
(method git-fetch)
@ -217,7 +217,7 @@ interpretation of the specifications for these languages.")
(file-name (git-file-name name version))
(sha256
(base32
"0rhyz0qgp0i7pcx6wlvgwy7j33d4cs0xx39f0b6igpfk0vk70r1w"))))
"0rxh4q09k0pdl3xlvxdv5qkak4d7az25gijxr5w170fjnd8yfrhk"))))
(build-system cmake-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
@ -261,7 +261,7 @@ and the ICD.")
(define-public vulkan-tools
(package
(name "vulkan-tools")
(version "1.2.140")
(version "1.2.148")
(source
(origin
(method git-fetch)
@ -271,7 +271,7 @@ and the ICD.")
(file-name (git-file-name name version))
(sha256
(base32
"08dk0q77kpycn4vv19jh3ig73gbq3psan246a7fss0nfxpiddg0j"))))
"1908fw4rvg5iaim8ph0c0bzhac6jplg8dhfs6dpxd1dapzwqllkf"))))
(build-system cmake-build-system)
(inputs
`(("glslang" ,glslang)

View File

@ -654,47 +654,43 @@ driven and does not detract you from your daily work.")
`(("prove" ,sbcl-prove)
("sbcl" ,sbcl)))
(inputs
;; We need to avoid sbcl-* inputs (sbcl-cl-cffi-gtk in particular) as they
;; seem to cause Nyxt to hang into a hogging process in about 10 minutes.
;; Probably an issue between CFFI and how we build SBCL packages.
;; See https://github.com/atlas-engineer/nyxt/issues/680.
`(("alexandria" ,cl-alexandria)
("bordeaux-threads" ,cl-bordeaux-threads)
("cl-chanl" ,cl-chanl)
("cl-containers" ,cl-containers)
("cl-css" ,cl-css)
("cl-json" ,cl-json)
("cl-markup" ,cl-markup)
("cl-ppcre" ,cl-ppcre)
("cl-prevalence" ,cl-prevalence)
("closer-mop" ,cl-closer-mop)
("cluffer" ,cl-cluffer)
("dexador" ,cl-dexador)
("enchant" ,cl-enchant)
("fset" ,cl-fset)
("hu.dwim.defclass-star" ,cl-hu.dwim.defclass-star)
("iolib" ,cl-iolib)
("local-time" ,cl-local-time)
("log4cl" ,cl-log4cl)
("mk-string-metrics" ,cl-mk-string-metrics)
("moptilities" ,cl-moptilities)
("osicat" ,sbcl-osicat) ; SBCL version needed for libosicat.so.
("parenscript" ,cl-parenscript)
("plump" ,cl-plump)
("quri" ,cl-quri)
("serapeum" ,cl-serapeum)
("str" ,cl-str)
("swank" ,cl-slime-swank)
("trivia" ,cl-trivia)
("trivial-clipboard" ,cl-trivial-clipboard)
("trivial-features" ,cl-trivial-features)
("trivial-package-local-nicknames" ,cl-trivial-package-local-nicknames)
("trivial-types" ,cl-trivial-types)
("unix-opts" ,cl-unix-opts)
("usocket" ,cl-usocket)
`(("alexandria" ,sbcl-alexandria)
("bordeaux-threads" ,sbcl-bordeaux-threads)
("cl-chanl" ,sbcl-chanl)
("cl-containers" ,sbcl-cl-containers)
("cl-css" ,sbcl-cl-css)
("cl-json" ,sbcl-cl-json)
("cl-markup" ,sbcl-cl-markup)
("cl-ppcre" ,sbcl-cl-ppcre)
("cl-prevalence" ,sbcl-cl-prevalence)
("closer-mop" ,sbcl-closer-mop)
("cluffer" ,sbcl-cluffer)
("dexador" ,sbcl-dexador)
("enchant" ,sbcl-enchant)
("fset" ,sbcl-fset)
("hu.dwim.defclass-star" ,sbcl-hu.dwim.defclass-star)
("iolib" ,sbcl-iolib)
("local-time" ,sbcl-local-time)
("log4cl" ,sbcl-log4cl)
("mk-string-metrics" ,sbcl-mk-string-metrics)
("moptilities" ,sbcl-moptilities)
("osicat" ,sbcl-osicat)
("parenscript" ,sbcl-parenscript)
("plump" ,sbcl-plump)
("quri" ,sbcl-quri)
("serapeum" ,sbcl-serapeum)
("str" ,sbcl-cl-str)
("swank" ,sbcl-slime-swank)
("trivia" ,sbcl-trivia)
("trivial-clipboard" ,sbcl-trivial-clipboard)
("trivial-features" ,sbcl-trivial-features)
("trivial-package-local-nicknames" ,sbcl-trivial-package-local-nicknames)
("trivial-types" ,sbcl-trivial-types)
("unix-opts" ,sbcl-unix-opts)
("usocket" ,sbcl-usocket)
;; WebKitGTK deps
("cl-cffi-gtk" ,cl-cffi-gtk)
("cl-webkit" ,cl-webkit)
("cl-cffi-gtk" ,sbcl-cl-cffi-gtk)
("cl-webkit" ,sbcl-cl-webkit)
("glib-networking" ,glib-networking)
("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
(synopsis "Extensible web-browser in Common Lisp")

View File

@ -1348,15 +1348,15 @@ perform the opening handshake in HTTP.")
(define-public libpsl
(package
(name "libpsl")
(version "0.21.0")
(version "0.21.1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/rockdaboot/libpsl/"
"releases/download/libpsl-" version
"releases/download/" version
"/libpsl-" version ".tar.gz"))
(sha256
(base32
"04pfagb7ppq3yibx4lhazd1v9nwkxdfkyy2rgcrmrf3mldsirga1"))))
"0k0d46bbh1jj2ll369f134vciplrzbqkg7fv9m62bl6lzghy2v5c"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
@ -1621,15 +1621,18 @@ hash/signatures.")
(define-public libyaml
(package
(name "libyaml")
(version "0.2.4")
(version "0.2.5")
(source
(origin
(method url-fetch)
(uri (string-append "https://pyyaml.org/download/libyaml/yaml-"
version ".tar.gz"))
(sha256
(base32 "0mq5wf17ifcwwxq3kbimhi53jn3fg23vcynqpzxjcz3vfjlfs2nq"))))
(base32
"1x4fcw13r3lqy8ndydr3ili87wicplw2awbcv6r21qgyfndswhn6"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--disable-static")))
(home-page "https://pyyaml.org/wiki/LibYAML")
(synopsis "YAML 1.1 parser and emitter written in C")
(description
@ -5101,7 +5104,7 @@ commenting.")
(native-inputs
`(("netsurf-buildsystem" ,netsurf-buildsystem)
("pkg-config" ,pkg-config)
("check" ,check))) ;for tests
("check" ,check-0.14))) ;for tests
(arguments netsurf-buildsystem-arguments)
(home-page "https://www.netsurf-browser.org/projects/libwapcaplet/")
(synopsis "String internment library")
@ -5150,6 +5153,7 @@ written in C. It is developed as part of the NetSurf project.")
(url "https://github.com/tlsa/libcyaml")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(patches (search-patches "libcyaml-libyaml-compat.patch"))
(sha256
(base32 "0428p0rwq71nhh5nzcbapsbrjxa0x5l6h6ns32nxv7j624f0zd93"))))
(build-system gnu-build-system)

View File

@ -4,6 +4,7 @@
;;; Copyright © 2016, 2017, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -56,10 +57,10 @@
(inputs
`(("gnutls" ,gnutls)
("libidn2" ,libidn2)
("libpsl" ,libpsl)
("lzip" ,lzip)))
("libpsl" ,libpsl)))
(native-inputs
`(("pkg-config" ,pkg-config)
`(("lzip" ,lzip)
("pkg-config" ,pkg-config)
("perl" ,perl)
("python" ,python) ;for testenv suite
("perl-http-daemon" ,perl-http-daemon)

View File

@ -13,7 +13,7 @@
;;; Copyright © 2016 doncatnip <gnopap@gmail.com>
;;; Copyright © 2016 Ivan Vilata i Balaguer <ivan@selidor.net>
;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
;;; Copyright © 2017, 2019 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017, 2019, 2020 Marius Bakke <marius@gnu.org>
;;; Copyright © 2017, 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr>
@ -72,6 +72,7 @@
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bison)
#:use-module (gnu packages build-tools) ;for meson-0.55
#:use-module (gnu packages calendar)
#:use-module (gnu packages docbook)
#:use-module (gnu packages documentation)
@ -1342,7 +1343,7 @@ functionality to display information about the most commonly used services.")
(define-public wlroots
(package
(name "wlroots")
(version "0.10.1")
(version "0.12.0")
(source
(origin
(method git-fetch)
@ -1351,32 +1352,35 @@ functionality to display information about the most commonly used services.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0j2lh9vc92zhn44rjbia5aw3y1rpgfng1x1h17lcvj5m4i6vj0pc"))))
(base32 "01j38lmgs2c6fq68v8b75pkilia2wsgzgp46ivfbi9hhx47kgcfn"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags '("-Dlogind-provider=elogind")
#:meson ,meson-0.55
#:phases
(modify-phases %standard-phases
(add-before 'configure 'hardcode-paths
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "xwayland/xwayland.c"
(substitute* "xwayland/server.c"
(("Xwayland") (string-append (assoc-ref inputs
"xorg-server-xwayland")
"/bin/Xwayland")))
#t)))))
(inputs `(("elogind" ,elogind)
("eudev" ,eudev)
("libinput" ,libinput)
("libxkbcommon" ,libxkbcommon)
("mesa" ,mesa)
("pixman" ,pixman)
("wayland" ,wayland)
("xorg-server-xwayland" ,xorg-server-xwayland)))
(native-inputs `(("ffmpeg" ,ffmpeg)
("libcap" ,libcap)
("libpng" ,libpng)
("pkg-config" ,pkg-config)
("wayland-protocols" ,wayland-protocols)))
(propagated-inputs
`(;; As required by wlroots.pc.
("elogind" ,elogind)
("eudev" ,eudev)
("libinput" ,libinput)
("libxkbcommon" ,libxkbcommon)
("mesa" ,mesa)
("pixman" ,pixman)
("wayland" ,wayland)
("xcb-util-errors" ,xcb-util-errors)
("xcb-util-wm" ,xcb-util-wm)
("xorg-server-xwayland" ,xorg-server-xwayland)))
(native-inputs
`(("pkg-config" ,pkg-config)
("wayland-protocols" ,wayland-protocols)))
(home-page "https://github.com/swaywm/wlroots")
(synopsis "Pluggable, composable, unopinionated modules for building a
Wayland compositor")
@ -1387,9 +1391,7 @@ modules for building a Wayland compositor.")
(define-public sway
(package
(name "sway")
;; XXX When updating, check whether grim-revert-output-rotation.patch can
;; be dropped from the grim package.
(version "1.4")
(version "1.5.1")
(source
(origin
(method git-fetch)
@ -1398,7 +1400,7 @@ modules for building a Wayland compositor.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "11qf89y3q92g696a6f4d23qb44gqixg6qxq740vwv2jw59ms34ja"))))
(base32 "1xsa3h8zhf29p0mi90baxpr76jkd9pd1gr97ky8cnjbcs4isj9j0"))))
(build-system meson-build-system)
(arguments
`(#:phases
@ -1427,21 +1429,21 @@ modules for building a Wayland compositor.")
("swaybg" ,swaybg)
("wayland" ,wayland)
("wlroots" ,wlroots)))
(native-inputs `(("libcap" ,libcap)
("linux-pam" ,linux-pam)
("mesa" ,mesa)
("pkg-config" ,pkg-config)
("scdoc" ,scdoc)
("wayland-protocols" ,wayland-protocols)))
(native-inputs
`(("linux-pam" ,linux-pam)
("mesa" ,mesa)
("pkg-config" ,pkg-config)
("scdoc" ,scdoc)
("wayland-protocols" ,wayland-protocols)))
(home-page "https://github.com/swaywm/sway")
(synopsis "Wayland compositor compatible with i3")
(description "Sway is a i3-compatible Wayland compositor.")
(license license:expat))) ; MIT license
(license license:expat)))
(define-public swayidle
(package
(name "swayidle")
(version "1.5")
(version "1.6")
(source
(origin
(method git-fetch)
@ -1450,7 +1452,7 @@ modules for building a Wayland compositor.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "05qi96j58xqxjiighay1d39rfanxcpn6vlynj23mb5dymxvlaq9n"))))
(base32 "1nd3v8r9549lykdwh4krldfl59lzaspmmai5k1icy7dvi6kkr18r"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags '("-Dlogind-provider=elogind")))
@ -1467,7 +1469,7 @@ modules for building a Wayland compositor.")
(define-public swaylock
(package
(name "swaylock")
(version "1.4")
(version "1.5")
(source
(origin
(method git-fetch)
@ -1476,7 +1478,7 @@ modules for building a Wayland compositor.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1ii9ql1mxkk2z69dv6bg1x22nl3a46iww764wqjiv78x08xpk982"))))
(base32 "0r95p4w11dwm5ra614vddz83r8j7z6gd120z2vcchy7m9b0f15kf"))))
(build-system meson-build-system)
(inputs `(("cairo" ,cairo)
("gdk-pixbuf" ,gdk-pixbuf)
@ -1558,7 +1560,7 @@ Wlroots based compositors.")
(define-public mako
(package
(name "mako")
(version "1.4")
(version "1.4.1")
(source
(origin
(method git-fetch)
@ -1567,7 +1569,7 @@ Wlroots based compositors.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "11ymiq6cr2ma0iva1mqybn3j6k73bsc6lv6pcbdq7hkhd4f9b7j9"))))
(base32 "0hwvibpnrximb628w9dsfjpi30b5jy7nfkm4d94z5vhp78p43vxh"))))
(build-system meson-build-system)
(inputs `(("cairo" ,cairo)
("elogind" ,elogind)
@ -1608,10 +1610,10 @@ compositors that support the layer-shell protocol.")
("alexandria" ,sbcl-alexandria)))
(outputs '("out" "lib"))
(arguments
'(#:asd-system-name "stumpwm"
'(#:asd-systems '("stumpwm")
#:phases
(modify-phases %standard-phases
(add-after 'create-symlinks 'build-program
(add-after 'create-asdf-configuration 'build-program
(lambda* (#:key outputs #:allow-other-keys)
(build-program
(string-append (assoc-ref outputs "out") "/bin/stumpwm")
@ -1679,20 +1681,15 @@ productive, customizable lisp based systems.")
(program (string-append out "/bin/stumpwm")))
(build-program program outputs
#:entry-program '((stumpwm:stumpwm) 0)
#:dependencies '("stumpwm"
,@(@@ (gnu packages lisp-xyz) slynk-systems))
#:dependencies '("stumpwm" "slynk")
#:dependency-prefixes
(map (lambda (input) (assoc-ref inputs input))
'("stumpwm" "slynk")))
;; Remove unneeded file.
(delete-file (string-append out "/bin/stumpwm-exec.fasl"))
#t)))
(delete 'copy-source)
(delete 'build)
(delete 'check)
(delete 'create-asd-file)
(delete 'cleanup)
(delete 'create-symlinks)))))))
(delete 'cleanup)))))))
(define stumpwm-contrib
(let ((commit "920f8fc1488f7953f205e1dda4c2ecbbbda56d63")
@ -1757,7 +1754,7 @@ productive, customizable lisp based systems.")
`(("stumpwm" ,stumpwm "lib")
("clx-truetype" ,sbcl-clx-truetype)))
(arguments
'(#:asd-system-name "ttf-fonts"
'(#:asd-systems '("ttf-fonts")
#:tests? #f
#:phases
(modify-phases %standard-phases
@ -1774,7 +1771,7 @@ rendering.")
(inherit stumpwm-contrib)
(name "sbcl-stumpwm-pass")
(arguments
'(#:asd-system-name "pass"
'(#:asd-systems '("pass")
#:tests? #f
#:phases
(modify-phases %standard-phases
@ -1791,7 +1788,7 @@ password-store into StumpWM.")
(inherit stumpwm-contrib)
(name "sbcl-stumpwm-globalwindows")
(arguments
'(#:asd-system-name "globalwindows"
'(#:asd-systems '("globalwindows")
#:tests? #f
#:phases
(modify-phases %standard-phases
@ -1808,7 +1805,7 @@ windows in the current X session.")
(inherit stumpwm-contrib)
(name "sbcl-stumpwm-swm-gaps")
(arguments
'(#:asd-system-name "swm-gaps"
'(#:asd-systems '("swm-gaps")
#:tests? #f
#:phases
(modify-phases %standard-phases
@ -1825,7 +1822,7 @@ between windows.")
(inherit stumpwm-contrib)
(name "sbcl-stumpwm-net")
(arguments
'(#:asd-system-name "net"
'(#:asd-systems '("net")
#:tests? #f
#:phases
(modify-phases %standard-phases
@ -1843,7 +1840,7 @@ between windows.")
(inherit stumpwm-contrib)
(name "sbcl-stumpwm-wifi")
(arguments
'(#:asd-system-name "wifi"
'(#:asd-systems '("wifi")
#:tests? #f
#:phases
(modify-phases %standard-phases
@ -1861,7 +1858,7 @@ between windows.")
(inherit stumpwm-contrib)
(name "sbcl-stumpwm-stumptray")
(arguments
'(#:asd-system-name "stumptray"
'(#:asd-systems '("stumptray")
#:tests? #f
#:phases
(modify-phases %standard-phases
@ -1883,7 +1880,7 @@ between windows.")
(inherit stumpwm-contrib)
(name "sbcl-stumpwm-kbd-layouts")
(arguments
'(#:asd-system-name "kbd-layouts"
'(#:asd-systems '("kbd-layouts")
#:tests? #f
#:phases
(modify-phases %standard-phases

View File

@ -357,18 +357,19 @@ avoiding password prompts when X11 forwarding has already been setup.")
(define-public libxkbcommon
(package
(name "libxkbcommon")
(version "0.10.0")
(version "1.0.1")
(source (origin
(method url-fetch)
(uri (string-append "https://xkbcommon.org/download/libxkbcommon-"
version ".tar.xz"))
(sha256
(base32
"1wmnl0hngn6vrqrya4r8hvimlkr4jag39yjprls4gyrqvh667hsp"))))
"13bcdf2xpjxwbghas0cr448z89qqki2ssgfgswc257y9859v4s5b"))))
(build-system meson-build-system)
(inputs
`(("libx11" ,libx11)
("libxcb" ,libxcb)
("libxml2" ,libxml2)
("wayland" ,wayland)
("wayland-protocols" ,wayland-protocols)
("xkeyboard-config" ,xkeyboard-config)))
@ -534,7 +535,7 @@ rasterisation.")
(define-public libdrm
(package
(name "libdrm")
(version "2.4.101")
(version "2.4.102")
(source (origin
(method url-fetch)
(uri (string-append
@ -542,8 +543,7 @@ rasterisation.")
version ".tar.xz"))
(sha256
(base32
"19vqbhqljhln0lrpnv3s7y3lkhsdcp76dl8bhqj3cis9ism1pwyx"))
(patches (search-patches "libdrm-realpath-virtio.patch"))))
"0nx0bd9dhymdsd99v4ifib77yjirkvkxf5hzdkbr7qr8dhrzkjwb"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags
@ -2528,7 +2528,7 @@ using @command{dmenu}.")
(define-public wofi
(package
(name "wofi")
(version "1.1.2")
(version "1.2.3")
(source (origin
(method hg-fetch)
(uri (hg-reference
@ -2537,7 +2537,7 @@ using @command{dmenu}.")
(file-name (git-file-name name version))
(sha256
(base32
"086j5wshawjbwdmmmldivfagc2rr7g5a2gk11l0snqqslm294xsn"))))
"0glpb2gf5n78s01z3rn614ak8ibxhfr824gy6xlljbxclgds264i"))))
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t))

View File

@ -86,14 +86,14 @@ periodic timestamps for seeking.")
(define libvorbis
(package
(name "libvorbis")
(version "1.3.6")
(version "1.3.7")
(source (origin
(method url-fetch)
(uri (string-append "https://downloads.xiph.org/releases/vorbis/"
"libvorbis-" version ".tar.xz"))
(sha256
(base32
"05dlzjkdpv46zb837wysxqyn8l636x3dw8v8ymlrwz2fg1dbn05g"))))
"0jwmf87x5sdis64rbv0l87mdpah1rbilkkxszipbzg128f9w8g5k"))))
(build-system gnu-build-system)
(propagated-inputs `(("libogg" ,libogg)))
(arguments `(#:configure-flags '("LDFLAGS=-lm"

View File

@ -2466,7 +2466,7 @@ XC-APPGROUP, XTEST.")
(define-public libevdev
(package
(name "libevdev")
(version "1.8.0")
(version "1.9.1")
(source
(origin
(method url-fetch)
@ -2474,21 +2474,10 @@ XC-APPGROUP, XTEST.")
name "-" version ".tar.xz"))
(sha256
(base32
"04a2klvii0in9ln8r85mk2cm73jq8ry2m3yzmf2z8xyjxzjcmlr0"))))
"1jvsphdrs1i54ccjcn6ll26jy42am7h28lbsvwa6pmxgqm43qq7m"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--disable-static")
#:phases (modify-phases %standard-phases
(add-before 'configure 'pedantry
(lambda _
;; XXX: libevdev includes kernel headers, which causes this
;; compile test to fail with:
;; ...-headers-4.14.67/include/asm-generic/posix_types.h:88:14:
;;error: ISO C90 does not support long long [-Werror=long-long]
(substitute* "test/Makefile.in"
(("-pedantic -Werror -std=c89")
"-pedantic -Werror -std=c99"))
#t)))))
`(#:configure-flags '("--disable-static")))
(native-inputs `(("python" ,python)))
(home-page "https://www.freedesktop.org/wiki/Software/libevdev/")
(synopsis "Wrapper library for evdev devices")
@ -4032,7 +4021,7 @@ extension to the X11 protocol. It includes:
(define-public xkeyboard-config
(package
(name "xkeyboard-config")
(version "2.29")
(version "2.31")
(source
(origin
(method url-fetch)
@ -4042,7 +4031,7 @@ extension to the X11 protocol. It includes:
".tar.bz2"))
(sha256
(base32
"00hqc8nykvy8c09b8vab64dcd0ij3n5klxjn6rl00q7hickpah8x"))))
"18xddaxh83zm698syh50w983jg6b7b8zgv0dfaf7ha485hgihi6s"))))
(build-system gnu-build-system)
(inputs
`(("libx11" ,libx11)
@ -5320,8 +5309,7 @@ over Xlib, including:
(define-public xorg-server
(package
(name "xorg-server")
(version "1.20.8")
(replacement xorg-server/fixed)
(version "1.20.9")
(source
(origin
(method url-fetch)
@ -5329,7 +5317,7 @@ over Xlib, including:
"xorg-server-" version ".tar.bz2"))
(sha256
(base32
"0ih15m7gh1z1ly6z7g82bkni719yisqmbk61a1wgp82bxrmn8yyi"))
"0w9mrnffvjgmwi50kln15i8rpdskxv97r78l75wlcmg4vzhg46g2"))
(patches
(list
;; See:
@ -5445,35 +5433,13 @@ communicates with the user via graphical controls such as buttons and
draggable titlebars and borders.")
(license license:x11)))
(define xorg-server/fixed ; security fixes
(package
(inherit xorg-server)
(version "1.20.9")
(source
(origin
(inherit (package-source xorg-server))
(uri (string-append "mirror://xorg/individual/xserver/"
"xorg-server-" version ".tar.bz2"))
(sha256
(base32
"0w9mrnffvjgmwi50kln15i8rpdskxv97r78l75wlcmg4vzhg46g2"))))))
;; This package is intended to be used when building GTK+.
;; Note: It's currently marked as "hidden" to avoid having two non-eq?
;; packages with the same name and version.
;; TODO: Update this in the next rebuild cycle.
(define-public xorg-server-for-tests
(hidden-package
(package
(inherit xorg-server)
(version "1.20.7")
(source (origin
(inherit (package-source xorg-server))
(uri (string-append "mirror://xorg/individual/xserver/"
"xorg-server-" version ".tar.bz2"))
(sha256
(base32
"18bfl04ihw1jr3h0fs522nnxxq5ixjay77y9dcymnkzk23q8cndx")))))))
(inherit xorg-server))))
(define-public xorg-server-xwayland
(package/inherit xorg-server

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2017 Andy Patterson <ajpatter@uwaterloo.ca>
;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2019, 2020 Guillaume Le Vaillant <glv@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -54,12 +54,14 @@
;; Imported build-side modules
`((guix build asdf-build-system)
(guix build lisp-utils)
(guix build union)
,@%gnu-build-system-modules))
(define %asdf-build-modules
;; Used (visible) build-side modules
'((guix build asdf-build-system)
(guix build utils)
(guix build union)
(guix build lisp-utils)))
(define (default-lisp implementation)
@ -210,7 +212,7 @@ set up using CL source package conventions."
(define base-arguments
(if target-is-source?
(strip-keyword-arguments
'(#:tests? #:asd-file #:lisp #:asd-system-name #:test-asd-file)
'(#:tests? #:asd-files #:lisp #:asd-systems #:test-asd-file)
(package-arguments pkg))
(package-arguments pkg)))
@ -278,8 +280,8 @@ set up using CL source package conventions."
(lambda* (store name inputs
#:key source outputs
(tests? #t)
(asd-file #f)
(asd-system-name #f)
(asd-files ''())
(asd-systems ''())
(test-asd-file #f)
(phases '(@ (guix build asdf-build-system)
%standard-phases))
@ -289,12 +291,17 @@ set up using CL source package conventions."
(imported-modules %asdf-build-system-modules)
(modules %asdf-build-modules))
(define system-name
(or asd-system-name
(string-drop
;; NAME is the value returned from `package-full-name'.
(hyphen-separated-name->name+version name)
(1+ (string-length lisp-type))))) ; drop the "<lisp>-" prefix.
;; FIXME: The definition of 'systems' is pretty hacky.
;; Is there a more elegant way to do it?
(define systems
(if (null? (cadr asd-systems))
`(quote
,(list
(string-drop
;; NAME is the value returned from `package-full-name'.
(hyphen-separated-name->name+version name)
(1+ (string-length lisp-type))))) ; drop the "<lisp>-" prefix.
asd-systems))
(define builder
`(begin
@ -309,8 +316,8 @@ set up using CL source package conventions."
(derivation->output-path source))
((source) source)
(source source))
#:asd-file ,(or asd-file (string-append system-name ".asd"))
#:asd-system-name ,system-name
#:asd-files ,asd-files
#:asd-systems ,systems
#:test-asd-file ,test-asd-file
#:system ,system
#:tests? ,tests?

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2020 Timothy Sample <samplet@ngyro.com>
;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -121,7 +122,9 @@ version REVISION."
(haddock-flags ''())
(tests? #t)
(test-target "test")
(parallel-build? #t)
;; FIXME: Parallel builds lead to indeterministic
;; results, see <http://issues.guix.gnu.org/43843#3>.
(parallel-build? #f)
(configure-flags ''())
(extra-directories ''())
(phases '(@ (guix build haskell-build-system)

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2017 Andy Patterson <ajpatter@uwaterloo.ca>
;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -19,6 +20,7 @@
(define-module (guix build asdf-build-system)
#:use-module ((guix build gnu-build-system) #:prefix gnu:)
#:use-module (guix build utils)
#:use-module (guix build union)
#:use-module (guix build lisp-utils)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-11)
@ -41,14 +43,22 @@
;;
;; Code:
(define %object-prefix "/lib")
(define %object-prefix "/lib/common-lisp")
(define (%lisp-source-install-prefix)
(string-append %source-install-prefix "/" (%lisp-type) "-source"))
(string-append %source-install-prefix "/" (%lisp-type)))
(define %system-install-prefix
(string-append %source-install-prefix "/systems"))
(define (main-system-name output)
(let ((package-name (package-name->name+version
(strip-store-file-name output)))
(lisp-prefix (string-append (%lisp-type) "-")))
(if (string-prefix? lisp-prefix package-name)
(string-drop package-name (string-length lisp-prefix))
package-name)))
(define (lisp-source-directory output name)
(string-append output (%lisp-source-install-prefix) "/" name))
@ -71,6 +81,13 @@ to it's binary output."
(define (source-asd-file output name asd-file)
(string-append (lisp-source-directory output name) "/" asd-file))
(define (find-asd-files output name asd-files)
(if (null? asd-files)
(find-files (lisp-source-directory output name) "\\.asd$")
(map (lambda (asd-file)
(source-asd-file output name asd-file))
asd-files)))
(define (copy-files-to-output out name)
"Copy all files from the current directory to OUT. Create an extra link to
any system-defining files in the source to a convenient location. This is
@ -107,9 +124,10 @@ if it's present in the native-inputs."
(package-name->name+version
(strip-store-file-name output)))
(define (no-prefix pkgname)
(if (string-index pkgname #\-)
(string-drop pkgname (1+ (string-index pkgname #\-)))
pkgname))
(let ((index (string-index pkgname #\-)))
(if index
(string-drop pkgname (1+ index))
pkgname)))
(define parent
(match (assoc package-name inputs
(lambda (key alist-car)
@ -125,9 +143,10 @@ if it's present in the native-inputs."
(define parent-source
(and parent
(string-append parent "/share/common-lisp/"
(string-take parent-name
(string-index parent-name #\-))
"-source")))
(let ((index (string-index parent-name #\-)))
(if index
(string-take parent-name index)
parent-name)))))
(define (first-subdirectory directory) ; From gnu-build-system.
"Return the file name of the first sub-directory of DIRECTORY."
@ -146,122 +165,83 @@ if it's present in the native-inputs."
(with-directory-excursion source-directory
(copy-files-to-output output package-name)))
(define* (copy-source #:key outputs asd-system-name #:allow-other-keys)
(define* (copy-source #:key outputs asd-systems #:allow-other-keys)
"Copy the source to the library output."
(let* ((out (library-output outputs))
(install-path (string-append out %source-install-prefix)))
(copy-files-to-output out asd-system-name)
(install-path (string-append out %source-install-prefix))
(system-name (main-system-name out)))
(copy-files-to-output out system-name)
;; Hide the files from asdf
(with-directory-excursion install-path
(rename-file "source" (string-append (%lisp-type) "-source"))
(rename-file "source" (%lisp-type))
(delete-file-recursively "systems")))
#t)
(define* (build #:key outputs inputs asd-file asd-system-name
(define* (configure #:key inputs #:allow-other-keys)
;; Create a directory having the configuration files for
;; all the dependencies in 'etc/common-lisp/'.
(let ((out (string-append (getcwd) "/.cl-union")))
(match inputs
(((name . directories) ...)
(union-build out (filter directory-exists? directories)
#:create-all-directories? #t
#:log-port (%make-void-port "w"))))
(setenv "CL_UNION" out)
(setenv "XDG_CONFIG_DIRS" (string-append out "/etc")))
#t)
(define* (build #:key outputs inputs asd-files asd-systems
#:allow-other-keys)
"Compile the system."
(let* ((out (library-output outputs))
(source-path (lisp-source-directory out asd-system-name))
(system-name (main-system-name out))
(source-path (string-append out (%lisp-source-install-prefix)))
(translations (wrap-output-translations
`(,(output-translation source-path
out))))
(asd-file (source-asd-file out asd-system-name asd-file)))
(asd-files (find-asd-files out system-name asd-files)))
(setenv "ASDF_OUTPUT_TRANSLATIONS"
(replace-escaped-macros (format #f "~S" translations)))
(setenv "HOME" out) ; ecl's asdf sometimes wants to create $HOME/.cache
(compile-system asd-system-name asd-file)
;; As above, ecl will sometimes create this even though it doesn't use it
(let ((cache-directory (string-append out "/.cache")))
(when (directory-exists? cache-directory)
(delete-file-recursively cache-directory))))
(compile-systems asd-systems asd-files))
#t)
(define* (check #:key tests? outputs inputs asd-file asd-system-name
(define* (check #:key tests? outputs inputs asd-files asd-systems
test-asd-file
#:allow-other-keys)
"Test the system."
(let* ((out (library-output outputs))
(asd-file (source-asd-file out asd-system-name asd-file))
(system-name (main-system-name out))
(asd-files (find-asd-files out system-name asd-files))
(test-asd-file
(and=> test-asd-file
(cut source-asd-file out asd-system-name <>))))
(cut source-asd-file out system-name <>))))
(if tests?
(test-system asd-system-name asd-file test-asd-file)
(test-system (first asd-systems) asd-files test-asd-file)
(format #t "test suite not run~%")))
#t)
(define* (create-asd-file #:key outputs
inputs
asd-file
asd-system-name
#:allow-other-keys)
"Create a system definition file for the built system."
(let*-values (((out) (library-output outputs))
((_ version) (package-name->name+version
(strip-store-file-name out)))
((new-asd-file) (string-append
(library-directory out)
"/" (normalize-string asd-system-name)
".asd")))
(make-asd-file new-asd-file
#:system asd-system-name
#:version version
#:inputs inputs
#:system-asd-file asd-file))
#t)
(define* (symlink-asd-files #:key outputs #:allow-other-keys)
"Create an extra reference to the system in a convenient location."
(let* ((out (library-output outputs)))
(for-each
(lambda (asd-file)
(receive (new-asd-file asd-file-directory)
(bundle-asd-file out asd-file)
(mkdir-p asd-file-directory)
(symlink asd-file new-asd-file)
;; Update the source registry for future phases which might want to
;; use the newly compiled system.
(prepend-to-source-registry
(string-append asd-file-directory "/"))))
(find-files (string-append out %object-prefix) "\\.asd$")))
#t)
(define* (create-asdf-configuration #:key inputs outputs #:allow-other-keys)
"Create the ASDF configuration files for the built systems."
(let* ((system-name (main-system-name (assoc-ref outputs "out")))
(out (library-output outputs))
(conf-dir (string-append out "/etc/common-lisp"))
(deps-conf-dir (string-append (getenv "CL_UNION") "/etc/common-lisp"))
(source-dir (lisp-source-directory out system-name))
(lib-dir (string-append (library-directory out) "/" system-name)))
(make-asdf-configuration system-name conf-dir deps-conf-dir
source-dir lib-dir)
#t))
(define* (cleanup-files #:key outputs
#:allow-other-keys)
"Remove any compiled files which are not a part of the final bundle."
(let ((out (library-output outputs)))
(match (%lisp-type)
("sbcl"
(for-each
(lambda (file)
(unless (string-suffix? "--system.fasl" file)
(delete-file file)))
(find-files out "\\.fasl$")))
("ecl"
(for-each delete-file
(append (find-files out "\\.fas$")
(find-files out "\\.o$")))))
(with-directory-excursion (library-directory out)
(for-each
(lambda (file)
(rename-file file
(string-append "./" (basename file))))
(find-files "."))
(for-each delete-file-recursively
(scandir "."
(lambda (file)
(and
(directory-exists? file)
(string<> "." file)
(string<> ".." file)))))))
(let* ((out (library-output outputs))
(cache-directory (string-append out "/.cache")))
;; Remove the cache directory in case the lisp implementation wrote
;; something in there when compiling or testing a system.
(when (directory-exists? cache-directory)
(delete-file-recursively cache-directory)))
#t)
(define* (strip #:rest args)
@ -280,15 +260,14 @@ if it's present in the native-inputs."
(define %standard-phases
(modify-phases gnu:%standard-phases
(delete 'bootstrap)
(delete 'configure)
(delete 'install)
(replace 'configure configure)
(add-before 'configure 'copy-source copy-source)
(replace 'build build)
(add-before 'build 'copy-source copy-source)
(replace 'check check)
(replace 'strip strip)
(add-after 'check 'create-asd-file create-asd-file)
(add-after 'create-asd-file 'cleanup cleanup-files)
(add-after 'cleanup 'create-symlinks symlink-asd-files)))
(add-after 'check 'create-asdf-configuration create-asdf-configuration)
(add-after 'create-asdf-configuration 'cleanup cleanup-files)
(delete 'install)
(replace 'strip strip)))
(define* (asdf-build #:key inputs
(phases %standard-phases)

View File

@ -4,6 +4,7 @@
;;; Copyright © 2019 Ivan Petkov <ivanppetkov@gmail.com>
;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -148,14 +149,17 @@ directory = '" port)
(define* (build #:key
skip-build?
features
(features '())
(cargo-build-flags '("--release"))
#:allow-other-keys)
"Build a given Cargo package."
(or skip-build?
(apply invoke "cargo" "build"
"--features" (string-join features)
cargo-build-flags)))
(apply invoke
`("cargo" "build"
,@(if (null? features)
'()
`("--features" ,(string-join features)))
,@cargo-build-flags))))
(define* (check #:key
tests?

View File

@ -2,7 +2,7 @@
;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ivan Petkov <ivanppetkov@gmail.com>
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@ -23,6 +23,7 @@
#:use-module (guix build utils)
#:use-module (ice-9 popen)
#:use-module (ice-9 rdelim)
#:use-module (ice-9 threads)
#:export (generate-checksums
generate-all-checksums))
@ -70,7 +71,7 @@ the same directory."
(display "}" port)))))
(define (generate-all-checksums dir-name)
(for-each
(n-par-for-each (parallel-job-count)
(lambda (filename)
(let* ((dir (dirname filename))
(checksum-file (string-append dir "/.cargo-checksum.json")))

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2017 Andy Patterson <ajpatter@uwaterloo.ca>
;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -28,19 +29,17 @@
%lisp-type
%source-install-prefix
lisp-eval-program
compile-system
compile-systems
test-system
replace-escaped-macros
generate-executable-wrapper-system
generate-executable-entry-point
generate-executable-for-system
%bundle-install-prefix
bundle-asd-file
wrap-output-translations
prepend-to-source-registry
build-program
build-image
make-asd-file
make-asdf-configuration
valid-char-set
normalize-string
library-output))
@ -65,9 +64,6 @@
;; link farm for system definition (.asd) files.
(define %source-install-prefix "/share/common-lisp")
(define (%bundle-install-prefix)
(string-append %source-install-prefix "/" (%lisp-type) "-bundle-systems"))
(define (library-output outputs)
"If a `lib' output exists, build things there. Otherwise use `out'."
(or (assoc-ref outputs "lib") (assoc-ref outputs "out")))
@ -81,38 +77,6 @@
"Replace invalid characters in STR with a hyphen."
(string-join (string-tokenize str valid-char-set) "-"))
(define (normalize-dependency dependency)
"Normalize the name of DEPENDENCY. Handles dependency definitions of the
dependency-def form described by
<https://common-lisp.net/project/asdf/asdf.html#The-defsystem-grammar>.
Assume that any symbols in DEPENDENCY will be in upper-case."
(match dependency
((':VERSION name rest ...)
`(:version ,(normalize-string name) ,@rest))
((':FEATURE feature-specification dependency-specification)
`(:feature
,feature-specification
,(normalize-dependency dependency-specification)))
((? string? name) (normalize-string name))
(require-specification require-specification)))
(define (inputs->asd-file-map inputs)
"Produce a hash table of the form (system . asd-file), where system is the
name of an ASD system, and asd-file is the full path to its definition."
(alist->hash-table
(filter-map
(match-lambda
((_ . path)
(let ((prefix (string-append path (%bundle-install-prefix))))
(and (directory-exists? prefix)
(match (find-files prefix "\\.asd$")
((asd-file)
(cons
(string-drop-right (basename asd-file) 4) ; drop ".asd"
asd-file))
(_ #f))))))
inputs)))
(define (wrap-output-translations translations)
`(:output-translations
,@translations
@ -143,70 +107,26 @@ with PROGRAM."
"--eval" "(quit)"))
(_ (error "The LISP provided is not supported at this time."))))
(define (asdf-load-all systems)
(map (lambda (system)
`(asdf:load-system ,system))
systems))
(define (compile-system system asd-file)
"Use a lisp implementation to compile SYSTEM using asdf. Load ASD-FILE
first."
(define (compile-systems systems asd-files)
"Use a lisp implementation to compile the SYSTEMS using asdf.
Load ASD-FILES first."
(lisp-eval-program
`((require :asdf)
(asdf:load-asd (truename ,asd-file) :name ,(normalize-string system))
(asdf:operate 'asdf:compile-bundle-op ,system))))
,@(map (lambda (asd-file)
`(asdf:load-asd (truename ,asd-file)))
asd-files)
,@(map (lambda (system)
`(asdf:compile-system ,system))
systems))))
(define (system-dependencies system asd-file)
"Return the dependencies of SYSTEM, as reported by
asdf:system-depends-on. First load the system's ASD-FILE."
(define deps-file ".deps.sexp")
(define program
`((require :asdf)
(asdf:load-asd (truename ,asd-file) :name ,(normalize-string system))
(with-open-file
(stream ,deps-file :direction :output)
(format stream
"~s~%"
(asdf:system-depends-on
(asdf:find-system ,system))))))
(dynamic-wind
(lambda _
(lisp-eval-program program))
(lambda _
(call-with-input-file deps-file read))
(lambda _
(when (file-exists? deps-file)
(delete-file deps-file)))))
(define (compiled-system system)
(let ((system (basename system))) ; this is how asdf handles slashes
(match (%lisp-type)
("sbcl" (string-append system "--system"))
(_ system))))
(define* (generate-system-definition system
#:key version dependencies component?)
`(asdf:defsystem
,(normalize-string system)
,@(if component?
'(:class asdf/bundle:prebuilt-system)
'())
:version ,version
:depends-on ,dependencies
,@(if component?
`(:components ((:compiled-file ,(compiled-system system))))
'())
,@(if (string=? "ecl" (%lisp-type))
`(:lib ,(string-append system ".a"))
'())))
(define (test-system system asd-file test-asd-file)
"Use a lisp implementation to test SYSTEM using asdf. Load ASD-FILE first.
(define (test-system system asd-files test-asd-file)
"Use a lisp implementation to test SYSTEM using asdf. Load ASD-FILES first.
Also load TEST-ASD-FILE if necessary."
(lisp-eval-program
`((require :asdf)
(asdf:load-asd (truename ,asd-file) :name ,(normalize-string system))
,@(map (lambda (asd-file)
`(asdf:load-asd (truename ,asd-file)))
asd-files)
,@(if test-asd-file
`((asdf:load-asd (truename ,test-asd-file)))
;; Try some likely files.
@ -237,6 +157,7 @@ created a \"SYSTEM-exec\" system which contains the entry program."
:executable t
:compression t))
'())
(asdf:load-asd (truename ,(string-append system "-exec.asd")))
(asdf:operate ',type ,(string-append system "-exec")))))
(define (generate-executable-wrapper-system system dependencies)
@ -271,79 +192,30 @@ ENTRY-PROGRAM for SYSTEM within the current directory."
(declare (ignorable arguments))
,@entry-program))))))))
(define (generate-dependency-links registry system)
"Creates a program which populates asdf's source registry from REGISTRY, an
alist of dependency names to corresponding asd files. This allows the system
to locate its dependent systems."
`(progn
(asdf/source-registry:ensure-source-registry)
,@(map (match-lambda
((name . asd-file)
`(setf
(gethash ,name
asdf/source-registry:*source-registry*)
,(string->symbol "#p")
,asd-file)))
registry)))
(define (make-asdf-configuration name conf-dir deps-conf-dir source-dir lib-dir)
(let ((registry-dir (string-append
conf-dir "/source-registry.conf.d"))
(translations-dir (string-append
conf-dir "/asdf-output-translations.conf.d"))
(deps-registry-dir (string-append
deps-conf-dir "/source-registry.conf.d"))
(deps-translations-dir (string-append
deps-conf-dir
"/asdf-output-translations.conf.d")))
(mkdir-p registry-dir)
(when (directory-exists? deps-registry-dir)
(copy-recursively deps-registry-dir registry-dir))
(with-output-to-file (string-append registry-dir "/50-" name ".conf")
(lambda _
(format #t "~y~%" `(:tree ,source-dir))))
(define* (make-asd-file asd-file
#:key system version inputs
(system-asd-file #f))
"Create an ASD-FILE for SYSTEM@VERSION, appending a program to allow the
system to find its dependencies, as described by GENERATE-DEPENDENCY-LINKS."
(define dependencies
(let ((deps
(system-dependencies system system-asd-file)))
(if (eq? 'NIL deps)
'()
(map normalize-dependency deps))))
(define lisp-input-map
(inputs->asd-file-map inputs))
(define dependency-name
(match-lambda
((':version name _ ...) name)
((':feature _ dependency-specification)
(dependency-name dependency-specification))
((? string? name) name)
(_ #f)))
(define registry
(filter-map hash-get-handle
(make-list (length dependencies)
lisp-input-map)
(map dependency-name dependencies)))
;; Ensure directory exists, which might not be the case for an .asd without components.
(mkdir-p (dirname asd-file))
(call-with-output-file asd-file
(lambda (port)
(display
(replace-escaped-macros
(format #f "~y~%~y~%"
(generate-system-definition
system
#:version version
#:dependencies dependencies
;; Some .asd don't have components, and thus they don't generate any .fasl.
#:component? (match (%lisp-type)
("sbcl" (pair? (find-files (dirname asd-file)
"--system\\.fasl$")))
("ecl" (pair? (find-files (dirname asd-file)
"\\.fasb$")))
(_ (error "The LISP provided is not supported at this time."))))
(generate-dependency-links registry system)))
port))))
(define (bundle-asd-file output-path original-asd-file)
"Find the symlinked bundle file for ORIGINAL-ASD-FILE by looking in
OUTPUT-PATH/share/common-lisp/LISP-bundle-systems/<system>.asd. Returns two
values: the asd file itself and the directory in which it resides."
(let ((bundle-asd-path (string-append output-path
(%bundle-install-prefix))))
(values (string-append bundle-asd-path "/" (basename original-asd-file))
bundle-asd-path)))
(mkdir-p translations-dir)
(when (directory-exists? deps-translations-dir)
(copy-recursively deps-translations-dir translations-dir))
(with-output-to-file (string-append translations-dir "/50-" name ".conf")
(lambda _
(format #t "~y~%" `((,source-dir :**/ :*.*.*)
(,lib-dir :**/ :*.*.*)))))))
(define (replace-escaped-macros string)
"Replace simple lisp forms that the guile writer escapes, for example by
@ -368,6 +240,7 @@ will run ENTRY-PROGRAM, a list of Common Lisp expressions in which `arguments'
has been bound to the command-line arguments which were passed. Link in any
asd files from DEPENDENCY-PREFIXES to ensure references to those libraries are
retained."
(setenv "XDG_CONFIG_DIRS" (string-append (library-output outputs) "/etc"))
(generate-executable program
#:dependencies dependencies
#:dependency-prefixes dependency-prefixes
@ -388,6 +261,7 @@ retained."
"Generate an image, possibly standalone, which contains all DEPENDENCIES,
placing the result in IMAGE.image. Link in any asd files from
DEPENDENCY-PREFIXES to ensure references to those libraries are retained."
(setenv "XDG_CONFIG_DIRS" (string-append (library-output outputs) "/etc"))
(generate-executable image
#:dependencies dependencies
#:dependency-prefixes dependency-prefixes
@ -416,20 +290,15 @@ references to those libraries are retained."
(mkdir-p bin-directory)
(with-directory-excursion bin-directory
(generate-executable-wrapper-system name dependencies)
(generate-executable-entry-point name entry-program))
(prepend-to-source-registry
(string-append bin-directory "/"))
(setenv "ASDF_OUTPUT_TRANSLATIONS"
(replace-escaped-macros
(format
#f "~S"
(wrap-output-translations
`(((,bin-directory :**/ :*.*.*)
(,bin-directory :**/ :*.*.*)))))))
(generate-executable-for-system type name #:compress? compress?)
(generate-executable-entry-point name entry-program)
(setenv "ASDF_OUTPUT_TRANSLATIONS"
(replace-escaped-macros
(format
#f "~S"
(wrap-output-translations
`(((,bin-directory :**/ :*.*.*)
(,bin-directory :**/ :*.*.*)))))))
(generate-executable-for-system type name #:compress? compress?))
(let* ((after-store-prefix-index
(string-index out-file #\/
@ -445,9 +314,11 @@ references to those libraries are retained."
(symlink asd-file
(string-append hidden-asd-links
"/" (basename asd-file))))
(find-files (string-append path (%bundle-install-prefix))
(find-files (string-append path %source-install-prefix "/"
(%lisp-type))
"\\.asd$")))
dependency-prefixes))
(delete-file (string-append bin-directory "/" name "-exec.asd"))
(delete-file (string-append bin-directory "/" name "-exec.lisp"))))
(delete-file (string-append bin-directory "/" name "-exec.lisp"))
(delete-file (string-append bin-directory "/" name "-exec.fasl"))))