# MARIADB CONNECTOR-J # https://mariadb.com/kb/en/about-mariadb-connector-j/ # https://github.com/mariadb-corporation/mariadb-connector-j # https://mariadb.com/kb/en/installing-mariadb-connectorj/#installing-mariadb-connectorj-from-source %global _owner pgnd %global _build_timestamp %( date +%%Y%%m%%d_%%H%%M%%S --utc ) %global _dist .%{_build_timestamp}.%{_owner}.fc%{fedora} # https://rpm-software-management.github.io/rpm/manual/dependency_generators.html # %%global __spec_install_pre /bin/true # %%global __arch_install_post %%{nil} %global __os_install_post %{nil} %global _disable_source_fetch 0 %global debug_package %{nil} # %%undefine _auto_set_build_flags %global _hardened_build 1 # %%global __brp_mangle_shebangs %%{nil} # %%global __brp_strip %%{nil} # %%global __requires_exclude ^.*/xxx/bin/python.*$ # %%global __requires_exclude_from ^.*/xxx/bin/python.*$ # RHEL8 rpmbuild and /usr/lib/.build-id # https://access.redhat.com/discussions/5045161 %global _build_id_links none # %%bcond_with XXX : opt build with XXX; default, without # %%bcond_without XXX : opt build without XXX; default, with %global _mdbcj_name mariadb-connector-j %global _mdbcj_pkgnm %{_mdbcj_name} %global _mdbcj_comment MariaDB Connector-J %global _mdbcj_descrip %{expand: %{_mdbcj_comment}.} # https://spdx.org/licenses/LGPL-2.1-or-later.html %global _mdbcj_license LGPL-2.1-or-later %global _mdbcj_scm_host https://github.com %global _mdbcj_scm_host_api https://api.github.com/repos %global _mdbcj_scm_repo mariadb-corporation/mariadb-connector-j %global _mdbcj_scm_url %{_mdbcj_scm_host}/%{_mdbcj_scm_repo} %global _mdbcj_scm_branch 3.5.3 %global _mdbcj_scm_repo_esc %( echo %{_mdbcj_scm_repo} | sed 's|_|-|g' | sed 's|/|%2F|g') %global _mdbcj_scm_repo_norm %( echo %{_mdbcj_scm_repo} | sed 's|_|-|g' | sed 's|/|-|g' ) %global _mdbcj_scm_branch_norm %( echo %{_mdbcj_scm_branch} | sed 's|_|-|g' | sed 's|/|-|g' ) %global forgeurl0 %{_mdbcj_scm_url} %global commit0 %( git ls-remote %{forgeurl0} | grep /%{_mdbcj_scm_branch}$ | cut -f1 ) %global shortcommit0 %( c=%{commit0}; echo ${c} | head -c 7 ) %global _mdbcj_scm_tarball %{_mdbcj_scm_host_api}/%{_mdbcj_scm_repo}/tarball/%{commit0} # !!NOTE!! GH API tarball extracts to: %global _mdbcj_scm_extract_dir %{_mdbcj_scm_repo_norm}-%{shortcommit0} %global forgesource0 %{_mdbcj_scm_tarball} %global extractdir0 %{_mdbcj_scm_extract_dir} %global forgesetupargs0 -T -D -b 0 -n %{extractdir0} %forgemeta -i -a %global dist %{_dist} # Vendor Pinning Vendor: %{_owner} # NEVRA (n-e:v-r.a) Name: %{_mdbcj_pkgnm} Epoch: 3 Version: %{scm0}_%( echo %{_mdbcj_scm_branch} | sed 's|-|_|g' ) Release: 0%{?dist} # https://blog.jasonantman.com/2014/07/how-yum-and-rpm-compare-versions/ %global _same_evr %{epoch}:%{version}-%{release} Summary: %{_mdbcj_comment} License: %{_mdbcj_license} URL: %{forgeurl0} Source0: %{forgesource0} Patch0: 01-waffle-jna.patch # https://docs.fedoraproject.org/en-US/java-packaging-howto/maven/ %global xmvn_bootstrap 1 %global _without_tests 1 %global _without_javadoc 1 BuildArch: noarch ExclusiveArch: %{java_arches} noarch BuildRequires: maven-local BuildRequires: jna BuildRequires: jna-contrib BuildRequires: mvn(net.java.dev.jna:jna) BuildRequires: mvn(net.java.dev.jna:jna-platform) BuildRequires: mvn(com.google.code.maven-replacer-plugin:replacer) 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: rpmdevtools # Packaging:Conflicts # https://fedoraproject.org/wiki/Packaging:Conflicts Provides: %{_mdbcj_pkgnm} = %{_same_evr} Obsoletes: %{_mdbcj_pkgnm} <= %{_same_evr} Conflicts: mariadb-java-client %description %{_mdbcj_comment} %prep echo '##### STARTING PREP #####' %forgesetup -a %pom_remove_dep com.github.waffle:waffle-jna %pom_remove_dep software.amazon.awssdk:bom %pom_remove_dep software.amazon.awssdk:rds %pom_remove_dep org.junit:junit-bom %pom_remove_dep org.junit.jupiter:junit-jupiter-engine %pom_remove_dep org.slf4j:slf4j-api %pom_add_dep net.java.dev.jna:jna %pom_add_dep net.java.dev.jna:jna-platform %pom_add_dep org.slf4j:slf4j-api %pom_change_dep -r :org.osgi.core org.osgi:osgi.core %pom_change_dep -r :org.osgi.compendium org.osgi:osgi.cmpn rm -r src/main/java/org/mariadb/jdbc/plugin/credential/aws # removing dependencies and 'provides', which mariadb-java-client cannot process from module-info.java sed -i '/aws/d' src/main/java9/module-info.java sed -i '/waffle/d' src/main/java9/module-info.java # removing missing dependencies form META-INF, so that the mariadb-java-client module would be valid sed -i '/aws/d' src/main/resources/META-INF/services/org.mariadb.jdbc.plugin.CredentialPlugin sed -i '/aws/d' src/test/resources/META-INF/services/org.mariadb.jdbc.plugin.CredentialPlugin rm -f src/main/java/org/mariadb/jdbc/plugin/authentication/addon/gssapi/WindowsNativeSspiAuthentication.java %patch -P 0 -p2 %mvn_file org.mariadb.jdbc:mariadb-java-client mariadb-java-client %mvn_alias org.mariadb.jdbc:mariadb-java-client 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.sonatype.plugins:nexus-staging-maven-plugin %pom_remove_plugin -r :maven-gpg-plugin %pom_remove_plugin -r :maven-javadoc-plugin %build # https://docs.fedoraproject.org/en-US/java-packaging-howto/manpage_mvn_build/ %mvn_build %install %mvn_install %files -f .mfiles %doc README.md %license LICENSE %changelog * Sat Apr 26 2025 pgnd _ - bump 1745723904