[SCM] Java Abstracted Foreign Function Layer branch, master, updated. debian/0.5.4-1.1-3-g7c6ae7d

Damien Raude-Morvan drazzib at debian.org
Thu Dec 20 23:24:51 UTC 2012


The following commit has been merged in the master branch:
commit 3cc070efb22cc3ffeb6be24a25cf3c40d2c3dfa7
Author: Damien Raude-Morvan <drazzib at debian.org>
Date:   Wed Aug 29 22:27:53 2012 +0200

    Team upload.

diff --git a/.gitignore b/.gitignore
index b616b77..9f92bbd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,3 +7,4 @@ build
 dist
 target
 lib/nblibraries-private.properties
+.pc
diff --git a/debian/changelog b/debian/changelog
index 5ea8a42..aa8d686 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,18 @@
+jaffl (0.5.9-1) UNRELEASED; urgency=low
+
+  * Team upload.
+  * New upstream release.
+  * d/control: Add missing Depends on libjffi-java, libasm3-java
+    and libjnr-x86asm-java.
+  * d/{orig-tar.sh,watch}: Upgrade for new upstream tarballs
+  * d/rules: Also use mh_clean to clean m-r-h.
+  * d/patches/string_array_support.diff: Fix String[] handling.
+  * d/maven.rules: Improve Maven metadata registration.
+  * d/control: Bump Standards-Version to 3.9.3, no changes needed.
+  * d/copyright: Fix for copyright format 1.0.
+
+ -- Damien Raude-Morvan <drazzib at debian.org>  Tue, 21 Aug 2012 01:52:49 +0200
+
 jaffl (0.5.4-1.1) unstable; urgency=low
 
   * Non maintainer upload.
diff --git a/debian/control b/debian/control
index 4206024..ebd88f7 100644
--- a/debian/control
+++ b/debian/control
@@ -3,17 +3,21 @@ Section: java
 Priority: optional
 Maintainer: Debian Java Maintainers <pkg-java-maintainers at lists.alioth.debian.org>
 Uploaders: Torsten Werner <twerner at debian.org>
-Build-Depends: debhelper (>= 7), cdbs, maven-repo-helper
-Build-Depends-Indep: ant-optional, default-jdk, libasm3-java, libjffi-java,
- libjnr-x86asm-java, junit4
-Standards-Version: 3.9.0
+Build-Depends: cdbs, debhelper (>= 7), maven-repo-helper
+Build-Depends-Indep: ant-optional,
+                     default-jdk,
+                     junit4,
+                     libasm3-java,
+                     libjffi-java,
+                     libjnr-x86asm-java
+Standards-Version: 3.9.3
 Vcs-Git: git://git.debian.org/pkg-java/jaffl.git
 Vcs-Browser: http://git.debian.org/?p=pkg-java/jaffl.git
 Homepage: http://github.com/wmeissner/jaffl
 
 Package: libjaffl-java
 Architecture: all
-Depends: ${misc:Depends}
+Depends: libasm3-java, libjffi-java, libjnr-x86asm-java, ${misc:Depends}
 Description: Java Abstracted Foreign Function Layer
  Jaffl is a Java library providing an abstracted interface to invoking native
  functions from Java.
diff --git a/debian/copyright b/debian/copyright
index 3a368bd..5edaf0a 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -1,14 +1,11 @@
-Format-Specification: http://dep.debian.net/deps/dep5/
-Name: jnr-x86asm
-Maintainer: Wayne Meissner
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: jnr-x86asm
+Upstream-Contact: Wayne Meissner
 Source: http://github.com/wmeissner/jnr-x86asm
 
