summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Schubert <erich@debian.org>2016-01-08 18:02:39 +0100
committerAndrej Shadura <andrewsh@debian.org>2019-03-09 22:30:45 +0000
commitaee1a6e43bd1a264226de31eadf10003c46d47c6 (patch)
tree33a3b41710ea62746ca0560febafb4ecebf332f0
parentbfe7f5ccc31ffa1f1df74a724d1b04fc8742e1a3 (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/changelog16
-rw-r--r--debian/control9
-rw-r--r--debian/extra/elki5
-rw-r--r--debian/extra/elki-cli5
-rw-r--r--debian/patches/javadoc-encoding.patch36
-rw-r--r--debian/patches/repeatable-documentation.patch235
-rwxr-xr-xdebian/rules2
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: