summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSerkan Kaba <serkan@gentoo.org>2008-10-29 20:22:21 +0000
committerSerkan Kaba <serkan@gentoo.org>2008-10-29 20:22:21 +0000
commit809a9ac481729ccfdebb5f62e6b7b01a492b019f (patch)
tree364a5eabf2db4ae5ad3d05bb581e5e35e287faef /media-video/jubler
parentVersion bump to 2.05 (diff)
downloadhistorical-809a9ac481729ccfdebb5f62e6b7b01a492b019f.tar.gz
historical-809a9ac481729ccfdebb5f62e6b7b01a492b019f.tar.bz2
historical-809a9ac481729ccfdebb5f62e6b7b01a492b019f.zip
Version bump that works with newer ffmpeg. Fixes bug #218091, #242946. Thanks to Luca Barbato <lu_zero@gentoo.org>, Alexis Ballier <aballier@gentoo.org> for help.
Package-Manager: portage-2.2_rc12/cvs/Linux 2.6.25-gentoo-r7 x86_64
Diffstat (limited to 'media-video/jubler')
-rw-r--r--media-video/jubler/ChangeLog11
-rw-r--r--media-video/jubler/Manifest12
-rw-r--r--media-video/jubler/files/jubler-3.9.6-ffmpegfix.patch155
-rw-r--r--media-video/jubler/files/jubler-3.9.6.patch180
-rw-r--r--media-video/jubler/jubler-3.9.6.ebuild82
5 files changed, 435 insertions, 5 deletions
diff --git a/media-video/jubler/ChangeLog b/media-video/jubler/ChangeLog
index adc2553961aa..53cbbf433f10 100644
--- a/media-video/jubler/ChangeLog
+++ b/media-video/jubler/ChangeLog
@@ -1,6 +1,15 @@
# ChangeLog for media-video/jubler
# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-video/jubler/ChangeLog,v 1.20 2008/07/18 22:53:23 betelgeuse Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-video/jubler/ChangeLog,v 1.21 2008/10/29 20:22:21 serkan Exp $
+
+*jubler-3.9.6 (29 Oct 2008)
+
+ 29 Oct 2008; Serkan Kaba <serkan@gentoo.org>
+ +files/jubler-3.9.6-ffmpegfix.patch, +files/jubler-3.9.6.patch,
+ +jubler-3.9.6.ebuild:
+ Version bump that works with newer ffmpeg. Fixes bug #218091, #242946.
+ Thanks to Luca Barbato <lu_zero@gentoo.org>, Alexis Ballier
+ <aballier@gentoo.org> for help.
18 Jul 2008; Petteri Räty <betelgeuse@gentoo.org> jubler-3.4.1.ebuild,
jubler-3.9.0.ebuild:
diff --git a/media-video/jubler/Manifest b/media-video/jubler/Manifest
index 32226691e1b2..600896eb96ff 100644
--- a/media-video/jubler/Manifest
+++ b/media-video/jubler/Manifest
@@ -3,16 +3,20 @@ Hash: SHA1
AUX jubler-3.4.1.patch 6470 RMD160 3f0d8c24208416c626acc7013e3dd1d95135c433 SHA1 0e320ee2f38e30bc3eb3725338f50996abd4622e SHA256 a6a634eda8aa27905651d56d9b1697543dcc5b4bc15fc6a9d1f5e58ee162145f
AUX jubler-3.9.0.patch 6371 RMD160 ba817c57e76290efa926f81c47f334e48f9d5f7c SHA1 5359030fa28f5c25b087720aaad61ce487173a29 SHA256 feb1ae7138d75648a00270d54e754ef1d81d52ce4f5af7ab3a45ebe192bc3cea
+AUX jubler-3.9.6-ffmpegfix.patch 6490 RMD160 7d74f58669d432a7ce70712133a7b5b56628dcef SHA1 5621c535b2db6b2ebe84e1cfa04983d422ba710a SHA256 6b7fd1c8d629a8b4ec145eb5d0af6efa23d4c4f7c511c0ed8b1073d3fd6be9e7
+AUX jubler-3.9.6.patch 6234 RMD160 0fa28e9630b9214baa86f0e1de568e1430a30a51 SHA1 78885cef527b52ea759f36e9c5381c123add9330 SHA256 2c9eceec9bda75cba57df9c721eb93a6253f4cd59ea09deb2cb74012d252735e
DIST Jubler-src-3.4.1.tar.bz2 1711351 RMD160 ed5bb1c3c11406349f7a4473a91185e0326ed662 SHA1 3270058d0d4cd9f605e83fba921823a640c6aee4 SHA256 257b4362f8b22d8f45f52a1c90f89af7670c31fa125c9afecaa48b68028afcec
DIST Jubler-src-3.9.0.tar.bz2 1740527 RMD160 29cf99c527772d47a202a55e360d02806b409d81 SHA1 0dc3f1d804fe1ee2902db45525c0bf176912c100 SHA256 9c41f19c9a9b85f9c3ea958c9ec2346d8dc751ef5aad5f5cb16a58e8f69bfa6b
+DIST Jubler-src-3.9.6.tar.bz2 1750903 RMD160 b4100ac4e2f162af5d7a55240b88cd701bfdf9e6 SHA1 006fb620577efddddb02689477a208a6e6f0f937 SHA256 8f84541ca8a04d3ec428110d55e37598d521d3276a2d7d8f2edd57f3123032f4
EBUILD jubler-3.4.1.ebuild 2200 RMD160 1ead27d442715377c2be3ea8e47b476f65802e76 SHA1 0412e7bd6a3e5785983681a26969e0929a54cb01 SHA256 751280894a458b67964b3ef831ea1b0be086c4a12468326907aaa4e7aedfd722
EBUILD jubler-3.9.0.ebuild 2195 RMD160 b1d0e0625389f2f3e4b00f8cf1186330e5920689 SHA1 68b24f09b9b1fb152aced3eea1ca963677448da7 SHA256 5571912b947b6428baf4423482c8d98786dcbdb6f4a7ca43466ae9d5f109ae73
-MISC ChangeLog 3279 RMD160 4506e29285373037d4f2c2d946be7ec74bb25b7e SHA1 031643ae37f251f1baed496ea771b186aa8081a3 SHA256 3d79bbd28e8cd2309ac4ae637080395410f2070419d027ad972545b32f5febf4
+EBUILD jubler-3.9.6.ebuild 2248 RMD160 2a6accf8de146559fc284dcd2f6d2e0587291472 SHA1 72d7e0f9fad9a5888c54d467d93d5043ec2e6ceb SHA256 e2566cab28f2edcc09a21b6de743d45ae3a2b7ec20a5cd9441e230b7bfed1709
+MISC ChangeLog 3611 RMD160 d8757f7e23c3188b6233b2a2837872c9f91dfcee SHA1 78fa5655e650e56b97cd2cea7bdcdf34a23cb95b SHA256 bf9ccb5cf5dd2ef67456f877b0beecd7a4311cea906388cbbaa6a87e5872780b
MISC metadata.xml 216 RMD160 05d4d9c2f1c459ea9309346016001e26bad574ce SHA1 98783559fec44d27f1294db2e9549af2fe38f1b3 SHA256 94b55a2ec67c524728d32249d59a6a1545fd37d61c83259b5f05163ca47e87e1
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (GNU/Linux)
-iEYEARECAAYFAkiBHu0ACgkQcxLzpIGCsLRU8QCdHyqPq+DP4nBjwdErL/+2ZiN8
-35YAnjT2dNME6adttkswvUmxgRl4rqd4
-=O0Ye
+iEYEARECAAYFAkkIxgIACgkQRh6X64ivZaL+mgCbBqba5MGigpt+HPKQVx7RXvEA
+QF0An0NYchMOgtsYNm2TTJmnQCVamKYA
+=1bM7
-----END PGP SIGNATURE-----
diff --git a/media-video/jubler/files/jubler-3.9.6-ffmpegfix.patch b/media-video/jubler/files/jubler-3.9.6-ffmpegfix.patch
new file mode 100644
index 000000000000..c712cf97dcfc
--- /dev/null
+++ b/media-video/jubler/files/jubler-3.9.6-ffmpegfix.patch
@@ -0,0 +1,155 @@
+--- Jubler-3.9.6/resources/ffdecode/decodeframe.c 2008-08-10 20:15:55.000000000 +0300
++++ jubler/resources/ffdecode/decodeframe.c 2008-10-29 06:46:11.000000000 +0200
+@@ -39,19 +39,23 @@
+ #include "defaults.h"
+ #include "utilities.h"
+
++#define MAXSIZE 16383
++
++
+ AVPicture *decodeFrame(JNIEnv * env, jobject this, const char *input_filename, jlong timepos, jint *width, jint *height, jfloat resize);
+ int file_info(JNIEnv * env, jobject this, char *input_filename);
++void storenumb (jbyte * data, int number);
+
+ static int sws_flags = SWS_BICUBIC;
+
+
+-JNIEXPORT jintArray JNICALL Java_com_panayotis_jubler_media_preview_decoders_FFMPEG_grabFrame(JNIEnv * env, jobject this, jstring video, jlong time, jfloat resize) {
++JNIEXPORT jbyteArray JNICALL Java_com_panayotis_jubler_media_preview_decoders_FFMPEG_grabFrame(JNIEnv * env, jobject this, jstring video, jlong time, jfloat resize) {
+ /* Pointers for c-like strings */
+ const char *video_c;
+
+ /* Here we'll store the frame for java */
+- jintArray matrix = NULL;
+- jint* matrixdata = NULL;
++ jbyteArray matrix = NULL;
++ jbyte* matrixdata = NULL;
+
+ /* Frame raw data */
+ AVPicture* pict;
+@@ -65,18 +69,20 @@
+ if (pict) {
+
+ // make array
+- matrix = (*env)->NewIntArray(env, width*height+2); // 4 bytes per pixel (int) plus picture information
++ matrix = (*env)->NewByteArray(env, width*height*3+4); // 3 bytes per pixel + picture width information (2*2)
+
+ if (matrix) {
+ /* Find pointer for matrix size */
+- matrixdata = (*env)->GetIntArrayElements(env, matrix, 0);
++ matrixdata = (*env)->GetByteArrayElements(env, matrix, 0);
+
+- /* This is a trick: the first 2 elements are not video data but the size of the video */
+- matrixdata[0] = width;
+- matrixdata[1] = height;
+- memcpy(matrixdata+2, pict->data[0], 4*width*height);
++ /* This is a trick: the first 4 bytes are not video data but the size of the video */
++ storenumb(matrixdata, width);
++ storenumb(matrixdata+2, height);
++
++ /* Copy the actual color map to picture buffer */
++ memcpy(matrixdata+4, pict->data[0], 3*width*height);
+ /* Release the matrix data pointer */
+- (*env)->ReleaseIntArrayElements(env, matrix, matrixdata, 0);
++ (*env)->ReleaseByteArrayElements(env, matrix, matrixdata, 0);
+ } else {
+ DEBUG(env, this, "grabFrame", "Can not create array into memory.");
+ }
+@@ -206,14 +212,24 @@
+ av_free_packet(&pkt);
+ }
+ if (retflag != FALSE) {
+- *width = (ccx->width) * resize;
+- *height = (ccx->height) * resize;
++ /* Calculating new picture size and keep aspect ratio */
++ *width = (ccx->width) * resize;
++ *height = (ccx->height) * resize;
++ if (*width > MAXSIZE ) {
++ *height = ( (*height) * MAXSIZE) / (*width);
++ *width = MAXSIZE;
++ }
++ if (*height > MAXSIZE) {
++ *width = ( (*width) * MAXSIZE) / (*height);
++ *height = MAXSIZE;
++ }
++
+ DEBUG(env, this, "decodeFrame", "Resampling from (%i,%i) with resize factor %f to (%i,%i)",ccx->width, ccx->height, resize,*width, *height);
+ // Allocate an AVPicture
+- avpicture_alloc(pict, PIX_FMT_RGBA32, *width, *height);
++ avpicture_alloc(pict, PIX_FMT_RGB24, *width, *height);
+ swsContext = sws_getCachedContext(swsContext,
+ ccx->width, ccx->height, ccx->pix_fmt,
+- *width, *height, PIX_FMT_RGBA32,
++ *width, *height, PIX_FMT_RGB24,
+ sws_flags, NULL, NULL, NULL);
+ if (swsContext == NULL) {
+ DEBUG(env, this, "decodeFrame", "swscale context initialization failed.");
+@@ -264,5 +280,8 @@
+ return 0;
+ }
+
+-
++void storenumb (jbyte * data, int number) {
++ data[0] = number/128;
++ data[1] = number % 128;
++}
+
+--- Jubler-3.9.6/src/com/panayotis/jubler/media/preview/decoders/FFMPEG.java 2008-09-08 18:22:10.000000000 +0300
++++ jubler/src/com/panayotis/jubler/media/preview/decoders/FFMPEG.java 2008-10-29 06:46:03.000000000 +0200
+@@ -56,23 +56,8 @@
+ public final class FFMPEG extends NativeDecoder {
+ private static boolean library_is_present = false;
+
+- private static final int[] bitmasks;
+- private static final ColorModel cmodel;
+-
+-
+ static {
+ library_is_present = SystemFileFinder.loadLibrary("ffdecode");
+-
+- int[] LE_BITMASKS = {0xff0000, 0xff00, 0xff, 0xff000000};
+- int[] BE_BITMASKS = {0xff00, 0xff0000, 0xff000000, 0xff};
+-
+- if (ByteOrder.nativeOrder() == ByteOrder.LITTLE_ENDIAN) {
+- bitmasks = LE_BITMASKS;
+- cmodel = ColorModel.getRGBdefault();
+- } else {
+- bitmasks = BE_BITMASKS;
+- cmodel = new DirectColorModel(32, bitmasks[0], bitmasks[1], bitmasks[2], bitmasks[3]);
+- }
+ }
+
+ /** Creates a new instance of FFMPEG */
+@@ -82,13 +67,16 @@
+ if ( vfile==null || (!isDecoderValid()) ) return null;
+
+ time *= 1000000;
+- int[] frame = grabFrame(vfile.getPath(), (long)time, resize);
+- if (frame==null) return null;
+-
+- SinglePixelPackedSampleModel model = new SinglePixelPackedSampleModel(DataBuffer.TYPE_INT,frame[0], frame[1], bitmasks);
+- DataBufferInt buffer = new DataBufferInt(frame, frame[0]*frame[1], 2);
+- WritableRaster ras = Raster.createWritableRaster(model, buffer, null);
+- BufferedImage image = new BufferedImage(cmodel, ras, true, null);
++ byte[] data = grabFrame(vfile.getPath(), (long)time, resize);
++ if (data==null) return null;
++
++ byte[] frame = new byte[data.length-4];
++ int X = data[0] * 128 + data[1];
++ int Y = data[2] * 128 + data[3];
++ System.arraycopy(data, 4, frame, 0, frame.length);
++ BufferedImage image = new BufferedImage(X, Y, BufferedImage.TYPE_3BYTE_BGR);
++ WritableRaster raster = image.getRaster();
++ raster.setDataElements(0, 0, X, Y, frame);
+ return image;
+ }
+
+@@ -152,7 +140,7 @@
+ }
+
+ /* Get the image for this timestamp */
+- private native int[] grabFrame(String video, long time, float resize);
++ private native byte[] grabFrame(String video, long time, float resize);
+
+ /* Create a wav file from the specified time stamps */
+ private native boolean createClip(String audio, String wav, long from, long to);
diff --git a/media-video/jubler/files/jubler-3.9.6.patch b/media-video/jubler/files/jubler-3.9.6.patch
new file mode 100644
index 000000000000..32cbeb3b601f
--- /dev/null
+++ b/media-video/jubler/files/jubler-3.9.6.patch
@@ -0,0 +1,180 @@
+diff -Nur Jubler-3.9.6/build.xml Jubler-3.9.6_patched/build.xml
+--- Jubler-3.9.6/build.xml 2008-09-07 02:05:23.000000000 +0300
++++ Jubler-3.9.6_patched/build.xml 2008-09-22 19:40:36.000000000 +0300
+@@ -69,22 +69,6 @@
+
+
+
+- <!-- Define new ant tasks -->
+-
+- <taskdef name="izpack"
+- onerror="report"
+- classpath="../../Tools/IzPack/standalone-compiler.jar"
+- classname="com.izforge.izpack.ant.IzPackTask"/>
+-
+- <taskdef name="launch4j"
+- onerror="report"
+- classpath="../../Tools/launch4j/launch4j.jar:../TOOLS/launch4j/lib/xstream.jar"
+- classname="net.sf.launch4j.ant.Launch4jTask"/>
+-
+- <taskdef name="jarbundler"
+- onerror="report"
+- classpath="../../Tools/jarbundler/jarbundler-1.9.jar"
+- classname="net.sourceforge.jarbundler.JarBundler" />
+
+
+
+@@ -397,9 +381,6 @@
+
+
+
+- <target name="-pre-compile">
+- <copy todir="src/com"> <fileset dir="resources/system/no_mac"/> </copy>
+- </target>
+ <target name="-post-compile">
+ <delete dir="build/classes/com/apple" failonerror="false"/>
+ <delete dir="src/com/apple" failonerror="false"/>
+diff -Nur Jubler-3.9.6/resources/ffdecode/Makefile Jubler-3.9.6_patched/resources/ffdecode/Makefile
+--- Jubler-3.9.6/resources/ffdecode/Makefile 2008-09-22 11:01:58.000000000 +0300
++++ Jubler-3.9.6_patched/resources/ffdecode/Makefile 2008-09-22 19:41:30.000000000 +0300
+@@ -12,9 +12,6 @@
+ # Name of the produced library
+ PROJ=ffdecode
+
+-# Paths of include files
+-JAVA_HOME=${shell /bin/sh ../system/findjava.sh -j}
+-
+ # Current Path
+ CPATH=${shell pwd}
+
+@@ -106,7 +103,6 @@
+ CCPREF_NOS=${shell echo ${CCPREF} | sed -e 's/-$$//g' }
+ DCONFIG=--with-mp4v2 --host=${CCPREF_NOS}
+
+-CC=${CCPREF}gcc
+ RANLIB=${CCPREF}ranlib
+
+ ifeq (${NOSTRIP},)
+@@ -121,7 +117,7 @@
+ .SUFFIXES:.o .c
+
+ .c.o:
+- ${CC} ${CFLAGS} ${GCCOPTS} -std=c99 -pedantic -O3 -Wall ${INCS} -I${JAVA_HOME}/include -I${JAVA_HOME}/include/${SYSTEM} -c -o $@ $?
++ ${CC} ${CFLAGS} ${GCCOPTS} -std=c99 -pedantic -Wall ${INCS} -I${JAVA_HOME}/include -I${JAVA_HOME}/include/${SYSTEM} -c -o $@ $?
+
+
+ develop:javacheck
+diff -Nur Jubler-3.9.6/src/com/panayotis/jubler/information/HelpBrowser.java Jubler-3.9.6_patched/src/com/panayotis/jubler/information/HelpBrowser.java
+--- Jubler-3.9.6/src/com/panayotis/jubler/information/HelpBrowser.java 2008-09-08 18:22:32.000000000 +0300
++++ Jubler-3.9.6_patched/src/com/panayotis/jubler/information/HelpBrowser.java 2008-09-22 19:42:04.000000000 +0300
+@@ -47,7 +47,7 @@
+
+ history = new ArrayList<String>();
+
+- String initpage = "file:"+SystemFileFinder.getJublerAppPath()+"/help/jubler-faq.html";
++ String initpage = "file:"+SystemFileFinder.getJublerAppPath()+"/../help/jubler-faq.html";
+ setPage(initpage);
+ history.add(initpage);
+
+diff -Nur Jubler-3.9.6/src/com/panayotis/jubler/Main.java Jubler-3.9.6_patched/src/com/panayotis/jubler/Main.java
+--- Jubler-3.9.6/src/com/panayotis/jubler/Main.java 2008-09-16 12:51:40.000000000 +0300
++++ Jubler-3.9.6_patched/src/com/panayotis/jubler/Main.java 2008-09-22 19:42:48.000000000 +0300
+@@ -105,17 +105,9 @@
+ /* Load arguments, in a mac way */
+ SystemDependent.initApplication();
+
+- /* Check current version in a new thread */
+- Thread versioncheck = new Thread() {
+- public void run() {
+- StaticJubler.initVersion();
+- }
+- };
+-
+ new Jubler(); // Display initial Jubler window
+ splash.dispose(); // Hide splash screen
+ loader.start(); // initialize loader
+- versioncheck.start();
+ }
+
+ static private MainSplash splash;
+diff -Nur Jubler-3.9.6/src/com/panayotis/jubler/os/SystemDependent.java Jubler-3.9.6_patched/src/com/panayotis/jubler/os/SystemDependent.java
+--- Jubler-3.9.6/src/com/panayotis/jubler/os/SystemDependent.java 2008-09-20 23:59:27.000000000 +0300
++++ Jubler-3.9.6_patched/src/com/panayotis/jubler/os/SystemDependent.java 2008-09-22 19:43:40.000000000 +0300
+@@ -25,10 +25,6 @@
+
+ import static com.panayotis.jubler.i18n.I18N._;
+
+-import com.apple.eawt.Application;
+-import com.apple.eawt.ApplicationAdapter;
+-import com.apple.eawt.ApplicationEvent;
+-
+ import com.panayotis.jubler.Jubler;
+ import com.panayotis.jubler.Main;
+ import com.panayotis.jubler.StaticJubler;
+@@ -113,10 +109,6 @@
+
+
+ public static void initApplication() {
+- /* In Linux this is a dummy function */
+- if (isMacOSX()) {
+- JublerApp japp = new JublerApp();
+- }
+ }
+
+
+@@ -342,35 +334,3 @@
+ }
+ }
+
+-
+-
+-class JublerApp extends Application {
+- public JublerApp() {
+- setEnabledPreferencesMenu(true);
+- addApplicationListener(new ApplicationHandler());
+- }
+-}
+-
+-class ApplicationHandler extends ApplicationAdapter {
+-
+- public ApplicationHandler() {}
+-
+- public void handleAbout(ApplicationEvent event) {
+- StaticJubler.showAbout();
+- event.setHandled(true);
+- }
+-
+- public void handlePreferences(ApplicationEvent event) {
+- Jubler.prefs.showPreferencesDialog();
+- event.setHandled(true);
+- }
+-
+- public void handleQuit(ApplicationEvent event) {
+- StaticJubler.prepareQuitAll();
+- event.setHandled(false);
+- }
+-
+- public void handleOpenFile(ApplicationEvent event) {
+- Main.asyncAddSubtitle(event.getFilename());
+- }
+-}
+diff -Nur Jubler-3.9.6/src/com/panayotis/jubler/os/SystemFileFinder.java Jubler-3.9.6_patched/src/com/panayotis/jubler/os/SystemFileFinder.java
+--- Jubler-3.9.6/src/com/panayotis/jubler/os/SystemFileFinder.java 2008-09-08 18:22:32.000000000 +0300
++++ Jubler-3.9.6_patched/src/com/panayotis/jubler/os/SystemFileFinder.java 2008-09-22 19:44:30.000000000 +0300
+@@ -58,15 +58,12 @@
+ }
+
+ public static boolean loadLibrary(String name) {
+- File libfile = findFile("lib"+pathseparator+System.mapLibraryName(name));
+- if (libfile!=null) {
+ try {
+- System.load(libfile.getAbsolutePath());
++ System.loadLibrary(name);
+ return true;
+ } catch (UnsatisfiedLinkError e) {
+ e.printStackTrace();
+ }
+- }
+ return false;
+ }
+
diff --git a/media-video/jubler/jubler-3.9.6.ebuild b/media-video/jubler/jubler-3.9.6.ebuild
new file mode 100644
index 000000000000..778688d966d8
--- /dev/null
+++ b/media-video/jubler/jubler-3.9.6.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-video/jubler/jubler-3.9.6.ebuild,v 1.1 2008/10/29 20:22:21 serkan Exp $
+
+inherit gnome2 eutils java-pkg-2 java-ant-2 toolchain-funcs
+
+MY_PN=${PN/#j/J}
+DESCRIPTION="Java subtitle editor"
+HOMEPAGE="http://www.jubler.org/"
+SRC_URI="mirror://sourceforge/${PN}/${MY_PN}-src-${PV}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="mplayer nls spell"
+
+RDEPEND=">=virtual/jre-1.5
+ >=media-video/ffmpeg-0.4.9_p20080326
+ mplayer? ( media-video/mplayer )
+ spell?
+ (
+ app-text/aspell
+ >=dev-java/zemberek-2.0
+ )"
+
+DEPEND=">=virtual/jdk-1.5
+ media-video/ffmpeg
+ app-text/docbook-sgml-utils
+ dev-util/pkgconfig
+ nls? ( sys-devel/gettext )"
+
+S=${WORKDIR}/${MY_PN}-${PV}
+
+pkg_setup() {
+ if use spell && ! built_with_use dev-java/zemberek linguas_tr; then
+ die "Zemberek should be built with Turkish language support"
+ fi
+ if use mplayer && ! built_with_use media-video/mplayer srt; then
+ msg="media-video/mplayer needs to be built with the srt use flag"
+ eerror ${msg}
+ die ${msg}
+ fi
+ java-pkg-2_pkg_setup
+}
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+ epatch "${FILESDIR}/${P}.patch"
+ epatch "${FILESDIR}/${P}-ffmpegfix.patch"
+ chmod +x resources/installers/linux/iconinstall
+}
+
+src_compile() {
+ java-pkg_filter-compiler ecj-3.2
+ eant $(use nls && echo i18n) jar faq || die "eant failed"
+ cp -v dist/help/jubler-faq.html build/classes/help || die "cp failed"
+ cd resources/ffdecode || die
+ CC=$(tc-getCC) NOSTRIP=true emake linuxdyn || die "make failed"
+}
+
+src_install() {
+ java-pkg_dojar dist/Jubler.jar
+ use spell && java-pkg_register-dependency zemberek zemberek2-cekirdek.jar
+ use spell && java-pkg_register-dependency zemberek zemberek2-tr.jar
+ java-pkg_doso resources/ffdecode/libffdecode.so
+ doicon resources/installers/linux/jubler.png
+ domenu resources/installers/linux/jubler.desktop
+
+ DESTDIR="${D}" eant linuxdesktopintegration
+ rm -vr "${D}/usr/share/menu" || die
+
+ java-pkg_dolauncher jubler --main com.panayotis.jubler.Main
+ doman resources/installers/linux/jubler.1
+ insinto /usr/share/jubler/help
+ doins dist/help/*
+}
+
+pkg_preinst() {
+ gnome2_pkg_preinst
+ java-pkg-2_pkg_preinst
+}