diff options
author | Erich Schubert <erich@debian.org> | 2016-01-08 18:02:39 +0100 |
---|---|---|
committer | Andrej Shadura <andrewsh@debian.org> | 2019-03-09 22:30:45 +0000 |
commit | aee1a6e43bd1a264226de31eadf10003c46d47c6 (patch) | |
tree | 33a3b41710ea62746ca0560febafb4ecebf332f0 | |
parent | bfe7f5ccc31ffa1f1df74a724d1b04fc8742e1a3 (diff) |
Import Debian changes 0.7.0-6
elki (0.7.0-6) unstable; urgency=medium
* Add missing libsvm3-java dependency (Thanks, Tomas Barton)
Unfortunately, debian-maven-helper does not automatically add this,
because the libsvm3-java package does not include a pom.
* Use find_jars to locate batik, which resolves problems with batik 1.7
(When using the /usr/bin/elki commands - please upgrade to batik 1.8
or adjust your classpath if you see the error
NoClassDefFoundError: org/apache/batik/dom/anim/AnimationTarget)
* Require libbatik-java >= 1.8 for building, 1.7 lacks pom data.
* Remove execute bit from all files in source jars, not just .java files.
* Add fop (libfop-java) to the classpath, for eps, pdf, ps export.
* Suggest libfop-java instead of making it an "alternative" to batik
-rw-r--r-- | debian/changelog | 16 | ||||
-rw-r--r-- | debian/control | 9 | ||||
-rw-r--r-- | debian/extra/elki | 5 | ||||
-rw-r--r-- | debian/extra/elki-cli | 5 | ||||
-rw-r--r-- | debian/patches/javadoc-encoding.patch | 36 | ||||
-rw-r--r-- | debian/patches/repeatable-documentation.patch | 235 | ||||
-rwxr-xr-x | debian/rules | 2 |
7 files changed, 301 insertions, 7 deletions
diff --git a/debian/changelog b/debian/changelog index 594a6a2e..23679db7 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,19 @@ +elki (0.7.0-6) unstable; urgency=medium + + * Add missing libsvm3-java dependency (Thanks, Tomas Barton) + Unfortunately, debian-maven-helper does not automatically add this, + because the libsvm3-java package does not include a pom. + * Use find_jars to locate batik, which resolves problems with batik 1.7 + (When using the /usr/bin/elki commands - please upgrade to batik 1.8 + or adjust your classpath if you see the error + NoClassDefFoundError: org/apache/batik/dom/anim/AnimationTarget) + * Require libbatik-java >= 1.8 for building, 1.7 lacks pom data. + * Remove execute bit from all files in source jars, not just .java files. + * Add fop (libfop-java) to the classpath, for eps, pdf, ps export. + * Suggest libfop-java instead of making it an "alternative" to batik + + -- Erich Schubert <erich@debian.org> Fri, 08 Jan 2016 18:02:39 +0100 + elki (0.7.0-5) unstable; urgency=low * Cherry-pick important bug fixes from upstream. diff --git a/debian/control b/debian/control index 617a131a..0a6c09dc 100644 --- a/debian/control +++ b/debian/control @@ -3,7 +3,8 @@ Section: science Priority: extra Maintainer: Erich Schubert <erich@debian.org> Build-Depends: debhelper (>= 9), openjdk-7-jdk | java7-sdk, maven-debian-helper (>= 1.5), - libbatik-java, libsvm3-java, libtrove3-java, libxmlgraphics-commons-java, maven (>= 3), + libbatik-java (>= 1.8), libxmlgraphics-commons-java, + libsvm3-java, libtrove3-java, maven (>= 3), libmaven-antrun-plugin-java (>= 1.7), libmaven-antrun-plugin-java (<< 1.8), libmaven-compiler-plugin-java (>= 3.2), libmaven-compiler-plugin-java (<< 3.3), libmaven-exec-plugin-java (>= 1.1.1), libmaven-exec-plugin-java (<< 1.2), @@ -11,14 +12,14 @@ Build-Depends: debhelper (>= 9), openjdk-7-jdk | java7-sdk, maven-debian-helper libmaven-resources-plugin-java (>= 2.6), libmaven-resources-plugin-java (<< 2.7), libmaven-source-plugin-java (>= 2.4), libmaven-source-plugin-java (<< 2.5), libsurefire-java (>= 2.17), libsurefire-java (<< 2.18), junit4, - openjdk-7-doc | default-jdk-doc + default-jdk-doc Standards-Version: 3.9.6 Homepage: http://elki.dbs.ifi.lmu.de/ Package: elki Architecture: all -Depends: default-jre (>= 2:1.7) | java7-runtime, ${misc:Depends}, ${maven:Depends}, fop | libbatik-java -Suggests: elki-dev, ${maven:OptionalDepends} +Depends: default-jre (>= 2:1.7) | java7-runtime, ${misc:Depends}, ${maven:Depends}, libbatik-java, libsvm3-java +Suggests: elki-dev, libfop-java, ${maven:OptionalDepends} Description: Data mining algorithm development framework ELKI: "Environment for Developing KDD-Applications Supported by Index-Structures" is a development framework for data mining algorithms diff --git a/debian/extra/elki b/debian/extra/elki index c0319c9d..447d3769 100644 --- a/debian/extra/elki +++ b/debian/extra/elki @@ -3,6 +3,9 @@ find_java_runtime openjdk8 oracle8 java8 openjdk7 oracle7 java7 -find_jars elki /usr/share/elki/addons/*.jar libsvm3 +find_jars elki /usr/share/elki/addons/*.jar libsvm3 batik-all + +# FOP is not strictly required +find_jars fop 2> /dev/null run_java de.lmu.ifi.dbs.elki.application.ELKILauncher "$@" diff --git a/debian/extra/elki-cli b/debian/extra/elki-cli index 9872aaf9..43f9d6f0 100644 --- a/debian/extra/elki-cli +++ b/debian/extra/elki-cli @@ -3,6 +3,9 @@ find_java_runtime openjdk8 oracle8 java8 openjdk7 oracle7 java7 -find_jars elki /usr/share/elki/addons/*.jar libsvm3 +find_jars elki /usr/share/elki/addons/*.jar libsvm3 batik-all + +# FOP is not strictly required +find_jars fop 2> /dev/null run_java de.lmu.ifi.dbs.elki.application.KDDCLIApplication "$@" diff --git a/debian/patches/javadoc-encoding.patch b/debian/patches/javadoc-encoding.patch index f91dbcde..fcb60b12 100644 --- a/debian/patches/javadoc-encoding.patch +++ b/debian/patches/javadoc-encoding.patch @@ -25,3 +25,39 @@ Index: elki-0.7.0/pom.xml </configuration> </plugin> </plugins> +Index: elki-0.7.0/addons/batikvis/pom.xml +=================================================================== +--- elki-0.7.0.orig/addons/batikvis/pom.xml ++++ elki-0.7.0/addons/batikvis/pom.xml +@@ -1,3 +1,4 @@ ++<?xml version='1.0' encoding='UTF-8'?> + <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> +Index: elki-0.7.0/addons/libsvm/pom.xml +=================================================================== +--- elki-0.7.0.orig/addons/libsvm/pom.xml ++++ elki-0.7.0/addons/libsvm/pom.xml +@@ -1,3 +1,4 @@ ++<?xml version='1.0' encoding='UTF-8'?> + <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> +Index: elki-0.7.0/addons/tutorial/pom.xml +=================================================================== +--- elki-0.7.0.orig/addons/tutorial/pom.xml ++++ elki-0.7.0/addons/tutorial/pom.xml +@@ -1,3 +1,4 @@ ++<?xml version='1.0' encoding='UTF-8'?> + <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> +Index: elki-0.7.0/elki/pom.xml +=================================================================== +--- elki-0.7.0.orig/elki/pom.xml ++++ elki-0.7.0/elki/pom.xml +@@ -1,3 +1,4 @@ ++<?xml version='1.0' encoding='UTF-8'?> + <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> diff --git a/debian/patches/repeatable-documentation.patch b/debian/patches/repeatable-documentation.patch index a7562c62..da33b86b 100644 --- a/debian/patches/repeatable-documentation.patch +++ b/debian/patches/repeatable-documentation.patch @@ -77,3 +77,238 @@ index 7d448fc..3b9f029 100644 documentReferencesWiki(refs, refstreamW); refstreamW.flush(); refstreamW.close(); +commit 03b1d86f6101ce74ac7318720cf5679b3a4ea4b2 +Author: Erich Schubert <schube@dbs.ifi.lmu.de> +Date: Fri Jan 8 16:17:43 2016 +0100 + + Stricter sorting of references. + +diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/application/internal/DocumentReferences.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/application/internal/DocumentReferences.java +index 3b9f029..04b6a89 100644 +--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/application/internal/DocumentReferences.java ++++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/application/internal/DocumentReferences.java +@@ -330,7 +330,28 @@ public class DocumentReferences { + @Override + public int compare(Pair<Reference, TreeSet<Object>> p1, Pair<Reference, TreeSet<Object>> p2) { + final Object o1 = p1.second.first(), o2 = p2.second.first(); +- return COMPARATOR.compare(o1, o2); ++ int c = COMPARATOR.compare(o1, o2); ++ if(c == 0) { ++ Reference r1 = p1.first, r2 = p2.first; ++ c = compareNull(r1.title(), r2.title()); ++ c = (c != 0) ? c : compareNull(r1.authors(), r2.authors()); ++ c = (c != 0) ? c : compareNull(r1.booktitle(), r2.booktitle()); ++ } ++ return c; ++ } ++ ++ /** ++ * Null-tolerant String comparison. ++ * ++ * @param s1 First string ++ * @param s2 Second string ++ * @return Order ++ */ ++ private int compareNull(String s1, String s2) { ++ return (s1 == s2) ? 0 // ++ : (s1 == null) ? -1 // ++ : (s2 == null) ? +1 // ++ : s1.compareTo(s2); + } + }); + return refs; + +commit a24a37a0c6410a5373d1bd25811d62ff96f5cdc8 +Author: Erich Schubert <schube@dbs.ifi.lmu.de> +Date: Fri Jan 8 16:19:26 2016 +0100 + + Stricter sorting of parameter occurrences. + +diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/application/internal/DocumentParameters.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/application/internal/DocumentParameters.java +index cdbad00..90a6ec9 100644 +--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/application/internal/DocumentParameters.java ++++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/application/internal/DocumentParameters.java +@@ -724,9 +724,18 @@ public class DocumentParameters { + Element maindl = htmldoc.createElement(HTMLUtil.HTML_DL_TAG); + body.appendChild(maindl); + +- List<OptionID> opts = new ArrayList<>(byopt.keySet()); +- Collections.sort(opts, new SortByOption()); ++ final Comparator<OptionID> osort = new SortByOption(); ++ final Comparator<Class<?>> csort = new ELKIServiceScanner.ClassSorter(); ++ Comparator<Pair<Parameter<?>, Class<?>>> psort = new Comparator<Pair<Parameter<?>, Class<?>>>() { ++ @Override ++ public int compare(Pair<Parameter<?>, Class<?>> o1, Pair<Parameter<?>, Class<?>> o2) { ++ int c = osort.compare(o1.first.getOptionID(), o2.first.getOptionID()); ++ return (c != 0) ? c : csort.compare(o1.second, o2.second); ++ } ++ }; + ++ List<OptionID> opts = new ArrayList<>(byopt.keySet()); ++ Collections.sort(opts, osort); + for(OptionID oid : opts) { + final Parameter<?> firstopt = byopt.get(oid).get(0).getFirst(); + // DT = definition term +@@ -791,7 +800,9 @@ public class DocumentParameters { + optdd.appendChild(p); + } + optdd.appendChild(classesul); +- for(Pair<Parameter<?>, Class<?>> clinst : byopt.get(oid)) { ++ List<Pair<Parameter<?>, Class<?>>> plist = byopt.get(oid); ++ Collections.sort(plist, psort); ++ for(Pair<Parameter<?>, Class<?>> clinst : plist) { + // DT definition term: option name, in TT for typewriter optics + Element classli = htmldoc.createElement(HTMLUtil.HTML_LI_TAG); + + +commit 83cb0dbda65e1e1f72d1cd9ba9c9cd66ea5fb3d0 +Author: Erich Schubert <schube@dbs.ifi.lmu.de> +Date: Fri Jan 8 15:25:24 2016 +0100 + + Fix getDefaultValueAsString() for ListParameter subclasses. + +diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/application/internal/DocumentParameters.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/application/internal/DocumentParameters.java +index 90a6ec9..4b9a5e0 100644 +--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/application/internal/DocumentParameters.java ++++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/application/internal/DocumentParameters.java +@@ -1039,8 +1039,7 @@ public class DocumentParameters { + p.appendChild(htmldoc.createTextNode("use global random seed")); + } + else { +- Object def = par.getDefaultValue(); +- p.appendChild(htmldoc.createTextNode(def.toString())); ++ p.appendChild(htmldoc.createTextNode(par.getDefaultValueAsString())); + } + optdd.appendChild(p); + } +@@ -1069,8 +1068,7 @@ public class DocumentParameters { + out.print("use global random seed"); + } + else { +- Object def = par.getDefaultValue(); +- out.print(def.toString()); ++ out.print(par.getDefaultValueAsString()); + } + out.println(); + } +diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/ClassListParameter.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/ClassListParameter.java +index d9d1a3a..f4f70a4 100644 +--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/ClassListParameter.java ++++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/ClassListParameter.java +@@ -96,6 +96,23 @@ public class ClassListParameter<C> extends ListParameter<ClassListParameter<C>, + return buf.toString(); + } + ++ @Override ++ public String getDefaultValueAsString() { ++ StringBuilder buf = new StringBuilder(); ++ final String defPackage = restrictionClass.getPackage().getName() + "."; ++ for(Class<? extends C> c : getDefaultValue()) { ++ if(buf.length() > 0) { ++ buf.append(LIST_SEP); ++ } ++ String name = c.getName(); ++ if(name.startsWith(defPackage)) { ++ name = name.substring(defPackage.length()); ++ } ++ buf.append(name); ++ } ++ return buf.toString(); ++ } ++ + @SuppressWarnings("unchecked") + @Override + protected List<Class<? extends C>> parseValue(Object obj) throws ParameterException { +diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/DoubleListParameter.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/DoubleListParameter.java +index 074bb0e..e8a59cb 100644 +--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/DoubleListParameter.java ++++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/DoubleListParameter.java +@@ -60,6 +60,11 @@ public class DoubleListParameter extends ListParameter<DoubleListParameter, doub + } + + @Override ++ public String getDefaultValueAsString() { ++ return FormatUtil.format(getDefaultValue(), LIST_SEP); ++ } ++ ++ @Override + protected double[] parseValue(Object obj) throws ParameterException { + if(obj instanceof double[]) { + return double[].class.cast(obj); +diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/FileListParameter.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/FileListParameter.java +index e5f1b02..02b397f 100644 +--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/FileListParameter.java ++++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/FileListParameter.java +@@ -89,6 +89,20 @@ public class FileListParameter extends ListParameter<FileListParameter, List<Fil + return buf.toString(); + } + ++ @Override ++ public String getDefaultValueAsString() { ++ StringBuilder buf = new StringBuilder(); ++ List<File> val = getDefaultValue(); ++ Iterator<File> veciter = val.iterator(); ++ while(veciter.hasNext()) { ++ buf.append(veciter.next()); ++ if (veciter.hasNext()) { ++ buf.append(LIST_SEP); ++ } ++ } ++ return buf.toString(); ++ } ++ + @SuppressWarnings("unchecked") + @Override + protected List<File> parseValue(Object obj) throws ParameterException { +diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/IntListParameter.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/IntListParameter.java +index 756dbb9..0f2306e 100644 +--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/IntListParameter.java ++++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/IntListParameter.java +@@ -70,6 +70,21 @@ public class IntListParameter extends ListParameter<IntListParameter, int[]> { + } + + @Override ++ public String getDefaultValueAsString() { ++ int[] val = getDefaultValue(); ++ if(val.length == 0) { ++ return ""; ++ } ++ StringBuilder buf = new StringBuilder(); ++ buf.append(val[0]); ++ for(int i = 1; i < val.length; i++) { ++ buf.append(LIST_SEP); ++ buf.append(val[i]); ++ } ++ return buf.toString(); ++ } ++ ++ @Override + protected int[] parseValue(Object obj) throws ParameterException { + if(obj instanceof int[]) { + return (int[]) obj; +diff --git a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/VectorListParameter.java b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/VectorListParameter.java +index b6d999f..815611a 100644 +--- a/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/VectorListParameter.java ++++ b/elki/src/main/java/de/lmu/ifi/dbs/elki/utilities/optionhandling/parameters/VectorListParameter.java +@@ -122,6 +122,21 @@ public class VectorListParameter extends ListParameter<VectorListParameter, List + return buf.toString(); + } + ++ @Override ++ public String getDefaultValueAsString() { ++ StringBuilder buf = new StringBuilder(); ++ List<Vector> val = getDefaultValue(); ++ Iterator<Vector> valiter = val.iterator(); ++ while(valiter.hasNext()) { ++ buf.append(FormatUtil.format(valiter.next().getArrayRef(), LIST_SEP)); ++ // Append separation character ++ if(valiter.hasNext()) { ++ buf.append(VECTOR_SEP); ++ } ++ } ++ return buf.toString(); ++ } ++ + @SuppressWarnings("unchecked") + @Override + protected List<Vector> parseValue(Object obj) throws ParameterException { diff --git a/debian/rules b/debian/rules index 7c7e06db..85c68c10 100755 --- a/debian/rules +++ b/debian/rules @@ -11,7 +11,7 @@ MVN=/usr/share/maven/bin/mvn -Dmaven.repo.local=$(REPO) override_dh_auto_configure: # Remove unneded executable bits: - find -type f -name "*.java" -executable -exec chmod -x {} \+ + find elki addons data -type f -executable -exec chmod -x {} \+ dh_auto_configure -O--buildsystem=maven #build: |