diff --git a/.gitignore b/.gitignore index 0aa8168..5804f84 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,7 @@ /postgresql-42.7.2-jdbc-src.tar.gz /postgresql-42.7.3-jdbc-src.tar.gz /postgresql-42.7.4-jdbc-src.tar.gz +/postgresql-42.7.5-jdbc-src.tar.gz +/postgresql-42.7.6-jdbc-src.tar.gz +/postgresql-42.7.7-jdbc-src.tar.gz +/postgresql-42.7.8-jdbc-src.tar.gz diff --git a/plans/javapackages.fmf b/plans/javapackages.fmf index 1e5c8de..36643ec 100644 --- a/plans/javapackages.fmf +++ b/plans/javapackages.fmf @@ -1,7 +1,7 @@ summary: Run javapackages-specific tests discover: how: fmf - url: https://src.fedoraproject.org/tests/javapackages + url: https://gitlab.com/redhat/centos-stream/tests/javapackages.git ref: main execute: how: tmt diff --git a/plans/smoke.fmf b/plans/smoke.fmf new file mode 100644 index 0000000..79935d4 --- /dev/null +++ b/plans/smoke.fmf @@ -0,0 +1,10 @@ +summary: Basic smoke test +discover: + how: fmf + url: https://gitlab.com/redhat/centos-stream/tests/postgresql-jdbc.git +prepare: + how: install + package: + - java-21-openjdk-devel +execute: + how: tmt diff --git a/postgresql-jdbc.spec b/postgresql-jdbc.spec index 2a48a70..0b0d226 100644 --- a/postgresql-jdbc.spec +++ b/postgresql-jdbc.spec @@ -48,24 +48,22 @@ Summary: JDBC driver for PostgreSQL Name: postgresql-jdbc -Version: 42.7.4 +Version: 42.7.8 Release: %autorelease License: BSD-2-Clause URL: https://jdbc.postgresql.org/ Source0: https://repo1.maven.org/maven2/org/postgresql/postgresql/%{version}/postgresql-%{version}-jdbc-src.tar.gz +Source1: postgresql_jdbc_tests_init.sh BuildArch: noarch ExclusiveArch: %{java_arches} noarch -Provides: pgjdbc = %version-%release +Provides: pgjdbc = %{version}-%{release} -BuildRequires: maven-local +BuildRequires: maven-local-openjdk25 BuildRequires: mvn(com.ongres.scram:scram-client) -BuildRequires: mvn(junit:junit) +BuildRequires: mvn(org.apache.maven.plugins:maven-dependency-plugin) +BuildRequires: mvn(org.apache.maven.plugins:maven-shade-plugin) BuildRequires: mvn(org.junit.jupiter:junit-jupiter-api) -BuildRequires: mvn(org.junit.jupiter:junit-jupiter-engine) -BuildRequires: mvn(org.junit.jupiter:junit-jupiter-params) -BuildRequires: mvn(org.junit.vintage:junit-vintage-engine) -BuildRequires: mvn(se.jiderhamn:classloader-leak-test-framework) %if %runselftest BuildRequires: postgresql-contrib @@ -75,18 +73,24 @@ BuildRequires: postgresql-test-rpm-macros # gettext is only needed if we try to update translations # BuildRequires: gettext -Obsoletes: %{name}-parent-poms < 42.2.2-2 +# TODO Remove in Fedora 46 +Obsoletes: %{name}-javadoc < 42.7.4-9 + +Provides: bundled(mvn(com.ongres.scram:scram-client)) = 3.2 +Provides: bundled(mvn(com.ongres.scram:scram-common)) = 3.2 +Provides: bundled(mvn(com.ongres.stringprep:saslprep)) = 2.2 +Provides: bundled(mvn(com.ongres.stringprep:stringprep)) = 2.2 %description PostgreSQL is an advanced Object-Relational database management system. The postgresql-jdbc package includes the .jar files needed for Java programs to access a PostgreSQL database. -%package javadoc -Summary: API docs for %{name} +%package tests +Summary: Tests for %{name} -%description javadoc -This package contains the API Documentation for %{name}. +%description tests +This package contains tests for %{name}. %prep %autosetup -p1 -n postgresql-%{version}-jdbc-src @@ -94,9 +98,6 @@ This package contains the API Documentation for %{name}. # remove any binary libs find -type f \( -name "*.jar" -or -name "*.class" \) -delete -# Build parent POMs in the same Maven call. -%pom_remove_plugin :maven-shade-plugin - # compat symlink: requested by dtardon (libreoffice), reverts part of # 0af97ce32de877 commit. %mvn_file org.postgresql:postgresql %{name}/postgresql %{name} postgresql @@ -106,13 +107,19 @@ find -type f \( -name "*.jar" -or -name "*.class" \) -delete # remove unmet dependency %pom_remove_dep uk.org.webcompere:system-stubs-jupiter - # remove tests that depend on the system-stubs-jupiter -rm src/test/java/org/postgresql/test/jdbc2/DriverTest.java \ - src/test/java/org/postgresql/util/OSUtilTest.java \ - src/test/java/org/postgresql/jdbcurlresolver/PgServiceConfParserTest.java \ - src/test/java/org/postgresql/jdbcurlresolver/PgPassParserTest.java \ - src/test/java/org/postgresql/util/StubEnvironmentAndProperties.java +grep -l -r '^import uk\.org\.webcompere\.systemstubs' src/test | xargs rm -v + +# Install -tests Jar as well +%pom_xpath_inject 'pom:build/pom:plugins/pom:plugin[pom:artifactId="maven-jar-plugin"]' ' + + + + test-jar + + +' +%mvn_package org.postgresql:postgresql::tests: tests %build # Ideally we would run "sh update-translations.sh" here, but that results @@ -123,41 +130,35 @@ rm src/test/java/org/postgresql/test/jdbc2/DriverTest.java \ # Include PostgreSQL testing methods and variables. %if %runselftest -%postgresql_tests_init - -PGTESTS_LOCALE=C.UTF-8 - -cat < build.local.properties -server=localhost -port=$PGTESTS_PORT -database=test -username=test -password=test -privilegedUser=$PGTESTS_ADMIN -privilegedPassword=$PGTESTS_ADMINPASS -preparethreshold=5 -loglevel=0 -protocolVersion=0 -EOF +. %{SOURCE1} +setup_build_local_properties > build.local.properties # Start the local PG cluster. %postgresql_tests_start %else -# -f is equal to -Dmaven.test.skip=true -opts="-f" +# NOTE this parameter skips running tests but still compiles them +opts="-DskipTests=true" %endif -%mvn_build $opts --xmvn-javadoc +%mvn_build -j -- $opts + +xmvn --offline -Dmdep.outputFile=tests-classpath dependency:build-classpath %install %mvn_install +install -m 644 -D tests-classpath %{buildroot}%{_datadir}/%{name}-tests/classpath +install -m 644 -D -t %{buildroot}%{_datadir}/%{name}-tests build.properties ssltest.properties +cp -r -t %{buildroot}%{_datadir}/%{name}-tests certdir +install -m 755 -D -t %{buildroot}%{_libexecdir}/%{name}-tests %{SOURCE1} %files -f .mfiles %license LICENSE %doc README.md -%files javadoc -f .mfiles-javadoc +%files tests -f .mfiles-tests %license LICENSE +%{_datadir}/%{name}-tests +%{_libexecdir}/%{name}-tests %changelog %autochangelog diff --git a/postgresql_jdbc_tests_init.sh b/postgresql_jdbc_tests_init.sh new file mode 100755 index 0000000..a711672 --- /dev/null +++ b/postgresql_jdbc_tests_init.sh @@ -0,0 +1,24 @@ +#!/usr/bin/bash + +# Before running tests, source this file. +# Call the function `setup_build_local_properties` and redirect its output into +# the file `build.local.properties` and run the tests in the same directory. + +. /usr/share/postgresql-setup/postgresql_pkg_tests.sh + +PGTESTS_LOCALE=C.UTF-8 + +function setup_build_local_properties +{ +cat << EOF +test.url.PGHOST=localhost +test.url.PGPORT=$PGTESTS_PORT +test.url.PGDBNAME=test +user=test +password=test +privilegedUser=$PGTESTS_ADMIN +privilegedPassword=$PGTESTS_ADMINPASS +preparethreshold=5 +loglevel=0 +EOF +} diff --git a/sources b/sources index 6b05239..5ede387 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (postgresql-42.7.4-jdbc-src.tar.gz) = 3f864848d0b6b079daf8abecabb2bd8487fa8bc23ef9265bfa71c484b4ee3b38a76cc38af7a72ac3ac64fa26569952b9b69d08b3b8a115d44bee823151c6c292 +SHA512 (postgresql-42.7.8-jdbc-src.tar.gz) = 4860f6446960ad4d38af28a3cd38cbc6bdd53d8acdd0c20cc3141df3e7a4b41aad67293f19aac6ae6d9da351b7e6379a0a02261d8bb188e1daae914f7ba0139f