[SCM] UNNAMED PROJECT branch, jarwrapper-migration, updated. 0.37-5-gdbed166
Niels Thykier
niels at thykier.net
Sat Oct 29 09:17:28 UTC 2011
The following commit has been merged in the jarwrapper-migration branch:
commit dbed1666cbc2d5baa4a74a2b673ce5fdc077c0d0
Author: Niels Thykier <niels at thykier.net>
Date: Sat Oct 29 11:16:23 2011 +0200
Documented jh_wrapjars and did minor bugfixes
Signed-off-by: Niels Thykier <niels at thykier.net>
diff --git a/debian/javahelper.install b/debian/javahelper.install
index 3ac2d20..a0c119b 100644
--- a/debian/javahelper.install
+++ b/debian/javahelper.install
@@ -10,6 +10,7 @@ jh_installjavadoc /usr/bin
jh_makepkg /usr/bin
jh_repack /usr/bin
jh_linkjars /usr/bin
+jh_wrapjars /usr/bin
jh_installeclipse /usr/bin
jh_generateorbitdir /usr/bin
jh_setupenvironment /usr/bin
diff --git a/debian/rules b/debian/rules
index 74a6c82..f162c5a 100755
--- a/debian/rules
+++ b/debian/rules
@@ -20,6 +20,7 @@ override_dh_auto_build: jh_lib.sh
$(POD2MAN) jh_setupenvironment tmp/jh_setupenvironment.1
$(POD2MAN) jh_compilefeatures tmp/jh_compilefeatures.1
$(POD2MAN) jh_manifest tmp/jh_manifest.1
+ $(POD2MAN) jh_wrapjars tmp/jh_wrapjars.1
$(POD2MAN) fetch-eclipse-source.pod tmp/fetch-eclipse-source.1
$(POD2MAN) -s 1 jh_clean.pod tmp/jh_clean.1
$(POD2MAN) $(MOD_PATH)/Eclipse.pm tmp/Debian::Javahelper::Eclipse.3
diff --git a/javahelper.mk b/javahelper.mk
index 5935d99..a169308 100644
--- a/javahelper.mk
+++ b/javahelper.mk
@@ -49,5 +49,6 @@ $(patsubst %,binary-post-install/%,$(DEB_ALL_PACKAGES)) :: binary-post-install/%
jh_manifest -p$(cdbs_curpkg) $(JH_MANIFEST_ARGS)
jh_exec -p$(cdbs_curpkg) $(JH_EXEC_ARGS)
jh_depends -p$(cdbs_curpkg) $(JH_DEPENDS_ARGS)
+ jh_wrapjars -p$(cdbs_curpkg) $(JH_WRAPJARS_ARGS)
endif # _cdbs_class_javahelper
diff --git a/javahelper.pm b/javahelper.pm
index b2fe5fd..689e3d2 100644
--- a/javahelper.pm
+++ b/javahelper.pm
@@ -8,6 +8,7 @@ insert_after("jh_installlibs", "jh_classpath");
insert_after("jh_classpath", "jh_manifest");
insert_after("jh_manifest", "jh_exec");
insert_after("jh_exec", "jh_depends");
+insert_after("jh_depends", "jh_wrapjars");
insert_before("dh_installdocs", "jh_installjavadoc");
insert_before("dh_clean", "jh_clean");
insert_before("dh_auto_build", "jh_linkjars");
diff --git a/jh_wrapjars b/jh_wrapjars
index feffc33..f49f1fe 100644
--- a/jh_wrapjars
+++ b/jh_wrapjars
@@ -17,6 +17,53 @@ use Debian::Javahelper::Manifest( qw(MAIN_SECTION) );
use Archive::Zip qw( :ERROR_CODES );
+=head1 SYNOPSIS
+
+B<jh_wrapjars> [S<I<debhelper options>>] [S<I<jar wrapper>>]
+
+=head1 DESCRIPTION
+
+B<jh_wrapjars> is a debhelper-like javahelper program that wraps
+jar-files with small executable scripts.
+
+This approach replaces B<jh_exec> and B<jarwrapper>, which relies on
+the linux-only binfmt-misc. The core idea (to avoid having to write
+the same boiler scripts) has not changed.
+
+If a wrapper script is installed for a jar, B<jh_wrapjars> will add a
+dependency on B<javawrapper> in the I<java:Depends> substituation
+variable. If used manually with B<jh_depends>, B<jh_wrapjars> should
+always be called I<after> B<jh_depends>.
+
+Before installing a wrapper, B<jh_wrapjars> does a number of basic
+checks to ensure the jar file can be executed (it has a Main-Class
+etc.). It is allowed to pass symlinks to jars, as long as they can be
+resolved when B<jh_wrapjars> is run.
+
+=head1 FILES
+
+=over 4
+
+=item debian/I<package>.wrap-jars
+
+The format is 0 or more lines of:
+
+ jar [wrapper]
+
+This will install script at I<wrapper> for I<jar>. If I<wrapper> is
+omitted, then it will default to I</usr/bin/base>, where I<base> is
+the base name of the jar file (without directories and the .jar
+extension).
+
+=cut
+
+=head1 OPTIONS
+
+This tool have all the normal debhelper options. Note that the B<-X>
+option is ignored.
+
+=cut
+
my $RUNNER = '/usr/lib/java-wrapper/runner';
my $RUNNER_PKG = 'java-wrapper';
my $RUNNER_PKG_DEPVER = '>= ?';
@@ -24,14 +71,20 @@ my $RUNNER_PKG_DEPVER = '>= ?';
init();
foreach my $pkg ( @{ $dh{DOPACKAGES} } ) {
- my $jaref = pkgfile ($pkg, 'jar-exec');
+ my $jaref = pkgfile ($pkg, 'wrap-jars');
my @filesets = filedoublearray ($jaref);
my $pkgdir = tmpdir ($pkg);
my $needdep = 0;
+
+ if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) {
+ push @links, [@ARGV];
+ }
+
foreach my $fset (@filesets) {
my ($jar, $binf) = @$fset;
my ($pkgjar, $pkgbinf);
my $dir;
+
# Default to "/usr/bin/$base" if $binf is not specified
unless ($binf) {
my $base = $jar;
@@ -41,8 +94,8 @@ foreach my $pkg ( @{ $dh{DOPACKAGES} } ) {
$binf = "usr/bin/$base";
}
# strip leading "/" and "./" (if any)
- $binf =~ s,^.?/*,,g;
- $jar =~ s,^.?/*,,g;
+ $binf =~ s,^\.?/*,,g;
+ $jar =~ s,^\.?/*,,g;
$pkgjar = "$pkgdir/$jar";
$pkgbinf = "$pkgdir/$binf";
@@ -123,3 +176,24 @@ sub _check_jarfile {
unless $zip->memberNamed ($mainfn);
}
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of javahelper and uses debhelper as backend. There are
+also tutorials in /usr/share/doc/javahelper.
+
+=head1 AUTHOR
+
+Niels Thykier <niels at thykier.net>
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright 2011 by Niels Thykier
+
+This tool is free software; you may redistribute it and/or modify
+it under the terms of GNU GPL 2.
+
+=cut
+
+
diff --git a/tutorial.txt b/tutorial.txt
index d34a1b6..1339575 100644
--- a/tutorial.txt
+++ b/tutorial.txt
@@ -155,9 +155,21 @@ be run before `jh_installlibs`. In these versions the jars were usually
referred to by their location in the build directories rather than their
install location.
+jh_wrapjars
+-----------
+
+`jh_wrapjars` can be used to auto-generate small wrapper scripts for
+jar files. These will use `javawrapper` as a backend for doing their
+actual work.
+
+See the "Runtime support" section below for more information.
+
jh_exec
-------
+This tool is generally deprecated in favour of `jh_wrapjars`. It is
+kept to avoid breaking packages that still use it.
+
The Runtime support section below describes running executable jars
directly. `jh_exec` will scan package directories for jars in the paths,
or symlinks to jar from the paths, and ensure that they have been set
--
UNNAMED PROJECT
More information about the pkg-java-commits
mailing list