[Git][java-team/javatools][master] 3 commits: Rewrite jh_build into perl

Niels Thykier gitlab at salsa.debian.org
Wed Jan 2 08:39:39 GMT 2019


Niels Thykier pushed to branch master at Debian Java Maintainers / javatools


Commits:
b54816d9 by Niels Thykier at 2019-01-02T08:35:19Z
Rewrite jh_build into perl

Signed-off-by: Niels Thykier <niels at thykier.net>

- - - - -
d051c39a by Niels Thykier at 2019-01-02T08:35:20Z
jh_build: Add a DH NOOP promise

Signed-off-by: Niels Thykier <niels at thykier.net>

- - - - -
2d15b359 by Niels Thykier at 2019-01-02T08:36:17Z
Add changelog for jh_build rewrite

Signed-off-by: Niels Thykier <niels at thykier.net>

- - - - -


5 changed files:

- debian/changelog
- debian/javahelper.manpages
- debian/rules
- jh_build
- − jh_build.1


Changes:

=====================================
debian/changelog
=====================================
@@ -1,3 +1,11 @@
+javatools (0.72.2) UNRELEASED; urgency=medium
+
+  * Team upload.
+  * Rewrite jh_build into a proper debhelper command enabling it
+    to understand "-N".
+
+ -- Niels Thykier <niels at thykier.net>  Wed, 02 Jan 2019 08:35:39 +0000
+
 javatools (0.72.1) unstable; urgency=medium
 
   * Fixed the installation of java-arch.sh


=====================================
debian/javahelper.manpages
=====================================
@@ -1,4 +1,3 @@
-jh_build.1
 jh_depends.1
 jh_makepkg.1
 jh_repack.1


=====================================
debian/rules
=====================================
@@ -24,6 +24,7 @@ override_dh_auto_build: jh_lib.sh
 	$(POD2MAN) jh_setupenvironment tmp/jh_setupenvironment.1
 	$(POD2MAN) jh_compilefeatures tmp/jh_compilefeatures.1
 	$(POD2MAN) jh_exec tmp/jh_exec.1
+	$(POD2MAN) jh_build tmp/jh_build.1
 	$(POD2MAN) jh_linkjars tmp/jh_linkjars.1
 	$(POD2MAN) jh_manifest tmp/jh_manifest.1
 	$(POD2MAN) jh_classpath tmp/jh_classpath.1


