Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libbluray for openSUSE:Factory 
checked in at 2022-10-03 13:43:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libbluray (Old)
 and      /work/SRC/openSUSE:Factory/.libbluray.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libbluray"

Mon Oct  3 13:43:42 2022 rev:46 rq:1007275 version:1.3.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/libbluray/libbluray.changes      2022-08-10 
17:13:02.141666599 +0200
+++ /work/SRC/openSUSE:Factory/.libbluray.new.2275/libbluray.changes    
2022-10-03 13:43:43.517212591 +0200
@@ -1,0 +2,9 @@
+Thu Sep 29 19:11:12 UTC 2022 - Dirk M??ller <[email protected]>
+
+- update to 1.3.3:
+  * Initial support for Java 18.
+  * Add support for OpenBSD operating system.
+  * Improve support for FreeBSD, NetBSD and DragonFlyBSD
+  * Improve Java 17 support.
+
+-------------------------------------------------------------------

Old:
----
  libbluray-1.3.2.tar.bz2

New:
----
  libbluray-1.3.3.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libbluray.spec ++++++
--- /var/tmp/diff_new_pack.ELYjZV/_old  2022-10-03 13:43:43.969213585 +0200
+++ /var/tmp/diff_new_pack.ELYjZV/_new  2022-10-03 13:43:43.973213594 +0200
@@ -19,7 +19,7 @@
 
 %define         sover 2
 Name:           libbluray
-Version:        1.3.2
+Version:        1.3.3
 Release:        0
 Summary:        Library to access Blu-Ray disk
 License:        LGPL-2.1-or-later

++++++ libbluray-1.3.2.tar.bz2 -> libbluray-1.3.3.tar.bz2 ++++++
++++ 2397 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libbluray-1.3.2/ChangeLog new/libbluray-1.3.3/ChangeLog
--- old/libbluray-1.3.2/ChangeLog       2022-07-30 20:44:17.000000000 +0200
+++ new/libbluray-1.3.3/ChangeLog       2022-09-19 16:16:13.000000000 +0200
@@ -1,3 +1,9 @@
+2022-09-19: Version 1.3.3
+- Initial support for Java 18.
+- Add support for OpenBSD operating system.
+- Improve support for FreeBSD, NetBSD and DragonFlyBSD
+- Improve Java 17 support.
+
 2022-06-28: Version 1.3.2
 - Fix build/run failure after Oracle Java CPU for April 2022
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libbluray-1.3.2/Makefile.am new/libbluray-1.3.3/Makefile.am
--- old/libbluray-1.3.2/Makefile.am     2022-07-30 20:44:17.000000000 +0200
+++ new/libbluray-1.3.3/Makefile.am     2022-09-19 16:16:13.000000000 +0200
@@ -198,6 +198,14 @@
        src/file/file_win32.c \
        src/file/mount.c
 else
+if HAVE_GETFSSTAT
+libbluray_la_SOURCES+= \
+       src/file/dir_posix.c \
+       src/file/dirs_xdg.c \
+       src/file/dl_posix.c \
+       src/file/file_posix.c \
+       src/file/mount_getfsstat.c
+else
 libbluray_la_SOURCES+= \
        src/file/dir_posix.c \
        src/file/dirs_xdg.c \
@@ -206,6 +214,7 @@
        src/file/mount.c
 endif
 endif
+endif
 
 libbluray_la_LDFLAGS= -no-undefined -version-info $(LT_VERSION_INFO) 
-export-symbols-regex "^bd_"
 libbluray_la_LIBADD= $(LIBXML2_LIBS) $(FT2_LIBS) $(FONTCONFIG_LIBS) 
$(LIBUDFREAD_LIBS) $(EXTRA_LIBS)
@@ -215,7 +224,9 @@
        jni/linux/jni_md.h \
        jni/win32/jni_md.h \
        jni/darwin/jni_md.h \
-       jni/netbsd/jni_md.h
+       jni/freebsd/jni_md.h \
+       jni/netbsd/jni_md.h \
+       jni/openbsd/jni_md.h
 
 pkginclude_HEADERS = \
        src/file/filesystem.h \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libbluray-1.3.2/config.h.in new/libbluray-1.3.3/config.h.in
--- old/libbluray-1.3.2/config.h.in     2022-07-30 20:44:36.000000000 +0200
+++ new/libbluray-1.3.3/config.h.in     2022-09-19 16:16:32.000000000 +0200
@@ -25,6 +25,12 @@
 /* Define this if you have FreeType2 library */
 #undef HAVE_FT2
 
+/* Define to 1 if you have the `getfsstat' function. */
+#undef HAVE_GETFSSTAT
+
+/* Define to 1 if you have the `getvfsstat' function. */
+#undef HAVE_GETVFSSTAT
+
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libbluray-1.3.2/configure.ac new/libbluray-1.3.3/configure.ac
--- old/libbluray-1.3.2/configure.ac    2022-07-30 20:44:17.000000000 +0200
+++ new/libbluray-1.3.3/configure.ac    2022-09-19 16:16:13.000000000 +0200
@@ -1,7 +1,7 @@
 dnl library version number
 m4_define([bluray_major], 1)
 m4_define([bluray_minor], 3)
-m4_define([bluray_micro], 2)
+m4_define([bluray_micro], 3)
 m4_define([bluray_version],[bluray_major.bluray_minor.bluray_micro])
 
 dnl shared library version (.so version)
@@ -13,7 +13,7 @@
 dnl Library file name will be libbluray.so.(current-age).age.revision
 dnl
 m4_define([lt_current],  6)
-m4_define([lt_revision], 1)
+m4_define([lt_revision], 2)
 m4_define([lt_age],      4)
 
 dnl initilization
@@ -52,6 +52,10 @@
     SYS=netbsd
     CFLAGS="${CFLAGS} -D_NETBSD_SOURCE"
     ;;
+  openbsd*)
+    SYS=openbsd
+    CFLAGS="${CFLAGS} -D_BSD_SOURCE"
+    ;;
   freebsd*)
     SYS=freebsd
     CFLAGS="${CFLAGS} -D_XOPEN_SOURCE=700"
@@ -61,8 +65,16 @@
     ;;
 esac
 
+dnl Falsely enables for NetBSD
+dnl warning: warning: reference to obsolete getfsstat(); use getvfsstat()
+AS_IF([test "${SYS}" != "netbsd"], [
+  AC_CHECK_FUNCS([getfsstat])
+])
+AC_CHECK_FUNCS([getvfsstat])
+
 AM_CONDITIONAL(HAVE_WIN32,   test "${SYS}" = "mingw32")
 AM_CONDITIONAL(HAVE_DARWIN,  test "${SYS}" = "darwin")
+AM_CONDITIONAL(HAVE_GETFSSTAT, test "${ac_cv_func_getfsstat}" = "yes" -o 
"${ac_cv_func_getvfsstat}" = "yes")
 
 dnl messages
 library_not_found="Could not find required library!"
@@ -238,6 +250,7 @@
      solaris*) java_os=solaris ;;
      darwin*)  java_os=darwin ;;
      netbsd*)  java_os=netbsd ;;
+     openbsd*) java_os=openbsd ;;
      *)        java_os=$host_os ;;
 esac
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libbluray-1.3.2/jni/freebsd/jni_md.h 
new/libbluray-1.3.3/jni/freebsd/jni_md.h
--- old/libbluray-1.3.2/jni/freebsd/jni_md.h    1970-01-01 01:00:00.000000000 
+0100
+++ new/libbluray-1.3.3/jni/freebsd/jni_md.h    2022-09-19 16:16:13.000000000 
+0200
@@ -0,0 +1,54 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is the Java Runtime Interface.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation and Sun Microsystems, Inc.
+ * Portions created by the Initial Developer are Copyright (C) 1993-1996
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *                  Jean-Baptiste Kempf
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+#ifndef _JNI_MD_H_
+#define _JNI_MD_H_
+
+#define JNIEXPORT
+#define JNIIMPORT
+#define JNICALL
+
+typedef int jint;
+#ifdef __LP64__
+typedef long jlong;
+#else
+typedef long long jlong;
+#endif
+
+typedef signed char jbyte;
+
+#endif /* !_JNI_MD_H_ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libbluray-1.3.2/jni/openbsd/jni_md.h 
new/libbluray-1.3.3/jni/openbsd/jni_md.h
--- old/libbluray-1.3.2/jni/openbsd/jni_md.h    1970-01-01 01:00:00.000000000 
+0100
+++ new/libbluray-1.3.3/jni/openbsd/jni_md.h    2022-09-19 16:16:13.000000000 
+0200
@@ -0,0 +1,54 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is the Java Runtime Interface.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation and Sun Microsystems, Inc.
+ * Portions created by the Initial Developer are Copyright (C) 1993-1996
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *                  Jean-Baptiste Kempf
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+#ifndef _JNI_MD_H_
+#define _JNI_MD_H_
+
+#define JNIEXPORT
+#define JNIIMPORT
+#define JNICALL
+
+typedef int jint;
+#ifdef __LP64__
+typedef long jlong;
+#else
+typedef long long jlong;
+#endif
+
+typedef signed char jbyte;
+
+#endif /* !_JNI_MD_H_ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libbluray-1.3.2/src/file/mount_getfsstat.c 
new/libbluray-1.3.3/src/file/mount_getfsstat.c
--- old/libbluray-1.3.2/src/file/mount_getfsstat.c      1970-01-01 
01:00:00.000000000 +0100
+++ new/libbluray-1.3.3/src/file/mount_getfsstat.c      2022-09-19 
16:16:13.000000000 +0200
@@ -0,0 +1,93 @@
+/*
+ * This file is part of libbluray
+ * Copyright (C) 2014  VideoLAN
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#if HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "mount.h"
+
+#include "util/strutl.h"
+
+#include <stdlib.h>
+#include <string.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#ifdef HAVE_GETFSSTAT
+#include <sys/mount.h>
+#else
+#include <sys/statvfs.h>
+#endif
+
+char *mount_get_mountpoint(const char *device_path)
+{
+    struct stat st;
+#ifdef HAVE_GETFSSTAT
+    struct statfs *mbuf;
+#else
+    struct statvfs *mbuf;
+#endif
+    int fs_count;
+
+    if (stat (device_path, &st) ) {
+        return str_dup(device_path);
+    }
+
+    /* If it's a directory, all is good */
+    if (S_ISDIR(st.st_mode)) {
+        return str_dup(device_path);
+    }
+
+#ifdef HAVE_GETFSSTAT
+    fs_count = getfsstat (NULL, 0, MNT_NOWAIT);
+#else
+    fs_count = getvfsstat (NULL, 0, ST_NOWAIT);
+#endif
+    if (fs_count == -1) {
+        return str_dup(device_path);
+    }
+
+#ifdef HAVE_GETFSSTAT
+    mbuf = calloc (fs_count, sizeof(struct statfs));
+#else
+    mbuf = calloc (fs_count, sizeof(struct statvfs));
+#endif
+    if (!mbuf) {
+        return str_dup(device_path);
+    }
+
+#ifdef HAVE_GETFSSTAT
+    fs_count = getfsstat (mbuf, fs_count * sizeof(struct statfs), MNT_NOWAIT);
+#else
+    fs_count = getvfsstat (mbuf, fs_count * sizeof(struct statvfs), ST_NOWAIT);
+#endif
+
+    char *result = NULL;
+
+    for (int i = 0; i < fs_count; ++i) {
+        if (!strcmp (mbuf[i].f_mntfromname, device_path)) {
+            result = str_dup(mbuf[i].f_mntonname);
+            break;
+        }
+    }
+
+    free (mbuf);
+    return (result) ? result : str_dup(device_path);
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libbluray-1.3.2/src/libbluray/bdj/bdj.c 
new/libbluray-1.3.3/src/libbluray/bdj/bdj.c
--- old/libbluray-1.3.2/src/libbluray/bdj/bdj.c 2022-07-30 20:44:17.000000000 
+0200
+++ new/libbluray-1.3.3/src/libbluray/bdj/bdj.c 2022-09-19 16:16:13.000000000 
+0200
@@ -405,6 +405,11 @@
 #    ifdef __FreeBSD__
                                             "/usr/local/openjdk8",
                                             "/usr/local/openjdk11",
+                                            "/usr/local/openjdk17",
+#    elif defined(__OpenBSD__)
+                                            "/usr/local/jdk-1.8.0",
+                                            "/usr/local/jdk-11",
+                                            "/usr/local/jdk-17",
 #    else
                                             "/usr/lib/jvm/default-java",
                                             "/usr/lib/jvm/default",
@@ -414,6 +419,8 @@
                                             "/usr/lib/jvm/java-8-openjdk-" 
