[med-svn] [SCM] snappy-java branch, master, updated. upstream/1.0.4.1_dfsg-39-g2bd87df

Andreas Tille tille at debian.org
Tue Aug 14 07:51:36 UTC 2012


The following commit has been merged in the master branch:
commit 2bd87dfbf5e83c953d4f01910d0d72c768028ab0
Author: Andreas Tille <tille at debian.org>
Date:   Tue Aug 14 09:50:46 2012 +0200

    There is no point in hacking in LoadSnappy classe since it is better to provide a previous version of snappy-java as separate package

diff --git a/debian/changelog b/debian/changelog
index bca9aa4..cdf370e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,7 +1,6 @@
 snappy-java (1.0.4.1~dfsg-2) UNRELEASED; urgency=low
 
-  * Stupidly inject missing file LoadSnappy.java as quilt patch for
-    the purpose of testing.
+  * Debian Med team takes over maintenance of this package
 
  -- Andreas Tille <tille at debian.org>  Wed, 08 Aug 2012 09:21:35 +0200
 
diff --git a/debian/patches/add_missing_file.patch b/debian/patches/add_missing_file.patch
deleted file mode 100644
index 4a4c245..0000000
--- a/debian/patches/add_missing_file.patch
+++ /dev/null
@@ -1,247 +0,0 @@
---- /dev/null
-+++ snappy-java/src/main/java/org/xerial/snappy/LoadSnappy.java
-@@ -0,0 +1,244 @@
-+/*--------------------------------------------------------------------------
-+ *  Copyright 2011 Taro L. Saito
-+ *
-+ *  Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
-+ *
-+ *  Unless required by applicable law or agreed to in writing, software
-+ *  distributed under the License is distributed on an "AS IS" BASIS,
-+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-+ *  See the License for the specific language governing permissions and
-+ *  limitations under the License.
-+ *--------------------------------------------------------------------------*/
-+//--------------------------------------
-+// snappy-java Project
-+//
-+// LoadSnappy.java
-+// Since: 2011/03/29
-+//
-+// $URL$ 
-+// $Author$
-+//--------------------------------------
-+package org.xerial.snappy;
-+
-+import java.io.BufferedInputStream;
-+import java.io.ByteArrayOutputStream;
-+import java.io.File;
-+import java.io.FileInputStream;
-+import java.io.FileOutputStream;
-+import java.io.IOException;
-+import java.io.InputStream;
-+import java.net.URL;
-+import java.security.DigestInputStream;
-+import java.security.MessageDigest;
-+import java.security.NoSuchAlgorithmException;
-+import java.util.Properties;
-+
-+/**
-+ * This class loads a native library of Snappy according to the platform of the
-+ * user.
-+ * 
-+ * @author leo
-+ * 
-+ */
-+public class LoadSnappy
-+{
-+    private static boolean isLoaded = false;
-+
-+    public static boolean load() {
-+        if (!isLoaded) {
-+            loadSnappyNativeLibrary();
-+        }
-+        return isLoaded;
-+    }
-+
-+    /**
-+     * Computes the MD5 value of the input stream
-+     * 
-+     * @param input
-+     * @return
-+     * @throws IOException
-+     * @throws NoSuchAlgorithmException
-+     */
-+    static String md5sum(InputStream input) throws IOException {
-+        BufferedInputStream in = new BufferedInputStream(input);
-+
-+        try {
-+            MessageDigest digest = java.security.MessageDigest.getInstance("MD5");
-+            DigestInputStream digestInputStream = new DigestInputStream(in, digest);
-+            for (; digestInputStream.read() >= 0;) {
-+
-+            }
-+            ByteArrayOutputStream md5out = new ByteArrayOutputStream();
-+            md5out.write(digest.digest());
-+            return md5out.toString();
-+        }
-+        catch (NoSuchAlgorithmException e) {
-+            throw new IllegalStateException("MD5 algorithm is not available: " + e);
-+        }
-+        finally {
-+            in.close();
-+        }
-+    }
-+
-+    /**
-+     * Extract the specified library file to the target folder
-+     * 
-+     * @param libFolderForCurrentOS
-+     * @param libraryFileName
-+     * @param targetFolder
-+     * @return
-+     */
-+    private static boolean extractAndLoadLibraryFile(String libFolderForCurrentOS, String libraryFileName,
-+            String targetFolder) {
-+        String nativeLibraryFilePath = libFolderForCurrentOS + "/" + libraryFileName;
-+        final String prefix = "snappy-" + getVersion() + "-";
-+
-+        String extractedLibFileName = prefix + libraryFileName;
-+        File extractedLibFile = new File(targetFolder, extractedLibFileName);
-+
-+        try {
-+            if (extractedLibFile.exists()) {
-+                // test md5sum value
-+                String md5sum1 = md5sum(LoadSnappy.class.getResourceAsStream(nativeLibraryFilePath));
-+                String md5sum2 = md5sum(new FileInputStream(extractedLibFile));
-+
-+                if (md5sum1.equals(md5sum2)) {
-+                    return loadNativeLibrary(targetFolder, extractedLibFileName);
-+                }
-+                else {
-+                    // remove old native library file
-+                    boolean deletionSucceeded = extractedLibFile.delete();
-+                    if (!deletionSucceeded) {
-+                        throw new IOException("failed to remove existing native library file: "
-+                                + extractedLibFile.getAbsolutePath());
-+                    }
-+                }
-+            }
-+
-+            // extract file into the current directory
-+            InputStream reader = LoadSnappy.class.getResourceAsStream(nativeLibraryFilePath);
-+            FileOutputStream writer = new FileOutputStream(extractedLibFile);
-+            byte[] buffer = new byte[1024];
-+            int bytesRead = 0;
-+            while ((bytesRead = reader.read(buffer)) != -1) {
-+                writer.write(buffer, 0, bytesRead);
-+            }
-+
-+            writer.close();
-+            reader.close();
-+
-+            if (!System.getProperty("os.name").contains("Windows")) {
-+                try {
-+                    Runtime.getRuntime().exec(new String[] { "chmod", "755", extractedLibFile.getAbsolutePath() })
-+                            .waitFor();
-+                }
-+                catch (Throwable e) {}
-+            }
-+
-+            return loadNativeLibrary(targetFolder, extractedLibFileName);
-+        }
-+        catch (IOException e) {
-+            System.err.println(e.getMessage());
-+            return false;
-+        }
-+
-+    }
-+
-+    private static synchronized boolean loadNativeLibrary(String path, String name) {
-+        File libPath = new File(path, name);
-+        if (libPath.exists()) {
-+
-+            try {
-+                System.load(new File(path, name).getAbsolutePath());
-+                return true;
-+            }
-+            catch (UnsatisfiedLinkError e) {
-+                throw new SnappyError(SnappyErrorCode.FAILED_TO_LOAD_NATIVE_LIBRARY, e);
-+            }
-+
-+        }
-+        else
-+            return false;
-+    }
-+
-+    private static void loadSnappyNativeLibrary() {
-+        if (isLoaded)
-+            return;
-+
-+        // Try loading the library from org.xerial.snappy.lib.path library path */
-+        String snappyNativeLibraryPath = System.getProperty("org.xerial.snappy.lib.path");
-+        String snappyNativeLibraryName = System.getProperty("org.xerial.snappy.lib.name");
-+
-+        // Resolve the library file name with a suffix (e.g., dll, .so, etc.) 
-+        if (snappyNativeLibraryName == null)
-+            snappyNativeLibraryName = System.mapLibraryName("snappy");
-+
-+        if (snappyNativeLibraryPath != null) {
-+            if (loadNativeLibrary(snappyNativeLibraryPath, snappyNativeLibraryName)) {
-+                isLoaded = true;
-+                return;
-+            }
-+        }
-+
-+        // Load the os-dependent library from a jar file
-+        snappyNativeLibraryPath = "/org/xerial/snappy/native/" + OSInfo.getNativeLibFolderPathForCurrentOS();
-+
-+        if (LoadSnappy.class.getResource(snappyNativeLibraryPath + "/" + snappyNativeLibraryName) == null) {
-+            // use nested VM version
-+            return;
-+        }
-+
-+        // Temporary library folder. Use the value of java.io.tmpdir 
-+        String tempFolder = new File(System.getProperty("java.io.tmpdir")).getAbsolutePath();
-+        // Try extracting the library from jar 
-+        if (extractAndLoadLibraryFile(snappyNativeLibraryPath, snappyNativeLibraryName, tempFolder)) {
-+            isLoaded = true;
-+            return;
-+        }
-+
-+        isLoaded = false;
-+        return;
-+    }
-+
-+    private static void getNativeLibraryFolderForTheCurrentOS() {
-+        String osName = OSInfo.getOSName();
-+        String archName = OSInfo.getArchName();
-+
-+    }
-+
-+    public static int getMajorVersion() {
-+        String[] c = getVersion().split("\\.");
-+        return (c.length > 0) ? Integer.parseInt(c[0]) : 1;
-+    }
-+
-+    public static int getMinorVersion() {
-+        String[] c = getVersion().split("\\.");
-+        return (c.length > 1) ? Integer.parseInt(c[1]) : 0;
-+    }
-+
-+    public static String getVersion() {
-+
-+        URL versionFile = LoadSnappy.class.getResource("/META-INF/maven/org.xerial.snappy/snappy-java/pom.properties");
-+        if (versionFile == null)
-+            versionFile = LoadSnappy.class.getResource("/META-INF/maven/org.xerial.snappy/snappy-java/VERSION");
-+
-+        String version = "unknown";
-+        try {
-+            if (versionFile != null) {
-+                Properties versionData = new Properties();
-+                versionData.load(versionFile.openStream());
-+                version = versionData.getProperty("version", version);
-+                version = version.trim().replaceAll("[^0-9\\.]", "");
-+            }
-+        }
-+        catch (IOException e) {
-+            System.err.println(e);
-+        }
-+        return version;
-+    }
-+
-+}

-- 
Snappy for Java, a fast compressor/decompresser



More information about the debian-med-commit mailing list