Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37704477
en ru br
Репозитории ALT
S:2.8.0-alt1_25jpp11
www.altlinux.org/Changes

Группа :: Система/Библиотеки
Пакет: jssc

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: jssc-loadlibrary.patch
Скачать


Index: java-simple-serial-connector-2.8.0/src/java/jssc/SerialNativeInterface.java
===================================================================
--- java-simple-serial-connector-2.8.0.orig/src/java/jssc/SerialNativeInterface.java
+++ java-simple-serial-connector-2.8.0/src/java/jssc/SerialNativeInterface.java
@@ -76,11 +76,40 @@ public class SerialNativeInterface {
      */
     public static final String PROPERTY_JSSC_PARMRK = "JSSC_PARMRK";
 
+    private static boolean tryLoad(String filename) {
+        try {
+            System.load(filename);
+        } catch (Exception e) {
+            return false;
+        } catch (UnsatisfiedLinkError e) {
+            return false;
+        }
+
+        String versionBase = getLibraryBaseVersion();
+        String versionNative = getNativeLibraryVersion();
+
+        if (!versionBase.equals(versionNative)) {
+            System.err.println("Warning! jSSC Java and Native versions mismatch (Java: " + versionBase + ", Native: " + versionNative + ")");
+        }
+
+        return true;
+    }
+
     static {
         String libFolderPath;
         String libName;
 
         String osName = System.getProperty("os.name");
+
+        boolean libLoaded = false;
+
+        if ("Linux".equals(osName)) {
+            libLoaded = tryLoad("/usr/lib64/jssc/libjSSC.so");
+            if (!libLoaded) {
+                libLoaded = tryLoad("/usr/lib/jssc/libjSSC.so");
+            }
+        }
+
         String architecture = System.getProperty("os.arch");
         String userHome = System.getProperty("user.home");
         String fileSeparator = System.getProperty("file.separator");
@@ -168,7 +197,7 @@ public class SerialNativeInterface {
             }
         }
 
-        if (loadLib) {
+        if (loadLib && !libLoaded) {
             System.load(libFolderPath + fileSeparator + libName);
             String versionBase = getLibraryBaseVersion();
             String versionNative = getNativeLibraryVersion();
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin