Package: src:biojava4-live Version: 4.2.12+dfsg-2 Severity: normal Tags: patch
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Hi, I'd like to transition json-simple 3.1.1 to unstable, but biojava4-live is a blocker since it builds against libjson-simple-java << 3 only. The json-simple classes used by biojava4-live were deprecated in version 2.0.0 [1]. There were removed in versions 3.x [2]. [1] https://github.com/cliftonlabs/json-simple/blob/json-simple-2.0.0/README.txt [2] https://github.com/cliftonlabs/json-simple/blob/json-simple-3.0.1/CHANGELOG Please find attached a patch proposal to use the current json-simple classes. I've tested that the package builds correctly against libjson-simple-java version 2.3.0-1 from unstable and version 3.1.1-1~exp2 currently in experimental, and the build time test cases report no errors. Thanks in advance for considering. _g. - -- System Information: Debian Release: buster/sid Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 5.6.0-1-amd64 (SMP w/4 CPU cores) Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8), LANGUAGE=fr_FR.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled -----BEGIN PGP SIGNATURE----- iQEzBAEBCgAdFiEEoJObzArDE05WtIyR7+hsbH/+z4MFAl6+R5UACgkQ7+hsbH/+ z4OOnQgApJ5lITTg7Gdl45fmVHMuVZ7EO8F30UQ8b11IjqC9Jvy5Smxe6QpBr1XO eeSY1QI8GVFd5OHk31AijdMC/JZTkSwjHAV+R5YODf96D5nnNLb+Se5w3hrzf+hg /sa/tgya1+1551eK+BJoJX6upyo8Eu1ZWcM4X/2gTqJMuV9yI0u6d2w5pUpfF3Dq 3oVPO+0ZdKuI26roUXLiZUyu7W5DVctqt+JHWYHAxxdiQ2DoxhStK40haZ6km6Ee xJnSPX472CxArpHZWWeUFOl+9GPT7kN6WGfSgfgzVoAnq5kw0DwspegXykFlLSNT 7VQX8vBOKadHyKQ9QM8DJK+RWJNW5w== =H6WS -----END PGP SIGNATURE-----
diff -Nru biojava4-live-4.2.12+dfsg/debian/changelog biojava4-live-4.2.12+dfsg/debian/changelog --- biojava4-live-4.2.12+dfsg/debian/changelog 2019-01-18 20:47:46.000000000 +0100 +++ biojava4-live-4.2.12+dfsg/debian/changelog 2020-05-15 08:50:46.000000000 +0200 @@ -1,3 +1,10 @@ +biojava4-live (4.2.12+dfsg-2.1) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Tentative fix to build against json-simple 3 + + -- Gilles Filippini <p...@debian.org> Fri, 15 May 2020 08:50:46 +0200 + biojava4-live (4.2.12+dfsg-2) unstable; urgency=medium * Team upload. diff -Nru biojava4-live-4.2.12+dfsg/debian/patches/use_simple_json biojava4-live-4.2.12+dfsg/debian/patches/use_simple_json --- biojava4-live-4.2.12+dfsg/debian/patches/use_simple_json 2019-01-18 15:58:37.000000000 +0100 +++ biojava4-live-4.2.12+dfsg/debian/patches/use_simple_json 2020-05-15 08:50:46.000000000 +0200 @@ -2,24 +2,42 @@ Author: Olivier Sallou <osal...@debian.org> Description: json.org library is not "free", use simple_json library and update according to API -Last-Updated: 2012-12-02 - ---- a/biojava-ws/src/main/java/org/biojava/nbio/ws/hmmer/RemoteHmmerScan.java -+++ b/biojava-ws/src/main/java/org/biojava/nbio/ws/hmmer/RemoteHmmerScan.java + . + [ Gilles Filippini <p...@debian.org> ] + Patche updated to migrate away from deprecated json-simple 1.x classes + See json-simple 2.0.0 changelog: + > * Deprecated JSONParse and JSONValue in favor of Jsoner. + > * Deprecated JSONStreamAware and JSONAware in favor of Jsonable. + > * Deprecated JSONObject in favor of JsonObject. + > * Deprecated JSONArray in favor of JsonArray. + . + This patch now uses the new json-simple Json* classes. It is compatible + with both 2.x and 3.x json-simple releases, with a few ajustments + regarding backward incompatible changes in json-simple 3.x: + - The package name, changed to com.github.cliftonlabs.json_simple + This change is handled using place-holders @JSON_SIMPLE_PACKAGE@ which + are substituted at build time by debian/rules. + . + With this trick the package is compatible with json-simple 2.x and 3.x. +Last-Updated: 2020-05-15 +Index: biojava4-live-4.2.12+dfsg/biojava-ws/src/main/java/org/biojava/nbio/ws/hmmer/RemoteHmmerScan.java +=================================================================== +--- biojava4-live-4.2.12+dfsg.orig/biojava-ws/src/main/java/org/biojava/nbio/ws/hmmer/RemoteHmmerScan.java ++++ biojava4-live-4.2.12+dfsg/biojava-ws/src/main/java/org/biojava/nbio/ws/hmmer/RemoteHmmerScan.java @@ -20,8 +20,10 @@ */ package org.biojava.nbio.ws.hmmer; -import net.sf.json.JSONArray; -import net.sf.json.JSONObject; -+import org.json.simple.JSONArray; -+import org.json.simple.JSONObject; -+import org.json.simple.JSONValue; ++import @JSON_SIMPLE_PACKAGE@.JsonArray; ++import @JSON_SIMPLE_PACKAGE@.JsonObject; ++import @JSON_SIMPLE_PACKAGE@.Jsoner; + import org.biojava.nbio.core.sequence.ProteinSequence; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -@@ -136,15 +138,13 @@ +@@ -136,15 +138,13 @@ public class RemoteHmmerScan implements SortedSet<HmmerResult> results = new TreeSet<HmmerResult>(); try { @@ -27,29 +45,29 @@ - - JSONObject hmresults = json.getJSONObject("results"); - -+ JSONObject json= (JSONObject) JSONValue.parse(result.toString()); -+ JSONObject hmresults = (JSONObject) json.get("results"); ++ JsonObject json= Jsoner.deserialize(result.toString(), (JsonObject) null); ++ JsonObject hmresults = (JsonObject) json.get("results"); - JSONArray hits = hmresults.getJSONArray("hits"); -+ JSONArray hits = (JSONArray) hmresults.get("hits"); ++ JsonArray hits = (JsonArray) hmresults.get("hits"); for(int i =0 ; i < hits.size() ; i++){ - JSONObject hit = hits.getJSONObject(i); -+ JSONObject hit = (JSONObject) hits.get(i); ++ JsonObject hit = (JsonObject) hits.get(i); HmmerResult hmmResult = new HmmerResult(); -@@ -168,11 +168,11 @@ +@@ -168,11 +168,11 @@ public class RemoteHmmerScan implements hmmResult.setPvalue((Double)hit.get("pvalue")); hmmResult.setScore(Float.parseFloat((String)hit.get("score"))); - JSONArray hmmdomains = hit.getJSONArray("domains"); -+ JSONArray hmmdomains = (JSONArray) hit.get("domains"); ++ JsonArray hmmdomains = (JsonArray) hit.get("domains"); SortedSet<HmmerDomain> domains = new TreeSet<HmmerDomain>(); for ( int j= 0 ; j < hmmdomains.size() ; j++){ - JSONObject d = hmmdomains.getJSONObject(j); -+ JSONObject d = (JSONObject) hmmdomains.get(j); ++ JsonObject d = (JsonObject) hmmdomains.get(j); Integer is_included = getInteger(d.get("is_included")); if ( is_included == 0) { continue; diff -Nru biojava4-live-4.2.12+dfsg/debian/rules biojava4-live-4.2.12+dfsg/debian/rules --- biojava4-live-4.2.12+dfsg/debian/rules 2019-01-18 18:13:50.000000000 +0100 +++ biojava4-live-4.2.12+dfsg/debian/rules 2020-05-15 08:50:46.000000000 +0200 @@ -8,6 +8,14 @@ JAVA_HOME=/usr/lib/jvm/default-java +JSON_SIMPLE_VERSION = $(shell dpkg -l libjson-simple-java | grep '^ii' | awk '{print $$3}') +JSON_SIMPLE_3 = $(shell dpkg --compare-versions '$(JSON_SIMPLE_VERSION)' '>' '3.1.1-1~' && echo yes || echo no) +ifeq (yes,$(JSON_SIMPLE_3)) +JSON_SIMPLE_PACKAGE = com.github.cliftonlabs.json_simple +else +JSON_SIMPLE_PACKAGE = org.json.simple +endif + %: dh $@ --with javahelper @@ -31,6 +39,10 @@ sed -e 's/BJLIB/biojava4-jcolorbrewer/g' debian/build.xml > biojava-jcolorbrewer/build.xml override_dh_auto_build: + find . -type f -name \*.java -exec grep -q 'import @JSON_SIMPLE_PACKAGE@' {} \; \ + -exec sed -i.json-simple \ + -e 's,@JSON_SIMPLE_PACKAGE@,$(JSON_SIMPLE_PACKAGE),' \ + {} \; -print cd biojava-jcolorbrewer && ant jar cd biojava-forester && ant jar cd biojava-core && ant jar @@ -102,6 +114,8 @@ rm -rf doc find . -name "*.class" -delete rm -rf buildtest + find . -type f -name \*.java.json-simple \ + -exec sh -c 'file={} && mv $$file $${file%.json-simple}' \; -print get-orig-source: debian/get-orig-source