commit 1ae0c6518a55fe61e58ca1189295943567348bfb Author: CentOS Sources Date: Tue Nov 8 01:47:38 2022 -0500 import mariadb-java-client-2.7.1-2.el8 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6d48e63 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/mariadb-connector-j-2.7.1.tar.gz diff --git a/.mariadb-java-client.metadata b/.mariadb-java-client.metadata new file mode 100644 index 0000000..b81e0b3 --- /dev/null +++ b/.mariadb-java-client.metadata @@ -0,0 +1 @@ +a838d52134182704d3665488278f98104cef4b42 SOURCES/mariadb-connector-j-2.7.1.tar.gz diff --git a/SOURCES/compliance-for-jna-4.patch b/SOURCES/compliance-for-jna-4.patch new file mode 100644 index 0000000..086212a --- /dev/null +++ b/SOURCES/compliance-for-jna-4.patch @@ -0,0 +1,52 @@ +From 6851cb325a3508bbdaf58324dcf5968b31eebde8 Mon Sep 17 00:00:00 2001 +From: Zuzana Miklankova +Date: Mon, 11 Apr 2022 12:44:39 +0200 +Subject: [PATCH] compliance for jna 4 + +More information: +https://github.com/java-native-access/jna/blob/5.0.0/src/com/sun/jna/Native.java#L599 +https://github.com/java-native-access/jna/blob/5.0.0/CHANGES.md#features-12 + +--- + .../mariadb/jdbc/internal/io/socket/SharedMemorySocket.java | 4 ++-- + .../org/mariadb/jdbc/internal/util/pid/JnaPidFactory.java | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/main/java/org/mariadb/jdbc/internal/io/socket/SharedMemorySocket.java b/src/main/java/org/mariadb/jdbc/internal/io/socket/SharedMemorySocket.java +index 74a4f4b1..2abdcba8 100644 +--- a/src/main/java/org/mariadb/jdbc/internal/io/socket/SharedMemorySocket.java ++++ b/src/main/java/org/mariadb/jdbc/internal/io/socket/SharedMemorySocket.java +@@ -284,7 +284,7 @@ public class SharedMemorySocket extends Socket { + + public interface Kernel32 extends StdCallLibrary { + +- Kernel32 INSTANCE = Native.load("Kernel32", Kernel32.class, WIN32API_OPTIONS); ++ Kernel32 INSTANCE = Native.loadLibrary("Kernel32", Kernel32.class, WIN32API_OPTIONS); + int FILE_MAP_WRITE = 0x0002; + int FILE_MAP_READ = 0x0004; + int EVENT_MODIFY_STATE = 0x0002; +@@ -327,7 +327,7 @@ public class SharedMemorySocket extends Socket { + + public interface Advapi32 extends StdCallLibrary { + +- Advapi32 INSTANCE = Native.load("advapi32", Advapi32.class, WIN32API_OPTIONS); ++ Advapi32 INSTANCE = Native.loadLibrary("advapi32", Advapi32.class, WIN32API_OPTIONS); + + boolean ConvertStringSecurityDescriptorToSecurityDescriptor( + String sddl, int sddlVersion, PointerByReference psd, IntByReference length); +diff --git a/src/main/java/org/mariadb/jdbc/internal/util/pid/JnaPidFactory.java b/src/main/java/org/mariadb/jdbc/internal/util/pid/JnaPidFactory.java +index 88cc2d5e..6e872035 100644 +--- a/src/main/java/org/mariadb/jdbc/internal/util/pid/JnaPidFactory.java ++++ b/src/main/java/org/mariadb/jdbc/internal/util/pid/JnaPidFactory.java +@@ -99,7 +99,7 @@ public class JnaPidFactory { + } + + private interface CLibrary extends Library { +- CLibrary INSTANCE = Native.load("c", CLibrary.class); ++ CLibrary INSTANCE = Native.loadLibrary("c", CLibrary.class); + + int getpid(); + } +-- +2.35.1 + diff --git a/SOURCES/remove_waffle-jna.patch b/SOURCES/remove_waffle-jna.patch new file mode 100644 index 0000000..e30649c --- /dev/null +++ b/SOURCES/remove_waffle-jna.patch @@ -0,0 +1,45 @@ +From c1e587054376db950495c02672675c801f454a6b Mon Sep 17 00:00:00 2001 +From: Ondrej Dubaj +Date: Mon, 10 Feb 2020 18:08:39 +0100 +Subject: [PATCH] remove waffle-jna + +--- + .../send/authentication/gssapi/GssUtility.java | 18 ++---------------- + 1 file changed, 2 insertions(+), 16 deletions(-) + +diff --git a/src/main/java/org/mariadb/jdbc/internal/com/send/authentication/gssapi/GssUtility.java b/src/main/java/org/mariadb/jdbc/internal/com/send/authentication/gssapi/GssUtility.java +index 810500e..127b580 100644 +--- a/src/main/java/org/mariadb/jdbc/internal/com/send/authentication/gssapi/GssUtility.java ++++ b/src/main/java/org/mariadb/jdbc/internal/com/send/authentication/gssapi/GssUtility.java +@@ -5,26 +5,12 @@ import com.sun.jna.*; + public class GssUtility { + + /** +- * Get authentication method according to classpath. Windows native authentication is using +- * Waffle-jna. ++ * Get authentication method according to classpath. ++ * + * + * @return authentication method + */ + public static GssapiAuth getAuthenticationMethod() { +- try { +- // Waffle-jna has jna as dependency, so if not available on classpath, just use standard +- // authentication +- if (Platform.isWindows()) { +- try { +- Class.forName("waffle.windows.auth.impl.WindowsAuthProviderImpl"); +- return new WindowsNativeSspiAuthentication(); +- } catch (ClassNotFoundException cle) { +- // waffle not in the classpath +- } +- } +- } catch (Throwable cle) { +- // jna jar's are not in classpath +- } + return new StandardGssapiAuthentication(); + } + } +-- +2.19.1 + diff --git a/SPECS/mariadb-java-client.spec b/SPECS/mariadb-java-client.spec new file mode 100644 index 0000000..0a2a40f --- /dev/null +++ b/SPECS/mariadb-java-client.spec @@ -0,0 +1,218 @@ +Name: mariadb-java-client +Version: 2.7.1 +Release: 2%{?dist} +Summary: Connects applications developed in Java to MariaDB and MySQL databases +# added BSD license because of https://bugzilla.redhat.com/show_bug.cgi?id=1291558#c13 +License: BSD and LGPLv2+ +URL: https://mariadb.com/kb/en/mariadb/about-mariadb-connector-j/ +Source0: https://github.com/mariadb-corporation/mariadb-connector-j/archive/refs/tags/%{version}.tar.gz/mariadb-connector-j-%{version}.tar.gz + +# optional dependency not in Fedora +Patch0: remove_waffle-jna.patch +Patch1: compliance-for-jna-4.patch + +BuildArch: noarch +BuildRequires: maven-local +BuildRequires: mvn(net.java.dev.jna:jna) +BuildRequires: mvn(net.java.dev.jna:jna-platform) +BuildRequires: mvn(org.apache.felix:maven-bundle-plugin) +BuildRequires: mvn(org.codehaus.mojo:build-helper-maven-plugin) +BuildRequires: mvn(org.osgi:osgi.cmpn) +BuildRequires: mvn(org.osgi:osgi.core) +BuildRequires: mvn(org.slf4j:slf4j-api) +# since version 1.5.2 missing optional dependency (windows) +#BuildRequires: mvn(com.github.dblock.waffle:waffle-jna) + +Suggests: mariadb-server + +%description +MariaDB Connector/J is a Type 4 JDBC driver, also known as the Direct to +Database Pure Java Driver. It was developed specifically as a lightweight +JDBC connector for use with MySQL and MariaDB database servers. + +%package javadoc +Summary: Javadoc for %{name} + +%description javadoc +This package contains the API documentation for %{name}. + +%prep +%setup -qn mariadb-connector-j-%{version} + +# convert files from dos to unix line encoding +for file in README.md documentation/*.creole; do + sed -i.orig 's|\r||g' $file + touch -r $file.orig $file + rm $file.orig +done + +# remove missing optional dependency waffle-jna +%pom_remove_dep com.github.waffle:waffle-jna +%pom_remove_dep ch.qos.logback:logback-classic +%pom_remove_dep junit:junit +%pom_remove_dep com.amazonaws:aws-java-sdk-rds + +# remove and add jna, so that it is stated as +# non-optional dependency +%pom_remove_dep net.java.dev.jna:jna +%pom_add_dep net.java.dev.jna:jna + +# change required version of the jna-platform, as mariadb-java-client is patched to +# be compliant also with jna 4 +%pom_change_dep net.java.dev.jna:jna-platform net.java.dev.jna:jna-platform:any + +# use latest OSGi implementation +%pom_change_dep -r :org.osgi.core org.osgi:osgi.core +%pom_change_dep -r :org.osgi.compendium org.osgi:osgi.cmpn + + +# also remove the file using the removed plugin +rm -r src/main/java/org/mariadb/jdbc/credential/aws +rm src/main/java/org/mariadb/jdbc/internal/com/send/authentication/gssapi/WindowsNativeSspiAuthentication.java +# patch the sources so that the missing file is not making trouble +%patch0 -p1 +%patch1 -p1 + +%mvn_file org.mariadb.jdbc:%{name} %{name} +%mvn_alias org.mariadb.jdbc:%{name} mariadb:mariadb-connector-java + +%pom_remove_plugin org.jacoco:jacoco-maven-plugin +%pom_remove_plugin org.apache.maven.plugins:maven-source-plugin +%pom_remove_plugin org.apache.maven.plugins:maven-javadoc-plugin +%pom_remove_plugin org.sonatype.plugins:nexus-staging-maven-plugin +%pom_remove_plugin com.coveo:fmt-maven-plugin +%pom_remove_plugin -r :maven-gpg-plugin + +# remove preconfigured OSGi manifest file and generate OSGi manifest file +# with maven-bundle-plugin instead of using maven-jar-plugin +rm src/main/resources/META-INF/MANIFEST.MF +%pom_xpath_set "pom:packaging" bundle +%pom_xpath_set "pom:build/pom:plugins/pom:plugin[pom:artifactId='maven-jar-plugin']/pom:configuration/pom:archive/pom:manifestFile" '${project.build.outputDirectory}/META-INF/MANIFEST.MF' +%pom_xpath_remove "pom:build/pom:plugins/pom:plugin[pom:artifactId='maven-jar-plugin']/pom:configuration/pom:archive/pom:manifestEntries" + +%pom_add_plugin org.apache.felix:maven-bundle-plugin:2.5.4 . ' +true + + + ${project.groupId} + MariaDB JDBC Client + ${project.version}.0 + org.mariadb.jdbc.* + + !com.sun.jna.*, + javax.net;resolution:=optional, + javax.net.ssl;resolution:=optional, + javax.sql;resolution:=optional, + javax.transaction.xa;resolution:=optional + + + + + + bundle-manifest + process-classes + + manifest + + +' + +%build +# tests are skipped, while they require running application server +%mvn_build -f + +%install +%mvn_install + +%files -f .mfiles +%doc documentation/* README.md +%license LICENSE + +%files javadoc -f .mfiles-javadoc +%license LICENSE + +%changelog +* Tue May 24 2022 Zuzana Miklankova - 2.7.1-2 +- autogenerate the Requires only for jna, not jna-platform +- change required version of jna-platform to 'any' in pom.xml + Resolves: #2089627 + +* Mon Feb 07 2022 Zuzana Miklankova - 2.7.1-1 +- Update to 2.7.1 +- Retain compatibility with jna4 +- Adjust pom.xml, so that the rpm Requires jna and jna-platform + Resolves: #2043212 + +* Fri Jun 26 2020 Michal Schorm - 2.2.5-3 +- Fix requirement on MariaDB + Resolves: #1797057 + +* Thu Jun 14 2018 Jakub Janco - 2.2.5-1 +- update version + +* Mon May 28 2018 Michael Simacek - 2.2.3-2 +- Remove BR on maven-javadoc-plugin + +* Tue Mar 13 2018 Jakub Janco - 2.2.3-1 +- update version + +* Mon Feb 26 2018 Jakub Janco - 2.2.2-1 +- update version + +* Thu Feb 08 2018 Fedora Release Engineering - 2.2.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Jan 03 2018 Jakub Janco - 2.2.1-1 +- Update to 2.2.1 + +* Tue Nov 21 2017 Jakub Janco - 2.2.0-1 +- Update to 2.2.0 + +* Tue Aug 29 2017 Tomas Repik - 2.1.0-1 +- Update to 2.1.0 + +* Wed Jul 26 2017 Fedora Release Engineering - 2.0.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Mon Jun 26 2017 Tomas Repik - 2.0.2-1 +- version update + +* Fri Feb 10 2017 Fedora Release Engineering - 1.5.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Mon Nov 28 2016 Tomas Repik - 1.5.5-1 +- version update + +* Mon Oct 03 2016 Tomas Repik - 1.5.3-1 +- version update + +* Wed Sep 14 2016 Tomas Repik - 1.5.2-1 +- version update + +* Tue Jun 21 2016 Tomas Repik - 1.4.6-1 +- version update + +* Mon Apr 18 2016 Tomas Repik - 1.4.2-1 +- version update + +* Wed Mar 23 2016 Tomas Repik - 1.3.7-1 +- version update +- BSD license added +- cosmetic updates in prep phase + +* Thu Mar 10 2016 Tomas Repik - 1.3.6-1 +- version update + +* Mon Feb 15 2016 Tomas Repik - 1.3.5-1 +- version update + +* Wed Jan 20 2016 Tomáš Repík - 1.3.3-3 +- generating OSGi manifest file with maven-bundle-plugin + +* Wed Dec 16 2015 Tomáš Repík - 1.3.3-2 +- installing LICENSE added +- conversion from dos to unix line encoding revised +- unnecessary tasks removed + +* Wed Dec 9 2015 Tomáš Repík - 1.3.3-1 +- Initial package