diff --git a/sqlite-jdbc-3.15.1-build.patch b/sqlite-jdbc-3.15.1-build.patch new file mode 100644 index 0000000..406d4f2 --- /dev/null +++ b/sqlite-jdbc-3.15.1-build.patch @@ -0,0 +1,238 @@ +diff -Nru sqlite-jdbc-3.15.1/Makefile sqlite-jdbc-3.15.1.build/Makefile +--- sqlite-jdbc-3.15.1/Makefile 2016-11-04 21:42:29.000000000 +0100 ++++ sqlite-jdbc-3.15.1.build/Makefile 2016-11-06 12:15:06.926445700 +0100 +@@ -3,45 +3,37 @@ + + RESOURCE_DIR = src/main/resources + +-.phony: all package win32 win64 mac32 linux32 linux64 linux-arm linux-armhf native native-all deploy ++.phony: all package win32 win64 mac32 linux native native-all deploy + + all: jni-header package + + deploy: +- mvn package deploy -DperformRelease=true + +-MVN:=mvn ++ ++MVN:=xmvn -o + SRC:=src/main/java + SQLITE_OUT:=$(TARGET)/$(sqlite)-$(OS_NAME)-$(OS_ARCH) +-SQLITE_ARCHIVE:=$(TARGET)/$(sqlite)-amal.zip +-SQLITE_UNPACKED:=$(TARGET)/sqlite-unpack.log +-SQLITE_AMAL_DIR=$(TARGET)/$(SQLITE_AMAL_PREFIX) ++#SQLITE_ARCHIVE:=$(TARGET)/$(sqlite)-amal.zip ++#SQLITE_UNPACKED:=$(TARGET)/sqlite-unpack.log ++#SQLITE_AMAL_DIR=$(TARGET)/$(SQLITE_AMAL_PREFIX) + +-CCFLAGS:= -I$(SQLITE_OUT) -I$(SQLITE_AMAL_DIR) $(CCFLAGS) ++CCFLAGS:= -I$(SQLITE_OUT) $(CCFLAGS) -lsqlite3 + + $(SQLITE_ARCHIVE): +- @mkdir -p $(@D) +- curl -L --max-redirs 0 -f -o$@ http://www.sqlite.org/2016/$(SQLITE_AMAL_PREFIX).zip || \ +- curl -L --max-redirs 0 -f -o$@ http://www.sqlite.org/2015/$(SQLITE_AMAL_PREFIX).zip || \ +- curl -L --max-redirs 0 -f -o$@ http://www.sqlite.org/2014/$(SQLITE_AMAL_PREFIX).zip || \ +- curl -L --max-redirs 0 -f -o$@ http://www.sqlite.org/2013/$(SQLITE_AMAL_PREFIX).zip || \ +- curl -L --max-redirs 0 -f -o$@ http://www.sqlite.org/$(SQLITE_AMAL_PREFIX).zip || \ +- curl -L --max-redirs 0 -f -o$@ http://www.sqlite.org/$(SQLITE_OLD_AMAL_PREFIX).zip ++ + + $(SQLITE_UNPACKED): $(SQLITE_ARCHIVE) +- unzip -qo $< -d $(TARGET)/tmp.$(version) +- (mv $(TARGET)/tmp.$(version)/$(SQLITE_AMAL_PREFIX) $(TARGET) && rmdir $(TARGET)/tmp.$(version)) || mv $(TARGET)/tmp.$(version)/ $(TARGET)/$(SQLITE_AMAL_PREFIX) +- touch $@ + + +-$(TARGET)/common-lib/org/sqlite/%.class: src/main/java/org/sqlite/%.java ++ ++$(SQLITE_OUT)/org/sqlite/%.class: src/main/java/org/sqlite/%.java + @mkdir -p $(@D) +- $(JAVAC) -source 1.5 -target 1.5 -sourcepath $(SRC) -d $(TARGET)/common-lib $< ++ $(JAVAC) -source 1.6 -target 1.6 -sourcepath $(SRC) -d $(SQLITE_OUT) $< + +-jni-header: $(TARGET)/common-lib/NativeDB.h ++jni-header: $(SQLITE_OUT)/NativeDB.h + +-$(TARGET)/common-lib/NativeDB.h: $(TARGET)/common-lib/org/sqlite/core/NativeDB.class +- $(JAVAH) -classpath $(TARGET)/common-lib -jni -o $@ org.sqlite.core.NativeDB ++$(SQLITE_OUT)/NativeDB.h: $(SQLITE_OUT)/org/sqlite/core/NativeDB.class ++ $(JAVAH) -classpath $(SQLITE_OUT) -jni -o $@ org.sqlite.core.NativeDB + + test: + mvn test +@@ -50,35 +42,11 @@ + + + $(SQLITE_OUT)/sqlite3.o : $(SQLITE_UNPACKED) +- @mkdir -p $(@D) +- perl -p -e "s/sqlite3_api;/sqlite3_api = 0;/g" \ +- $(SQLITE_AMAL_DIR)/sqlite3ext.h > $(SQLITE_OUT)/sqlite3ext.h +-# insert a code for loading extension functions +- perl -p -e "s/^opendb_out:/ if(!db->mallocFailed && rc==SQLITE_OK){ rc = RegisterExtensionFunctions(db); }\nopendb_out:/;" \ +- $(SQLITE_AMAL_DIR)/sqlite3.c > $(SQLITE_OUT)/sqlite3.c +- cat src/main/ext/*.c >> $(SQLITE_OUT)/sqlite3.c +- $(CC) -o $@ -c $(CCFLAGS) \ +- -DSQLITE_ENABLE_LOAD_EXTENSION=1 \ +- -DSQLITE_HAVE_ISNAN \ +- -DSQLITE_HAVE_USLEEP \ +- -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT \ +- -DSQLITE_ENABLE_COLUMN_METADATA \ +- -DSQLITE_CORE \ +- -DSQLITE_ENABLE_FTS3 \ +- -DSQLITE_ENABLE_FTS3_PARENTHESIS \ +- -DSQLITE_ENABLE_FTS5 \ +- -DSQLITE_ENABLE_JSON1 \ +- -DSQLITE_ENABLE_RTREE \ +- -DSQLITE_ENABLE_STAT2 \ +- -DSQLITE_THREADSAFE=1 \ +- -DSQLITE_DEFAULT_MEMSTATUS=0 \ +- -DSQLITE_MAX_VARIABLE_NUMBER=250000 \ +- $(SQLITE_FLAGS) \ +- $(SQLITE_OUT)/sqlite3.c + +-$(SQLITE_OUT)/$(LIBNAME): $(SQLITE_OUT)/sqlite3.o $(SRC)/org/sqlite/core/NativeDB.c ++ ++$(SQLITE_OUT)/$(LIBNAME): $(SQLITE_OUT)/sqlite3.o $(SRC)/org/sqlite/core/NativeDB.c $(SQLITE_OUT)/NativeDB.h + @mkdir -p $(@D) +- $(CC) $(CCFLAGS) -I $(TARGET)/common-lib -c -o $(SQLITE_OUT)/NativeDB.o $(SRC)/org/sqlite/core/NativeDB.c ++ $(CC) $(CCFLAGS) -I $(SQLITE_OUT) -c -o $(SQLITE_OUT)/NativeDB.o $(SRC)/org/sqlite/core/NativeDB.c + $(CC) $(CCFLAGS) -o $@ $(SQLITE_OUT)/*.o $(LINKFLAGS) + $(STRIP) $@ + +@@ -88,7 +56,7 @@ + NATIVE_DLL:=$(NATIVE_DIR)/$(LIBNAME) + + # For cross-compilation, install docker. See also https://github.com/dockcross/dockcross +-native-all: native win32 win64 linux32 linux64 linux-arm linux-armhf ++native-all: native linux + + native: $(SQLITE_UNPACKED) $(NATIVE_DLL) + +@@ -99,33 +67,23 @@ + cp $< $(NATIVE_TARGET_DIR)/$(LIBNAME) + + win32: $(SQLITE_UNPACKED) jni-header +- ./docker/dockcross-windows-x86 bash -c 'make clean-native native CROSS_PREFIX=i686-w64-mingw32.static- OS_NAME=Windows OS_ARCH=x86' +- +-win64: $(SQLITE_UNPACKED) jni-header +- ./docker/dockcross-windows-x64 bash -c 'make clean-native native CROSS_PREFIX=x86_64-w64-mingw32.static- OS_NAME=Windows OS_ARCH=x86_64' + +-linux32: $(SQLITE_UNPACKED) jni-header +- docker run -ti -v $$PWD:/work xerial/centos5-linux-x86 bash -c 'make clean-native native OS_NAME=Linux OS_ARCH=x86' + +-linux64: $(SQLITE_UNPACKED) jni-header +- docker run -ti -v $$PWD:/work xerial/centos5-linux-x86_64 bash -c 'make clean-native native OS_NAME=Linux OS_ARCH=x86_64' ++win64: $(SQLITE_UNPACKED) jni-header + +-linux-arm: $(SQLITE_UNPACKED) jni-header +- ./docker/dockcross-armv5 bash -c 'make clean-native native CROSS_PREFIX=arm-linux-gnueabi- OS_NAME=Linux OS_ARCH=arm' + +-linux-armhf: $(SQLITE_UNPACKED) jni-header +- ./docker/dockcross-armv6 bash -c 'make clean-native native CROSS_PREFIX=arm-linux-gnueabihf- OS_NAME=Linux OS_ARCH=armhf' ++linux: $(SQLITE_UNPACKED) jni-header ++ $(MAKE) native OS_NAME=Linux OS_ARCH=$(OS_ARCH) + + sparcv9: +- $(MAKE) native OS_NAME=SunOS OS_ARCH=sparcv9 ++ + + # deprecated + mac32: +- $(MAKE) native OS_NAME=Mac OS_ARCH=x86 ++ + + package: native-all +- rm -rf target/dependency-maven-plugin-markers +- $(MVN) package ++ + + clean-native: + rm -rf $(SQLITE_OUT) +@@ -138,7 +96,7 @@ + rm -rf $(TARGET)/{surefire*,testdb.jar*} + + docker-linux64: +- docker build -f docker/Dockerfile.linux_x86_64 -t xerial/centos5-linux-x86-64 . ++ + + docker-linux32: +- docker build -f docker/Dockerfile.linux_x86 -t xerial/centos5-linux-x86 . ++ +diff -Nru sqlite-jdbc-3.15.1/Makefile.common sqlite-jdbc-3.15.1.build/Makefile.common +--- sqlite-jdbc-3.15.1/Makefile.common 2016-11-04 21:42:29.000000000 +0100 ++++ sqlite-jdbc-3.15.1.build/Makefile.common 2016-11-06 11:58:31.575085824 +0100 +@@ -47,50 +47,24 @@ + + # os=Default is meant to be generic unix/linux + +-known_targets := Linux-x86 Linux-x86_64 Linux-arm Linux-armhf Mac-x86 Mac-x86_64 FreeBSD-x86_64 OpenBSD-x86_64 Windows-x86 Windows-x86_64 SunOS-sparcv9 ++known_targets := Linux Mac-x86 Mac-x86_64 FreeBSD-x86_64 OpenBSD-x86_64 Windows-x86 Windows-x86_64 SunOS-sparcv9 + target := $(OS_NAME)-$(OS_ARCH) + +-ifeq (,$(findstring $(strip $(target)),$(known_targets))) +- target := Default ++ifeq ($(OS_NAME),Linux) ++ target := $(OS_NAME) ++else ++ target := $(OS_NAME)-$(OS_ARCH) + endif + + # cross-compilation toolchain prefix (e.g. "arm-linux-gnueabi-") + CROSS_PREFIX := + +-Default_CC := $(CROSS_PREFIX)gcc +-Default_STRIP := $(CROSS_PREFIX)strip +-Default_CCFLAGS := -I$(JAVA_HOME)/include -Ilib/inc_linux -Os -fPIC -fvisibility=hidden +-Default_LINKFLAGS := -shared +-Default_LIBNAME := libsqlitejdbc.so +-Default_SQLITE_FLAGS := +- +-Linux-x86_CC := $(CROSS_PREFIX)gcc +-Linux-x86_STRIP := $(CROSS_PREFIX)strip +-Linux-x86_CCFLAGS := -I$(JAVA_HOME)/include -Ilib/inc_linux -O2 -fPIC -m32 -fvisibility=hidden +-Linux-x86_LINKFLAGS := -shared -static-libgcc +-Linux-x86_LIBNAME := libsqlitejdbc.so +-Linux-x86_SQLITE_FLAGS := +- +-Linux-x86_64_CC := $(CROSS_PREFIX)gcc +-Linux-x86_64_STRIP := $(CROSS_PREFIX)strip +-Linux-x86_64_CCFLAGS := -Ilib/inc_linux -I$(JAVA_HOME)/include -O2 -fPIC -m64 -fvisibility=hidden +-Linux-x86_64_LINKFLAGS := -shared -static-libgcc +-Linux-x86_64_LIBNAME := libsqlitejdbc.so +-Linux-x86_64_SQLITE_FLAGS := +- +-Linux-arm_CC := $(CROSS_PREFIX)gcc +-Linux-arm_STRIP := $(CROSS_PREFIX)strip +-Linux-arm_CCFLAGS := -I$(JAVA_HOME)/include -Ilib/inc_linux -O2 -fPIC -mfloat-abi=softfp -mfpu=vfp -fvisibility=hidden +-Linux-arm_LINKFLAGS := -shared -static-libgcc +-Linux-arm_LIBNAME := libsqlitejdbc.so +-Linux-arm_SQLITE_FLAGS := +- +-Linux-armhf_CC := $(CROSS_PREFIX)gcc +-Linux-armhf_STRIP := $(CROSS_PREFIX)strip +-Linux-armhf_CCFLAGS := -I$(JAVA_HOME)/include -Ilib/inc_linux -O2 -mfloat-abi=hard -mfpu=vfp -fPIC -fvisibility=hidden +-Linux-armhf_LINKFLAGS := -shared -static-libgcc +-Linux-armhf_LIBNAME := libsqlitejdbc.so +-Linux-armhf_SQLITE_FLAGS := ++Linux_CC := gcc ++Linux_STRIP := strip ++Linux_CCFLAGS := -I$(JAVA_HOME)/include $(CCFLAGS) -fPIC -fvisibility=hidden ++Linux_LINKFLAGS := -shared -static-libgcc ++Linux_LIBNAME := libsqlitejdbc.so ++Linux_SQLITE_FLAGS := + + FreeBSD-x86_64_CC := $(CROSS_PREFIX)cc + FreeBSD-x86_64_STRIP := $(CROSS_PREFIX)strip +diff -Nru sqlite-jdbc-3.15.1/pom.xml sqlite-jdbc-3.15.1.build/pom.xml +--- sqlite-jdbc-3.15.1/pom.xml 2016-11-04 21:42:29.000000000 +0100 ++++ sqlite-jdbc-3.15.1.build/pom.xml 2016-11-06 11:54:16.840693425 +0100 +@@ -84,7 +84,7 @@ + maven-compiler-plugin + 3.1 + +- 1.5 ++ 1.6 + 1.6 + + diff --git a/sqlite-jdbc-3.15.1.tar.gz b/sqlite-jdbc-3.15.1.tar.gz new file mode 100644 index 0000000..aa24a3c Binary files /dev/null and b/sqlite-jdbc-3.15.1.tar.gz differ diff --git a/sqlite-jdbc.spec b/sqlite-jdbc.spec new file mode 100644 index 0000000..94bb79b --- /dev/null +++ b/sqlite-jdbc.spec @@ -0,0 +1,102 @@ +%global debug_package %nil +Name: sqlite-jdbc +Version: 3.15.1 +Release: 1 +Summary: SQLite JDBC library +License: ASL 2.0 and BSD and ISC +URL: https://github.com/xerial/sqlite-jdbc +Source0: https://github.com/xerial/sqlite-jdbc/archive/%{version}/sqlite-jdbc-%{version}.tar.gz +Patch0: sqlite-jdbc-3.15.1-build.patch +BuildRequires: gcc maven-local mvn(junit:junit) mvn(org.apache.felix:maven-bundle-plugin) +BuildRequires: mvn(org.apache.maven.plugins:maven-antrun-plugin) +BuildRequires: mvn(org.sonatype.oss:oss-parent:pom:) sqlite-devel +%description +SQLite JDBC, is a library for accessing and +creating SQLite database files in Java. + +%package javadoc +Summary: Javadoc for %{name} +BuildArch: noarch +%description javadoc +This package contains javadoc for %{name}. + +%prep +%setup -q -n %{name}-%{version} +find . -name "*.class" -delete +find . -name "*.jar" ! -name "testdb.jar" -delete +find -name "*.jnilib" -print -delete +find -name "*.dll" -print -delete +find -name "*.so" -print -delete +find -name "*.h" -print -delete +rm -r archive/* docker/* +rm -r src/test/java/org/sqlite/ExtensionTest.java +sed -i '/ExtensionTest/d' src/test/java/org/sqlite/AllTests.java +rm -r src/test/java/org/sqlite/TransactionTest.java +sed -i '/TransactionTest/d' src/test/java/org/sqlite/AllTests.java +%ifarch %{power64} +rm -r src/test/java/org/sqlite/SQLiteDataSourceTest.java +sed -i '/SQLiteDataSourceTest/d' src/test/java/org/sqlite/AllTests.java +%endif +%patch0 -p1 +%pom_add_plugin org.apache.maven.plugins:maven-antrun-plugin:1.7 . ' + + + com.sun + tools + 1.8.0 + + + + + compile + process-classes + + + + + + + + + + + + run + + +' +cp -p src/main/java/org/sqlite/util/OSInfo.java lib/org/sqlite/ +sed -i "s|package org.sqlite.util;|package org.sqlite;|" lib/org/sqlite/OSInfo.java +%mvn_file org.xerial:%{name} %{name} + +%build +%ifarch %{arm} +opts='-f' +%endif +sed -i 's|$(CCFLAGS) -I|$(CCFLAGS) $(CFLAGS) -I|' Makefile +CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ; +sed -i 's|$(CCFLAGS) -o|$(CCFLAGS) $(LDFLAGS) -o|' Makefile +LDFLAGS="${LDFLAGS:-%__global_ldflags}"; export LDFLAGS; +%mvn_build $opts -- -Dmaven.test.failure.ignore=true + +%install +%mvn_install + +%files -f .mfiles +%doc CHANGELOG README.md Usage.md +%license LICENSE* NOTICE + +%files javadoc -f .mfiles-javadoc +%license LICENSE* NOTICE + +%changelog +* Mon Aug 3 2020 Jeffery.Gao - 3.15.1-1 +- Package init diff --git a/sqlite-jdbc.yaml b/sqlite-jdbc.yaml new file mode 100644 index 0000000..9410585 --- /dev/null +++ b/sqlite-jdbc.yaml @@ -0,0 +1,5 @@ +git_url: https://github.com/xerial/sqlite-jdbc +version_control: github +src_repo: xerial/sqlite-jdbc +tag_prefix: "^" +seperator: "."