diff options
Diffstat (limited to 'gnu')
24 files changed, 1674 insertions, 178 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index 66f802a078..5b915317d9 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -804,6 +804,7 @@ dist_patch_DATA = \ %D%/packages/patches/intltool-perl-compatibility.patch \ %D%/packages/patches/isl-0.11.1-aarch64-support.patch \ %D%/packages/patches/jacal-fix-texinfo.patch \ + %D%/packages/patches/jamvm-arm.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 \ @@ -930,7 +931,6 @@ dist_patch_DATA = \ %D%/packages/patches/mcrypt-CVE-2012-4426.patch \ %D%/packages/patches/mcrypt-CVE-2012-4527.patch \ %D%/packages/patches/mesa-skip-disk-cache-test.patch \ - %D%/packages/patches/mesa-wayland-egl-symbols-check-mips.patch \ %D%/packages/patches/meson-for-build-rpath.patch \ %D%/packages/patches/metabat-fix-compilation.patch \ %D%/packages/patches/mhash-keygen-test-segfault.patch \ @@ -975,6 +975,7 @@ dist_patch_DATA = \ %D%/packages/patches/omake-fix-non-determinism.patch \ %D%/packages/patches/ola-readdir-r.patch \ %D%/packages/patches/opencascade-oce-glibc-2.26.patch \ + %D%/packages/patches/openblas-fix-tests-i686.patch \ %D%/packages/patches/openexr-missing-samples.patch \ %D%/packages/patches/openfoam-4.1-cleanup.patch \ %D%/packages/patches/openldap-CVE-2017-9287.patch \ @@ -1217,6 +1218,7 @@ dist_patch_DATA = \ %D%/packages/patches/xinetd-fix-fd-leak.patch \ %D%/packages/patches/xinetd-CVE-2013-4342.patch \ %D%/packages/patches/xmodmap-asprintf.patch \ + %D%/packages/patches/zathura-pdf-mupdf-link-to-jpeg-libraries.patch \ %D%/packages/patches/zathura-plugindir-environment-variable.patch MISC_DISTRO_FILES = \ diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index fef6002b3c..de0aa92adb 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -10,7 +10,7 @@ ;;; Copyright © 2016, 2018 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> -;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> @@ -1131,7 +1131,7 @@ command.") (define-public tzdata (package (name "tzdata") - (version "2018d") + (version "2018e") (source (origin (method url-fetch) (uri (string-append @@ -1139,7 +1139,7 @@ command.") version ".tar.gz")) (sha256 (base32 - "0m6020dnk9r40z7k36jp13fa06xip3hn0fdx3nly66jzxgffs1ji")))) + "0bk97fv2i5ns42prpmlaadsswdjwv0ifi7whj2s4q6l44rcqwa3b")))) (build-system gnu-build-system) (arguments '(#:tests? #f @@ -1189,7 +1189,7 @@ command.") version ".tar.gz")) (sha256 (base32 - "1nd882yhsazmcfqmcqyfig3axycryl30gmizgqhqsx5dpa2lxr3x")))))) + "1kpb02631s58i068mwq63xlamcv1ffj4p6y4wpb9kdl01vr0qd6a")))))) (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) @@ -1205,7 +1205,25 @@ and daylight-saving rules.") ;;; will typically be obsolete and should never be referred to by a built ;;; package. (define-public tzdata-for-tests - (hidden-package tzdata)) + (hidden-package + (package + (inherit tzdata) + (version "2018d") + (source (origin + (method url-fetch) + (uri (string-append "https://www.iana.org/time-zones/repository" + "/releases/tzdata" version ".tar.gz")) + (sha256 + (base32 + "0m6020dnk9r40z7k36jp13fa06xip3hn0fdx3nly66jzxgffs1ji")))) + (inputs `(("tzcode" ,(origin + (method url-fetch) + (uri (string-append + "http://www.iana.org/time-zones/repository/releases/tzcode" + version ".tar.gz")) + (sha256 + (base32 + "1nd882yhsazmcfqmcqyfig3axycryl30gmizgqhqsx5dpa2lxr3x"))))))))) (define-public libiconv (package diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm index a6d9fa8cfc..e693aec4ac 100644 --- a/gnu/packages/build-tools.scm +++ b/gnu/packages/build-tools.scm @@ -100,7 +100,7 @@ generate such a compilation database.") (define-public meson (package (name "meson") - (version "0.45.1") + (version "0.46.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/mesonbuild/meson/" @@ -108,7 +108,7 @@ generate such a compilation database.") version ".tar.gz")) (sha256 (base32 - "1yqa4337nb8w92bvr91rsxmn0xkf7pmdybq9ljvnqmdvn7dv02sd")))) + "0y7f5hhy16q99l7x06x8sid9p9dbg6d7i60zs7c07cz5ww1plj8r")))) (build-system python-build-system) (arguments `(;; FIXME: Tests require many additional inputs, a fix for the RUNPATH diff --git a/gnu/packages/certs.scm b/gnu/packages/certs.scm index 3f592cf17b..cb05fb83fc 100644 --- a/gnu/packages/certs.scm +++ b/gnu/packages/certs.scm @@ -76,7 +76,7 @@ (define-public nss-certs (package (name "nss-certs") - (version "3.36.1") + (version "3.38") (source (origin (method url-fetch) (uri (let ((version-with-underscores @@ -87,7 +87,7 @@ "nss-" version ".tar.gz"))) (sha256 (base32 - "1zrb49mp7cy3snnday1zv8d76h1mgppbcwxnlkqsgxlga8fl89b0")))) + "0qigcy3d169cf67jzv3rbai0m6dn34vp8h2z696mz4yn10y3sr1c")))) (build-system gnu-build-system) (outputs '("out")) (native-inputs diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 0f1e47f485..c2005144b4 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -705,14 +705,14 @@ as a drop-in replacement of MySQL.") (define-public postgresql (package (name "postgresql") - (version "10.3") + (version "10.4") (source (origin (method url-fetch) (uri (string-append "https://ftp.postgresql.org/pub/source/v" version "/postgresql-" version ".tar.bz2")) (sha256 (base32 - "06lkcwsf851z49zqcws5yc77s2yrbaazf2nvbk38hpp31rw6i8kf")))) + "0j000bcs9w8wrllg8m7j1lxsd3n2x0yzkack5p35cmxx20iq2q0v")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-uuid=e2fs") diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm index 2ffe541294..f533535f03 100644 --- a/gnu/packages/documentation.scm +++ b/gnu/packages/documentation.scm @@ -123,14 +123,14 @@ markup) can be customized and extended by the user.") (define-public doxygen (package (name "doxygen") - (version "1.8.13") + (version "1.8.14") (source (origin (method url-fetch) (uri (string-append "http://ftp.stack.nl/pub/users/dimitri/" name "-" version ".src.tar.gz")) (sha256 (base32 - "0srzawqn3apzrg8hwycwrawdylmmjrndij4spw6xr1vspn3phrmg")) + "0kcxymbam9jwiyjwyvwdjj0h74lbb6c467szsipzbxjyfl17wxfi")) (patches (search-patches "doxygen-test.patch")))) (build-system cmake-build-system) (native-inputs diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 7df44dfb0f..26312e773c 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -147,14 +147,14 @@ freedesktop.org project.") (define-public libinput (package (name "libinput") - (version "1.10.3") + (version "1.11.1") (source (origin (method url-fetch) (uri (string-append "https://freedesktop.org/software/libinput/" name "-" version ".tar.xz")) (sha256 (base32 - "0002xk9cqzpqrlhgav1wp8nimsbp9d2w8rd8mgygczq2hjar0lhd")))) + "1z7i8vk0i61npkdqwsk85wp9v4yjlvylqnyydikjqnbsrjp9abk4")))) (build-system meson-build-system) (arguments `(#:configure-flags '("-Ddocumentation=false"))) @@ -474,7 +474,7 @@ applications, X servers (rootless or fullscreen) or other display servers.") (define-public wayland-protocols (package (name "wayland-protocols") - (version "1.13") + (version "1.14") (source (origin (method url-fetch) (uri (string-append @@ -482,7 +482,7 @@ applications, X servers (rootless or fullscreen) or other display servers.") "wayland-protocols-" version ".tar.xz")) (sha256 (base32 - "0f4gqvmz53q9d8h0ilhf4z773nb4vskzx11a3d1jycym120bqn07")))) + "1xknjcfhqvdi1s4iq4kk1q61fg2rar3g8q4vlqarpd324imqjj4n")))) (build-system gnu-build-system) (inputs `(("wayland" ,wayland))) diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 5012d9a913..130c212669 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -612,7 +612,7 @@ as the 'native-search-paths' field." (lambda* (#:key outputs #:allow-other-keys) (for-each delete-file (find-files (string-append (assoc-ref outputs "out") "/bin") - ".*(c\\+\\+|cpp|g\\+\\+|gcov|gcc.*)")) + ".*(c\\+\\+|cpp|g\\+\\+|gcov|gcc|gcc-.*)")) #t)))))))) (define %generic-search-paths diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 503308ac16..bde6e55607 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -224,7 +224,7 @@ also known as DXTn or DXTC) for Mesa.") (define-public mesa (package (name "mesa") - (version "17.3.8") + (version "18.1.2") (source (origin (method url-fetch) @@ -236,10 +236,9 @@ also known as DXTn or DXTC) for Mesa.") version "/mesa-" version ".tar.xz"))) (sha256 (base32 - "1cd6a4ll5arla3kncxnw9196ak1v4rvnb098aa7lm3n4h7r9p7cg")) + "1ydivzm4c2k53b65lvm11d62z140xlmd7viw63bl5cm5idjg02q7")) (patches - (search-patches "mesa-wayland-egl-symbols-check-mips.patch" - "mesa-skip-disk-cache-test.patch")))) + (search-patches "mesa-skip-disk-cache-test.patch")))) (build-system gnu-build-system) (propagated-inputs `(;; The following are in the Requires.private field of gl.pc. @@ -260,7 +259,7 @@ also known as DXTn or DXTC) for Mesa.") ("libxvmc" ,libxvmc) ,@(match (%current-system) ((or "x86_64-linux" "i686-linux") - `(("llvm" ,llvm-3.9.1))) ; exactly 3.9.0 or 3.9.1 for swrast + `(("llvm" ,llvm))) (_ `())) ("makedepend" ,makedepend) @@ -276,15 +275,15 @@ also known as DXTn or DXTC) for Mesa.") '(,@(match (%current-system) ("armhf-linux" ;; TODO: Add etnaviv,imx when libdrm supports etnaviv. - '("--with-gallium-drivers=freedreno,nouveau,r300,r600,swrast,vc4,virgl")) + '("--with-gallium-drivers=freedreno,nouveau,r300,r600,swrast,tegra,vc4,virgl")) ("aarch64-linux" ;; TODO: Fix svga driver for aarch64 and armhf. - '("--with-gallium-drivers=freedreno,nouveau,pl111,r300,r600,swrast,vc4,virgl")) + '("--with-gallium-drivers=freedreno,nouveau,pl111,r300,r600,swrast,tegra,vc4,virgl")) (_ '("--with-gallium-drivers=i915,nouveau,r300,r600,radeonsi,svga,swrast,virgl"))) ;; Enable various optional features. TODO: opencl requires libclc, ;; omx requires libomxil-bellagio - "--with-platforms=x11,drm,wayland,surfaceless" + "--with-platforms=x11,drm,surfaceless,wayland" "--enable-glx-tls" ;Thread Local Storage, improves performance ;; "--enable-opencl" ;; "--enable-omx" @@ -328,23 +327,15 @@ also known as DXTn or DXTC) for Mesa.") (add-after 'unpack 'patch-create_test_cases (lambda _ - (substitute* "src/compiler/glsl/tests/lower_jumps/create_test_cases.py" - (("/usr/bin/env bash") (which "bash"))) (substitute* "src/intel/genxml/gen_pack_header.py" (("/usr/bin/env python2") (which "python"))) #t)) (add-before 'build 'fix-dlopen-libnames (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((s2tc (assoc-ref inputs "s2tc")) - (out (assoc-ref outputs "out"))) + (let ((out (assoc-ref outputs "out"))) ;; Remain agnostic to .so.X.Y.Z versions while doing ;; the substitutions so we're future-safe. - (substitute* - '("src/gallium/auxiliary/util/u_format_s3tc.c" - "src/mesa/main/texcompress_s3tc.c") - (("\"libtxc_dxtn\\.so") - (string-append "\"" s2tc "/lib/libtxc_dxtn.so"))) (substitute* "src/glx/dri_common.c" (("dlopen\\(\"libGL\\.so") (string-append "dlopen(\"" out "/lib/libGL.so"))) @@ -559,7 +550,7 @@ OpenGL graphics API.") (define-public libepoxy (package (name "libepoxy") - (version "1.5.0") + (version "1.5.2") (source (origin (method url-fetch) (uri (string-append @@ -567,7 +558,7 @@ OpenGL graphics API.") version "/libepoxy-" version ".tar.xz")) (sha256 (base32 - "1md58amxyp34yjnw4xa185hw5jm0hnb2xnhdc28zdsx6k19rk52c")))) + "1n57xj5i6giw4mp5s59w1m9bm33sd6gjg7r00dzzvcwya6326mm9")))) (arguments `(#:phases (modify-phases %standard-phases diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index df87700d6f..c52d21d8e3 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -291,7 +291,7 @@ in the Mozilla clients.") (define-public nss (package (name "nss") - (version "3.36.1") + (version "3.38") (source (origin (method url-fetch) (uri (let ((version-with-underscores @@ -302,7 +302,7 @@ in the Mozilla clients.") "nss-" version ".tar.gz"))) (sha256 (base32 - "1zrb49mp7cy3snnday1zv8d76h1mgppbcwxnlkqsgxlga8fl89b0")) + "0qigcy3d169cf67jzv3rbai0m6dn34vp8h2z696mz4yn10y3sr1c")) ;; Create nss.pc and nss-config. (patches (search-patches "nss-pkgconfig.patch" "nss-increase-test-timeout.patch")))) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 83db8f6b30..3718e939d1 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -42,6 +42,7 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system gnu) + #:use-module (guix build-system meson) #:use-module (guix build-system perl) #:use-module (guix build-system python) #:use-module (guix build-system waf) @@ -670,7 +671,7 @@ application suites.") (name "gtk+") ;; NOTE: When updating the version of 'gtk+', the hash of 'mate-themes' in ;; mate.scm will also need to be updated. - (version "3.22.29") + (version "3.22.30") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -678,7 +679,7 @@ application suites.") name "-" version ".tar.xz")) (sha256 (base32 - "1y5vzdbgww9l7xcrg13azff2rs94kggkywmpcsh39h7w76wn8zd0")) + "0rv5k8fyi2i19k4zncai6vf429s6zy3kncr8vb6f3m034z0sb951")) (patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch" "gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch")))) (outputs '("out" "bin" "doc")) @@ -1362,15 +1363,15 @@ and routines to assist in editing internationalized text.") (define-public girara (package (name "girara") - (version "0.2.8") + (version "0.2.9") (source (origin (method url-fetch) (uri (string-append "https://pwmt.org/projects/girara/download/girara-" - version ".tar.gz")) + version ".tar.xz")) (sha256 (base32 - "18wss3sak3djip090v2vdbvq1mvkwcspfswc87zbvv3magihan98")))) + "0lkxrfna818wkkr2f6mdzf15y5z8xl1b9592ylmzjbqsqya3w7x8")))) (native-inputs `(("pkg-config" ,pkg-config) ("check" ,check) ("gettext" ,gettext-minimal) @@ -1379,13 +1380,7 @@ and routines to assist in editing internationalized text.") ;; Listed in 'Requires.private' of 'girara.pc'. (propagated-inputs `(("gtk+" ,gtk+))) (arguments - `(#:make-flags - `(,(string-append "PREFIX=" (assoc-ref %outputs "out")) - "COLOR=0" "CC=gcc") - #:test-target "test" - #:disallowed-references (,xorg-server-1.19.3) - #:phases (modify-phases %standard-phases - (delete 'configure) + `(#:phases (modify-phases %standard-phases (add-before 'check 'start-xserver ;; Tests require a running X server. (lambda* (#:key inputs #:allow-other-keys) @@ -1401,7 +1396,7 @@ and routines to assist in editing internationalized text.") (setenv "DBUS_FATAL_WARNINGS" "0") (zero? (system (string-append xorg-server "/bin/Xvfb " display " &"))))))))) - (build-system gnu-build-system) + (build-system meson-build-system) (home-page "https://pwmt.org/projects/girara/") (synopsis "Library for minimalistic gtk+3 user interfaces") (description "Girara is a library that implements a user interface that diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index f23572a55a..f48305132a 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com> ;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com> +;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -150,7 +151,7 @@ and binary format defined in The Java Virtual Machine Specification.") #:phases (modify-phases %standard-phases (add-after 'install 'install-data - (lambda _ (zero? (system* "make" "install-data"))))))) + (lambda _ (invoke "make" "install-data")))))) (native-inputs `(("jikes" ,jikes) ("fastjar" ,fastjar) @@ -175,6 +176,7 @@ language.") (uri (string-append "mirror://sourceforge/jamvm/jamvm/" "JamVM%20" version "/jamvm-" version ".tar.gz")) + (patches (search-patches "jamvm-arm.patch")) (sha256 (base32 "06lhi03l3b0h48pc7x58bk9my2nrcf1flpmglvys3wyad6yraf36")))) @@ -212,7 +214,13 @@ JNI.") "1cg0lga887qz5iizh6mlkxp01lciymrhmp7wzxpl6zpnldxmzrjx")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; no "check" target + `(#:imported-modules ((guix build syscalls) + ,@%gnu-build-system-modules) + #:modules ((srfi srfi-1) + (guix build gnu-build-system) + (guix build utils) + (guix build syscalls)) + #:tests? #f ; no "check" target #:phases (modify-phases %standard-phases (delete 'bootstrap) @@ -245,19 +253,54 @@ JNI.") ;; Without these JamVM options the build may freeze. (substitute* "bootstrap.sh" (("^\"\\$\\{JAVACMD\\}\" " m) - (string-append m "-Xnocompact -Xnoinlining "))) + ,@(if (string-prefix? "armhf" (or (%current-system) + (%current-target-system))) + `((string-append m "-Xnocompact ")) + `((string-append m "-Xnocompact -Xnoinlining "))))) ;; Disable tests because we are bootstrapping and thus don't have ;; any of the dependencies required to build and run the tests. (substitute* "build.xml" (("depends=\"jars,test-jar\"") "depends=\"jars\"")) - (zero? (system* "bash" "bootstrap.sh" - (string-append "-Ddist.dir=" - (assoc-ref %outputs "out")))))) + (invoke "bash" "bootstrap.sh" + (string-append "-Ddist.dir=" + (assoc-ref %outputs "out"))))) + (add-after 'build 'strip-jar-timestamps ;based on ant-build-system + (lambda* (#:key outputs #:allow-other-keys) + (define (repack-archive jar) + (let* ((dir (mkdtemp! "jar-contents.XXXXXX")) + (manifest (string-append dir "/META-INF/MANIFESTS.MF"))) + (with-directory-excursion dir + (invoke "unzip" jar)) + (delete-file jar) + ;; XXX: copied from (gnu build install) + (for-each (lambda (file) + (let ((s (lstat file))) + (unless (eq? (stat:type s) 'symlink) + (utime file 0 0 0 0)))) + (find-files dir #:directories? #t)) + ;; It is important that the manifest appears first. + (with-directory-excursion dir + (let* ((files (find-files "." ".*" #:directories? #t)) + ;; To ensure that the reference scanner can + ;; detect all store references in the jars + ;; we disable compression with the "-0" option. + (command (if (file-exists? manifest) + `("zip" "-0" "-X" ,jar ,manifest + ,@files) + `("zip" "-0" "-X" ,jar ,@files)))) + (apply invoke command))))) + (for-each repack-archive + (find-files + (string-append (assoc-ref %outputs "out") "/lib") + "\\.jar$")) + #t)) (delete 'install)))) (native-inputs `(("jikes" ,jikes) - ("jamvm" ,jamvm-1-bootstrap))) + ("jamvm" ,jamvm-1-bootstrap) + ("unzip" ,unzip) + ("zip", zip))) (home-page "http://ant.apache.org") (synopsis "Build tool for Java") (description @@ -316,10 +359,10 @@ build process and its dependencies, whereas Make uses Makefile format.") Main-Class: org.eclipse.jdt.internal.compiler.batch.Main\n"))) ;; Compile it all! - (and (zero? (apply system* "jikes" - (find-files "." "\\.java$"))) - (zero? (system* "fastjar" "cvfm" - "ecj-bootstrap.jar" "manifest" "."))))) + (and (apply invoke "jikes" + (find-files "." "\\.java$")) + (invoke "fastjar" "cvfm" + "ecj-bootstrap.jar" "manifest" ".")))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let ((share (string-append (assoc-ref outputs "out") @@ -394,7 +437,11 @@ requirement for all GNU Classpath releases after version 0.93.") args defaults)) (apply system* ,java (append - (list "-Xnocompact" "-Xnoinlining") + (list "-Xnocompact") + ,,@(if (string-prefix? "armhf" (or (%current-system) + (%current-target-system))) + '() + `((list "-Xnoinlining"))) ;; Remove "-J" prefix (map (cut string-drop <> 2) vm-args) '("org.eclipse.jdt.internal.compiler.batch.Main") @@ -453,7 +500,7 @@ the standard javac executable."))) #:phases (modify-phases %standard-phases (add-after 'install 'install-data - (lambda _ (zero? (system* "make" "install-data"))))))) + (lambda _ (invoke "make" "install-data")))))) (native-inputs `(("ecj-bootstrap" ,ecj-bootstrap) ("ecj-javac-wrapper" ,ecj-javac-wrapper) @@ -484,12 +531,20 @@ the standard javac executable."))) (for-each (lambda (tool) (with-output-to-file (string-append bin tool) (lambda _ - (format #t "#!~a/bin/sh + ,@(if (string-prefix? "armhf" (or (%current-system) + (%current-target-system))) + `((format #t "#!~a/bin/sh +~a/bin/jamvm -Xnocompact -classpath ~a/share/classpath/tools.zip \ +gnu.classpath.tools.~a.~a $@" + bash jamvm classpath tool + (if (string=? "native2ascii" tool) + "Native2ASCII" "Main"))) + `((format #t "#!~a/bin/sh ~a/bin/jamvm -Xnocompact -Xnoinlining -classpath ~a/share/classpath/tools.zip \ gnu.classpath.tools.~a.~a $@" bash jamvm classpath tool (if (string=? "native2ascii" tool) - "Native2ASCII" "Main")))) + "Native2ASCII" "Main")))))) (chmod (string-append bin tool) #o755)) (list "javah" "rmic" @@ -562,7 +617,7 @@ machine."))) (("@Override") "")) #t)) (add-after 'install 'install-data - (lambda _ (zero? (system* "make" "install-data"))))))) + (lambda _ (invoke "make" "install-data")))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -1649,7 +1704,9 @@ new Date();")) (string-append "-Ddist.dir=" (assoc-ref outputs "out")))))))))) (native-inputs - `(("jdk" ,icedtea-8 "jdk"))))) + `(("jdk" ,icedtea-8 "jdk") + ("zip" ,zip) + ("unzip" ,unzip))))) ;; The 1.9.x series is the last that can be built with GCJ. The 1.10.x series ;; requires Java 8. @@ -1664,7 +1721,9 @@ new Date();")) (base32 "1k28mka0m3isy9yr8gz84kz1f3f879rwaxrd44vdn9xbfwvwk86n")))) (native-inputs - `(("jdk" ,icedtea-7 "jdk"))))) + `(("jdk" ,icedtea-7 "jdk") + ("zip" ,zip) + ("unzip" ,unzip))))) (define-public ant-apache-bcel (package diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 37b577ee09..7367b953f7 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3055,15 +3055,15 @@ Linux Device Mapper multipathing driver: (define-public libaio (package (name "libaio") - (version "0.3.110") + (version "0.3.111") (source (origin (method url-fetch) - (uri (list - (string-append "mirror://debian/pool/main/liba/libaio/" - name "_" version ".orig.tar.gz"))) - (sha256 - (base32 - "0zjzfkwd1kdvq6zpawhzisv7qbq1ffs343i5fs9p498pcf7046g0")))) + (uri (list + (string-append "https://releases.pagure.org/libaio/" + name "-" version ".tar.gz"))) + (sha256 + (base32 + "0ajhzbqjwsmz51gwccfyw6w9k4j4gmxcl2ph30sfn2gxv0d8gkv2")))) (build-system gnu-build-system) (arguments '(#:make-flags @@ -3071,7 +3071,7 @@ Linux Device Mapper multipathing driver: #:test-target "partcheck" ; need root for a full 'check' #:phases (modify-phases %standard-phases (delete 'configure)))) ; no configure script - (home-page "http://lse.sourceforge.net/io/aio.html") + (home-page "https://pagure.io/libaio") (synopsis "Linux-native asynchronous I/O access library") (description "This library enables userspace to use Linux kernel asynchronous I/O @@ -3105,7 +3105,7 @@ Bluetooth audio output devices like headphones or loudspeakers.") (define-public bluez (package (name "bluez") - (version "5.49") + (version "5.50") (source (origin (method url-fetch) (uri (string-append @@ -3113,7 +3113,7 @@ Bluetooth audio output devices like headphones or loudspeakers.") version ".tar.xz")) (sha256 (base32 - "15ffsaz7l3fgdg03l7g1xx9jw7xgs6pc548zxqsxawsca5x1sc1k")))) + "048r91vx9gs5nwwbah2s0xig04nwk14c5s0vb7qmaqdvighsmz2z")))) (build-system gnu-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index ee9d84d1c3..7d70ac1fa6 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -2788,7 +2788,7 @@ parts of it.") (define-public openblas (package (name "openblas") - (version "0.2.20") + (version "0.3.0") (source (origin (method url-fetch) @@ -2797,7 +2797,7 @@ parts of it.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1bd03c5xni0bla0wg1wba841b36b0sg13sjja955kn5xzvy4i61a")))) + "14a9vyvp2k5zpd0axbnqk0d3khc1v3cck10nb5fj7d2sgn8490ky")))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -2836,6 +2836,16 @@ parts of it.") #:phases (modify-phases %standard-phases (delete 'configure) + ;; Conditionally apply a patch on i686 to avoid rebuilding + ;; all architectures. FIXME: This should be moved to the + ;; (source (patches ...)) field in the next rebuild cycle. + ,@(if (string-prefix? "i686" (or (%current-target-system) + (%current-system))) + `((add-after 'unpack 'fix-tests + (lambda* (#:key inputs #:allow-other-keys) + (invoke "patch" "-p1" + "--input" (assoc-ref inputs "i686-fix-tests.patch"))))) + '()) (add-before 'build 'set-extralib (lambda* (#:key inputs #:allow-other-keys) ;; Get libgfortran found when building in utest. @@ -2847,6 +2857,11 @@ parts of it.") `(("fortran-lib" ,gfortran "lib"))) (native-inputs `(("cunit" ,cunit) + ,@(if (string-prefix? "i686" (or (%current-target-system) + (%current-system))) + `(("i686-fix-tests.patch" + ,(search-patch "openblas-fix-tests-i686.patch"))) + '()) ("fortran" ,gfortran) ("perl" ,perl))) (home-page "http://www.openblas.net/") diff --git a/gnu/packages/patches/jamvm-arm.patch b/gnu/packages/patches/jamvm-arm.patch new file mode 100644 index 0000000000..9e998e18db --- /dev/null +++ b/gnu/packages/patches/jamvm-arm.patch @@ -0,0 +1,1313 @@ +From 67faeb7d58e0d25a50d36788ed49ed383b92e090 Mon Sep 17 00:00:00 2001 +From: Efraim Flashner <efraim@flashner.co.il> +Date: Mon, 26 Mar 2018 11:08:17 +0300 +Subject: [PATCH] add ARMv7 support + +--- + src/arch/arm.h | 75 +++++- + src/os/linux/arm/Makefile.am | 9 +- + src/os/linux/arm/Makefile.in | 166 ++++++++---- + src/os/linux/arm/callNative.S | 12 +- + src/os/linux/arm/callNativeEABI.S | 8 +- + src/os/linux/arm/callNativeEABIHard.S | 315 +++++++++++++++++++++++ + src/os/linux/arm/callNativeEABIHardARM.S | 266 +++++++++++++++++++ + src/os/linux/arm/dll_md.c | 61 ++++- + 8 files changed, 843 insertions(+), 69 deletions(-) + create mode 100644 src/os/linux/arm/callNativeEABIHard.S + create mode 100644 src/os/linux/arm/callNativeEABIHardARM.S + +diff --git a/src/arch/arm.h b/src/arch/arm.h +index ccf68c4..d2c0318 100644 +--- a/src/arch/arm.h ++++ b/src/arch/arm.h +@@ -1,6 +1,6 @@ + /* +- * Copyright (C) 2003, 2004, 2005, 2006, 2007 +- * Robert Lougher <rob@lougher.org.uk>. ++ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, ++ * 2014 Robert Lougher <rob@jamvm.org.uk>. + * + * This file is part of JamVM. + * +@@ -21,10 +21,16 @@ + + #define OS_ARCH "arm" + +-/* Override default min and max heap sizes. ARM machines are +- usually embedded, and the standard defaults are too large. */ +-#define DEFAULT_MAX_HEAP 16*MB ++/* Override minimum min heap size. The initial heap size is a ratio ++ of the physical memory, but it must be at least the minimum min ++ size. The normal setting is too large for ARM machines as they ++ are usually embedded. */ ++#define MIN_MIN_HEAP 1*MB ++ ++/* Likewise, override the default min/max heap sizes used when the ++ size of physical memory is not available */ + #define DEFAULT_MIN_HEAP 1*MB ++#define DEFAULT_MAX_HEAP 64*MB + + #ifdef DIRECT + #define HANDLER_TABLE_T static const void +@@ -51,6 +57,36 @@ + /* Needed for i386 -- empty here */ + #define FPU_HACK + ++#if defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_7A__) ++#define COMPARE_AND_SWAP_32(addr, old_val, new_val) \ ++({ \ ++ int result, read_val; \ ++ __asm__ __volatile__ (" \ ++ 1: mov %0, #0; \ ++ ldrex %1, [%2]; \ ++ cmp %3, %1; \ ++ bne 2f; \ ++ strex %0, %4, [%2]; \ ++ cmp %0, #1; \ ++ beq 1b; \ ++ mov %0, #1; \ ++ 2:" \ ++ : "=&r" (result), "=&r" (read_val) \ ++ : "r" (addr), "r" (old_val), "r" (new_val) \ ++ : "cc", "memory"); \ ++ result; \ ++}) ++ ++#define COMPARE_AND_SWAP(addr, old_val, new_val) \ ++ COMPARE_AND_SWAP_32(addr, old_val, new_val) ++ ++#define LOCKWORD_READ(addr) *addr ++#define LOCKWORD_WRITE(addr, value) *addr = value ++#define LOCKWORD_COMPARE_AND_SWAP(addr, old_val, new_val) \ ++ COMPARE_AND_SWAP(addr, old_val, new_val) ++ ++#else ++ + #define LOCKWORD_COMPARE_AND_SWAP(addr, old_val, new_val) \ + ({ \ + int result, read_val; \ +@@ -94,7 +130,7 @@ do { \ + : "r" (addr), "r" (new_val) \ + : "cc", "memory"); \ + } while(0) +- ++#endif + + #ifdef __ARM_EABI__ + #define FLUSH_CACHE(addr, length) \ +@@ -124,8 +160,33 @@ do { \ + } + #endif + ++#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) - 8; \ ++ \ ++ if(offset >= -1<<25 && offset < 1<<25) { \ ++ *(int*)(patch_addr) = offset>>2 & 0x00ffffff \ ++ | 0xea000000; \ ++ patched = TRUE; \ ++ } \ ++ } \ ++ patched; \ ++}) ++ ++#ifdef __ARM_ARCH_7A__ ++#define MBARRIER() __asm__ __volatile__ ("dmb" ::: "memory") ++#define UNLOCK_MBARRIER() __asm__ __volatile__ ("dmb" ::: "memory") ++#define JMM_LOCK_MBARRIER() __asm__ __volatile__ ("dmb" ::: "memory") ++#define JMM_UNLOCK_MBARRIER() __asm__ __volatile__ ("dmb" ::: "memory") ++#else + #define MBARRIER() __asm__ __volatile__ ("" ::: "memory") + #define UNLOCK_MBARRIER() __asm__ __volatile__ ("" ::: "memory") + #define JMM_LOCK_MBARRIER() __asm__ __volatile__ ("" ::: "memory") + #define JMM_UNLOCK_MBARRIER() __asm__ __volatile__ ("" ::: "memory") +- ++#endif +diff --git a/src/os/linux/arm/Makefile.am b/src/os/linux/arm/Makefile.am +index d18ea5a..74e7786 100644 +--- a/src/os/linux/arm/Makefile.am ++++ b/src/os/linux/arm/Makefile.am +@@ -1,6 +1,6 @@ + ## +-## Copyright (C) 2003, 2004, 2005, 2006, 2007 +-## Robert Lougher <rob@lougher.org.uk>. ++## Copyright (C) 2003, 2004, 2005, 2006, 2007, 2010, 2011, 2012 ++## Robert Lougher <rob@jamvm.org.uk>. + ## + ## This file is part of JamVM. + ## +@@ -19,10 +19,11 @@ + ## Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + ## + +-EXTRA_DIST = callNativeOABI.S callNativeEABI.S ++EXTRA_DIST = callNativeOABI.S callNativeEABI.S callNativeEABIHard.S \ ++ callNativeEABIHardARM.S + + noinst_LTLIBRARIES = libnative.la + libnative_la_SOURCES = init.c dll_md.c callNative.S + +-AM_CPPFLAGS = -I$(top_builddir)/src ++AM_CPPFLAGS = -I$(top_builddir)/src -I$(top_srcdir)/src + AM_CCASFLAGS = -I$(top_builddir)/src +diff --git a/src/os/linux/arm/Makefile.in b/src/os/linux/arm/Makefile.in +index 63b21ad..6d44ea9 100644 +--- a/src/os/linux/arm/Makefile.in ++++ b/src/os/linux/arm/Makefile.in +@@ -1,8 +1,9 @@ +-# Makefile.in generated by automake 1.10 from Makefile.am. ++# Makefile.in generated by automake 1.11.6 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. ++# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software ++# Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, + # with or without modifications, as long as this notice is preserved. +@@ -15,9 +16,27 @@ + @SET_MAKE@ + + VPATH = @srcdir@ ++am__make_dryrun = \ ++ { \ ++ am__dry=no; \ ++ case $$MAKEFLAGS in \ ++ *\\[\ \ ]*) \ ++ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ ++ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ ++ *) \ ++ for am__flg in $$MAKEFLAGS; do \ ++ case $$am__flg in \ ++ *=*|--*) ;; \ ++ *n*) am__dry=yes; break;; \ ++ esac; \ ++ done;; \ ++ esac; \ ++ test $$am__dry = yes; \ ++ } + pkgdatadir = $(datadir)/@PACKAGE@ +-pkglibdir = $(libdir)/@PACKAGE@ + pkgincludedir = $(includedir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkglibexecdir = $(libexecdir)/@PACKAGE@ + am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd + install_sh_DATA = $(install_sh) -c -m 644 + install_sh_PROGRAM = $(install_sh) -c +@@ -42,13 +61,15 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs + CONFIG_HEADER = $(top_builddir)/src/config.h + CONFIG_CLEAN_FILES = ++CONFIG_CLEAN_VPATH_FILES = + LTLIBRARIES = $(noinst_LTLIBRARIES) + libnative_la_LIBADD = + am_libnative_la_OBJECTS = init.lo dll_md.lo callNative.lo + libnative_la_OBJECTS = $(am_libnative_la_OBJECTS) +-DEFAULT_INCLUDES = -I. -I$(top_builddir)/src@am__isrc@ ++DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src + depcomp = $(SHELL) $(top_srcdir)/depcomp + am__depfiles_maybe = depfiles ++am__mv = mv -f + CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) + LTCPPASCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ +@@ -65,6 +86,11 @@ LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + $(LDFLAGS) -o $@ + SOURCES = $(libnative_la_SOURCES) + DIST_SOURCES = $(libnative_la_SOURCES) ++am__can_run_installinfo = \ ++ case $$AM_UPDATE_INFO_DIR in \ ++ n|no|NO) false;; \ ++ *) (install-info --version) >/dev/null 2>&1;; \ ++ esac + ETAGS = etags + CTAGS = ctags + DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +@@ -84,21 +110,18 @@ CCDEPMODE = @CCDEPMODE@ + CFLAGS = @CFLAGS@ + CPP = @CPP@ + CPPFLAGS = @CPPFLAGS@ +-CXX = @CXX@ +-CXXCPP = @CXXCPP@ +-CXXDEPMODE = @CXXDEPMODE@ +-CXXFLAGS = @CXXFLAGS@ + CYGPATH_W = @CYGPATH_W@ + DEFS = @DEFS@ + DEPDIR = @DEPDIR@ +-ECHO = @ECHO@ ++DLLTOOL = @DLLTOOL@ ++DSYMUTIL = @DSYMUTIL@ ++DUMPBIN = @DUMPBIN@ + ECHO_C = @ECHO_C@ + ECHO_N = @ECHO_N@ + ECHO_T = @ECHO_T@ + EGREP = @EGREP@ + EXEEXT = @EXEEXT@ +-F77 = @F77@ +-FFLAGS = @FFLAGS@ ++FGREP = @FGREP@ + GREP = @GREP@ + INSTALL = @INSTALL@ + INSTALL_DATA = @INSTALL_DATA@ +@@ -106,21 +129,30 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + JAVAC = @JAVAC@ ++LD = @LD@ + LDFLAGS = @LDFLAGS@ + LIBOBJS = @LIBOBJS@ + LIBS = @LIBS@ + LIBTOOL = @LIBTOOL@ ++LIPO = @LIPO@ + LN_S = @LN_S@ + LTLIBOBJS = @LTLIBOBJS@ + MAINT = @MAINT@ + MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ + MKDIR_P = @MKDIR_P@ ++NM = @NM@ ++NMEDIT = @NMEDIT@ ++OBJDUMP = @OBJDUMP@ + OBJEXT = @OBJEXT@ ++OTOOL = @OTOOL@ ++OTOOL64 = @OTOOL64@ + PACKAGE = @PACKAGE@ + PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ + PACKAGE_NAME = @PACKAGE_NAME@ + PACKAGE_STRING = @PACKAGE_STRING@ + PACKAGE_TARNAME = @PACKAGE_TARNAME@ ++PACKAGE_URL = @PACKAGE_URL@ + PACKAGE_VERSION = @PACKAGE_VERSION@ + PATH_SEPARATOR = @PATH_SEPARATOR@ + RANLIB = @RANLIB@ +@@ -133,9 +165,9 @@ abs_builddir = @abs_builddir@ + abs_srcdir = @abs_srcdir@ + abs_top_builddir = @abs_top_builddir@ + abs_top_srcdir = @abs_top_srcdir@ ++ac_ct_AR = @ac_ct_AR@ + ac_ct_CC = @ac_ct_CC@ +-ac_ct_CXX = @ac_ct_CXX@ +-ac_ct_F77 = @ac_ct_F77@ ++ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ + am__include = @am__include@ + am__leading_dot = @am__leading_dot@ + am__quote = @am__quote@ +@@ -149,6 +181,7 @@ build_cpu = @build_cpu@ + build_os = @build_os@ + build_vendor = @build_vendor@ + builddir = @builddir@ ++classlib = @classlib@ + datadir = @datadir@ + datarootdir = @datarootdir@ + docdir = @docdir@ +@@ -181,15 +214,18 @@ sharedstatedir = @sharedstatedir@ + srcdir = @srcdir@ + sysconfdir = @sysconfdir@ + target_alias = @target_alias@ ++top_build_prefix = @top_build_prefix@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + use_zip_no = @use_zip_no@ + use_zip_yes = @use_zip_yes@ + with_classpath_install_dir = @with_classpath_install_dir@ +-EXTRA_DIST = callNativeOABI.S callNativeEABI.S ++EXTRA_DIST = callNativeOABI.S callNativeEABI.S callNativeEABIHard.S \ ++ callNativeEABIHardARM.S ++ + noinst_LTLIBRARIES = libnative.la + libnative_la_SOURCES = init.c dll_md.c callNative.S +-AM_CPPFLAGS = -I$(top_builddir)/src ++AM_CPPFLAGS = -I$(top_builddir)/src -I$(top_srcdir)/src + AM_CCASFLAGS = -I$(top_builddir)/src + all: all-am + +@@ -199,14 +235,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ +- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +- && exit 0; \ ++ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ ++ && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ +- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/os/linux/arm/Makefile'; \ +- cd $(top_srcdir) && \ +- $(AUTOMAKE) --gnu src/os/linux/arm/Makefile ++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/os/linux/arm/Makefile'; \ ++ $(am__cd) $(top_srcdir) && \ ++ $(AUTOMAKE) --gnu src/os/linux/arm/Makefile + .PRECIOUS: Makefile + Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ +@@ -224,6 +260,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(am__aclocal_m4_deps): + + clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) +@@ -233,7 +270,7 @@ clean-noinstLTLIBRARIES: + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +-libnative.la: $(libnative_la_OBJECTS) $(libnative_la_DEPENDENCIES) ++libnative.la: $(libnative_la_OBJECTS) $(libnative_la_DEPENDENCIES) $(EXTRA_libnative_la_DEPENDENCIES) + $(LINK) $(libnative_la_OBJECTS) $(libnative_la_LIBADD) $(LIBS) + + mostlyclean-compile: +@@ -248,42 +285,42 @@ distclean-compile: + + .S.o: + @am__fastdepCCAS_TRUE@ $(CPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +-@am__fastdepCCAS_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++@am__fastdepCCAS_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po + @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCCAS_FALSE@ $(CPPASCOMPILE) -c -o $@ $< + + .S.obj: + @am__fastdepCCAS_TRUE@ $(CPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +-@am__fastdepCCAS_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++@am__fastdepCCAS_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po + @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCCAS_FALSE@ $(CPPASCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + + .S.lo: + @am__fastdepCCAS_TRUE@ $(LTCPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +-@am__fastdepCCAS_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo ++@am__fastdepCCAS_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo + @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCCAS_FALSE@ $(LTCPPASCOMPILE) -c -o $@ $< + + .c.o: + @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po + @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCC_FALSE@ $(COMPILE) -c $< + + .c.obj: + @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po + @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + + .c.lo: + @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo ++@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo + @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@@ -299,45 +336,49 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ +- $(AWK) ' { files[$$0] = 1; } \ +- END { for (i in files) print i; }'`; \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique + tags: TAGS + + TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) +- tags=; \ ++ set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ +- $(AWK) ' { files[$$0] = 1; } \ +- END { for (i in files) print i; }'`; \ +- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ ++ shift; \ ++ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ +- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ +- $$tags $$unique; \ ++ if test $$# -gt 0; then \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ "$$@" $$unique; \ ++ else \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ $$unique; \ ++ fi; \ + fi + ctags: CTAGS + CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) +- tags=; \ +- here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ +- $(AWK) ' { files[$$0] = 1; } \ +- END { for (i in files) print i; }'`; \ +- test -z "$(CTAGS_ARGS)$$tags$$unique" \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ ++ test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ +- $$tags $$unique ++ $$unique + + GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ +- && cd $(top_srcdir) \ +- && gtags -i $(GTAGS_ARGS) $$here ++ && $(am__cd) $(top_srcdir) \ ++ && gtags -i $(GTAGS_ARGS) "$$here" + + distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags +@@ -358,13 +399,17 @@ distdir: $(DISTFILES) + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ ++ if test -d "$(distdir)/$$file"; then \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ +- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ ++ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ +- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ ++ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ +- test -f $(distdir)/$$file \ +- || cp -p $$d/$$file $(distdir)/$$file \ ++ test -f "$(distdir)/$$file" \ ++ || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +@@ -382,16 +427,22 @@ install-am: all-am + + installcheck: installcheck-am + install-strip: +- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ +- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ +- `test -z '$(STRIP)' || \ +- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install ++ if test -z '$(STRIP)'; then \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ install; \ ++ else \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ ++ fi + mostlyclean-generic: + + clean-generic: + + distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) ++ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + + maintainer-clean-generic: + @echo "This command is intended for maintainers to use" +@@ -413,6 +464,8 @@ dvi-am: + + html: html-am + ++html-am: ++ + info: info-am + + info-am: +@@ -421,18 +474,28 @@ install-data-am: + + install-dvi: install-dvi-am + ++install-dvi-am: ++ + install-exec-am: + + install-html: install-html-am + ++install-html-am: ++ + install-info: install-info-am + ++install-info-am: ++ + install-man: + + install-pdf: install-pdf-am + ++install-pdf-am: ++ + install-ps: install-ps-am + ++install-ps-am: ++ + installcheck-am: + + maintainer-clean: maintainer-clean-am +@@ -470,6 +533,7 @@ uninstall-am: + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags uninstall uninstall-am + ++ + # Tell versions [3.59,3.63) of GNU make to not export all variables. + # Otherwise a system limit (for SysV at least) may be exceeded. + .NOEXPORT: +diff --git a/src/os/linux/arm/callNative.S b/src/os/linux/arm/callNative.S +index 39ab6d3..245afd1 100644 +--- a/src/os/linux/arm/callNative.S ++++ b/src/os/linux/arm/callNative.S +@@ -1,6 +1,6 @@ + /* +- * Copyright (C) 2003, 2004, 2005, 2006, 2007 +- * Robert Lougher <rob@lougher.org.uk>. ++ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2011, 2012 ++ * Robert Lougher <rob@jamvm.org.uk>. + * + * This file is part of JamVM. + * +@@ -23,7 +23,15 @@ + + #ifndef USE_FFI + #ifdef __ARM_EABI__ ++#ifdef __ARM_PCS_VFP ++#ifdef __ARM_ARCH_7A__ ++#include "callNativeEABIHard.S" ++#else ++#include "callNativeEABIHardARM.S" ++#endif ++#else + #include "callNativeEABI.S" ++#endif + #else + #include "callNativeOABI.S" + #endif +diff --git a/src/os/linux/arm/callNativeEABI.S b/src/os/linux/arm/callNativeEABI.S +index 5effa57..3a7539e 100644 +--- a/src/os/linux/arm/callNativeEABI.S ++++ b/src/os/linux/arm/callNativeEABI.S +@@ -1,6 +1,6 @@ + /* +- * Copyright (C) 2003, 2004, 2005, 2006, 2007 +- * Robert Lougher <rob@lougher.org.uk>. ++ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2011 ++ * Robert Lougher <rob@jamvm.org.uk>. + * + * This file is part of JamVM. + * +@@ -95,8 +95,12 @@ done: + ldmfd sp!, {r2, r3} + + /* Call the function */ ++#if defined(__ARM_ARCH_4__) || defined(__ARM_ARCH_4T__) + mov lr, pc + bx ip ++#else ++ blx ip ++#endif + + subs r4, r4, #8 /* Pop argument area */ + /* (minus 8 for r2/r3) */ +diff --git a/src/os/linux/arm/callNativeEABIHard.S b/src/os/linux/arm/callNativeEABIHard.S +new file mode 100644 +index 0000000..5d5785b +--- /dev/null ++++ b/src/os/linux/arm/callNativeEABIHard.S +@@ -0,0 +1,315 @@ ++/* ++ * Copyright (C) 2011, 2012 Robert Lougher <rob@jamvm.org.uk>. ++ * ++ * 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. ++ */ ++ ++ .text ++ .syntax unified ++ .arch armv7-a ++ .thumb ++ .align 2 ++ .global callJNIMethod ++ .type callJNIMethod,function ++ ++/* ++ * Arguments passed in: ++ * ++ * r0 JNIEnv ++ * r1 class or NULL ++ * r2 sig ++ * r3 extra arg ++ * sp + 0 ostack ++ * sp + 4 function pntr ++ * sp + 8 args count ++ */ ++ ++/* Register usage : ++ * ++ * r11 function pntr ++ * lr ostack pntr ++ * ip args pntr ++ * r8 sig pntr ++ * r10 extra stack ++ * r6 fp backfill ++ * r4 fp reg ++ * r7 int reg ++ * r5 scratch ++ * r3, r2 outgoing int args ++ * r1 outgoing class or this pntr ++ * r0 outgoing JNIEnv (as passed in) ++ * ++ * s0 - s16 (d0 - d7) outgoing float args ++ */ ++ ++callJNIMethod: ++ stmfd sp!, {r4, r5, r6, r7, r8, r10, r11, lr} ++ ldr lr, [sp, #32] /* get ostack pntr */ ++ ldr r11, [sp, #36] /* get function pntr */ ++ ++ cmp r1, #0 /* is method non-static? */ ++ it eq ++ ldreq r1, [lr], #4 /* yes, load r1 with "this" */ ++ ++ mov r10, r3 ++ subs sp, sp, r3 /* allocate room for stacked */ ++ add r8, r2, #1 /* init sig pntr -- skipping '(' */ ++ ++ mov ip, sp /* init loop pntr */ ++ ++ mov r7, #2 ++ mov r4, #16 ++ mov r6, #0 ++ ++scan_sig: ++ ldrb r5, [r8], #1 ++ ++ cmp r5, #41 /* ')' */ ++ beq done ++ ++ cmp r5, #70 /* 'F' */ ++ beq float ++ ++ cmp r5, #68 /* 'D' */ ++ beq double ++ ++ cmp r5, #74 /* 'J' */ ++ beq long ++ ++skip_brackets: ++ cmp r5, #91 /* '[' */ ++ itt eq ++ ldrbeq r5, [r8], #1 ++ beq skip_brackets ++ ++ cmp r5, #76 /* 'L' */ ++ bne int ++ ++skip_ref: ++ ldrb r5, [r8], #1 ++ cmp r5, #59 /* ';' */ ++ bne skip_ref ++ ++int: ++ cbz r7, stack_int ++ ++ subs r7, r7, #1 ++ ite ne ++ ldrne r2, [lr], #4 ++ ldreq r3, [lr], #4 ++ ++ b scan_sig ++ ++float: ++ cbz r6, no_backfill ++ ++ sub r5, r6, #1 ++ mov r6, #0 ++ b load_float ++ ++no_backfill: ++ cbz r4, stack_int ++ ++ sub r4, r4, #1 ++ mov r5, r4 ++ ++load_float: ++ add lr, lr, #4 ++ tbb [pc, r5] ++ ++float_table: ++ .byte (s15-float_table)/2 ++ .byte (s14-float_table)/2 ++ .byte (s13-float_table)/2 ++ .byte (s12-float_table)/2 ++ .byte (s11-float_table)/2 ++ .byte (s10-float_table)/2 ++ .byte (s9-float_table)/2 ++ .byte (s8-float_table)/2 ++ .byte (s7-float_table)/2 ++ .byte (s6-float_table)/2 ++ .byte (s5-float_table)/2 ++ .byte (s4-float_table)/2 ++ .byte (s3-float_table)/2 ++ .byte (s2-float_table)/2 ++ .byte (s1-float_table)/2 ++ .byte (s0-float_table)/2 ++ ++stack_int: ++ ldr r5, [lr], #4 ++ str r5, [ip], #4 ++ b scan_sig ++ ++s0: ++ vldr s0, [lr, #-4] ++ b scan_sig ++s1: ++ vldr s1, [lr, #-4] ++ b scan_sig ++s2: ++ vldr s2, [lr, #-4] ++ b scan_sig ++s3: ++ vldr s3, [lr, #-4] ++ b scan_sig ++s4: ++ vldr s4, [lr, #-4] ++ b scan_sig ++s5: ++ vldr s5, [lr, #-4] ++ b scan_sig ++s6: ++ vldr s6, [lr, #-4] ++ b scan_sig ++s7: ++ vldr s7, [lr, #-4] ++ b scan_sig ++s8: ++ vldr s8, [lr, #-4] ++ b scan_sig ++s9: ++ vldr s9, [lr, #-4] ++ b scan_sig ++s10: ++ vldr s10, [lr, #-4] ++ b scan_sig ++s11: ++ vldr s11, [lr, #-4] ++ b scan_sig ++s12: ++ vldr s12, [lr, #-4] ++ b scan_sig ++s13: ++ vldr s13, [lr, #-4] ++ b scan_sig ++s14: ++ vldr s14, [lr, #-4] ++ b scan_sig ++s15: ++ vldr s15, [lr, #-4] ++ b scan_sig ++ ++long: ++ cmp r7, #2 ++ mov r7, #0 ++ bne stack_long ++ ++ ldmia lr!, {r2, r3} ++ b scan_sig ++ ++double: ++ lsrs r5, r4, #1 ++ it cs ++ movcs r6, r4 ++ ++ lsls r4, r5, #1 ++ beq stack_double ++ ++ sub r4, r4, #2 ++ add lr, lr, #8 ++ tbb [pc, r5] ++ ++double_table: ++ .byte 0 ++ .byte (d7-double_table)/2 ++ .byte (d6-double_table)/2 ++ .byte (d5-double_table)/2 ++ .byte (d4-double_table)/2 ++ .byte (d3-double_table)/2 ++ .byte (d2-double_table)/2 ++ .byte (d1-double_table)/2 ++ .byte (d0-double_table)/2 ++ .align 2 ++d0: ++ vldr d0, [lr, #-8] ++ b scan_sig ++d1: ++ vldr d1, [lr, #-8] ++ b scan_sig ++d2: ++ vldr d2, [lr, #-8] ++ b scan_sig ++d3: ++ vldr d3, [lr, #-8] ++ b scan_sig ++d4: ++ vldr d4, [lr, #-8] ++ b scan_sig ++d5: ++ vldr d5, [lr, #-8] ++ b scan_sig ++d6: ++ vldr d6, [lr, #-8] ++ b scan_sig ++d7: ++ vldr d7, [lr, #-8] ++ b scan_sig ++ ++stack_double: ++ mov r6, #0 ++ ++stack_long: ++ /* Ensure address is 8 byte aligned */ ++ add ip, ip, #7 ++ bic ip, ip, #7 ++ ++ ldr r5, [lr], #4 ++ str r5, [ip], #4 ++ ldr r5, [lr], #4 ++ str r5, [ip], #4 ++ b scan_sig ++ ++done: ++ /* Call the function */ ++ blx r11 ++ ++ add sp, sp, r10 /* Pop argument area */ ++ ++ ldr r4, [sp, #32] /* Reload ostack for */ ++ /* address of return value */ ++ ++ ldrb r5, [r8] /* Return type */ ++ ++ cmp r5, #86 /* 'V' */ ++ beq return ++ ++ cmp r5, #68 /* 'D' */ ++ beq return_double ++ ++ cmp r5, #70 /* 'F' */ ++ beq return_float ++ ++ str r0, [r4], #4 /* Low word */ ++ ++ cmp r5, #74 /* 'J' */ ++ it eq ++ streq r1, [r4], #4 /* High word */ ++ ++return: ++ mov r0, r4 /* return ostack */ ++ ldmfd sp!, {r4, r5, r6, r7, r8, r10, r11, lr} ++ bx lr ++ ++return_float: ++ vstr s0, [r4] ++ add r4, r4, #4 ++ b return ++ ++return_double: ++ vstr d0, [r4] ++ add r4, r4, #8 ++ b return +diff --git a/src/os/linux/arm/callNativeEABIHardARM.S b/src/os/linux/arm/callNativeEABIHardARM.S +new file mode 100644 +index 0000000..3a31acd +--- /dev/null ++++ b/src/os/linux/arm/callNativeEABIHardARM.S +@@ -0,0 +1,266 @@ ++/* ++ * Copyright (C) 2011, 2012 Robert Lougher <rob@jamvm.org.uk>. ++ * ++ * 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. ++ */ ++ ++ .text ++ .align 2 ++ .global callJNIMethod ++ .type callJNIMethod,function ++ ++/* ++ * Arguments passed in: ++ * ++ * r0 JNIEnv ++ * r1 class or NULL ++ * r2 sig ++ * r3 extra arg ++ * sp + 0 ostack ++ * sp + 4 function pntr ++ * sp + 8 args count ++ */ ++ ++/* Register usage : ++ * ++ * lr ostack pntr ++ * ip scratch ++ * r11 function pntr ++ * r10 fp backfill ++ * r8 fp reg ++ * r7 int reg ++ * r6 args pntr ++ * r5 sig pntr ++ * r4 extra stack ++ * r3, r2 outgoing int args ++ * r1 outgoing class or this pntr ++ * r0 outgoing JNIEnv (as passed in) ++ * ++ * s0 - s16 (d0 - d7) outgoing float args ++ */ ++ ++callJNIMethod: ++ stmfd sp!, {r4, r5, r6, r7, r8, r10, r11, lr} ++ ldr lr, [sp, #32] /* get ostack pntr */ ++ ldr r11, [sp, #36] /* get function pntr */ ++ ++ cmp r1, #0 /* is method non-static? */ ++ ldreq r1, [lr], #4 /* yes, load r1 with "this" */ ++ ++ mov r4, r3 ++ sub sp, sp, r4 /* allocate room for stacked */ ++ add r5, r2, #1 /* init sig pntr -- skipping '(' */ ++ ++ mov r6, sp /* init loop pntr */ ++ ++ mov r7, #2 ++ mov r8, #16 ++ mov r10, #0 ++ ++scan_sig: ++ ldrb ip, [r5], #1 ++ ++ cmp ip, #41 /* ')' */ ++ beq done ++ ++ cmp ip, #70 /* 'F' */ ++ beq float ++ ++ cmp ip, #68 /* 'D' */ ++ beq double ++ ++ cmp ip, #74 /* 'J' */ ++ beq long ++ ++skip_brackets: ++ cmp ip, #91 /* '[' */ ++ ldreqb ip, [r5], #1 ++ beq skip_brackets ++ ++ cmp ip, #76 /* 'L' */ ++ bne int ++ ++skip_ref: ++ ldrb ip, [r5], #1 ++ cmp ip, #59 /* ';' */ ++ bne skip_ref ++ ++int: ++ cmp r7, #0 ++ beq stack_int ++ ++ subs r7, r7, #1 ++ ++ ldrne r2, [lr], #4 ++ ldreq r3, [lr], #4 ++ ++ b scan_sig ++ ++stack_int: ++ ldr ip, [lr], #4 ++ str ip, [r6], #4 ++ b scan_sig ++ ++float: ++ cmp r10, #0 ++ beq no_backfill ++ ++ sub ip, r10, #1 ++ mov r10, #0 ++ b load_float ++ ++no_backfill: ++ cmp r8, #0 ++ beq stack_int ++ ++ sub r8, r8, #1 ++ mov ip, r8 ++ ++load_float: ++ add lr, lr, #4 ++ add pc, pc, ip, lsl #3 ++ nop ++ ++ flds s15, [lr, #-4] ++ b scan_sig ++ flds s14, [lr, #-4] ++ b scan_sig ++ flds s13, [lr, #-4] ++ b scan_sig ++ flds s12, [lr, #-4] ++ b scan_sig ++ flds s11, [lr, #-4] ++ b scan_sig ++ flds s10, [lr, #-4] ++ b scan_sig ++ flds s9, [lr, #-4] ++ b scan_sig ++ flds s8, [lr, #-4] ++ b scan_sig ++ flds s7, [lr, #-4] ++ b scan_sig ++ flds s6, [lr, #-4] ++ b scan_sig ++ flds s5, [lr, #-4] ++ b scan_sig ++ flds s4, [lr, #-4] ++ b scan_sig ++ flds s3, [lr, #-4] ++ b scan_sig ++ flds s2, [lr, #-4] ++ b scan_sig ++ flds s1, [lr, #-4] ++ b scan_sig ++ flds s0, [lr, #-4] ++ b scan_sig ++ ++long: ++ cmp r7, #2 ++ mov r7, #0 ++ bne stack_long ++ ++ ldr r2, [lr], #4 ++ ldr r3, [lr], #4 ++ b scan_sig ++ ++double: ++ lsrs ip, r8, #1 ++ movcs r10, r8 ++ ++ lsls r8, ip, #1 ++ beq stack_double ++ ++ sub r8, r8, #2 ++ add lr, lr, #8 ++ add pc, pc, ip, lsl #3 ++ nop ++ nop ++ nop ++ ++ fldd d7, [lr, #-8] ++ b scan_sig ++ fldd d6, [lr, #-8] ++ b scan_sig ++ fldd d5, [lr, #-8] ++ b scan_sig ++ fldd d4, [lr, #-8] ++ b scan_sig ++ fldd d3, [lr, #-8] ++ b scan_sig ++ fldd d2, [lr, #-8] ++ b scan_sig ++ fldd d1, [lr, #-8] ++ b scan_sig ++ fldd d0, [lr, #-8] ++ b scan_sig ++ ++stack_double: ++ mov r10, #0 ++ ++stack_long: ++ /* Ensure address is 8 byte aligned */ ++ add r6, r6, #7 ++ bic r6, r6, #7 ++ ++ ldr ip, [lr], #4 ++ str ip, [r6], #4 ++ ldr ip, [lr], #4 ++ str ip, [r6], #4 ++ b scan_sig ++ ++done: ++ /* Call the function */ ++#if defined(__ARM_ARCH_4__) || defined(__ARM_ARCH_4T__) ++ mov lr, pc ++ bx r11 ++#else ++ blx r11 ++#endif ++ ++ add sp, sp, r4 /* Pop argument area */ ++ ldr r4, [sp, #32] /* Reload ostack for */ ++ /* address of return value */ ++ ldrb ip, [r5] /* Return type */ ++ ++ cmp ip, #86 /* 'V' */ ++ beq return ++ ++ cmp ip, #68 /* 'D' */ ++ beq return_double ++ ++ cmp ip, #70 /* 'F' */ ++ beq return_float ++ ++ str r0, [r4], #4 /* Low word */ ++ ++ cmp ip, #74 /* 'J' */ ++ streq r1, [r4], #4 /* High word */ ++ ++return: ++ mov r0, r4 /* return ostack */ ++ ldmfd sp!, {r4, r5, r6, r7, r8, r10, r11, lr} ++ bx lr ++ ++return_float: ++ add r4, r4, #4 ++ fsts s0, [r4, #-4] ++ b return ++ ++return_double: ++ add r4, r4, #8 ++ fstd d0, [r4, #-8] ++ b return +diff --git a/src/os/linux/arm/dll_md.c b/src/os/linux/arm/dll_md.c +index f5df90e..39bdf7c 100644 +--- a/src/os/linux/arm/dll_md.c ++++ b/src/os/linux/arm/dll_md.c +@@ -1,6 +1,6 @@ + /* +- * Copyright (C) 2003, 2004, 2005, 2006, 2007 +- * Robert Lougher <rob@lougher.org.uk>. ++ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2011 ++ * Robert Lougher <rob@jamvm.org.uk>. + * + * This file is part of JamVM. + * +@@ -31,6 +31,61 @@ + * out stack requirements and then to push arguments. To + * save the first scan at call time, the signature is pre- + * scanned and stack requirement stored in the extra argument. */ ++ ++#ifdef __ARM_PCS_VFP ++int nativeExtraArg(MethodBlock *mb) { ++ char *sig = mb->type; ++ int fp_backfill = 0; ++ int stack_args = 0; ++ int int_args = 2; ++ int fp_args = 16; ++ ++ while(*++sig != ')') ++ switch(*sig) { ++ case 'J': ++ if(int_args < 2) ++ stack_args = (stack_args + 15) & ~7; ++ int_args = 0; ++ break; ++ ++ case 'D': ++ fp_backfill |= fp_args & 1; ++ fp_args &= ~1; ++ ++ if(fp_args == 0) { ++ stack_args = (stack_args + 15) & ~7; ++ fp_backfill = 0; ++ } else ++ fp_args -= 2; ++ break; ++ ++ case 'F': ++ if(fp_backfill) ++ fp_backfill = 0; ++ else { ++ if(fp_args == 0) ++ stack_args += 4; ++ else ++ fp_args--; ++ } ++ break; ++ ++ default: ++ if(int_args == 0) ++ stack_args += 4; ++ else ++ int_args--; ++ ++ if(*sig == '[') ++ while(*++sig == '['); ++ if(*sig == 'L') ++ while(*++sig != ';'); ++ break; ++ } ++ ++ return (stack_args + 7) & ~7; ++} ++#else + int nativeExtraArg(MethodBlock *mb) { + char *sig = mb->type; + int args = 0; +@@ -57,7 +112,7 @@ int nativeExtraArg(MethodBlock *mb) { + native method, so minimum stack requirement is 8 bytes. */ + return args < 8 ? 8 : args; + } +- ++#endif + #else + + /* Under OABI, arguments can be copied onto the stack "as is" +-- +2.17.1 + diff --git a/gnu/packages/patches/mesa-wayland-egl-symbols-check-mips.patch b/gnu/packages/patches/mesa-wayland-egl-symbols-check-mips.patch deleted file mode 100644 index aa2278697e..0000000000 --- a/gnu/packages/patches/mesa-wayland-egl-symbols-check-mips.patch +++ /dev/null @@ -1,15 +0,0 @@ -Fix 'wayland-egl-symbols-check' on mips64el-linux, where an additional symbol -(_ftext) is present in libwayland-egl.so. - -Patch by Mark H Weaver <mhw@netris.org> - ---- mesa-12.0.1/src/egl/wayland/wayland-egl/wayland-egl-symbols-check.orig 2016-01-18 02:39:25.000000000 -0500 -+++ mesa-12.0.1/src/egl/wayland/wayland-egl/wayland-egl-symbols-check 2016-10-24 16:25:07.110721426 -0400 -@@ -7,6 +7,7 @@ - wl_egl_window_destroy - wl_egl_window_get_attached_size - _fini -+_ftext - _init - EOF - done) diff --git a/gnu/packages/patches/meson-for-build-rpath.patch b/gnu/packages/patches/meson-for-build-rpath.patch index 4e20c9aed3..2151d53565 100644 --- a/gnu/packages/patches/meson-for-build-rpath.patch +++ b/gnu/packages/patches/meson-for-build-rpath.patch @@ -6,14 +6,13 @@ Patch by Peter Mikkelsen <petermikkelsen10@gmail.com> --- meson-0.42.0/mesonbuild/scripts/meson_install.py.orig 2017-09-09 01:49:39.147374148 +0200 +++ meson-0.42.0/mesonbuild/scripts/meson_install.py 2017-09-09 01:51:01.209134717 +0200 -@@ -345,15 +345,6 @@ +@@ -391,14 +391,6 @@ print("Symlink creation does not work on this platform. " "Skipping all symlinking.") printed_symlink_error = True -- if is_elf_platform() and os.path.isfile(outname): +- if os.path.isfile(outname): - try: -- e = depfixer.Elf(outname, False) -- e.fix_rpath(install_rpath) +- depfixer.fix_rpath(outname, install_rpath, False) - except SystemExit as e: - if isinstance(e.code, int) and e.code == 0: - pass diff --git a/gnu/packages/patches/openblas-fix-tests-i686.patch b/gnu/packages/patches/openblas-fix-tests-i686.patch new file mode 100644 index 0000000000..3325546ea3 --- /dev/null +++ b/gnu/packages/patches/openblas-fix-tests-i686.patch @@ -0,0 +1,35 @@ +Fix a test failure on some i686 systems: + +https://github.com/xianyi/OpenBLAS/issues/1575 + +This patch is a squashed version of these commits: + +https://github.com/xianyi/OpenBLAS/pull/1583 + +diff --git a/kernel/x86/KERNEL.NEHALEM b/kernel/x86/KERNEL.NEHALEM +index 835520ef..65b03ae5 100644 +--- a/kernel/x86/KERNEL.NEHALEM ++++ b/kernel/x86/KERNEL.NEHALEM +@@ -1,3 +1 @@ + include $(KERNELDIR)/KERNEL.PENRYN +-SSWAPKERNEL = ../arm/swap.c +-DSWAPKERNEL = ../arm/swap.c +diff --git a/kernel/x86/swap.S b/kernel/x86/swap.S +index 54b00b33..e30c2789 100644 +--- a/kernel/x86/swap.S ++++ b/kernel/x86/swap.S +@@ -138,6 +138,14 @@ + /* INCX != 1 or INCY != 1 */ + + .L14: ++ cmpl $0, %ebx ++ jne .L141 ++ cmpl $0, %ecx ++ jne .L141 ++/* INCX == 0 and INCY == 0 */ ++ jmp .L27 ++ ++.L141: + movl %edx, %eax + sarl $2, %eax + jle .L28 diff --git a/gnu/packages/patches/zathura-pdf-mupdf-link-to-jpeg-libraries.patch b/gnu/packages/patches/zathura-pdf-mupdf-link-to-jpeg-libraries.patch new file mode 100644 index 0000000000..63e058bbef --- /dev/null +++ b/gnu/packages/patches/zathura-pdf-mupdf-link-to-jpeg-libraries.patch @@ -0,0 +1,55 @@ +From: Tobias Geerinckx-Rice <me@tobias.gr> +Date: Mon, 18 Jun 2018 02:37:41 +0200 +Subject: zathura-pdf-mupdf: Link to JPEG libraries. + +As of version 0.3.3, zathura-pdf-mupdf no longer links to some required +JPEG libraries, leading to such errors as: + + $ zathura foo.pdf + error: Could not load plugin '/gnu/store/...-profile/lib/zathura/libpdf-mupdf.so' (/gnu/store/...-profile/lib/zathura/libpdf-mupdf.so: undefined symbol: jpeg_resync_to_restart). + +The patch below, copied verbatim from Arch[0], fixes that. +Its description happens to match our reality, too. + +[0]: https://git.archlinux.org/svntogit/community.git/tree/trunk?h=packages/zathura-pdf-mupdf +--- +From 3fb0ff750373d45d4f5172ce1d41b74183cd07e8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Johannes=20L=C3=B6thberg?= <johannes@kyriasis.com> +Date: Sat, 24 Mar 2018 14:31:18 +0100 +Subject: [PATCH] Explicitly link against jbig2dec, openjp2, and jpeg +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Normally these are statically linked into libmupdfthird, but we delete +those to make mupdf use the system libraries. Previously +zathura-pdf-mupdf explicitly linked against them, but this is +technically incorrect since they are supposed to be in libmupdfthird so +that was removed. This commit essentially reverts that in the new build +system. + +Signed-off-by: Johannes Löthberg <johannes@kyriasis.com> +--- + meson.build | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index 3b0d7b7..ae2fc9c 100644 +--- a/meson.build ++++ b/meson.build +@@ -22,7 +22,11 @@ cairo = dependency('cairo') + mupdf = cc.find_library('mupdf') + mupdfthird = cc.find_library('mupdfthird') + +-build_dependencies = [zathura, girara, glib, cairo, mupdf, mupdfthird] ++jbig2dec = cc.find_library('jbig2dec') ++openjp2 = cc.find_library('openjp2') ++jpeg = cc.find_library('jpeg') ++ ++build_dependencies = [zathura, girara, glib, cairo, mupdf, mupdfthird, jbig2dec, openjp2, jpeg] + + # defines + defines = [ +-- +2.16.3 + diff --git a/gnu/packages/patches/zathura-plugindir-environment-variable.patch b/gnu/packages/patches/zathura-plugindir-environment-variable.patch index 2e3ea527d0..a8ffff965a 100644 --- a/gnu/packages/patches/zathura-plugindir-environment-variable.patch +++ b/gnu/packages/patches/zathura-plugindir-environment-variable.patch @@ -8,15 +8,15 @@ different file formats) called ZATHURA_PLUGIN_PATH. Command line option -p still takes precedence. Patch by Paul van der Walt <paul@denknerd.org> +Adjusted for Zathura 0.3.9 by Tobias Geerinckx-Rice <me@tobias.gr> --- zathura/zathura.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/zathura/zathura.c b/zathura/zathura.c -index 589dd28..375ec54 100644 --- a/zathura/zathura.c +++ b/zathura/zathura.c -@@ -413,6 +413,13 @@ zathura_set_plugin_dir(zathura_t* zathura, const char* dir) +@@ -597,6 +597,13 @@ zathura_set_plugin_dir(zathura_t* zathura, const char* dir) g_return_if_fail(zathura != NULL); g_return_if_fail(zathura->plugins.manager != NULL); @@ -28,8 +28,5 @@ index 589dd28..375ec54 100644 + dir = g_getenv("ZATHURA_PLUGIN_PATH"); + if (dir != NULL) { - girara_list_t* paths = girara_split_path_array(dir); - GIRARA_LIST_FOREACH(paths, char*, iter, path) --- -2.3.1 - + set_plugin_dir(zathura, dir); + #ifdef ZATHURA_PLUGINDIR diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index e83b2c1960..66fbb20038 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -13,7 +13,7 @@ ;;; Copyright © 2017, 2018 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org> -;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,6 +37,7 @@ #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) + #:use-module (guix build-system meson) #:use-module (guix build-system python) #:use-module (guix build-system trivial) #:use-module (gnu packages) @@ -343,26 +344,32 @@ reading and editing of existing PDF files.") (define-public zathura-cb (package (name "zathura-cb") - (version "0.1.7") + (version "0.1.8") (source (origin (method url-fetch) (uri (string-append "https://pwmt.org/projects/zathura-cb/download/zathura-cb-" - version ".tar.gz")) + version ".tar.xz")) (sha256 (base32 - "0r4viisycj39kaz4281cmkr7n9w5q96dmlf7nf45n8zq8qy2npw3")))) + "1i6cf0vks501cggwvfsl6qb7mdaf3sszdymphimfvnspw810faj5")))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("libarchive" ,libarchive) ("zathura" ,zathura))) - (build-system gnu-build-system) + (build-system meson-build-system) (arguments - `(#:make-flags (list (string-append "PREFIX=" %output) - (string-append "PLUGINDIR=" %output "/lib/zathura") - "CC=gcc") - #:tests? #f ; Package does not contain tests. + `(#:tests? #f ; package does not contain tests #:phases - (modify-phases %standard-phases (delete 'configure)))) + (modify-phases %standard-phases + (add-after 'unpack 'patch-plugin-directory + ;; Something of a regression in 0.1.8: the new Meson build system + ;; now hard-codes an incorrect plugin directory. Fix it. + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "meson.build" + (("(install_dir:).*" _ key) + (string-append key + "'" (assoc-ref outputs "out") "/lib/zathura'\n"))) + #t))))) (home-page "https://pwmt.org/projects/zathura-cb/") (synopsis "Comic book support for zathura (libarchive backend)") (description "The zathura-cb plugin adds comic book support to zathura @@ -372,26 +379,32 @@ using libarchive.") (define-public zathura-ps (package (name "zathura-ps") - (version "0.2.5") + (version "0.2.6") (source (origin (method url-fetch) (uri (string-append "https://pwmt.org/projects/zathura-ps/download/zathura-ps-" - version ".tar.gz")) + version ".tar.xz")) (sha256 (base32 - "1x4knqja8pw2a5cb3y2209nr3iddj1z8nwasy48v5nprj61fdxqj")))) + "0wygq89nyjrjnsq7vbpidqdsirjm6iq4w2rijzwpk2f83ys8bc3y")))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("libspectre" ,libspectre) ("zathura" ,zathura))) - (build-system gnu-build-system) + (build-system meson-build-system) (arguments - `(#:make-flags (list (string-append "PREFIX=" %output) - (string-append "PLUGINDIR=" %output "/lib/zathura") - "CC=gcc") - #:tests? #f ; Package does not contain tests. + `(#:tests? #f ; package does not contain tests #:phases - (modify-phases %standard-phases (delete 'configure)))) + (modify-phases %standard-phases + (add-after 'unpack 'patch-plugin-directory + ;; Something of a regression in 0.2.6: the new Meson build system + ;; now hard-codes an incorrect plugin directory. Fix it. + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "meson.build" + (("(install_dir:).*" _ key) + (string-append key + "'" (assoc-ref outputs "out") "/lib/zathura'\n"))) + #t))))) (home-page "https://pwmt.org/projects/zathura-ps/") (synopsis "PS support for zathura (libspectre backend)") (description "The zathura-ps plugin adds PS support to zathura @@ -401,27 +414,33 @@ using libspectre.") (define-public zathura-djvu (package (name "zathura-djvu") - (version "0.2.7") + (version "0.2.8") (source (origin (method url-fetch) (uri (string-append "https://pwmt.org/projects/zathura-djvu/download/zathura-djvu-" - version ".tar.gz")) + version ".tar.xz")) (sha256 (base32 - "1sbfdsyp50qc85xc4458sn4w1rv1qbygdwmcr5kjlfpsmdq98vhd")))) + "0axkv1crdxn0z44whaqp2ibkdqcykhjnxk7qzms0dp1b67an9rnh")))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("djvulibre" ,djvulibre) ("zathura" ,zathura))) - (build-system gnu-build-system) + (build-system meson-build-system) (arguments - `(#:make-flags (list (string-append "PREFIX=" %output) - (string-append "PLUGINDIR=" %output "/lib/zathura") - "CC=gcc") - #:tests? #f ; Package does not contain tests. + `(#:tests? #f ; package does not contain tests #:phases - (modify-phases %standard-phases (delete 'configure)))) + (modify-phases %standard-phases + (add-after 'unpack 'patch-plugin-directory + ;; Something of a regression in 0.2.8: the new Meson build system + ;; now hard-codes an incorrect plugin directory. Fix it. + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "meson.build" + (("(install_dir:).*" _ key) + (string-append key + "'" (assoc-ref outputs "out") "/lib/zathura'\n"))) + #t))))) (home-page "https://pwmt.org/projects/zathura-djvu/") (synopsis "DjVu support for zathura (DjVuLibre backend)") (description "The zathura-djvu plugin adds DjVu support to zathura @@ -431,15 +450,17 @@ using the DjVuLibre library.") (define-public zathura-pdf-mupdf (package (name "zathura-pdf-mupdf") - (version "0.3.2") + (version "0.3.3") (source (origin (method url-fetch) (uri (string-append "https://pwmt.org/projects/zathura-pdf-mupdf" - "/download/zathura-pdf-mupdf-" version ".tar.gz")) + "/download/zathura-pdf-mupdf-" version ".tar.xz")) + (patches + (search-patches "zathura-pdf-mupdf-link-to-jpeg-libraries.patch")) (sha256 (base32 - "0xkajc3is7ncmb2fmymbzfgrran2bz12i7zsm1vvxhxds728h7ck")))) + "1zbdqimav4wfgimpy3nfzl10qj7vyv23rdy2z5z7z93jwbp2rc2j")))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("jbig2dec" ,jbig2dec) @@ -448,13 +469,20 @@ using the DjVuLibre library.") ("openjpeg" ,openjpeg) ("openssl" ,openssl) ("zathura" ,zathura))) - (build-system gnu-build-system) + (build-system meson-build-system) (arguments - `(#:make-flags (list (string-append "PREFIX=" %output) - (string-append "PLUGINDIR=" %output "/lib/zathura") - "CC=gcc") - #:tests? #f ;No tests. - #:phases (modify-phases %standard-phases (delete 'configure)))) + `(#:tests? #f ; package does not contain tests + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-plugin-directory + ;; Something of a regression in 0.3.3: the new Meson build system + ;; now hard-codes an incorrect plugin directory. Fix it. + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "meson.build" + (("(install_dir:).*" _ key) + (string-append key + "'" (assoc-ref outputs "out") "/lib/zathura'\n"))) + #t))))) (home-page "https://pwmt.org/projects/zathura-pdf-mupdf/") (synopsis "PDF support for zathura (mupdf backend)") (description "The zathura-pdf-mupdf plugin adds PDF support to zathura @@ -464,27 +492,33 @@ by using the @code{mupdf} rendering library.") (define-public zathura-pdf-poppler (package (name "zathura-pdf-poppler") - (version "0.2.8") + (version "0.2.9") (source (origin (method url-fetch) (uri (string-append "https://pwmt.org/projects/zathura-pdf-poppler/download/zathura-pdf-poppler-" - version ".tar.gz")) + version ".tar.xz")) (sha256 (base32 - "1m55m7s7f8ng8a7lmcw9z4n5zv7xk4vp9n6fp9j84z6rk2imf7a2")))) + "1p4jcny0jniygns78mcf0nlm298dszh49qpmjmackrm6dq8hc25y")))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("poppler" ,poppler) ("zathura" ,zathura))) - (build-system gnu-build-system) + (build-system meson-build-system) (arguments - `(#:make-flags (list (string-append "PREFIX=" %output) - (string-append "PLUGINDIR=" %output "/lib/zathura") - "CC=gcc") - #:tests? #f ; Package does not include tests. + `(#:tests? #f ; package does not include tests #:phases - (modify-phases %standard-phases (delete 'configure)))) + (modify-phases %standard-phases + (add-after 'unpack 'patch-plugin-directory + ;; Something of a regression in 0.2.9: the new Meson build system + ;; now hard-codes an incorrect plugin directory. Fix it. + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "meson.build" + (("(install_dir:).*" _ key) + (string-append key + "'" (assoc-ref outputs "out") "/lib/zathura'\n"))) + #t))))) (home-page "https://pwmt.org/projects/zathura-pdf-poppler/") (synopsis "PDF support for zathura (poppler backend)") (description "The zathura-pdf-poppler plugin adds PDF support to zathura @@ -494,21 +528,24 @@ by using the poppler rendering engine.") (define-public zathura (package (name "zathura") - (version "0.3.8") + (version "0.3.9") (source (origin (method url-fetch) (uri (string-append "https://pwmt.org/projects/zathura/download/zathura-" - version ".tar.gz")) + version ".tar.xz")) (sha256 (base32 - "0dz5pky3vmf3s2cp2rv1c099gb1s49p9xlgm3ghyy4pzyxc8bgs6")) + "0z09kz92a2n8qqv3cy8bx5j5k612g2f9mmh4szqlc7yvi39aax1g")) (patches (search-patches "zathura-plugindir-environment-variable.patch")))) (native-inputs `(("pkg-config" ,pkg-config) ("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") + ;; For building documentation. + ("python-sphinx" ,python-sphinx) + ;; For tests. ("check" ,check) ("xorg-server" ,xorg-server-1.19.3))) @@ -520,15 +557,9 @@ by using the poppler rendering engine.") (list (search-path-specification (variable "ZATHURA_PLUGIN_PATH") (files '("lib/zathura"))))) - (build-system gnu-build-system) + (build-system meson-build-system) (arguments - `(#:make-flags - `(,(string-append "PREFIX=" (assoc-ref %outputs "out")) - "CC=gcc" "COLOR=0") - #:test-target "test" - #:disallowed-references (,xorg-server-1.19.3) - #:phases (modify-phases %standard-phases - (delete 'configure) + `(#:phases (modify-phases %standard-phases (add-before 'check 'start-xserver ;; Tests require a running X server. (lambda* (#:key inputs #:allow-other-keys) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 2f7d4dac04..5d19fb40d5 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -7831,14 +7831,14 @@ python-xdo for newer bindings.)") (define-public python-mako (package (name "python-mako") - (version "1.0.6") + (version "1.0.7") (source (origin (method url-fetch) (uri (pypi-uri "Mako" version)) (sha256 (base32 - "03dyxgjknp4ffsv7vwfd28l5bbpzi0ylp20543wpg3iahyyrwma8")))) + "1bi5gnr8r8dva06qpyx4kgjc6spm2k1y908183nbbaylggjzs0jf")))) (build-system python-build-system) (propagated-inputs `(("python-markupsafe" ,python-markupsafe))) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index bbc413a130..dc38b41494 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -22,6 +22,7 @@ ;;; Copyright © 2017 Marek Benc <dusxmt@gmx.com> ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org> ;;; Copyright © 2018 Thomas Sigurdsen <tonton@riseup.net> +;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com> ;;; ;;; This file is part of GNU Guix. @@ -318,7 +319,7 @@ rasterisation.") (define-public libdrm (package (name "libdrm") - (version "2.4.91") + (version "2.4.92") (source (origin (method url-fetch) @@ -328,7 +329,7 @@ rasterisation.") ".tar.bz2")) (sha256 (base32 - "0068dn47c478vm1lyyhy02gilrpsma0xmcblhvs0dzqyrk80wjk3")) + "1yirzx8hmlvv6r0l7lb3zxmgy5la2mri9al0k16xqfg19pdqzr79")) (patches (search-patches "libdrm-symbol-check.patch")))) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 37c1612acc..a647b7e582 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -1025,7 +1025,7 @@ of new capabilities and controls for text keyboards.") (define-public libdmx (package (name "libdmx") - (version "1.1.3") + (version "1.1.4") (source (origin (method url-fetch) @@ -1035,7 +1035,7 @@ of new capabilities and controls for text keyboards.") ".tar.bz2")) (sha256 (base32 - "00djlxas38kbsrglcmwmxfbmxjdchlbj95pqwjvdg8jn5rns6zf9")))) + "0hvjfhrcym770cr0zpqajdy3cda30aiwbjzv16iafkqkbl090gr5")))) (build-system gnu-build-system) (inputs `(("xorgproto" ,xorgproto) @@ -2960,7 +2960,7 @@ It supports a variety of Intel graphics chipsets.") (define-public xf86-video-mach64 (package (name "xf86-video-mach64") - (version "6.9.5") + (version "6.9.6") (source (origin (method url-fetch) @@ -2970,7 +2970,7 @@ It supports a variety of Intel graphics chipsets.") ".tar.bz2")) (sha256 (base32 - "07xlf5nsjm0x18ij5gyy4lf8hwpl10i8chi3skpqjh84drdri61y")) + "171wg8r6py1l138s58rlapin3rlpwsg9spmvhc7l68mm3g3hf1vs")) (patches (search-patches "xf86-video-mach64-glibc-2.20.patch")))) (build-system gnu-build-system) (inputs `(("mesa" ,mesa) @@ -3722,7 +3722,7 @@ alternative implementations like XRandR or TwinView.") (define xkbcomp-intermediate ; used as input for xkeyboard-config (package (name "xkbcomp-intermediate") - (version "1.4.1") + (version "1.4.2") (source (origin (method url-fetch) @@ -3732,7 +3732,7 @@ alternative implementations like XRandR or TwinView.") ".tar.bz2")) (sha256 (base32 - "0djp7bb0ch2ddwmc1bkg4fddxdvamiiz375x0r0ni5dcb37w93bl")))) + "0944rrkkf0dxp07vhh9yr4prslxhqyw63qmbjirbv1bypswvrn3d")))) (build-system gnu-build-system) (inputs `(("xorgproto" ,xorgproto) @@ -5071,7 +5071,7 @@ over Xlib, including: (define-public xorg-server (package (name "xorg-server") - (version "1.19.6") + (version "1.20.0") (source (origin (method url-fetch) @@ -5080,7 +5080,7 @@ over Xlib, including: name "-" version ".tar.bz2")) (sha256 (base32 - "15y13ihgkggmly5s07vzvpn35gzx1w0hrkbnlcvcy05h3lpm0cm7")) + "1rnka3sp8yg2bir0bjjhwn33jikj8qd8ckqcxrs94w05bwc7v5lx")) (patches (list ;; See: |