-Copyright: 2010      Wayne Meissner (Java code)
-           2008-2009 Petr Kobalicek <kobalicek.petr at gmail.com> (original C++ code)
-License: LGPL-3 only (Java code), MIT/X11 (C++ code)
- The full text of the LGPL-3 license can be found at
-`/usr/share/common-licenses/LGPL-3'.
- .
+Files: *.c
+Copyright: 2008-2009 Petr Kobalicek <kobalicek.petr at gmail.com> (original C++ code)
+License: MIT/X11
  The original MIT/X11 license for the C++ code is:
  .
  Permission is hereby granted, free of charge, to any person obtaining a copy of
@@ -29,11 +26,17 @@ License: LGPL-3 only (Java code), MIT/X11 (C++ code)
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  SOFTWARE.
 
+Files: *.java
+Copyright: 2010      Wayne Meissner (Java code)
+License: LGPL-3
+ The full text of the LGPL-3 license can be found at
+ /usr/share/common-licenses/LGPL-3.
+
 Files: debian/*
 Copyright: 2010 Torsten Werner <twerner at debian.org>
 License: LGPL-3 or MIT/X11
  The full text of the LGPL-3 license can be found at
-`/usr/share/common-licenses/LGPL-3'.
+ /usr/share/common-licenses/LGPL-3.
  .
  The MIT/X11 license:
  .
@@ -54,4 +57,3 @@ License: LGPL-3 or MIT/X11
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  SOFTWARE.
-
diff --git a/debian/libjaffl-java.poms b/debian/libjaffl-java.poms
new file mode 100644
index 0000000..0417132
--- /dev/null
+++ b/debian/libjaffl-java.poms
@@ -0,0 +1,28 @@
+# 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 --has-package-version
diff --git a/debian/maven.ignoreRules b/debian/maven.ignoreRules
new file mode 100644
index 0000000..11e83cb
--- /dev/null
+++ b/debian/maven.ignoreRules
@@ -0,0 +1,21 @@
+# Maven ignore rules - ignore some Maven dependencies and plugins
+# Format of this file is:
+# [group] [artifact] [type] [version] [classifier] [scope]
+# where each element can be either
+# - the exact string, for example org.apache for the group, or 3.1
+#   for the version. In this case, the element is simply matched
+#   and left as it is
+# - * (the star character, alone). In this case, anything will
+#   match and be left as it is. For example, using * on the
+#  position of the artifact field will match any artifact id
+# All elements much match before a rule can be applied
+# Example rule: match jar with groupid= junit, artifactid= junit
+# and version starting with 3., this dependency is then removed
+# from the POM
+#   junit junit jar s/3\..*/3.x/
+
+junit junit * * * *
+org.apache.maven.plugins maven-surefire-plugin * * * *
+org.apache.maven.wagon wagon-webdav * * * *
+org.jruby.extras jffi * * * *
+org.jvnet.wagon-svn wagon-svn * * * *
diff --git a/debian/maven.rules b/debian/maven.rules
new file mode 100644
index 0000000..be9ef4c
--- /dev/null
+++ b/debian/maven.rules
@@ -0,0 +1,20 @@
+# Maven rules - transform Maven dependencies and plugins
+# Format of this file is:
+# [group] [artifact] [type] [version] [classifier] [scope]
+# where each element can be either
+# - the exact string, for example org.apache for the group, or 3.1
+#   for the version. In this case, the element is simply matched
+#   and left as it is
+# - * (the star character, alone). In this case, anything will
+#   match and be left as it is. For example, using * on the
+#  position of the artifact field will match any artifact id
+# - a regular expression of the form s/match/replace/
+#   in this case, elements that match are transformed using
+#   the regex rule.
+# All elements much match before a rule can be applied
+# Example rule: match jar with groupid= junit, artifactid= junit
+# and version starting with 3., replacing the version with 3.x
+#   junit junit jar s/3\..*/3.x/
+
+org.jruby.extras jaffl jar s/.*/debian/ * *
+asm * * s/3\..*/3.x/ * *
diff --git a/debian/orig-tar.sh b/debian/orig-tar.sh
index 3491e7f..4cf26d4 100755
--- a/debian/orig-tar.sh
+++ b/debian/orig-tar.sh
@@ -4,9 +4,9 @@
 
 DIR=jaffl-$2
 
-git clone http://github.com/wmeissner/jaffl.git $DIR
-(cd $DIR && git checkout $2)
-
+tar xzf $3
+mv wmeissner-* $DIR
 tar cfz jaffl_$2.orig.tar.gz -X debian/orig-tar.exclude $DIR
