[SCM] UNNAMED PROJECT branch, master, updated. 0.31-58-g54d5dbd

Niels Thykier nthykier at alioth.debian.org
Sun Mar 20 18:30:45 UTC 2011


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "UNNAMED PROJECT".

The branch, master has been updated
       via  54d5dbd09bd131717d06e219c951169d8efc2bca (commit)
       via  e8a615e3e0767dd3a69c52516d4dcd81d3649d9d (commit)
       via  0c0f34fc594bd61964af0a83de5aa41fe856cb40 (commit)
       via  a61ba8636021e1e9a94f897e84ed981b528be751 (commit)
       via  60a029166df4c0e42fa55e814783a4e208e72aff (commit)
      from  cca85591cfe04e192b5dfd99f683868da0681abc (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 54d5dbd09bd131717d06e219c951169d8efc2bca
Author: Niels Thykier <niels at thykier.net>
Date:   Sun Mar 20 17:47:01 2011 +0100

    Fixed a typo in jh_compilefeatures

commit e8a615e3e0767dd3a69c52516d4dcd81d3649d9d
Author: Niels Thykier <niels at thykier.net>
Date:   Sun Mar 20 17:44:14 2011 +0100

    Renamed subs for case consistency

commit 0c0f34fc594bd61964af0a83de5aa41fe856cb40
Author: Niels Thykier <niels at thykier.net>
Date:   Sun Mar 20 17:41:38 2011 +0100

    Removed useless interpolization, s/die/error and renamed a sub

commit a61ba8636021e1e9a94f897e84ed981b528be751
Author: Niels Thykier <niels at thykier.net>
Date:   Sun Mar 20 17:29:03 2011 +0100

    Fixed typo in jh_generateorbitdir

commit 60a029166df4c0e42fa55e814783a4e208e72aff
Author: Niels Thykier <niels at thykier.net>
Date:   Sun Mar 20 17:27:02 2011 +0100

    Migrate jh_generatorbitdir to the perl manifest handler

-----------------------------------------------------------------------

Summary of changes:
 debian/changelog    |    2 +
 jh_compilefeatures  |    2 +-
 jh_generateorbitdir |  101 +++++++++++++++++++++------------------------------
 jh_installeclipse   |    8 ++--
 4 files changed, 48 insertions(+), 65 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 8d2927f..159b046 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -20,6 +20,8 @@ javatools (0.33) unreleased; urgency=low
   * Made jh_installlibs respect its --tmpdir option. Previously it was
     silently ignored.
   * Added missing B-D-I on perl (for pod2man).
+  * Migrated jh_generateorbitdir to the perl Manifest handler.
+  * Fixed typo in jh_generateorbitdir and in jh_compilefeatures.
 
  -- Matthew Johnson <mjj29 at debian.org>  Sat, 12 Mar 2011 12:58:50 +0000
 
diff --git a/jh_compilefeatures b/jh_compilefeatures
index 5f7c585..b3e79eb 100755
--- a/jh_compilefeatures
+++ b/jh_compilefeatures
@@ -178,7 +178,7 @@ sub compile{
     my @deps = ();
     DEP_LOOP: foreach my $d (@_){
 	# Check if we just built this feature.
-	foreach my $s qw(. .zip .ZIP) {
+	foreach my $s ('', '.zip', '.ZIP') {
 	    my $zip = "$pdebdir/$d$s";
 	    if( -e $zip ){
 		install_zipped_feature($zip, "$pdebdir/build/SDK");
diff --git a/jh_generateorbitdir b/jh_generateorbitdir
index 6f6f8e6..22c0a40 100755
--- a/jh_generateorbitdir
+++ b/jh_generateorbitdir
@@ -7,8 +7,12 @@ jh_generateorbitdir - Creates and populates an orbit dir used by pde-build for t
 =cut
 
 use strict;
+use warnings;
+
+use Archive::Zip qw( :ERROR_CODES :CONSTANTS );
 use Debian::Debhelper::Dh_Lib;
 use Debian::Javahelper::Eclipse;
+use Debian::Javahelper::Manifest( qw(MAIN_SECTION) );
 
 =head1 SYNOPSIS
 
@@ -91,35 +95,38 @@ $SIG{'INT'} = \&sighandler;
 $SIG{'TERM'} = \&sighandler;
 
 if( ! $dh{NO_ACT}){
-    open(ORBIT_CACHE, ">>", $cachefile) or error("$cachefile: $!");
+    open(ORBIT_CACHE, '>>', $cachefile) or error("$cachefile: $!");
 }
 
-doit("mkdir", "-p", $orbitdir);
+doit('mkdir', '-p', $orbitdir);
 
-foreach my $jar (findJars(@orbitdeps)){
-    my $fields = readFields($jar, EOB_SYM_NAME, EOB_BUNDLE_VERSION);
-    my $symName = $fields->{${\EOB_SYM_NAME}};
-    my $version = $fields->{${\EOB_BUNDLE_VERSION}};
-    if($dh{NO_ACT} ){
-	$symName = '<bundle-name>';
-	$version = '<bundle-version>';
-    }
-    error("$jar did not have any OSGi metadata") unless(defined($symName) && defined($version));
+foreach my $jar (find_jars(@orbitdeps)){
+    my $manifest = read_manifest($jar);
+    my $msect = $mainfest->get_section(MAIN_SECTION);
+    my $symName = $msect->get_value(${\EOB_SYM_NAME}, 1);
+    my $version = $msect->get_value(${\EOB_BUNDLE_VERSION}, 1);
+    error("$jar did not have any OSGi metadata")
+        unless(defined($symName) && defined($version));
     if( -l "$orbitdir/${symName}_${version}.jar"){
 	my $ltarget = readlink("$orbitdir/${symName}_${version}.jar");
 	if(defined($ltarget)){
 	    #Use target
-	    print ORBIT_CACHE "$ltarget, $symName, $version\n" unless($dh{NO_ACT});
+	    print ORBIT_CACHE "$ltarget, $symName, $version\n"
+                unless($dh{NO_ACT});
 	} else {
-	    warning("Cannot determine target of $orbitdir/${symName}_${version}.jar; jh_installeclipse will not be able to replace this post-install." );
+	    warning('Cannot determine target of ' .
+                    "$orbitdir/${symName}_${version}.jar; jh_installeclipse " .
+                    'will not be able to replace this post-install.' );
 	}
 	# skip if already linked
 	next;
     }
-    error("No touching $orbitdir/${symName}_${version}.jar - it is a dir") if( -d "$orbitdir/${symName}_${version}.jar");
-    doit("rm", "-f", "$orbitdir/${symName}_${version}.jar") if( -e "$orbitdir/${symName}_${version}.jar");
+    error("No touching $orbitdir/${symName}_${version}.jar - it is a dir")
+        if( -d "$orbitdir/${symName}_${version}.jar");
+    doit('rm', '-f', "$orbitdir/${symName}_${version}.jar")
+        if( -e "$orbitdir/${symName}_${version}.jar");
     print ORBIT_CACHE "$jar, $symName, $version\n" unless($dh{NO_ACT});
-    doit("ln", "-s", $jar, "$orbitdir/${symName}_${version}.jar");
+    doit('ln', '-s', $jar, "$orbitdir/${symName}_${version}.jar");
 }
 
 if( ! $dh{NO_ACT}){
@@ -128,56 +135,30 @@ if( ! $dh{NO_ACT}){
 
 exit 0;
 
-sub readFields {
+sub read_manifest {
     my $jar = shift;
-    my $fields = {};
-    if(! $dh{NO_ACT} ){
-	chomp($tmpdir = `mktemp -d`);
-    } else {
-	$tmpdir = '<tmpdir>';
-    }
-    eval {
-	doit("unzip", "-qq", "-n", "-d", $tmpdir, $jar);
-	my $findmancmd = "find $tmpdir -iwholename '*/META-INF/MANIFEST.MF' 2>/dev/null";
-	if( ! $dh{NO_ACT} ){
-	    my $manifest;
-	    verbose_print($findmancmd);
-	    chomp($manifest = `$findmancmd`);
-	    if( $manifest eq '' or ! -e $manifest){
-		error("Cannot find the MANIFEST in $jar");
-	    }
-	    foreach my $f (@_) {
-		my $cmd = "bash -c \". /usr/share/javahelper/jh_lib.sh && extractline $manifest $f\" 2>/dev/null";
-		my $val;
-		verbose_print($cmd);
-		error("Could not read the MANIFEST of $jar") if($? != 0);
-		chomp($val = `$cmd`);
-		$fields->{$f} = $val;
-	    }
-	} else {
-	    # print what we would have done.
-	    verbose_print($findmancmd);
-	    foreach my $f (@_) {
-		verbose_print("bash -c \". /usr/share/javahelper/jh_lib.sh && extractline <manifest> $f\" 2>/dev/null");
-	    }
-	}
-    };
-    doit("rm", "-fr", $tmpdir);
-    $tmpdir = undef;
-    if($@){
-	#propagate the error.
-	error($@);
-    }
-    return $fields;
+    my $zip = Archive::Zip->new();
+    my ($con, $stat);
+    my $fd;
+    my $manifest;
+    $zip->read( "$jar" ) == AZ_OK or error("Could not read $jar: $!");
+    ($con, $stat) = $zip->contents( 'META-INF/MANIFEST.MF' );
+    error("Could not read manifest from $jar ($stat): $!")
+        unless(!defined($stat) or $stat == AZ_OK);
+    error("$jar has no manifest") unless(defined($stat));
+    open($fd, '<', \$con) or error("open read string: $!");
+    $manifest = parse_manifest_fd($fd, $jar);
+    close($fd);
+    return $manifest;
 }
 
 sub sighandler {
     my $sig = shift;
-    doit("rm", "-fr", $tmpdir) if(defined($tmpdir));
+    doit('rm', '-fr', $tmpdir) if(defined($tmpdir));
     error("Caught signal $sig");
 }
 
-sub findJars{
+sub find_jars{
     my @inc = ('.', '/usr/share/java');
     my @res = ();
     foreach my $globpattern (@_){
@@ -186,7 +167,7 @@ sub findJars{
 	# Only use inc-path if there is no path.
 	@i = ('') if($globpattern =~ m@/@o);
 	glob_loop: foreach my $p (@inc){
-	    foreach my $s (''. '.jar') {
+	    foreach my $s ('', '.jar') {
 		my @matches;
 		if($p eq ''){
 		    @matches = glob("$globpattern$s");
@@ -200,7 +181,7 @@ sub findJars{
 		last glob_loop;
 	    }
 	}
-	die("Could not find any matches for $globpattern") unless($found);
+	error("Could not find any matches for $globpattern") unless($found);
     }
     return @res;
 }
diff --git a/jh_installeclipse b/jh_installeclipse
index ef4bb0c..ef49370 100755
--- a/jh_installeclipse
+++ b/jh_installeclipse
@@ -109,7 +109,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
     my @infiles;
     next if($installfile eq '');
     $defdname = $1 if($package =~ m/^eclipse-(.+)/o);
-    $dropins = getDropinsPath($package);
+    $dropins = get_dropins_path($package);
     @infiles = filedoublearray($installfile);
     if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) {
 	push @infiles, [@ARGV];
@@ -132,7 +132,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
     }
 }
 while ( my ($sysjar, $users) = each(%needed) ){
-    my ($pkg, $ver) = findDependency($sysjar);
+    my ($pkg, $ver) = find_dependency($sysjar);
     if(!defined($pkg)){
 	warning("Cannot determine the package providing $sysjar.");
 	next;
@@ -154,14 +154,14 @@ foreach my $package (@{$dh{DOPACKAGES}}){
 exit(0);
 
 # Determines where to install something for a given package.
-sub getDropinsPath{
+sub get_dropins_path{
     my $package = shift;
     my $prefix = tmpdir($package) . "/usr/"; 
     $prefix .= exists($archpackages{$package})?"lib":"share";
     return "$prefix/eclipse/dropins";
 }
 
-sub findDependency{
+sub find_dependency{
     my $sysjar = shift;
     my $deppkg = undef;
     my $depver = undef;


hooks/post-receive
-- 
UNNAMED PROJECT



More information about the pkg-java-commits mailing list