Hi Antonin,
Am Freitag, den 04.12.2020, 21:46 +0100 schrieb Antonin Delpeuch (lists):
[...]
> It is not clear to me to what extent a Debian packaging project lends
> itself to fixed-term contracting, since maintaining the package will
> require continued work as we release new versions. Perhaps the project
> could include some mentoring of the upstream maintainers to assist with
> the packaging if possible? Or some provision to maintain the package for
> a few years, assuming most of the work lies in the initial packaging?
I had to do a quick analysis for OpenRefine to give you a proper answer. In
short OpenRefine is a complex project with many dependencies. It is most likely
suitable for Debian main and some work to package it for Debian is required. I
have attached the list of dependencies found with mvn dependency:resolve and
mvn dependency:list.
The initial work will be significant but the reoccurring maintenance is equally
important. It will be easier when the OpenRefine specific dependencies are only
updated when OpenRefine moves to a newer version. If the project depends on a
new dependency, then it must be packaged for Debian as well. Bug reports must
be handled, for instance when we move to OpenJDK 17 and a build-dependency
starts to fail to build from source, then something like that needs to be
addressed even if it is not under the control of the OpenRefine project.
Should OpenRefine move to another build system like Gradle then this would also
require additional work or when the project decided to rewrite Java code in
Kotlin.
OpenRefine build-depends on Apache Jena and Butterfly and several other
artifacts which haven't been packaged for Debian yet.
com.github.albfernandez:juniversalchardet:jar:2.4.0:compile
com.github.andrewoma.dexx:collection:jar:0.7:compile
com.google.errorprone:error_prone_annotations:jar:2.3.4:compile
com.google.guava:failureaccess:jar:1.0.1:compile
com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-
guava:compile
com.google.j2objc:j2objc-annotations:jar:1.3:compile
com.metaweb:lessen:jar:1.0:compile
com.wcohen:com.wcohen.secondstring:jar:0.1:compile
de.fau.cs.osr.ptk:ptk-common:jar:3.0.8:compile
de.fau.cs.osr.utils:utils:jar:3.0.8:compile
edu.mit.simile:tracer:jar:1.0:compile
net.rootdev:java-rdfa:jar:0.4.2:compile
org.mozilla:rhino-runtime:jar:1.7.13:compile (not sure if rhino.jar in Debian
is the same)
org.sweble.wikitext:swc-parser-lazy:jar:3.1.9:compile
org.odftoolkit:odfdom-java:jar:0.9.0-
org.openrefine.dependencies:arithcode:jar:1.2:compile
org.openrefine.dependencies:butterfly:jar:1.0.4:compile
org.openrefine.dependencies:opencsv-multichar:jar:2.4:compile
org.openrefine.dependencies:vicino:jar:1.2:compile
The server module depends on Jetty 6 which has been removed from Debian. This
quite ancient version is only available in Debian 8 "Jessie" at the moment. It
is not supported anymore. Here the project needs to depend on a newer,
supported Jetty version or at least depending on the current Jetty 9 version
shouldn't cause any problems.
The webapp depends on several Javascript files. I believe most of them are
available in Debian but in in any case I recommend to ship the non-minified
versions too because otherwise this is a reason for rejecting the package.
It makes sense to split the whole work into different smaller pieces. I would
package the main module first and all required build-dependencies and after
that try to tackle the server and extensions modules but I don't know if that
is really feasible. I suppose the extensions are important but optional but the
server probably is not.
I am open to discuss more details offlist and I can prepare a quote or an
estimate. If you or other OpenRefine project members help with packaging,
mentoring would also be possible. You can also just learn Debian packaging the
normal way, for example by reading the documentation linked on
https://mentors.debian.net/intro-maintainers/ and asking questions on debian-
mentors or debian-java.
Best,
Markus
Dependency list
================
Compile
=========
com.fasterxml.jackson.core:jackson-annotations:jar:2.11.3:compile -- module
com.fasterxml.jackson.annotation
com.fasterxml.jackson.core:jackson-core:jar:2.11.3:compile -- module
com.fasterxml.jackson.core
com.fasterxml.jackson.core:jackson-databind:jar:2.11.3:compile -- module
com.fasterxml.jackson.databind
com.github.albfernandez:juniversalchardet:jar:2.4.0:compile -- module
com.github.albfernandez.juniversalchardet [auto]
com.github.andrewoma.dexx:collection:jar:0.7:compile -- module collection
(auto) com.github.jsonld-java:jsonld-java:jar:0.12.1:compile -- module
jsonld.java (auto) com.github.virtuald:curvesapi:jar:1.06:compile --
module curvesapi (auto) com.google.code.findbugs:jsr305:jar:3.0.2:compile
-- module jsr305 (auto)
com.google.errorprone:error_prone_annotations:jar:2.3.4:compile -- module
com.google.errorprone.annotations [auto]
com.google.guava:failureaccess:jar:1.0.1:compile -- module failureaccess
(auto) com.google.guava:guava:jar:30.0-jre:compile -- module
com.google.common [auto]
com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-
guava:compile
-- module listenablefuture (auto)
com.google.j2objc:j2objc-annotations:jar:1.3:compile -- module
j2objc.annotations (auto)
com.metaweb:lessen:jar:1.0:compile -- module lessen (auto)
commons-beanutils:commons-beanutils:jar:1.9.4:compile -- module
commons.beanutils (auto) commons-cli:commons-cli:jar:1.4:compile -- module
commons.cli (auto) commons-codec:commons-codec:jar:1.13:compile -- module
org.apache.commons.codec [auto]
commons-collections:commons-collections:jar:3.2.2:compile -- module
commons.collections (auto)
commons-compress:commons-compress:jar:20050911:compile -- module
commons.compress (auto) commons-digester:commons-digester:jar:2.1:compile --
module commons.digester (auto)
commons-fileupload:commons-fileupload:jar:1.4:compile -- module
commons.fileupload (auto) commons-io:commons-io:jar:2.8.0:compile -- module
org.apache.commons.io [auto] commons-lang:commons-lang:jar:2.5:compile --
module commons.lang (auto) commons-logging:commons-logging:jar:1.2:compile --
module commons.logging (auto)
commons-validator:commons-validator:jar:1.7:compile -- module
commons.validator (auto)
com.wcohen:com.wcohen.secondstring:jar:0.1:compile -- module
com.wcohen.secondstring (auto) com.zaxxer:SparseBitSet:jar:1.2:compile --
module SparseBitSet (auto)
de.fau.cs.osr.ptk:ptk-common:jar:3.0.8:compile -- module ptk.common (auto)
de.fau.cs.osr.utils:utils:jar:3.0.8:compile -- module utils (auto)
edu.mit.simile:tracer:jar:1.0:compile -- module tracer (auto)
javax.activation:javax.activation-api:jar:1.2.0:compile -- module
java.activation [auto] javax.xml.bind:jaxb-api:jar:2.3.1:compile -- module
java.xml.bind joda-time:joda-time:jar:2.10.8:compile -- module
org.joda.time [auto] log4j:log4j:jar:1.2.16:compile -- module log4j (auto)
net.rootdev:java-rdfa:jar:0.4.2:compile -- module java.rdfa (auto)
oauth.signpost:signpost-commonshttp4:jar:2.1.1:compile -- module
signpost.commonshttp4 (auto) oauth.signpost:signpost-core:jar:2.1.1:compile
-- module signpost.core (auto)
org.apache.commons:commons-collections4:jar:4.4:compile -- module
org.apache.commons.collections4 [auto]
org.apache.commons:commons-compress:jar:1.20:compile -- module
org.apache.commons.compress [auto]
org.apache.commons:commons-csv:jar:1.5:compile -- module commons.csv (auto)
org.apache.commons:commons-lang3:jar:3.11:compile -- module
org.apache.commons.lang3 [auto]
org.apache.commons:commons-math3:jar:3.6.1:compile -- module commons.math3
(auto) org.apache.commons:commons-text:jar:1.9:compile -- module
org.apache.commons.text [auto]
org.apache.httpcomponents:httpclient-cache:jar:4.5.5:compile -- module
httpclient.cache (auto)
org.apache.httpcomponents:httpclient:jar:4.5.13:compile -- module
org.apache.httpcomponents.httpclient [auto]
org.apache.httpcomponents:httpcore:jar:4.4.14:compile -- module
org.apache.httpcomponents.httpcore [auto]
org.apache.jena:jena-arq:jar:3.9.0:compile -- module org.apache.jena.arq
[auto] org.apache.jena:jena-base:jar:3.9.0:compile -- module
org.apache.jena.base [auto] org.apache.jena:jena-cmds:jar:3.9.0:compile --
module org.apache.jena.cmds [auto]
org.apache.jena:jena-core:jar:3.9.0:compile -- module org.apache.jena.core
[auto] org.apache.jena:jena-dboe-base:jar:3.9.0:compile -- module
org.apache.jena.dboe [auto] org.apache.jena:jena-dboe-index:jar:3.9.0:compile
-- module org.apache.jena.dboe [auto]
org.apache.jena:jena-dboe-transaction:jar:3.9.0:compile -- module
org.apache.jena.dboe [auto]
org.apache.jena:jena-dboe-trans-data:jar:3.9.0:compile -- module
org.apache.jena.dboe [auto] org.apache.jena:jena-iri:jar:3.9.0:compile --
module org.apache.jena.iri [auto]
org.apache.jena:jena-rdfconnection:jar:3.9.0:compile -- module
org.apache.jena.rdfconnection [auto]
org.apache.jena:jena-shaded-guava:jar:3.9.0:compile -- module
org.apache.jena.ext.com.google [auto]
org.apache.jena:jena-tdb2:jar:3.9.0:compile -- module org.apache.jena.tdb2
[auto] org.apache.jena:jena-tdb:jar:3.9.0:compile -- module
org.apache.jena.tdb [auto] org.apache.poi:poi:jar:4.1.2:compile -- module poi
(auto) org.apache.poi:poi-ooxml:jar:4.1.2:compile -- module poi.ooxml (auto)
org.apache.poi:poi-ooxml-schemas:jar:4.1.2:compile -- module
poi.ooxml.schemas (auto) org.apache.thrift:libthrift:jar:0.10.0:compile --
module libthrift (auto) org.apache.velocity:velocity:jar:1.6.3:compile --
module velocity (auto) org.apache.xmlbeans:xmlbeans:jar:3.1.0:compile --
module xmlbeans (auto) org.checkerframework:checker-qual:jar:3.5.0:compile --
module org.checkerframework.checker.qual [auto]
org.clojure:clojure:jar:1.10.1:compile -- module clojure (auto)
org.clojure:core.specs.alpha:jar:0.2.44:compile -- module core.specs.alpha
(auto) org.clojure:spec.alpha:jar:0.2.176:compile -- module spec.alpha (auto)
org.jsoup:jsoup:jar:1.13.1:compile -- module org.jsoup [auto]
org.marc4j:marc4j:jar:2.9.1:compile -- module marc4j (auto)
org.slf4j:jcl-over-slf4j:jar:1.7.25:compile -- module jcl.over.slf4j (auto)
org.slf4j:slf4j-api:jar:1.7.30:compile -- module org.slf4j [auto]
org.slf4j:slf4j-log4j12:jar:1.7.30:compile -- module slf4j.log4j12 (auto)
org.mozilla:rhino-runtime:jar:1.7.13:compile -- module rhino.runtime (auto)
org.sweble.wikitext:swc-parser-lazy:jar:3.1.9:compile -- module
swc.parser.lazy (auto) oro:oro:jar:2.0.8:compile -- module oro (auto)
rhino:js:jar:1.7R2:compile -- module js (auto)
velocity:velocity:jar:1.5:compile -- module velocity (auto)
xerces:xercesImpl:jar:2.12.0:compile -- module xercesImpl (auto)
xml-apis:xml-apis:jar:1.4.01:compile -- module xml.apis (auto)
xtc:rats-runtime:jar:1.15.0:compile -- module rats.runtime (auto)
org.odftoolkit:odfdom-java:jar:0.9.0-RC1:compile -- module odfdom.java (auto)
org.openrefine.dependencies:arithcode:jar:1.2:compile -- module arithcode
(auto)
org.openrefine.dependencies:butterfly:jar:1.0.4:compile -- module
butterfly (auto)
org.openrefine.dependencies:opencsv-multichar:jar:2.4:compile -- module
opencsv.multichar (auto)
org.openrefine.dependencies:vicino:jar:1.2:compile -- module vicino (auto)
Test
========
aopalliance:aopalliance:jar:1.0:test -- module aopalliance (auto)
com.beust:jcommander:jar:1.78:test -- module jcommander (auto)
com.google.inject:guice:jar:no_aop:4.2.2:test -- module com.google.guice
[auto] com.squareup.okhttp3:mockwebserver:jar:4.9.0:test -- module
okhttp3.mockwebserver [auto] com.squareup.okhttp3:okhttp:jar:4.9.0:test --
module okhttp3 [auto] com.squareup.okio:okio:jar:2.8.0:test -- module okio
(auto) javax.inject:javax.inject:jar:1:test -- module javax.inject (auto)
junit:junit:jar:4.12:test -- module junit (auto)
net.bytebuddy:byte-buddy-agent:jar:1.10.14:test -- module net.bytebuddy.agent
net.bytebuddy:byte-buddy:jar:1.10.14:test -- module net.bytebuddy
org.apache.ant:ant:jar:1.10.3:test -- module ant (auto)
org.apache.ant:ant-launcher:jar:1.10.3:test -- module ant.launcher (auto)
org.apache.httpcomponents:httpmime:jar:4.5.13:test -- module
org.apache.httpcomponents.httpmime [auto]
org.hamcrest:hamcrest-core:jar:1.3:test -- module hamcrest.core (auto)
org.javassist:javassist:jar:3.27.0-GA:test -- module javassist (auto)
org.jetbrains:annotations:jar:13.0:test -- module annotations (auto)
org.jetbrains.kotlin:kotlin-stdlib-common:jar:1.4.0:test -- module
kotlin.stdlib.common (auto) org.jetbrains.kotlin:kotlin-stdlib:jar:1.4.10:test
-- module kotlin.stdlib
org.jetbrains.kotlin:kotlin-stdlib-jdk7:jar:1.4.10:test -- module
kotlin.stdlib.jdk7 org.jetbrains.kotlin:kotlin-stdlib-jdk8:jar:1.4.10:test --
module kotlin.stdlib.jdk8 org.mockito:mockito-core:jar:3.3.3:test -- module
org.mockito [auto] org.objenesis:objenesis:jar:2.6:test -- module objenesis
(auto)
org.powermock:powermock-api-mockito2:jar:2.0.9:test -- module
powermock.api.mockito2 (auto)
org.powermock:powermock-api-support:jar:2.0.9:test -- module
powermock.api.support (auto) org.powermock:powermock-core:jar:2.0.9:test --
module powermock.core (auto)
org.powermock:powermock-module-testng-common:jar:2.0.9:test -- module
powermock.module.testng.common (auto)
org.powermock:powermock-module-testng:jar:2.0.9:test -- module
powermock.module.testng (auto) org.powermock:powermock-reflect:jar:2.0.9:test
-- module powermock.reflect (auto) org.testng:testng:jar:7.3.0:test -- module
org.testng [auto] org.yaml:snakeyaml:jar:1.21:test -- module snakeyaml (auto)
javax.servlet:servlet-api:jar:2.5:provided -- module servlet.api (auto)
org.apache.jena:apache-jena-libs:pom:3.9.0
Attachment:
signature.asc
Description: This is a digitally signed message part