=====================================
jh_build
=====================================
@@ -1,191 +1,292 @@
-#!/bin/bash --
-
-EXECDIRS="bin usr/bin usr/games"
-
-set -e
-. /usr/share/javahelper/jh_lib.sh
-
-syntax()
-{
-   echo -e "Usage: jh_build [options] [<jar> <src>]"
-   echo -e "Options:"
-   echo -e "\t-h --help: show this text"
-   echo -e "\t-V --version: show the version"
-   echo -e "\t-q --quiet: don't print the build commands as they are executed"
-   echo -e "\t-m<class> --main=<class>: Use this class as the main class"
-   echo -e "\t-j<java-home> --java-home=<java-home>: Set the JAVA_HOME variable"
-   echo -e "\t-o<javac-opts> --javacopts=<javac-opts>: Options to the Java compiler"
-   echo -e "\t--clean: clean the build tree"
-   echo -e "\t-N --no-javadoc: Disable building javadoc"
-   echo -e "\t-J --javadoc: Enable building javadoc"
-   echo -e "\t--javadoc-opts=<javadoc-opts>: Options to javadoc"
-   echo -e "Environment Variables:"
-   echo -e "\tJAVA_HOME: path to the JDK to use"
-   echo -e "\tCLASSPATH: classpath to compile with and set in the manifest"
-   echo -e "\tJH_JAR_EXTRA: extra files to be included in the jar"
-   exit 1
+#!/use/bin/perl
+
+=head1 NAME
+
+jh_build - compile java sources in the absence of a (useful) upstream build system
+
+=cut
+
+use strict;
+use warnings;
+use Cwd qw(realpath);
+
+# Value to pass to -source/-target by default
+use constant DEFAULT_JAVA_RELEASE => '1.7';
+
+use Debian::Debhelper::Dh_Lib;
+use Debian::Javahelper::Java qw(write_manifest_fd);
+use Debian::Javahelper::Manifest qw(MAIN_SECTION);
+
+
+=head1 SYNOPSIS
+
+B<jh_build> [S<I<debhelper options>>]
+
+B<jh_build> [S<I<debhelper options>>] S<I<jarfile>> S<I<source>> [... S<I<source>>]
+
+=head1 DESCRIPTION
+
+
+
+=head1 FILES
+
+=over 4
+
+=item debian/javabuild
+
+A file consisting of each build to perform.  One build per line
+where each line consists of:
+
+  I<jarfile> I<source> [... I<source>]
+
+Where I<jarfile> is the name of the jar file to be built and I<source> is
+a source file or directory containing source files.
+
+=back
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<--main-class=>I<main-class>
+
+Set the B<Main-Class> attribute in the manifest of the generated jar file(s) to I<main-class>.
+This makes B<java -jar I<generated-jar-file>> run that class.
+
+=item B<--java-home=>I<home>
+
+Use I<home> as B<JAVA_HOME> (overrides the B<JAVA_HOME> environment variable).
+
+=item B<-J>, B<--javadoc>, B<-N>, B<--no-javadoc>
+
+Whether or not to build javadoc for the jar files.  The default is to
+generate javadoc along with the jar files.
+
+The B<-N> is the short variant of B<--no-javadoc>.
+
+=item B<-o> I<options>, B<--javacopts=>I<options>
+
+Pass I<options> to javac (when invoking javac).  The I<options> value
+is a space-separate list of options (remember to quote the argument to avoid the shell
+interpreting the value).
+
+=item B<--javadoc-opts=>I<options>
+
+Pass I<options> to javadoc (when invoking javadoc).  The I<options> value
+is a space-separate list of options (remember to quote the argument to avoid the shell
+interpreting the value).
+
+=item B<--clean>
+
+If passed, B<jh_build> will clean up after itself.  This is called by
+L<jh_clean(1)> and using L<jh_clean(1)> is recommended over calling
+B<jh_build> with B<--clean> directly.
+
+=back
+
+=head1 ENVIRONMENT
+
+=over 4
+
+=item B<JAVA_HOME>
+
+If set (and B<--java-home> is omitted), it determines the location of the java home
+for finding the L<javac(1)> compiler, L<javadoc(1)> compiler and the L<jar(1)> utility.
+
+If the environment variable is unset and B<--java-home> is omitted, then the default
+java home is F</usr/lib/jvm/default-java>
+
+=item CLASSPATH
+
+If set, this is the classpath used during compilation of the source code.
+
+=item JH_JAR_EXTRA
+
+A space separated list of extra files or directories to include in the generated jar file(s).
+
+Can be omitted if no extra files need to be included.
+
+=back
+
+=cut
+
+my $JAVA_HOME = $ENV{'JAVA_HOME'};
+my $CLASSPATH_ORIG = $ENV{'CLASSPATH'};
+my $CLASSPATH = $CLASSPATH_ORIG;
+my @JH_JAR_EXTRA;
+my $build_javadoc = 1;
+my (@javac_opts, @javadoc_opts, $main_class, $do_clean);
+my (@JAVAC, @JAVADOC, @JAR, @CLASSPATHDOCS, @builds);
+
+$CLASSPATH =~ tr/:/ / if defined($CLASSPATH_ORIG);
+ at JH_JAR_EXTRA = split(' ', $ENV{'JH_JAR_EXTRA'}) if @JH_JAR_EXTRA;
+
+init(options => {
+	'main|m=s' => \$main_class,
+	'java-home|j=s'  => \$JAVA_HOME,
+	'javadoc|J!' => $build_javadoc,
+	'N' => sub { $build_javadoc = 0; },
+	'clean' => \$do_clean,
+	# Space-separated list of options
+	'javacopts|o=s' => sub { @javadoc_opts = split(' ', $_[1])},
+	'javadoc-opts=s' => sub { @javadoc_opts = split(' ', $_[1])},
+});
+
+if ($do_clean) {
+	my @files;
+	complex_doit('rm -fr debian/_jh_manifest* debian/_jh_build*');
+	if (-f 'debian/javabuild') {
+		@files = map { $_->[0] } filedoublearray('debian/javabuild');
+		rm_files(@files);
+	}
+	exit(0);
 }
 
-ARGS="q quiet m main j java-home o javacopts J javadoc N no-javadoc O javadoc-opts clean" parseargs "$@"
-
-if [ -n "`getarg clean`" ]; then
-   rm -rf debian/_jh_manifest* debian/_jh_build*
-	if [ -f debian/javabuild ]; then
-		rm -f `awk '{print $1}' < debian/javabuild`
-	fi
-   exit 0
-fi
-
-if [ -n "`getarg j java-home`" ]; then
-   JAVA_HOME="`getarg j java-home`"
-elif [ -z "$JAVA_HOME" ]; then
-   if [ -d /usr/lib/jvm/default-java ]; then
-      JAVA_HOME=/usr/lib/jvm/default-java
-   else
-		JAVA_HOME=invalid
-   fi
-fi
-
-JH_JAVAC_OPTS="`getarg o javacopts`"
-JH_JAVADOC_OPTS="`getarg O javadoc-opts`"
-
-if ! grep -- -encoding <<< "$JH_JAVAC_OPTS" &>/dev/null; then
-    # Use ISO8859-1 as the default encoding to avoid unmappable character errors
-    JH_JAVAC_OPTS="-encoding ISO8859-1 $JH_JAVAC_OPTS"
-fi
-
-if ! grep -- --release <<< "$JH_JAVAC_OPTS" &>/dev/null; then
-    if ! grep -- -source <<< "$JH_JAVAC_OPTS" &>/dev/null; then
-        if ! grep -- -target <<< "$JH_JAVAC_OPTS" &>/dev/null; then
-	    JH_JAVAC_OPTS="-source 1.7 -target 1.7 $JH_JAVAC_OPTS"
-        else
-	    JH_JAVAC_OPTS="-source 1.7 $JH_JAVAC_OPTS"
-        fi
-    fi
-fi
-
-if ! grep -- --release <<< "$JH_JAVAC_OPTS" &>/dev/null; then
-    if ! grep -- -source <<< "$JH_JAVADOC_OPTS" &>/dev/null; then
-	JH_JAVADOC_OPTS="-source 1.7 $JH_JAVADOC_OPTS"
-    fi
-fi
-
-if ! grep -- -notimestamp <<< "$JH_JAVADOC_OPTS" &>/dev/null; then
-	JH_JAVADOC_OPTS="-notimestamp $JH_JAVADOC_OPTS"
-fi
-
-if ! grep -- -encoding <<< "$JH_JAVADOC_OPTS" &>/dev/null; then
-    JH_JAVADOC_OPTS="-encoding ISO8859-1 $JH_JAVADOC_OPTS"
-fi
-
-function dobuild()
-{
-
-	jarfile="$1"
-	shift
-	ext="`basename "$jarfile" .jar`"
-	srcdirs=()
-	srcfiles=()
-	while [ -n "$1" ]; do
-		if [ -f "$1" ]; then
-			srcfiles+=("$1")
-		elif [ -d "$1" ]; then
-			srcdirs+=("$1")
-		else
-			echo "Ignoring $1 because it does not exist"
-		fi
-		shift
-	done
-
-	if [ "$JAVA_HOME" == "invalid" ]; then
-      echo "Cannot find any JAVA_HOME: aborting" 1>&2
-      exit 1
-	fi
-
-	rm -f debian/_jh_manifest.$ext
-	(
-            if [ -n "$CLASSPATH" ]; then
-		echo -n "Class-Path: "
-		echo $CLASSPATH | sed 's/:/ /g'
-	    fi
-	    if [ -n "`getarg m main`" ]; then
-		echo "Main-Class: `getarg m main`"
-		echo "Debian-Java-Home: $JAVA_HOME"
-	    fi
-        ) | perl -p -e 's/(.{72})(?=.)/$1\n /go' >> debian/_jh_manifest.$ext
-        # (NB: see D::JH::Java::write_manifest_section_fd on the regex above)
-
-   CLASSPATHDOCS="`for i in $(grep-dctrl --no-field-names --show-field Build-Depends,Build-Depends-Indep -F source "$pkg" debian/control | tr , ' ' | sed 's/([^)]*)//g') ; do dpkg -L $i 2>/dev/null | grep /usr/share/doc/.*/api$; done | sed 's/^/-link /' | xargs`"
-
-	mkdir -p debian/_jh_build.$ext
-	if [ -n "$srcdirs" ]; then
-
-		if [ -z "`getarg q quiet`" ]; then
-			echo find "${srcdirs[@]}" -name '*.java' -and -type f -print0 '|' xargs -s 512000 -0 $JAVAC -g -cp $CLASSPATH:debian/_jh_build.$ext -d debian/_jh_build.$ext $JH_JAVAC_OPTS "${srcfiles[@]}"
-		fi
-
-		find "${srcdirs[@]}" -name '*.java' -and -type f -print0 | xargs -s 512000 -0 $JAVAC -g -cp $CLASSPATH:debian/_jh_build.$ext -d debian/_jh_build.$ext $JH_JAVAC_OPTS "${srcfiles[@]}"
-
-		if [ -n "`getarg J javadoc`" ] || [ -z "`getarg N no-javadoc`" ]; then
-			if [ -z "`getarg q quiet`" ]; then
-				echo find "${srcdirs[@]}" -name '*.java' -and -type f -print0 '|' xargs -s 512000 -0 $JAVADOC $CLASSPATHDOCS -classpath $CLASSPATH:debian/_jh_build.$ext -d debian/_jh_build.javadoc/api -quiet $JH_JAVADOC_OPTS "${srcfiles[@]}"
-			fi
-
-			find "${srcdirs[@]}" -name '*.java' -and -type f -print0 | xargs -s 512000 -0 $JAVADOC $CLASSPATHDOCS -classpath $CLASSPATH:debian/_jh_build.$ext -d debian/_jh_build.javadoc/api -quiet $JH_JAVADOC_OPTS "${srcfiles[@]}"
-		fi
-
-	elif [ -n "$srcfiles" ]; then
-
-		if [ -z "`getarg q quiet`" ]; then
-			echo $JAVAC -g -cp $CLASSPATH:debian/_jh_build.$ext -d debian/_jh_build.$ext $JH_JAVAC_OPTS "${srcfiles[@]}"
-		fi
-
-		$JAVAC -g -cp $CLASSPATH:debian/_jh_build.$ext -d debian/_jh_build.$ext $JH_JAVAC_OPTS "${srcfiles[@]}"
-
-		if [ -n "`getarg J javadoc`" ] || [ -z "`getarg N no-javadoc`" ]; then
-			if [ -z "`getarg q quiet`" ]; then
-				echo $JAVADOC $CLASSPATHDOCS -classpath $CLASSPATH:debian/_jh_build.$ext -d debian/_jh_build.javadoc/api -quiet $JH_JAVADOC_OPTS "${srcfiles[@]}"
-			fi
-			$JAVADOC $CLASSPATHDOCS -classpath $CLASSPATH:debian/_jh_build.$ext -d debian/_jh_build.javadoc/api -quiet $JH_JAVADOC_OPTS "${srcfiles[@]}"
-		fi
-
-	else
-		exit 0
-	fi
-
-	touch "$jarfile"
-	jarpath="`readlink -f "$jarfile"`"
-
-	(
-		cd debian/_jh_build.$ext;
-		if [ -z "`getarg q quiet`" ]; then
-			echo $JAR cfm "$jarpath" ../_jh_manifest.$ext *
-		fi
-		$JAR cfm  "$jarpath" ../_jh_manifest.$ext *
-	)
-	if [ -n "$JH_JAR_EXTRA" ]; then
-		if [ -z "`getarg q quiet`" ]; then
-			echo $JAR uf "$jarpath" $JH_JAR_EXTRA
-		fi
-		$JAR uf "$jarpath" $JH_JAR_EXTRA
-	fi
+sub _has_java_option {
+	my ($opt_ref, $option_name) = @_;
+	for my $arg (@{$opt_ref}) {
+		return 1 if $arg eq $option_name;
+	}
+	return 0;
+}
 
+sub _default_java_option {
+	my ($opt_ref, $option_name, $default_value) = @_;
+	return if _has_java_option($opt_ref, $option_name);
+	if (defined($default_value)) {
+		# -source <version>
+		push(@{$opt_ref}, $option_name, $default_value);
+	} else {
+		# -notimestamp
+		push(@{$opt_ref}, $option_name);
+	}
+	return;
 }
 
-JAVAC="${JAVA_HOME}/bin/javac"
-JAVADOC="${JAVA_HOME}/bin/javadoc -locale en_US"
-JAR="${JAVA_HOME}/bin/jar"
+# Use ISO8859-1 as the default encoding to avoid unmappable character errors
+_default_java_option(\@javac_opts, '-encoding', 'ISO8859-1');
+_default_java_option(\@javadoc_opts, '-encoding', 'ISO8859-1');
+
+if (not _has_java_option(\@javac_opts, '--release') and not _has_java_option(\@javac_opts, '-source')) {
+	# If neither --release nor -source is set, then set -source (and -target if also absent)
+	if (not _has_java_option(\@javac_opts, '-target')) {
+		push(@javac_opts, '-source', DEFAULT_JAVA_RELEASE, '-target', DEFAULT_JAVA_RELEASE);
+	} else {
+		push(@javac_opts, '-source', DEFAULT_JAVA_RELEASE);
+	}
+}
+
+if (not _has_java_option(\@javadoc_opts, '--release')) {
+	_default_java_option(\@javadoc_opts, '-source', DEFAULT_JAVA_RELEASE);
+}
+
+_default_java_option(\@javadoc_opts, '-notimestamp');
+
+
+sub do_build {
+	my ($jarfile, @sources) = @_;
+	my (@srcdirs, @srcfiles);
+	my $basename = basename($jarfile);
+	my $ext = $basename;
+	$ext =~ s/[.]jar$//;
+
+	for my $source (@sources) {
+		if (-f $source) {
+			push(@srcfiles, $source);
+		} elsif (-d _) {
+			push(@srcdirs, $source);
+		} else {
+			warning("Ignoring $source because it does not exist");
+		}
+	}
+	rm_files("debian/_jh_manifest.${ext}");
+	if ($main_class or defined($CLASSPATH)) {
+		my $manifest = Debian::Javahelper::Manifest->new;
+		my $main_section = $manifest->get_section(MAIN_SECTION);
+		if (defined($CLASSPATH)) {
+			$main_section->set_value('Class-Path', $CLASSPATH);
+		}
+		if ($main_class) {
+			$main_section->set_value('Main-Class', $main_class);
+			$main_section->set_value('Debian-Java-Home', $JAVA_HOME);
+		}
+		open(my $fd, '>', "debian/_jh_manifest.$ext") or error("open(debian/_jh_manifest.$ext) failed: $!");
+		write_manifest_fd($manifest, $fd, "debian/_jh_manifest.$ext");
+		close($fd) or error("close(debian/_jh_manifest.$ext) failed: $!");
+	}
+
+	install_dir("debian/_jh_build.$ext");
+
+	if (@srcdirs) {
+		my $dirs_escaped = escape_shell(@srcdirs);
+		my $files_escaped = escape_shell(@srcfiles);
+		complex_doit(qq{find $dirs_escaped -name '*.java' -and -type f -print0 | xargs -s 512000 -0 @JAVAC -g -cp ${CLASSPATH_ORIG}:debian/_jh_build.$ext -d debian/_jh_build.$ext @javac_opts $files_escaped});
+		if ($build_javadoc) {
+			complex_doit(qq{find $dirs_escaped -name '*.java' -and -type f -print0 | xargs -s 512000 -0 @JAVADOC @CLASSPATHDOCS -classpath ${CLASSPATH_ORIG}:debian/_jh_build.$ext -d debian/_jh_build.javadoc/api -quiet $JH_JAVADOC_OPTS $files_escaped});
+		}
+
+	} elsif (@srcfiles) {
+		doit(@JAVAC, '-g', '-cp', "${CLASSPATH_ORIG}:_jh_build.$ext", '-d', "debian/_jh_build.$ext", '-quiet', @javac_opts, @srcfiles);
+		if ($build_javadoc) {
+			doit(@JAVADOC, @CLASSPATHDOCS, '-classpath', "${CLASSPATH_ORIG}:_jh_build.$ext", '-d', "debian/_jh_build.javadoc/api", '-quiet', @javadoc_opts, @srcfiles);
+		}
+	} else {
+		return;
+	}
+
+	my $dir = dirname($jarfile);
+	my $resolved_dir = realpath($dir) // error("Cannot resolve $dir: $!");
+	my $jarpath = "${resolved_dir}/${basename}";
+	complex_doit(qq{cd debian/_jh_build.$ext && @JAR cfm "$jarpath" ../_jh_manifest.$ext *});
+	doit(@JAR, 'uf', $jarpath, @JH_JAR_EXTRA) if @JH_JAR_EXTRA;
+	return;
+}
+
+sub _classpath_docs {
+	my $source = sourcepackage();
+	return map {
+		chomp;
+		('-link', $_)
+	} `for i in \$(grep-dctrl --no-field-names --show-field Build-Depends,Build-Depends-Indep -F source "${source}" debian/control | tr , ' ' | sed 's/([^)]*)//g') ; do dpkg -L \$i 2>/dev/null | grep /usr/share/doc/.*/api\$; done`;
+}
+
+# By default, jh_build does nothing without a debian/javabuild file or explicit arguments.
+# PROMISE: DH NOOP WITHOUT pkgfile(javabuild)
+
+if (@ARGV) {
+	push(@builds, [@ARGV]);
+} elsif (-f 'debian/javabuild') {
+	@builds = filedoublearray('debian/javabuild')
+}
+
+if (@builds) {
+	if (not $JAVA_HOME) {
+		$JAVA_HOME = '/usr/lib/jvm/default-java' if -d '/usr/lib/jvm/default-java';
+	}
+	if (not $JAVA_HOME) {
+		error("Cannot find any JAVA_HOME: aborting");
+	}
+	@JAVAC = ("${JAVA_HOME}/bin/javac");
+	@JAVADOC = ("${JAVA_HOME}/bin/javadoc", '-locale', 'en_US');
+	@JAR = ("${JAVA_HOME}/bin/jar");
+	@CLASSPATHDOCS = _classpath_docs();
+	for my $build (@builds) {
+		do_build(@{$build});
+	}
+}
+
+=head1 EXAMPLE
+
+  jh_build foo.jar src/java/main
+
+Will generate B<foo.jar> from compiling all the java files in F<src/java/main>
+and generate a javadoc from it.
 
-jarfile="${ARGV[0]}"
+=head1 SEE ALSO
 
-if [ -z "$jarfile" ]; then
-	if [ -f debian/javabuild ]; then
-		cat debian/javabuild | while read line; do
-			dobuild $line
-		done
-	fi
-else
-	dobuild "${ARGV[@]}"
-fi
+L<debhelper(7)>
 
+This program is a part of javahelper and uses debhelper as backend. There are
+also tutorials in /usr/share/doc/javahelper.
 
+=cut


=====================================
jh_build.1 deleted
=====================================
@@ -1,32 +0,0 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.36.
-.TH JAVAHELPER "1" "January 2008" "Javahelper Version 0.5" "User Commands"
-.SH NAME
-Javahelper \- Part of the Java Helper packaging tools
-Refer to the tutorials in /usr/share/doc/javahelper for more detail
-.SH SYNOPSIS
-.B jh_build
-[\fIoptions\fR] [\fI<jar> <src>\fR]
-.SH OPTIONS
-.HP
-\fB\-h\fR \fB\-\-help\fR: show this text
-.HP
-\fB\-V\fR \fB\-\-version\fR: show the version
-.HP
-\fB\-m\fR<class> \fB\-\-main=\fR<class>: Use this class as the main class
-.HP
-\fB\-j\fR<java\-home> \fB\-\-java\-home=\fR<java\-home>: Set the JAVA_HOME variable
-.HP
-\fB\-o\fR<javac\-opts> \fB\-\-javacopts=\fR<javac\-opts>: Options to the Java compiler
-.HP
-\fB\-J\fR \fB\-\-javadoc\fR: Build javadoc
-.HP
-\fB\-N\fR \fB\-\-no-javadoc\fR: Don't build javadoc
-.HP
-\fB\-\-javadoc-opts=\fR<javadocc\-opts>: Options to the Javadoc compiler
-.HP
-\fB\-\-clean\fR: clean the build tree
-.SS "Environment Variables:"
-.IP
-JAVA_HOME: path to the JDK to use
-CLASSPATH: classpath to compile with and set in the manifest
-JH_JAR_EXTRA: extra files to be included in the jar



View it on GitLab: https://salsa.debian.org/java-team/javatools/compare/1fc47652291ff3888262a87d034ff98dc40b9d69...2d15b35932b6f2521be463cc287d838ef9f2a9b2

-- 
View it on GitLab: https://salsa.debian.org/java-team/javatools/compare/1fc47652291ff3888262a87d034ff98dc40b9d69...2d15b35932b6f2521be463cc287d838ef9f2a9b2
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-java-commits/attachments/20190102/2f8840a1/attachment.html>


More information about the pkg-java-commits mailing list