mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-07-25 08:58:27 -07:00
dev-java/jdbc-postgresql: Version bump
Test suite built successfully; new test dependency dev-java/xml-commons, sigh Changelog: https://jdbc.postgresql.org/documentation/changelog.html#version_9.4-1204 Package-Manager: portage-2.2.23
This commit is contained in:
@@ -5,3 +5,4 @@ DIST postgresql-jdbc-9.2-1004.src.tar.gz 1842921 SHA256 eeadff0d830cd19a4f52a948
|
||||
DIST postgresql-jdbc-9.3-1100.src.tar.gz 1852465 SHA256 e6be53d4cda04735f5f147d2296acb9a22630b062fa3a4ef894073f23efc6d55 SHA512 43968a62f9443739721016ede186b2f41fa6db2d1ef319cd65059f8715e90eda7c7f568995b293578c39e04d43085cfdfece587500f99ed1a49964c12d8c747a WHIRLPOOL 9bf218936a00df00fb4b4f6ed6c3bbe06cdcfcd14d306a4f7bf3073e83f1c51bc85c0a061c2e04790bcebf9183b8aabd056522fa5d18b0734a4aec34b3ab14a0
|
||||
DIST postgresql-jdbc-9.4-1201.src.tar.gz 1909810 SHA256 96b079611038c0ffff6bb8d22d51ada0cb82c8eb3bd3a9294055963cc638fda7 SHA512 6fd543e325de931ee6c33fe4b1daf53d7baa91061afc9dc1687c4b202430cbcf2a7e3fb047f9e1d88f4d39b8f4f85a98f2b930205ceba414212dfcbaaf108883 WHIRLPOOL 3245227c875d44d82109a5700e06ed3d5bcc75469cd9333c98a7b396b2db1e2ac1da002db19f632afed262929cd7e9a3d8f93d2b24321e103b815383f8fc0a05
|
||||
DIST postgresql-jdbc-9.4-1203.src.tar.gz 1909858 SHA256 ce2fd309778d9453f012fa85c99071b42cbd62f3ce06d53a4b8aaeb53ac51322 SHA512 9ac059714fb411cf52b1a03ce4991179cc032f17060e733c454f0e41bd8da64c64e718ec131a7d875e334719fd572452c77dbed9ba119eca6cf2f066a3511013 WHIRLPOOL c8581872dfe1495deef2335def51e54d7094c26c6034f26220a63bb657c452181ba996fd6def975d7532dc87a7dba49dd8111c07f9c8e9823917988fd36c9609
|
||||
DIST postgresql-jdbc-9.4-1204.src.tar.gz 2018904 SHA256 c22862ce505c501115e9f72ae10cd8b5a02ff7f8c7c2f1475f4035b3c85f170b SHA512 659e60fe3ea54f87396d9f32521799d78381a87530c167e903820f3990facc04f3e145685a9c40d74ba3167a404c144fefa781568b9cea2910399cfe2632f25e WHIRLPOOL e5703de1053b5136656c496b4d9518b8044d6a27d431d054d1c48101364b6a999cb4c97295aecca99edf8cb80bf3b2a4b60b740901b9c3f15340eb51197e9cc1
|
||||
|
||||
@@ -0,0 +1,138 @@
|
||||
--- a/org/postgresql/core/v3/ConnectionFactoryImpl.java 2015-10-09 20:55:53.000000000 +0200
|
||||
+++ b/org/postgresql/core/v3/ConnectionFactoryImpl.java 2015-10-14 20:42:48.816753341 +0200
|
||||
@@ -32,7 +32,6 @@
|
||||
import org.postgresql.hostchooser.HostChooserFactory;
|
||||
import org.postgresql.hostchooser.HostRequirement;
|
||||
import org.postgresql.hostchooser.HostStatus;
|
||||
-import org.postgresql.sspi.SSPIClient;
|
||||
import org.postgresql.util.GT;
|
||||
import org.postgresql.util.HostSpec;
|
||||
import org.postgresql.util.MD5Digest;
|
||||
@@ -394,11 +393,7 @@
|
||||
// or an authentication request
|
||||
|
||||
String password = PGProperty.PASSWORD.get(info);
|
||||
-
|
||||
- /* SSPI negotiation state, if used */
|
||||
- SSPIClient sspiClient = null;
|
||||
|
||||
- try {
|
||||
authloop:
|
||||
while (true)
|
||||
{
|
||||
@@ -514,88 +509,16 @@
|
||||
case AUTH_REQ_SSPI:
|
||||
/*
|
||||
* Use GSSAPI if requested on all platforms, via JSSE.
|
||||
- *
|
||||
- * For SSPI auth requests, if we're on Windows attempt native SSPI
|
||||
- * authentication if available, and if not disabled by setting a
|
||||
- * kerberosServerName. On other platforms, attempt JSSE GSSAPI
|
||||
- * negotiation with the SSPI server.
|
||||
- *
|
||||
- * Note that this is slightly different to libpq, which uses SSPI
|
||||
- * for GSSAPI where supported. We prefer to use the existing Java
|
||||
- * JSSE Kerberos support rather than going to native (via JNA) calls
|
||||
- * where possible, so that JSSE system properties etc continue
|
||||
- * to work normally.
|
||||
- *
|
||||
- * Note that while SSPI is often Kerberos-based there's no guarantee
|
||||
- * it will be; it may be NTLM or anything else. If the client responds
|
||||
- * to an SSPI request via GSSAPI and the other end isn't using Kerberos
|
||||
- * for SSPI then authentication will fail.
|
||||
*/
|
||||
- final String gsslib = PGProperty.GSS_LIB.get(info);
|
||||
- final boolean usespnego = PGProperty.USE_SPNEGO.getBoolean(info);
|
||||
-
|
||||
- boolean useSSPI = false;
|
||||
+ org.postgresql.gss.MakeGSS.authenticate(pgStream, host,
|
||||
+ user, password,
|
||||
+ PGProperty.JAAS_APPLICATION_NAME.get(info),
|
||||
+ PGProperty.KERBEROS_SERVER_NAME.get(info),
|
||||
+ logger,
|
||||
+ PGProperty.USE_SPNEGO.getBoolean(info));
|
||||
+
|
||||
+ break;
|
||||
|
||||
- /*
|
||||
- * Use SSPI if we're in auto mode on windows and have a
|
||||
- * request for SSPI auth, or if it's forced. Otherwise
|
||||
- * use gssapi. If the user has specified a Kerberos server
|
||||
- * name we'll always use JSSE GSSAPI.
|
||||
- */
|
||||
- if (gsslib.equals("gssapi"))
|
||||
- logger.debug("Using JSSE GSSAPI, param gsslib=gssapi");
|
||||
- else if (areq == AUTH_REQ_GSS && !gsslib.equals("sspi"))
|
||||
- logger.debug("Using JSSE GSSAPI, gssapi requested by server and gsslib=sspi not forced");
|
||||
- else
|
||||
- {
|
||||
- /* Determine if SSPI is supported by the client */
|
||||
- sspiClient = new SSPIClient(pgStream,
|
||||
- PGProperty.SSPI_SERVICE_CLASS.get(info),
|
||||
- /* Use negotiation for SSPI, or if explicitly requested for GSS */
|
||||
- areq == AUTH_REQ_SSPI || (areq == AUTH_REQ_GSS && usespnego),
|
||||
- logger);
|
||||
-
|
||||
- useSSPI = sspiClient.isSSPISupported();
|
||||
- logger.debug("SSPI support detected: " + useSSPI);
|
||||
-
|
||||
- if (!useSSPI) {
|
||||
- /* No need to dispose() if no SSPI used */
|
||||
- sspiClient = null;
|
||||
-
|
||||
- if (gsslib.equals("sspi"))
|
||||
- throw new PSQLException("SSPI forced with gsslib=sspi, but SSPI not available; set loglevel=2 for details",
|
||||
- PSQLState.CONNECTION_UNABLE_TO_CONNECT);
|
||||
- }
|
||||
-
|
||||
- logger.debug("Using SSPI: " + useSSPI + ", gsslib="+gsslib+" and SSPI support detected");
|
||||
- }
|
||||
-
|
||||
- if (useSSPI)
|
||||
- {
|
||||
- /* SSPI requested and detected as available */
|
||||
- sspiClient.startSSPI();
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- /* Use JGSS's GSSAPI for this request */
|
||||
- org.postgresql.gss.MakeGSS.authenticate(pgStream, host,
|
||||
- user, password,
|
||||
- PGProperty.JAAS_APPLICATION_NAME.get(info),
|
||||
- PGProperty.KERBEROS_SERVER_NAME.get(info),
|
||||
- logger,
|
||||
- usespnego);
|
||||
- }
|
||||
-
|
||||
- break;
|
||||
-
|
||||
- case AUTH_REQ_GSS_CONTINUE:
|
||||
- /*
|
||||
- * Only called for SSPI, as GSS is handled by an inner loop
|
||||
- * in MakeGSS.
|
||||
- */
|
||||
- sspiClient.continueSSPI(l_msgLen - 8);
|
||||
- break;
|
||||
-
|
||||
case AUTH_REQ_OK:
|
||||
/* Cleanup after successful authentication */
|
||||
if (logger.logDebug())
|
||||
@@ -616,18 +539,6 @@
|
||||
throw new PSQLException(GT.tr("Protocol error. Session setup failed."), PSQLState.PROTOCOL_VIOLATION);
|
||||
}
|
||||
}
|
||||
- } finally {
|
||||
- /* Cleanup after successful or failed authentication attempts */
|
||||
- if (sspiClient != null)
|
||||
- {
|
||||
- try {
|
||||
- sspiClient.dispose();
|
||||
- } catch (RuntimeException ex) {
|
||||
- logger.log("Unexpected error during SSPI context disposal", ex);
|
||||
- }
|
||||
-
|
||||
- }
|
||||
- }
|
||||
|
||||
}
|
||||
|
||||
103
dev-java/jdbc-postgresql/jdbc-postgresql-9.4_p1204.ebuild
Normal file
103
dev-java/jdbc-postgresql/jdbc-postgresql-9.4_p1204.ebuild
Normal file
@@ -0,0 +1,103 @@
|
||||
# Copyright 1999-2015 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Id$
|
||||
|
||||
EAPI="5"
|
||||
|
||||
JAVA_PKG_IUSE="doc source"
|
||||
|
||||
inherit eutils java-pkg-2 java-ant-2
|
||||
|
||||
MY_PN="postgresql-jdbc"
|
||||
MY_PV="${PV/_p/-}"
|
||||
MY_P="${MY_PN}-${MY_PV}.src"
|
||||
|
||||
DESCRIPTION="JDBC Driver for PostgreSQL"
|
||||
SRC_URI="http://jdbc.postgresql.org/download/${MY_P}.tar.gz"
|
||||
HOMEPAGE="http://jdbc.postgresql.org/"
|
||||
|
||||
LICENSE="POSTGRESQL"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
|
||||
IUSE="test"
|
||||
|
||||
DEPEND="
|
||||
>=virtual/jdk-1.6
|
||||
doc? (
|
||||
dev-libs/libxslt
|
||||
app-text/docbook-xsl-stylesheets
|
||||
)
|
||||
test? (
|
||||
>=dev-db/postgresql-9.3[server]
|
||||
dev-java/ant-junit
|
||||
dev-java/junit:4
|
||||
dev-java/xml-commons
|
||||
)"
|
||||
RDEPEND=">=virtual/jre-1.6"
|
||||
|
||||
RESTRICT="test" # Requires external postgresql server setup
|
||||
|
||||
S="${WORKDIR}/postgresql-jdbc-${MY_PV}.src"
|
||||
|
||||
java_prepare() {
|
||||
# Strip build.xml of maven deps
|
||||
sed -i -e '/<classpath.*dependency\.compile\.classpath/c\' build.xml || die
|
||||
sed -i -e '/<classpath.*dependency\.runtime\.classpath/c\' build.xml || die
|
||||
sed -i -e '/<classpath.*dependency\.test\.classpath/c\' build.xml || die
|
||||
sed -i -e '/<target name="artifact-version"/,/<[/]target>/{s/depends="maven-dependencies"//}' build.xml || die
|
||||
sed -i -e '/<target name="compile"/ s/,maven-dependencies//' build.xml || die
|
||||
|
||||
# Remove SSPI, it pulls in Waffle-JNA and is only used on Windows
|
||||
sed -i -e '/<include.*sspi/c\' build.xml || die
|
||||
rm -vrf org/postgresql/sspi || die "Error removing sspi"
|
||||
epatch "${FILESDIR}"/${PN}-9.4_p1204-remove-sspi.patch
|
||||
|
||||
# FIXME @someone who cares: enable through osgi flag?
|
||||
sed -i -e '/<include.*osgi/c\' build.xml || die
|
||||
sed -i -e '/<test.*osgi/c\' build.xml || die
|
||||
rm -vrf org/postgresql/osgi || die "Error removing osgi"
|
||||
rm -vrf org/postgresql/test/osgi || die "Error removing osgi tests"
|
||||
epatch "${FILESDIR}"/${PN}-9.4_p1201-remove-osgi.patch
|
||||
|
||||
java-pkg_clean
|
||||
}
|
||||
|
||||
JAVA_ANT_REWRITE_CLASSPATH="yes"
|
||||
EANT_DOC_TARGET="publicapi"
|
||||
|
||||
src_compile() {
|
||||
EANT_BUILD_TARGET="release-version jar"
|
||||
java-pkg-2_src_compile
|
||||
|
||||
# There is a task that creates this doc but I didn't find a way how to use system catalog
|
||||
# to lookup the stylesheet so the 'doc' target is rewritten here to use system call instead.
|
||||
if use doc; then
|
||||
mkdir -p "${S}/build/doc" || die
|
||||
xsltproc -o "${S}/build/doc/pgjdbc.html" http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl \
|
||||
"${S}/doc/pgjdbc.xml" || die
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
einfo "In order to run the tests successfully, you have to have:"
|
||||
einfo "1) PostgreSQL server running"
|
||||
einfo "2) database 'test' defined with user 'test' with password 'test'"
|
||||
einfo " as owner of the database"
|
||||
einfo "3) plpgsql support in the 'test' database"
|
||||
einfo
|
||||
einfo "You can find a general info on how to perform these steps at"
|
||||
einfo "https://wiki.gentoo.org/wiki/PostgreSQL"
|
||||
|
||||
ANT_TASKS="ant-junit" eant test -Dgentoo.classpath=$(java-pkg_getjars --build-only "junit-4,xml-commons")
|
||||
}
|
||||
|
||||
src_install() {
|
||||
java-pkg_newjar build/jars/postgresql*.jar jdbc-postgresql.jar
|
||||
|
||||
if use doc ; then
|
||||
java-pkg_dojavadoc build/publicapi
|
||||
dohtml build/doc/pgjdbc.html
|
||||
fi
|
||||
|
||||
use source && java-pkg_dosrc org
|
||||
}
|
||||
Reference in New Issue
Block a user