Fridrich Strba 2023-05-30 16:09:21 +00:00 committed by Git OBS Bridge
parent b5bab1f0bf
commit b8f023dd78
9 changed files with 334 additions and 189 deletions

View File

@ -1,13 +0,0 @@
--- jsch-0.1.54/build.xml 2016-08-30 09:06:39.000000000 +0200
+++ jsch-0.1.54/build.xml 2017-09-08 10:27:56.694518991 +0200
@@ -35,8 +35,8 @@
</available>
<javac srcdir="${src}"
destdir="${build}"
- target="1.4"
- source="1.4"
+ target="1.8"
+ source="1.8"
debug="${javac.debug}">
<classpath refid="lib.path.ref"/>
<exclude name="com/jcraft/jsch/jcraft/Compression.java"

View File

@ -1,111 +0,0 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<packaging>jar</packaging>
<version>0.1.55</version>
<name>JSch</name>
<url>http://www.jcraft.com/jsch/</url>
<description>JSch is a pure Java implementation of SSH2</description>
<organization>
<name>JCraft,Inc.</name>
<url>http://www.jcraft.com/</url>
</organization>
<scm>
<connection>scm:git:http://git.jcraft.com/jsch.git</connection>
<developerConnection>scm:git:http://git.jcraft.com/jsch.git</developerConnection>
<url>http://git.jcraft.com/jsch.git</url>
</scm>
<developers>
<developer>
<id>ymnk</id>
<name>Atsuhiko Yamanaka</name>
<email>ymnk at jcraft D0t com</email>
<url>http://github.com/ymnk</url>
<organization>JCraft,Inc.</organization>
<organizationUrl>http://www.jcraft.com/</organizationUrl>
<roles>
<role>architect</role>
<role>developer</role>
</roles>
<timezone>+9</timezone>
</developer>
</developers>
<licenses>
<license>
<name>Revised BSD</name>
<url>http://www.jcraft.com/jsch/LICENSE.txt</url>
</license>
</licenses>
<dependencies>
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jzlib</artifactId>
<version>1.0.7</version>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<target>1.5</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh-external</artifactId>
<version>1.0-alpha-5</version>
</extension>
</extensions>
</build>
<parent>
<groupId>org.sonatype.oss</groupId>
<artifactId>oss-parent</artifactId>
<version>6</version>
</parent>
</project>

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:063bf66e163f43b7d7897ac14efe1e80ed094d4016afe1181fe2285e3797bed3
size 369664

3
jsch-0.2.9.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8f7c7437115466c53781be7683aa84237f5d968ac7925997beef8f4311ebaad9
size 382571

269
jsch-build.xml Normal file
View File

