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();) {