From 2c6c3122b237bf158ae826904c2869938d354b1e Mon Sep 17 00:00:00 2001 From: Gauvain 'GovanifY' Roussel-Tarbouriech Date: Sat, 13 Aug 2022 19:56:14 +0200 Subject: [PATCH 1/2] libbluray: fix broken BDJ patch (cherry picked from commit 938ea3de88533910e50355b82ab185d8e7d47ecb) --- .../libbluray/BDJ-JARFILE-path.patch | 31 +++++++++---------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/pkgs/development/libraries/libbluray/BDJ-JARFILE-path.patch b/pkgs/development/libraries/libbluray/BDJ-JARFILE-path.patch index 8d9c5d0fbba7..104ebc9252b4 100644 --- a/pkgs/development/libraries/libbluray/BDJ-JARFILE-path.patch +++ b/pkgs/development/libraries/libbluray/BDJ-JARFILE-path.patch @@ -1,27 +1,24 @@ diff --git a/configure.ac b/configure.ac -index 5fd3c8de..7ae343e0 100644 +index 5007bbd..335f3f5 100644 --- a/configure.ac +++ b/configure.ac -@@ -228,6 +228,10 @@ if test "x$use_bdjava_jar" = "xyes" && test "x$HAVE_ANT" = "xno"; then - AC_MSG_ERROR([BD-J requires ANT, but ant was not found. Please install it.]) - fi +@@ -253,6 +253,7 @@ AS_IF([test "x${JDK_HOME}" != "x"], [ + ]) -+if test "x$use_bdjava_jar" = "xyes"; then -+ CPPFLAGS="${CPPFLAGS} -DJARDIR='\"\$(datadir)/java\"'" -+fi -+ - AC_DEFINE_UNQUOTED([JAVA_ARCH], ["$java_arch"], ["Defines the architecture of the java vm."]) - AC_DEFINE_UNQUOTED([JDK_HOME], ["$JDK_HOME"], [""]) - AM_CONDITIONAL([USING_BDJAVA_BUILD_JAR], [ test $use_bdjava_jar = "yes" ]) + AS_IF([test "x$use_bdjava_jar" = "xyes"], [ ++ CPPFLAGS="${CPPFLAGS} -DJARDIR='\"\$(datadir)/java\"'" + + dnl check for ant + AC_CHECK_PROG(HAVE_ANT, [ant], yes, no) diff --git a/src/libbluray/bdj/bdj.c b/src/libbluray/bdj/bdj.c -index 511ad533..e273b9e0 100644 +index 1cb1bfe..94a175c 100644 --- a/src/libbluray/bdj/bdj.c +++ b/src/libbluray/bdj/bdj.c -@@ -478,6 +478,7 @@ static const char *_find_libbluray_jar(BDJ_STORAGE *storage) - // pre-defined search paths for libbluray.jar - static const char * const jar_paths[] = { - #ifndef _WIN32 +@@ -533,6 +533,7 @@ static char *_find_libbluray_jar0() + # ifdef __FreeBSD__ + "/usr/local/share/java/" BDJ_JARFILE, + # else + JARDIR "/" BDJ_JARFILE, "/usr/share/java/" BDJ_JARFILE, "/usr/share/libbluray/lib/" BDJ_JARFILE, - #endif + # endif From 39efddea3821d11997a7bc5ebfde2041957129c8 Mon Sep 17 00:00:00 2001 From: Gauvain 'GovanifY' Roussel-Tarbouriech Date: Sat, 13 Aug 2022 20:01:09 +0200 Subject: [PATCH 2/2] libbluray: fix build failure on 1.3.1 with java Backported from an upstream patch (cherry picked from commit 785ca266b69a4aa343fe67c9255d178203557023) --- .../libbluray/BDJ-JARFILE-path.patch | 13 ++++++---- .../libraries/libbluray/default.nix | 8 +++--- ...after-Oracle-Java-CPU-for-April-2022.patch | 25 +++++++++++++++++++ 3 files changed, 38 insertions(+), 8 deletions(-) create mode 100644 pkgs/development/libraries/libbluray/libbluray-1.3.1-Fix-build-failure-after-Oracle-Java-CPU-for-April-2022.patch diff --git a/pkgs/development/libraries/libbluray/BDJ-JARFILE-path.patch b/pkgs/development/libraries/libbluray/BDJ-JARFILE-path.patch index 104ebc9252b4..d3dec2936c50 100644 --- a/pkgs/development/libraries/libbluray/BDJ-JARFILE-path.patch +++ b/pkgs/development/libraries/libbluray/BDJ-JARFILE-path.patch @@ -1,24 +1,27 @@ diff --git a/configure.ac b/configure.ac -index 5007bbd..335f3f5 100644 +index 5007bbd..f46de1a 100644 --- a/configure.ac +++ b/configure.ac -@@ -253,6 +253,7 @@ AS_IF([test "x${JDK_HOME}" != "x"], [ +@@ -253,7 +253,7 @@ AS_IF([test "x${JDK_HOME}" != "x"], [ ]) AS_IF([test "x$use_bdjava_jar" = "xyes"], [ +- + CPPFLAGS="${CPPFLAGS} -DJARDIR='\"\$(datadir)/java\"'" - dnl check for ant AC_CHECK_PROG(HAVE_ANT, [ant], yes, no) + AS_IF([test "x$HAVE_ANT" = "xno"], [ diff --git a/src/libbluray/bdj/bdj.c b/src/libbluray/bdj/bdj.c -index 1cb1bfe..94a175c 100644 +index 1cb1bfe..f3711c2 100644 --- a/src/libbluray/bdj/bdj.c +++ b/src/libbluray/bdj/bdj.c -@@ -533,6 +533,7 @@ static char *_find_libbluray_jar0() +@@ -533,6 +533,9 @@ static char *_find_libbluray_jar0() # ifdef __FreeBSD__ "/usr/local/share/java/" BDJ_JARFILE, # else ++# ifdef JARDIR + JARDIR "/" BDJ_JARFILE, ++# endif "/usr/share/java/" BDJ_JARFILE, "/usr/share/libbluray/lib/" BDJ_JARFILE, # endif diff --git a/pkgs/development/libraries/libbluray/default.nix b/pkgs/development/libraries/libbluray/default.nix index 8d8e64502d42..5b262c66e18e 100644 --- a/pkgs/development/libraries/libbluray/default.nix +++ b/pkgs/development/libraries/libbluray/default.nix @@ -20,11 +20,13 @@ stdenv.mkDerivation rec { sha256 = "sha256-wksPQcW3N7u2XFRP5jSVY3p3HBClGd/IAudp8RK0O3U="; }; - patches = optional withJava ./BDJ-JARFILE-path.patch; + patches = [ + ./BDJ-JARFILE-path.patch + ./libbluray-1.3.1-Fix-build-failure-after-Oracle-Java-CPU-for-April-2022.patch + ]; nativeBuildInputs = [ pkg-config autoreconfHook ] - ++ optionals withJava [ ant ] - ; + ++ optionals withJava [ ant ]; buildInputs = [ fontconfig ] ++ optional withJava jdk diff --git a/pkgs/development/libraries/libbluray/libbluray-1.3.1-Fix-build-failure-after-Oracle-Java-CPU-for-April-2022.patch b/pkgs/development/libraries/libbluray/libbluray-1.3.1-Fix-build-failure-after-Oracle-Java-CPU-for-April-2022.patch new file mode 100644 index 000000000000..158468e7839d --- /dev/null +++ b/pkgs/development/libraries/libbluray/libbluray-1.3.1-Fix-build-failure-after-Oracle-Java-CPU-for-April-2022.patch @@ -0,0 +1,25 @@ +From 8f26777b1ce124ff761f80ef52d6be10bcea323e Mon Sep 17 00:00:00 2001 +From: Fridrich Strba +Date: Mon, 25 Apr 2022 14:28:58 +0300 +Subject: [PATCH] Fix build failure after Oracle Java CPU for April 2022 + +--- a/src/libbluray/bdj/java/java/io/BDFileSystem.java ++++ b/src/libbluray/bdj/java/java/io/BDFileSystem.java +@@ -227,6 +227,17 @@ public abstract class BDFileSystem extends FileSystem { + return fs.isAbsolute(f); + } + ++ public boolean isInvalid(File f) { ++ try { ++ Method m = fs.getClass().getDeclaredMethod("isInvalid", new Class[] { File.class }); ++ Object[] args = new Object[] {(Object)f}; ++ Boolean result = (Boolean)m.invoke(fs, args); ++ return result.booleanValue(); ++ } finally { ++ return false; ++ } ++ } ++ + public String resolve(File f) { + if (!booted) + return fs.resolve(f);