Package init
This commit is contained in:
parent
722f8041ea
commit
5a51e372c2
93
0001-Update-bouncycastle-to-1.52.patch
Normal file
93
0001-Update-bouncycastle-to-1.52.patch
Normal file
@ -0,0 +1,93 @@
|
||||
diff --git a/ivy.xml b/ivy.xml
|
||||
index d448897..7d8896a 100644
|
||||
--- a/ivy.xml
|
||||
+++ b/ivy.xml
|
||||
@@ -50,8 +50,8 @@
|
||||
<dependency org="com.jcraft" name="jsch.agentproxy" rev="0.0.6" conf="default,sftp->default"/>
|
||||
<dependency org="com.jcraft" name="jsch.agentproxy.connector-factory" rev="0.0.6" conf="default,sftp->default"/>
|
||||
<dependency org="com.jcraft" name="jsch.agentproxy.jsch" rev="0.0.6" conf="default,sftp->default"/>
|
||||
- <dependency org="org.bouncycastle" name="bcpg-jdk14" rev="1.45" conf="default"/>
|
||||
- <dependency org="org.bouncycastle" name="bcprov-jdk14" rev="1.45" conf="default"/>
|
||||
+ <dependency org="org.bouncycastle" name="bcpg-jdk15on" rev="1.52" conf="default"/>
|
||||
+ <dependency org="org.bouncycastle" name="bcprov-jdk15on" rev="1.52" conf="default"/>
|
||||
|
||||
<!-- Test dependencies -->
|
||||
<dependency org="junit" name="junit" rev="3.8.2" conf="test->default"/>
|
||||
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();) {
|
||||
BIN
apache-ivy-2.4.0-src.tar.gz
Normal file
BIN
apache-ivy-2.4.0-src.tar.gz
Normal file
Binary file not shown.
63
apache-ivy.spec
Normal file
63
apache-ivy.spec
Normal file
@ -0,0 +1,63 @@
|
||||
Name: apache-ivy
|
||||
Version: 2.4.0
|
||||
Release: 16
|
||||
Summary: Java-based dependency manager
|
||||
License: ASL 2.0
|
||||
URL: https://ant.apache.org/ivy/
|
||||
Source0: http://mirrors.tuna.tsinghua.edu.cn/apache//ant/ivy/%{version}/%{name}-%{version}-src.tar.gz
|
||||
|
||||
Patch0: 0001-Update-bouncycastle-to-1.52.patch
|
||||
|
||||
BuildArch: noarch
|
||||
BuildRequires: ant ant-contrib ant-testutil apache-commons-lang jakarta-commons-httpclient jsch
|
||||
BuildRequires: jakarta-oro apache-commons-parent sonatype-oss-parent apache-parent ivy-local >= 4
|
||||
BuildRequires: jsch-agent-proxy-jsch jsch-agent-proxy-core jsch-agent-proxy-connector-factory
|
||||
BuildRequires: apache-commons-vfs bouncycastle bouncycastle-pg
|
||||
|
||||
Provides: %{name}-javadoc = %{version}-%{release}
|
||||
Obsoletes: %{name}-javadoc < %{version}-%{release}
|
||||
|
||||
%description
|
||||
Apache Ivy is a popular dependency manager focusing on flexibility and simplicity.
|
||||
|
||||
%package_help
|
||||
|
||||
%prep
|
||||
%autosetup -n %{name}-%{version} -p1
|
||||
|
||||
sed -i 's:/etc/ivy/:%{_sysconfdir}/ivy/:' src/java/org/apache/ivy/ant/IvyAntSettings.java
|
||||
|
||||
%mvn_alias : jayasoft:ivy
|
||||
%mvn_file : %{name}/ivy ivy
|
||||
|
||||
sed -i s/ant-trax/ant/ ivy.xml
|
||||
sed -i /bouncycastle/s/jdk14/jdk16/ ivy.xml
|
||||
sed -i "s/commons.vfs/&2/" src/java/org/apache/ivy/plugins/repository/vfs/*
|
||||
sed -i /ivy:publish/s/local/xmvn/ build.xml
|
||||
|
||||
%build
|
||||
%ant -Divy.mode=local -Dtarget.ivy.bundle.version=%{version} -Dtarget.ivy.bundle.version.qualifier= -Dtarget.ivy.version=%{version} jar javadoc publish-local
|
||||
|
||||
%install
|
||||
%mvn_install -J build/doc/reports/api
|
||||
|
||||
mkdir -p %{buildroot}%{_sysconfdir}/ant.d
|
||||
echo "apache-ivy/ivy" > %{buildroot}%{_sysconfdir}/ant.d/%{name}
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%license LICENSE
|
||||
%{_sysconfdir}/ant.d/apache-ivy
|
||||
%{_datadir}/java/*
|
||||
%{_datadir}/ivy-xmls
|
||||
%{_datadir}/javadoc/*
|
||||
%{_datadir}/maven-poms/*
|
||||
%{_datadir}/maven-metadata/*
|
||||
|
||||
%files help
|
||||
%defattr(-,root,root)
|
||||
%doc README NOTICE
|
||||
|
||||
%changelog
|
||||
* Thu Jan 16 2020 Jiangping Hu <hujp1985@foxmail.com> - 2.4.0-16
|
||||
- Package init
|
||||
Loading…
x
Reference in New Issue
Block a user