improve josm, wip
more/packages/java.scm
32 | 32 | #:use-module (gnu packages zip) | |
33 | 33 | #:use-module (gnu packages java)) | |
34 | 34 | ||
35 | - | (define-public josm | |
35 | + | (define-public java-jmapviewer | |
36 | 36 | (package | |
37 | - | (name "josm") | |
38 | - | (version "12039") | |
37 | + | (name "java-jmapviewer") | |
38 | + | (version "2.2") | |
39 | 39 | (source (origin | |
40 | - | (method svn-fetch) | |
41 | - | ;;(uri (git-reference | |
42 | - | ;; (url "https://github.com/openstreetmap/josm.git") | |
43 | - | ;; (commit version))) | |
44 | - | (uri (svn-reference | |
45 | - | (url "https://svn.openstreetmap.org/applications/editors/josm") | |
46 | - | (revision 12039))) | |
40 | + | (method url-fetch) | |
41 | + | (uri (string-append "https://svn.openstreetmap.org/applications/viewer/jmapviewer/releases/" | |
42 | + | version "/JMapViewer-" version "-Source.zip")) | |
47 | 43 | (sha256 | |
48 | 44 | (base32 | |
49 | - | ;;"17ih97kf6g6ly8gz6dbc3jzh22gamra4anbwcsxivhq7dw5z3a6n")) | |
50 | - | "1sq35askhvg85ghj7q34adxny7dwacz7xx6sbc1l5g0khcck7vql")) | |
45 | + | "00jxqc4fzy7hpdi0007f0a84aa630brvam7vxqirdk9j4za4p0d8")))) | |
46 | + | (build-system ant-build-system) | |
47 | + | (native-inputs | |
48 | + | `(("unzip" ,unzip))) | |
49 | + | (arguments | |
50 | + | `(#:build-target "pack" | |
51 | + | #:jdk ,icedtea-8 | |
52 | + | #:tests? #f; No tests | |
53 | + | #:phases | |
54 | + | (modify-phases %standard-phases | |
55 | + | (add-before 'build 'clean | |
56 | + | (lambda* _ | |
57 | + | (zero? (system* "ant" "clean")))) | |
58 | + | (replace 'install | |
59 | + | (lambda* (#:key outputs #:allow-other-keys) | |
60 | + | (let ((dir (string-append (assoc-ref outputs "out") "/share/java/"))) | |
61 | + | (mkdir-p dir) | |
62 | + | (copy-file "JMapViewer.jar" (string-append dir "JMapViewer.jar")))))))) | |
63 | + | (home-page "https://wiki.openstreetmap.org/wiki/JMapViewer") | |
64 | + | (synopsis "") | |
65 | + | (description "") | |
66 | + | (license license:gpl2))) | |
67 | + | ||
68 | + | (define-public java-josm | |
69 | + | (package | |
70 | + | (name "java-josm") | |
71 | + | (version "12275") | |
72 | + | (source (origin | |
73 | + | (method git-fetch) | |
74 | + | (uri (git-reference | |
75 | + | (url "https://github.com/openstreetmap/josm.git") | |
76 | + | (commit "f190ffc3ec16835c39150476e21d08d5557ed466"))) | |
77 | + | ;;(uri (svn-reference | |
78 | + | ;; (url "https://svn.openstreetmap.org/applications/editors/josm") | |
79 | + | ;; (revision 12039))) | |
80 | + | (sha256 | |
81 | + | (base32 | |
82 | + | "191isyn9v396s3c6888brq1yl2chzs7myl3qbk5c7d8msxi4wv49")) | |
51 | 83 | (file-name (string-append name "-" version)))) | |
52 | 84 | (build-system ant-build-system) | |
85 | + | (native-inputs | |
86 | + | `(("java-javacc" ,java-javacc))) | |
87 | + | (propagated-inputs | |
88 | + | `(("java-jmapviewer" ,java-jmapviewer) | |
89 | + | ("java-commons-compress" ,java-commons-compress))) | |
53 | 90 | (arguments | |
54 | - | `(#:build-target "dist" | |
91 | + | `(;#:build-target "dist" | |
55 | 92 | #:tests? #f | |
56 | 93 | #:jdk ,icedtea-8 | |
94 | + | #:jar-name "josm.jar" | |
57 | 95 | #:phases | |
58 | 96 | (modify-phases %standard-phases | |
59 | - | (add-before 'build 'fix-compiler | |
97 | + | (add-after 'unpack 'rm-build.xml | |
98 | + | (lambda* _ | |
99 | + | (delete-file "build.xml"))) | |
100 | + | (add-before 'build 'fix-revision | |
60 | 101 | (lambda* _ | |
61 | 102 | (with-output-to-file "REVISION.XML" | |
62 | 103 | (lambda _ | |
63 | 104 | (display | |
64 | 105 | (string-append "<info><entry><commit revision=\"" ,version "\">" | |
65 | 106 | "<date>1970-01-01 00:00:00 +0000</date>" | |
66 | - | "</commit></entry></info>")))) | |
67 | - | (substitute* "build.xml" | |
68 | - | (("UNKNOWN") ,version) | |
69 | - | (("<touch.*epsg.output.*") "<mkdir dir=\"${epsg.output}/..\" /><touch file=\"${epsg.output}\"/>\n") | |
70 | - | ((".*com.google.errorprone.ErrorProneAntCompilerAdapter.*") "") | |
71 | - | (("compiler=\"[^\"]*\" ") "")))) | |
107 | + | "</commit></entry></info>")))))) | |
108 | + | (add-before 'build 'generate-parser | |
109 | + | (lambda* _ | |
110 | + | (let* ((dir "src/org/openstreetmap/josm/gui/mappaint/mapcss") | |
111 | + | (out (string-append dir "/parsergen")) | |
112 | + | (file (string-append dir "/MapCSSParser.jj"))) | |
113 | + | (mkdir-p "src/org/openstreetmap/josm/gui/mappaint/mapcss/parsergen") | |
114 | + | (zero? (system* "javacc" "-DEBUG_PARSER=false" | |
115 | + | "-DEBUG_TOKEN_MANAGER=false" "-JDK_VERSION=1.8" | |
116 | + | "-GRAMMAR_ENCODING=UTF-8" (string-append "-OUTPUT_DIRECTORY=" out) | |
117 | + | file))))) | |
118 | + | ))) | |
119 | + | ;(add-before 'build 'fix-compiler | |
120 | + | ; (lambda* _ | |
121 | + | ; (substitute* "build.xml" | |
122 | + | ; (("UNKNOWN") ,version) | |
123 | + | ; (("<touch.*epsg.output.*") "<mkdir dir=\"${epsg.output}/..\" /><touch file=\"${epsg.output}\"/>\n") | |
124 | + | ; ((".*com.google.errorprone.ErrorProneAntCompilerAdapter.*") "") | |
125 | + | ; (("compiler=\"[^\"]*\" ") "")))) | |
126 | + | ;(replace 'install | |
127 | + | ; (lambda* (#:key outputs inputs #:allow-other-keys) | |
128 | + | ; (let* ((out (assoc-ref outputs "out")) | |
129 | + | ; (bin (string-append out "/bin")) | |
130 | + | ; (lib (string-append out "/lib/josm"))) | |
131 | + | ; (mkdir-p bin) | |
132 | + | ; (mkdir-p lib) | |
133 | + | ; (copy-file "dist/josm-custom.jar" | |
134 | + | ; (string-append lib "/josm.jar")) | |
135 | + | ; (with-output-to-file (string-append bin "/josm") | |
136 | + | ; (lambda _ | |
137 | + | ; (display | |
138 | + | ; (string-append "#!/bin/sh\n" | |
139 | + | ; (assoc-ref inputs "jdk") "/bin/java" | |
140 | + | ; " -jar " lib "/josm.jar")))) | |
141 | + | ; (chmod (string-append bin "/josm") #o755))))))) | |
142 | + | (home-page "https://josm.openstreetmap.de") | |
143 | + | (synopsis "OSM editor") | |
144 | + | (description "OSM editor.") | |
145 | + | (license license:gpl2+))) | |
146 | + | ||
147 | + | (define-public java-commons-collections | |
148 | + | (package | |
149 | + | (inherit java-commons-collections4) | |
150 | + | (name "java-commons-collections") | |
151 | + | (version "3.2.2") | |
152 | + | (source (origin | |
153 | + | (method url-fetch) | |
154 | + | (uri (string-append "mirror://apache/commons/collections/source/" | |
155 | + | "commons-collections-" version "-src.tar.gz")) | |
156 | + | (sha256 | |
157 | + | (base32 | |
158 | + | "055r51a5lfc3z7rkxnxmnn1npvkvda7636hjpm4qk7cnfzz98387")))))) | |
159 | + | ||
160 | + | (define-public java-velocity | |
161 | + | (package | |
162 | + | (name "java-velocity") | |
163 | + | (version "1.7") | |
164 | + | (source (origin | |
165 | + | (method url-fetch) | |
166 | + | (uri (string-append "mirror://apache/velocity/engine/" | |
167 | + | version "/velocity-" version ".tar.gz")) | |
168 | + | (sha256 | |
169 | + | (base32 | |
170 | + | "0rk7s04hkrr2k3glccx0yrglzqzj4qbipcrxhglk46yhx92vravc")))) | |
171 | + | (build-system ant-build-system) | |
172 | + | (arguments | |
173 | + | `(#:phases | |
174 | + | (modify-phases %standard-phases | |
175 | + | (add-before 'build 'prepare | |
176 | + | (lambda* (#:key inputs #:allow-other-keys) | |
177 | + | (delete-file-recursively "lib") | |
178 | + | (mkdir-p "bin/lib") | |
179 | + | ;; Don't download anything | |
180 | + | (substitute* "build/build.xml" | |
181 | + | ((".*download.xml.*") "")) | |
182 | + | (chdir "build")))))) | |
183 | + | (native-inputs | |
184 | + | `(("javacc" ,java-javacc) | |
185 | + | ("antlr" ,antlr2))) | |
186 | + | (propagated-inputs | |
187 | + | `(("java-commons-collections" ,java-commons-collections))) | |
188 | + | (home-page "https://velocity.apache.org/") | |
189 | + | (synopsis "") | |
190 | + | (description "") | |
191 | + | (license license:asl2.0))) | |
192 | + | ||
193 | + | (define-public java-commons-jcs | |
194 | + | (package | |
195 | + | (name "java-commons-jcs") | |
196 | + | (version "2.1") | |
197 | + | (source (origin | |
198 | + | (method url-fetch) | |
199 | + | (uri (string-append "mirror://apache/commons/jcs/source/" | |
200 | + | "commons-jcs-dist-" version "-src.tar.gz")) | |
201 | + | (sha256 | |
202 | + | (base32 | |
203 | + | "17l78mpxx1qkgp213b91sl69wawv6xzgllr479mygbg76ygwpffv")))) | |
204 | + | (build-system ant-build-system) | |
205 | + | (arguments | |
206 | + | `(#:jar-name "commons-jcs.jar" | |
207 | + | #:source-dir "commons-jcs-core/src/main/java")) | |
208 | + | (propagated-inputs | |
209 | + | `(("java-commons-logging-minimal" ,java-commons-logging-minimal) | |
210 | + | ("java-velocity" ,java-velocity))) | |
211 | + | (home-page "https://commons.apache.org/proper/commons-jcs/") | |
212 | + | (synopsis "") | |
213 | + | (description "") | |
214 | + | (license license:asl2.0))) | |
215 | + | ||
216 | + | (define-public java-javacc | |
217 | + | (package | |
218 | + | (name "java-javacc") | |
219 | + | (version "7.0.2") | |
220 | + | (source (origin | |
221 | + | (method url-fetch) | |
222 | + | (uri (string-append "https://github.com/javacc/javacc/archive/release_" | |
223 | + | (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version) | |
224 | + | ".tar.gz")) | |
225 | + | (sha256 | |
226 | + | (base32 | |
227 | + | "0yf93993nlsk5kijazddi5621x4y2bwq3vl46j8h8f7di2z9jv2h")))) | |
228 | + | (build-system ant-build-system) | |
229 | + | (arguments | |
230 | + | `(#:test-target "unittest" | |
231 | + | #:phases | |
232 | + | (modify-phases %standard-phases | |
233 | + | (add-after 'unpack 'remove-binaries | |
234 | + | (lambda* _ | |
235 | + | ;; Note: we cannot remove bootstrap/javacc.jar because no version of javacc comes with no bootstrap | |
236 | + | (delete-file-recursively "lib"))) | |
237 | + | ; (let* ((out (assoc-ref outputs "out")) | |
238 | + | ; (bin (string-append out "/bin")) | |
239 | + | ; (lib (string-append out "/lib/josm"))) | |
240 | + | ; (mkdir-p bin) | |
241 | + | ; (mkdir-p lib) | |
242 | + | ; (copy-file "dist/josm-custom.jar" | |
243 | + | ; (string-append lib "/josm.jar")) | |
72 | 244 | (replace 'install | |
73 | 245 | (lambda* (#:key outputs inputs #:allow-other-keys) | |
74 | 246 | (let* ((out (assoc-ref outputs "out")) | |
75 | - | (bin (string-append out "/bin")) | |
76 | - | (lib (string-append out "/lib/josm"))) | |
247 | + | (dir (string-append out "/share/java")) | |
248 | + | (bin (string-append out "/bin"))) | |
249 | + | (mkdir-p dir) | |
77 | 250 | (mkdir-p bin) | |
78 | - | (mkdir-p lib) | |
79 | - | (copy-file "dist/josm-custom.jar" | |
80 | - | (string-append lib "/josm.jar")) | |
81 | - | (with-output-to-file (string-append bin "/josm") | |
251 | + | (copy-file "target/javacc.jar" (string-append dir "/javacc.jar")) | |
252 | + | (with-output-to-file (string-append bin "/javacc") | |
82 | 253 | (lambda _ | |
83 | 254 | (display | |
84 | 255 | (string-append "#!/bin/sh\n" | |
85 | 256 | (assoc-ref inputs "jdk") "/bin/java" | |
86 | - | " -jar " lib "/josm.jar")))) | |
87 | - | (chmod (string-append bin "/josm") #o755))))))) | |
88 | - | (home-page "https://josm.openstreetmap.de") | |
89 | - | (synopsis "OSM editor") | |
90 | - | (description "OSM editor.") | |
91 | - | (license license:gpl2+))) | |
257 | + | " -cp " dir "/javacc.jar" " javacc" " $*")))) | |
258 | + | (chmod (string-append bin "/javacc") #o755))))))) | |
259 | + | (native-inputs | |
260 | + | `(("junit" ,java-junit))) | |
261 | + | (home-page "https://javacc.org") | |
262 | + | (synopsis "") | |
263 | + | (description "") | |
264 | + | (license license:bsd-3))) | |
265 | + | ||
92 | 266 | ||
93 | 267 | (define-public java-icu4j | |
94 | 268 | (package |