|
2 | 2 |
|
3 | 3 | set -euo pipefail |
4 | 4 |
|
5 | | -LMDB_VERSION="0.9.29-1" |
| 5 | +####################################################################### |
| 6 | +# IMPORTANT: Benchmark new versions using run-lmdb.sh before updating |
| 7 | +LMDB_VERSION="0.9.33" |
| 8 | +####################################################################### |
| 9 | + |
6 | 10 | DEST="${DEST:-src/main/resources/org/lmdbjava/native}" |
7 | 11 | TMP=$(mktemp -d) |
8 | 12 | trap "rm -rf $TMP" EXIT |
9 | 13 |
|
10 | 14 | mkdir -p "$DEST" |
11 | 15 |
|
12 | | -# Extract from old Maven Central artifacts and rename to new format |
13 | | -# Linux x86_64 |
| 16 | +# Arch Linux x86_64 |
14 | 17 | if [ ! -f "$DEST/x86_64-linux-gnu.so" ]; then |
15 | | - curl -sL "https://repo1.maven.org/maven2/org/lmdbjava/lmdbjava-native-linux-x86_64/${LMDB_VERSION}/lmdbjava-native-linux-x86_64-${LMDB_VERSION}.jar" -o "$TMP/linux.jar" |
16 | | - unzip -q "$TMP/linux.jar" -d "$TMP/linux" |
17 | | - mv -f "$TMP/linux/org/lmdbjava/lmdbjava-native-linux-x86_64.so" "$DEST/x86_64-linux-gnu.so" |
| 18 | + curl -sL "https://archive.archlinux.org/packages/l/lmdb/lmdb-${LMDB_VERSION}-1-x86_64.pkg.tar.zst" -o "$TMP/x64.tar.zst" |
| 19 | + zstd -d "$TMP/x64.tar.zst" -o "$TMP/x64.tar" |
| 20 | + tar xf "$TMP/x64.tar" -C "$TMP" usr/lib/liblmdb.so --strip-components=2 |
| 21 | + mv -f "$TMP/liblmdb.so" "$DEST/x86_64-linux-gnu.so" |
| 22 | +fi |
| 23 | + |
| 24 | +# Arch Linux ARM aarch64 |
| 25 | +if [ ! -f "$DEST/aarch64-linux-gnu.so" ]; then |
| 26 | + curl -sL "http://mirror.archlinuxarm.org/aarch64/extra/lmdb-${LMDB_VERSION}-1-aarch64.pkg.tar.xz" -o "$TMP/arm64.tar.xz" |
| 27 | + tar xf "$TMP/arm64.tar.xz" -C "$TMP" usr/lib/liblmdb.so --strip-components=2 |
| 28 | + mv -f "$TMP/liblmdb.so" "$DEST/aarch64-linux-gnu.so" |
18 | 29 | fi |
19 | 30 |
|
20 | | -# macOS x86_64 |
| 31 | +# Homebrew macOS x86_64 |
21 | 32 | if [ ! -f "$DEST/x86_64-macos-none.so" ]; then |
22 | | - curl -sL "https://repo1.maven.org/maven2/org/lmdbjava/lmdbjava-native-osx-x86_64/${LMDB_VERSION}/lmdbjava-native-osx-x86_64-${LMDB_VERSION}.jar" -o "$TMP/osx.jar" |
23 | | - unzip -q "$TMP/osx.jar" -d "$TMP/osx" |
24 | | - mv -f "$TMP/osx/org/lmdbjava/lmdbjava-native-osx-x86_64.dylib" "$DEST/x86_64-macos-none.so" |
| 33 | + curl -sL "https://mirrors.sustech.edu.cn/homebrew-bottles/bottles/lmdb-${LMDB_VERSION}.sonoma.bottle.tar.gz" -o "$TMP/brew-x64.tar.gz" |
| 34 | + tar xzf "$TMP/brew-x64.tar.gz" -C "$TMP" lmdb/${LMDB_VERSION}/lib/liblmdb.dylib --strip-components=3 |
| 35 | + mv -f "$TMP/liblmdb.dylib" "$DEST/x86_64-macos-none.so" |
| 36 | +fi |
| 37 | + |
| 38 | +# Homebrew macOS arm64 |
| 39 | +if [ ! -f "$DEST/aarch64-macos-none.so" ]; then |
| 40 | + curl -sL "https://mirrors.sustech.edu.cn/homebrew-bottles/bottles/lmdb-${LMDB_VERSION}.arm64_sonoma.bottle.tar.gz" -o "$TMP/brew-arm.tar.gz" |
| 41 | + tar xzf "$TMP/brew-arm.tar.gz" -C "$TMP" lmdb/${LMDB_VERSION}/lib/liblmdb.dylib --strip-components=3 |
| 42 | + mv -f "$TMP/liblmdb.dylib" "$DEST/aarch64-macos-none.so" |
25 | 43 | fi |
26 | 44 |
|
27 | | -# Windows x86_64 |
| 45 | +# MSYS2 Windows x86_64 |
28 | 46 | if [ ! -f "$DEST/x86_64-windows-gnu.dll" ]; then |
29 | | - curl -sL "https://repo1.maven.org/maven2/org/lmdbjava/lmdbjava-native-windows-x86_64/${LMDB_VERSION}/lmdbjava-native-windows-x86_64-${LMDB_VERSION}.jar" -o "$TMP/windows.jar" |
30 | | - unzip -q "$TMP/windows.jar" -d "$TMP/windows" |
31 | | - mv -f "$TMP/windows/org/lmdbjava/lmdbjava-native-windows-x86_64.dll" "$DEST/x86_64-windows-gnu.dll" |
| 47 | + curl -sL "https://repo.msys2.org/mingw/mingw64/mingw-w64-x86_64-lmdb-${LMDB_VERSION}-1-any.pkg.tar.zst" -o "$TMP/win.tar.zst" |
| 48 | + zstd -d "$TMP/win.tar.zst" -o "$TMP/win.tar" |
| 49 | + tar xf "$TMP/win.tar" -C "$TMP" mingw64/bin/liblmdb.dll --strip-components=2 |
| 50 | + mv -f "$TMP/liblmdb.dll" "$DEST/x86_64-windows-gnu.dll" |
32 | 51 | fi |
33 | 52 |
|
34 | 53 | ls -lh "$DEST" |
0 commit comments