@ -0,0 +1,269 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="jsch" default="package" basedir=".">
<!-- ====================================================================== -->
<!-- Build environment properties -->
<!-- ====================================================================== -->
<property file="build.properties"/>
<property name="project.artifactId" value="jsch"/>
<property name="project.version" value="0.2.9"/>
<property name="spec.version" value="0.2"/>
<property name="versionWithoutMinus" value="${project.version}"/>
<property name="compiler.source" value="8"/>
<property name="compiler.target" value="${compiler.source}"/>
<property name="build.finalName" value="jsch-${project.version}"/>
<property name="build.dir" value="target"/>
<property name="build.outputDir" value="${build.dir}/classes"/>
<property name="build.srcDir" value="src/main/java"/>
<property name="build.templateDir" value="src/main/java-templates"/>
<property name="build.genSrcDir" value="${build.dir}/generated-sources"/>
<property name="build.resourceDir" value="src/main/resources"/>
<property name="build.mrOutputDir" value="${build.outputDir}/META-INF/versions"/>
<property name="build.mrOutputDir.9" value="${build.mrOutputDir}/9"/>
<property name="build.mrSrcDir.9" value="src/main/java9"/>
<property name="build.mrOutputDir.10" value="${build.mrOutputDir}/10"/>
<property name="build.mrSrcDir.10" value="src/main/java10"/>
<property name="build.mrOutputDir.11" value="${build.mrOutputDir}/11"/>
<property name="build.mrSrcDir.11" value="src/main/java11"/>
<property name="build.mrOutputDir.15" value="${build.mrOutputDir}/15"/>
<property name="build.mrSrcDir.15" value="src/main/java15"/>
<property name="build.mrOutputDir.16" value="${build.mrOutputDir}/16"/>
<property name="build.mrSrcDir.16" value="src/main/java16"/>
<property name="reporting.outputDirectory" value="${build.dir}/site"/>
<!-- ====================================================================== -->
<!-- Defining classpaths -->
<!-- ====================================================================== -->
<path id="build.classpath">
<fileset dir="lib">
<include name="**/*.jar"/>
</fileset>
</path>
<!-- ====================================================================== -->
<!-- Cleaning up target -->
<!-- ====================================================================== -->
<target name="clean" description="Clean the output directory">
<delete dir="${build.dir}"/>
</target>
<!-- ====================================================================== -->
<!-- Compilation target -->
<!-- ====================================================================== -->
<target name="compile" description="Compile the code">
<mkdir dir="${build.genSrcDir}"/>
<copy todir="${build.genSrcDir}">
<fileset dir="${build.templateDir}"/>
<filterchain>
<expandproperties>
<propertyset>
<propertyref name="versionWithoutMinus"/>
</propertyset>
</expandproperties>
</filterchain>
</copy>
<mkdir dir="${build.outputDir}"/>
<javac destdir="${build.outputDir}"
nowarn="true"
debug="true"
optimize="false"
deprecation="true"
release="${compiler.source}"
verbose="false"
fork="false">
<src>
<pathelement location="${build.srcDir}"/>
<pathelement location="${build.genSrcDir}"/>
</src>
<classpath refid="build.classpath"/>
</javac>
<mkdir dir="${build.mrOutputDir}"/>
<!-- Override classes for Java 9+ -->
<mkdir dir="${build.mrOutputDir.9}"/>
<javac destdir="${build.mrOutputDir.9}"
nowarn="true"
debug="true"
optimize="false"
deprecation="true"
source="${compiler.source}"
target="${compiler.target}"
verbose="false"
fork="false">
<src>
<pathelement location="${build.mrSrcDir.9}"/>
</src>
<exclude name="**/module-info.java"/>
<classpath>
<path refid="build.classpath"/>
<pathelement location="${build.outputDir}"/>
</classpath>
</javac>
<!-- Build module-info.class -->
<javac destdir="${build.mrOutputDir.9}"
nowarn="true"
debug="true"
optimize="false"
deprecation="true"
release="9"
verbose="false"
fork="false">
<src>
<pathelement location="${build.mrSrcDir.9}"/>
</src>
<include name="**/module-info.java"/>
<modulepath>
<path refid="build.classpath"/>
<pathelement location="${build.outputDir}"/>
</modulepath>
</javac>
<!-- Override classes for Java 10+ -->
<mkdir dir="${build.mrOutputDir.10}"/>
<javac destdir="${build.mrOutputDir.10}"
nowarn="true"
debug="true"
optimize="false"
deprecation="true"
source="${compiler.source}"
target="${compiler.target}"
verbose="false"
fork="false">
<src>
<pathelement location="${build.mrSrcDir.10}"/>
</src>
<classpath>
<path refid="build.classpath"/>
<pathelement location="${build.outputDir}"/>
</classpath>
</javac>
<!-- Override classes for Java 11+ -->
<mkdir dir="${build.mrOutputDir.11}"/>
<javac destdir="${build.mrOutputDir.11}"
nowarn="true"
debug="true"
optimize="false"
deprecation="true"
source="${compiler.source}"
target="${compiler.target}"
verbose="false"
fork="false">
<src>
<pathelement location="${build.mrSrcDir.11}"/>
</src>
<classpath>
<path refid="build.classpath"/>
<pathelement location="${build.outputDir}"/>
</classpath>
</javac>
<!-- Override classes for Java 15+ -->
<mkdir dir="${build.mrOutputDir.15}"/>
<javac destdir="${build.mrOutputDir.15}"
nowarn="true"
debug="true"
optimize="false"
deprecation="true"
source="${compiler.source}"
target="${compiler.target}"
verbose="false"
fork="false">
<src>
<pathelement location="${build.mrSrcDir.15}"/>
</src>
<classpath>
<path refid="build.classpath"/>
<pathelement location="${build.outputDir}"/>
</classpath>
</javac>
<!-- Override classes for Java 16+ -->
<mkdir dir="${build.mrOutputDir.16}"/>
<javac destdir="${build.mrOutputDir.16}"
nowarn="true"
debug="true"
optimize="false"
deprecation="true"
source="${compiler.source}"
target="${compiler.target}"
verbose="false"
fork="false">
<src>
<pathelement location="${build.mrSrcDir.16}"/>
</src>
<classpath>
<path refid="build.classpath"/>
<pathelement location="${build.outputDir}"/>
</classpath>
</javac>
</target>
<!-- ====================================================================== -->
<!-- Javadoc target -->
<!-- ====================================================================== -->
<target name="javadoc" description="Generates the Javadoc of the application">
<javadoc sourcepath="${build.srcDir}"
destdir="${reporting.outputDirectory}/apidocs"
access="protected"
source="${compiler.source}"
verbose="false"
version="true"
use="true"
author="true"
splitindex="false"
nodeprecated="false"
nodeprecatedlist="false"
notree="false"
noindex="false"
nohelp="false"
nonavbar="false"
serialwarn="false"
charset="ISO-8859-1"
linksource="false"
breakiterator="false">
<classpath refid="build.classpath"/>
</javadoc>
</target>
<!-- ====================================================================== -->
<!-- Package target -->
<!-- ====================================================================== -->
<target name="package" depends="compile" description="Package the application">
<jar jarfile="${build.dir}/${build.finalName}.jar"
compress="true"
index="false"
basedir="${build.outputDir}"
excludes="**/package.html">
<manifest>
<attribute name="Bundle-Description" value="JSch is a pure Java implementation of SSH2"/>
<attribute name="Bundle-License" value="https://github.com/mwiede/jsch/blob/master/LICENSE.JZlib.txt,https://github.com/mwiede/jsch/blob/master/LICENSE.jBCrypt.txt,https://github.com/mwiede/jsch/blob/master/LICENSE.txt"/>
<attribute name="Bundle-ManifestVersion" value="2"/>
<attribute name="Bundle-Name" value="JSch"/>
<attribute name="Bundle-SymbolicName" value="com.jcraft.jsch"/>
<attribute name="Bundle-Version" value="${project.version}"/>
<attribute name="Export-Package" value="com.jcraft.jsch;version=&quot;${project.version}&quot;"/>
<attribute name="Implementation-Title" value="JSch"/>
<attribute name="Implementation-Version" value="${project.version}"/>
<attribute name="Import-Package" value="com.sun.jna.platform.win32;resolution:=optional,com.sun.jna;resolution:=optional,javax.crypto,javax.crypto.interfaces,javax.crypto.spec,org.bouncycastle.crypto.digests;resolution:=optional,org.bouncycastle.crypto.engines;resolution:=optional,org.bouncycastle.crypto.generators;resolution:=optional,org.bouncycastle.crypto.macs;resolution:=optional,org.bouncycastle.crypto.modes;resolution:=optional,org.bouncycastle.crypto.params;resolution:=optional,org.bouncycastle.crypto.signers;resolution:=optional,org.bouncycastle.crypto;resolution:=optional,org.ietf.jgss;resolution:=optional,org.slf4j;resolution:=optional"/>
<attribute name="Multi-Release" value="true"/>
<attribute name="Require-Capability" value="osgi.ee;filter:=&quot;(&amp;(osgi.ee=JavaSE)(version=${compiler.target}))&quot;"/>
<attribute name="Specification-Title" value="JSch"/>
<attribute name="Specification-Version" value="${spec.version}"/>
</manifest>
</jar>
</target>
<!-- ====================================================================== -->
<!-- A dummy target for the package named after the type it creates -->
<!-- ====================================================================== -->
<target name="jar" depends="package" description="Builds the jar for the application"/>
</project>

