[tika] 01/01: Initial packaging
Emmanuel Bourg
ebourg-guest at moszumanska.debian.org
Thu Jul 17 10:10:27 UTC 2014
This is an automated email from the git hooks/post-receive script.
ebourg-guest pushed a commit to branch master
in repository tika.
commit cbeb228643362b9111361cf3851af487eaf8e0bc
Author: Emmanuel Bourg <ebourg at apache.org>
Date: Thu Jul 17 11:22:27 2014 +0200
Initial packaging
---
debian/README.source | 9 +
debian/changelog | 5 +
debian/compat | 1 +
debian/control | 37 +++
debian/copyright | 43 +++
debian/libtika-java.poms | 36 +++
debian/maven.ignoreRules | 19 ++
debian/maven.properties | 6 +
debian/maven.publishedRules | 2 +
debian/maven.rules | 6 +
debian/orig-tar.sh | 20 ++
debian/patches/01-jar-packaging.patch | 25 ++
debian/patches/02-ignore-mp4parser.patch | 320 +++++++++++++++++++++
debian/patches/03-ignore-netcdf.patch | 245 ++++++++++++++++
debian/patches/04-ignore-jhighlight.patch | 140 +++++++++
debian/patches/05-osgi-compatibility.patch | 23 ++
.../patches/06-optional-parser-dependencies.patch | 149 ++++++++++
debian/patches/series | 6 +
debian/rules | 10 +
debian/source/format | 1 +
debian/watch | 4 +
21 files changed, 1107 insertions(+)
diff --git a/debian/README.source b/debian/README.source
new file mode 100644
index 0000000..bd28a42
--- /dev/null
+++ b/debian/README.source
@@ -0,0 +1,9 @@
+Information about tika
+----------------------
+
+This package was debianized using the mh_make command
+from the maven-debian-helper package.
+
+The build system uses Maven but prevents it from downloading
+anything from the Internet, making the build compliant with
+the Debian policy.
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..c1c366f
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,5 @@
+tika (1.5-1) unstable; urgency=medium
+
+ * Initial release (Closes: #499606)
+
+ -- Emmanuel Bourg <ebourg at apache.org> Thu, 17 Jul 2014 12:08:17 +0200
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+9
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..9c20660
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,37 @@
+Source: tika
+Section: java
+Priority: optional
+Maintainer: Debian Java Maintainers <pkg-java-maintainers at lists.alioth.debian.org>
+Uploaders: Emmanuel Bourg <ebourg at apache.org>
+Build-Depends: cdbs, debhelper (>= 9), default-jdk, maven-debian-helper (>= 1.5)
+Build-Depends-Indep: bnd (>= 1.43.0),
+ libapache-mime4j-java (>= 0.7.2-3),
+ libapache-poi-java,
+ libasm4-java,
+ libbcmail-java,
+ libboilerpipe-java,
+ libcommons-compress-java,
+ libjempbox-java,
+ libjuniversalchardet-java,
+ libmaven-bundle-plugin-java,
+ libmetadata-extractor-java,
+ libpdfbox-java,
+ librome-java,
+ libtagsoup-java,
+ libxmpcore-java
+Standards-Version: 3.9.5
+Vcs-Git: git://anonscm.debian.org/pkg-java/tika.git
+Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-java/tika.git
+Homepage: http://tika.apache.org
+
+Package: libtika-java
+Architecture: all
+Depends: ${maven:Depends}, ${misc:Depends}
+Suggests: ${maven:OptionalDepends}
+Description: Apache Tika - content analysis toolkit
+ The Apache Tika toolkit detects and extracts metadata and text content
+ from various documents (PPT, CSV, PDF, MP3, HTML and more) using existing
+ parser libraries. Tika unifies these parsers under a single interface to
+ allow you to easily parse over a thousand different file types. Tika is
+ useful for search engine indexing, content analysis, translation, and much
+ more.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..cdd77b4
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,43 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: Apache Tika
+Source: http://tika.apache.org
+
+Files: *
+Copyright: 2007-2014, The Apache Software Foundation
+License: Apache-2.0
+
+Files: tika-parsers/src/main/java/org/apache/tika/parser/txt/Charset*.java
+Copyright: 1995-2009, International Business Machines Corporation
+License: Expat
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, and/or sell copies of the Software, and to permit persons
+ to whom the Software is furnished to do so, provided that the above
+ copyright notice(s) and this permission notice appear in all copies
+ of the Software and that both the above copyright notice(s) and this
+ permission notice appear in supporting documentation.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.
+ IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE
+ BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES,
+ OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+ WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ SOFTWARE.
+ .
+ Except as contained in this notice, the name of a copyright holder shall
+ not be used in advertising or otherwise to promote the sale, use or other
+ dealings in this Software without prior written authorization of the
+ copyright holder.
+
+Files: debian/*
+Copyright: 2014, Emmanuel Bourg <ebourg at apache.org>
+License: Apache-2.0
+
+License: Apache-2.0
+ On Debian systems, the full text of the Apache-2.0 license
+ can be found in the file '/usr/share/common-licenses/Apache-2.0'
diff --git a/debian/libtika-java.poms b/debian/libtika-java.poms
new file mode 100644
index 0000000..4aee318
--- /dev/null
+++ b/debian/libtika-java.poms
@@ -0,0 +1,36 @@
+# List of POM files for the package
+# Format of this file is:
+# <path to pom file> [option]*
+# where option can be:
+# --ignore: ignore this POM and its artifact if any
+# --ignore-pom: don't install the POM. To use on POM files that are created
+# temporarily for certain artifacts such as Javadoc jars. [mh_install, mh_installpoms]
+# --no-parent: remove the <parent> tag from the POM
+# --package=<package>: an alternative package to use when installing this POM
+# and its artifact
+# --has-package-version: to indicate that the original version of the POM is the same as the upstream part
+# of the version for the package.
+# --keep-elements=<elem1,elem2>: a list of XML elements to keep in the POM
+# during a clean operation with mh_cleanpom or mh_installpom
+# --artifact=<path>: path to the build artifact associated with this POM,
+# it will be installed when using the command mh_install. [mh_install]
+# --java-lib: install the jar into /usr/share/java to comply with Debian
+# packaging guidelines
+# --usj-name=<name>: name to use when installing the library in /usr/share/java
+# --usj-version=<version>: version to use when installing the library in /usr/share/java
+# --no-usj-versionless: don't install the versionless link in /usr/share/java
+# --dest-jar=<path>: the destination for the real jar.
+# It will be installed with mh_install. [mh_install]
+# --classifier=<classifier>: Optional, the classifier for the jar. Empty by default.
+# --site-xml=<location>: Optional, the location for site.xml if it needs to be installed.
+# Empty by default. [mh_install]
+#
+pom.xml --no-parent --has-package-version
+tika-parent/pom.xml --no-parent --has-package-version
+tika-core/pom.xml --has-package-version --java-lib
+tika-parsers/pom.xml --has-package-version --java-lib
+tika-xmp/pom.xml --has-package-version --java-lib
+tika-app/pom.xml --ignore
+tika-bundle/pom.xml --ignore
+tika-server/pom.xml --ignore
+tika-java7/pom.xml --has-package-version --java-lib
diff --git a/debian/maven.ignoreRules b/debian/maven.ignoreRules
new file mode 100644
index 0000000..52eee04
--- /dev/null
+++ b/debian/maven.ignoreRules
@@ -0,0 +1,19 @@
+
+com.googlecode.mp4parser isoparser * * * *
+com.uwyn jhighlight * * * *
+edu.ucar netcdf * * * *
+junit junit * * * *
+org.apache.felix maven-scr-plugin * * * *
+org.apache.felix org.apache.felix.scr.annotations * * * *
+org.apache.geronimo.specs geronimo-stax-api_1.0_spec * * * *
+org.apache.maven.plugins maven-deploy-plugin * * * *
+org.apache.maven.plugins maven-failsafe-plugin * * * *
+org.apache.maven.plugins maven-site-plugin * * * *
+org.apache.rat apache-rat-plugin * * * *
+org.apache.tika tika-app * * * *
+org.apache.tika tika-bundle * * * *
+org.apache.tika tika-server * * * *
+org.codehaus.mojo clirr-maven-plugin * * * *
+org.gagravarr vorbis-java-core * * * *
+org.gagravarr vorbis-java-tika * * * *
+org.mockito * * * * *
diff --git a/debian/maven.properties b/debian/maven.properties
new file mode 100644
index 0000000..242da7e
--- /dev/null
+++ b/debian/maven.properties
@@ -0,0 +1,6 @@
+# Include here properties to pass to Maven during the build.
+# For example:
+# maven.test.skip=true
+
+maven.test.skip=true
+project.build.sourceEncoding=UTF-8
diff --git a/debian/maven.publishedRules b/debian/maven.publishedRules
new file mode 100644
index 0000000..bf29703
--- /dev/null
+++ b/debian/maven.publishedRules
@@ -0,0 +1,2 @@
+
+org.apache.tika tika-core s/jar/bundle/ s/.*/debian/ * *
diff --git a/debian/maven.rules b/debian/maven.rules
new file mode 100644
index 0000000..0e2e357
--- /dev/null
+++ b/debian/maven.rules
@@ -0,0 +1,6 @@
+
+org.bouncycastle s/bcmail-jdk15/bcmail/ * s/.*/debian/ * *
+org.bouncycastle s/bcmail-jdk15on/bcmail/ * s/.*/debian/ * *
+org.bouncycastle s/bcprov-jdk15/bcprov/ * s/.*/debian/ * *
+org.bouncycastle s/bcprov-jdk15on/bcprov/ * s/.*/debian/ * *
+org.ow2.asm * * s/.*/4.x/ * *
diff --git a/debian/orig-tar.sh b/debian/orig-tar.sh
new file mode 100755
index 0000000..e2394b8
--- /dev/null
+++ b/debian/orig-tar.sh
@@ -0,0 +1,20 @@
+#!/bin/sh -e
+#
+# Removes unwanted content from the upstream sources.
+# Called by uscan with '--upstream-version' <version> <file>
+#
+
+VERSION=$2
+TAR=../tika_$VERSION.orig.tar.xz
+DIR=tika-$VERSION
+TAG=$(echo "$VERSION" | sed -re's/~(alpha|beta)/-\1-/')
+
+svn export http://svn.apache.org/repos/asf/tika/tags/${TAG}/ $DIR
+XZ_OPT=--best tar -c -J -f $TAR --exclude '*.jar' --exclude '*.class' --exclude '*/test/resources/*' $DIR
+rm -rf $DIR ../$TAG
+
+# move to directory 'tarballs'
+if [ -r .svn/deb-layout ]; then
+ . .svn/deb-layout
+ mv $TAR $origDir && echo "moved $TAR to $origDir"
+fi
diff --git a/debian/patches/01-jar-packaging.patch b/debian/patches/01-jar-packaging.patch
new file mode 100644
index 0000000..3186ec0
--- /dev/null
+++ b/debian/patches/01-jar-packaging.patch
@@ -0,0 +1,25 @@
+Description: Change the Maven packaging from bundle to jar to avoid build issues with maven-debian-helper
+Author: Emmanuel Bourg <ebourg at apache.org>
+Forwarded: not-needed
+--- a/tika-core/pom.xml
++++ b/tika-core/pom.xml
+@@ -30,7 +30,7 @@
+ </parent>
+
+ <artifactId>tika-core</artifactId>
+- <packaging>bundle</packaging>
++ <packaging>jar</packaging>
+ <name>Apache Tika core</name>
+ <url>http://tika.apache.org/</url>
+
+--- a/tika-parsers/pom.xml
++++ b/tika-parsers/pom.xml
+@@ -30,7 +30,7 @@
+ </parent>
+
+ <artifactId>tika-parsers</artifactId>
+- <packaging>bundle</packaging>
++ <packaging>jar</packaging>
+ <name>Apache Tika parsers</name>
+ <url>http://tika.apache.org/</url>
+
diff --git a/debian/patches/02-ignore-mp4parser.patch b/debian/patches/02-ignore-mp4parser.patch
new file mode 100644
index 0000000..1fa7bf8
--- /dev/null
+++ b/debian/patches/02-ignore-mp4parser.patch
@@ -0,0 +1,320 @@
+Description: Remove the classes using the mp4parser library which isn't in Debian yet
+Author: Emmanuel Bourg <ebourg at apache.org>
+Forwarded: not-needed
+--- a/tika-parsers/src/main/java/org/apache/tika/parser/mp4/MP4Parser.java
++++ /dev/null
+@@ -1,314 +0,0 @@
+-/*
+- * Licensed to the Apache Software Foundation (ASF) under one or more
+- * contributor license agreements. See the NOTICE file distributed with
+- * this work for additional information regarding copyright ownership.
+- * The ASF licenses this file to You under the Apache License, Version 2.0
+- * (the "License"); you may not use this file except in compliance with
+- * the License. You may obtain a copy of the License at
+- *
+- * http://www.apache.org/licenses/LICENSE-2.0
+- *
+- * Unless required by applicable law or agreed to in writing, software
+- * distributed under the License is distributed on an "AS IS" BASIS,
+- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+- * See the License for the specific language governing permissions and
+- * limitations under the License.
+- */
+-package org.apache.tika.parser.mp4;
+-
+-import java.io.IOException;
+-import java.io.InputStream;
+-import java.util.Arrays;
+-import java.util.Collections;
+-import java.util.Date;
+-import java.util.HashMap;
+-import java.util.List;
+-import java.util.Map;
+-import java.util.Set;
+-
+-import org.apache.tika.exception.TikaException;
+-import org.apache.tika.io.TikaInputStream;
+-import org.apache.tika.metadata.Metadata;
+-import org.apache.tika.metadata.Property;
+-import org.apache.tika.metadata.TikaCoreProperties;
+-import org.apache.tika.metadata.XMPDM;
+-import org.apache.tika.mime.MediaType;
+-import org.apache.tika.parser.AbstractParser;
+-import org.apache.tika.parser.ParseContext;
+-import org.apache.tika.sax.XHTMLContentHandler;
+-import org.xml.sax.ContentHandler;
+-import org.xml.sax.SAXException;
+-
+-import com.coremedia.iso.IsoFile;
+-import com.coremedia.iso.boxes.Box;
+-import com.coremedia.iso.boxes.ContainerBox;
+-import com.coremedia.iso.boxes.FileTypeBox;
+-import com.coremedia.iso.boxes.MetaBox;
+-import com.coremedia.iso.boxes.MovieBox;
+-import com.coremedia.iso.boxes.MovieHeaderBox;
+-import com.coremedia.iso.boxes.SampleDescriptionBox;
+-import com.coremedia.iso.boxes.SampleTableBox;
+-import com.coremedia.iso.boxes.TrackBox;
+-import com.coremedia.iso.boxes.TrackHeaderBox;
+-import com.coremedia.iso.boxes.UserDataBox;
+-import com.coremedia.iso.boxes.apple.AbstractAppleMetaDataBox;
+-import com.coremedia.iso.boxes.apple.AppleAlbumBox;
+-import com.coremedia.iso.boxes.apple.AppleArtistBox;
+-import com.coremedia.iso.boxes.apple.AppleCommentBox;
+-import com.coremedia.iso.boxes.apple.AppleCustomGenreBox;
+-import com.coremedia.iso.boxes.apple.AppleEncoderBox;
+-import com.coremedia.iso.boxes.apple.AppleItemListBox;
+-import com.coremedia.iso.boxes.apple.AppleRecordingYearBox;
+-import com.coremedia.iso.boxes.apple.AppleStandardGenreBox;
+-import com.coremedia.iso.boxes.apple.AppleTrackAuthorBox;
+-import com.coremedia.iso.boxes.apple.AppleTrackNumberBox;
+-import com.coremedia.iso.boxes.apple.AppleTrackTitleBox;
+-import com.coremedia.iso.boxes.sampleentry.AudioSampleEntry;
+-
+-/**
+- * Parser for the MP4 media container format, as well as the older
+- * QuickTime format that MP4 is based on.
+- *
+- * This uses the MP4Parser project from http://code.google.com/p/mp4parser/
+- * to do the underlying parsing
+- */
+-public class MP4Parser extends AbstractParser {
+- /** Serial version UID */
+- private static final long serialVersionUID = 84011216792285L;
+-
+- // Ensure this stays in Sync with the entries in tika-mimetypes.xml
+- private static final Map<MediaType,List<String>> typesMap = new HashMap<MediaType, List<String>>();
+- static {
+- // All types should be 4 bytes long, space padded as needed
+- typesMap.put(MediaType.audio("mp4"), Arrays.asList(
+- "M4A ", "M4B ", "F4A ", "F4B "));
+- typesMap.put(MediaType.video("3gpp"), Arrays.asList(
+- "3ge6", "3ge7", "3gg6", "3gp1", "3gp2", "3gp3", "3gp4", "3gp5", "3gp6", "3gs7"));
+- typesMap.put(MediaType.video("3gpp2"), Arrays.asList(
+- "3g2a", "3g2b", "3g2c"));
+- typesMap.put(MediaType.video("mp4"), Arrays.asList(
+- "mp41", "mp42"));
+- typesMap.put(MediaType.video("x-m4v"), Arrays.asList(
+- "M4V ", "M4VH", "M4VP"));
+-
+- typesMap.put(MediaType.video("quicktime"), Collections.<String>emptyList());
+- typesMap.put(MediaType.application("mp4"), Collections.<String>emptyList());
+- }
+-
+- private static final Set<MediaType> SUPPORTED_TYPES =
+- Collections.unmodifiableSet(typesMap.keySet());
+-
+- public Set<MediaType> getSupportedTypes(ParseContext context) {
+- return SUPPORTED_TYPES;
+- }
+-
+-
+- public void parse(
+- InputStream stream, ContentHandler handler,
+- Metadata metadata, ParseContext context)
+- throws IOException, SAXException, TikaException {
+- IsoFile isoFile;
+-
+- // The MP4Parser library accepts either a File, or a byte array
+- // As MP4 video files are typically large, always use a file to
+- // avoid OOMs that may occur with in-memory buffering
+- TikaInputStream tstream = TikaInputStream.get(stream);
+- try {
+- isoFile = new IsoFile(tstream.getFileChannel());
+- } finally {
+- tstream.close();
+- }
+-
+-
+- // Grab the file type box
+- FileTypeBox fileType = getOrNull(isoFile, FileTypeBox.class);
+- if (fileType != null) {
+- // Identify the type
+- MediaType type = MediaType.application("mp4");
+- for (MediaType t : typesMap.keySet()) {
+- if (typesMap.get(t).contains(fileType.getMajorBrand())) {
+- type = t;
+- break;
+- }
+- }
+- metadata.set(Metadata.CONTENT_TYPE, type.toString());
+-
+- if (type.getType().equals("audio")) {
+- metadata.set(XMPDM.AUDIO_COMPRESSOR, fileType.getMajorBrand().trim());
+- }
+- } else {
+- // Some older QuickTime files lack the FileType
+- metadata.set(Metadata.CONTENT_TYPE, "video/quicktime");
+- }
+-
+-
+- // Get the main MOOV box
+- MovieBox moov = getOrNull(isoFile, MovieBox.class);
+- if (moov == null) {
+- // Bail out
+- return;
+- }
+-
+-
+- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+- xhtml.startDocument();
+-
+-
+- // Pull out some information from the header box
+- MovieHeaderBox mHeader = getOrNull(moov, MovieHeaderBox.class);
+- if (mHeader != null) {
+- // Get the creation and modification dates
+- metadata.set(
+- Metadata.CREATION_DATE,
+- MP4TimeToDate(mHeader.getCreationTime())
+- );
+- metadata.set(
+- TikaCoreProperties.MODIFIED,
+- MP4TimeToDate(mHeader.getModificationTime())
+- );
+-
+- // Get the duration
+- double durationSeconds = ((double)mHeader.getDuration()) / mHeader.getTimescale();
+- // TODO Use this
+-
+- // The timescale is normally the sampling rate
+- metadata.set(XMPDM.AUDIO_SAMPLE_RATE, (int)mHeader.getTimescale());
+- }
+-
+-
+- // Get some more information from the track header
+- // TODO Decide how to handle multiple tracks
+- List<TrackBox> tb = moov.getBoxes(TrackBox.class);
+- if (tb.size() > 0) {
+- TrackBox track = tb.get(0);
+-
+- TrackHeaderBox header = track.getTrackHeaderBox();
+- // Get the creation and modification dates
+- metadata.set(
+- TikaCoreProperties.CREATED,
+- MP4TimeToDate(header.getCreationTime())
+- );
+- metadata.set(
+- TikaCoreProperties.MODIFIED,
+- MP4TimeToDate(header.getModificationTime())
+- );
+-
+- // Get the video with and height
+- metadata.set(Metadata.IMAGE_WIDTH, (int)header.getWidth());
+- metadata.set(Metadata.IMAGE_LENGTH, (int)header.getHeight());
+-
+- // Get the sample information
+- SampleTableBox samples = track.getSampleTableBox();
+- SampleDescriptionBox sampleDesc = samples.getSampleDescriptionBox();
+- if (sampleDesc != null) {
+- // Look for the first Audio Sample, if present
+- AudioSampleEntry sample = getOrNull(sampleDesc, AudioSampleEntry.class);
+- if (sample != null) {
+- XMPDM.ChannelTypePropertyConverter.convertAndSet(metadata, sample.getChannelCount());
+- //metadata.set(XMPDM.AUDIO_SAMPLE_TYPE, sample.getSampleSize()); // TODO Num -> Type mapping
+- metadata.set(XMPDM.AUDIO_SAMPLE_RATE, (int)sample.getSampleRate());
+- //metadata.set(XMPDM.AUDIO_, sample.getSamplesPerPacket());
+- //metadata.set(XMPDM.AUDIO_, sample.getBytesPerSample());
+- }
+- }
+- }
+-
+- // Get metadata from the User Data Box
+- UserDataBox userData = getOrNull(moov, UserDataBox.class);
+- if (userData != null) {
+- MetaBox meta = getOrNull(userData, MetaBox.class);
+-
+- // Check for iTunes Metadata
+- // See http://atomicparsley.sourceforge.net/mpeg-4files.html and
+- // http://code.google.com/p/mp4v2/wiki/iTunesMetadata for more on these
+- AppleItemListBox apple = getOrNull(meta, AppleItemListBox.class);
+- if (apple != null) {
+- // Title
+- AppleTrackTitleBox title = getOrNull(apple, AppleTrackTitleBox.class);
+- addMetadata(TikaCoreProperties.TITLE, metadata, title);
+-
+- // Artist
+- AppleArtistBox artist = getOrNull(apple, AppleArtistBox.class);
+- addMetadata(TikaCoreProperties.CREATOR, metadata, artist);
+- addMetadata(XMPDM.ARTIST, metadata, artist);
+-
+- // Album
+- AppleAlbumBox album = getOrNull(apple, AppleAlbumBox.class);
+- addMetadata(XMPDM.ALBUM, metadata, album);
+-
+- // Composer
+- AppleTrackAuthorBox composer = getOrNull(apple, AppleTrackAuthorBox.class);
+- addMetadata(XMPDM.COMPOSER, metadata, composer);
+-
+- // Genre
+- AppleStandardGenreBox sGenre = getOrNull(apple, AppleStandardGenreBox.class);
+- AppleCustomGenreBox cGenre = getOrNull(apple, AppleCustomGenreBox.class);
+- addMetadata(XMPDM.GENRE, metadata, sGenre);
+- addMetadata(XMPDM.GENRE, metadata, cGenre);
+-
+- // Year
+- AppleRecordingYearBox year = getOrNull(apple, AppleRecordingYearBox.class);
+- addMetadata(XMPDM.RELEASE_DATE, metadata, year);
+-
+- // Track number
+- AppleTrackNumberBox trackNum = getOrNull(apple, AppleTrackNumberBox.class);
+- if (trackNum != null) {
+- metadata.set(XMPDM.TRACK_NUMBER, trackNum.getTrackNumber());
+- //metadata.set(XMPDM.NUMBER_OF_TRACKS, trackNum.getNumberOfTracks()); // TODO
+- }
+-
+- // Comment
+- AppleCommentBox comment = getOrNull(apple, AppleCommentBox.class);
+- addMetadata(XMPDM.LOG_COMMENT, metadata, comment);
+-
+- // Encoder
+- AppleEncoderBox encoder = getOrNull(apple, AppleEncoderBox.class);
+- // addMetadata(XMPDM.???, metadata, encoder); // TODO
+-
+-
+- // As text
+- for (Box box : apple.getBoxes()) {
+- if (box instanceof AbstractAppleMetaDataBox) {
+- xhtml.element("p", ((AbstractAppleMetaDataBox)box).getValue());
+- }
+- }
+- }
+-
+- // TODO Check for other kinds too
+- }
+-
+- // All done
+- xhtml.endDocument();
+- }
+-
+- private static void addMetadata(String key, Metadata m, AbstractAppleMetaDataBox metadata) {
+- if (metadata != null) {
+- m.add(key, metadata.getValue());
+- }
+- }
+- private static void addMetadata(Property prop, Metadata m, AbstractAppleMetaDataBox metadata) {
+- if (metadata != null) {
+- m.set(prop, metadata.getValue());
+- }
+- }
+-
+- /**
+- * MP4 Dates are stored as 32-bit integer, which represent the seconds
+- * since midnight, January 1, 1904, and are generally in UTC
+- */
+- private static Date MP4TimeToDate(long mp4Time) {
+- long unix = mp4Time - EPOC_AS_MP4_TIME;
+- return new Date(unix*1000);
+- }
+- private static final long EPOC_AS_MP4_TIME = 2082844800l;
+-
+- private static <T extends Box> T getOrNull(ContainerBox box, Class<T> clazz) {
+- if (box == null) return null;
+-
+- List<T> boxes = box.getBoxes(clazz);
+- if (boxes.size() == 0) {
+- return null;
+- }
+- return boxes.get(0);
+- }
+-}
diff --git a/debian/patches/03-ignore-netcdf.patch b/debian/patches/03-ignore-netcdf.patch
new file mode 100644
index 0000000..0b50388
--- /dev/null
+++ b/debian/patches/03-ignore-netcdf.patch
@@ -0,0 +1,245 @@
+Description: Remove the classes using the netcdf library which isn't in Debian yet
+Author: Emmanuel Bourg <ebourg at apache.org>
+Forwarded: not-needed
+
+--- a/tika-parsers/src/main/java/org/apache/tika/parser/netcdf/NetCDFParser.java
++++ /dev/null
+@@ -1,115 +0,0 @@
+-/*
+- * Licensed to the Apache Software Foundation (ASF) under one or more
+- * contributor license agreements. See the NOTICE file distributed with
+- * this work for additional information regarding copyright ownership.
+- * The ASF licenses this file to You under the Apache License, Version 2.0
+- * (the "License"); you may not use this file except in compliance with
+- * the License. You may obtain a copy of the License at
+- *
+- * http://www.apache.org/licenses/LICENSE-2.0
+- *
+- * Unless required by applicable law or agreed to in writing, software
+- * distributed under the License is distributed on an "AS IS" BASIS,
+- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+- * See the License for the specific language governing permissions and
+- * limitations under the License.
+- */
+-package org.apache.tika.parser.netcdf;
+-
+-//JDK imports
+-import java.io.ByteArrayOutputStream;
+-import java.io.IOException;
+-import java.io.InputStream;
+-import java.util.Collections;
+-import java.util.Set;
+-
+-import org.apache.tika.exception.TikaException;
+-import org.apache.tika.io.IOUtils;
+-import org.apache.tika.metadata.Metadata;
+-import org.apache.tika.metadata.Property;
+-import org.apache.tika.metadata.TikaCoreProperties;
+-import org.apache.tika.mime.MediaType;
+-import org.apache.tika.parser.AbstractParser;
+-import org.apache.tika.parser.ParseContext;
+-import org.apache.tika.parser.Parser;
+-import org.apache.tika.sax.XHTMLContentHandler;
+-import org.xml.sax.ContentHandler;
+-import org.xml.sax.SAXException;
+-
+-import ucar.nc2.Attribute;
+-import ucar.nc2.NetcdfFile;
+-
+-/**
+- * A {@link Parser} for <a
+- * href="http://www.unidata.ucar.edu/software/netcdf/index.html">NetCDF</a>
+- * files using the UCAR, MIT-licensed <a
+- * href="http://www.unidata.ucar.edu/software/netcdf-java/">NetCDF for Java</a>
+- * API.
+- */
+-public class NetCDFParser extends AbstractParser {
+-
+- /** Serial version UID */
+- private static final long serialVersionUID = -5940938274907708665L;
+-
+- private final Set<MediaType> SUPPORTED_TYPES =
+- Collections.singleton(MediaType.application("x-netcdf"));
+-
+- /*
+- * (non-Javadoc)
+- *
+- * @see
+- * org.apache.tika.parser.Parser#getSupportedTypes(org.apache.tika.parser
+- * .ParseContext)
+- */
+- public Set<MediaType> getSupportedTypes(ParseContext context) {
+- return SUPPORTED_TYPES;
+- }
+-
+- /*
+- * (non-Javadoc)
+- *
+- * @see org.apache.tika.parser.Parser#parse(java.io.InputStream,
+- * org.xml.sax.ContentHandler, org.apache.tika.metadata.Metadata,
+- * org.apache.tika.parser.ParseContext)
+- */
+- public void parse(InputStream stream, ContentHandler handler,
+- Metadata metadata, ParseContext context) throws IOException,
+- SAXException, TikaException {
+- ByteArrayOutputStream os = new ByteArrayOutputStream();
+- IOUtils.copy(stream, os);
+-
+- String name = metadata.get(Metadata.RESOURCE_NAME_KEY);
+- if (name == null) {
+- name = "";
+- }
+-
+- try {
+- NetcdfFile ncFile = NetcdfFile.openInMemory(name, os.toByteArray());
+-
+- // first parse out the set of global attributes
+- for (Attribute attr : ncFile.getGlobalAttributes()) {
+- Property property = resolveMetadataKey(attr.getName());
+- if (attr.getDataType().isString()) {
+- metadata.add(property, attr.getStringValue());
+- } else if (attr.getDataType().isNumeric()) {
+- int value = attr.getNumericValue().intValue();
+- metadata.add(property, String.valueOf(value));
+- }
+- }
+- } catch (IOException e) {
+- throw new TikaException("NetCDF parse error", e);
+- }
+-
+- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+- xhtml.startDocument();
+- xhtml.endDocument();
+- }
+-
+- private Property resolveMetadataKey(String localName) {
+- if ("title".equals(localName)) {
+- return TikaCoreProperties.TITLE;
+- }
+- return Property.internalText(localName);
+- }
+-
+-}
+--- a/tika-parsers/src/main/java/org/apache/tika/parser/hdf/HDFParser.java
++++ /dev/null
+@@ -1,120 +0,0 @@
+-/*
+- * Licensed to the Apache Software Foundation (ASF) under one or more
+- * contributor license agreements. See the NOTICE file distributed with
+- * this work for additional information regarding copyright ownership.
+- * The ASF licenses this file to You under the Apache License, Version 2.0
+- * (the "License"); you may not use this file except in compliance with
+- * the License. You may obtain a copy of the License at
+- *
+- * http://www.apache.org/licenses/LICENSE-2.0
+- *
+- * Unless required by applicable law or agreed to in writing, software
+- * distributed under the License is distributed on an "AS IS" BASIS,
+- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+- * See the License for the specific language governing permissions and
+- * limitations under the License.
+- */
+-
+-package org.apache.tika.parser.hdf;
+-
+-//JDK imports
+-import java.io.ByteArrayOutputStream;
+-import java.io.IOException;
+-import java.io.InputStream;
+-import java.util.Collections;
+-import java.util.Set;
+-
+-import org.apache.tika.exception.TikaException;
+-import org.apache.tika.io.IOUtils;
+-import org.apache.tika.metadata.Metadata;
+-import org.apache.tika.mime.MediaType;
+-import org.apache.tika.parser.AbstractParser;
+-import org.apache.tika.parser.ParseContext;
+-import org.apache.tika.parser.netcdf.NetCDFParser;
+-import org.apache.tika.sax.XHTMLContentHandler;
+-import org.xml.sax.ContentHandler;
+-import org.xml.sax.SAXException;
+-
+-import ucar.nc2.Attribute;
+-import ucar.nc2.Group;
+-import ucar.nc2.NetcdfFile;
+-
+-/**
+- *
+- * Since the {@link NetCDFParser} depends on the <a
+- * href="http://www.unidata.ucar.edu/software/netcdf-java" >NetCDF-Java</a> API,
+- * we are able to use it to parse HDF files as well. See <a href=
+- * "http://www.unidata.ucar.edu/software/netcdf-java/formats/FileTypes.html"
+- * >this link</a> for more information.
+- */
+-public class HDFParser extends AbstractParser {
+-
+- /** Serial version UID */
+- private static final long serialVersionUID = 1091208208003437549L;
+-
+- private static final Set<MediaType> SUPPORTED_TYPES =
+- Collections.singleton(MediaType.application("x-hdf"));
+-
+- /*
+- * (non-Javadoc)
+- *
+- * @see
+- * org.apache.tika.parser.netcdf.NetCDFParser#getSupportedTypes(org.apache
+- * .tika.parser.ParseContext)
+- */
+- public Set<MediaType> getSupportedTypes(ParseContext context) {
+- return SUPPORTED_TYPES;
+- }
+-
+- /*
+- * (non-Javadoc)
+- *
+- * @see
+- * org.apache.tika.parser.netcdf.NetCDFParser#parse(java.io.InputStream,
+- * org.xml.sax.ContentHandler, org.apache.tika.metadata.Metadata,
+- * org.apache.tika.parser.ParseContext)
+- */
+- public void parse(InputStream stream, ContentHandler handler,
+- Metadata metadata, ParseContext context) throws IOException,
+- SAXException, TikaException {
+- ByteArrayOutputStream os = new ByteArrayOutputStream();
+- IOUtils.copy(stream, os);
+-
+- String name = metadata.get(Metadata.RESOURCE_NAME_KEY);
+- if (name == null) {
+- name = "";
+- }
+- try {
+- NetcdfFile ncFile = NetcdfFile.openInMemory(name, os.toByteArray());
+- unravelStringMet(ncFile, null, metadata);
+- } catch (IOException e) {
+- throw new TikaException("HDF parse error", e);
+- }
+-
+- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+- xhtml.startDocument();
+- xhtml.endDocument();
+- }
+-
+- protected void unravelStringMet(NetcdfFile ncFile, Group group, Metadata met) {
+- if (group == null) {
+- group = ncFile.getRootGroup();
+- }
+-
+- // unravel its string attrs
+- for (Attribute attribute : group.getAttributes()) {
+- if (attribute.isString()) {
+- met.add(attribute.getName(), attribute.getStringValue());
+- } else {
+- // try and cast its value to a string
+- met.add(attribute.getName(), String.valueOf(attribute
+- .getNumericValue()));
+- }
+- }
+-
+- for (Group g : group.getGroups()) {
+- unravelStringMet(ncFile, g, met);
+- }
+- }
+-
+-}
diff --git a/debian/patches/04-ignore-jhighlight.patch b/debian/patches/04-ignore-jhighlight.patch
new file mode 100644
index 0000000..cee0b85
--- /dev/null
+++ b/debian/patches/04-ignore-jhighlight.patch
@@ -0,0 +1,140 @@
+Description: Remove the classes using the jhighlight library which isn't in Debian yet
+Author: Emmanuel Bourg <ebourg at apache.org>
+Forwarded: not-needed
+
+--- a/tika-parsers/src/main/java/org/apache/tika/parser/code/SourceCodeParser.java
++++ /dev/null
+@@ -1,133 +0,0 @@
+-/*
+- * Licensed to the Apache Software Foundation (ASF) under one or more
+- * contributor license agreements. See the NOTICE file distributed with
+- * this work for additional information regarding copyright ownership.
+- * The ASF licenses this file to You under the Apache License, Version 2.0
+- * (the "License"); you may not use this file except in compliance with
+- * the License. You may obtain a copy of the License at
+- *
+- * http://www.apache.org/licenses/LICENSE-2.0
+- *
+- * Unless required by applicable law or agreed to in writing, software
+- * distributed under the License is distributed on an "AS IS" BASIS,
+- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+- * See the License for the specific language governing permissions and
+- * limitations under the License.
+- */
+-package org.apache.tika.parser.code;
+-
+-import static com.uwyn.jhighlight.renderer.XhtmlRendererFactory.CPP;
+-import static com.uwyn.jhighlight.renderer.XhtmlRendererFactory.GROOVY;
+-import static com.uwyn.jhighlight.renderer.XhtmlRendererFactory.JAVA;
+-
+-import java.io.IOException;
+-import java.io.InputStream;
+-import java.nio.charset.Charset;
+-import java.util.HashMap;
+-import java.util.Map;
+-import java.util.Set;
+-import java.util.regex.Matcher;
+-import java.util.regex.Pattern;
+-
+-import org.apache.tika.config.ServiceLoader;
+-import org.apache.tika.detect.AutoDetectReader;
+-import org.apache.tika.exception.TikaException;
+-import org.apache.tika.io.CloseShieldInputStream;
+-import org.apache.tika.metadata.Metadata;
+-import org.apache.tika.metadata.TikaCoreProperties;
+-import org.apache.tika.mime.MediaType;
+-import org.apache.tika.parser.ParseContext;
+-import org.apache.tika.parser.Parser;
+-import org.xml.sax.ContentHandler;
+-import org.xml.sax.SAXException;
+-
+-import com.uwyn.jhighlight.renderer.Renderer;
+-import com.uwyn.jhighlight.renderer.XhtmlRendererFactory;
+-/**
+- * Generic Source code parser for Java, Groovy, C++
+- *
+- * @author Hong-Thai.Nguyen
+- * @since 1.6
+- */
+-public class SourceCodeParser implements Parser {
+-
+- private static final long serialVersionUID = -4543476498190054160L;
+-
+- private static final Pattern authorPattern = Pattern.compile("(?im)@author (.*) *$");
+-
+- private static final Map<MediaType, String> TYPES_TO_RENDERER = new HashMap<MediaType, String>() {
+- private static final long serialVersionUID = -741976157563751152L;
+- {
+- put(MediaType.text("x-c++src"), CPP);
+- put(MediaType.text("x-java-source"), JAVA);
+- put(MediaType.text("x-groovy"), GROOVY);
+- }
+- };
+-
+- private static final ServiceLoader LOADER = new ServiceLoader(SourceCodeParser.class.getClassLoader());
+-
+- @Override
+- public Set<MediaType> getSupportedTypes(ParseContext context) {
+- return TYPES_TO_RENDERER.keySet();
+- }
+-
+- @Override
+- public void parse(InputStream stream, ContentHandler handler, Metadata metadata, ParseContext context)
+- throws IOException, SAXException, TikaException {
+-
+- AutoDetectReader reader = new AutoDetectReader(new CloseShieldInputStream(stream), metadata, context.get(ServiceLoader.class, LOADER));
+-
+- try {
+- Charset charset = reader.getCharset();
+- String mediaType = metadata.get(Metadata.CONTENT_TYPE);
+- String name = metadata.get(Metadata.RESOURCE_NAME_KEY);
+- if (mediaType != null && name != null) {
+- MediaType type = MediaType.parse(mediaType);
+- metadata.set(Metadata.CONTENT_TYPE, type.toString());
+- metadata.set(Metadata.CONTENT_ENCODING, charset.name());
+-
+- StringBuilder out = new StringBuilder();
+- String line;
+- int nbLines = 0;
+- while ((line = reader.readLine()) != null) {
+- out.append(line);
+- String author = parserAuthor(line);
+- if (author != null) {
+- metadata.add(TikaCoreProperties.CREATOR, author);
+- }
+- nbLines ++;
+- }
+- metadata.set("LoC", String.valueOf(nbLines));
+-
+- Renderer renderer = getRenderer(type.toString());
+- String codeAsHtml = renderer.highlight(name, out.toString(), charset.name(), false);
+- char[] charArray = codeAsHtml.toCharArray();
+- handler.startDocument();
+- handler.characters(charArray, 0, charArray.length);
+- handler.endDocument();
+- }
+- } finally {
+- reader.close();
+- }
+-
+- }
+-
+- private Renderer getRenderer(String mimeType) {
+- MediaType mt = MediaType.parse(mimeType);
+- String type = TYPES_TO_RENDERER.get(mt);
+- if (type == null) {
+- throw new RuntimeException("unparseable content type " + mimeType);
+- }
+- return XhtmlRendererFactory.getRenderer(type);
+- }
+-
+-
+- private String parserAuthor(String line) {
+- Matcher m = authorPattern.matcher(line);
+- if (m.find()) {
+- return m.group(1).trim();
+- }
+-
+- return null;
+- }
+-}
diff --git a/debian/patches/05-osgi-compatibility.patch b/debian/patches/05-osgi-compatibility.patch
new file mode 100644
index 0000000..3fd627c
--- /dev/null
+++ b/debian/patches/05-osgi-compatibility.patch
@@ -0,0 +1,23 @@
+Description: Ensure the compatibility with the version of osgi-core in Debian
+Author: Emmanuel Bourg <ebourg at apache.org>
+Forwarded: not-needed
+--- a/tika-parsers/src/main/java/org/apache/tika/parser/internal/Activator.java
++++ b/tika-parsers/src/main/java/org/apache/tika/parser/internal/Activator.java
+@@ -34,13 +34,13 @@
+
+ public void start(BundleContext context) throws Exception {
+ detectorService = context.registerService(
+- Detector.class.getName(),
++ Detector.class,
+ new DefaultDetector(Activator.class.getClassLoader()),
+- new Properties());
++ new java.util.Hashtable<String,String>());
+ parserService = context.registerService(
+- Parser.class.getName(),
++ Parser.class,
+ new DefaultParser(Activator.class.getClassLoader()),
+- new Properties());
++ new java.util.Hashtable<String,String>());
+ }
+
+ public void stop(BundleContext context) throws Exception {
diff --git a/debian/patches/06-optional-parser-dependencies.patch b/debian/patches/06-optional-parser-dependencies.patch
new file mode 100644
index 0000000..dab8468
--- /dev/null
+++ b/debian/patches/06-optional-parser-dependencies.patch
@@ -0,0 +1,149 @@
+Description: Mark the parser dependencies as optional
+Author: Emmanuel Bourg <ebourg at apache.org>
+Forwarded: no
+--- a/tika-parsers/pom.xml
++++ b/tika-parsers/pom.xml
+@@ -62,6 +62,7 @@
+ <groupId>org.gagravarr</groupId>
+ <artifactId>vorbis-java-tika</artifactId>
+ <version>${vorbis.version}</version>
++ <optional>true</optional>
+ </dependency>
+
+ <!-- Optional OSGi dependencies, used only when running within OSGi -->
+@@ -76,31 +77,37 @@
+ <groupId>edu.ucar</groupId>
+ <artifactId>netcdf</artifactId>
+ <version>4.2-min</version>
++ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.james</groupId>
+ <artifactId>apache-mime4j-core</artifactId>
+ <version>${mime4j.version}</version>
++ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.james</groupId>
+ <artifactId>apache-mime4j-dom</artifactId>
+ <version>${mime4j.version}</version>
++ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-compress</artifactId>
+ <version>1.5</version>
++ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>${codec.version}</version>
++ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pdfbox</groupId>
+ <artifactId>pdfbox</artifactId>
+ <version>1.8.4</version>
++ <optional>true</optional>
+ </dependency>
+ <!-- TIKA-370: PDFBox declares the Bouncy Castle dependencies
+ as optional, but we prefer to have them always to avoid
+@@ -109,26 +116,31 @@
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcmail-jdk15</artifactId>
+ <version>1.45</version>
++ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcprov-jdk15</artifactId>
+ <version>1.45</version>
++ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.poi</groupId>
+ <artifactId>poi</artifactId>
+ <version>${poi.version}</version>
++ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.poi</groupId>
+ <artifactId>poi-scratchpad</artifactId>
+ <version>${poi.version}</version>
++ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.poi</groupId>
+ <artifactId>poi-ooxml</artifactId>
+ <version>${poi.version}</version>
++ <optional>true</optional>
+ <exclusions>
+ <exclusion>
+ <groupId>stax</groupId>
+@@ -149,46 +161,55 @@
+ <groupId>org.ccil.cowan.tagsoup</groupId>
+ <artifactId>tagsoup</artifactId>
+ <version>1.2.1</version>
++ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>org.ow2.asm</groupId>
+ <artifactId>asm-debug-all</artifactId>
+ <version>4.1</version>
++ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>com.googlecode.mp4parser</groupId>
+ <artifactId>isoparser</artifactId>
+ <version>1.0-RC-1</version>
++ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>com.drewnoakes</groupId>
+ <artifactId>metadata-extractor</artifactId>
+ <version>2.6.2</version>
++ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>de.l3s.boilerpipe</groupId>
+ <artifactId>boilerpipe</artifactId>
+ <version>1.1.0</version>
++ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>rome</groupId>
+ <artifactId>rome</artifactId>
+ <version>0.9</version>
++ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>org.gagravarr</groupId>
+ <artifactId>vorbis-java-core</artifactId>
+ <version>${vorbis.version}</version>
++ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>com.googlecode.juniversalchardet</groupId>
+ <artifactId>juniversalchardet</artifactId>
+ <version>1.0.3</version>
++ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>com.uwyn</groupId>
+ <artifactId>jhighlight</artifactId>
+ <version>1.0</version>
++ <optional>true</optional>
+ <exclusions>
+ <exclusion>
+ <groupId>javax.servlet</groupId>
+--- a/tika-xmp/pom.xml
++++ b/tika-xmp/pom.xml
+@@ -75,6 +75,7 @@
+ <groupId>com.adobe.xmp</groupId>
+ <artifactId>xmpcore</artifactId>
+ <version>5.1.2</version>
++ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..453f23f
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,6 @@
+01-jar-packaging.patch
+02-ignore-mp4parser.patch
+03-ignore-netcdf.patch
+04-ignore-jhighlight.patch
+05-osgi-compatibility.patch
+06-optional-parser-dependencies.patch
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..f285496
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,10 @@
+#!/usr/bin/make -f
+
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/class/maven.mk
+
+JAVA_HOME := /usr/lib/jvm/default-java
+DEB_MAVEN_DOC_TARGET := javadoc:javadoc javadoc:aggregate
+
+get-orig-source:
+ uscan --download-current-version --force-download --no-symlink
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/debian/watch b/debian/watch
new file mode 100644
index 0000000..85cc73c
--- /dev/null
+++ b/debian/watch
@@ -0,0 +1,4 @@
+version=3
+opts="uversionmangle=s/-(alpha|beta|rc)/~$1/" \
+ http://svn.apache.org/repos/asf/tika/tags/ \
+ (\d.*)/ debian debian/orig-tar.sh
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/tika.git
More information about the pkg-java-commits
mailing list