summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorDanny Milosavljevic <dannym@friendly-machines.com>2026-04-01 01:13:20 +0200
committerDanny Milosavljevic <dannym@friendly-machines.com>2026-05-03 02:30:26 +0200
commit0755746aadd43d33709cecfcf711fd35f3a5cb52 (patch)
tree46b6875c499c184af16a788379eb69142bf63687 /gnu
parent71140b06b472ec30d7c42af82c7b39c3e4a09187 (diff)
gnu: Add java-jemmy.
* gnu/packages/netbeans.scm (java-jemmy-2.3.1.1): New variable. * etc/teams.scm: Add reference to gnu/packages/netbeans.scm. Change-Id: I8068d33eb89424547fb9b359fadde9d341a2236b
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/netbeans.scm110
1 files changed, 110 insertions, 0 deletions
diff --git a/gnu/packages/netbeans.scm b/gnu/packages/netbeans.scm
new file mode 100644
index 00000000000..28cdca9bdfd
--- /dev/null
+++ b/gnu/packages/netbeans.scm
@@ -0,0 +1,110 @@
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2026 Danny Milosavljevic <dannym@friendly-machines.com>
3;;;
4;;; This file is part of GNU Guix.
5;;;
6;;; GNU Guix is free software; you can redistribute it and/or modify it
7;;; under the terms of the GNU General Public License as published by
8;;; the Free Software Foundation; either version 3 of the License, or (at
9;;; your option) any later version.
10;;;
11;;; GNU Guix is distributed in the hope that it will be useful, but
12;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14;;; GNU General Public License for more details.
15;;;
16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18
19(define-module (gnu packages netbeans)
20 #:use-module ((guix licenses) #:prefix license:)
21 #:use-module (guix packages)
22 #:use-module (guix download)
23 #:use-module (guix git-download)
24 #:use-module (guix gexp)
25 #:use-module (guix utils)
26 #:use-module (guix build-system ant)
27 #:use-module (gnu packages)
28 #:use-module (gnu packages base)
29 #:use-module (gnu packages bash)
30 #:use-module (gnu packages compression)
31 #:use-module (gnu packages gawk)
32 #:use-module (gnu packages glib)
33 #:use-module (gnu packages gnome)
34 #:use-module (gnu packages java)
35 #:use-module (gnu packages java-graphics)
36 #:use-module (gnu packages java-xml)
37 #:use-module (gnu packages web))
38
39(define-public java-jemmy-2.3.1.1
40 (package
41 (name "java-jemmy")
42 (version "2.3.1.1")
43 (source
44 (origin
45 (method url-fetch)
46 ;; This is the exact source payload referenced by NetBeans' own
47 ;; harness/jemmy/external/binaries-list.
48 (uri (string-append
49 "https://netbeans.osuosl.org/binaries/"
50 "49197106637CCA8C337AF16CC01BB5D9DEC7E179-jemmy-"
51 version "-src.zip"))
52 (sha256
53 (base32 "183qppmxlnzdniw2qg92ng9g42hyn2823gbnkjxrps4kdy9blwz1"))))
54 (build-system ant-build-system)
55 (arguments
56 (list
57 #:jdk openjdk17
58 #:tests? #f
59 #:modules
60 '((guix build utils)
61 (guix build ant-build-system)
62 (guix build java-utils)
63 (srfi srfi-13))
64 #:phases
65 #~(modify-phases %standard-phases
66 (replace 'build
67 (lambda _
68 (let ((source-files (find-files "." "\\.java$")))
69 (mkdir-p "build/classes")
70 (for-each
71 (lambda (file)
72 (unless (string-suffix? ".java" file)
73 (let ((destination
74 (string-append "build/classes/" file)))
75 (mkdir-p (dirname destination))
76 (copy-file file destination))))
77 (find-files "." ".*"))
78 (apply invoke "javac" "-d" "build/classes" source-files)
79 (invoke "jar" "-cf" "build/jemmy-2.3.1.1.jar"
80 "-C" "build/classes" ".")
81 (apply invoke "javadoc"
82 "-quiet"
83 "-Xdoclint:none"
84 "-d" "build/doc"
85 source-files)
86 (with-directory-excursion "build/doc"
87 (invoke "zip" "-qrX" "../jemmy-2.3.1.1-doc.zip" "."))
88 (invoke "zip" "-qrX" "build/jemmy-2.3.1.1-src.zip" ".")
89 #t)))
90 (replace 'install
91 (lambda* (#:key outputs #:allow-other-keys)
92 (let ((share-java
93 (string-append (assoc-ref outputs "out")
94 "/share/java")))
95 (mkdir-p share-java)
96 (for-each
97 (lambda (file)
98 (install-file file share-java))
99 '("build/jemmy-2.3.1.1.jar"
100 "build/jemmy-2.3.1.1-doc.zip"
101 "build/jemmy-2.3.1.1-src.zip"))
102 #t))))))
103 (home-page "https://web.archive.org/web/20120822233211/http://java.net/projects/jemmy")
104 (synopsis "Jemmy Swing UI testing library")
105 (description
106 "Jemmy is a Java library for automating and testing Swing and AWT user
107interfaces.")
108 (native-inputs
109 (list unzip))
110 (license license:cddl1.0)))