+mv jaffl_$2.orig.tar.gz ../
 
-rm -rf $DIR ../$2
+rm -rf $DIR
diff --git a/debian/patches/series b/debian/patches/series
index 179c2fd..f25df0c 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -2,3 +2,4 @@
 0002-remove-copyLibs-task.patch
 0003-don-t-call-ant-for-subprojects.patch
 ftbfs-gcc-4.7.diff
+string_array_support.diff
diff --git a/debian/patches/string_array_support.diff b/debian/patches/string_array_support.diff
new file mode 100644
index 0000000..d046e41
--- /dev/null
+++ b/debian/patches/string_array_support.diff
@@ -0,0 +1,333 @@
+Description: Backport String[] to 0.5_branch
+ The commits include:
+ Yours from master, with modifications to merge successfully
+ Tweaks to use 0.5 versions of memory allocation, dispose (i.e. finalize), and platform bits.
+ All tests pass, including the backported StringArrayTest. execv works properly with this build and updated jnr-posix called from JRuby.
+Origin: https://github.com/wmeissner/jaffl/pull/2
+Author: Charles Oliver Nutter <headius>
+--- a/src/com/kenai/jaffl/Pointer.java
++++ b/src/com/kenai/jaffl/Pointer.java
+@@ -1,6 +1,8 @@
+ 
+ package com.kenai.jaffl;
+ 
++import java.nio.charset.Charset;
++
+ public interface Pointer {
+     public static final int SIZE = Platform.getPlatform().addressSize();
+ 
+@@ -31,6 +33,8 @@
+     abstract public Pointer getPointer(long offset);
+     abstract public void putPointer(long offset, Pointer value);
+     abstract public String getString(long offset);
++    abstract public String getString(long offset, int maxLength, Charset cs);
++    abstract public void putString(long offset, String string, int maxLength, Charset cs);
+     abstract public long address();
+     abstract public boolean isDirect();
+ }
+--- a/src/com/kenai/jaffl/provider/jffi/AsmLibraryLoader.java
++++ b/src/com/kenai/jaffl/provider/jffi/AsmLibraryLoader.java
+@@ -98,6 +98,7 @@
+                 || Struct.class.isAssignableFrom(type)
+                 || (type.isArray() && Struct.class.isAssignableFrom(type.getComponentType()))
+                 || (type.isArray() && Pointer.class.isAssignableFrom(type.getComponentType()))
++                || (type.isArray() && CharSequence.class.isAssignableFrom(type.getComponentType()))
+                 || CharSequence.class.isAssignableFrom(type)
+                 || ByReference.class.isAssignableFrom(type)
+                 || StringBuilder.class.isAssignableFrom(type)
+@@ -562,6 +563,11 @@
+                 // stack should be: [ Buffer, array, flags ]
+                 marshal(mv, CharSequence.class);
+ 
++            } else if (parameterTypes[i].isArray() && CharSequence.class.isAssignableFrom(parameterTypes[i].getComponentType())) {
++                mv.pushInt(parameterFlags);
++                mv.pushInt(nativeArrayFlags);
++                sessionmarshal(mv, CharSequence[].class, int.class, int.class);
++
+             } else if (Struct.class.isAssignableFrom(parameterTypes[i])) {
+                 mv.pushInt(parameterFlags);
+                 mv.pushInt(nativeArrayFlags);
+@@ -1008,7 +1014,9 @@
+         return StringBuilder.class.isAssignableFrom(parameterType)
+                 || StringBuffer.class.isAssignableFrom(parameterType)
+                 || ByReference.class.isAssignableFrom(parameterType)
+-                || (parameterType.isArray() && Pointer.class.isAssignableFrom(parameterType.getComponentType()));
++                || (parameterType.isArray() && Pointer.class.isAssignableFrom(parameterType.getComponentType()))
++                || (parameterType.isArray() && CharSequence.class.isAssignableFrom(parameterType.getComponentType()))
++                ;
+     }
+ 
+     private static boolean isSessionRequired(Class[] parameterTypes) {
+--- a/src/com/kenai/jaffl/provider/jffi/AsmRuntime.java
++++ b/src/com/kenai/jaffl/provider/jffi/AsmRuntime.java
+@@ -269,23 +269,70 @@
+         }
+     }
+ 
++    public static final void marshal(InvocationSession session, InvocationBuffer buffer,
++            final CharSequence[] strings, final int inout, int nativeArrayFlags) {
++        if (strings == null) {
++            buffer.putAddress(0L);
++
++        } else {
++            final AllocatedDirectMemoryIO[] pointers = new AllocatedDirectMemoryIO[strings.length];
++            final StringIO io = StringIO.getStringIO();
++
++            if (ParameterFlags.isIn(inout)) {
++                for (int i = 0; i < strings.length; ++i) {
++                    if (strings[i] != null) {
++                        ByteBuffer buf = io.toNative(strings[i], strings[i].length(), ParameterFlags.isIn(inout));
++                        AllocatedDirectMemoryIO ptr = new AllocatedDirectMemoryIO(buf.remaining(), false);
++                        ptr.put(0, buf.array(), buf.arrayOffset() + buf.position(), buf.remaining());
++                        pointers[i] = ptr;
++
++                    } else {
++                        pointers[i] = null;
++                    }
++                }
++            }
++
++            // pass it as an array of pointers
++            final Pointer[] tmp = new Pointer[pointers.length];
++            System.arraycopy(pointers, 0, tmp, 0, tmp.length);
++            marshal(session, buffer, tmp, inout, nativeArrayFlags);
++
++            // Reload any elements of the native array that were changed, and convert back to java strings
++            // the PostInvoke also keeps the native memory alive until after the function call
++            session.addPostInvoke(new InvocationSession.PostInvoke() {
++
++                public void postInvoke() {
++                    if (ParameterFlags.isOut(inout)) {
++                        for (int i = 0; i < pointers.length; ++i) {
++                            if (tmp[i] != null) {
++                                strings[i] = tmp[i].getString(0);
++                            }
++                        }
++                    }
++                }
++            });
++
++        }
++    }
++
++
+     public static final void marshal(InvocationBuffer buffer, final Enum parameter) {
+         buffer.putInt(EnumMapper.getInstance().intValue(parameter));
+     }
+ 
+ 
+-    public static final void marshal(InvocationSession session, InvocationBuffer buffer, Pointer[] parameter, int inout, int nativeArrayFlags) {
+-        if (parameter == null) {
++    public static final void marshal(InvocationSession session, InvocationBuffer buffer, 
++            final Pointer[] pointers, int inout, int nativeArrayFlags) {
++        if (pointers == null) {
+             buffer.putAddress(0L);
+         } else {
+-            final Pointer[] array = parameter;
+             if (Pointer.SIZE == 32) {
+-                final int[] raw = new int[array.length];
+-                for (int i = 0; i < raw.length; ++i) {
+-                    if (!array[i].isDirect()) {
++                final int[] raw = new int[pointers.length + 1];
++                for (int i = 0; i < pointers.length; ++i) {
++                    if (pointers[i] != null && !pointers[i].isDirect()) {
+                         throw new IllegalArgumentException("invalid pointer in array at index " + i);
+                     }
+-                    raw[i] = (int) array[i].address();
++                    raw[i] = pointers[i] != null ? (int) pointers[i].address() : 0;
+                 }
+                 buffer.putArray(raw, 0, raw.length, nativeArrayFlags);
+ 
+@@ -293,19 +340,19 @@
+                     session.addPostInvoke(new InvocationSession.PostInvoke() {
+ 
+                         public void postInvoke() {
+-                            for (int i = 0; i < raw.length; ++i) {
+-                                array[i] = MemoryUtil.newPointer(raw[i]);
++                            for (int i = 0; i < pointers.length; ++i) {
++                                pointers[i] = MemoryUtil.newPointer(raw[i]);
+                             }
+                         }
+                     });
+                 }
+             } else {
+-                final long[] raw = new long[array.length];
+-                for (int i = 0; i < raw.length; ++i) {
+-                    if (!array[i].isDirect()) {
++                final long[] raw = new long[pointers.length + 1];
++                for (int i = 0; i < pointers.length; ++i) {
++                    if (pointers[i] != null && !pointers[i].isDirect()) {
+                         throw new IllegalArgumentException("invalid pointer in array at index " + i);
+                     }
+-                    raw[i] = array[i].address();
++                    raw[i] = pointers[i] != null ? pointers[i].address() : 0;
+                 }
+ 
+                 buffer.putArray(raw, 0, raw.length, nativeArrayFlags);
+@@ -314,8 +361,8 @@
+                     session.addPostInvoke(new InvocationSession.PostInvoke() {
+ 
+                         public void postInvoke() {
+-                            for (int i = 0; i < raw.length; ++i) {
+-                                array[i] = MemoryUtil.newPointer(raw[i]);
++                            for (int i = 0; i < pointers.length; ++i) {
++                                pointers[i] = MemoryUtil.newPointer(raw[i]);
+                             }
+                         }
+                     });
+--- a/src/com/kenai/jaffl/provider/jffi/DefaultInvokerFactory.java
++++ b/src/com/kenai/jaffl/provider/jffi/DefaultInvokerFactory.java
+@@ -254,8 +254,13 @@
+             return new StringBufferMarshaller(getParameterFlags(annotations));
+         } else if (StringBuilder.class.isAssignableFrom(type)) {
+             return new StringBuilderMarshaller(getParameterFlags(annotations));
++
+         } else if (CharSequence.class.isAssignableFrom(type)) {
+             return CharSequenceMarshaller.INSTANCE;
++
++        } else if (type.isArray() && CharSequence.class.isAssignableFrom(type.getComponentType())) {
++            return new StringArrayMarshaller(getParameterFlags(annotations));
++
+         } else if (ByReference.class.isAssignableFrom(type)) {
+             return new ByReferenceMarshaller(getParameterFlags(annotations));
+         } else if (Struct.class.isAssignableFrom(type)) {
+@@ -286,6 +291,10 @@
+             return new DoubleArrayMarshaller(getParameterFlags(annotations));
+         } else if (type.isArray() && Struct.class.isAssignableFrom(type.getComponentType())) {
+             return new StructArrayMarshaller(getParameterFlags(annotations));
++
++        } else if (type.isArray() && Pointer.class.isAssignableFrom(type.getComponentType())) {
++            return new PointerArrayMarshaller(getParameterFlags(annotations));
++
+         } else {
+             throw new IllegalArgumentException("Unsupported parameter type: " + type);
+         }
+@@ -574,11 +583,25 @@
+         }
+     }
+ 
++    static final class StringArrayMarshaller extends SessionRequiredMarshaller {
++        private final int nflags, inout;
++        public StringArrayMarshaller(int inout) {
++            this.inout = inout;
++            this.nflags = getNativeArrayFlags(inout | (ParameterFlags.isIn(inout) ? ParameterFlags.NULTERMINATE : 0));
++        }
++
++
++        @Override
++        public void marshal(InvocationSession session, InvocationBuffer buffer, Object parameter) {
++            AsmRuntime.marshal(session, buffer, (CharSequence[]) parameter, inout, nflags);
++        }
++    }
++
+     static final class StringBufferMarshaller extends SessionRequiredMarshaller {
+         private final int nflags, inout;
+         public StringBufferMarshaller(int inout) {
+             this.inout = inout;
+-            this.nflags = getNativeArrayFlags(inout | (ParameterFlags.isIn(inout) ? ParameterFlags.NULTERMINATE : 0));
++            this.nflags = getNativeArrayFlags(inout);
+         }
+ 
+ 
+@@ -652,6 +675,19 @@
+         }
+     }
+ 
++    static final class PointerArrayMarshaller extends SessionRequiredMarshaller {
++        private final int nflags, inout;
++        public PointerArrayMarshaller(int inout) {
++            this.inout = inout;
++            this.nflags = getNativeArrayFlags(inout);
++        }
++
++        @Override
++        public void marshal(InvocationSession session, InvocationBuffer buffer, Object parameter) {
++            AsmRuntime.marshal(session, buffer, (Pointer[]) parameter, inout, nflags);
++        }
++    }
++
+     static final class ByteBufferMarshaller extends BaseMarshaller {
+         private final int flags;
+         public ByteBufferMarshaller(int flags) {
+--- /dev/null
++++ b/test/com/kenai/jaffl/StringArrayTest.java
+@@ -0,0 +1,78 @@
++
++package com.kenai.jaffl;
++
++import com.kenai.jaffl.annotations.In;
++import com.kenai.jaffl.annotations.Out;
++import java.nio.charset.Charset;
++import org.junit.After;
++import org.junit.AfterClass;
++import org.junit.Before;
++import org.junit.BeforeClass;
++import org.junit.Test;
++import static org.junit.Assert.*;
++
++/**
++ *
++ * @author wayne
++ */
++public class StringArrayTest {
++
++    public StringArrayTest() {
++    }
++
++    public static interface TestLib {
++        String ptr_return_array_element(@In String[] array, int index);
++        void ptr_set_array_element(@Out String[] array, int index, Pointer value);
++    }
++    
++    static TestLib testlib;
++    static Runtime runtime;
++    @BeforeClass
++    public static void setUpClass() throws Exception {
++        testlib = TstUtil.loadTestLib(TestLib.class);
++    }
++
++    @AfterClass
++    public static void tearDownClass() throws Exception {
++    }
++
++    @Before
++    public void setUp() {
++    }
++
++    @After
++    public void tearDown() {
++    }
++
++    // TODO add test methods here.
++    // The methods must be annotated with annotation @Test. For example:
++    //
++    // @Test
++    // public void hello() {}
++    @Test public void lastElementOfStringArrayShouldBeNull() {
++        String[] strings = { "test" };
++        String result = testlib.ptr_return_array_element(strings, 1);
++        assertNull("last element of string array was not null", result);
++    }
++
++    @Test public void firstElementOfStringArrayShouldNotBeNull() {
++        final String MAGIC = "test";
++        String[] strings = { MAGIC };
++        assertNotNull(testlib.ptr_return_array_element(strings, 0));
++    }
++
++    @Test public void firstElementOfStringArrayShouldEqualOriginalValue() {
++        final String MAGIC = "test";
++        String[] strings = { MAGIC };
++        assertEquals(MAGIC, testlib.ptr_return_array_element(strings, 0));
++    }
++
++    @Test public void elementsSetByNativeCodeShouldBeReloaded() {
++        final String MAGIC = "test";
++        String[] strings = new String[1];
++        Pointer ptr = FFIProvider.getProvider().getMemoryManager().allocateDirect(1024);
++        ptr.putString(0, MAGIC, 1024, Charset.defaultCharset());
++        testlib.ptr_set_array_element(strings, 0, ptr);
++        assertEquals(MAGIC, strings[0]);
++    }
++}
+\ No newline at end of file
diff --git a/debian/rules b/debian/rules
index c9abae4..a94df31 100755
--- a/debian/rules
+++ b/debian/rules
@@ -11,7 +11,8 @@ install/libjaffl-java::
 	mh_installjar -plibjaffl-java pom.xml -l dist/jaffl-*.jar
 
 clean::
-	$(RM) -rf build
+	mh_clean
+	$(RM) -rf build dist
 
 get-orig-source:
 	uscan --download-version $(DEB_UPSTREAM_VERSION) --force-download --rename
diff --git a/debian/watch b/debian/watch
index 297a5b0..a05396e 100644
--- a/debian/watch
+++ b/debian/watch
@@ -1,3 +1,2 @@
 version=3
-http://github.com/wmeissner/jaffl/downloads \
-  /wmeissner/jaffl/tarball/(.*) debian debian/orig-tar.sh
+http://githubredir.debian.net/github/wmeissner/jaffl /(.*).tar.gz debian debian/orig-tar.sh

-- 
Java Abstracted Foreign Function Layer



More information about the pkg-java-commits mailing list