35
jsch-junixsocket.patch Normal file
View File

@ -0,0 +1,35 @@
--- a/src/main/java/com/jcraft/jsch/SSHAgentConnector.java
+++ b/src/main/java/com/jcraft/jsch/SSHAgentConnector.java
@@ -93,21 +93,7 @@ public class SSHAgentConnector implements AgentConnector {
}
private static USocketFactory getUSocketFactory() throws AgentProxyException {
- try {
- return new UnixDomainSocketFactory();
- } catch (AgentProxyException e) {
- try {
- return new JUnixSocketFactory();
- } catch (NoClassDefFoundError ee) {
- AgentProxyException eee = new AgentProxyException("junixsocket library unavailable");
- eee.addSuppressed(e);
- eee.addSuppressed(ee);
- throw eee;
- } catch (AgentProxyException ee) {
- ee.addSuppressed(e);
- throw e;
- }
- }
+ return new UnixDomainSocketFactory();
}
private static Path getSshAuthSocket() throws AgentProxyException {
--- a/src/main/java9/module-info.java
+++ b/src/main/java9/module-info.java
@@ -6,7 +6,6 @@ module com.jcraft.jsch {
requires static org.apache.logging.log4j;
requires static org.slf4j;
requires static org.bouncycastle.provider;
- requires static org.newsclub.net.unix;
requires static com.sun.jna;
requires static com.sun.jna.platform;
}

View File

@ -1,23 +0,0 @@
--- jsch-0.1.54/build.xml 2016-08-30 09:06:39.000000000 +0200
+++ jsch-0.1.54/build.xml 2020-04-07 15:40:40.461145903 +0200
@@ -50,9 +50,7 @@
<!-- Put everything in ${build} into the MyProject-${version}.jar file -->
<jar jarfile="${dist}/lib/jsch-${version}.jar" basedir="${build}">
- <!--
<manifest>
- <attribute name="Bundle-ClassPath" value="."/>
<attribute name="Bundle-Vendor" value="JCraft, Inc."/>
<attribute name="Bundle-Name" value="com.jcraft.jsch"/>
<attribute name="Bundle-ManifestVersion" value="2"/>
@@ -60,8 +58,8 @@
<attribute name="Bundle-Version" value="${version}"/>
<attribute name="Export-Package" value='com.jcraft.jsch;version="${version}",com.jcraft.jsch.jce;version="${version}";x-internal:=true,com.jcraft.jsch.jcraft;version="${version}";x-internal:=true,com.jcraft.jsch.jgss;version="${version}";x-internal:=true'/>
- <attribute name="Import-Package" value="javax.crypto,javax.crypto.spec,javax.crypto.interfaces,org.ietf.jgss,com.jcraft.jzlib"/>
+ <attribute name="Import-Package" value="javax.crypto,javax.crypto.spec,javax.crypto.interfaces,org.ietf.jgss,com.jcraft.jzlib;resolution:=optional"/>
+ <attribute name="Require-Capability" value="osgi.ee;filter:=&quot;(&amp;(osgi.ee=JavaSE)(version=1.6))&quot;"/>
</manifest>
- -->
</jar>
</target>

View File

@ -17,25 +17,27 @@
Name: jsch
Version: 0.1.55
Version: 0.2.9
Release: 0
Summary: Pure Java implementation of SSH2
License: BSD-3-Clause
Group: Development/Libraries/Java
URL: https://www.jcraft.com/jsch/
Source0: https://downloads.sourceforge.net/%{name}/%{name}-%{version}.zip
Source1: https://repo1.maven.org/maven2/com/jcraft/%{name}/%{version}/%{name}-%{version}.pom
Source2: plugin.properties
Patch0: jsch-0.1.54-sourcetarget.patch
Patch1: jsch-osgi-manifest.patch
Source0: https://github.com/mwiede/%{name}/archive/refs/tags/%{name}-%{version}.tar.gz
Source1: %{name}-build.xml
Patch0: jsch-junixsocket.patch
BuildRequires: ant
BuildRequires: fdupes
BuildRequires: java-devel >= 1.6.0
BuildRequires: javapackages-local
BuildRequires: jzlib
BuildRequires: unzip
BuildRequires: zip
Requires: jzlib
# We build different multiversion overrides for 9, 10, 11, 15 and 16
BuildRequires: java-devel >= 17
BuildRequires: bouncycastle
BuildRequires: javapackages-local >= 6
BuildRequires: jna
BuildRequires: jna-contrib
BuildRequires: log4j
BuildRequires: slf4j
# The jar still works with Java 8
Requires: java >= 1.8
BuildArch: noarch
%description
@ -62,32 +64,31 @@ X11 forwarding, file transfer, etc., and you can integrate its
functionality into your own Java programs.
%prep
%setup -q
%setup -q -n %{name}-%{name}-%{version}
cp %{SOURCE1} build.xml
# We don't have junixsocket
%pom_remove_dep com.kohlschutter.junixsocket:
rm src/main/java/com/jcraft/jsch/JUnixSocketFactory.java
%patch0 -p1
%patch1 -p1
cp %{SOURCE1} pom.xml
%pom_remove_parent
%build
export CLASSPATH=$(build-classpath jzlib)
ant dist javadoc
mkdir -p lib
build-jar-repository -s lib jna jna-platform slf4j/api bcprov log4j/log4j-api
ant jar javadoc
%install
# inject the OSGi Manifest
cp %{SOURCE2} plugin.properties
jar uf dist/lib/%{name}-*.jar plugin.properties
# jars
install -Dpm 644 dist/lib/%{name}-*.jar %{buildroot}%{_javadir}/%{name}.jar
install -Dpm 644 target/%{name}-*.jar %{buildroot}%{_javadir}/%{name}.jar
# pom
install -d -m 755 %{buildroot}%{_mavenpomdir}
install -p -m 644 pom.xml %{buildroot}%{_mavenpomdir}/%{name}.pom
%add_maven_depmap %{name}.pom %{name}.jar
%{mvn_install_pom} pom.xml %{buildroot}%{_mavenpomdir}/%{name}.pom
%add_maven_depmap %{name}.pom %{name}.jar -a com.jcraft:jsch
# javadoc
install -dm 755 %{buildroot}%{_javadocdir}/%{name}
cp -pr javadoc/* %{buildroot}%{_javadocdir}/%{name}
cp -pr target/site/apidocs/* %{buildroot}%{_javadocdir}/%{name}
%fdupes -s %{buildroot}%{_javadocdir}/%{name}
# examples

View File

@ -1,13 +0,0 @@
###############################################################################
# Copyright (c) 2006 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
# Atsuhiko Yamanaka, JCraft,Inc. - initial API and implementation.
# IBM Corporation - implementation
###############################################################################
venderName=JCraft, Inc.
bundleName=JSch