diff --git a/apache-ivy-2.4.0-jdk9.patch b/apache-ivy-2.4.0-jdk9.patch deleted file mode 100644 index 486e6a1..0000000 --- a/apache-ivy-2.4.0-jdk9.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- apache-ivy-2.3.0/build.properties 2012-04-02 23:11:30.000000000 +0200 -+++ apache-ivy-2.3.0/build.properties 2017-09-07 14:13:28.647597540 +0200 -@@ -42,7 +42,7 @@ - checkstyle.src.dir=${basedir}/src/etc/checkstyle - rat.report.dir=${reports.dir}/rat - --ivy.minimum.javaversion=1.5 -+ivy.minimum.javaversion=1.8 - debug.mode=on - ivy.install.version=1.4.1 - ---- apache-ivy-2.3.0/build.xml 2012-04-09 08:58:36.000000000 +0200 -+++ apache-ivy-2.3.0/build.xml 2017-09-07 14:46:13.128164218 +0200 -@@ -517,7 +517,7 @@ - - - -- -+ - - - diff --git a/apache-ivy-2.4.0-src.tar.gz b/apache-ivy-2.4.0-src.tar.gz deleted file mode 100644 index ea0453b..0000000 --- a/apache-ivy-2.4.0-src.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:202f08ca41f4bdf1c081aa8b2e531565be6c73e9e5e0d68137f454f14eb16ef6 -size 3616939 diff --git a/apache-ivy-2.5.0-src.tar.gz b/apache-ivy-2.5.0-src.tar.gz new file mode 100644 index 0000000..8d52cbc --- /dev/null +++ b/apache-ivy-2.5.0-src.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:109583a8d10b5d9a71c57c539719ca3648ebb8ca4af867976128e7fa657312b7 +size 2719181 diff --git a/apache-ivy-global-settings.patch b/apache-ivy-global-settings.patch index 3cb0fff..3b5af77 100644 --- a/apache-ivy-global-settings.patch +++ b/apache-ivy-global-settings.patch @@ -1,27 +1,11 @@ -From 27cf17a1eea310b8d75efc7fc9d4d733fffcbdc1 Mon Sep 17 00:00:00 2001 -From: Marian Koncek -Date: Fri, 19 Oct 2018 15:25:30 +0200 -Subject: [PATCH] Change global settings - ---- - src/java/org/apache/ivy/ant/IvyAntSettings.java | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/src/java/org/apache/ivy/ant/IvyAntSettings.java b/src/java/org/apache/ivy/ant/IvyAntSettings.java -index 660ebbe..85cf97f 100644 --- a/src/java/org/apache/ivy/ant/IvyAntSettings.java +++ b/src/java/org/apache/ivy/ant/IvyAntSettings.java -@@ -354,6 +354,10 @@ public class IvyAntSettings extends DataType { - break; - } - } -+ if (!file.exists() && task.getProject().getProperty("ivy.mode") != null) { -+ file = new File("/etc/ivy/ivysettings.xml"); -+ task.log("searching settings file: trying " + file, Project.MSG_VERBOSE); -+ } - if (!file.exists()) { - file = null; - if (Boolean.valueOf(getProject().getProperty("ivy.14.compatible")).booleanValue()) { --- -2.17.2 - +@@ -345,7 +345,7 @@ public class IvyAntSettings extends DataType { + File[] settingsLocations = new File[] { + new File(getProject().getBaseDir(), settingsFileName), + new File(getProject().getBaseDir(), "ivyconf.xml"), new File(settingsFileName), +- new File("ivyconf.xml")}; ++ new File("ivyconf.xml"), new File("/etc/ivy/ivysettings.xml")}; + for (File settingsFile : settingsLocations) { + task.log("searching settings file: trying " + settingsFile, Project.MSG_VERBOSE); + if (settingsFile.exists()) { diff --git a/apache-ivy.changes b/apache-ivy.changes index 446eb22..0f68b76 100644 --- a/apache-ivy.changes +++ b/apache-ivy.changes @@ -1,3 +1,19 @@ +------------------------------------------------------------------- +Sat Mar 19 13:22:59 UTC 2022 - Fridrich Strba + +- Upgrade to upstream version 2.5.0 +- Force building with JDK < 14, since it imports statically a class + removed in JDK14 +- Change dependencies for the httpclient to httpcomponents-client + instead of apache-commons-httpclient +- Modified patch: + * apache-ivy-global-settings.patch + + implement the same functionality with a bit of less code +- Removed patches: + * apache-ivy-2.4.0-jdk9.patch + * port-to-bc-1.52.patch + + not needed with this version + ------------------------------------------------------------------- Tue Dec 10 22:39:53 UTC 2019 - Fridrich Strba diff --git a/apache-ivy.spec b/apache-ivy.spec index 254a771..88464c1 100644 --- a/apache-ivy.spec +++ b/apache-ivy.spec @@ -1,7 +1,7 @@ # # spec file for package apache-ivy # -# Copyright (c) 2019 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,40 +16,46 @@ # -%bcond_without ssh +%bcond_without httpclient +%bcond_without oro +%bcond_without sftp %bcond_without vfs Name: apache-ivy -Version: 2.4.0 +Version: 2.5.0 Release: 0 Summary: Java-based dependency manager License: Apache-2.0 Group: Development/Tools/Building -URL: http://ant.apache.org/ivy/ -Source0: %{name}-%{version}-src.tar.gz +URL: https://ant.apache.org/ivy/ +Source0: https://archive.apache.org/dist/ant/ivy/%{version}/%{name}-%{version}-src.tar.gz Source1: ivy.1 -Source2: http://repo1.maven.org/maven2/org/apache/ivy/ivy/%{version}/ivy-%{version}.pom -Patch0: apache-ivy-2.4.0-jdk9.patch -Patch1: apache-ivy-global-settings.patch -Patch2: port-to-bc-1.52.patch +Source2: https://repo1.maven.org/maven2/org/apache/ivy/ivy/%{version}/ivy-%{version}.pom +Patch0: apache-ivy-global-settings.patch BuildRequires: ant BuildRequires: bouncycastle-pg -BuildRequires: commons-httpclient BuildRequires: fdupes BuildRequires: java-devel >= 1.8 BuildRequires: javapackages-local BuildRequires: jsch BuildRequires: oro +BuildConflicts: java-devel >= 14 Provides: ivy = %{version}-%{release} Obsoletes: ivy < %{version}-%{release} BuildArch: noarch %if %{with vfs} BuildRequires: apache-commons-vfs2 %endif -%if %{with ssh} +%if %{with sftp} BuildRequires: jsch-agent-proxy-connector-factory BuildRequires: jsch-agent-proxy-core BuildRequires: jsch-agent-proxy-jsch %endif +%if %{with httpclient} +BuildRequires: httpcomponents-client +%endif +%if %{with oro} +BuildRequires: oro +%endif %description Apache Ivy is a tool for managing (recording, tracking, resolving and @@ -69,50 +75,74 @@ JavaDoc documentation for %{name} %prep %setup -q %patch0 -p1 -%patch1 -p1 -%patch2 -p1 cp %{SOURCE2} pom.xml %pom_remove_parent . -# Remove prebuilt documentation -rm -rf doc build/doc +%pom_remove_dep :jsch.agentproxy -# Port from commons-vfs 1.x to 2.x -%if %{with vfs} -sed -i "s/commons.vfs/&2/" {src,test}/java/org/apache/ivy/plugins/repository/vfs/* -%else -sed -i /commons-vfs/d ivy.xml -sed '/vfs.*=.*org.apache.ivy.plugins.resolver.VfsResolver/d' -i \ - src/java/org/apache/ivy/core/settings/typedef.properties -rm -rf src/java/org/apache/ivy/plugins/repository/vfs -rm -rf src/java/org/apache/ivy/plugins/resolver/VfsResolver.java +%if %{without httpclient} +%pom_remove_dep :httpclient +rm src/java/org/apache/ivy/util/url/HttpClientHandler.java %endif -%if %{without ssh} -rm -r src/java/org/apache/ivy/plugins/repository/{ssh,sftp} -rm src/java/org/apache/ivy/plugins/resolver/*{Ssh,SFTP}*.java +%if %{without oro} +%pom_remove_dep :oro +rm src/java/org/apache/ivy/plugins/matcher/GlobPatternMatcher.java +%endif + +%if %{without vfs} +%pom_remove_dep :commons-vfs2 +rm src/java/org/apache/ivy/plugins/repository/vfs/VfsRepository.java +rm src/java/org/apache/ivy/plugins/repository/vfs/VfsResource.java +rm src/java/org/apache/ivy/plugins/repository/vfs/ivy_vfs.xml +rm src/java/org/apache/ivy/plugins/resolver/VfsResolver.java +%endif + +%if %{without sftp} +%pom_remove_dep :jsch +%pom_remove_dep :jsch.agentproxy.connector-factory +%pom_remove_dep :jsch.agentproxy.jsch +rm src/java/org/apache/ivy/plugins/repository/sftp/SFTPRepository.java +rm src/java/org/apache/ivy/plugins/repository/sftp/SFTPResource.java +rm src/java/org/apache/ivy/plugins/repository/ssh/AbstractSshBasedRepository.java +rm src/java/org/apache/ivy/plugins/repository/ssh/RemoteScpException.java +rm src/java/org/apache/ivy/plugins/repository/ssh/Scp.java +rm src/java/org/apache/ivy/plugins/repository/ssh/SshCache.java +rm src/java/org/apache/ivy/plugins/repository/ssh/SshRepository.java +rm src/java/org/apache/ivy/plugins/repository/ssh/SshResource.java +rm src/java/org/apache/ivy/plugins/resolver/AbstractSshBasedResolver.java +rm src/java/org/apache/ivy/plugins/resolver/SFTPResolver.java +rm src/java/org/apache/ivy/plugins/resolver/SshResolver.java %endif %build # Craft class path mkdir -p lib -build-jar-repository lib ant ant/ant-nodeps oro jsch commons-httpclient bcprov bcpg -export CLASSPATH=$(build-classpath ant ant/ant-nodeps oro jsch commons-httpclient bcprov bcpg) +build-jar-repository -s lib ant ant/ant-nodeps jsch bcprov bcpg +export CLASSPATH=$(build-classpath ant ant/ant-nodeps jsch httpcomponents bcprov bcpg) +%if %{with httpclient} +build-jar-repository lib httpcomponents +export CLASSPATH=${CLASSPATH}:$(build-classpath httpcomponents) +%endif +%if %{with oro} +build-jar-repository lib oro +export CLASSPATH=${CLASSPATH}:$(build-classpath oro) +%endif %if %{with vfs} build-jar-repository lib commons-vfs2 export CLASSPATH=${CLASSPATH}:$(build-classpath commons-vfs2) %endif -%if %{with ssh} -build-jar-repository lib jsch.agentproxy.core \ +%if %{with sftp} +build-jar-repository -s lib jsch.agentproxy.core \ jsch.agentproxy.connector-factory \ jsch.agentproxy.jsch export CLASSPATH=${CLASSPATH}:$(build-classpath jsch.agentproxy.core jsch.agentproxy.connector-factory jsch.agentproxy.jsch) %endif # Build -ant -Dtarget.ivy.version=%{version} -Dbundle.version=%{version} /localivy /offline jar javadoc +%{ant} -v -Dtarget.ivy.version=%{version} -Dbundle.version=%{version} /localivy /offline jar javadoc %install # Code @@ -127,7 +157,7 @@ install -m 0644 pom.xml %{buildroot}/%{_mavenpomdir}/JPP-ivy.pom # API Documentation install -d %{buildroot}%{_javadocdir}/%{name} -cp -rp build/doc/reports/api/. %{buildroot}%{_javadocdir}/%{name} +cp -rp build/reports/api/. %{buildroot}%{_javadocdir}/%{name} %fdupes -s %{buildroot}%{_javadocdir}/%{name} # Command line script @@ -143,7 +173,7 @@ install %{SOURCE1} %{buildroot}%{_mandir}/man1/ivy.1 %files -f .mfiles %license LICENSE NOTICE -%doc README +%doc README.adoc %config %{_sysconfdir}/ant.d/%{name} %{_javadir}/%{name} %attr(755,root,root) %{_bindir}/* diff --git a/ivy-2.4.0.pom b/ivy-2.5.0.pom similarity index 68% rename from ivy-2.4.0.pom rename to ivy-2.5.0.pom index 81116e1..e252be7 100644 --- a/ivy-2.4.0.pom +++ b/ivy-2.5.0.pom @@ -8,7 +8,7 @@ "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an @@ -28,13 +28,13 @@ org.apache.ivy ivy - 2.4.0 + 2.5.0 Apache Ivy http://ant.apache.org/ivy/ - scm:svn:http://svn.apache.org/repos/asf/ant/ivy/core/trunk/ + scm:svn:https://svn.apache.org/repos/asf/ant/ivy/core/trunk/ scm:svn:https://svn.apache.org/repos/asf/ant/ivy/core/trunk - http://svn.apache.org/repos/asf/ant/ivy/core/trunk + https://svn.apache.org/repos/asf/ant/ivy/core/trunk @@ -42,43 +42,31 @@ dev-subscribe@ant.apache.org dev-unsubscribe@ant.apache.org dev@ant.apache.org - http://mail-archives.apache.org/mod_mbox/ant-dev + https://mail-archives.apache.org/mod_mbox/ant-dev Ivy Users List ivy-user-subscribe@ant.apache.org ivy-user-unsubscribe@ant.apache.org ivy-user@ant.apache.org - http://mail-archives.apache.org/mod_mbox/ant-ivy-user + https://mail-archives.apache.org/mod_mbox/ant-ivy-user jira - http://issues.apache.org/jira/browse/IVY + https://issues.apache.org/jira/browse/IVY org.apache.ant ant - 1.7.1 + 1.9.14 true - org.apache.ant - ant-nodeps - 1.7.1 - true - - - org.apache.ant - ant-trax - 1.7.1 - true - - - commons-httpclient - commons-httpclient - 3.0 + org.apache.httpcomponents + httpclient + 4.5.9 true @@ -88,63 +76,69 @@ true - commons-vfs - commons-vfs - 1.0 + org.apache.commons + commons-vfs2 + 2.2 true com.jcraft jsch - 0.1.50 + 0.1.55 true com.jcraft jsch.agentproxy - 0.0.6 + 0.0.9 true com.jcraft jsch.agentproxy.connector-factory - 0.0.6 + 0.0.9 true com.jcraft jsch.agentproxy.jsch - 0.0.6 + 0.0.9 true org.bouncycastle - bcpg-jdk14 - 1.45 + bcpg-jdk15on + 1.62 true org.bouncycastle - bcprov-jdk14 - 1.45 + bcprov-jdk15on + 1.62 true junit junit - 3.8.2 + 4.12 test - commons-lang - commons-lang - 2.6 + org.hamcrest + hamcrest-core + 1.3 + test + + + org.hamcrest + hamcrest-library + 1.3 test org.apache.ant ant-testutil - 1.7.0 + 1.9.14 test @@ -154,9 +148,33 @@ - ant + org.apache.ant ant-launcher - 1.6.2 + 1.9.14 + test + + + * + * + + + + + org.apache.ant + ant-junit + 1.9.14 + test + + + * + * + + + + + org.apache.ant + ant-junit4 + 1.9.14 test @@ -178,16 +196,16 @@ - xerces - xercesImpl - 2.6.2 - test - - - xerces - xmlParserAPIs - 2.6.2 + xmlunit + xmlunit + 1.6 test + + + * + * + + diff --git a/port-to-bc-1.52.patch b/port-to-bc-1.52.patch deleted file mode 100644 index 7b73be3..0000000 --- a/port-to-bc-1.52.patch +++ /dev/null @@ -1,93 +0,0 @@ -diff --git a/ivy.xml b/ivy.xml -index d448897..7d8896a 100644 ---- a/ivy.xml -+++ b/ivy.xml -@@ -50,8 +50,8 @@ - - - -- -- -+ -+ - - - -diff --git a/src/java/org/apache/ivy/plugins/signer/bouncycastle/OpenPGPSignatureGenerator.java b/src/java/org/apache/ivy/plugins/signer/bouncycastle/OpenPGPSignatureGenerator.java -index af7beae..bec8ae4 100644 ---- a/src/java/org/apache/ivy/plugins/signer/bouncycastle/OpenPGPSignatureGenerator.java -+++ b/src/java/org/apache/ivy/plugins/signer/bouncycastle/OpenPGPSignatureGenerator.java -@@ -23,16 +23,18 @@ import java.io.FileOutputStream; - import java.io.IOException; - import java.io.InputStream; - import java.io.OutputStream; --import java.security.NoSuchAlgorithmException; --import java.security.NoSuchProviderException; - import java.security.Security; --import java.security.SignatureException; - import java.util.Iterator; - - import org.apache.ivy.plugins.signer.SignatureGenerator; - import org.bouncycastle.bcpg.ArmoredOutputStream; - import org.bouncycastle.bcpg.BCPGOutputStream; - import org.bouncycastle.jce.provider.BouncyCastleProvider; -+import org.bouncycastle.openpgp.operator.PBESecretKeyDecryptor; -+import org.bouncycastle.openpgp.operator.bc.BcKeyFingerprintCalculator; -+import org.bouncycastle.openpgp.operator.bc.BcPBESecretKeyDecryptorBuilder; -+import org.bouncycastle.openpgp.operator.bc.BcPGPContentSignerBuilder; -+import org.bouncycastle.openpgp.operator.bc.BcPGPDigestCalculatorProvider; - import org.bouncycastle.openpgp.PGPException; - import org.bouncycastle.openpgp.PGPPrivateKey; - import org.bouncycastle.openpgp.PGPSecretKey; -@@ -101,11 +103,13 @@ public class OpenPGPSignatureGenerator implements SignatureGenerator { - pgpSec = readSecretKey(keyIn); - } - -- PGPPrivateKey pgpPrivKey = pgpSec.extractPrivateKey(password.toCharArray(), -- BouncyCastleProvider.PROVIDER_NAME); -- PGPSignatureGenerator sGen = new PGPSignatureGenerator(pgpSec.getPublicKey() -- .getAlgorithm(), PGPUtil.SHA1, BouncyCastleProvider.PROVIDER_NAME); -- sGen.initSign(PGPSignature.BINARY_DOCUMENT, pgpPrivKey); -+ PBESecretKeyDecryptor decryptor = new BcPBESecretKeyDecryptorBuilder( -+ new BcPGPDigestCalculatorProvider()).build(password.toCharArray()); -+ PGPPrivateKey pgpPrivKey = pgpSec.extractPrivateKey(decryptor); -+ PGPSignatureGenerator sGen = new PGPSignatureGenerator( -+ new BcPGPContentSignerBuilder(pgpSec.getPublicKey() -+ .getAlgorithm(), PGPUtil.SHA1)); -+ sGen.init(PGPSignature.BINARY_DOCUMENT, pgpPrivKey); - - in = new FileInputStream(src); - out = new BCPGOutputStream(new ArmoredOutputStream(new FileOutputStream(dest))); -@@ -116,22 +120,10 @@ public class OpenPGPSignatureGenerator implements SignatureGenerator { - } - - sGen.generate().encode(out); -- } catch (SignatureException e) { -- IOException ioexc = new IOException(); -- ioexc.initCause(e); -- throw ioexc; - } catch (PGPException e) { - IOException ioexc = new IOException(); - ioexc.initCause(e); - throw ioexc; -- } catch (NoSuchAlgorithmException e) { -- IOException ioexc = new IOException(); -- ioexc.initCause(e); -- throw ioexc; -- } catch (NoSuchProviderException e) { -- IOException ioexc = new IOException(); -- ioexc.initCause(e); -- throw ioexc; - } finally { - if (out != null) { - try { -@@ -156,7 +148,8 @@ public class OpenPGPSignatureGenerator implements SignatureGenerator { - - private PGPSecretKey readSecretKey(InputStream in) throws IOException, PGPException { - in = PGPUtil.getDecoderStream(in); -- PGPSecretKeyRingCollection pgpSec = new PGPSecretKeyRingCollection(in); -+ PGPSecretKeyRingCollection pgpSec = new PGPSecretKeyRingCollection(in, -+ new BcKeyFingerprintCalculator()); - - PGPSecretKey key = null; - for (Iterator it = pgpSec.getKeyRings(); key == null && it.hasNext();) {