Merge branch 'staging'
commit
4dadb49779
|
@ -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
|
||||
|
||||
|
|
23
gnu/local.mk
23
gnu/local.mk
|
@ -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 \
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)))
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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)))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)))
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
@ -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)
|
||||
|
|
|
@ -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)))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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))))
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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)))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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(
|
|
@ -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"
|
|
@ -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
|
@ -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------------------------------
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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:
|
|
@ -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) ;
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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) ;
|
|
@ -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)
|
||||
{
|
|
@ -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
|
|
@ -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
|
|
@ -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")))
|
|
@ -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
|
||||
|
|
|
@ -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/")
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -85,6 +85,7 @@
|
|||
|
||||
(substitute* "src/options/view.rs"
|
||||
(("test!\\(across:.*") "")
|
||||
(("test!\\(cr:.*") "")
|
||||
(("test!\\(empty:.*") "")
|
||||
(("test!\\(gracross:.*") "")
|
||||
(("test!\\(grid:.*") "")
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 '())))
|
||||
|
|
|
@ -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)))
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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?
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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?
|
||||
|
|
|
@ -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")))
|
||||
|
|
|
@ -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"))))
|
||||
|
|
Reference in New Issue