rebase: most recent upstream version

Resolves: rhbz#1196445
Version: 9.4.1209-1
This commit is contained in:
Pavel Raiskup 2016-07-20 07:29:48 +02:00
parent d941feffb6
commit df7c1ce59f
3 changed files with 133 additions and 60 deletions

3
.gitignore vendored
View File

@ -1 +1,2 @@
/postgresql-jdbc-9.4-1200.src.tar.gz
/REL9.4.1209.tar.gz
/REL1.0.8.tar.gz

View File

@ -26,37 +26,56 @@
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# Configuration for rpmbuild, might be specified by options
# like e.g. 'rpmbuild --define "runselftest 0"'.
%{!?runselftest:%global runselftest 1}
%global section devel
%global upstreamrel 1200
%global upstreamver 9.4-%{upstreamrel}
%global upstreamrel 1209
%global upstreammajor 9.4
%global source_path pgjdbc/src/main/java/org/postgresql
%global parent_ver 1.0.8
%global parent_poms_builddir ./pgjdbc-parent-poms
%global pgjdbc_mvn_options -DwaffleEnabled=false -DosgiEnabled=false \\\
-DexcludePackageNames=org.postgresql.osgi:org.postgresql.sspi
Summary: JDBC driver for PostgreSQL
Name: postgresql-jdbc
Version: 9.4.%{upstreamrel}
Release: 3%{?dist}
Version: %upstreammajor.%{upstreamrel}
Release: 1%{?dist}
# ASL 2.0 applies only to postgresql-jdbc.pom file, the rest is BSD
License: BSD and ASL 2.0
Group: Applications/Databases
URL: http://jdbc.postgresql.org/
Source0: http://jdbc.postgresql.org/download/%{name}-%{upstreamver}.src.tar.gz
# originally http://repo2.maven.org/maven2/postgresql/postgresql/8.4-701.jdbc4/postgresql-8.4-701.jdbc4.pom:
Source1: %{name}.pom
Source0: https://github.com/pgjdbc/pgjdbc/archive/REL%version.tar.gz
Source1: postgres-testing.sh
# Revert back fix for travis build which breaks our ant-build for version 1.9.2
# & 1.9.4.
# ~> downstream
# ~> 1118667
Patch0: postgresql-jdbc-9.3-1102-revert-88b9a034.patch
# Upstream moved parent pom.xml into separate project (even though there is only
# one dependant project on it?). Let's try to not complicate packaging by
# having separate spec file for it, too.
Source2: https://github.com/pgjdbc/pgjdbc-parent-poms/archive/REL%parent_ver.tar.gz
BuildArch: noarch
BuildRequires: java-devel >= 1:1.8
BuildRequires: java-devel >= 1.8
BuildRequires: jpackage-utils
BuildRequires: ant
BuildRequires: ant-junit
BuildRequires: junit
BuildRequires: maven-local
BuildRequires: java-comment-preprocessor
BuildRequires: properties-maven-plugin
BuildRequires: maven-enforcer-plugin
BuildRequires: maven-plugin-bundle
BuildRequires: maven-plugin-build-helper
%if %runselftest
BuildRequires: postgresql-server
BuildRequires: postgresql-contrib
%endif
# gettext is only needed if we try to update translations
#BuildRequires: gettext
Requires: jpackage-utils
@ -67,86 +86,138 @@ 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 parent-poms
Summary: Build dependency management for pgjdbc.
%description parent-poms
Pom files bringing dependencies required for successful PostgreSQL JDBC driver
build.
%package javadoc
Summary: API docs for %{name}
Group: Documentation
Summary: API docs for %{name}
Group: Documentation
%description javadoc
This package contains the API Documentation for %{name}.
%prep
%setup -c -q
mv -f %{name}-%{upstreamver}.src/* .
rm -f %{name}-%{upstreamver}.src/.gitignore
rm -f %{name}-%{upstreamver}.src/.travis.yml
rmdir %{name}-%{upstreamver}.src
%setup -c -q -a 2 -n pgjdbc-REL%version
mv pgjdbc-REL%version/* .
mv pgjdbc-parent-poms-REL%parent_ver pgjdbc-parent-poms
# remove any binary libs
find -name "*.jar" -or -name "*.class" | xargs rm -f
%patch0 -p1 -b .revert-travis-fix
%pom_disable_module ubenchmark
# Hack #0! For upstream it is to some extent important to have the parent-poms
# project separated. Having it like that on downstream level does not help at
# all. Note that we have to revert this patch before we do the installation.
sed -i.hack-parent-poms \
's!<relativePath />!<relativePath>../pgjdbc-parent-poms/pgjdbc-core-parent/pom.xml</relativePath>!' \
pgjdbc/pom.xml
sed -i.hack-parent-poms \
'/<artifactId>pgjdbc-versions/a <relativePath>pgjdbc-parent-poms/pgjdbc-versions/pom.xml</relativePath>' \
pom.xml
# Hack #1! This directory is missing for some reason, it is most probably some
# misunderstanding between maven, maven-compiler-plugin and
# java-comment-preprocessor? Not solved yet. See rhbz#1325060.
mkdir -p pgjdbc/target/generated-sources/annotations
%build
export OPT_JAR_LIST="ant/ant-junit junit"
export CLASSPATH=
# Ideally we would run "sh update-translations.sh" here, but that results
# in inserting the build timestamp into the generated messages_*.class
# files, which makes rpmdiff complain about multilib conflicts if the
# different platforms don't build in the same minute. For now, rely on
# upstream to have updated the translations files before packaging.
ant jar publicapi
# Include PostgreSQL testing methods and variables.
%if %runselftest
. %{SOURCE1}
PGTESTS_LOCALE=C.UTF-8
cat <<EOF > 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
# Start the local PG cluster.
pgtests_start
%endif
# First "build" the parent-poms ..
cd %parent_poms_builddir
%mvn_build -- %pgjdbc_mvn_options
cd ..
# .. and then build pgjdbc.
%if %runselftest
%mvn_build -- %pgjdbc_mvn_options
%else
%mvn_build -- %pgjdbc_mvn_options -Dmaven.test.skip=true
%endif
# Hack #0! Revert the patch above.
for i in `find -name '*.hack-parent-poms'`
do
mv $i ${i%%%%.hack-parent-poms}
done
%install
install -d $RPM_BUILD_ROOT%{_javadir}
# Per jpp conventions, jars have version-numbered names and we add
# versionless symlinks.
install -m 644 jars/postgresql-%{upstreamver}.jdbc41.jar $RPM_BUILD_ROOT%{_javadir}/%{name}.jar
%mvn_install
cd %parent_poms_builddir
%mvn_install
pushd $RPM_BUILD_ROOT%{_javadir}
# Also, for backwards compatibility with our old postgresql-jdbc packages,
# add these symlinks. (Probably only the jdbc3 symlink really makes sense?)
ln -s postgresql-jdbc.jar postgresql-jdbc2.jar
ln -s postgresql-jdbc.jar postgresql-jdbc2ee.jar
ln -s postgresql-jdbc.jar postgresql-jdbc3.jar
ln -s %{name}/postgresql.jar postgresql-jdbc.jar
ln -s %{name}/postgresql.jar postgresql-jdbc2.jar
ln -s %{name}/postgresql.jar postgresql-jdbc2ee.jar
ln -s %{name}/postgresql.jar postgresql-jdbc3.jar
popd
# Install the pom after inserting the correct version number
sed 's/UPSTREAM_VERSION/%{upstreamver}/g' %{SOURCE1} >JPP-%{name}.pom
install -d -m 755 $RPM_BUILD_ROOT%{_mavenpomdir}/
install -m 644 JPP-%{name}.pom $RPM_BUILD_ROOT%{_mavenpomdir}/JPP-%{name}.pom
%add_maven_depmap
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}
cp -ra build/publicapi $RPM_BUILD_ROOT%{_javadocdir}/%{name}
install -d build/publicapi docs/%{name}
%check
%if 0%{?runselftest}
# Note that this requires to have PostgreSQL properly configured; for this
# reason the testsuite is turned off by default (see org/postgresql/test/README)
test_log=test.log
# TODO: more reliable testing
ant test 2>&1 | tee "$test_log" || :
( test -f "$test_log" && ! grep FAILED "$test_log" )
%endif
%files -f .mfiles
%doc LICENSE README.md doc/*
%license LICENSE
%doc README.md
%{_javadir}/%{name}.jar
%{_javadir}/%{name}2.jar
%{_javadir}/%{name}2ee.jar
%{_javadir}/%{name}3.jar
%files parent-poms -f %parent_poms_builddir/.mfiles
%files javadoc
%doc LICENSE
%license LICENSE
%doc %{_javadocdir}/%{name}
%changelog
* Wed Jul 20 2016 Pavel Raiskup <praiskup@redhat.com> - 9.4.1209-1
- update to latest release version, thanks to Pavel Kajaba, Michael Simacek and
Vladimir Sitnikov for big help
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 9.4.1200-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

View File

@ -1 +1,2 @@
6feafab5bc01ae9854e3cd8532adad54 postgresql-jdbc-9.4-1200.src.tar.gz
c69ee412c0465529eb0c2f0d29b9e0a7 REL9.4.1209.tar.gz
c15959ae73c9afc52b77897b26216f97 REL1.0.8.tar.gz