[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