Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package jsch for openSUSE:Factory checked in at 2023-06-04 16:41:41 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/jsch (Old) and /work/SRC/openSUSE:Factory/.jsch.new.15902 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "jsch" Sun Jun 4 16:41:41 2023 rev:25 rq:1090641 version:0.2.9 Changes: -------- --- /work/SRC/openSUSE:Factory/jsch/jsch.changes 2022-03-28 16:59:56.372918705 +0200 +++ /work/SRC/openSUSE:Factory/.jsch.new.15902/jsch.changes 2023-06-04 16:41:50.165856078 +0200 @@ -1,0 +2,275 @@ +Sat Jun 3 11:03:46 UTC 2023 - Fridrich Strba <fst...@suse.com> + +- Migrate from com.jcraft:jsch to com.github.mwiede:jsch fork + (bsc#1211955) + * Alias to the old artifact since the new one is drop-in + replacement + * Keep the old OSGi bundle symbolic name to avoid extensive + patching of eclipse stack +- Upgrade to version 0.2.9 + * Changes of 0.2.9 + + various improvements, #295 + ~ #293 allow UserAuthNone to be extended. + ~ Make JGSS module optional. + ~ Tweak OSGi bundle manifest: + ~ Avoid self-import. + ~ Mark JGSS as optional. + ~ Loosen import versions of dependencies. + ~ Correctly adhere to the Multi-release JAR spec by ensuring + all public classes under versioned directories preside over + classes present in the top-level directory. + ~ Eliminate stray System.err.println() calls. + ~ Change PageantConnector to use JNA's built-in support for + User32.SendMessage(). + + Improve error handling in InputStream.close() for SFTP + channels, #331 + * Changes of 0.2.8 + + activate sourcecode formatting, #247 + + build improvements, #279 + + #287 add algorithm type information to algorithm negotiation + logs, #290 + + wrap NoClassDefFoundError's for invalid private keys, #289 and + #290 + * Changes of 0.2.7 + + #265 change buffer_margin computation to be dynamic based upon + the MAC to allow connections that advertise small maximum + packet sizes. + + #266 fix PuTTY key parsing to work with unix line endings. + + Add support for ECDSA and EdDSA type PuTTY keys. + + #71 add support for PuTTY version 3 format keys. + ~ Encrypted PuTTY version 3 format keys requires Bouncy + Castle (bcprov-jdk18on). + + Eliminate KeyPairDeferred and instead change handling of + OpenSSH V1 type keys to be more like other KeyPair types. + + Be more vigilant about clearing private key data. + + Improve PKCS8 key handling and add support for PKCS5 2.1 + encryption. + + Add support for ECDSA type PKCS8 keys. + + Add support for SCrypt type KDF for PKCS8 keys. + ~ PKCS8 keys using SCrypt requires Bouncy Castle + (bcprov-jdk18on). + + Add support for EdDSA type PKCS8 keys. + ~ EdDSA type PKCS8 keys requires Bouncy Castle + (bcprov-jdk18on). + + Attempt to authenticate using other signature algorithms + supported by the same public key. + ~ Allow this behavior to be disabled via + try_additional_pubkey_algorithms config option. + ° Some servers incorrectly respond with + SSH_MSG_USERAUTH_PK_OK to an initial auth query that they + don't actually support for RSA keys. + + Add a new config option enable_pubkey_auth_query to allow + skipping auth queries and proceed directly to attempting + full SSH_MSG_USERAUTH_REQUEST's. + + Add a new config option enable_auth_none to control whether + an initial auth request for the method none is sent to detect + all supported auth methods available on the server. + * Changes of 0.2.6 + + Include host alias instead of the real host in messages and + exceptions, #257 + + Fix missing keySize set when loading V1 RSA keys, #258 + + Enhancement to present KeyPair.getKeyTypeString() method, #259 + * Changes of 0.2.5 + + Explictly free resources in Compression implementations, #241 + + Fix integration test failures on Apple Silicon by skipping + OpenSSH 7.4 tests, #227 + + generate osgi bundle manifest data for jar #248, #249 + * Changes of 0.2.4 + + Improved excepton handling by @norrisjeremy in #200 + * Changes of 0.2.3 + + #188 fix private key length checks for ssh-ed25519 and + ssh-ed448, #189 + * Changes of 0.2.2 + + setup jdk for code-ql analysis, #151 + + misc improvements, #152 + + Fixing Issue #131, #134 + + Update link to bcrypt, #157 + * Changes of 0.2.1 + + Allow to set a Logger per JSch-instance rather than a VM-wide + one, #128 + + Preliminary changes prior to Javadoc work, #126 + + remove check to allow setting any filename encoding with any + server version #137, #142 + * Changes of 0.2.0 + + Disable RSA/SHA1 signature algorithm by default #75 + + Add basic Logger implementations that can be optionally + utilized with JSch.setLogger(): + ~ JulLogger, using java.util.logging.Logger + ~ JplLogger, using Java 9's JEP 264 + ~ Log4j2Logger, using Apache Log4j 2 + ~ Slf4jLogger, using SLF4J + + Fix client version to be compliant with RFC 4253 section 4.2 + by not including minus sign characters #115 + + Add java.util.zip based compression implementation #114 + ~ This is based upon the CompressionJUZ implementation posted + to the JSch-users mailing list in 2012 by the original JSch + author + ~ The existing JZlib implementation remains the default to + maintain strict RFC 4253 section 6.2 compliance + ° To use the new implementation globally, execute + JSch.setConfig("z...@openssh.com", + "com.jcraft.jsch.juz.Compression") + + JSch.setConfig("zlib", "com.jcraft.jsch.juz.Compression") + ° To use the new implementation per session, execute + session.setConfig("z...@openssh.com", + "com.jcraft.jsch.juz.Compression") + + session.setConfig("zlib", + "com.jcraft.jsch.juz.Compression") + * Changes of 0.1.72 + + Switch chacha20-poly1...@openssh.com algorithm to a pure + Bouncy Castle based implementation + + implement openssh config behavior to handle append, prepend + and removal of algorithms #104 + * Changes of 0.1.71 + + Address #98 by restoring JSch.VERSION + * Changes of 0.1.70 + + Address #89 by fixing rare ECDSA signature validation issue + + Address #93 by always setting the "want reply" flag for "env" + type channel requests to false + * Changes of 0.1.69 + + Address #83 by sending CR LF at the end of the identification + string + + Fix earlier change for #76 that failed to correctly make the + "Host" keyword case-insensitive + + Fix PageantConnector struct class visibility #86 + * Changes of 0.1.68 + + Added support for the rijndael-...@lysator.liu.se algorithm + + Added support for the hmac-ripemd160, + hmac-ripemd...@openssh.com and hmac-ripemd160-...@openssh.com + algorithms using Bouncy Castle + + Added support for various algorithms from RFC 4253 and + RFC 4344 using Bouncy Castle + ~ cast128-cbc + ~ cast128-ctr + ~ twofish-cbc + ~ twofish128-cbc + ~ twofish128-ctr + ~ twofish192-cbc + ~ twofish192-ctr + ~ twofish256-cbc + ~ twofish256-ctr + + Added support for the seed-...@ssh.com algorithm using Bouncy + Castle + * Changes of 0.1.67 + + Added support for the blowfish-ctr algorithm from RFC 4344 + + Fix bug where ext-info-c was incorrectly advertised during + rekeying + ~ According to RFC 8308 section 2.1, ext-info-c should only + advertised during the first key exchange + + Address #77 by attempting to add compatibility with older + Bouncy Castle releases + * Changes of 0.1.66 + + Added support for RFC 8308 extension negotiation and + server-sig-algs extension + ~ This support is enabled by default, but can be controlled + via the enable_server_sig_algs config option (or + jsch.enable_server_sig_algs system property) + ~ When enabled and a server-sig-algs message is received from + the server, the algorithms included by the server and also + present in the PubkeyAcceptedKeyTypes config option will be + attempted first when using publickey authentication + ~ Additionally if the server is detected as OpenSSH version + 7.4, the rsa-sha2-256 and rsa-sha2-512 algorithms will be + added to the received server-sig-algs as a workaround for + OpenSSH bug 2680 + + Added support for various algorithms supported by Tectia + (ssh.com): + ~ diffie-hellman-group14-sha...@ssh.com + ~ diffie-hellman-group14-sha...@ssh.com + ~ diffie-hellman-group15-sha...@ssh.com + ~ diffie-hellman-group15-sha...@ssh.com + ~ diffie-hellman-group16-sha...@ssh.com + ~ diffie-hellman-group16-sha...@ssh.com + ~ diffie-hellman-group18-sha...@ssh.com + ~ diffie-hellman-group-exchange-sha...@ssh.com + ~ diffie-hellman-group-exchange-sha...@ssh.com + ~ diffie-hellman-group-exchange-sha...@ssh.com + ~ hmac-sha...@ssh.com + ~ hmac-sha...@ssh.com + ~ hmac-sha25...@ssh.com + ~ hmac-sha...@ssh.com + ~ hmac-sha...@ssh.com + ~ ssh-rsa-sha...@ssh.com + ~ ssh-rsa-sha...@ssh.com + ~ ssh-rsa-sha...@ssh.com + ~ ssh-rsa-sha...@ssh.com + + Added support for SHA224 to FingerprintHash + + Fixing #52 ++++ 78 more lines (skipped) ++++ between /work/SRC/openSUSE:Factory/jsch/jsch.changes ++++ and /work/SRC/openSUSE:Factory/.jsch.new.15902/jsch.changes Old: ---- jsch-0.1.54-sourcetarget.patch jsch-0.1.55.pom jsch-0.1.55.zip jsch-osgi-manifest.patch plugin.properties New: ---- jsch-0.2.9.tar.gz jsch-build.xml jsch-junixsocket.patch jsch-log4j.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ jsch.spec ++++++ --- /var/tmp/diff_new_pack.kRsJY3/_old 2023-06-04 16:41:51.213862315 +0200 +++ /var/tmp/diff_new_pack.kRsJY3/_new 2023-06-04 16:41:51.217862339 +0200 @@ -1,7 +1,7 @@ # # spec file for package jsch # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -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 +URL: https://github.com/mwiede/jsch/ +Source0: https://github.com/mwiede/%{name}/archive/refs/tags/%{name}-%{version}.tar.gz +Source1: %{name}-build.xml +Patch0: jsch-junixsocket.patch +Patch1: jsch-log4j.patch BuildRequires: ant +BuildRequires: bouncycastle BuildRequires: fdupes -BuildRequires: java-devel >= 1.6.0 -BuildRequires: javapackages-local -BuildRequires: jzlib -BuildRequires: unzip -BuildRequires: zip -Requires: jzlib +# We need this for module-info.class +BuildRequires: java-devel >= 9 +BuildRequires: javapackages-local >= 6 +BuildRequires: jna +BuildRequires: jna-contrib +BuildRequires: slf4j +# The jar still works with Java 8 +Requires: java >= 1.8 BuildArch: noarch %description @@ -62,32 +64,39 @@ 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 -f \ + src/main/java/com/jcraft/jsch/JUnixSocketFactory.java %patch0 -p1 + +# Do not depend on log4j +%pom_remove_dep org.apache.logging.log4j: +rm -f \ + src/main/java/com/jcraft/jsch/Log4j2Logger.java \ + src/test/java/com/jcraft/jsch/Log4j2LoggerTest.java %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 +%{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 ++++++ jsch-build.xml ++++++ <?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.release" value="8"/> <property name="compiler.source" value="1.${compiler.release}"/> <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 targets --> <!-- ====================================================================== --> <condition property="build9"> <javaversion atleast="9"/> </condition> <condition property="build10"> <javaversion atleast="10"/> </condition> <condition property="build11"> <javaversion atleast="11"/> </condition> <condition property="build15"> <javaversion atleast="15"/> </condition> <condition property="build16"> <javaversion atleast="16"/> </condition> <target name="compile" description="Compile the code"> <echo>Java/JVM version: ${ant.java.version}</echo> <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.release}" verbose="false" fork="false"> <src> <pathelement location="${build.srcDir}"/> <pathelement location="${build.genSrcDir}"/> </src> <classpath refid="build.classpath"/> </javac> <mkdir dir="${build.mrOutputDir}"/> </target> <target name="compile9" description="Compile the overrides for Java 9+" if="build9"> <!-- 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> </target> <target name="compile10" description="Compile the overrides for Java 10+" if="build10"> <!-- 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> </target> <target name="compile11" description="Compile the overrides for Java 11+" if="build11"> <!-- 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> </target> <target name="compile15" description="Compile the overrides for Java 15+" if="build15"> <!-- 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> </target> <target name="compile16" description="Compile the overrides for Java 16+" if="build16"> <!-- 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,compile9,compile10,compile11,compile15,compile16" 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="${project.version}""/> <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:="(&(osgi.ee=JavaSE)(version=${compiler.target}))""/> <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> ++++++ jsch-junixsocket.patch ++++++ --- 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; } ++++++ jsch-log4j.patch ++++++ --- a/src/main/java9/module-info.java +++ b/src/main/java9/module-info.java @@ -3,7 +3,6 @@ module com.jcraft.jsch { requires static java.security.jgss; requires static java.logging; - requires static org.apache.logging.log4j; requires static org.slf4j; requires static org.bouncycastle.provider; requires static com.sun.jna;