diff options
| author | Danny Milosavljevic <dannym@friendly-machines.com> | 2026-04-01 00:37:52 +0200 |
|---|---|---|
| committer | Danny Milosavljevic <dannym@friendly-machines.com> | 2026-05-03 02:30:24 +0200 |
| commit | 04dc846f4ed72b9bb3627d9c80cfe642d5ef8bcc (patch) | |
| tree | 24f6e1c28377ece85b789a312e028613dbbcef8c /gnu/packages/java.scm | |
| parent | ce8156c5fc85334dd617571f41c07622371a7270 (diff) | |
gnu: Add java-jsch@0.1.72.
* gnu/packages/java.scm (java-jsch-0.1.72): New variable.
Change-Id: I57bddfdb415ac27f5e7b162fecd273a82e5943f3
Diffstat (limited to 'gnu/packages/java.scm')
| -rw-r--r-- | gnu/packages/java.scm | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 674cd922946..870dfcf73ae 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm | |||
| @@ -7328,6 +7328,116 @@ transfer, etc., and you can integrate its functionality into your own Java | |||
| 7328 | programs.") | 7328 | programs.") |
| 7329 | (license license:bsd-3))) | 7329 | (license license:bsd-3))) |
| 7330 | 7330 | ||
| 7331 | (define-public java-jsch-0.1.72 | ||
| 7332 | (package | ||
| 7333 | (name "java-jsch") | ||
| 7334 | (version "0.1.72") | ||
| 7335 | (source | ||
| 7336 | (origin | ||
| 7337 | (method git-fetch) | ||
| 7338 | (uri (git-reference | ||
| 7339 | (url "https://github.com/mwiede/jsch.git") | ||
| 7340 | (commit (string-append "jsch-" version)))) | ||
| 7341 | (file-name (git-file-name name version)) | ||
| 7342 | (sha256 | ||
| 7343 | (base32 "1xx50fw9wxnkm9yg8v8scr2c7781506flv0ivalpw7bg27w8sm59")))) | ||
| 7344 | (build-system ant-build-system) | ||
| 7345 | (arguments | ||
| 7346 | (list | ||
| 7347 | #:jdk openjdk17 | ||
| 7348 | #:tests? #f | ||
| 7349 | #:modules | ||
| 7350 | '((guix build utils) | ||
| 7351 | (guix build ant-build-system) | ||
| 7352 | (guix build java-utils)) | ||
| 7353 | #:phases | ||
| 7354 | #~(modify-phases %standard-phases | ||
| 7355 | (replace 'build | ||
| 7356 | (lambda* (#:key inputs #:allow-other-keys) | ||
| 7357 | (define classes-dir (string-append (getcwd) "/build/classes")) | ||
| 7358 | (define generated-dir (string-append (getcwd) "/build/generated")) | ||
| 7359 | (define manifest-file (string-append (getcwd) "/build/manifest.mf")) | ||
| 7360 | (define jar-file (string-append (getcwd) "/build/jsch-" #$version ".jar")) | ||
| 7361 | (define jna | ||
| 7362 | (car (find-files (assoc-ref inputs "java-native-access") | ||
| 7363 | "jna-jpms.*\\.jar$"))) | ||
| 7364 | (define jna-platform | ||
| 7365 | (car (find-files (assoc-ref inputs "java-native-access-platform") | ||
| 7366 | "jna-platform-jpms.*\\.jar$"))) | ||
| 7367 | (define bcprov | ||
| 7368 | (car (find-files (assoc-ref inputs "java-bouncycastle") | ||
| 7369 | "bcprov.*\\.jar$"))) | ||
| 7370 | (define junixsocket | ||
| 7371 | (car (find-files (assoc-ref inputs "java-junixsocket-common") | ||
| 7372 | "\\.jar$"))) | ||
| 7373 | (define classpath | ||
| 7374 | (string-append jna ":" jna-platform ":" bcprov | ||
| 7375 | ":" junixsocket)) | ||
| 7376 | (define (java-sources source-root) | ||
| 7377 | (filter (lambda (file) | ||
| 7378 | (and (string-suffix? ".java" file) | ||
| 7379 | (not (string-suffix? "module-info.java" file)))) | ||
| 7380 | (find-files source-root "\\.java$"))) | ||
| 7381 | (define (compile-release source-root release) | ||
| 7382 | (let ((sources (java-sources source-root)) | ||
| 7383 | (target (string-append classes-dir "/META-INF/versions/" | ||
| 7384 | release))) | ||
| 7385 | (when (pair? sources) | ||
| 7386 | (mkdir-p target) | ||
| 7387 | (apply invoke "javac" | ||
| 7388 | (append | ||
| 7389 | (list "--release" release | ||
| 7390 | "-cp" (string-append classes-dir ":" classpath) | ||
| 7391 | "-d" target) | ||
| 7392 | sources))))) | ||
| 7393 | (mkdir-p classes-dir) | ||
| 7394 | (mkdir-p (string-append generated-dir "/com/jcraft/jsch")) | ||
| 7395 | (copy-file "src/main/java-templates/com/jcraft/jsch/Version.java" | ||
| 7396 | (string-append generated-dir | ||
| 7397 | "/com/jcraft/jsch/Version.java")) | ||
| 7398 | (substitute* (string-append generated-dir | ||
| 7399 | "/com/jcraft/jsch/Version.java") | ||
| 7400 | (("\\$\\{project.version\\}") #$version)) | ||
| 7401 | (apply invoke "javac" | ||
| 7402 | (append | ||
| 7403 | (list "--release" "8" | ||
| 7404 | "-cp" classpath | ||
| 7405 | "-d" classes-dir) | ||
| 7406 | (java-sources "src/main/java") | ||
| 7407 | (list (string-append generated-dir | ||
| 7408 | "/com/jcraft/jsch/Version.java")))) | ||
| 7409 | (for-each | ||
| 7410 | (lambda (release) | ||
| 7411 | (compile-release (string-append "src/main/java" release) | ||
| 7412 | release)) | ||
| 7413 | '("9" "11" "15" "16")) | ||
| 7414 | (call-with-output-file manifest-file | ||
| 7415 | (lambda (port) | ||
| 7416 | (display "Multi-Release: true\n" port))) | ||
| 7417 | (invoke "jar" "--create" | ||
| 7418 | "--file" jar-file | ||
| 7419 | "--manifest" manifest-file | ||
| 7420 | "-C" classes-dir "."))) | ||
| 7421 | (add-before 'install 'create-pom | ||
| 7422 | (generate-pom.xml "pom.xml" "com.jcraft" | ||
| 7423 | "jsch" #$version)) | ||
| 7424 | (replace 'install | ||
| 7425 | (install-from-pom "pom.xml"))))) | ||
| 7426 | (inputs | ||
| 7427 | (list java-bouncycastle-1.77 | ||
| 7428 | java-junixsocket-common-2 | ||
| 7429 | java-native-access-5.14.0 | ||
| 7430 | java-native-access-platform-5.14.0)) | ||
| 7431 | (native-inputs | ||
| 7432 | (list java-kohlschutter-compiler-annotations-1 | ||
| 7433 | unzip)) | ||
| 7434 | (home-page "https://github.com/mwiede/jsch") | ||
| 7435 | (synopsis "Pure Java implementation of SSH2") | ||
| 7436 | (description | ||
| 7437 | "JSch is a pure Java implementation of SSH2. This package builds the | ||
| 7438 | 0.1.72 release from source with bouncycastle and junixsocket support.") | ||
| 7439 | (license license:bsd-3))) | ||
| 7440 | |||
| 7331 | (define-public java-jzlib-1.1.3 | 7441 | (define-public java-jzlib-1.1.3 |
| 7332 | (package | 7442 | (package |
| 7333 | (name "java-jzlib") | 7443 | (name "java-jzlib") |
