summaryrefslogtreecommitdiff
path: root/gnu/packages/java.scm
diff options
context:
space:
mode:
authorDanny Milosavljevic <dannym@friendly-machines.com>2026-04-01 00:37:52 +0200
committerDanny Milosavljevic <dannym@friendly-machines.com>2026-05-03 02:30:24 +0200
commit04dc846f4ed72b9bb3627d9c80cfe642d5ef8bcc (patch)
tree24f6e1c28377ece85b789a312e028613dbbcef8c /gnu/packages/java.scm
parentce8156c5fc85334dd617571f41c07622371a7270 (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.scm110
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
7328programs.") 7328programs.")
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
74380.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")