From 522a48a2280347442fcefdfd68444fd8d108fd6b Mon Sep 17 00:00:00 2001 From: Carlo Zancanaro Date: Tue, 20 Apr 2021 21:22:20 +1000 Subject: gnu: openjdk: Fix library substitution when libraries aren't found. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/java.scm (icedtea-8, openjdk9, openjdk11)[arguments]: Change 'find-library' to always return a string. Change 'find-library' callers to use 'string-append' rather than 'format'. Starting from 97a43db8b4416a1450aa61737edba9cf4126cf1c, 'find-library' could return #f and JNI substitutions would emit a literal "#f". Co-authored-by: Ludovic Courtès --- gnu/packages/java.scm | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 3c4013ab6f..ae31f5ba42 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1800,9 +1800,10 @@ (define (icedtea-or-openjdk? path) (search-path-as-string->list (getenv "LIBRARY_PATH")))) (find-library (lambda (name) - (search-path - library-path - (string-append "lib" name ".so"))))) + (or (search-path + library-path + (string-append "lib" name ".so")) + (string-append "lib" name ".so"))))) (for-each (lambda (file) (catch 'decoding-error @@ -1810,9 +1811,9 @@ (define (icedtea-or-openjdk? path) (substitute* file (("VERSIONED_JNI_LIB_NAME\\(\"(.*)\", \"(.*)\"\\)" _ name version) - (format #f "\"~a\"" (find-library name))) + (string-append "\"" (find-library name) "\"")) (("JNI_LIB_NAME\\(\"(.*)\"\\)" _ name) - (format #f "\"~a\"" (find-library name))))) + (string-append "\"" (find-library name) "\"")))) (lambda _ ;; Those are safe to skip. (format (current-error-port) @@ -1955,9 +1956,9 @@ (define (icedtea-or-openjdk? path) (substitute* file (("VERSIONED_JNI_LIB_NAME\\(\"(.*)\", \"(.*)\"\\)" _ name version) - (format #f "\"~a\"" (find-library name))) + (string-append "\"" (find-library name) "\"")) (("JNI_LIB_NAME\\(\"(.*)\"\\)" _ name) - (format #f "\"~a\"" (find-library name))))) + (string-append "\"" (find-library name) "\"")))) (lambda _ ;; Those are safe to skip. (format (current-error-port) @@ -2158,9 +2159,10 @@ (define (icedtea-or-openjdk? path) (search-path-as-string->list (getenv "LIBRARY_PATH")))) (find-library (lambda (name) - (search-path - library-path - (string-append "lib" name ".so"))))) + (or (search-path + library-path + (string-append "lib" name ".so")) + (string-append "lib" name ".so"))))) (for-each (lambda (file) (catch 'decoding-error @@ -2168,9 +2170,9 @@ (define (icedtea-or-openjdk? path) (substitute* file (("VERSIONED_JNI_LIB_NAME\\(\"(.*)\", \"(.*)\"\\)" _ name version) - (format #f "\"~a\"" (find-library name))) + (string-append "\"" (find-library name) "\"")) (("JNI_LIB_NAME\\(\"(.*)\"\\)" _ name) - (format #f "\"~a\"" (find-library name))))) + (string-append "\"" (find-library name) "\"")))) (lambda _ ;; Those are safe to skip. (format (current-error-port) -- cgit v1.2.3