JAVA_ARCH,
                                             "/usr/lib/jvm/java-11-openjdk",
                                             "/usr/lib/jvm/java-11-openjdk-" 
JAVA_ARCH,
+                                            "/usr/lib/jvm/java-17-openjdk",
+                                            "/usr/lib/jvm/java-17-openjdk-" 
JAVA_ARCH,
 #    endif
     };
     static const char * const jvm_dir[]  = {"jre/lib/" JAVA_ARCH "/server",
@@ -530,7 +537,7 @@
     // pre-defined search paths for libbluray.jar
     static const char * const jar_paths[] = {
 #ifndef _WIN32
-#  ifdef __FreeBSD__
+#  if defined(__FreeBSD__) || defined(__OpenBSD__)
         "/usr/local/share/java/" BDJ_JARFILE,
 #  else
         "/usr/share/java/" BDJ_JARFILE,
@@ -1059,7 +1066,7 @@
 
     if (debug_mask & DBG_JNI) {
         int version = (int)(*env)->GetVersion(env);
-        BD_DEBUG(DBG_BDJ, "Java version: %d.%d\n", version >> 16, version & 
0xffff);
+        BD_DEBUG(DBG_BDJ, "Java JNI version: %d.%d\n", version >> 16, version 
& 0xffff);
     }
 
     if (!_bdj_init(env, bd, path, bdj_disc_id, cfg)) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libbluray-1.3.2/src/libbluray/bdj/java/org/videolan/BDJSecurityManager.java 
new/libbluray-1.3.3/src/libbluray/bdj/java/org/videolan/BDJSecurityManager.java
--- 
old/libbluray-1.3.2/src/libbluray/bdj/java/org/videolan/BDJSecurityManager.java 
    2022-07-30 20:44:17.000000000 +0200
+++ 
new/libbluray-1.3.3/src/libbluray/bdj/java/org/videolan/BDJSecurityManager.java 
    2022-09-19 16:16:13.000000000 +0200
@@ -33,6 +33,7 @@
     private String budaRoot;
     private String persistentRoot;
     private boolean usingUdf = false;
+    private int javaMajor;
 
     private static Class urlPermission = null;
     static {
@@ -43,11 +44,12 @@
         }
     }
 
-    BDJSecurityManager(String discRoot, String persistentRoot, String 
budaRoot) {
+    BDJSecurityManager(String discRoot, String persistentRoot, String 
budaRoot, int javaMajor) {
         this.discRoot  = discRoot;
         this.cacheRoot = null;
         this.budaRoot  = budaRoot;
         this.persistentRoot = persistentRoot;
+        this.javaMajor = javaMajor;
         if (discRoot == null) {
             usingUdf = true;
         }
@@ -104,7 +106,12 @@
                 deny(perm);
             }
             if (perm.implies(new RuntimePermission("setSecurityManager"))) {
-                if (classDepth0("org.videolan.Libbluray") == 3) {
+
+                // Starting Java 17, the depth callback of setSecurityManager 
has changed as
+                // it now includes implSetSecurityManager . As we do not want 
the Xlets to
+                // be able to disable sandboxing we do check at runtime the 
Java version and
+                // then change the depth callback as needed below.
+                if ((classDepth0("org.videolan.Libbluray") == 3) || 
((classDepth0("org.videolan.Libbluray") == 4) && (this.javaMajor > 16))) {
                     return;
                 }
                 deny(perm);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libbluray-1.3.2/src/libbluray/bdj/java/org/videolan/Libbluray.java 
new/libbluray-1.3.3/src/libbluray/bdj/java/org/videolan/Libbluray.java
--- old/libbluray-1.3.2/src/libbluray/bdj/java/org/videolan/Libbluray.java      
2022-07-30 20:44:17.000000000 +0200
+++ new/libbluray-1.3.3/src/libbluray/bdj/java/org/videolan/Libbluray.java      
2022-09-19 16:16:13.000000000 +0200
@@ -25,6 +25,7 @@
 import java.awt.event.KeyEvent;
 import java.awt.event.MouseEvent;
 import java.io.File;
+import java.lang.reflect.Method;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Vector;
@@ -115,9 +116,47 @@
         }
     }
 
-    /*
-     *
-     */
+    public static int getJavaMajor() {
+        try {
+            String ver = System.getProperty("java.version");
+            if (ver.startsWith("1."))
+                ver = ver.substring(2, 3);
+            if (ver.indexOf(".") != -1)
+                ver = ver.substring(0, ver.indexOf("."));
+            if (ver.indexOf("-") != -1)
+                ver = ver.substring(0, ver.indexOf("-"));
+            return Integer.parseInt(ver);
+        } catch (Throwable t) {
+            System.err.println("getJavaMajor(): " + t);
+        }
+        return 0;
+    }
+
+    private static void setSecurityManager(SecurityManager sm) throws 
Exception {
+        try {
+            System.setSecurityManager(sm);
+            return;
+        } catch (Exception ex) {
+            if (getJavaMajor() < 18)
+                throw ex;
+
+            /* Workaround for Java 18 security manager issues.
+             *   Suggested method (setting security manager to "allow" in 
command line args)
+             *   fails with older Java versions.
+             *   And, Java version is hard to figure out before launching JVM.
+             */
+            System.err.println("Detected Java >= 18, trying 
setSecurityManager() workaround");
+            try {
+                Method method = 
System.class.getDeclaredMethod("implSetSecurityManager",
+                                                              new Class [] { 
SecurityManager.class });
+                method.setAccessible(true);
+                method.invoke(null, new Object [] { (Object)sm } );
+                return;
+            } catch (Exception ex2) {
+                throw ex;
+            }
+        }
+    }
 
     private static boolean initOnce = false;
     private static void initOnce() {
@@ -126,6 +165,11 @@
         }
         initOnce = true;
 
+        Logger.getLogger("Libbluray").info(
+            "Using Java " + 
System.getProperty("java.vm.specification.version", "?") +
+            " (" + System.getProperty("java.vm.version", "?") + ")" +
+            " from '" + System.getProperty("java.home", "?") + "'");
+
         /* hook system properties (provide Xlet-specific user.dir) */
         try {
             hookProperties();
@@ -344,7 +388,7 @@
         System.setProperty("bluray.network.connected", "YES");
 
         try {
-            System.setSecurityManager(new BDJSecurityManager(discRoot, 
persistentRoot, budaRoot));
+            setSecurityManager(new BDJSecurityManager(discRoot, 
persistentRoot, budaRoot, getJavaMajor()));
         } catch (Exception ex) {
             System.err.println("System.setSecurityManager() failed: " + ex);
             throw new SecurityException("Failed initializing SecurityManager");
@@ -375,7 +419,7 @@
 
             /* all Xlet contexts (and threads) should be terminated now */
             try {
-                System.setSecurityManager(null);
+                setSecurityManager(null);
             } catch (Exception ex) {
                 System.err.println("System.setSecurityManager(null) failed: " 
+ ex);
             }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libbluray-1.3.2/src/libbluray/bdj/java/org/videolan/Logger.java 
new/libbluray-1.3.3/src/libbluray/bdj/java/org/videolan/Logger.java
--- old/libbluray-1.3.2/src/libbluray/bdj/java/org/videolan/Logger.java 
2022-07-30 20:44:17.000000000 +0200
+++ new/libbluray-1.3.3/src/libbluray/bdj/java/org/videolan/Logger.java 
2022-09-19 16:16:13.000000000 +0200
@@ -25,8 +25,11 @@
     static {
         String prop;
 
-        use_throw = false;
-        use_trace = false;
+        prop = System.getProperty("debug.unimplemented.throw");
+        use_throw = (prop != null && prop.equalsIgnoreCase("YES"));
+
+        prop = System.getProperty("debug.trace");
+        use_trace = (prop == null || !prop.equalsIgnoreCase("NO"));
 
         // capture stdout and stderr from on-disc applets
         // (those produce useful debug information sometimes)
@@ -36,15 +39,6 @@
         } catch (java.io.UnsupportedEncodingException uee) {
             System.err.println("Error capturing stdout/stderr: " + uee);
         }
-
-        prop = System.getProperty("debug.unimplemented.throw");
-        if (prop != null && prop.equalsIgnoreCase("YES")) {
-            use_throw = true;
-        }
-        prop = System.getProperty("debug.trace");
-        if (prop == null || !prop.equalsIgnoreCase("NO")) {
-            use_trace = true;
-        }
     }
 
     private static class Location {
@@ -190,7 +184,7 @@
         }
     }
 
-    private String name;
-    private static boolean use_trace;
-    private static boolean use_throw;
+    private final String name;
+    private static final boolean use_trace;
+    private static final boolean use_throw;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libbluray-1.3.2/src/libbluray/bdj/native/org_videolan_Libbluray.c 
new/libbluray-1.3.3/src/libbluray/bdj/native/org_videolan_Libbluray.c
--- old/libbluray-1.3.2/src/libbluray/bdj/native/org_videolan_Libbluray.c       
2022-07-30 20:44:17.000000000 +0200
+++ new/libbluray-1.3.3/src/libbluray/bdj/native/org_videolan_Libbluray.c       
2022-09-19 16:16:13.000000000 +0200
@@ -218,7 +218,7 @@
   (JNIEnv * env, jclass cls, jlong np, jint type)
 {
     BLURAY* bd = (BLURAY*)(intptr_t)np;
-    const uint8_t *data = bd_get_aacs_data(bd, type);
+    const uint8_t *data = disc_get_data(bd_get_disc(bd), type);
     size_t data_size = 16;
 
     BD_DEBUG(DBG_JNI, "getAacsDataN(%d) -> %p\n", (int)type, (const void 
*)data);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libbluray-1.3.2/src/libbluray/bluray-version.h 
new/libbluray-1.3.3/src/libbluray/bluray-version.h
--- old/libbluray-1.3.2/src/libbluray/bluray-version.h  2022-07-30 
20:46:56.000000000 +0200
+++ new/libbluray-1.3.3/src/libbluray/bluray-version.h  2022-09-19 
16:16:54.000000000 +0200
@@ -27,9 +27,9 @@
 
 #define BLURAY_VERSION_MAJOR 1
 #define BLURAY_VERSION_MINOR 3
-#define BLURAY_VERSION_MICRO 2
+#define BLURAY_VERSION_MICRO 3
 
-#define BLURAY_VERSION_STRING "1.3.2"
+#define BLURAY_VERSION_STRING "1.3.3"
 
 #define BLURAY_VERSION \
     BLURAY_VERSION_CODE(BLURAY_VERSION_MAJOR, BLURAY_VERSION_MINOR, 
BLURAY_VERSION_MICRO)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libbluray-1.3.2/src/libbluray/bluray.c 
new/libbluray-1.3.3/src/libbluray/bluray.c
--- old/libbluray-1.3.2/src/libbluray/bluray.c  2022-07-30 20:44:17.000000000 
+0200
+++ new/libbluray-1.3.3/src/libbluray/bluray.c  2022-09-19 16:16:13.000000000 
+0200
@@ -1016,12 +1016,13 @@
         index = indx_get(bd->disc);
         if (!index) {
             /* check for incomplete disc */
-            int r = bd_get_titles(bd, 0, 0);
-            if (r > 0) {
+            NAV_TITLE_LIST *title_list = nav_get_title_list(bd->disc, 0, 0);
+            if (title_list && title_list->count > 0) {
                 BD_DEBUG(DBG_BLURAY | DBG_CRIT, "Possible incomplete BluRay 
image detected. No menu support.\n");
                 bd->disc_info.bluray_detected = 1;
                 bd->disc_info.no_menu_support = 1;
             }
+            nav_free_title_list(&title_list);
         }
     }
 
@@ -1188,11 +1189,6 @@
     _update_uo_mask(bd);
 }
 
-const uint8_t *bd_get_aacs_data(BLURAY *bd, int type)
-{
-    return disc_get_data(bd->disc, type);
-}
-
 uint64_t bd_get_uo_mask(BLURAY *bd)
 {
     /* internal function. Used by BD-J. */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libbluray-1.3.2/src/libbluray/bluray_internal.h 
new/libbluray-1.3.3/src/libbluray/bluray_internal.h
--- old/libbluray-1.3.2/src/libbluray/bluray_internal.h 2022-07-30 
20:44:17.000000000 +0200
+++ new/libbluray-1.3.3/src/libbluray/bluray_internal.h 2022-09-19 
16:16:13.000000000 +0200
@@ -27,8 +27,6 @@
 struct bluray;
 struct bd_disc;
 
-BD_PRIVATE const uint8_t *bd_get_aacs_data(struct bluray *bd, int type);
-
 /*
  * VFS
  */

Reply via email to