From: František Dvořák Date: Fri, 27 Nov 2009 13:50:23 +0000 (+0000) Subject: merge from LB 2.0 (merge_20_1_src) X-Git-Tag: merge_20_1_after~1 X-Git-Url: http://scientific.zcu.cz/git/?a=commitdiff_plain;h=906bcab0b0d0a0dbca0517b53cedf723ea6f7524;p=jra1mw.git merge from LB 2.0 (merge_20_1_src) --- diff --git a/org.glite.jobid.api-c/configure b/org.glite.jobid.api-c/configure index a72805e..80097bd 100755 --- a/org.glite.jobid.api-c/configure +++ b/org.glite.jobid.api-c/configure @@ -11,6 +11,7 @@ use Getopt::Long; my $pwd = `pwd`; chomp $pwd; my $prefix = $pwd.'/stage'; +my $stagedir; my $staged; my $module; my $thrflavour = 'gcc64dbgpthr'; @@ -20,8 +21,14 @@ my $help = 0; my $listmodules; my $version; my $output; - -my @nodes = qw/client server logger utils client-java doc ws-test/; +my $lb_tag = ''; +my $lbjp_tag = ''; +my $jp_tag = ''; +my $sec_tag = ''; +my $jobid_tag = ''; +my $libdir = 'lib'; + +my @nodes = qw/client server logger utils client-java doc ws-test db jpprimary jpindex jpclient harvester/; my %enable_nodes; my %disable_nodes; @@ -33,13 +40,23 @@ my %extern_prefix = ( globus => '/opt/globus', gsoap => '/usr', mysql => '/usr', + 'mysql-devel' => '', + 'mysql-server' => '', voms => '/opt/glite', gridsite => '/opt/glite', lcas => '/opt/glite', + trustmanager => '/opt/glite', + ant => '/usr', + jdk => '/usr', + libtar => '/usr', + axis => '/usr', + log4c => '/usr', + postgresql => '/usr' ); my %jar = ( - 'commons-codec' => '/usr/share/java/commons-codec-1.3.jar', + 'commons-codec' => '/usr/share/java/commons-codec.jar', + 'commons-lang' => '/usr/share/java/commons-lang.jar', ); @@ -54,10 +71,11 @@ my %deps_type; my %topbuild; my %lbmodules = ( - 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test/], + 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test harvester/], 'security' => [qw/gss gsoap-plugin/], - 'lbjp-common' => [qw/db maildir server-bones trio/], + 'lbjp-common' => [qw/db log maildir server-bones trio jp-interface/], 'jobid' => [qw/api-c api-cpp api-java/], + 'jp' => [ qw/client doc index primary server-common ws-interface/ ], ); @@ -71,7 +89,14 @@ my @opts = ( 'listmodules=s' => \$listmodules, 'version=s' => \$version, 'output=s' => \$output, + 'stage=s' => \$stagedir, + 'lb-tag=s' => \$lb_tag, + 'lbjp-common-tag=s' => \$lbjp_tag, + 'jp-tag=s' => \$jp_tag, + 'security-tag=s' => \$sec_tag, + 'jobid-tag=s' => \$jobid_tag, 'help' => \$help, + 'libdir=s' => \$libdir, ); for (@nodes) { @@ -89,6 +114,9 @@ my @keeparg = @ARGV; GetOptions @opts or die "Errors parsing command line\n"; +$extern_prefix{'mysql-devel'}=$extern_prefix{mysql} if $extern_prefix{'mysql-devel'} eq ''; +$extern_prefix{'mysql-server'}=$extern_prefix{mysql} if $extern_prefix{'mysql-server'} eq ''; + if ($help) { usage(); exit 0; } if ($listmodules) { @@ -112,7 +140,7 @@ die "--enable-* and --disable-* are mutually exclusive\n" die "--module cannot be used with --enable-* or --disable-*\n" if $module && ($en || $dis); -die "$module: unknown module\n" if $module && ! grep $module,@{$lbmodules{lb}},@{$lbmodules{security}}; +die "$module: unknown module\n" if $module && ! grep $module,@{$lbmodules{lb}},@{$lbmodules{security}},{$lbmodules{jp}}; if ($dis) { for (@nodes) { @@ -124,6 +152,8 @@ if (!$en && !$dis) { $enable_nodes{$_} = 1 for (@nodes) } ; for (keys %enable_nodes) { delete $enable_nodes{$_} unless $enable_nodes{$_}; } +$stagedir = $prefix unless $stagedir; + if ($mode eq 'build') { print "Writing config.status\n"; open CONF,">config.status" or die "config.status: $!\n"; @@ -136,10 +166,11 @@ my @modules; my %aux; if ($module) { +# push @modules,split(/[,.]+/,$module); push @modules,$module; } else { - @modules = map 'lb.'.($extranodmod{$_} ? $extranodmod{$_} : $_),keys %enable_nodes; + @modules = map(($extranodmod{$_} ? $extranodmod{$_} : 'lb.'.$_),(keys %enable_nodes)); my $n; @@ -205,7 +236,7 @@ sub mode_build { my %ldeps; undef %ldeps; @ldeps{@{$deps{$_}}} = 1; for my $x (split /,/,$staged) { delete $ldeps{$x}; } - my @dnames = keys %ldeps; + my @dnames = $module ? () : keys %ldeps; my $full = full($_); my $build = $topbuild{$_} ? '': '/build'; @@ -218,33 +249,83 @@ sub mode_build { sub mode_checkout() { for (@modules) { + my $module = $_; + my $tag = ""; + if ($lb_tag){ + for (@{$lbmodules{lb}}){ + if ("lb.".$_ eq $module){ + $tag = '-r '.$lb_tag; + } + } + } + if ($lbjp_tag){ + for (@{$lbmodules{'lbjp-common'}}){ + if ("lbjp-common.".$_ eq $module){ + $tag = '-r '.$lbjp_tag; + } + } + } + if ($jp_tag){ + for (@{$lbmodules{'jp'}}){ + if ("jp.".$_ eq $module){ + $tag = '-r '.$jp_tag; + } + } + } + if ($sec_tag){ + for (@{$lbmodules{security}}){ + if ("security.".$_ eq $module){ + $tag = '-r '.$sec_tag; + } + } + } + if ($jobid_tag){ + for (@{$lbmodules{jobid}}){ + if ("jobid.".$_ eq $module){ + $tag = '-r '.$jobid_tag; + } + } + } + #if (grep {"lb.".$_ eq $module} @{$lbmodules{lb}}){ + # print "found"; + #} $_ = full($_); print "\n*** Checking out $_\n"; - system("cvs checkout $_") == 0 or die "cvs checkout $_: $?\n"; + system("cvs checkout $tag $_") == 0 or die "cvs checkout $tag $_: $?\n"; } } BEGIN{ %need_externs_aux = ( 'lb.client' => [ qw/cppunit:B classads/ ], + 'lb.client-java' => [ qw/ant:B jdk:B axis:B trustmanager/ ], 'lb.common' => [ qw/expat cppunit:B classads/ ], 'lb.doc' => [], - 'lb.logger' => [ qw/cppunit:B/ ], - 'lb.server' => [ qw/globus expat cares mysql cppunit:B gsoap:B classads voms lcas gridsite/ ], + 'lb.logger' => [ qw/cppunit:B log4c/ ], + 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql:R mysql-server:R mysql-devel:B cppunit:B gsoap:B classads voms lcas gridsite log4c/ ], 'lb.state-machine' => [ qw/classads/ ], 'lb.utils' => [ qw/cppunit:B/ ], 'lb.ws-interface' => [], 'lb.ws-test' => [ qw/gsoap:B/ ], 'lb.types' => [ qw// ], - 'lbjp-common.db' => [ qw/mysql/ ], + 'lb.harvester' => [ qw/postgresql:R/ ], + 'lbjp-common.db' => [ qw/mysql:B mysql-devel:B postgresql:B/ ], + 'lbjp-common.log' => [ qw// ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], - 'lbjp-common.trio' => [ qw// ], - 'security.gss' => [ qw/globus cares cppunit:B/ ], - 'security.gsoap-plugin' => [ qw/cppunit:B globus cares gsoap:B/ ], + 'lbjp-common.trio' => [ qw/cppunit:B/ ], + 'lbjp-common.jp-interface' => [ qw/cppunit:B/ ], + 'security.gss' => [ qw/globus_essentials:R globus:B cares cppunit:B/ ], + 'security.gsoap-plugin' => [ qw/cppunit:B globus_essentials:R globus:B cares gsoap:B/ ], 'jobid.api-c' => [ qw/cppunit:B/ ], 'jobid.api-cpp' => [ qw/cppunit:B/ ], - 'jobid.api-java' => [ qw// ], + 'jobid.api-java' => [ qw/ant:B jdk:B/ ], + 'jp.client' => [ qw/gsoap libtar globus_essentials:R globus:B/ ], + 'jp.doc' => [], + 'jp.index' => [ qw/gsoap globus_essentials:R globus:B/ ], + 'jp.primary' => [ qw/classads gsoap libtar globus_essentials:R globus:B/ ], + 'jp.server-common' => [], + 'jp.ws-interface' => [], ); for my $ext (keys %need_externs_aux) { @@ -258,6 +339,7 @@ for my $ext (keys %need_externs_aux) { %need_jars = ( 'jobid.api-java' => [ qw/commons-codec/ ], + 'lb.client-java' => [ qw/commons-lang/ ], ); for my $jar (keys %need_jars) { @@ -275,6 +357,7 @@ for my $jar (keys %need_jars) { / ], 'lb.client-java' => [ qw/ lb.types:B + lb.ws-interface:B jobid.api-java / ], 'lb.common' => [ qw/ @@ -284,19 +367,20 @@ for my $jar (keys %need_jars) { 'lb.doc' => [ qw/lb.types:B/ ], 'lb.logger' => [ qw/ lbjp-common.trio + lbjp-common.log jobid.api-c lb.common security.gss / ], 'lb.server' => [ qw/ lb.ws-interface lb.types:B lb.common lb.state-machine - lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir + lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir lbjp-common.log jobid.api-c security.gsoap-plugin security.gss / ], - 'lb.state-machine' => [ qw/lb.common jp.common security.gss/ ], + 'lb.state-machine' => [ qw/lb.types:B lb.common lbjp-common.jp-interface security.gss/ ], 'lb.utils' => [ qw/ - jp.common + lbjp-common.jp-interface jobid.api-c lbjp-common.trio lbjp-common.maildir lb.client lb.state-machine @@ -304,6 +388,10 @@ for my $jar (keys %need_jars) { 'lb.ws-test' => [ qw/security.gsoap-plugin lb.ws-interface/ ], 'lb.ws-interface' => [ qw/lb.types:B/ ], 'lb.types' => [ qw// ], + 'lb.harvester' => [ qw/ + jobid.api-c lbjp-common.trio lbjp-common.db lb.common lb.client + security.gss + / ], 'lbjp-common.db' => [ qw/lbjp-common.trio/ ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], @@ -314,7 +402,31 @@ for my $jar (keys %need_jars) { 'jobid.api-cpp' => [ qw/jobid.api-c/ ], 'jobid.api-java' => [ qw// ], - 'jp.common' => [ qw/lbjp-common.db/ ], + 'lbjp-common.jp-interface' => [ qw/lbjp-common.db jobid.api-c/ ], + + 'jp.client' => [ qw/ + jp.ws-interface + lbjp-common.jp-interface lbjp-common.maildir + jobid.api-c + security.gsoap-plugin + / ], + 'jp.doc' => [ qw// ], + 'jp.index' => [ qw/ + jp.server-common jp.ws-interface + lbjp-common.jp-interface lbjp-common.trio lbjp-common.db lbjp-common.server-bones + security.gsoap-plugin + / ], + 'jp.primary' => [ qw/ + jobid.api-c + jp.server-common jp.ws-interface + lb.state-machine + lbjp-common.jp-interface lbjp-common.trio lbjp-common.db lbjp-common.server-bones + security.gsoap-plugin + / ], + 'jp.server-common' => [ qw/ + lbjp-common.jp-interface lbjp-common.db + / ], + 'jp.ws-interface' => [ qw// ], ); for my $ext (keys %deps_aux) { @@ -329,9 +441,15 @@ for my $ext (keys %deps_aux) { %extrafull = ( gridsite=>'org.gridsite.core'); -# %extranodmod = ( java => 'client-java' ); +#( java => 'client-java' ); +%extranodmod = ( + db => 'lbjp-common.db', + jpprimary => 'jp.primary', + jpindex => 'jp.index', + jpclient => 'jp.client', +); -my @t = qw/lb.client-java jobid.api-java lb.types/; +my @t = qw/lb.client-java jobid.api-java lb.types lbjp-common.log/; @topbuild{@t} = (1) x ($#t+1); } @@ -346,11 +464,12 @@ sub mkinc my %aux; undef %aux; my @m=qw/ -lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java +lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java lb.harvester security.gss security.gsoap-plugin jobid.api-c jobid.api-cpp jobid.api-java -lbjp-common.db lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio -jp.common/; +lbjp-common.db lbjp-common.log lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface +jp.client jp.doc jp.index jp.primary jp.server-common jp.ws-interface +/; @aux{@m} = (1) x ($#m+1); my $short = shift; @@ -379,9 +498,10 @@ jp.common/; print MKINC qq{ PREFIX = $prefix -stagedir = $prefix +stagedir = $stagedir thrflavour = $thrflavour nothrflavour = $nothrflavour +libdir = $libdir }; for (@{$need_externs{$short}}) { @@ -404,14 +524,16 @@ my %etics_externs; my %etics_projects; BEGIN{ %etics_externs = ( - globus=>'vdt_globus_essentials', + globus_essentials=>'vdt_globus_essentials', + globus=>'globus', cares=>'c-ares', - voms=>'org.glite.security.voms-api-c', + voms=>'org.glite.security.voms-api-cpp', gridsite=>'org.gridsite.shared', lcas=>'org.glite.security.lcas', + trustmanager=>'org.glite.security.trustmanager', ); %etics_projects = ( - vdt=>[qw/globus/], + vdt=>[qw/globus globus_essentials/], 'org.glite'=>[qw/voms gridsite lcas/], ); }; @@ -446,14 +568,16 @@ sub mode_etics { @ge{@{$etics_projects{'org.glite'}}} = (1) x ($#{$etics_projects{'org.glite'}}+1); for (@{$need_externs{"$subsys.$module"}}) { + if ($need_externs_type{"$subsys.$module"}->{$_}=~/B/) { my $eext = $etics_externs{$_} ? $etics_externs{$_} : $_; push @copts,$ge{$_} ? "--with-$_=\${stageDir}" : "--with-$_=\${$eext.location}"; + } } for (@{$need_jars{"$subsys.$module"}}) { my $eext = $etics_externs{$_} ? $etics_externs{$_} : $_; - push @copts,"--with-$_=\${$_.location}/$_-`echo \${$_.version} | sed 's/\\([0-9]*\\.[0-9]*\\)\\.[0-9]*/\\1/'`.jar"; + push @copts,"--with-$_ \${$eext.location}/$_*.jar"; } @@ -500,7 +624,7 @@ init = None install = make install clean = make clean test = make check -configure = cd $confdir && \${moduleName}/configure --prefix=\${prefix} --module $subsys.$module @copts +configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --libdir=\${libdir} --module $subsys.$module @copts checkstyle = None [Platform-default:Property] @@ -558,7 +682,8 @@ General options (defaults in []): --staged=module,module,... what is already in PREFIX (specify without org.glite.) --thrflavour=flavour --nothrflavour=flavour threaded and non-treaded flavours [gcc64dbgpthr,gcc64dbg] - --listmodules=subsys list modules of a subsystem + --listmodules=subsys list modules of a subsystem + --libdir=libdir typically [lib,lib64] postfix Mode of operation: --mode={checkout|build|etics} what to do [build] @@ -568,6 +693,11 @@ What to build: --enable-NODE build this "node" (set of modules) only. Available nodes are @{$lbmodules{lb}},@{$lbmodules{security}} --disable-NODE don't build this node + --lb-tag=tag checkout LB modules with specific tag + --jp-tag=tag checkout JP modules with specific tag + --lbjp-common-tag=tag checkout lbjp-common modules with specific tag + --security-tag=tag checkout security modules with specific tag + --jobid-tag=tag checkout jobid modules with specific tag Dependencies: --with-EXTERNAL=PATH where to look for an external. Required externals diff --git a/org.glite.jobid.api-c/project/ChangeLog b/org.glite.jobid.api-c/project/ChangeLog index f1d3725..008dac5 100644 --- a/org.glite.jobid.api-c/project/ChangeLog +++ b/org.glite.jobid.api-c/project/ChangeLog @@ -3,3 +3,10 @@ 1.0.0-2 - fixes in etics' invocation of configure + +1.0.0-4 +- configure script update + +1.0.1-1 +- additional includes in base64_test to fix build on Deb5 + diff --git a/org.glite.jobid.api-c/project/version.properties b/org.glite.jobid.api-c/project/version.properties index a8d5c67..59a8ad7 100644 --- a/org.glite.jobid.api-c/project/version.properties +++ b/org.glite.jobid.api-c/project/version.properties @@ -1,3 +1,3 @@ # : /cvs/jra1mw/org.glite.jobid.api-c/project/version.properties,v 1.1 2009/01/16 08:48:52 zsustr Exp $ -module.version=1.0.0 -module.age=2 +module.version=1.0.1 +module.age=1 diff --git a/org.glite.jobid.api-c/test/base64_test.cpp b/org.glite.jobid.api-c/test/base64_test.cpp index 0593da9..53d1b4d 100644 --- a/org.glite.jobid.api-c/test/base64_test.cpp +++ b/org.glite.jobid.api-c/test/base64_test.cpp @@ -1,4 +1,6 @@ #include +#include +#include #include #include diff --git a/org.glite.jobid.api-cpp/configure b/org.glite.jobid.api-cpp/configure index a72805e..80097bd 100755 --- a/org.glite.jobid.api-cpp/configure +++ b/org.glite.jobid.api-cpp/configure @@ -11,6 +11,7 @@ use Getopt::Long; my $pwd = `pwd`; chomp $pwd; my $prefix = $pwd.'/stage'; +my $stagedir; my $staged; my $module; my $thrflavour = 'gcc64dbgpthr'; @@ -20,8 +21,14 @@ my $help = 0; my $listmodules; my $version; my $output; - -my @nodes = qw/client server logger utils client-java doc ws-test/; +my $lb_tag = ''; +my $lbjp_tag = ''; +my $jp_tag = ''; +my $sec_tag = ''; +my $jobid_tag = ''; +my $libdir = 'lib'; + +my @nodes = qw/client server logger utils client-java doc ws-test db jpprimary jpindex jpclient harvester/; my %enable_nodes; my %disable_nodes; @@ -33,13 +40,23 @@ my %extern_prefix = ( globus => '/opt/globus', gsoap => '/usr', mysql => '/usr', + 'mysql-devel' => '', + 'mysql-server' => '', voms => '/opt/glite', gridsite => '/opt/glite', lcas => '/opt/glite', + trustmanager => '/opt/glite', + ant => '/usr', + jdk => '/usr', + libtar => '/usr', + axis => '/usr', + log4c => '/usr', + postgresql => '/usr' ); my %jar = ( - 'commons-codec' => '/usr/share/java/commons-codec-1.3.jar', + 'commons-codec' => '/usr/share/java/commons-codec.jar', + 'commons-lang' => '/usr/share/java/commons-lang.jar', ); @@ -54,10 +71,11 @@ my %deps_type; my %topbuild; my %lbmodules = ( - 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test/], + 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test harvester/], 'security' => [qw/gss gsoap-plugin/], - 'lbjp-common' => [qw/db maildir server-bones trio/], + 'lbjp-common' => [qw/db log maildir server-bones trio jp-interface/], 'jobid' => [qw/api-c api-cpp api-java/], + 'jp' => [ qw/client doc index primary server-common ws-interface/ ], ); @@ -71,7 +89,14 @@ my @opts = ( 'listmodules=s' => \$listmodules, 'version=s' => \$version, 'output=s' => \$output, + 'stage=s' => \$stagedir, + 'lb-tag=s' => \$lb_tag, + 'lbjp-common-tag=s' => \$lbjp_tag, + 'jp-tag=s' => \$jp_tag, + 'security-tag=s' => \$sec_tag, + 'jobid-tag=s' => \$jobid_tag, 'help' => \$help, + 'libdir=s' => \$libdir, ); for (@nodes) { @@ -89,6 +114,9 @@ my @keeparg = @ARGV; GetOptions @opts or die "Errors parsing command line\n"; +$extern_prefix{'mysql-devel'}=$extern_prefix{mysql} if $extern_prefix{'mysql-devel'} eq ''; +$extern_prefix{'mysql-server'}=$extern_prefix{mysql} if $extern_prefix{'mysql-server'} eq ''; + if ($help) { usage(); exit 0; } if ($listmodules) { @@ -112,7 +140,7 @@ die "--enable-* and --disable-* are mutually exclusive\n" die "--module cannot be used with --enable-* or --disable-*\n" if $module && ($en || $dis); -die "$module: unknown module\n" if $module && ! grep $module,@{$lbmodules{lb}},@{$lbmodules{security}}; +die "$module: unknown module\n" if $module && ! grep $module,@{$lbmodules{lb}},@{$lbmodules{security}},{$lbmodules{jp}}; if ($dis) { for (@nodes) { @@ -124,6 +152,8 @@ if (!$en && !$dis) { $enable_nodes{$_} = 1 for (@nodes) } ; for (keys %enable_nodes) { delete $enable_nodes{$_} unless $enable_nodes{$_}; } +$stagedir = $prefix unless $stagedir; + if ($mode eq 'build') { print "Writing config.status\n"; open CONF,">config.status" or die "config.status: $!\n"; @@ -136,10 +166,11 @@ my @modules; my %aux; if ($module) { +# push @modules,split(/[,.]+/,$module); push @modules,$module; } else { - @modules = map 'lb.'.($extranodmod{$_} ? $extranodmod{$_} : $_),keys %enable_nodes; + @modules = map(($extranodmod{$_} ? $extranodmod{$_} : 'lb.'.$_),(keys %enable_nodes)); my $n; @@ -205,7 +236,7 @@ sub mode_build { my %ldeps; undef %ldeps; @ldeps{@{$deps{$_}}} = 1; for my $x (split /,/,$staged) { delete $ldeps{$x}; } - my @dnames = keys %ldeps; + my @dnames = $module ? () : keys %ldeps; my $full = full($_); my $build = $topbuild{$_} ? '': '/build'; @@ -218,33 +249,83 @@ sub mode_build { sub mode_checkout() { for (@modules) { + my $module = $_; + my $tag = ""; + if ($lb_tag){ + for (@{$lbmodules{lb}}){ + if ("lb.".$_ eq $module){ + $tag = '-r '.$lb_tag; + } + } + } + if ($lbjp_tag){ + for (@{$lbmodules{'lbjp-common'}}){ + if ("lbjp-common.".$_ eq $module){ + $tag = '-r '.$lbjp_tag; + } + } + } + if ($jp_tag){ + for (@{$lbmodules{'jp'}}){ + if ("jp.".$_ eq $module){ + $tag = '-r '.$jp_tag; + } + } + } + if ($sec_tag){ + for (@{$lbmodules{security}}){ + if ("security.".$_ eq $module){ + $tag = '-r '.$sec_tag; + } + } + } + if ($jobid_tag){ + for (@{$lbmodules{jobid}}){ + if ("jobid.".$_ eq $module){ + $tag = '-r '.$jobid_tag; + } + } + } + #if (grep {"lb.".$_ eq $module} @{$lbmodules{lb}}){ + # print "found"; + #} $_ = full($_); print "\n*** Checking out $_\n"; - system("cvs checkout $_") == 0 or die "cvs checkout $_: $?\n"; + system("cvs checkout $tag $_") == 0 or die "cvs checkout $tag $_: $?\n"; } } BEGIN{ %need_externs_aux = ( 'lb.client' => [ qw/cppunit:B classads/ ], + 'lb.client-java' => [ qw/ant:B jdk:B axis:B trustmanager/ ], 'lb.common' => [ qw/expat cppunit:B classads/ ], 'lb.doc' => [], - 'lb.logger' => [ qw/cppunit:B/ ], - 'lb.server' => [ qw/globus expat cares mysql cppunit:B gsoap:B classads voms lcas gridsite/ ], + 'lb.logger' => [ qw/cppunit:B log4c/ ], + 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql:R mysql-server:R mysql-devel:B cppunit:B gsoap:B classads voms lcas gridsite log4c/ ], 'lb.state-machine' => [ qw/classads/ ], 'lb.utils' => [ qw/cppunit:B/ ], 'lb.ws-interface' => [], 'lb.ws-test' => [ qw/gsoap:B/ ], 'lb.types' => [ qw// ], - 'lbjp-common.db' => [ qw/mysql/ ], + 'lb.harvester' => [ qw/postgresql:R/ ], + 'lbjp-common.db' => [ qw/mysql:B mysql-devel:B postgresql:B/ ], + 'lbjp-common.log' => [ qw// ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], - 'lbjp-common.trio' => [ qw// ], - 'security.gss' => [ qw/globus cares cppunit:B/ ], - 'security.gsoap-plugin' => [ qw/cppunit:B globus cares gsoap:B/ ], + 'lbjp-common.trio' => [ qw/cppunit:B/ ], + 'lbjp-common.jp-interface' => [ qw/cppunit:B/ ], + 'security.gss' => [ qw/globus_essentials:R globus:B cares cppunit:B/ ], + 'security.gsoap-plugin' => [ qw/cppunit:B globus_essentials:R globus:B cares gsoap:B/ ], 'jobid.api-c' => [ qw/cppunit:B/ ], 'jobid.api-cpp' => [ qw/cppunit:B/ ], - 'jobid.api-java' => [ qw// ], + 'jobid.api-java' => [ qw/ant:B jdk:B/ ], + 'jp.client' => [ qw/gsoap libtar globus_essentials:R globus:B/ ], + 'jp.doc' => [], + 'jp.index' => [ qw/gsoap globus_essentials:R globus:B/ ], + 'jp.primary' => [ qw/classads gsoap libtar globus_essentials:R globus:B/ ], + 'jp.server-common' => [], + 'jp.ws-interface' => [], ); for my $ext (keys %need_externs_aux) { @@ -258,6 +339,7 @@ for my $ext (keys %need_externs_aux) { %need_jars = ( 'jobid.api-java' => [ qw/commons-codec/ ], + 'lb.client-java' => [ qw/commons-lang/ ], ); for my $jar (keys %need_jars) { @@ -275,6 +357,7 @@ for my $jar (keys %need_jars) { / ], 'lb.client-java' => [ qw/ lb.types:B + lb.ws-interface:B jobid.api-java / ], 'lb.common' => [ qw/ @@ -284,19 +367,20 @@ for my $jar (keys %need_jars) { 'lb.doc' => [ qw/lb.types:B/ ], 'lb.logger' => [ qw/ lbjp-common.trio + lbjp-common.log jobid.api-c lb.common security.gss / ], 'lb.server' => [ qw/ lb.ws-interface lb.types:B lb.common lb.state-machine - lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir + lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir lbjp-common.log jobid.api-c security.gsoap-plugin security.gss / ], - 'lb.state-machine' => [ qw/lb.common jp.common security.gss/ ], + 'lb.state-machine' => [ qw/lb.types:B lb.common lbjp-common.jp-interface security.gss/ ], 'lb.utils' => [ qw/ - jp.common + lbjp-common.jp-interface jobid.api-c lbjp-common.trio lbjp-common.maildir lb.client lb.state-machine @@ -304,6 +388,10 @@ for my $jar (keys %need_jars) { 'lb.ws-test' => [ qw/security.gsoap-plugin lb.ws-interface/ ], 'lb.ws-interface' => [ qw/lb.types:B/ ], 'lb.types' => [ qw// ], + 'lb.harvester' => [ qw/ + jobid.api-c lbjp-common.trio lbjp-common.db lb.common lb.client + security.gss + / ], 'lbjp-common.db' => [ qw/lbjp-common.trio/ ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], @@ -314,7 +402,31 @@ for my $jar (keys %need_jars) { 'jobid.api-cpp' => [ qw/jobid.api-c/ ], 'jobid.api-java' => [ qw// ], - 'jp.common' => [ qw/lbjp-common.db/ ], + 'lbjp-common.jp-interface' => [ qw/lbjp-common.db jobid.api-c/ ], + + 'jp.client' => [ qw/ + jp.ws-interface + lbjp-common.jp-interface lbjp-common.maildir + jobid.api-c + security.gsoap-plugin + / ], + 'jp.doc' => [ qw// ], + 'jp.index' => [ qw/ + jp.server-common jp.ws-interface + lbjp-common.jp-interface lbjp-common.trio lbjp-common.db lbjp-common.server-bones + security.gsoap-plugin + / ], + 'jp.primary' => [ qw/ + jobid.api-c + jp.server-common jp.ws-interface + lb.state-machine + lbjp-common.jp-interface lbjp-common.trio lbjp-common.db lbjp-common.server-bones + security.gsoap-plugin + / ], + 'jp.server-common' => [ qw/ + lbjp-common.jp-interface lbjp-common.db + / ], + 'jp.ws-interface' => [ qw// ], ); for my $ext (keys %deps_aux) { @@ -329,9 +441,15 @@ for my $ext (keys %deps_aux) { %extrafull = ( gridsite=>'org.gridsite.core'); -# %extranodmod = ( java => 'client-java' ); +#( java => 'client-java' ); +%extranodmod = ( + db => 'lbjp-common.db', + jpprimary => 'jp.primary', + jpindex => 'jp.index', + jpclient => 'jp.client', +); -my @t = qw/lb.client-java jobid.api-java lb.types/; +my @t = qw/lb.client-java jobid.api-java lb.types lbjp-common.log/; @topbuild{@t} = (1) x ($#t+1); } @@ -346,11 +464,12 @@ sub mkinc my %aux; undef %aux; my @m=qw/ -lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java +lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java lb.harvester security.gss security.gsoap-plugin jobid.api-c jobid.api-cpp jobid.api-java -lbjp-common.db lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio -jp.common/; +lbjp-common.db lbjp-common.log lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface +jp.client jp.doc jp.index jp.primary jp.server-common jp.ws-interface +/; @aux{@m} = (1) x ($#m+1); my $short = shift; @@ -379,9 +498,10 @@ jp.common/; print MKINC qq{ PREFIX = $prefix -stagedir = $prefix +stagedir = $stagedir thrflavour = $thrflavour nothrflavour = $nothrflavour +libdir = $libdir }; for (@{$need_externs{$short}}) { @@ -404,14 +524,16 @@ my %etics_externs; my %etics_projects; BEGIN{ %etics_externs = ( - globus=>'vdt_globus_essentials', + globus_essentials=>'vdt_globus_essentials', + globus=>'globus', cares=>'c-ares', - voms=>'org.glite.security.voms-api-c', + voms=>'org.glite.security.voms-api-cpp', gridsite=>'org.gridsite.shared', lcas=>'org.glite.security.lcas', + trustmanager=>'org.glite.security.trustmanager', ); %etics_projects = ( - vdt=>[qw/globus/], + vdt=>[qw/globus globus_essentials/], 'org.glite'=>[qw/voms gridsite lcas/], ); }; @@ -446,14 +568,16 @@ sub mode_etics { @ge{@{$etics_projects{'org.glite'}}} = (1) x ($#{$etics_projects{'org.glite'}}+1); for (@{$need_externs{"$subsys.$module"}}) { + if ($need_externs_type{"$subsys.$module"}->{$_}=~/B/) { my $eext = $etics_externs{$_} ? $etics_externs{$_} : $_; push @copts,$ge{$_} ? "--with-$_=\${stageDir}" : "--with-$_=\${$eext.location}"; + } } for (@{$need_jars{"$subsys.$module"}}) { my $eext = $etics_externs{$_} ? $etics_externs{$_} : $_; - push @copts,"--with-$_=\${$_.location}/$_-`echo \${$_.version} | sed 's/\\([0-9]*\\.[0-9]*\\)\\.[0-9]*/\\1/'`.jar"; + push @copts,"--with-$_ \${$eext.location}/$_*.jar"; } @@ -500,7 +624,7 @@ init = None install = make install clean = make clean test = make check -configure = cd $confdir && \${moduleName}/configure --prefix=\${prefix} --module $subsys.$module @copts +configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --libdir=\${libdir} --module $subsys.$module @copts checkstyle = None [Platform-default:Property] @@ -558,7 +682,8 @@ General options (defaults in []): --staged=module,module,... what is already in PREFIX (specify without org.glite.) --thrflavour=flavour --nothrflavour=flavour threaded and non-treaded flavours [gcc64dbgpthr,gcc64dbg] - --listmodules=subsys list modules of a subsystem + --listmodules=subsys list modules of a subsystem + --libdir=libdir typically [lib,lib64] postfix Mode of operation: --mode={checkout|build|etics} what to do [build] @@ -568,6 +693,11 @@ What to build: --enable-NODE build this "node" (set of modules) only. Available nodes are @{$lbmodules{lb}},@{$lbmodules{security}} --disable-NODE don't build this node + --lb-tag=tag checkout LB modules with specific tag + --jp-tag=tag checkout JP modules with specific tag + --lbjp-common-tag=tag checkout lbjp-common modules with specific tag + --security-tag=tag checkout security modules with specific tag + --jobid-tag=tag checkout jobid modules with specific tag Dependencies: --with-EXTERNAL=PATH where to look for an external. Required externals diff --git a/org.glite.jobid.api-cpp/project/ChangeLog b/org.glite.jobid.api-cpp/project/ChangeLog index bccf86f..f02e829 100644 --- a/org.glite.jobid.api-cpp/project/ChangeLog +++ b/org.glite.jobid.api-cpp/project/ChangeLog @@ -4,3 +4,7 @@ 1.0.0-2 - fixes in etics' invocation of configure +1.0.0-4 +- configure script update +- compatibility with g++ 4.3.2 + diff --git a/org.glite.jobid.api-cpp/project/version.properties b/org.glite.jobid.api-cpp/project/version.properties index 0df28c6..2213c8e 100644 --- a/org.glite.jobid.api-cpp/project/version.properties +++ b/org.glite.jobid.api-cpp/project/version.properties @@ -1,3 +1,3 @@ # : /cvs/glite/org.glite.jobid.api-cpp/project/version.properties,v 1.1 2009/01/16 08:48:52 zsustr Exp $ module.version=1.0.0 -module.age=2 +module.age=4 diff --git a/org.glite.lb.client/configure b/org.glite.lb.client/configure index fee5f52..80097bd 100755 --- a/org.glite.lb.client/configure +++ b/org.glite.lb.client/configure @@ -28,7 +28,7 @@ my $sec_tag = ''; my $jobid_tag = ''; my $libdir = 'lib'; -my @nodes = qw/client server logger utils doc ws-test db jpprimary jpindex jpclient/; +my @nodes = qw/client server logger utils client-java doc ws-test db jpprimary jpindex jpclient harvester/; my %enable_nodes; my %disable_nodes; @@ -38,7 +38,6 @@ my %extern_prefix = ( cppunit => '/usr', expat => '/usr', globus => '/opt/globus', - jglobus => '/opt/globus', gsoap => '/usr', mysql => '/usr', 'mysql-devel' => '', @@ -46,13 +45,18 @@ my %extern_prefix = ( voms => '/opt/glite', gridsite => '/opt/glite', lcas => '/opt/glite', + trustmanager => '/opt/glite', ant => '/usr', jdk => '/usr', libtar => '/usr', + axis => '/usr', + log4c => '/usr', + postgresql => '/usr' ); my %jar = ( - 'commons-codec' => '/usr/share/java/commons-codec-1.3.jar', + 'commons-codec' => '/usr/share/java/commons-codec.jar', + 'commons-lang' => '/usr/share/java/commons-lang.jar', ); @@ -67,10 +71,10 @@ my %deps_type; my %topbuild; my %lbmodules = ( - 'lb' => [ qw/client common doc logger server state-machine types utils ws-interface ws-test/], + 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test harvester/], 'security' => [qw/gss gsoap-plugin/], - 'lbjp-common' => [qw/db maildir server-bones trio jp-interface/], - 'jobid' => [qw/api-c api-cpp/], + 'lbjp-common' => [qw/db log maildir server-bones trio jp-interface/], + 'jobid' => [qw/api-c api-cpp api-java/], 'jp' => [ qw/client doc index primary server-common ws-interface/ ], ); @@ -294,17 +298,19 @@ sub mode_checkout() { BEGIN{ %need_externs_aux = ( 'lb.client' => [ qw/cppunit:B classads/ ], - 'lb.client-java' => [ qw/ant:B jglobus jdk:B/ ], + 'lb.client-java' => [ qw/ant:B jdk:B axis:B trustmanager/ ], 'lb.common' => [ qw/expat cppunit:B classads/ ], 'lb.doc' => [], - 'lb.logger' => [ qw/cppunit:B/ ], - 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql:R mysql-server:R mysql-devel:B cppunit:B gsoap:B classads voms lcas gridsite/ ], + 'lb.logger' => [ qw/cppunit:B log4c/ ], + 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql:R mysql-server:R mysql-devel:B cppunit:B gsoap:B classads voms lcas gridsite log4c/ ], 'lb.state-machine' => [ qw/classads/ ], 'lb.utils' => [ qw/cppunit:B/ ], 'lb.ws-interface' => [], 'lb.ws-test' => [ qw/gsoap:B/ ], 'lb.types' => [ qw// ], - 'lbjp-common.db' => [ qw/mysql:R mysql-server:R mysql-devel:B/ ], + 'lb.harvester' => [ qw/postgresql:R/ ], + 'lbjp-common.db' => [ qw/mysql:B mysql-devel:B postgresql:B/ ], + 'lbjp-common.log' => [ qw// ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], 'lbjp-common.trio' => [ qw/cppunit:B/ ], @@ -333,6 +339,7 @@ for my $ext (keys %need_externs_aux) { %need_jars = ( 'jobid.api-java' => [ qw/commons-codec/ ], + 'lb.client-java' => [ qw/commons-lang/ ], ); for my $jar (keys %need_jars) { @@ -350,6 +357,7 @@ for my $jar (keys %need_jars) { / ], 'lb.client-java' => [ qw/ lb.types:B + lb.ws-interface:B jobid.api-java / ], 'lb.common' => [ qw/ @@ -359,13 +367,14 @@ for my $jar (keys %need_jars) { 'lb.doc' => [ qw/lb.types:B/ ], 'lb.logger' => [ qw/ lbjp-common.trio + lbjp-common.log jobid.api-c lb.common security.gss / ], 'lb.server' => [ qw/ lb.ws-interface lb.types:B lb.common lb.state-machine - lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir + lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir lbjp-common.log jobid.api-c security.gsoap-plugin security.gss / ], @@ -379,6 +388,10 @@ for my $jar (keys %need_jars) { 'lb.ws-test' => [ qw/security.gsoap-plugin lb.ws-interface/ ], 'lb.ws-interface' => [ qw/lb.types:B/ ], 'lb.types' => [ qw// ], + 'lb.harvester' => [ qw/ + jobid.api-c lbjp-common.trio lbjp-common.db lb.common lb.client + security.gss + / ], 'lbjp-common.db' => [ qw/lbjp-common.trio/ ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], @@ -436,7 +449,7 @@ for my $ext (keys %deps_aux) { jpclient => 'jp.client', ); -my @t = qw/lb.client-java jobid.api-java lb.types/; +my @t = qw/lb.client-java jobid.api-java lb.types lbjp-common.log/; @topbuild{@t} = (1) x ($#t+1); } @@ -451,10 +464,10 @@ sub mkinc my %aux; undef %aux; my @m=qw/ -lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java +lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java lb.harvester security.gss security.gsoap-plugin jobid.api-c jobid.api-cpp jobid.api-java -lbjp-common.db lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface +lbjp-common.db lbjp-common.log lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface jp.client jp.doc jp.index jp.primary jp.server-common jp.ws-interface /; @aux{@m} = (1) x ($#m+1); @@ -517,6 +530,7 @@ BEGIN{ voms=>'org.glite.security.voms-api-cpp', gridsite=>'org.gridsite.shared', lcas=>'org.glite.security.lcas', + trustmanager=>'org.glite.security.trustmanager', ); %etics_projects = ( vdt=>[qw/globus globus_essentials/], diff --git a/org.glite.lb.client/examples/Makefile b/org.glite.lb.client/examples/Makefile index ee5fc6f..8b4e31f 100644 --- a/org.glite.lb.client/examples/Makefile +++ b/org.glite.lb.client/examples/Makefile @@ -1,8 +1,16 @@ glite_location:=${GLITE_LOCATION} glite_prefix:=${glite_location} -nothrflavour=gcc32dbg -thrflavour=gcc32dbgpthr +host_cpu:=${shell uname -m} +ifeq (${host_cpu},x86_64) + LDFLAGS:=-L${glite_prefix}/lib64 -L${glite_prefix}/lib + nothrflavour=gcc64dbg + thrflavour=gcc64dbgpthr +else + LDFLAGS:=-L${glite_prefix}/lib + nothrflavour=gcc32dbg + thrflavour=gcc32dbgpthr +endif CC:=gcc CXX:=g++ @@ -24,20 +32,13 @@ CFLAGS:=${DEBUG} \ CXXFLAGS:=${CFLAGS} -host_cpu:=${shell uname -m} -ifeq (${host_cpu},x86_64) - LDFLAGS:=-L${glite_prefix}/lib64 -else - LDFLAGS:=-L${glite_prefix}/lib -endif - COMPILE:=libtool --mode=compile ${CC} ${CFLAGS} CXXCOMPILE:=libtool --mode=compile ${CXX} ${CXXFLAGS} LINK:=libtool --mode=link ${CC} ${LDFLAGS} LINKXX:=libtool --mode=link ${CXX} ${LDFLAGS} INSTALL:=libtool --mode=install install -EXAMPLES_SRC:=log_usertag_proxy.c job_log.c job_reg.c feed_shark.c notify.c query_ext.c query_seq_code.c stats.c abort_job.c change_acl.c stresslog.c flood_proxy.c dagids.c stress_context.c parse_eventsfile.c user_jobs.c job_status.c +EXAMPLES_SRC:=log_usertag_proxy.c job_log.c job_reg.c feed_shark.c query_ext.c query_seq_code.c stats.c abort_job.c change_acl.c stresslog.c flood_proxy.c dagids.c stress_context.c parse_eventsfile.c user_jobs.c job_status.c EXAMPLES:=${EXAMPLES_SRC:.c=} # TODO: migrate them here from branch_RC31_3 diff --git a/org.glite.lb.client/examples/abort_job.c b/org.glite.lb.client/examples/abort_job.c index 24e9d05..3407b22 100644 --- a/org.glite.lb.client/examples/abort_job.c +++ b/org.glite.lb.client/examples/abort_job.c @@ -10,8 +10,13 @@ #include #include "glite/lb/events_parse.h" +#ifdef BUILDING_LB_CLIENT #include "consumer.h" #include "producer.h" +#else +#include "glite/lb/consumer.h" +#include "glite/lb/producer.h" +#endif #include "glite/jobid/cjobid.h" #include "glite/lb/context-int.h" diff --git a/org.glite.lb.client/examples/change_acl.c b/org.glite.lb.client/examples/change_acl.c index 24a1d4d..3464a16 100644 --- a/org.glite.lb.client/examples/change_acl.c +++ b/org.glite.lb.client/examples/change_acl.c @@ -4,7 +4,11 @@ #include #include "glite/jobid/cjobid.h" +#ifdef BUILDING_LB_CLIENT #include "producer.h" +#else +#include "glite/lb/producer.h" +#endif #include "glite/lb/authz.h" void diff --git a/org.glite.lb.client/examples/dagids.c b/org.glite.lb.client/examples/dagids.c index a710148..91f4e60 100644 --- a/org.glite.lb.client/examples/dagids.c +++ b/org.glite.lb.client/examples/dagids.c @@ -6,7 +6,11 @@ #include #include "glite/jobid/cjobid.h" +#ifdef BUILDING_LB_CLIENT #include "producer.h" +#else +#include "glite/lb/producer.h" +#endif #include "glite/lb/events.h" extern char *optarg; diff --git a/org.glite.lb.client/examples/feed_shark.c b/org.glite.lb.client/examples/feed_shark.c index 8004537..7aeac7d 100644 --- a/org.glite.lb.client/examples/feed_shark.c +++ b/org.glite.lb.client/examples/feed_shark.c @@ -7,7 +7,11 @@ #include #include +#ifdef BUILDING_LB_CLIENT #include "notification.h" +#else +#include "glite/lb/notification.h" +#endif static void usage(const char *); static void printstat(edg_wll_JobStat, int); diff --git a/org.glite.lb.client/examples/flood_proxy.c b/org.glite.lb.client/examples/flood_proxy.c index 9f2a3aa..5fb23a6 100644 --- a/org.glite.lb.client/examples/flood_proxy.c +++ b/org.glite.lb.client/examples/flood_proxy.c @@ -7,7 +7,11 @@ #include #include +#ifdef BUILDING_LB_CLIENT #include "producer.h" +#else +#include "glite/lb/producer.h" +#endif #include "glite/jobid/cjobid.h" static void slave(); diff --git a/org.glite.lb.client/examples/gen_sample_job b/org.glite.lb.client/examples/gen_sample_job index 3ea9a7e..3f532f0 100755 --- a/org.glite.lb.client/examples/gen_sample_job +++ b/org.glite.lb.client/examples/gen_sample_job @@ -132,4 +132,3 @@ function logit() print "send_log_ev" ff; } ' $1 - diff --git a/org.glite.lb.client/examples/job_log.c b/org.glite.lb.client/examples/job_log.c index afa6558..03ddd40 100644 --- a/org.glite.lb.client/examples/job_log.c +++ b/org.glite.lb.client/examples/job_log.c @@ -10,7 +10,11 @@ #include #include "glite/lb/events_parse.h" +#ifdef BUILDING_LB_CLIENT #include "consumer.h" +#else +#include "glite/lb/consumer.h" +#endif #include "glite/jobid/cjobid.h" #ifdef USE_CALLBACKS #include "consumer_fake.h" diff --git a/org.glite.lb.client/examples/job_reg.c b/org.glite.lb.client/examples/job_reg.c index 1417c73..7e3b8e7 100644 --- a/org.glite.lb.client/examples/job_reg.c +++ b/org.glite.lb.client/examples/job_reg.c @@ -6,7 +6,11 @@ #include #include "glite/jobid/cjobid.h" +#ifdef BUILDING_LB_CLIENT #include "producer.h" +#else +#include "glite/lb/producer.h" +#endif #include "glite/lb/events.h" extern char *optarg; diff --git a/org.glite.lb.client/examples/job_status.c b/org.glite.lb.client/examples/job_status.c index b479af4..ac5cd67 100644 --- a/org.glite.lb.client/examples/job_status.c +++ b/org.glite.lb.client/examples/job_status.c @@ -7,7 +7,11 @@ #include #include "glite/lb/context-int.h" +#ifdef BUILDING_LB_CLIENT #include "consumer.h" +#else +#include "glite/lb/consumer.h" +#endif #include "glite/lb/xml_conversions.h" #include "glite/lb/jobstat.h" diff --git a/org.glite.lb.client/examples/log_usertag_proxy.c b/org.glite.lb.client/examples/log_usertag_proxy.c index 3873460..2b48494 100644 --- a/org.glite.lb.client/examples/log_usertag_proxy.c +++ b/org.glite.lb.client/examples/log_usertag_proxy.c @@ -12,7 +12,7 @@ #ifdef BUILDING_LB_CLIENT #include "producer.h" #else -#include "producer.h" +#include "glite/lb/producer.h" #endif static struct option opts[] = { diff --git a/org.glite.lb.client/examples/parse_eventsfile.c b/org.glite.lb.client/examples/parse_eventsfile.c index 83ee8f2..2f9d339 100644 --- a/org.glite.lb.client/examples/parse_eventsfile.c +++ b/org.glite.lb.client/examples/parse_eventsfile.c @@ -5,7 +5,11 @@ #include #include +#ifdef BUILDING_LB_CLIENT #include "producer.h" +#else +#include "glite/lb/producer.h" +#endif #include "glite/lb/events.h" #include "glite/lb/events_parse.h" diff --git a/org.glite.lb.client/examples/query_ext.c b/org.glite.lb.client/examples/query_ext.c index ac9b609..82b23c6 100644 --- a/org.glite.lb.client/examples/query_ext.c +++ b/org.glite.lb.client/examples/query_ext.c @@ -7,7 +7,11 @@ #include #include "glite/jobid/cjobid.h" +#ifdef BUILDING_LB_CLIENT #include "consumer.h" +#else +#include "glite/lb/consumer.h" +#endif #define BUFF_LEN 1024 #define MAX_AND_CONDS 20 diff --git a/org.glite.lb.client/examples/query_seq_code.c b/org.glite.lb.client/examples/query_seq_code.c index 29e9de7..730dd95 100644 --- a/org.glite.lb.client/examples/query_seq_code.c +++ b/org.glite.lb.client/examples/query_seq_code.c @@ -6,7 +6,11 @@ #include #include "glite/jobid/cjobid.h" +#ifdef BUILDING_LB_CLIENT #include "consumer.h" +#else +#include "glite/lb/consumer.h" +#endif static struct option opts[] = { diff --git a/org.glite.lb.client/examples/stats.c b/org.glite.lb.client/examples/stats.c index af6dcb1..626efde 100644 --- a/org.glite.lb.client/examples/stats.c +++ b/org.glite.lb.client/examples/stats.c @@ -1,8 +1,13 @@ #include +#include #include #include +#ifdef BUILDING_LB_CLIENT #include "statistics.h" +#else +#include "glite/lb/statistics.h" +#endif int main(int argc,char **argv) @@ -17,8 +22,8 @@ int main(int argc,char **argv) edg_wll_InitContext(&ctx); - if (argc != 2) { - fprintf(stderr,"usage: %s \n",argv[0]); + if (argc < 3) { + fprintf(stderr,"usage: %s CE major [minor]\n",argv[0]); return 1; } @@ -58,7 +63,7 @@ int main(int argc,char **argv) to = now; from = now - 60; - if (edg_wll_StateRate(ctx,group,EDG_WLL_JOB_DONE,EDG_WLL_STAT_FAILED, + if (edg_wll_StateRate(ctx,group,atoi(argv[2]),argc >=4 ? atoi(argv[3]) : 0, &from,&to,&val,&from_res,&to_res)) { char *et,*ed; diff --git a/org.glite.lb.client/examples/stress_context.c b/org.glite.lb.client/examples/stress_context.c index a551d30..dfd54a6 100644 --- a/org.glite.lb.client/examples/stress_context.c +++ b/org.glite.lb.client/examples/stress_context.c @@ -5,7 +5,11 @@ #include #include "glite/jobid/cjobid.h" +#ifdef BUILDING_LB_CLIENT #include "producer.h" +#else +#include "glite/lb/producer.h" +#endif #include "glite/lb/events.h" char *outfile = "context_errors"; diff --git a/org.glite.lb.client/examples/stresslog.c b/org.glite.lb.client/examples/stresslog.c index 6034f0a..67d7c07 100644 --- a/org.glite.lb.client/examples/stresslog.c +++ b/org.glite.lb.client/examples/stresslog.c @@ -6,7 +6,11 @@ #include #include "glite/jobid/cjobid.h" +#ifdef BUILDING_LB_CLIENT #include "producer.h" +#else +#include "glite/lb/producer.h" +#endif #include "glite/lb/events.h" #define MAXMSGSIZE 10240 diff --git a/org.glite.lb.client/examples/user_jobs.c b/org.glite.lb.client/examples/user_jobs.c index 918625c..1d1dbbb 100644 --- a/org.glite.lb.client/examples/user_jobs.c +++ b/org.glite.lb.client/examples/user_jobs.c @@ -6,7 +6,11 @@ #include "glite/lb/context.h" #include "glite/lb/xml_conversions.h" +#ifdef BUILDING_LB_CLIENT #include "consumer.h" +#else +#include "glite/lb/consumer.h" +#endif int use_proxy = 0; diff --git a/org.glite.lb.client/project/ChangeLog b/org.glite.lb.client/project/ChangeLog index c863192..b7545e4 100644 --- a/org.glite.lb.client/project/ChangeLog +++ b/org.glite.lb.client/project/ChangeLog @@ -48,3 +48,13 @@ - (from 3.2.2-1) Fix edg_wll_NotifDrop prototype (#34649). - Notification pool implementation +4.0.2-1 +- don't use hard-wired types for ACLs events but the ones generated automatically +- change_acl code adapted to the new API using generated types +- new options to the glite-lb-notify command + +4.0.3-1 +- Man page update +- Minor fixes in example builds +- stats extended for any job state + diff --git a/org.glite.lb.client/project/version.properties b/org.glite.lb.client/project/version.properties index b091aaa..0e08a6c 100644 --- a/org.glite.lb.client/project/version.properties +++ b/org.glite.lb.client/project/version.properties @@ -1,3 +1,3 @@ # $Header$ -module.version=4.0.1 +module.version=4.0.3 module.age=1 diff --git a/org.glite.lb.common/Makefile b/org.glite.lb.common/Makefile index 7b77e9b..c28306c 100644 --- a/org.glite.lb.common/Makefile +++ b/org.glite.lb.common/Makefile @@ -51,26 +51,20 @@ CFLAGS:=${DEBUG} -I${top_srcdir}/src -I${top_srcdir}/interface \ -DDATAGRID_EXTENSION ${LB_STANDALONE_FLAGS} \ -DBUILDING_LB_COMMON -archlib:=lib -host_cpu:=${shell uname -m} -ifeq (${host_cpu},x86_64) - archlib:=lib64 -endif - ifneq (${expat_prefix},/usr) - EXPAT_LIBS:=-L${expat_prefix}/${archlib} -L${expat_prefix}/lib + EXPAT_LIBS:=-L${expat_prefix}/${libdir} -L${expat_prefix}/lib endif EXPAT_LIBS:=${EXPAT_LIBS} -lexpat ifneq (${classads_prefix},/usr) - classadslib := -L${classads_prefix}/${archlib} -L${classads_prefix}/lib + classadslib := -L${classads_prefix}/${libdir} -L${classads_prefix}/lib endif classadslib := ${classadslib} -lclassad -LDFLAGS:=-L${stagedir}/${archlib} -L${stagedir}/lib \ +LDFLAGS:=-L${stagedir}/${libdir} -L${stagedir}/lib \ ${COVERAGE_FLAGS} EXT_LIBS:= ${EXPAT_LIBS} ${JOBID_LIB} ${TRIO_LIB} ${classadslib} diff --git a/org.glite.lb.common/configure b/org.glite.lb.common/configure index 9a7e696..80097bd 100755 --- a/org.glite.lb.common/configure +++ b/org.glite.lb.common/configure @@ -26,8 +26,9 @@ my $lbjp_tag = ''; my $jp_tag = ''; my $sec_tag = ''; my $jobid_tag = ''; +my $libdir = 'lib'; -my @nodes = qw/client server logger utils client-java doc ws-test db jpprimary jpindex jpclient/; +my @nodes = qw/client server logger utils client-java doc ws-test db jpprimary jpindex jpclient harvester/; my %enable_nodes; my %disable_nodes; @@ -39,16 +40,23 @@ my %extern_prefix = ( globus => '/opt/globus', gsoap => '/usr', mysql => '/usr', + 'mysql-devel' => '', + 'mysql-server' => '', voms => '/opt/glite', gridsite => '/opt/glite', lcas => '/opt/glite', + trustmanager => '/opt/glite', ant => '/usr', jdk => '/usr', libtar => '/usr', + axis => '/usr', + log4c => '/usr', + postgresql => '/usr' ); my %jar = ( - 'commons-codec' => '/usr/share/java/commons-codec-1.3.jar', + 'commons-codec' => '/usr/share/java/commons-codec.jar', + 'commons-lang' => '/usr/share/java/commons-lang.jar', ); @@ -63,9 +71,9 @@ my %deps_type; my %topbuild; my %lbmodules = ( - 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test/], + 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test harvester/], 'security' => [qw/gss gsoap-plugin/], - 'lbjp-common' => [qw/db maildir server-bones trio jp-interface/], + 'lbjp-common' => [qw/db log maildir server-bones trio jp-interface/], 'jobid' => [qw/api-c api-cpp api-java/], 'jp' => [ qw/client doc index primary server-common ws-interface/ ], ); @@ -88,6 +96,7 @@ my @opts = ( 'security-tag=s' => \$sec_tag, 'jobid-tag=s' => \$jobid_tag, 'help' => \$help, + 'libdir=s' => \$libdir, ); for (@nodes) { @@ -105,6 +114,9 @@ my @keeparg = @ARGV; GetOptions @opts or die "Errors parsing command line\n"; +$extern_prefix{'mysql-devel'}=$extern_prefix{mysql} if $extern_prefix{'mysql-devel'} eq ''; +$extern_prefix{'mysql-server'}=$extern_prefix{mysql} if $extern_prefix{'mysql-server'} eq ''; + if ($help) { usage(); exit 0; } if ($listmodules) { @@ -286,17 +298,19 @@ sub mode_checkout() { BEGIN{ %need_externs_aux = ( 'lb.client' => [ qw/cppunit:B classads/ ], - 'lb.client-java' => [ qw/ant:B/ ], + 'lb.client-java' => [ qw/ant:B jdk:B axis:B trustmanager/ ], 'lb.common' => [ qw/expat cppunit:B classads/ ], 'lb.doc' => [], - 'lb.logger' => [ qw/cppunit:B/ ], - 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql cppunit:B gsoap:B classads voms lcas gridsite/ ], + 'lb.logger' => [ qw/cppunit:B log4c/ ], + 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql:R mysql-server:R mysql-devel:B cppunit:B gsoap:B classads voms lcas gridsite log4c/ ], 'lb.state-machine' => [ qw/classads/ ], 'lb.utils' => [ qw/cppunit:B/ ], 'lb.ws-interface' => [], 'lb.ws-test' => [ qw/gsoap:B/ ], 'lb.types' => [ qw// ], - 'lbjp-common.db' => [ qw/mysql/ ], + 'lb.harvester' => [ qw/postgresql:R/ ], + 'lbjp-common.db' => [ qw/mysql:B mysql-devel:B postgresql:B/ ], + 'lbjp-common.log' => [ qw// ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], 'lbjp-common.trio' => [ qw/cppunit:B/ ], @@ -325,6 +339,7 @@ for my $ext (keys %need_externs_aux) { %need_jars = ( 'jobid.api-java' => [ qw/commons-codec/ ], + 'lb.client-java' => [ qw/commons-lang/ ], ); for my $jar (keys %need_jars) { @@ -342,6 +357,7 @@ for my $jar (keys %need_jars) { / ], 'lb.client-java' => [ qw/ lb.types:B + lb.ws-interface:B jobid.api-java / ], 'lb.common' => [ qw/ @@ -351,17 +367,18 @@ for my $jar (keys %need_jars) { 'lb.doc' => [ qw/lb.types:B/ ], 'lb.logger' => [ qw/ lbjp-common.trio + lbjp-common.log jobid.api-c lb.common security.gss / ], 'lb.server' => [ qw/ lb.ws-interface lb.types:B lb.common lb.state-machine - lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir + lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir lbjp-common.log jobid.api-c security.gsoap-plugin security.gss / ], - 'lb.state-machine' => [ qw/lb.common lbjp-common.jp-interface security.gss/ ], + 'lb.state-machine' => [ qw/lb.types:B lb.common lbjp-common.jp-interface security.gss/ ], 'lb.utils' => [ qw/ lbjp-common.jp-interface jobid.api-c @@ -371,6 +388,10 @@ for my $jar (keys %need_jars) { 'lb.ws-test' => [ qw/security.gsoap-plugin lb.ws-interface/ ], 'lb.ws-interface' => [ qw/lb.types:B/ ], 'lb.types' => [ qw// ], + 'lb.harvester' => [ qw/ + jobid.api-c lbjp-common.trio lbjp-common.db lb.common lb.client + security.gss + / ], 'lbjp-common.db' => [ qw/lbjp-common.trio/ ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], @@ -428,7 +449,7 @@ for my $ext (keys %deps_aux) { jpclient => 'jp.client', ); -my @t = qw/lb.client-java jobid.api-java lb.types/; +my @t = qw/lb.client-java jobid.api-java lb.types lbjp-common.log/; @topbuild{@t} = (1) x ($#t+1); } @@ -443,10 +464,10 @@ sub mkinc my %aux; undef %aux; my @m=qw/ -lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java +lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java lb.harvester security.gss security.gsoap-plugin jobid.api-c jobid.api-cpp jobid.api-java -lbjp-common.db lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface +lbjp-common.db lbjp-common.log lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface jp.client jp.doc jp.index jp.primary jp.server-common jp.ws-interface /; @aux{@m} = (1) x ($#m+1); @@ -480,6 +501,7 @@ PREFIX = $prefix stagedir = $stagedir thrflavour = $thrflavour nothrflavour = $nothrflavour +libdir = $libdir }; for (@{$need_externs{$short}}) { @@ -508,6 +530,7 @@ BEGIN{ voms=>'org.glite.security.voms-api-cpp', gridsite=>'org.gridsite.shared', lcas=>'org.glite.security.lcas', + trustmanager=>'org.glite.security.trustmanager', ); %etics_projects = ( vdt=>[qw/globus globus_essentials/], @@ -545,8 +568,10 @@ sub mode_etics { @ge{@{$etics_projects{'org.glite'}}} = (1) x ($#{$etics_projects{'org.glite'}}+1); for (@{$need_externs{"$subsys.$module"}}) { + if ($need_externs_type{"$subsys.$module"}->{$_}=~/B/) { my $eext = $etics_externs{$_} ? $etics_externs{$_} : $_; push @copts,$ge{$_} ? "--with-$_=\${stageDir}" : "--with-$_=\${$eext.location}"; + } } for (@{$need_jars{"$subsys.$module"}}) { @@ -599,7 +624,7 @@ init = None install = make install clean = make clean test = make check -configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --module $subsys.$module @copts +configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --libdir=\${libdir} --module $subsys.$module @copts checkstyle = None [Platform-default:Property] @@ -658,6 +683,7 @@ General options (defaults in []): --thrflavour=flavour --nothrflavour=flavour threaded and non-treaded flavours [gcc64dbgpthr,gcc64dbg] --listmodules=subsys list modules of a subsystem + --libdir=libdir typically [lib,lib64] postfix Mode of operation: --mode={checkout|build|etics} what to do [build] diff --git a/org.glite.lb.common/interface/mini_http.h b/org.glite.lb.common/interface/mini_http.h index 0096568..72c9f8c 100644 --- a/org.glite.lb.common/interface/mini_http.h +++ b/org.glite.lb.common/interface/mini_http.h @@ -25,6 +25,7 @@ /* subset of HTTP codes we return */ #define HTTP_OK 200 +#define HTTP_ACCEPTED 202 #define HTTP_BADREQ 400 #define HTTP_UNAUTH 401 #define HTTP_NOTFOUND 404 diff --git a/org.glite.lb.common/interface/query_rec.h b/org.glite.lb.common/interface/query_rec.h index 3498a01..c8d302d 100644 --- a/org.glite.lb.common/interface/query_rec.h +++ b/org.glite.lb.common/interface/query_rec.h @@ -148,6 +148,9 @@ typedef struct _edg_wll_PurgeRequest { #define EDG_WLL_PURGE_SERVER_DUMP 4 /** TODO: stream the dump info to the client */ #define EDG_WLL_PURGE_CLIENT_DUMP 8 +/** purge the jobs on background, + nifty for the throttled purging using target_runtime */ +#define EDG_WLL_PURGE_BACKGROUND 16 /* ! when addning new constant, add it also to common/xml_conversions.c ! */ /** Desired purge estimated time. diff --git a/org.glite.lb.common/project/ChangeLog b/org.glite.lb.common/project/ChangeLog index 2f59f83..93cc697 100644 --- a/org.glite.lb.common/project/ChangeLog +++ b/org.glite.lb.common/project/ChangeLog @@ -33,3 +33,15 @@ - Connection pool for notifications. - Enable reading collection events in performance tests +7.0.2-1 +- don't use hard-wired types for ACLs events but the ones generated automatically +- check mandatory events fields even if they contain enum types +- RSS time in context + +7.0.2-2 +- Makefile relies on the libdir variable +- New configure script + +7.0.3-1 +- Support for background purge funcionality + diff --git a/org.glite.lb.common/project/version.properties b/org.glite.lb.common/project/version.properties index 385e21d..753ec92 100644 --- a/org.glite.lb.common/project/version.properties +++ b/org.glite.lb.common/project/version.properties @@ -1,3 +1,3 @@ # $Header$ -module.version=7.0.1 +module.version=7.0.3 module.age=1 diff --git a/org.glite.lb.common/src/xml_conversions.c b/org.glite.lb.common/src/xml_conversions.c index 7d75088..cc8af3f 100644 --- a/org.glite.lb.common/src/xml_conversions.c +++ b/org.glite.lb.common/src/xml_conversions.c @@ -838,6 +838,14 @@ char *edg_wll_purge_flags_to_string(int flags) } else asprintf(&cflags,"%s","client_dump"); } + if (flags & EDG_WLL_PURGE_BACKGROUND) { + if (cflags) { + asprintf(&temp_cflags,"%s+%s",cflags,"background"); + free(cflags); + cflags=temp_cflags; + } + else asprintf(&cflags,"%s","background"); + } if (!cflags) cflags = strdup(""); @@ -858,6 +866,7 @@ int edg_wll_string_to_purge_flags(char *cflags) if (!strcmp(sflag,"list_jobs")) flags = flags | EDG_WLL_PURGE_LIST_JOBS; if (!strcmp(sflag,"server_dump")) flags = flags | EDG_WLL_PURGE_SERVER_DUMP; if (!strcmp(sflag,"client_dump")) flags = flags | EDG_WLL_PURGE_CLIENT_DUMP; + if (!strcmp(sflag,"background")) flags = flags | EDG_WLL_PURGE_BACKGROUND; sflag = strtok_r(NULL, "+", &last); } diff --git a/org.glite.lb.doc/configure b/org.glite.lb.doc/configure index 9a7e696..80097bd 100755 --- a/org.glite.lb.doc/configure +++ b/org.glite.lb.doc/configure @@ -26,8 +26,9 @@ my $lbjp_tag = ''; my $jp_tag = ''; my $sec_tag = ''; my $jobid_tag = ''; +my $libdir = 'lib'; -my @nodes = qw/client server logger utils client-java doc ws-test db jpprimary jpindex jpclient/; +my @nodes = qw/client server logger utils client-java doc ws-test db jpprimary jpindex jpclient harvester/; my %enable_nodes; my %disable_nodes; @@ -39,16 +40,23 @@ my %extern_prefix = ( globus => '/opt/globus', gsoap => '/usr', mysql => '/usr', + 'mysql-devel' => '', + 'mysql-server' => '', voms => '/opt/glite', gridsite => '/opt/glite', lcas => '/opt/glite', + trustmanager => '/opt/glite', ant => '/usr', jdk => '/usr', libtar => '/usr', + axis => '/usr', + log4c => '/usr', + postgresql => '/usr' ); my %jar = ( - 'commons-codec' => '/usr/share/java/commons-codec-1.3.jar', + 'commons-codec' => '/usr/share/java/commons-codec.jar', + 'commons-lang' => '/usr/share/java/commons-lang.jar', ); @@ -63,9 +71,9 @@ my %deps_type; my %topbuild; my %lbmodules = ( - 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test/], + 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test harvester/], 'security' => [qw/gss gsoap-plugin/], - 'lbjp-common' => [qw/db maildir server-bones trio jp-interface/], + 'lbjp-common' => [qw/db log maildir server-bones trio jp-interface/], 'jobid' => [qw/api-c api-cpp api-java/], 'jp' => [ qw/client doc index primary server-common ws-interface/ ], ); @@ -88,6 +96,7 @@ my @opts = ( 'security-tag=s' => \$sec_tag, 'jobid-tag=s' => \$jobid_tag, 'help' => \$help, + 'libdir=s' => \$libdir, ); for (@nodes) { @@ -105,6 +114,9 @@ my @keeparg = @ARGV; GetOptions @opts or die "Errors parsing command line\n"; +$extern_prefix{'mysql-devel'}=$extern_prefix{mysql} if $extern_prefix{'mysql-devel'} eq ''; +$extern_prefix{'mysql-server'}=$extern_prefix{mysql} if $extern_prefix{'mysql-server'} eq ''; + if ($help) { usage(); exit 0; } if ($listmodules) { @@ -286,17 +298,19 @@ sub mode_checkout() { BEGIN{ %need_externs_aux = ( 'lb.client' => [ qw/cppunit:B classads/ ], - 'lb.client-java' => [ qw/ant:B/ ], + 'lb.client-java' => [ qw/ant:B jdk:B axis:B trustmanager/ ], 'lb.common' => [ qw/expat cppunit:B classads/ ], 'lb.doc' => [], - 'lb.logger' => [ qw/cppunit:B/ ], - 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql cppunit:B gsoap:B classads voms lcas gridsite/ ], + 'lb.logger' => [ qw/cppunit:B log4c/ ], + 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql:R mysql-server:R mysql-devel:B cppunit:B gsoap:B classads voms lcas gridsite log4c/ ], 'lb.state-machine' => [ qw/classads/ ], 'lb.utils' => [ qw/cppunit:B/ ], 'lb.ws-interface' => [], 'lb.ws-test' => [ qw/gsoap:B/ ], 'lb.types' => [ qw// ], - 'lbjp-common.db' => [ qw/mysql/ ], + 'lb.harvester' => [ qw/postgresql:R/ ], + 'lbjp-common.db' => [ qw/mysql:B mysql-devel:B postgresql:B/ ], + 'lbjp-common.log' => [ qw// ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], 'lbjp-common.trio' => [ qw/cppunit:B/ ], @@ -325,6 +339,7 @@ for my $ext (keys %need_externs_aux) { %need_jars = ( 'jobid.api-java' => [ qw/commons-codec/ ], + 'lb.client-java' => [ qw/commons-lang/ ], ); for my $jar (keys %need_jars) { @@ -342,6 +357,7 @@ for my $jar (keys %need_jars) { / ], 'lb.client-java' => [ qw/ lb.types:B + lb.ws-interface:B jobid.api-java / ], 'lb.common' => [ qw/ @@ -351,17 +367,18 @@ for my $jar (keys %need_jars) { 'lb.doc' => [ qw/lb.types:B/ ], 'lb.logger' => [ qw/ lbjp-common.trio + lbjp-common.log jobid.api-c lb.common security.gss / ], 'lb.server' => [ qw/ lb.ws-interface lb.types:B lb.common lb.state-machine - lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir + lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir lbjp-common.log jobid.api-c security.gsoap-plugin security.gss / ], - 'lb.state-machine' => [ qw/lb.common lbjp-common.jp-interface security.gss/ ], + 'lb.state-machine' => [ qw/lb.types:B lb.common lbjp-common.jp-interface security.gss/ ], 'lb.utils' => [ qw/ lbjp-common.jp-interface jobid.api-c @@ -371,6 +388,10 @@ for my $jar (keys %need_jars) { 'lb.ws-test' => [ qw/security.gsoap-plugin lb.ws-interface/ ], 'lb.ws-interface' => [ qw/lb.types:B/ ], 'lb.types' => [ qw// ], + 'lb.harvester' => [ qw/ + jobid.api-c lbjp-common.trio lbjp-common.db lb.common lb.client + security.gss + / ], 'lbjp-common.db' => [ qw/lbjp-common.trio/ ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], @@ -428,7 +449,7 @@ for my $ext (keys %deps_aux) { jpclient => 'jp.client', ); -my @t = qw/lb.client-java jobid.api-java lb.types/; +my @t = qw/lb.client-java jobid.api-java lb.types lbjp-common.log/; @topbuild{@t} = (1) x ($#t+1); } @@ -443,10 +464,10 @@ sub mkinc my %aux; undef %aux; my @m=qw/ -lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java +lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java lb.harvester security.gss security.gsoap-plugin jobid.api-c jobid.api-cpp jobid.api-java -lbjp-common.db lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface +lbjp-common.db lbjp-common.log lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface jp.client jp.doc jp.index jp.primary jp.server-common jp.ws-interface /; @aux{@m} = (1) x ($#m+1); @@ -480,6 +501,7 @@ PREFIX = $prefix stagedir = $stagedir thrflavour = $thrflavour nothrflavour = $nothrflavour +libdir = $libdir }; for (@{$need_externs{$short}}) { @@ -508,6 +530,7 @@ BEGIN{ voms=>'org.glite.security.voms-api-cpp', gridsite=>'org.gridsite.shared', lcas=>'org.glite.security.lcas', + trustmanager=>'org.glite.security.trustmanager', ); %etics_projects = ( vdt=>[qw/globus globus_essentials/], @@ -545,8 +568,10 @@ sub mode_etics { @ge{@{$etics_projects{'org.glite'}}} = (1) x ($#{$etics_projects{'org.glite'}}+1); for (@{$need_externs{"$subsys.$module"}}) { + if ($need_externs_type{"$subsys.$module"}->{$_}=~/B/) { my $eext = $etics_externs{$_} ? $etics_externs{$_} : $_; push @copts,$ge{$_} ? "--with-$_=\${stageDir}" : "--with-$_=\${$eext.location}"; + } } for (@{$need_jars{"$subsys.$module"}}) { @@ -599,7 +624,7 @@ init = None install = make install clean = make clean test = make check -configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --module $subsys.$module @copts +configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --libdir=\${libdir} --module $subsys.$module @copts checkstyle = None [Platform-default:Property] @@ -658,6 +683,7 @@ General options (defaults in []): --thrflavour=flavour --nothrflavour=flavour threaded and non-treaded flavours [gcc64dbgpthr,gcc64dbg] --listmodules=subsys list modules of a subsystem + --libdir=libdir typically [lib,lib64] postfix Mode of operation: --mode={checkout|build|etics} what to do [build] diff --git a/org.glite.lb.doc/examples/Makefile b/org.glite.lb.doc/examples/Makefile index 967e07a..fc99f0a 100644 --- a/org.glite.lb.doc/examples/Makefile +++ b/org.glite.lb.doc/examples/Makefile @@ -1,8 +1,16 @@ glite_location:=${GLITE_LOCATION} glite_prefix:=${glite_location} -nothrflavour=gcc32dbg -thrflavour=gcc32dbgpthr +host_cpu:=${shell uname -m} +ifeq (${host_cpu},x86_64) + LDFLAGS:=-L${glite_prefix}/lib64 -L${glite_prefix}/lib + nothrflavour=gcc64dbg + thrflavour=gcc64dbgpthr +else + LDFLAGS:=-L${glite_prefix}/lib + nothrflavour=gcc32dbg + thrflavour=gcc32dbgpthr +endif CC:=gcc CXX:=g++ @@ -24,13 +32,6 @@ CFLAGS:=${DEBUG} \ CXXFLAGS:=${CFLAGS} -host_cpu:=${shell uname -m} -ifeq (${host_cpu},x86_64) - LDFLAGS:=-L${glite_prefix}/lib64 -else - LDFLAGS:=-L${glite_prefix}/lib -endif - COMPILE:=libtool --mode=compile ${CC} ${CFLAGS} CXXCOMPILE:=libtool --mode=compile ${CXX} ${CXXFLAGS} LINK:=libtool --mode=link ${CC} ${LDFLAGS} diff --git a/org.glite.lb.doc/examples/notif_example.c b/org.glite.lb.doc/examples/notif_example.c index 3e9bb2d..1d4f931 100644 --- a/org.glite.lb.doc/examples/notif_example.c +++ b/org.glite.lb.doc/examples/notif_example.c @@ -72,7 +72,7 @@ int main(int argc, char *argv[]) /*register*/ if (edg_wll_NotifNew(ctx, (edg_wll_QueryRec const* const*)conditions, - -1, NULL, ¬if_id, &valid)) { + 0, -1, NULL, ¬if_id, &valid)) { char *et,*ed; edg_wll_Error(ctx,&et,&ed); diff --git a/org.glite.lb.doc/project/ChangeLog b/org.glite.lb.doc/project/ChangeLog index 7b8a651..6256048 100644 --- a/org.glite.lb.doc/project/ChangeLog +++ b/org.glite.lb.doc/project/ChangeLog @@ -15,3 +15,6 @@ - TestPlan updates - Updates in other sections +1.0.3-1 +- Updates to the User Guide, Admin Guide and Test Plan Test Suite Documentation + diff --git a/org.glite.lb.doc/project/version.properties b/org.glite.lb.doc/project/version.properties index 67ab76c..8d5cbdb 100644 --- a/org.glite.lb.doc/project/version.properties +++ b/org.glite.lb.doc/project/version.properties @@ -1,3 +1,3 @@ # $Header$ -module.version=1.0.2 +module.version=1.0.3 module.age=1 diff --git a/org.glite.lb.doc/src/LBAG-Installation.tex b/org.glite.lb.doc/src/LBAG-Installation.tex index 760afc1..2877785 100644 --- a/org.glite.lb.doc/src/LBAG-Installation.tex +++ b/org.glite.lb.doc/src/LBAG-Installation.tex @@ -115,7 +115,7 @@ offered load. \subsubsection{Standard installation} -Install and configure OS and basic services (certificates, CAs, time synchronization, software repositories) according to the \htmladdnormallink{https://twiki.cern.ch/twiki/bin/view/LCG/GenericInstallGuide310}{https://twiki.cern.ch/twiki/bin/view/LCG/GenericInstallGuide310}. Then glite-LB metapackage from appropriate gLite software repository should be installed. +Install and configure OS and basic services (certificates, CAs, time synchronization, software repositories) according to the \htmladdnormallink{https://twiki.cern.ch/twiki/bin/view/LCG/GenericInstallGuide320}{https://twiki.cern.ch/twiki/bin/view/LCG/GenericInstallGuide320}. Then glite-LB metapackage from appropriate gLite software repository should be installed. YAIM configuration for \emph{glite-LB} node type (\texttt{/opt/glite/yaim/bin/yaim -c -s site-info.def -n glite-LB}) @@ -135,37 +135,109 @@ export data are written for use by lgcmon/R-GMA \item \texttt{GLITE\_LB\_RTM\_DN} -- DN using to get notifications from \LB server\\ (default: \texttt{heppc24.hep.ph.ic.ac.uk} machine certificate) \item \texttt{GLITE\_LB\_SUPER\_USERS} -- additional super-users (default: empty) +\item \texttt{GLITE\_LB\_TYPE} -- type of the \LB service: server, proxy, both (default: server) \end{itemize} In addition to those, YAIM LB module uses following parameters: \texttt{INSTALL\_ROOT}, \texttt{GLITE\_LOCATION\_VAR}, \texttt{GLITE\_USER}, \texttt{GLITE\_HOME\_DIR},\texttt{SITE\_EMAIL}. -\subsubsection{Migration from previous versions} +\subsubsection{Migration to a different OS version} +\label{inst:OSmigration} +Migration of a LB server to different machine is possible using +following simple procedure (just file copy of the MySQL database). We +tested the migration from SL4 32bit (mysql 4.1.22-2) to SL5 64bit +(mysql 5.0.45-7). -Although new LB server versions are backwards compatible with already -stored data (without need for conversion) usually, it is necessary to recreate -LB database from scratch or to change its database schema at some points. -Database schema changes are not (currently) performed automatically -during YAIM configuration since they take a lot time and temporary disk -space. +Steps: +\begin{itemize} +\item \emph{Prepare a new machine.} The new machine must get the same hostname + as the old machine had. It is a part of job ids stored in the database. +\item \emph{Move data.} Just stop the MySQL server and move + \verb'/var/lib/mysql' data directory directly to the target machine. +\item \emph{(optional) Restore file contexts.} You may need to restore file + contexts in case of enabled SELinux. For example, commands on the target + machine: + \begin{verbatim} + service mysqld stop + cd /var/lib + tar xf /tmp/lb.tar + restorecond -R mysql + service mysqld start + \end{verbatim} +\end{itemize} -There were two such notable upgrades: +\subsubsection{Migration of database to support transactions} +Started from version 1.4.3 of the \texttt{glite-lb-server} +package, the \LB server introduced optional use of database +transactions for \LB database updates in order to improve their +performace. This feature is switched on by default when underlying +MySQL database uses transactional InnoDB tables. For new +installations, YAIM configuration process will create transactional +database automatically. For existing LB server database the migration +process is not automatically handled. + +Note: If you want to add transaction when migrating to \LB 2.0 skip +this section and use \LB 2.0 migration procedure. The migration of +database to support transactions is included in \LB 2.0 migration procedure. + +Steps: \begin{itemize} -\item Version 1.4.3 of \texttt{glite-lb-server} package. This \LB server version introduced optional use of database transactions for \LB database updates in order to improve their performace. This feature is switched on by default when underlaying MySQL database uses transactional InnoDB tables. For new installations, YAIM configuration process will create transactional database automatically. Existing databases can be converted using provided SQL command script: -\begin{quote} -\begin{verbatim} + \item \emph{Stop the server.} Stop both a \LB server and a MySQL + server. Making a fresh backup copy of database is a good idea. + \item \emph{Database conversion.} Use provided SQL script: + \begin{quote} + \begin{verbatim} mysql -u lbserver lbserver20 \ interlogger protocol, events are stored in files (stresslog behaves like logd) - TODO: pro toto neni funkce v producerske knihovne +% TODO: pro toto neni funkce v producerske knihovne 2) interlogger reads events from event files created by stresslog (by recovery thread) 3) stresslog stores events to files and every n-th diff --git a/org.glite.lb.doc/src/LBTP-Tests.tex b/org.glite.lb.doc/src/LBTP-Tests.tex index 2c3642c..b63c146 100644 --- a/org.glite.lb.doc/src/LBTP-Tests.tex +++ b/org.glite.lb.doc/src/LBTP-Tests.tex @@ -170,13 +170,13 @@ events (e.g. destination computing element) wrt. the values reported in the job -\subsubsection{Non-simple job states} -\TODO{dags, collections, their states and states (and histogram) of their children/subjobs, ...} +%\subsubsection{Non-simple job states} +%\TODO{dags, collections, their states and states (and histogram) of their children/subjobs, ...} -\subsection{Query tests} -\TODO{query all my jobs, query one job, query with some structured conditions, some other queries that caused problems in the past, ...} +%\subsection{Query tests} +%\TODO{query all my jobs, query one job, query with some structured conditions, some other queries that caused problems in the past, ...} \subsection{LB server and proxy combined test} @@ -216,7 +216,7 @@ are really purged from the proxy. \subsection{WS interface} -\TODO{fila, valtri: tests using Java example} +%\TODO{fila, valtri: tests using Java example} \req\ \path{glite-lb-bkserverd} running, events from \ref{normal} logged \what\ retrieve both events and job states with the \LB\ WS interface @@ -231,13 +231,13 @@ are really purged from the proxy. -\subsection{HTML interface} -\TODO{fila: query tests using wget/curl} +%\subsection{HTML interface} +%\TODO{fila: query tests using wget/curl} -\subsection{Change ACL} -\TODO{kouril: to be added later with new authz schema} +%\subsection{Change ACL} +%\TODO{kouril: to be added later with new authz schema} @@ -353,7 +353,6 @@ immediately. \subsection{Server purge} -\TODO{ljocha, valtri: ozivit skript i text} \textbf{WARNING: This test is destructive, it destroys ALL data in an existing \LB\ database.} diff --git a/org.glite.lb.doc/src/LBTP.tex b/org.glite.lb.doc/src/LBTP.tex index e30fa0d..c1750c0 100644 --- a/org.glite.lb.doc/src/LBTP.tex +++ b/org.glite.lb.doc/src/LBTP.tex @@ -4,7 +4,7 @@ \input{definitions} \title{Logging and Bookkeeping} -\Subtitle{Test Plan} +\Subtitle{Test Plan Test Suite Documentation} \author{CESNET EGEE III JRA1 and SA3 team} \DocIdentifier{glite-lb-doc-tp-\version} \DeliverableId{} diff --git a/org.glite.lb.logger/config/startup b/org.glite.lb.logger/config/startup index 814f9b8..9104144 100755 --- a/org.glite.lb.logger/config/startup +++ b/org.glite.lb.logger/config/startup @@ -12,10 +12,19 @@ GLITE_LOCATION_VAR=${GLITE_LOCATION_VAR:-$GLITE_LOCATION/var} [ -f $HOME/.glite.conf ] && . $HOME/.glite.conf +LL_PIDFILE=${LL_PIDFILE:-$GLITE_LOCATION_VAR/glite-lb-logd.pid} +IL_PIDFILE=${IL_PIDFILE:-$GLITE_LOCATION_VAR/glite-lb-interlogd.pid} + unset creds port start() { + case "$GLITE_LB_TYPE" in + proxy) + echo 'Not starting logd and interlogger, proxy only instance (GLITE_LB_TYPE=proxy).' + return 0 + esac + if test -z "$GLITE_USER" ;then echo 'Error: GLITE_USER is not set' echo FAILED @@ -43,21 +52,36 @@ start() echo -n Starting glite-lb-logd ... (cd /tmp && ls -f /tmp |grep ^dglogd_sock_ |xargs rm -f) su - $GLITE_USER -c "$GLITE_LOCATION/bin/glite-lb-logd \ - $creds $port $sock $fprefix" && echo " done" || echo " FAILED" + -i $LL_PIDFILE $creds $port $sock $fprefix" && echo " done" || echo " FAILED" echo -n Starting glite-lb-interlogd ... su - $GLITE_USER -c "$GLITE_LOCATION/bin/glite-lb-interlogd \ - $creds $sock $fprefix" && echo " done" || echo " FAILED" + -i $IL_PIDFILE $creds $sock $fprefix" && echo " done" || echo " FAILED" +} + +killwait() +{ + pidfile=$1 + if [ -f $pidfile ] && pid=`cat $pidfile` && kill $pid 2>/dev/null; then + cnt=0 + while ps p $pid 2>/dev/null >/dev/null; do + sleep 1; + cnt=`expr $cnt + 1` + if [ $cnt = 120 ]; then break; fi + done + if [ $cnt = 100 ]; then echo " can't stop" + else echo " done"; fi + else + echo " not running" + fi } stop() { echo -n Stopping glite-lb-logd ... - killall glite-lb-logd - echo " done" + killwait $LL_PIDFILE echo -n Stopping glite-lb-interlogd ... - killall glite-lb-interlogd - echo " done" + killwait $IL_PIDFILE } status() diff --git a/org.glite.lb.logger/configure b/org.glite.lb.logger/configure index c289773..80097bd 100755 --- a/org.glite.lb.logger/configure +++ b/org.glite.lb.logger/configure @@ -26,8 +26,9 @@ my $lbjp_tag = ''; my $jp_tag = ''; my $sec_tag = ''; my $jobid_tag = ''; +my $libdir = 'lib'; -my @nodes = qw/client server logger utils client-java doc ws-test db jpprimary jpindex jpclient/; +my @nodes = qw/client server logger utils client-java doc ws-test db jpprimary jpindex jpclient harvester/; my %enable_nodes; my %disable_nodes; @@ -40,16 +41,22 @@ my %extern_prefix = ( gsoap => '/usr', mysql => '/usr', 'mysql-devel' => '', + 'mysql-server' => '', voms => '/opt/glite', gridsite => '/opt/glite', lcas => '/opt/glite', + trustmanager => '/opt/glite', ant => '/usr', jdk => '/usr', libtar => '/usr', + axis => '/usr', + log4c => '/usr', + postgresql => '/usr' ); my %jar = ( - 'commons-codec' => '/usr/share/java/commons-codec-1.3.jar', + 'commons-codec' => '/usr/share/java/commons-codec.jar', + 'commons-lang' => '/usr/share/java/commons-lang.jar', ); @@ -64,9 +71,9 @@ my %deps_type; my %topbuild; my %lbmodules = ( - 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test/], + 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test harvester/], 'security' => [qw/gss gsoap-plugin/], - 'lbjp-common' => [qw/db maildir server-bones trio jp-interface/], + 'lbjp-common' => [qw/db log maildir server-bones trio jp-interface/], 'jobid' => [qw/api-c api-cpp api-java/], 'jp' => [ qw/client doc index primary server-common ws-interface/ ], ); @@ -89,6 +96,7 @@ my @opts = ( 'security-tag=s' => \$sec_tag, 'jobid-tag=s' => \$jobid_tag, 'help' => \$help, + 'libdir=s' => \$libdir, ); for (@nodes) { @@ -107,6 +115,7 @@ my @keeparg = @ARGV; GetOptions @opts or die "Errors parsing command line\n"; $extern_prefix{'mysql-devel'}=$extern_prefix{mysql} if $extern_prefix{'mysql-devel'} eq ''; +$extern_prefix{'mysql-server'}=$extern_prefix{mysql} if $extern_prefix{'mysql-server'} eq ''; if ($help) { usage(); exit 0; } @@ -289,17 +298,19 @@ sub mode_checkout() { BEGIN{ %need_externs_aux = ( 'lb.client' => [ qw/cppunit:B classads/ ], - 'lb.client-java' => [ qw/ant:B/ ], + 'lb.client-java' => [ qw/ant:B jdk:B axis:B trustmanager/ ], 'lb.common' => [ qw/expat cppunit:B classads/ ], 'lb.doc' => [], - 'lb.logger' => [ qw/cppunit:B/ ], - 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql cppunit:B gsoap:B classads voms lcas gridsite/ ], + 'lb.logger' => [ qw/cppunit:B log4c/ ], + 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql:R mysql-server:R mysql-devel:B cppunit:B gsoap:B classads voms lcas gridsite log4c/ ], 'lb.state-machine' => [ qw/classads/ ], 'lb.utils' => [ qw/cppunit:B/ ], 'lb.ws-interface' => [], 'lb.ws-test' => [ qw/gsoap:B/ ], 'lb.types' => [ qw// ], - 'lbjp-common.db' => [ qw/mysql:R mysql-devel:B/ ], + 'lb.harvester' => [ qw/postgresql:R/ ], + 'lbjp-common.db' => [ qw/mysql:B mysql-devel:B postgresql:B/ ], + 'lbjp-common.log' => [ qw// ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], 'lbjp-common.trio' => [ qw/cppunit:B/ ], @@ -328,6 +339,7 @@ for my $ext (keys %need_externs_aux) { %need_jars = ( 'jobid.api-java' => [ qw/commons-codec/ ], + 'lb.client-java' => [ qw/commons-lang/ ], ); for my $jar (keys %need_jars) { @@ -345,6 +357,7 @@ for my $jar (keys %need_jars) { / ], 'lb.client-java' => [ qw/ lb.types:B + lb.ws-interface:B jobid.api-java / ], 'lb.common' => [ qw/ @@ -354,17 +367,18 @@ for my $jar (keys %need_jars) { 'lb.doc' => [ qw/lb.types:B/ ], 'lb.logger' => [ qw/ lbjp-common.trio + lbjp-common.log jobid.api-c lb.common security.gss / ], 'lb.server' => [ qw/ lb.ws-interface lb.types:B lb.common lb.state-machine - lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir + lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir lbjp-common.log jobid.api-c security.gsoap-plugin security.gss / ], - 'lb.state-machine' => [ qw/lb.common lbjp-common.jp-interface security.gss/ ], + 'lb.state-machine' => [ qw/lb.types:B lb.common lbjp-common.jp-interface security.gss/ ], 'lb.utils' => [ qw/ lbjp-common.jp-interface jobid.api-c @@ -374,6 +388,10 @@ for my $jar (keys %need_jars) { 'lb.ws-test' => [ qw/security.gsoap-plugin lb.ws-interface/ ], 'lb.ws-interface' => [ qw/lb.types:B/ ], 'lb.types' => [ qw// ], + 'lb.harvester' => [ qw/ + jobid.api-c lbjp-common.trio lbjp-common.db lb.common lb.client + security.gss + / ], 'lbjp-common.db' => [ qw/lbjp-common.trio/ ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], @@ -431,7 +449,7 @@ for my $ext (keys %deps_aux) { jpclient => 'jp.client', ); -my @t = qw/lb.client-java jobid.api-java lb.types/; +my @t = qw/lb.client-java jobid.api-java lb.types lbjp-common.log/; @topbuild{@t} = (1) x ($#t+1); } @@ -446,10 +464,10 @@ sub mkinc my %aux; undef %aux; my @m=qw/ -lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java +lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java lb.harvester security.gss security.gsoap-plugin jobid.api-c jobid.api-cpp jobid.api-java -lbjp-common.db lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface +lbjp-common.db lbjp-common.log lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface jp.client jp.doc jp.index jp.primary jp.server-common jp.ws-interface /; @aux{@m} = (1) x ($#m+1); @@ -483,6 +501,7 @@ PREFIX = $prefix stagedir = $stagedir thrflavour = $thrflavour nothrflavour = $nothrflavour +libdir = $libdir }; for (@{$need_externs{$short}}) { @@ -511,6 +530,7 @@ BEGIN{ voms=>'org.glite.security.voms-api-cpp', gridsite=>'org.gridsite.shared', lcas=>'org.glite.security.lcas', + trustmanager=>'org.glite.security.trustmanager', ); %etics_projects = ( vdt=>[qw/globus globus_essentials/], @@ -604,7 +624,7 @@ init = None install = make install clean = make clean test = make check -configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --module $subsys.$module @copts +configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --libdir=\${libdir} --module $subsys.$module @copts checkstyle = None [Platform-default:Property] @@ -663,6 +683,7 @@ General options (defaults in []): --thrflavour=flavour --nothrflavour=flavour threaded and non-treaded flavours [gcc64dbgpthr,gcc64dbg] --listmodules=subsys list modules of a subsystem + --libdir=libdir typically [lib,lib64] postfix Mode of operation: --mode={checkout|build|etics} what to do [build] diff --git a/org.glite.lb.logger/doc/glite-lb-interlogd.8 b/org.glite.lb.logger/doc/glite-lb-interlogd.8 index d294ec7..68ae914 100644 --- a/org.glite.lb.logger/doc/glite-lb-interlogd.8 +++ b/org.glite.lb.logger/doc/glite-lb-interlogd.8 @@ -68,6 +68,10 @@ environment variable. Don't run as daemon (do not fork and put itself into background). .TP +.BI \-i " FILE" "\fR,\fP --pidfile " FILE +Store process id into this file rather than default /var/glite/glite-lb-[notif]-interlogd.pid + +.TP .BI \-f " PREFIX" "\fR,\fP --file-prefix " PREFIX .I PREFIX is path prefix of the event files. @@ -134,10 +138,10 @@ Print help and exit. .I /tmp/interlogger.sock Default name of local socket. .TP -.I /tmp/dglogd.log* +.I /var/glite/log/dglogd.log* Default location of event files. -.I /tmp/dglogd.log*.ctl +.I /var/glite/log/dglogd.log*.ctl Interlogger's control files keeping the information on status of the corresponding event file wrt. delivery to the target server. diff --git a/org.glite.lb.logger/doc/glite-lb-logd.8 b/org.glite.lb.logger/doc/glite-lb-logd.8 index a28529a..2a04be6 100644 --- a/org.glite.lb.logger/doc/glite-lb-logd.8 +++ b/org.glite.lb.logger/doc/glite-lb-logd.8 @@ -82,6 +82,12 @@ Send the messages to interlogger through the UNIX socket The value has to be same as used in the cooperating glite-lb-interlogd. .TP +.BI \-i " FILE" "\fR,\fP --pidfile " FILE +Store pid into +.I FILE\fR.\fP +Defaults to /var/glite/glite-lb-logd.pid. + +.TP .B "-V\fR,\fP --version" Print version and exit. @@ -115,7 +121,7 @@ Dangerous, for debugging only! Don't use at all. Default name of local socket. .TP -.I /tmp/dglogd.log* +.I /var/glite/log/dglogd.log* Default location of the event storage files. .TP No configuration files needed. diff --git a/org.glite.lb.logger/project/ChangeLog b/org.glite.lb.logger/project/ChangeLog index 1585ac6..4eae228 100644 --- a/org.glite.lb.logger/project/ChangeLog +++ b/org.glite.lb.logger/project/ChangeLog @@ -41,3 +41,11 @@ 2.0.2-1 - implemented multi-file event store, avoiding ever-growing files in the case of heavy traffic notifications + +2.0.3-1 +- Fixed handling messages with destination not set +- Additional logging output + +2.0.4-1 +- Man page update + diff --git a/org.glite.lb.logger/project/version.properties b/org.glite.lb.logger/project/version.properties index 2e61a4b..6cf7a4c 100644 --- a/org.glite.lb.logger/project/version.properties +++ b/org.glite.lb.logger/project/version.properties @@ -1,3 +1,3 @@ # $Header$ -module.version=2.0.2 +module.version=2.0.4 module.age=1 diff --git a/org.glite.lb.logger/src/il_master.c b/org.glite.lb.logger/src/il_master.c index 77838dc..d5f008f 100644 --- a/org.glite.lb.logger/src/il_master.c +++ b/org.glite.lb.logger/src/il_master.c @@ -3,6 +3,7 @@ #include #include #include +#include #include "glite/jobid/cjobid.h" #include "glite/lb/context.h" @@ -407,7 +408,7 @@ loop() int ret; if(killflg) - exit(0); + return (0); clear_error(); if((ret = input_queue_get(&msg, &offset, INPUT_TIMEOUT)) < 0) diff --git a/org.glite.lb.logger/src/interlogd.c b/org.glite.lb.logger/src/interlogd.c index afec957..7fa0509 100644 --- a/org.glite.lb.logger/src/interlogd.c +++ b/org.glite.lb.logger/src/interlogd.c @@ -10,6 +10,7 @@ #include #include #include +#include #include "interlogd.h" #include "glite/lb/log_proto.h" @@ -22,12 +23,15 @@ #if defined(IL_NOTIFICATIONS) #define DEFAULT_PREFIX "/tmp/notif_events" #define DEFAULT_SOCKET "/tmp/notif_interlogger.sock" +#define DEFAULT_PIDFILE "/var/glite/glite-lb-notif-interlogd.pid" #else #define DEFAULT_PREFIX EDG_WLL_LOG_PREFIX_DEFAULT #define DEFAULT_SOCKET "/tmp/interlogger.sock" +#define DEFAULT_PIDFILE "/var/glite/glite-lb-interlogd.pid" #endif + /* The name the program was run with, stripped of any leading path. */ char *program_name; int killflg = 0; @@ -39,6 +43,8 @@ pthread_mutex_t cred_handle_lock = PTHREAD_MUTEX_INITIALIZER; time_t key_mtime = 0, cert_mtime = 0; +static char *pidfile = DEFAULT_PIDFILE; + static void usage (int status) { printf("%s - \n" @@ -54,6 +60,7 @@ static void usage (int status) " -k, --key location of server private key\n" " -C, --CAdir directory containing CA certificates\n" " -b, --book send events to bookkeeping server only\n" + " -i, --pidfile pid file\n" " -l, --log-server specify address of log server\n" " -s, --socket non-default path of local socket\n" " -L, --lazy [] be lazy when closing connections to servers (default, timeout==0 means turn lazy off)\n" @@ -109,6 +116,7 @@ static struct option const long_options[] = {"key", required_argument, 0, 'k'}, {"book", no_argument, 0, 'b'}, {"CAdir", required_argument, 0, 'C'}, + {"pidfile", required_argument, 0, 'i'}, {"log-server", required_argument, 0, 'l'}, {"socket", required_argument, 0, 's'}, {"lazy", optional_argument, 0, 'L'}, @@ -149,6 +157,7 @@ decode_switches (int argc, char **argv) "k:" /* key */ "C:" /* CA dir */ "b" /* only bookeeping */ + "i:" /* pidfile*/ "l:" /* log server */ "d" /* debug */ "p" /* parallel */ @@ -206,6 +215,10 @@ decode_switches (int argc, char **argv) log_server = strdup(optarg); break; + case 'i': + pidfile = strdup(optarg); + break; + case 'C': CAcert_dir = strdup(optarg); break; @@ -336,6 +349,7 @@ main (int argc, char **argv) char *p; edg_wll_GssStatus gss_stat; int ret; + FILE *pidf; program_name = argv[0]; @@ -379,6 +393,13 @@ main (int argc, char **argv) exit(EXIT_FAILURE); } +/* just try it before deamonizing to be able to complain aloud */ + if (!(pidf = fopen(pidfile,"w"))) { + perror(pidfile); + exit(EXIT_FAILURE); + } + fclose(pidf); + if(!debug && (daemon(0,0) < 0)) { glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_FATAL, "Failed to daemonize itself: %s, exiting.", @@ -386,6 +407,10 @@ main (int argc, char **argv) exit(EXIT_FAILURE); } + pidf = fopen(pidfile,"w"); assert(pidf); /* XXX */ + fprintf(pidf,"%d\n",getpid()); + fclose(pidf); + #ifdef LB_PERF /* this must be called after installing signal handlers */ glite_wll_perftest_init(NULL, /* host */ @@ -468,11 +493,13 @@ main (int argc, char **argv) glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_FATAL, "Fatal error: %s", error_get_msg()); if (killflg) { input_queue_detach(); + unlink(pidfile); exit(EXIT_FAILURE); } } glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_INFO, "Done!"); input_queue_detach(); + unlink(pidfile); exit (0); } diff --git a/org.glite.lb.logger/src/interlogd.h b/org.glite.lb.logger/src/interlogd.h index 82bfc17..4c5763a 100644 --- a/org.glite.lb.logger/src/interlogd.h +++ b/org.glite.lb.logger/src/interlogd.h @@ -65,9 +65,10 @@ extern int TIMEOUT; #define INPUT_TIMEOUT (1) #define EXIT_TIMEOUT (20) #else -#define INPUT_TIMEOUT (60) +#define INPUT_TIMEOUT (5) #define EXIT_TIMEOUT (1*60) #endif +#define RECOVER_TIMEOUT (60) typedef struct cred_handle { edg_wll_GssCred creds; diff --git a/org.glite.lb.logger/src/logd.c b/org.glite.lb.logger/src/logd.c index d853d54..f9f8730 100644 --- a/org.glite.lb.logger/src/logd.c +++ b/org.glite.lb.logger/src/logd.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include "glite/lbu/log.h" @@ -24,10 +25,13 @@ #include "glite/lb/lb_perftest.h" #endif +#define DEFAULT_PIDFILE "/var/glite/glite-lb-logd.pid" + static const char rcsid[] = "@(#)$Id$"; static int debug = 0; static int port = EDG_WLL_LOG_PORT_DEFAULT; static char *prefix = EDG_WLL_LOG_PREFIX_DEFAULT; +static char *pidfile = DEFAULT_PIDFILE; static char *cert_file = NULL; static char *key_file = NULL; static char *CAcert_dir = NULL; @@ -50,6 +54,7 @@ static struct option const long_options[] = { { "cert", required_argument, 0, 'c' }, { "key", required_argument, 0, 'k' }, { "CAdir", required_argument, 0, 'C' }, + { "pidfile",required_argument, 0, 'i' }, { "socket",required_argument, 0, 's' }, { "noAuth", no_argument, 0, 'x' }, { "noIPC", no_argument, 0, 'y' }, @@ -81,6 +86,7 @@ usage(char *program_name) { "-k, --key location of server private key\n" "-C, --CAdir directory containing CA certificates\n" "-s, --socket interlogger's socket to send messages to\n" + "-i, --pidfile pid file\n" "--noAuth do not check caller's identity\n" "--noIPC do not send messages to inter-logger\n" "--noParse do not parse messages for correctness\n", @@ -150,6 +156,7 @@ void handle_signal(int num) { close(confirm_sock); unlink(confirm_sock_name); } + unlink(pidfile); exit(1); break; default: break; @@ -305,6 +312,7 @@ int main(int argc, char *argv[]) int ret; int childpid; int opt; + FILE *pidf; int listener_fd; int client_fd; @@ -334,6 +342,7 @@ This is LocalLogger, part of Workload Management System in EU DataGrid & EGEE.\n "k:" /* key */ "C:" /* CA dir */ "s:" /* socket */ + "i:" /* pidfile */ "x" /* noAuth */ "y" /* noIPC */ "z", /* noParse */ @@ -348,6 +357,7 @@ This is LocalLogger, part of Workload Management System in EU DataGrid & EGEE.\n case 'k': key_file = optarg; break; case 'C': CAcert_dir = optarg; break; case 's': socket_path = optarg; break; + case 'i': pidfile = optarg; break; case 'x': noAuth = 1; break; case 'y': noIPC = 1; break; case 'z': noParse = 1; break; @@ -430,6 +440,14 @@ This is LocalLogger, part of Workload Management System in EU DataGrid & EGEE.\n client_addr_len = sizeof(client_addr); bzero((char *) &client_addr, client_addr_len); +/* just try it before deamonizing to be able to complain aloud */ + if (!(pidf = fopen(pidfile,"w"))) { + perror(pidfile); + exit(-1); + } + fclose(pidf); + + /* daemonize */ if (debug) { glite_common_log(LOG_CATEGORY_CONTROL,LOG_PRIORITY_INFO,"Running as daemon... [no]\n"); @@ -442,6 +460,10 @@ This is LocalLogger, part of Workload Management System in EU DataGrid & EGEE.\n } } + pidf = fopen(pidfile,"w"); assert(pidf); /* XXX */ + fprintf(pidf,"%d\n",getpid()); + fclose(pidf); + /* * Main loop */ diff --git a/org.glite.lb.logger/src/recover.c b/org.glite.lb.logger/src/recover.c index 29b2e2e..0edda7e 100644 --- a/org.glite.lb.logger/src/recover.c +++ b/org.glite.lb.logger/src/recover.c @@ -69,6 +69,6 @@ recover_thread(void *q) new_creds->name); } } - sleep(INPUT_TIMEOUT); + sleep(RECOVER_TIMEOUT); } } diff --git a/org.glite.lb.server/Makefile b/org.glite.lb.server/Makefile index 20bb196..eae5528 100644 --- a/org.glite.lb.server/Makefile +++ b/org.glite.lb.server/Makefile @@ -65,7 +65,7 @@ SUFFIXES = .T DEBUG:=-g -O0 -Wall GRIDSITE_CFLAGS = -I${gridsite_prefix}/include `xml2-config --cflags` -GRIDSITE_LIBS = -L${gridsite_prefix}/${archlib} -L${gridsite_prefix}/lib -lgridsite_globus `xml2-config --libs` +GRIDSITE_LIBS = -L${gridsite_prefix}/${libdir} -L${gridsite_prefix}/lib -lgridsite_globus `xml2-config --libs` LCAS_CFLAGS=-I${lcas_prefix}/include LOG4C_CFLAGS=-I${log4c_prefix}/include @@ -127,12 +127,6 @@ XSLTPROC:=xsltproc --novalid gsoap_bin_prefix:=${shell if [ -x ${gsoap_prefix}/bin/soapcpp2 ]; then echo ${gsoap_prefix}/bin; else echo ${gsoap_prefix}; fi } -archlib:=lib -host_cpu:=${shell uname -m} -ifeq (${host_cpu},x86_64) - archlib:=lib64 -endif - ifneq (${expat_prefix},/usr) expatlib := -L${expat_prefix}/lib endif @@ -144,8 +138,8 @@ endif ifeq (${nothrflavour},gcc32dbg) vomsflavour := endif -VOMS_LIBS:=-L${voms_prefix}/${archlib} -lvomsapi${vomsflavour} -LCAS_LIBS:=-L${lcas_prefix}/${archlib} -llcas +VOMS_LIBS:=-L${voms_prefix}/${libdir} -lvomsapi${vomsflavour} +LCAS_LIBS:=-L${lcas_prefix}/${libdir} -llcas LOG4C_LIBS:=-L${log4c_prefix}/lib -llog4c #EXT_LIBS:= \ @@ -154,15 +148,20 @@ LOG4C_LIBS:=-L${log4c_prefix}/lib -llog4c # -lvomsc${vomsflavour} \ ifneq (${classads_prefix},/usr) - classadslib := -L${classads_prefix}/${archlib} -L${classads_prefix}/lib + CLASSADS_LIBS := -L${classads_prefix}/${libdir} -L${classads_prefix}/lib endif +CLASSADS_LIBS := ${CLASSADS_LIBS} -lclassad -classadslib := ${classadslib} -lclassad +ifneq (${cares_prefix},/usr) + CARES_LIBS := -L${cares_prefix}/${libdir} -L${cares_prefix}/lib +endif +CARES_LIBS := ${CARES_LIBS} -lcares EXT_LIBS:= \ - -lz -lcares\ + -lz \ ${GRIDSITE_LIBS} \ - ${classadslib} \ + ${CLASSADS_LIBS} \ + ${CARES_LIBS} \ ${LCAS_LIBS} \ ${VOMS_LIBS} \ ${LOG4C_LIBS} @@ -360,9 +359,10 @@ install: ${INSTALL} -m 755 ${LCAS_PLUGIN_LIB} ${PREFIX}/lib/modules ln -sf liblcas_lb.so ${PREFIX}/lib/modules/lcas_lb.mod - for f in dbsetup.sql dbsetup-migrate2transactions.sql index.conf.template; do \ + for f in dbsetup.sql index.conf.template; do \ ${INSTALL} -m 644 ${top_srcdir}/config/"glite-lb-$$f" ${PREFIX}/etc; \ done + ${INSTALL} -m 755 ${top_srcdir}/config/glite-lb-migrate_db2version20 ${PREFIX}/etc ${INSTALL} -m 755 ${top_srcdir}/config/startup ${PREFIX}/etc/init.d/glite-lb-bkserverd diff --git a/org.glite.lb.server/build.xml b/org.glite.lb.server/build.xml deleted file mode 100755 index ca199d2..0000000 --- a/org.glite.lb.server/build.xml +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/org.glite.lb.server/config/glite-lb-dbsetup-migrate2transactions.sql b/org.glite.lb.server/config/glite-lb-dbsetup-migrate2transactions.sql deleted file mode 100644 index 51eec7a..0000000 --- a/org.glite.lb.server/config/glite-lb-dbsetup-migrate2transactions.sql +++ /dev/null @@ -1,11 +0,0 @@ -alter table jobs engine=innodb; -alter table users engine=innodb; -alter table events engine=innodb; -alter table short_fields engine=innodb; -alter table long_fields engine=innodb; -alter table states engine=innodb; -alter table status_tags engine=innodb; -alter table server_state engine=innodb; -alter table acls engine=innodb; -alter table notif_registrations engine=innodb; -alter table notif_jobs engine=innodb; diff --git a/org.glite.lb.server/config/glite-lb-migrate_db2version20 b/org.glite.lb.server/config/glite-lb-migrate_db2version20 index b6c81b0..a547fbf 100644 --- a/org.glite.lb.server/config/glite-lb-migrate_db2version20 +++ b/org.glite.lb.server/config/glite-lb-migrate_db2version20 @@ -25,9 +25,6 @@ EOF SERVER="" PROXY="" -#default DB name (may be overriden by -d option) -DB_NAME="lbserver20" - while getopts "spd:h" OPTION do case "$OPTION" in @@ -59,6 +56,25 @@ if [ "$SERVER" -a "$PROXY" ]; then fi +# default DB name (for server or proxy, overriden by -d option) +if [ -z "$DB_NAME" ]; then + if [ "$SERVER" ]; then + DB_NAME="lbserver20" + else + DB_NAME="lbproxy" + fi +fi + + +# convert for transactions (if needed and very old DB) +for table in jobs users events short_fields long_fields states status_tags server_state acls notif_registrations notif_jobs; do + echo "SHOW CREATE TABLE $table;" | mysql -u lbserver $DB_NAME | grep -i ENGINE | grep -i InnoDB >/dev/null + if [ $? != 0 ]; then + echo "ALTER TABLE $table ENGINE=InnoDB" | mysql -u lbserver $DB_NAME + fi +done + + # add new columns mysql -u lbserver $DB_NAME -e "ALTER TABLE jobs ADD proxy bool not null" mysql -u lbserver $DB_NAME -e "ALTER TABLE jobs ADD server bool not null" diff --git a/org.glite.lb.server/config/startup b/org.glite.lb.server/config/startup index e920349..aa16a8f 100755 --- a/org.glite.lb.server/config/startup +++ b/org.glite.lb.server/config/startup @@ -19,6 +19,13 @@ GLITE_JP_LOCATION=${GLITE_JP_LOCATION:-$GLITE_LOCATION} [ -n "$GLITE_JP_IMPORTER_PIDFILE" ] && jp_importer_pidfile=$GLITE_JP_IMPORTER_PIDFILE || jp_importer_pidfile=$GLITE_LOCATION_VAR/glite-jp-importer.pid +GLITE_LB_TYPE=${GLITE_LB_TYPE:-'server'} # server, proxy, both +GLITE_LB_PROXY_SOCK=${GLITE_LB_PROXY_SOCK:-'/tmp/glite-lbproxy-ilog.sock'} +GLITE_LB_PROXY_FPREFIX=${GLITE_LB_PROXY_FPREFIX:-'/tmp/glite-lbproxy-ilog_events'} + +IL_PIDFILE=$GLITE_LOCATION_VAR/glite-lb-interlogd.pid +NOTIF_IL_PIDFILE=$GLITE_LOCATION_VAR/glite-lb-notif-interlogd.pid + unset creds port start() @@ -91,12 +98,23 @@ start() GLITE_LB_NOTIF_OTHER_OPTIONS="$GLITE_LB_NOTIF_OTHER_OPTIONS -v -d >> $GLITE_LOCATION_VAR/notif-il.log 2>&1 &" fi fi + case "$GLITE_LB_TYPE" in + proxy) + proxy="-P --proxy-il-sock $GLITE_LB_PROXY_SOCK --proxy-il-fprefix $GLITE_LB_PROXY_FPREFIX" + ;; + both) + proxy="-B --proxy-il-sock $GLITE_LB_PROXY_SOCK --proxy-il-fprefix $GLITE_LB_PROXY_FPREFIX" + ;; + *) + proxy='' + ;; + esac echo -n Starting glite-lb-bkserverd ... su - $GLITE_USER -c "$GLITE_LOCATION/bin/glite-lb-bkserverd \ --notif-il-sock=$GLITE_LB_NOTIF_SOCK \ --notif-il-fprefix=$GLITE_LB_NOTIF_FPREFIX \ - $super $creds -i $pidfile $port $wport $dumpdir $purgedir $lbreg_maildir\ + $super $creds -i $pidfile $port $wport $dumpdir $purgedir $lbreg_maildir $proxy\ $GLITE_LB_SERVER_OTHER_OPTIONS" \ && echo " done" || echo " FAILED" @@ -104,7 +122,7 @@ start() echo -n Starting glite-lb-notif-interlogd ... su - $GLITE_USER -c "$GLITE_LOCATION/bin/glite-lb-notif-interlogd \ -f $GLITE_LB_NOTIF_FPREFIX -s $GLITE_LB_NOTIF_SOCK \ - -M 10485760 \ + -i $NOTIF_IL_PIDFILE -M 10485760 \ $creds $GLITE_LB_NOTIF_OTHER_OPTIONS" && echo " done" || echo " FAILED" else echo Warning: glite-lb-notif-interlogd not installed, LB notifications will not work @@ -117,12 +135,24 @@ start() $jpps $creds $GLITE_JP_IMPORTER_ARGS" \ && echo " done" || echo " FAILED" fi + + if test x"$GLITE_LB_TYPE" = x"proxy" -o x"$GLITE_LB_TYPE" = x"both" ; then + if test -x $GLITE_LOCATION/bin/glite-lb-notif-interlogd; then + echo -n Starting glite-lb-interlogd for proxy ... + su - $GLITE_USER -c "$GLITE_LOCATION/bin/glite-lb-interlogd \ + -f $GLITE_LB_PROXY_FPREFIX -s $GLITE_LB_PROXY_SOCK \ + -i $IL_PIDFILE \ + $creds $GLITE_LB_PREFIX_OTHER_OPTIONS" && echo " done" || echo " FAILED" + else + echo Warning: glite-lb-interlogd not installed, logging to LB proxy will not work + fi + fi } stop_daemon() { name="$1" - pidfile="$2" + local pidfile="$2" if [ -f "$pidfile" ]; then pid=`cat "$pidfile"` @@ -168,21 +198,29 @@ status_daemon() stop() { - echo -n Stopping glite-lb-notif-interlogd ... - killall glite-lb-notif-interlogd - echo done + LC_ALL=C + + stop_daemon glite-lb-notif-interlogd $NOTIF_IL_PIDFILE + echo " done" stop_daemon "glite-lb-bkserverd" $pidfile if test x"$GLITE_LB_EXPORT_ENABLED" = x"true"; then stop_daemon "glite-jp-importer" $jp_importer_pidfile fi + + if test -f $IL_PIDFILE; then + stop_daemon glite-lb-interlogd $IL_PIDFILE + echo "done" + else + echo "glite-lb-interlogd for proxy not running" + fi } status() { retval=0 - LC_ALL=C + if netstat -an --unix | grep "^unix .* LISTEN.* ${GLITE_LB_NOTIF_SOCK}$" >/dev/null 2>&1 ;then echo glite-lb-notif-interlogd running else @@ -190,6 +228,13 @@ status() retval=1 fi + if netstat -an --unix | grep "^unix .* LISTEN.* ${GLITE_LB_PROXY_SOCK}$" >/dev/null 2>&1 ;then + echo glite-lb-interlogd for proxy running + else + echo glite-lb-interlogd for proxy not running + retval=1 + fi + status_daemon "glite-lb-bkserverd" "$pidfile" || retval=1 if test x"$GLITE_LB_EXPORT_ENABLED" = x"true"; then status_daemon "glite-jp-importer" "$jp_importer_pidfile" || retval=1 diff --git a/org.glite.lb.server/configure b/org.glite.lb.server/configure index 9445d53..80097bd 100755 --- a/org.glite.lb.server/configure +++ b/org.glite.lb.server/configure @@ -26,8 +26,9 @@ my $lbjp_tag = ''; my $jp_tag = ''; my $sec_tag = ''; my $jobid_tag = ''; +my $libdir = 'lib'; -my @nodes = qw/client server logger utils client-java doc ws-test db jpprimary jpindex jpclient/; +my @nodes = qw/client server logger utils client-java doc ws-test db jpprimary jpindex jpclient harvester/; my %enable_nodes; my %disable_nodes; @@ -39,16 +40,23 @@ my %extern_prefix = ( globus => '/opt/globus', gsoap => '/usr', mysql => '/usr', + 'mysql-devel' => '', + 'mysql-server' => '', voms => '/opt/glite', gridsite => '/opt/glite', lcas => '/opt/glite', + trustmanager => '/opt/glite', ant => '/usr', jdk => '/usr', libtar => '/usr', + axis => '/usr', + log4c => '/usr', + postgresql => '/usr' ); my %jar = ( - 'commons-codec' => '/usr/share/java/commons-codec-1.3.jar', + 'commons-codec' => '/usr/share/java/commons-codec.jar', + 'commons-lang' => '/usr/share/java/commons-lang.jar', ); @@ -63,9 +71,9 @@ my %deps_type; my %topbuild; my %lbmodules = ( - 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test/], + 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test harvester/], 'security' => [qw/gss gsoap-plugin/], - 'lbjp-common' => [qw/db maildir server-bones trio jp-interface/], + 'lbjp-common' => [qw/db log maildir server-bones trio jp-interface/], 'jobid' => [qw/api-c api-cpp api-java/], 'jp' => [ qw/client doc index primary server-common ws-interface/ ], ); @@ -88,6 +96,7 @@ my @opts = ( 'security-tag=s' => \$sec_tag, 'jobid-tag=s' => \$jobid_tag, 'help' => \$help, + 'libdir=s' => \$libdir, ); for (@nodes) { @@ -105,6 +114,9 @@ my @keeparg = @ARGV; GetOptions @opts or die "Errors parsing command line\n"; +$extern_prefix{'mysql-devel'}=$extern_prefix{mysql} if $extern_prefix{'mysql-devel'} eq ''; +$extern_prefix{'mysql-server'}=$extern_prefix{mysql} if $extern_prefix{'mysql-server'} eq ''; + if ($help) { usage(); exit 0; } if ($listmodules) { @@ -286,17 +298,19 @@ sub mode_checkout() { BEGIN{ %need_externs_aux = ( 'lb.client' => [ qw/cppunit:B classads/ ], - 'lb.client-java' => [ qw/ant:B/ ], + 'lb.client-java' => [ qw/ant:B jdk:B axis:B trustmanager/ ], 'lb.common' => [ qw/expat cppunit:B classads/ ], 'lb.doc' => [], - 'lb.logger' => [ qw/cppunit:B/ ], - 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql cppunit:B gsoap:B classads voms lcas gridsite/ ], + 'lb.logger' => [ qw/cppunit:B log4c/ ], + 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql:R mysql-server:R mysql-devel:B cppunit:B gsoap:B classads voms lcas gridsite log4c/ ], 'lb.state-machine' => [ qw/classads/ ], 'lb.utils' => [ qw/cppunit:B/ ], 'lb.ws-interface' => [], 'lb.ws-test' => [ qw/gsoap:B/ ], 'lb.types' => [ qw// ], - 'lbjp-common.db' => [ qw/mysql/ ], + 'lb.harvester' => [ qw/postgresql:R/ ], + 'lbjp-common.db' => [ qw/mysql:B mysql-devel:B postgresql:B/ ], + 'lbjp-common.log' => [ qw// ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], 'lbjp-common.trio' => [ qw/cppunit:B/ ], @@ -325,6 +339,7 @@ for my $ext (keys %need_externs_aux) { %need_jars = ( 'jobid.api-java' => [ qw/commons-codec/ ], + 'lb.client-java' => [ qw/commons-lang/ ], ); for my $jar (keys %need_jars) { @@ -342,6 +357,7 @@ for my $jar (keys %need_jars) { / ], 'lb.client-java' => [ qw/ lb.types:B + lb.ws-interface:B jobid.api-java / ], 'lb.common' => [ qw/ @@ -351,17 +367,18 @@ for my $jar (keys %need_jars) { 'lb.doc' => [ qw/lb.types:B/ ], 'lb.logger' => [ qw/ lbjp-common.trio + lbjp-common.log jobid.api-c lb.common security.gss / ], 'lb.server' => [ qw/ lb.ws-interface lb.types:B lb.common lb.state-machine - lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir + lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir lbjp-common.log jobid.api-c security.gsoap-plugin security.gss / ], - 'lb.state-machine' => [ qw/lb.common lbjp-common.jp-interface security.gss/ ], + 'lb.state-machine' => [ qw/lb.types:B lb.common lbjp-common.jp-interface security.gss/ ], 'lb.utils' => [ qw/ lbjp-common.jp-interface jobid.api-c @@ -371,6 +388,10 @@ for my $jar (keys %need_jars) { 'lb.ws-test' => [ qw/security.gsoap-plugin lb.ws-interface/ ], 'lb.ws-interface' => [ qw/lb.types:B/ ], 'lb.types' => [ qw// ], + 'lb.harvester' => [ qw/ + jobid.api-c lbjp-common.trio lbjp-common.db lb.common lb.client + security.gss + / ], 'lbjp-common.db' => [ qw/lbjp-common.trio/ ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], @@ -428,7 +449,7 @@ for my $ext (keys %deps_aux) { jpclient => 'jp.client', ); -my @t = qw/lb.client-java jobid.api-java lb.types/; +my @t = qw/lb.client-java jobid.api-java lb.types lbjp-common.log/; @topbuild{@t} = (1) x ($#t+1); } @@ -443,10 +464,10 @@ sub mkinc my %aux; undef %aux; my @m=qw/ -lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java +lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java lb.harvester security.gss security.gsoap-plugin jobid.api-c jobid.api-cpp jobid.api-java -lbjp-common.db lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface +lbjp-common.db lbjp-common.log lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface jp.client jp.doc jp.index jp.primary jp.server-common jp.ws-interface /; @aux{@m} = (1) x ($#m+1); @@ -480,6 +501,7 @@ PREFIX = $prefix stagedir = $stagedir thrflavour = $thrflavour nothrflavour = $nothrflavour +libdir = $libdir }; for (@{$need_externs{$short}}) { @@ -508,6 +530,7 @@ BEGIN{ voms=>'org.glite.security.voms-api-cpp', gridsite=>'org.gridsite.shared', lcas=>'org.glite.security.lcas', + trustmanager=>'org.glite.security.trustmanager', ); %etics_projects = ( vdt=>[qw/globus globus_essentials/], @@ -601,7 +624,7 @@ init = None install = make install clean = make clean test = make check -configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --module $subsys.$module @copts +configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --libdir=\${libdir} --module $subsys.$module @copts checkstyle = None [Platform-default:Property] @@ -660,6 +683,7 @@ General options (defaults in []): --thrflavour=flavour --nothrflavour=flavour threaded and non-treaded flavours [gcc64dbgpthr,gcc64dbg] --listmodules=subsys list modules of a subsystem + --libdir=libdir typically [lib,lib64] postfix Mode of operation: --mode={checkout|build|etics} what to do [build] diff --git a/org.glite.lb.server/project/ChangeLog b/org.glite.lb.server/project/ChangeLog index 693d28a..62fbfb2 100644 --- a/org.glite.lb.server/project/ChangeLog +++ b/org.glite.lb.server/project/ChangeLog @@ -70,3 +70,27 @@ - Notif IL installation removed from makefile - configure script updated +2.0.2-1 +- RSS feed implementation +- Fixed notification expiry +- Fixes to ACL handling +- Fixed authorization in simple interface +- Support for JDL changes in JDL-based notifications +- Initial implementation of WS notifications + +2.0.2-2 +- build wrt. voms 1.9.8 (globus-less) + +2.0.2-3 +- Makefile relies on the libdir variable +- New configure script + +2.0.3-1 +- Updated migration script +- Memleak fixes +- Support for background purge funcionality + +2.0.4-1 +- Consider arch libdir when linking c-ares +- Checking the c-ares version, fix for c-ares >= 1.5.0. + diff --git a/org.glite.lb.server/project/configure.properties.xml b/org.glite.lb.server/project/configure.properties.xml deleted file mode 100644 index 3a73336..0000000 --- a/org.glite.lb.server/project/configure.properties.xml +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - - - - - -top_srcdir=.. -builddir=build -stagedir=${stage.abs.dir} -distdir=${dist.dir} -globalprefix=${global.prefix} -lbprefix=${subsystem.prefix} -package=${module.package.name} -PREFIX=${install.dir} -version=${module.version} -glite_location=${with.glite.location} -globus_prefix=${with.globus.prefix} -expat_prefix=${with.expat.prefix} -cares_prefix=${with.c-ares.prefix} -mysql_prefix=${with.mysql.prefix} -mysql_version=${ext.mysql.version} -cppunit_prefix=${with.cppunit.prefix} -gsoap_prefix=${with.gsoap.prefix} -gsoap_version=${ext.gsoap.version} -classads_prefix=${with.classads.prefix} -thrflavour=${with.globus.thr.flavor} -nothrflavour=${with.globus.nothr.flavor} - - - diff --git a/org.glite.lb.server/project/properties.xml b/org.glite.lb.server/project/properties.xml deleted file mode 100755 index 781ad01..0000000 --- a/org.glite.lb.server/project/properties.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/org.glite.lb.server/project/version.properties b/org.glite.lb.server/project/version.properties index 3944d0a..0051b5e 100644 --- a/org.glite.lb.server/project/version.properties +++ b/org.glite.lb.server/project/version.properties @@ -1,3 +1,3 @@ # : /cvs/jra1mw/org.glite.lb.server/project/version.properties,v 1.185 2008/06/25 13:12:58 akrenek Exp $ -module.version=2.0.1 -module.age=2 +module.version=2.0.4 +module.age=1 diff --git a/org.glite.lb.server/src/bkindex.c b/org.glite.lb.server/src/bkindex.c index acd7894..62e3ff0 100644 --- a/org.glite.lb.server/src/bkindex.c +++ b/org.glite.lb.server/src/bkindex.c @@ -406,7 +406,10 @@ static edg_wll_ErrorCode edg_wll_RefreshIColumns(edg_wll_Context ctx, void *job_ if (edg_wll_intJobStatus(ctx, jobid, 0, stat, 1, 0)) { free(stat); stat = NULL; - if (edg_wll_Error(ctx,NULL,NULL) != ENOENT) do_exit(ctx, EX_SOFTWARE); + if (edg_wll_Error(ctx,NULL,NULL) != 0) { + if (edg_wll_Error(ctx,NULL,NULL) != ENOENT) do_exit(ctx, EX_SOFTWARE); + edg_wll_ResetError(ctx); + } } } } diff --git a/org.glite.lb.server/src/bkserverd.c b/org.glite.lb.server/src/bkserverd.c index 13b724e..1fea604 100644 --- a/org.glite.lb.server/src/bkserverd.c +++ b/org.glite.lb.server/src/bkserverd.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #ifdef GLITE_LB_SERVER_WITH_WS @@ -653,6 +654,10 @@ int main(int argc, char *argv[]) #endif /* GLITE_LB_SERVER_WITH_WS */ } +#ifdef GLITE_LB_SERVER_WITH_WS + free(ws_port); + ws_port = NULL; +#endif if (mode & SERVICE_PROXY) { /* proxy stuff */ struct sockaddr_un a; @@ -725,6 +730,7 @@ int main(int argc, char *argv[]) /* Just check the database and let it be. The slaves do the job. */ edg_wll_InitContext(&ctx); if (wait_for_open(ctx, dbstring)) { + edg_wll_Close(ctx); edg_wll_FreeContext(ctx); return 1; } @@ -740,16 +746,16 @@ int main(int argc, char *argv[]) } edg_wll_Close(ctx); ctx->dbctx = NULL; - glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_INFO, "[%d]: DB '%s'", getpid(), dbstring); + glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_INFO, "DB '%s'", dbstring ? : "default"); if ((ctx->dbcaps & GLITE_LBU_DB_CAP_INDEX) == 0) { glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_FATAL, "%s: missing index support in DB layer", argv[0]); return 1; } if ((ctx->dbcaps & GLITE_LBU_DB_CAP_TRANSACTIONS) == 0) - glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_WARN, "[%d]: transactions aren't supported!", getpid()); + glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_WARN, "transactions aren't supported!"); if (transactions >= 0) { - glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_WARN, "[%d]: transactions forced from %d to %d", getpid(), ctx->dbcaps & GLITE_LBU_DB_CAP_TRANSACTIONS ? 1 : 0, transactions); + glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_WARN, "transactions forced from %d to %d", ctx->dbcaps & GLITE_LBU_DB_CAP_TRANSACTIONS ? 1 : 0, transactions); ctx->dbcaps &= ~GLITE_LBU_DB_CAP_TRANSACTIONS; ctx->dbcaps |= transactions ? GLITE_LBU_DB_CAP_TRANSACTIONS : 0; } @@ -1618,6 +1624,8 @@ static int wait_for_open(edg_wll_Context ctx, const char *dbstring) if (dbfail_string1) free(dbfail_string1); edg_wll_Error(ctx,&errt,&errd); asprintf(&dbfail_string1,"%s (%s)",errt,errd); + free(errt); + free(errd); if (dbfail_string1 != NULL) { if (dbfail_string2 == NULL || strcmp(dbfail_string1,dbfail_string2)) { if (dbfail_string2) free(dbfail_string2); @@ -1640,6 +1648,8 @@ static int wait_for_open(edg_wll_Context ctx, const char *dbstring) if (err) { edg_wll_Error(ctx,&errt,&errd); asprintf(&dbfail_string1,"%s (%s)",errt,errd); + free(errt); + free(errd); glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_ERROR, "[%d]: %s", getpid(), dbfail_string1); free(dbfail_string1); @@ -1671,7 +1681,11 @@ struct asyn_result { }; /* ares callback handler for ares_gethostbyaddr() */ +#if ARES_VERSION >= 0x010500 +static void callback_handler(void *arg, int status, int timeouts, struct hostent *h) +#else static void callback_handler(void *arg, int status, struct hostent *h) +#endif { struct asyn_result *arp = (struct asyn_result *) arg; diff --git a/org.glite.lb.server/src/db_calls.c b/org.glite.lb.server/src/db_calls.c index ab1fab8..3d4b006 100644 --- a/org.glite.lb.server/src/db_calls.c +++ b/org.glite.lb.server/src/db_calls.c @@ -48,9 +48,10 @@ int edg_wll_jobMembership(edg_wll_Context ctx, glite_jobid_const_t job) glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_ERROR, "Error retrieving proxy&server fields of jobs table. Missing column?"); edg_wll_SetError(ctx,ENOENT,dbjob); } - glite_lbu_FreeStmt(&q); clean: + glite_lbu_FreeStmt(&q); + free(res[0]); free(res[1]); free(dbjob); free(stmt); diff --git a/org.glite.lb.server/src/jobstat.c b/org.glite.lb.server/src/jobstat.c index 761d305..337b62b 100644 --- a/org.glite.lb.server/src/jobstat.c +++ b/org.glite.lb.server/src/jobstat.c @@ -197,7 +197,7 @@ int edg_wll_JobStatusServer( glite_jobid_t subjob; intJobStat js_real; char *name; - int port; + unsigned int port; js = &js_real; @@ -274,7 +274,7 @@ int edg_wll_JobStatusServer( glite_jobid_t subjob; intJobStat js_real; char *name; - int port; + unsigned int port; js = &js_real; @@ -406,6 +406,9 @@ int edg_wll_intJobStatus( edg_wll_QueryRec jqr[2]; edg_wll_QueryRec **jqra; + glite_lbu_Statement sh; + char *stmt, *out; + struct timeval ts, mints = {tv_sec:0, tv_usec:0}; /* Processing */ edg_wll_ResetError(ctx); @@ -446,10 +449,12 @@ int edg_wll_intJobStatus( if (edg_wll_QueryEventsServer(ctx,1, (const edg_wll_QueryRec **)jqra, NULL, &events)) { if (edg_wll_Error(ctx, NULL, NULL) == ENOENT) { if (edg_wll_RestoreSubjobState(ctx, job, intstat)) { - destroy_intJobStat(intstat); - free(jqra); - free(intstat->pub.owner); intstat->pub.owner = NULL; - return edg_wll_Error(ctx, NULL, NULL); + if (edg_wll_Error(ctx, NULL, NULL) != ENOENT) { + destroy_intJobStat(intstat); + free(jqra); + free(intstat->pub.owner); intstat->pub.owner = NULL; + return edg_wll_Error(ctx, NULL, NULL); + } } } else { @@ -458,25 +463,29 @@ int edg_wll_intJobStatus( return edg_wll_Error(ctx, NULL, NULL); } } - else { + edg_wll_ResetError(ctx); + + { free(jqra); - for (num_events = 0; events[num_events].type != EDG_WLL_EVENT_UNDEF; + for (num_events = 0; events && events[num_events].type != EDG_WLL_EVENT_UNDEF; num_events++); - if (num_events == 0) { - free(intstat->pub.owner); intstat->pub.owner = NULL; - return edg_wll_SetError(ctx,ENOENT,NULL); - } - for (i = 0; i < num_events; i++) { res = processEvent(intstat, &events[i], i, be_strict, &errstring); if (res == RET_FATAL || res == RET_INTERNAL) { /* !strict */ intErr = 1; break; } + ts = events[i].any.timestamp; + if (!mints.tv_sec && !mints.tv_usec + || ts.tv_sec < mints.tv_sec + || (ts.tv_sec == mints.tv_sec && ts.tv_usec < mints.tv_usec)) mints = ts; } + /* no events or status computation error */ if (intstat->pub.state == EDG_WLL_JOB_UNDEF) { intstat->pub.state = EDG_WLL_JOB_UNKNOWN; + if (num_events) intstat->pub.lastUpdateTime = mints; + else intstat->pub.lastUpdateTime.tv_sec = 1; } @@ -492,6 +501,20 @@ int edg_wll_intJobStatus( intErr = edg_wlc_JobIdDup(job, &intstat->pub.jobId); if (intErr) return edg_wll_SetError(ctx, intErr, NULL); + /* don't update status of grey jobs */ + md5_jobid = glite_jobid_getUnique(job); + trio_asprintf(&stmt, "select grey from jobs where jobid='%|Ss'", md5_jobid); + free(md5_jobid); + if (edg_wll_ExecSQL(ctx, stmt, &sh) < 0 || + (res = edg_wll_FetchRow(ctx, sh, 1, NULL, &out)) < 0) { + free(stmt); + return edg_wll_Error(ctx, NULL, NULL); + } + if (!out || strcmp(out, "0") != 0) update_db = 0; + glite_lbu_FreeStmt(&sh); + free(stmt); + free(out); + if (update_db) { int tsq = num_events - 1; if (add_fqans && tsq == 0 && ctx->fqans != NULL) { @@ -555,10 +578,12 @@ edg_wll_ErrorCode edg_wll_RestoreSubjobState( if (edg_wll_QueryEventsServer(ctx,1, (const edg_wll_QueryRec **)jc, (const edg_wll_QueryRec **)ec, &events_p)) { + glite_jobid_free(parent_job); free(jc); free(ec); return edg_wll_Error(ctx, NULL, NULL); } + glite_jobid_free(parent_job); free(jc); free(ec); @@ -650,6 +675,11 @@ static edg_wll_ErrorCode get_job_parent(edg_wll_Context ctx, glite_jobid_const_t goto err; } + if (strcmp(out, "*no parent job*") == 0) { + edg_wll_SetError(ctx,ENOENT,"No matching events found"); + goto err; + } + ret = glite_jobid_recreate((const char*) ctx->srvName, ctx->srvPort, (const char *) out, parent); diff --git a/org.glite.lb.server/src/lb_authz.c b/org.glite.lb.server/src/lb_authz.c index 48c5ea2..e5f7289 100644 --- a/org.glite.lb.server/src/lb_authz.c +++ b/org.glite.lb.server/src/lb_authz.c @@ -13,13 +13,14 @@ #include #undef WITHOUT_TRIO -#include "glite/security/voms/voms_apic.h" #include "glite/jobid/strmd5.h" #include "glite/jobid/cjobid.h" #include "glite/lbu/trio.h" #include "db_supp.h" #include +#include "glite/security/voms/voms_apic.h" + /* XXX should be defined in gridsite-gacl.h */ GRSTgaclEntry *GACLparseEntry(xmlNodePtr cur); diff --git a/org.glite.lb.server/src/lb_proto.c b/org.glite.lb.server/src/lb_proto.c index f014a6c..fbec29b 100644 --- a/org.glite.lb.server/src/lb_proto.c +++ b/org.glite.lb.server/src/lb_proto.c @@ -5,6 +5,8 @@ #include #include #include +#include +#include #include @@ -61,6 +63,8 @@ static const char* const response_headers_html[] = { NULL }; +volatile sig_atomic_t purge_quit = 0; + extern int edg_wll_NotifNewServer(edg_wll_Context, edg_wll_QueryRec const * const *, int flags, char const *, const edg_wll_NotifId, time_t *); @@ -81,6 +85,7 @@ char *edg_wll_HTTPErrorMessage(int errCode) switch (errCode) { case HTTP_OK: msg = "OK"; break; + case HTTP_ACCEPTED: msg = "Accepted"; break; case HTTP_BADREQ: msg = "Bad Request"; break; case HTTP_UNAUTH: msg = "Unauthorized"; break; case HTTP_NOTFOUND: msg = "Not Found"; break; @@ -379,6 +384,11 @@ static int getJobsRSS(edg_wll_Context ctx, char *feedType, edg_wll_JobStat **sta return 0; } +static int hup_handler(int sig) { + purge_quit = 1; + return 0; +} + edg_wll_ErrorCode edg_wll_ProtoV21(edg_wll_Context ctx, char *request,char **headers,char *messageBody, char **response,char ***headersOut,char **bodyOut) @@ -913,7 +923,9 @@ edg_wll_ErrorCode edg_wll_Proto(edg_wll_Context ctx, else if (!strncmp(requestPTR,KEY_PURGE_REQUEST,sizeof(KEY_PURGE_REQUEST)-1)) { edg_wll_PurgeRequest request; edg_wll_PurgeResult result; - int fatal = 0; + struct sigaction sa; + sigset_t sset; + int fatal = 0, retval; ctx->p_tmp_timeout.tv_sec = 86400; @@ -921,6 +933,37 @@ edg_wll_ErrorCode edg_wll_Proto(edg_wll_Context ctx, memset(&result,0,sizeof(result)); if ( !parsePurgeRequest(ctx,messageBody,(int (*)()) edg_wll_StringToStat,&request) ) { + /* do throttled purge on background if requested */ + if ((request.flags & EDG_WLL_PURGE_BACKGROUND)) { + retval = fork(); + + switch (retval) { + case 0: /* forked cleaner */ + memset(&sa, 0, sizeof(sa)); + sa.sa_handler = hup_handler; + sigaction(SIGTERM, &sa, NULL); + sigaction(SIGINT, &sa, NULL); + + sigemptyset(&sset); + sigaddset(&sset, SIGTERM); + sigaddset(&sset, SIGINT); + sigprocmask(SIG_UNBLOCK, &sset, NULL); + sigemptyset(&sset); + sigaddset(&sset, SIGCHLD); + sigprocmask(SIG_BLOCK, &sset, NULL); + break; + case -1: /* err */ + ret = HTTP_INTERNAL; + edg_wll_SetError(ctx, errno, "can't fork purge process"); + goto err; + default: /* client request handler */ + ret = HTTP_ACCEPTED; + /* to end this parent */ + edg_wll_SetError(ctx, EDG_WLL_ERROR_SERVER_RESPONSE, edg_wll_HTTPErrorMessage(ret)); + goto err; + } + } + switch ( edg_wll_PurgeServer(ctx, (const edg_wll_PurgeRequest *)&request, &result)) { case 0: if (html) ret = HTTP_NOTIMPL; else ret = HTTP_OK; @@ -949,6 +992,15 @@ edg_wll_ErrorCode edg_wll_Proto(edg_wll_Context ctx, free(result.jobs); } + /* forked cleaner sends no results */ + if ((request.flags & EDG_WLL_PURGE_BACKGROUND)) { + *response = NULL; + free(message); + message = NULL; + if (requestPTR) free(requestPTR); + exit(0); + } + } if ( request.jobs ) @@ -1196,9 +1248,9 @@ edg_wll_ErrorCode edg_wll_Proto(edg_wll_Context ctx, err: asprintf(response,"HTTP/1.1 %d %s",ret,edg_wll_HTTPErrorMessage(ret)); *headersOut = (char **) (html ? response_headers_html : response_headers_dglb); - if ((ret != HTTP_OK) && text) + if ((ret != HTTP_OK && ret != HTTP_ACCEPTED) && text) *bodyOut = edg_wll_ErrorToText(ctx,ret); - else if ((ret != HTTP_OK) && html) + else if ((ret != HTTP_OK && ret != HTTP_ACCEPTED) && html) *bodyOut = edg_wll_ErrorToHTML(ctx,ret); else *bodyOut = message; diff --git a/org.glite.lb.server/src/openserver.c b/org.glite.lb.server/src/openserver.c index e352dde..28ef18d 100644 --- a/org.glite.lb.server/src/openserver.c +++ b/org.glite.lb.server/src/openserver.c @@ -15,7 +15,7 @@ edg_wll_ErrorCode edg_wll_Open(edg_wll_Context ctx, char *cs) char *cols[20]; glite_lbu_Statement stmt; - if (glite_lbu_InitDBContext((glite_lbu_DBContext*) &ctx->dbctx, GLITE_LBU_DB_BACKEND_MYSQL) != 0) { + if (!ctx->dbctx && glite_lbu_InitDBContext((glite_lbu_DBContext*) &ctx->dbctx, GLITE_LBU_DB_BACKEND_MYSQL) != 0) { char *ed; glite_lbu_DBError(ctx->dbctx, NULL, &ed); diff --git a/org.glite.lb.server/src/purge.h b/org.glite.lb.server/src/purge.h index 35951bf..4252fdd 100644 --- a/org.glite.lb.server/src/purge.h +++ b/org.glite.lb.server/src/purge.h @@ -3,8 +3,11 @@ #ident "$Header" +#include #include "glite/lb/context.h" +extern volatile sig_atomic_t purge_quit; + /** Server side implementation * besides output to the SSL stream (in the context) it may produce * the server-side dump files diff --git a/org.glite.lb.server/src/query.c b/org.glite.lb.server/src/query.c index 4a69d8c..60e470e 100644 --- a/org.glite.lb.server/src/query.c +++ b/org.glite.lb.server/src/query.c @@ -3,6 +3,7 @@ #include #include #include +#include #include #include #include @@ -111,7 +112,7 @@ int edg_wll_QueryEventsServer( trio_asprintf(&qbase,"SELECT e.event,j.userid,j.dg_jobid,e.code," "e.prog,e.host,u.cert_subj,e.time_stamp,e.usec,e.level,e.arrived,e.seqcode " "FROM events e,users u,jobs j%s " - "WHERE %se.jobid=j.jobid AND e.userid=u.userid AND e.code != %d " + "WHERE %se.jobid=j.jobid AND j.grey=0 AND e.userid=u.userid AND e.code != %d " "%s %s %s %s %s %s", where_flags & FL_SEL_STATUS ? ",states s" : "", where_flags & FL_SEL_STATUS ? "s.jobid=j.jobid AND " : "", @@ -171,11 +172,20 @@ int edg_wll_QueryEventsServer( /* Check non-indexed event conditions */ if ( convert_event_head(ctx, res+2, out+i) || edg_wll_get_event_flesh(ctx, n, out+i) ) { - free(res[1]); - free(res[2]); - memset(out+i, 0, sizeof(*out)); - glite_lbu_FreeStmt(&sh); - goto cleanup; + char *et,*ed, *dbjob; + + /* Most likely sort of internal inconsistency. + * Must not be fatal -- just complain + */ + edg_wll_Error(ctx,&et,&ed); + + dbjob = res[2]; + fprintf(stderr,"%s event %d: %s (%s)\n",dbjob,n,et,ed); + syslog(LOG_WARNING,"%s event %d: %s (%s)",dbjob,n,et,ed); + free(et); free(ed); + edg_wll_ResetError(ctx); + + goto fetch_cycle_cleanup; } if ( !match_flesh_conditions(out+i,event_conditions) || check_strict_jobid(ctx,out[i].any.jobId) ) @@ -377,13 +387,13 @@ int edg_wll_QueryJobsServer( if ( (where_flags & FL_SEL_STATUS) ) trio_asprintf(&qbase,"SELECT DISTINCT j.dg_jobid,j.userid " - "FROM jobs j, states s WHERE j.jobid=s.jobid %s %s AND %s ORDER BY j.jobid", + "FROM jobs j, states s WHERE j.jobid=s.jobid AND j.grey=0 %s %s AND %s ORDER BY j.jobid", (job_where) ? "AND" : "", (job_where) ? job_where : "", (ctx->isProxy) ? "j.proxy='1'" : "j.server='1'"); else trio_asprintf(&qbase,"SELECT DISTINCT j.dg_jobid,j.userid " - "FROM jobs j WHERE %s %s %s " + "FROM jobs j WHERE j.grey=0 AND %s %s %s " "ORDER BY j.jobid", (job_where) ? job_where : "", (job_where) ? "AND" : "", diff --git a/org.glite.lb.server/src/srv_purge.c b/org.glite.lb.server/src/srv_purge.c index 62538f2..5bde3f7 100644 --- a/org.glite.lb.server/src/srv_purge.c +++ b/org.glite.lb.server/src/srv_purge.c @@ -9,6 +9,7 @@ #include #include #include +#include #include "glite/jobid/cjobid.h" #include "glite/lbu/trio.h" @@ -37,6 +38,8 @@ #define sizofa(a) (sizeof(a)/sizeof((a)[0])) +extern volatile sig_atomic_t purge_quit; + static const char* const resp_headers[] = { "Cache-Control: no-cache", "Server: edg_wll_Server/" PROTO_VERSION "/" COMP_PROTO, @@ -263,7 +266,7 @@ int edg_wll_PurgeServer(edg_wll_Context ctx,const edg_wll_PurgeRequest *request, if (request->jobs) { for (jobs_to_exa=0; request->jobs[jobs_to_exa]; jobs_to_exa++); - for (i=0; request->jobs[i]; i++) { + for (i=0; request->jobs[i] && !purge_quit; i++) { if (edg_wlc_JobIdParse(request->jobs[i],&job)) { glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_ERROR, "%s: parse error\n", request->jobs[i]); parse = 1; @@ -275,6 +278,7 @@ int edg_wll_PurgeServer(edg_wll_Context ctx,const edg_wll_PurgeRequest *request, } else { purge_throttle(jobs_to_exa, purge_end, &time_per_job, &target_runtime); + if (purge_quit) break; memset(&stat,0,sizeof stat); if (edg_wll_JobStatusServer(ctx,job,EDG_WLL_STAT_CHILDSTAT | EDG_WLL_STAT_CHILDREN,&stat)) { @@ -328,7 +332,7 @@ int edg_wll_PurgeServer(edg_wll_Context ctx,const edg_wll_PurgeRequest *request, if ((jobs_to_exa = edg_wll_ExecSQL(ctx, (ctx->isProxy) ? "select dg_jobid from jobs where proxy='1'" : "select dg_jobid from jobs where server='1'", &s)) < 0) goto abort; - while (edg_wll_FetchRow(ctx,s,1,NULL,&job_s) > 0) { + while (edg_wll_FetchRow(ctx,s,1,NULL,&job_s) > 0 && !purge_quit) { if (edg_wlc_JobIdParse(job_s,&job)) { glite_common_log(LOG_CATEGORY_CONTROL, LOG_PRIORITY_ERROR, "%s: parse error (internal inconsistency !)", job_s); parse = 1; @@ -342,6 +346,7 @@ int edg_wll_PurgeServer(edg_wll_Context ctx,const edg_wll_PurgeRequest *request, } purge_throttle(jobs_to_exa, purge_end, &time_per_job, &target_runtime); + if (purge_quit) break; memset(&stat,0,sizeof stat); if (edg_wll_JobStatusServer(ctx,job,EDG_WLL_STAT_CHILDSTAT | EDG_WLL_STAT_CHILDREN,&stat)) { @@ -739,10 +744,12 @@ int purge_one(edg_wll_Context ctx,edg_wll_JobStat *stat,int dump, int purge, int // get job prefix/suffix before its state is deleted if ( jobtype == EDG_WLL_NUMBER_OF_JOBTYPES) goto rollback; - if ( get_jobid_suffix(ctx, job, jobtype, &root, &suffix) ) goto rollback; - if ( get_jobid_prefix(ctx, job, jobtype, &prefix) ) goto rollback; - - + if (get_jobid_suffix(ctx, job, jobtype, &root, &suffix) + || get_jobid_prefix(ctx, job, jobtype, &prefix)) { + fprintf(stderr,"[%d] unknown job type of the '%s'.\n", getpid(), dbjob); + syslog(LOG_WARNING,"Warning: unknown job type of the '%s'", dbjob); + edg_wll_ResetError(ctx); + } } if ( purge ) @@ -766,7 +773,7 @@ int purge_one(edg_wll_Context ctx,edg_wll_JobStat *stat,int dump, int purge, int free(stmt); stmt = NULL; } - if ( purge ) + if ( purge && prefix && suffix ) { /* Store zombie prefix */ diff --git a/org.glite.lb.server/src/stats.c b/org.glite.lb.server/src/stats.c index b01c711..a302f5b 100644 --- a/org.glite.lb.server/src/stats.c +++ b/org.glite.lb.server/src/stats.c @@ -48,6 +48,8 @@ static edg_wll_Stats default_stats[] = { }; +extern int debug; + int edg_wll_InitStatistics(edg_wll_Context ctx) { edg_wll_Stats *stats = default_stats; /* XXX: hardcoded */ @@ -70,7 +72,7 @@ int edg_wll_InitStatistics(edg_wll_Context ctx) } zero = calloc(1,stats[i].grpsize); write(stats[i].fd,zero,stats[i].grpsize); - stats[i].map = mmap(NULL,sizeof zero,PROT_READ|PROT_WRITE,MAP_SHARED,stats[i].fd,0); + stats[i].map = mmap(NULL,stats[i].grpsize,PROT_READ|PROT_WRITE,MAP_SHARED,stats[i].fd,0); if (stats[i].map == MAP_FAILED) return edg_wll_SetError(ctx,errno,"mmap()"); glite_common_log(LOG_CATEGORY_LB_SERVER, LOG_PRIORITY_DEBUG, @@ -126,10 +128,27 @@ static struct edg_wll_stats_archive *archive_skip( ); } +static int stats_remap(edg_wll_Stats *stats) +{ + int newgrpno = stats->map->grpno; + dprintf(("stats_remap: size changed (%d != %d), remap",stats->grpno,newgrpno)); + munmap(stats->map,(stats->grpno ? stats->grpno : 1) * stats->grpsize); + stats->map = mmap(NULL,newgrpno * stats->grpsize, + PROT_READ|PROT_WRITE,MAP_SHARED,stats->fd,0); + if (stats->map == MAP_FAILED) { + if (debug) abort(); + return -1; + } + assert(stats->map->grpno == newgrpno); + stats->grpno = newgrpno; + return 0; +} + + static int stats_inc_counter(edg_wll_Context ctx,const edg_wll_JobStat *jobstat,edg_wll_Stats *stats) { int i,j; - char *sig; + char *sig = NULL; struct edg_wll_stats_group *g; struct edg_wll_stats_archive *a; time_t now = jobstat->stateEnterTime.tv_sec; @@ -145,17 +164,9 @@ static int stats_inc_counter(edg_wll_Context ctx,const edg_wll_JobStat *jobstat, if (flock(stats->fd,LOCK_EX)) return edg_wll_SetError(ctx,errno,"flock()"); /* remap the file if someone changed its size */ - if (stats->map->grpno != stats->grpno) { - int newgrpno = stats->map->grpno; - munmap(stats->map,(stats->grpno ? stats->grpno : 1) * stats->grpsize); - stats->map = mmap(NULL,newgrpno * stats->grpsize, - PROT_READ|PROT_WRITE,MAP_SHARED,stats->fd,0); - if (stats->map == MAP_FAILED) { - edg_wll_SetError(ctx,errno,"mmap()"); - goto cleanup; - } - assert(stats->map->grpno == newgrpno); - stats->grpno = newgrpno; + if (stats->map->grpno != stats->grpno && stats_remap(stats)) { + edg_wll_SetError(ctx,errno,"shmem remap failed"); + goto cleanup; } sig = str2md5base64(jobstat->destination); @@ -177,7 +188,7 @@ static int stats_inc_counter(edg_wll_Context ctx,const edg_wll_JobStat *jobstat, lseek(stats->fd,0,SEEK_END); write(stats->fd,zero,stats->grpsize); free(zero); - stats->map = mmap(NULL,stats->grpno * stats->grpsize, + stats->map = mmap(NULL,(stats->grpno+1) * stats->grpsize, PROT_READ|PROT_WRITE,MAP_SHARED,stats->fd,0); if (stats->map == MAP_FAILED) { @@ -307,6 +318,16 @@ int edg_wll_StateRateServer( if (!stats->type) return edg_wll_SetError(ctx,ENOENT,"no matching state counter"); + /* remap the file if someone changed its size */ + if (stats->map->grpno != stats->grpno) + { + if (flock(stats->fd,LOCK_EX)) return edg_wll_SetError(ctx,errno,"flock()"); + if (stats_remap(stats)) { + edg_wll_SetError(ctx,errno,"shmem remap failed"); + goto cleanup; + } + } + if (flock(stats->fd,LOCK_SH)) return edg_wll_SetError(ctx,errno,"flock()"); /* XXX */ @@ -319,6 +340,7 @@ int edg_wll_StateRateServer( } if (i == stats->grpno) { + dprintf(("no match: %s\n",sig)); edg_wll_SetError(ctx,ENOENT,"no matching group"); goto cleanup; } diff --git a/org.glite.lb.server/src/ws_typeref.c.T b/org.glite.lb.server/src/ws_typeref.c.T index 0c08d8c..2233e49 100644 --- a/org.glite.lb.server/src/ws_typeref.c.T +++ b/org.glite.lb.server/src/ws_typeref.c.T @@ -532,6 +532,7 @@ int edg_wll_SoapToQueryRec( edg_wll_SoapToJobStatCode(*(collection->statName), &(out->attr_id.state)); break; case EDG_WLL_QUERY_ATTR_USERTAG: + case EDG_WLL_QUERY_ATTR_JDL_ATTR: out->attr_id.tag = strdup(collection->tagName); break; default: diff --git a/org.glite.lb.state-machine/Makefile b/org.glite.lb.state-machine/Makefile index 1ba7761..fc147a7 100644 --- a/org.glite.lb.state-machine/Makefile +++ b/org.glite.lb.state-machine/Makefile @@ -8,12 +8,6 @@ package=glite-lb-state-machine version=0.2.0 PREFIX=/opt/glite -archlib:=lib -host_cpu:=${shell uname -m} -ifeq (${host_cpu},x86_64) - archlib:=lib64 -endif - -include Makefile.inc VPATH = ../src:../interface @@ -43,7 +37,7 @@ LINKXX:=libtool --mode=link ${CXX} -rpath ${stagedir}/lib ${LDFLAGS} XSLTPROC:=xsltproc --novalid ifneq (${classads_prefix},/usr) - classadslib := -L${classads_prefix}/${archlib} -L${classads_prefix}/lib + classadslib := -L${classads_prefix}/${libdir} -L${classads_prefix}/lib endif classadslib := ${classadslib} -lclassad diff --git a/org.glite.lb.state-machine/configure b/org.glite.lb.state-machine/configure index c289773..80097bd 100755 --- a/org.glite.lb.state-machine/configure +++ b/org.glite.lb.state-machine/configure @@ -26,8 +26,9 @@ my $lbjp_tag = ''; my $jp_tag = ''; my $sec_tag = ''; my $jobid_tag = ''; +my $libdir = 'lib'; -my @nodes = qw/client server logger utils client-java doc ws-test db jpprimary jpindex jpclient/; +my @nodes = qw/client server logger utils client-java doc ws-test db jpprimary jpindex jpclient harvester/; my %enable_nodes; my %disable_nodes; @@ -40,16 +41,22 @@ my %extern_prefix = ( gsoap => '/usr', mysql => '/usr', 'mysql-devel' => '', + 'mysql-server' => '', voms => '/opt/glite', gridsite => '/opt/glite', lcas => '/opt/glite', + trustmanager => '/opt/glite', ant => '/usr', jdk => '/usr', libtar => '/usr', + axis => '/usr', + log4c => '/usr', + postgresql => '/usr' ); my %jar = ( - 'commons-codec' => '/usr/share/java/commons-codec-1.3.jar', + 'commons-codec' => '/usr/share/java/commons-codec.jar', + 'commons-lang' => '/usr/share/java/commons-lang.jar', ); @@ -64,9 +71,9 @@ my %deps_type; my %topbuild; my %lbmodules = ( - 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test/], + 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test harvester/], 'security' => [qw/gss gsoap-plugin/], - 'lbjp-common' => [qw/db maildir server-bones trio jp-interface/], + 'lbjp-common' => [qw/db log maildir server-bones trio jp-interface/], 'jobid' => [qw/api-c api-cpp api-java/], 'jp' => [ qw/client doc index primary server-common ws-interface/ ], ); @@ -89,6 +96,7 @@ my @opts = ( 'security-tag=s' => \$sec_tag, 'jobid-tag=s' => \$jobid_tag, 'help' => \$help, + 'libdir=s' => \$libdir, ); for (@nodes) { @@ -107,6 +115,7 @@ my @keeparg = @ARGV; GetOptions @opts or die "Errors parsing command line\n"; $extern_prefix{'mysql-devel'}=$extern_prefix{mysql} if $extern_prefix{'mysql-devel'} eq ''; +$extern_prefix{'mysql-server'}=$extern_prefix{mysql} if $extern_prefix{'mysql-server'} eq ''; if ($help) { usage(); exit 0; } @@ -289,17 +298,19 @@ sub mode_checkout() { BEGIN{ %need_externs_aux = ( 'lb.client' => [ qw/cppunit:B classads/ ], - 'lb.client-java' => [ qw/ant:B/ ], + 'lb.client-java' => [ qw/ant:B jdk:B axis:B trustmanager/ ], 'lb.common' => [ qw/expat cppunit:B classads/ ], 'lb.doc' => [], - 'lb.logger' => [ qw/cppunit:B/ ], - 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql cppunit:B gsoap:B classads voms lcas gridsite/ ], + 'lb.logger' => [ qw/cppunit:B log4c/ ], + 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql:R mysql-server:R mysql-devel:B cppunit:B gsoap:B classads voms lcas gridsite log4c/ ], 'lb.state-machine' => [ qw/classads/ ], 'lb.utils' => [ qw/cppunit:B/ ], 'lb.ws-interface' => [], 'lb.ws-test' => [ qw/gsoap:B/ ], 'lb.types' => [ qw// ], - 'lbjp-common.db' => [ qw/mysql:R mysql-devel:B/ ], + 'lb.harvester' => [ qw/postgresql:R/ ], + 'lbjp-common.db' => [ qw/mysql:B mysql-devel:B postgresql:B/ ], + 'lbjp-common.log' => [ qw// ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], 'lbjp-common.trio' => [ qw/cppunit:B/ ], @@ -328,6 +339,7 @@ for my $ext (keys %need_externs_aux) { %need_jars = ( 'jobid.api-java' => [ qw/commons-codec/ ], + 'lb.client-java' => [ qw/commons-lang/ ], ); for my $jar (keys %need_jars) { @@ -345,6 +357,7 @@ for my $jar (keys %need_jars) { / ], 'lb.client-java' => [ qw/ lb.types:B + lb.ws-interface:B jobid.api-java / ], 'lb.common' => [ qw/ @@ -354,17 +367,18 @@ for my $jar (keys %need_jars) { 'lb.doc' => [ qw/lb.types:B/ ], 'lb.logger' => [ qw/ lbjp-common.trio + lbjp-common.log jobid.api-c lb.common security.gss / ], 'lb.server' => [ qw/ lb.ws-interface lb.types:B lb.common lb.state-machine - lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir + lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir lbjp-common.log jobid.api-c security.gsoap-plugin security.gss / ], - 'lb.state-machine' => [ qw/lb.common lbjp-common.jp-interface security.gss/ ], + 'lb.state-machine' => [ qw/lb.types:B lb.common lbjp-common.jp-interface security.gss/ ], 'lb.utils' => [ qw/ lbjp-common.jp-interface jobid.api-c @@ -374,6 +388,10 @@ for my $jar (keys %need_jars) { 'lb.ws-test' => [ qw/security.gsoap-plugin lb.ws-interface/ ], 'lb.ws-interface' => [ qw/lb.types:B/ ], 'lb.types' => [ qw// ], + 'lb.harvester' => [ qw/ + jobid.api-c lbjp-common.trio lbjp-common.db lb.common lb.client + security.gss + / ], 'lbjp-common.db' => [ qw/lbjp-common.trio/ ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], @@ -431,7 +449,7 @@ for my $ext (keys %deps_aux) { jpclient => 'jp.client', ); -my @t = qw/lb.client-java jobid.api-java lb.types/; +my @t = qw/lb.client-java jobid.api-java lb.types lbjp-common.log/; @topbuild{@t} = (1) x ($#t+1); } @@ -446,10 +464,10 @@ sub mkinc my %aux; undef %aux; my @m=qw/ -lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java +lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java lb.harvester security.gss security.gsoap-plugin jobid.api-c jobid.api-cpp jobid.api-java -lbjp-common.db lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface +lbjp-common.db lbjp-common.log lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface jp.client jp.doc jp.index jp.primary jp.server-common jp.ws-interface /; @aux{@m} = (1) x ($#m+1); @@ -483,6 +501,7 @@ PREFIX = $prefix stagedir = $stagedir thrflavour = $thrflavour nothrflavour = $nothrflavour +libdir = $libdir }; for (@{$need_externs{$short}}) { @@ -511,6 +530,7 @@ BEGIN{ voms=>'org.glite.security.voms-api-cpp', gridsite=>'org.gridsite.shared', lcas=>'org.glite.security.lcas', + trustmanager=>'org.glite.security.trustmanager', ); %etics_projects = ( vdt=>[qw/globus globus_essentials/], @@ -604,7 +624,7 @@ init = None install = make install clean = make clean test = make check -configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --module $subsys.$module @copts +configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --libdir=\${libdir} --module $subsys.$module @copts checkstyle = None [Platform-default:Property] @@ -663,6 +683,7 @@ General options (defaults in []): --thrflavour=flavour --nothrflavour=flavour threaded and non-treaded flavours [gcc64dbgpthr,gcc64dbg] --listmodules=subsys list modules of a subsystem + --libdir=libdir typically [lib,lib64] postfix Mode of operation: --mode={checkout|build|etics} what to do [build] diff --git a/org.glite.lb.state-machine/interface/intjobstat.h b/org.glite.lb.state-machine/interface/intjobstat.h index 8be7476..bb18f2f 100644 --- a/org.glite.lb.state-machine/interface/intjobstat.h +++ b/org.glite.lb.state-machine/interface/intjobstat.h @@ -14,7 +14,7 @@ /* where Z.XX is version from indent + 1 (version after commit), Y = Z+1 */ /* and DESCRIPTION is short hit why version changed */ -#define INTSTAT_VERSION "revision 2.7 - usertag sequences" +#define INTSTAT_VERSION "revision 2.8 - undef status time" // ".... MAX LENGTH 32 BYTES !! ...." // Internal error codes diff --git a/org.glite.lb.state-machine/project/ChangeLog b/org.glite.lb.state-machine/project/ChangeLog index 1cd5b58..00ba903 100644 --- a/org.glite.lb.state-machine/project/ChangeLog +++ b/org.glite.lb.state-machine/project/ChangeLog @@ -13,3 +13,11 @@ 1.0.0-5 - use hostname to identify network server rather than IP (RTM compatibility) - don't crash on null sequence codes + +1.0.0-6 +- updated configure + +1.0.0-7 +- Makefile relies on the libdir variable +- New configure script + diff --git a/org.glite.lb.state-machine/project/version.properties b/org.glite.lb.state-machine/project/version.properties index d6dea49..5fd4d01 100644 --- a/org.glite.lb.state-machine/project/version.properties +++ b/org.glite.lb.state-machine/project/version.properties @@ -1,3 +1,3 @@ # $Header$ module.version=1.0.0 -module.age=5 +module.age=7 diff --git a/org.glite.lb.types/Makefile b/org.glite.lb.types/Makefile index 22cf109..5e05b1d 100644 --- a/org.glite.lb.types/Makefile +++ b/org.glite.lb.types/Makefile @@ -12,7 +12,8 @@ default: compile compile: at3 at3: at3.in - sed "s?%PREFIX%?${stagedir}?" at3.in >$@ + #XXX: sed "s?%PREFIX%?${stagedir}?" at3.in >$@ + cp at3.in $@ stage: compile $(MAKE) install PREFIX=${stagedir} diff --git a/org.glite.lb.types/at3.in b/org.glite.lb.types/at3.in index 544b4c5..4711999 100755 --- a/org.glite.lb.types/at3.in +++ b/org.glite.lb.types/at3.in @@ -5,7 +5,9 @@ use File::Basename; my $lines = $ENV{AT3_LINES}; my $prefix; -BEGIN{ $prefix = '%PREFIX%'; } +use File::Basename; + +BEGIN{ $prefix = dirname($0)."/.."; } use lib "$prefix/share/perl"; use gLite::LB::MultiStruct; diff --git a/org.glite.lb.types/configure b/org.glite.lb.types/configure index 9a7e696..80097bd 100755 --- a/org.glite.lb.types/configure +++ b/org.glite.lb.types/configure @@ -26,8 +26,9 @@ my $lbjp_tag = ''; my $jp_tag = ''; my $sec_tag = ''; my $jobid_tag = ''; +my $libdir = 'lib'; -my @nodes = qw/client server logger utils client-java doc ws-test db jpprimary jpindex jpclient/; +my @nodes = qw/client server logger utils client-java doc ws-test db jpprimary jpindex jpclient harvester/; my %enable_nodes; my %disable_nodes; @@ -39,16 +40,23 @@ my %extern_prefix = ( globus => '/opt/globus', gsoap => '/usr', mysql => '/usr', + 'mysql-devel' => '', + 'mysql-server' => '', voms => '/opt/glite', gridsite => '/opt/glite', lcas => '/opt/glite', + trustmanager => '/opt/glite', ant => '/usr', jdk => '/usr', libtar => '/usr', + axis => '/usr', + log4c => '/usr', + postgresql => '/usr' ); my %jar = ( - 'commons-codec' => '/usr/share/java/commons-codec-1.3.jar', + 'commons-codec' => '/usr/share/java/commons-codec.jar', + 'commons-lang' => '/usr/share/java/commons-lang.jar', ); @@ -63,9 +71,9 @@ my %deps_type; my %topbuild; my %lbmodules = ( - 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test/], + 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test harvester/], 'security' => [qw/gss gsoap-plugin/], - 'lbjp-common' => [qw/db maildir server-bones trio jp-interface/], + 'lbjp-common' => [qw/db log maildir server-bones trio jp-interface/], 'jobid' => [qw/api-c api-cpp api-java/], 'jp' => [ qw/client doc index primary server-common ws-interface/ ], ); @@ -88,6 +96,7 @@ my @opts = ( 'security-tag=s' => \$sec_tag, 'jobid-tag=s' => \$jobid_tag, 'help' => \$help, + 'libdir=s' => \$libdir, ); for (@nodes) { @@ -105,6 +114,9 @@ my @keeparg = @ARGV; GetOptions @opts or die "Errors parsing command line\n"; +$extern_prefix{'mysql-devel'}=$extern_prefix{mysql} if $extern_prefix{'mysql-devel'} eq ''; +$extern_prefix{'mysql-server'}=$extern_prefix{mysql} if $extern_prefix{'mysql-server'} eq ''; + if ($help) { usage(); exit 0; } if ($listmodules) { @@ -286,17 +298,19 @@ sub mode_checkout() { BEGIN{ %need_externs_aux = ( 'lb.client' => [ qw/cppunit:B classads/ ], - 'lb.client-java' => [ qw/ant:B/ ], + 'lb.client-java' => [ qw/ant:B jdk:B axis:B trustmanager/ ], 'lb.common' => [ qw/expat cppunit:B classads/ ], 'lb.doc' => [], - 'lb.logger' => [ qw/cppunit:B/ ], - 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql cppunit:B gsoap:B classads voms lcas gridsite/ ], + 'lb.logger' => [ qw/cppunit:B log4c/ ], + 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql:R mysql-server:R mysql-devel:B cppunit:B gsoap:B classads voms lcas gridsite log4c/ ], 'lb.state-machine' => [ qw/classads/ ], 'lb.utils' => [ qw/cppunit:B/ ], 'lb.ws-interface' => [], 'lb.ws-test' => [ qw/gsoap:B/ ], 'lb.types' => [ qw// ], - 'lbjp-common.db' => [ qw/mysql/ ], + 'lb.harvester' => [ qw/postgresql:R/ ], + 'lbjp-common.db' => [ qw/mysql:B mysql-devel:B postgresql:B/ ], + 'lbjp-common.log' => [ qw// ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], 'lbjp-common.trio' => [ qw/cppunit:B/ ], @@ -325,6 +339,7 @@ for my $ext (keys %need_externs_aux) { %need_jars = ( 'jobid.api-java' => [ qw/commons-codec/ ], + 'lb.client-java' => [ qw/commons-lang/ ], ); for my $jar (keys %need_jars) { @@ -342,6 +357,7 @@ for my $jar (keys %need_jars) { / ], 'lb.client-java' => [ qw/ lb.types:B + lb.ws-interface:B jobid.api-java / ], 'lb.common' => [ qw/ @@ -351,17 +367,18 @@ for my $jar (keys %need_jars) { 'lb.doc' => [ qw/lb.types:B/ ], 'lb.logger' => [ qw/ lbjp-common.trio + lbjp-common.log jobid.api-c lb.common security.gss / ], 'lb.server' => [ qw/ lb.ws-interface lb.types:B lb.common lb.state-machine - lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir + lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir lbjp-common.log jobid.api-c security.gsoap-plugin security.gss / ], - 'lb.state-machine' => [ qw/lb.common lbjp-common.jp-interface security.gss/ ], + 'lb.state-machine' => [ qw/lb.types:B lb.common lbjp-common.jp-interface security.gss/ ], 'lb.utils' => [ qw/ lbjp-common.jp-interface jobid.api-c @@ -371,6 +388,10 @@ for my $jar (keys %need_jars) { 'lb.ws-test' => [ qw/security.gsoap-plugin lb.ws-interface/ ], 'lb.ws-interface' => [ qw/lb.types:B/ ], 'lb.types' => [ qw// ], + 'lb.harvester' => [ qw/ + jobid.api-c lbjp-common.trio lbjp-common.db lb.common lb.client + security.gss + / ], 'lbjp-common.db' => [ qw/lbjp-common.trio/ ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], @@ -428,7 +449,7 @@ for my $ext (keys %deps_aux) { jpclient => 'jp.client', ); -my @t = qw/lb.client-java jobid.api-java lb.types/; +my @t = qw/lb.client-java jobid.api-java lb.types lbjp-common.log/; @topbuild{@t} = (1) x ($#t+1); } @@ -443,10 +464,10 @@ sub mkinc my %aux; undef %aux; my @m=qw/ -lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java +lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java lb.harvester security.gss security.gsoap-plugin jobid.api-c jobid.api-cpp jobid.api-java -lbjp-common.db lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface +lbjp-common.db lbjp-common.log lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface jp.client jp.doc jp.index jp.primary jp.server-common jp.ws-interface /; @aux{@m} = (1) x ($#m+1); @@ -480,6 +501,7 @@ PREFIX = $prefix stagedir = $stagedir thrflavour = $thrflavour nothrflavour = $nothrflavour +libdir = $libdir }; for (@{$need_externs{$short}}) { @@ -508,6 +530,7 @@ BEGIN{ voms=>'org.glite.security.voms-api-cpp', gridsite=>'org.gridsite.shared', lcas=>'org.glite.security.lcas', + trustmanager=>'org.glite.security.trustmanager', ); %etics_projects = ( vdt=>[qw/globus globus_essentials/], @@ -545,8 +568,10 @@ sub mode_etics { @ge{@{$etics_projects{'org.glite'}}} = (1) x ($#{$etics_projects{'org.glite'}}+1); for (@{$need_externs{"$subsys.$module"}}) { + if ($need_externs_type{"$subsys.$module"}->{$_}=~/B/) { my $eext = $etics_externs{$_} ? $etics_externs{$_} : $_; push @copts,$ge{$_} ? "--with-$_=\${stageDir}" : "--with-$_=\${$eext.location}"; + } } for (@{$need_jars{"$subsys.$module"}}) { @@ -599,7 +624,7 @@ init = None install = make install clean = make clean test = make check -configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --module $subsys.$module @copts +configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --libdir=\${libdir} --module $subsys.$module @copts checkstyle = None [Platform-default:Property] @@ -658,6 +683,7 @@ General options (defaults in []): --thrflavour=flavour --nothrflavour=flavour threaded and non-treaded flavours [gcc64dbgpthr,gcc64dbg] --listmodules=subsys list modules of a subsystem + --libdir=libdir typically [lib,lib64] postfix Mode of operation: --mode={checkout|build|etics} what to do [build] diff --git a/org.glite.lb.utils/Makefile b/org.glite.lb.utils/Makefile index 039d5c9..b834a70 100644 --- a/org.glite.lb.utils/Makefile +++ b/org.glite.lb.utils/Makefile @@ -110,7 +110,7 @@ install: done clean: - rm -rfv ${UTILS} statistics ${MAN_GZ} ${MAN8_GZ} *.{lo,o} .libs/ + rm -rfv ${ALLUTILS} ${MAN_GZ} ${MAN8_GZ} *.{lo,o} .libs/ rm -rvf log.xml project/ rpmbuild/ RPMS/ tgz/ %.o: %.c diff --git a/org.glite.lb.utils/configure b/org.glite.lb.utils/configure index 9a7e696..80097bd 100755 --- a/org.glite.lb.utils/configure +++ b/org.glite.lb.utils/configure @@ -26,8 +26,9 @@ my $lbjp_tag = ''; my $jp_tag = ''; my $sec_tag = ''; my $jobid_tag = ''; +my $libdir = 'lib'; -my @nodes = qw/client server logger utils client-java doc ws-test db jpprimary jpindex jpclient/; +my @nodes = qw/client server logger utils client-java doc ws-test db jpprimary jpindex jpclient harvester/; my %enable_nodes; my %disable_nodes; @@ -39,16 +40,23 @@ my %extern_prefix = ( globus => '/opt/globus', gsoap => '/usr', mysql => '/usr', + 'mysql-devel' => '', + 'mysql-server' => '', voms => '/opt/glite', gridsite => '/opt/glite', lcas => '/opt/glite', + trustmanager => '/opt/glite', ant => '/usr', jdk => '/usr', libtar => '/usr', + axis => '/usr', + log4c => '/usr', + postgresql => '/usr' ); my %jar = ( - 'commons-codec' => '/usr/share/java/commons-codec-1.3.jar', + 'commons-codec' => '/usr/share/java/commons-codec.jar', + 'commons-lang' => '/usr/share/java/commons-lang.jar', ); @@ -63,9 +71,9 @@ my %deps_type; my %topbuild; my %lbmodules = ( - 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test/], + 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test harvester/], 'security' => [qw/gss gsoap-plugin/], - 'lbjp-common' => [qw/db maildir server-bones trio jp-interface/], + 'lbjp-common' => [qw/db log maildir server-bones trio jp-interface/], 'jobid' => [qw/api-c api-cpp api-java/], 'jp' => [ qw/client doc index primary server-common ws-interface/ ], ); @@ -88,6 +96,7 @@ my @opts = ( 'security-tag=s' => \$sec_tag, 'jobid-tag=s' => \$jobid_tag, 'help' => \$help, + 'libdir=s' => \$libdir, ); for (@nodes) { @@ -105,6 +114,9 @@ my @keeparg = @ARGV; GetOptions @opts or die "Errors parsing command line\n"; +$extern_prefix{'mysql-devel'}=$extern_prefix{mysql} if $extern_prefix{'mysql-devel'} eq ''; +$extern_prefix{'mysql-server'}=$extern_prefix{mysql} if $extern_prefix{'mysql-server'} eq ''; + if ($help) { usage(); exit 0; } if ($listmodules) { @@ -286,17 +298,19 @@ sub mode_checkout() { BEGIN{ %need_externs_aux = ( 'lb.client' => [ qw/cppunit:B classads/ ], - 'lb.client-java' => [ qw/ant:B/ ], + 'lb.client-java' => [ qw/ant:B jdk:B axis:B trustmanager/ ], 'lb.common' => [ qw/expat cppunit:B classads/ ], 'lb.doc' => [], - 'lb.logger' => [ qw/cppunit:B/ ], - 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql cppunit:B gsoap:B classads voms lcas gridsite/ ], + 'lb.logger' => [ qw/cppunit:B log4c/ ], + 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql:R mysql-server:R mysql-devel:B cppunit:B gsoap:B classads voms lcas gridsite log4c/ ], 'lb.state-machine' => [ qw/classads/ ], 'lb.utils' => [ qw/cppunit:B/ ], 'lb.ws-interface' => [], 'lb.ws-test' => [ qw/gsoap:B/ ], 'lb.types' => [ qw// ], - 'lbjp-common.db' => [ qw/mysql/ ], + 'lb.harvester' => [ qw/postgresql:R/ ], + 'lbjp-common.db' => [ qw/mysql:B mysql-devel:B postgresql:B/ ], + 'lbjp-common.log' => [ qw// ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], 'lbjp-common.trio' => [ qw/cppunit:B/ ], @@ -325,6 +339,7 @@ for my $ext (keys %need_externs_aux) { %need_jars = ( 'jobid.api-java' => [ qw/commons-codec/ ], + 'lb.client-java' => [ qw/commons-lang/ ], ); for my $jar (keys %need_jars) { @@ -342,6 +357,7 @@ for my $jar (keys %need_jars) { / ], 'lb.client-java' => [ qw/ lb.types:B + lb.ws-interface:B jobid.api-java / ], 'lb.common' => [ qw/ @@ -351,17 +367,18 @@ for my $jar (keys %need_jars) { 'lb.doc' => [ qw/lb.types:B/ ], 'lb.logger' => [ qw/ lbjp-common.trio + lbjp-common.log jobid.api-c lb.common security.gss / ], 'lb.server' => [ qw/ lb.ws-interface lb.types:B lb.common lb.state-machine - lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir + lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir lbjp-common.log jobid.api-c security.gsoap-plugin security.gss / ], - 'lb.state-machine' => [ qw/lb.common lbjp-common.jp-interface security.gss/ ], + 'lb.state-machine' => [ qw/lb.types:B lb.common lbjp-common.jp-interface security.gss/ ], 'lb.utils' => [ qw/ lbjp-common.jp-interface jobid.api-c @@ -371,6 +388,10 @@ for my $jar (keys %need_jars) { 'lb.ws-test' => [ qw/security.gsoap-plugin lb.ws-interface/ ], 'lb.ws-interface' => [ qw/lb.types:B/ ], 'lb.types' => [ qw// ], + 'lb.harvester' => [ qw/ + jobid.api-c lbjp-common.trio lbjp-common.db lb.common lb.client + security.gss + / ], 'lbjp-common.db' => [ qw/lbjp-common.trio/ ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], @@ -428,7 +449,7 @@ for my $ext (keys %deps_aux) { jpclient => 'jp.client', ); -my @t = qw/lb.client-java jobid.api-java lb.types/; +my @t = qw/lb.client-java jobid.api-java lb.types lbjp-common.log/; @topbuild{@t} = (1) x ($#t+1); } @@ -443,10 +464,10 @@ sub mkinc my %aux; undef %aux; my @m=qw/ -lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java +lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java lb.harvester security.gss security.gsoap-plugin jobid.api-c jobid.api-cpp jobid.api-java -lbjp-common.db lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface +lbjp-common.db lbjp-common.log lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface jp.client jp.doc jp.index jp.primary jp.server-common jp.ws-interface /; @aux{@m} = (1) x ($#m+1); @@ -480,6 +501,7 @@ PREFIX = $prefix stagedir = $stagedir thrflavour = $thrflavour nothrflavour = $nothrflavour +libdir = $libdir }; for (@{$need_externs{$short}}) { @@ -508,6 +530,7 @@ BEGIN{ voms=>'org.glite.security.voms-api-cpp', gridsite=>'org.gridsite.shared', lcas=>'org.glite.security.lcas', + trustmanager=>'org.glite.security.trustmanager', ); %etics_projects = ( vdt=>[qw/globus globus_essentials/], @@ -545,8 +568,10 @@ sub mode_etics { @ge{@{$etics_projects{'org.glite'}}} = (1) x ($#{$etics_projects{'org.glite'}}+1); for (@{$need_externs{"$subsys.$module"}}) { + if ($need_externs_type{"$subsys.$module"}->{$_}=~/B/) { my $eext = $etics_externs{$_} ? $etics_externs{$_} : $_; push @copts,$ge{$_} ? "--with-$_=\${stageDir}" : "--with-$_=\${$eext.location}"; + } } for (@{$need_jars{"$subsys.$module"}}) { @@ -599,7 +624,7 @@ init = None install = make install clean = make clean test = make check -configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --module $subsys.$module @copts +configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --libdir=\${libdir} --module $subsys.$module @copts checkstyle = None [Platform-default:Property] @@ -658,6 +683,7 @@ General options (defaults in []): --thrflavour=flavour --nothrflavour=flavour threaded and non-treaded flavours [gcc64dbgpthr,gcc64dbg] --listmodules=subsys list modules of a subsystem + --libdir=libdir typically [lib,lib64] postfix Mode of operation: --mode={checkout|build|etics} what to do [build] diff --git a/org.glite.lb.utils/doc/glite-lb-purge.8 b/org.glite.lb.utils/doc/glite-lb-purge.8 index 848efa4..4482ba0 100644 --- a/org.glite.lb.utils/doc/glite-lb-purge.8 +++ b/org.glite.lb.utils/doc/glite-lb-purge.8 @@ -71,6 +71,9 @@ Purge L&B proxy using given socket path. .IP "-t, --target-runtime \fiNNN[smhd]\fR" Throttle purge to the estimated target runtime. +.IP "-b, --background \fiN\fR" +Purge on the background. Default 1 when throttled purging. + .\".SH EXAMPLES .\"To appear :o( diff --git a/org.glite.lb.utils/project/ChangeLog b/org.glite.lb.utils/project/ChangeLog index acac258..f2508fe 100644 --- a/org.glite.lb.utils/project/ChangeLog +++ b/org.glite.lb.utils/project/ChangeLog @@ -10,3 +10,10 @@ 2.0.1-1 - purging client - 'other' jobs selection updated. +2.0.2-1 +- glite-lb-bkpurge-offline.sh deletes from events_flesh as well + +2.0.3-1 +- Man page update +- Support for background purge funcionality + diff --git a/org.glite.lb.utils/project/version.properties b/org.glite.lb.utils/project/version.properties index edb024a..368e298 100755 --- a/org.glite.lb.utils/project/version.properties +++ b/org.glite.lb.utils/project/version.properties @@ -1,3 +1,3 @@ # $Header$ -module.version=2.0.1 +module.version=2.0.3 module.age=1 diff --git a/org.glite.lb.utils/src/purge.c b/org.glite.lb.utils/src/purge.c index 4248528..9529e74 100644 --- a/org.glite.lb.utils/src/purge.c +++ b/org.glite.lb.utils/src/purge.c @@ -59,6 +59,7 @@ static struct option opts[] = { { "proxy", no_argument, NULL, 'x' }, { "sock", required_argument, NULL, 'X' }, {"target-runtime", required_argument, NULL, 't'}, + {"background", required_argument, NULL, 'b'}, { NULL, no_argument, NULL, 0 } }; @@ -81,7 +82,8 @@ static void usage(char *me) " -m, --server L&B server machine name\n" " -x, --proxy purge L&B proxy\n" " -X, --sock purge L&B proxy using default socket path\n" - " -t, --target-runtime NNN[smhd] throttle purge to the estimated target runtime\n", + " -t, --target-runtime NNN[smhd] throttle purge to the estimated target runtime\n" + " -b, --background purge on the background\n", me); } @@ -89,7 +91,7 @@ int main(int argc,char *argv[]) { edg_wll_PurgeRequest *request; edg_wll_PurgeResult *result; - int i, timeout; + int i, timeout, background; char *server = NULL; char *me; @@ -114,8 +116,9 @@ int main(int argc,char *argv[]) edg_wll_InitContext(&ctx); /* get arguments */ - while ((opt = getopt_long(argc,argv,"a:c:n:e:o:j:m:rlsidhvxX:t:",opts,NULL)) != EOF) { + while ((opt = getopt_long(argc,argv,"a:c:n:e:o:j:m:rlsidhvxX:t:b:",opts,NULL)) != EOF) { timeout=-1; + background=-1; switch (opt) { @@ -202,9 +205,15 @@ int main(int argc,char *argv[]) request->target_runtime=timeout; } break; + case 'b': + background = atoi(optarg); + break; case 'h': case '?': usage(me); return 1; } + + if ((background == -1 && request->target_runtime) || background > 0) + request->flags |= EDG_WLL_PURGE_BACKGROUND; } /* read the jobIds from file, if wanted */ diff --git a/org.glite.lb.ws-interface/configure b/org.glite.lb.ws-interface/configure index 9a7e696..80097bd 100755 --- a/org.glite.lb.ws-interface/configure +++ b/org.glite.lb.ws-interface/configure @@ -26,8 +26,9 @@ my $lbjp_tag = ''; my $jp_tag = ''; my $sec_tag = ''; my $jobid_tag = ''; +my $libdir = 'lib'; -my @nodes = qw/client server logger utils client-java doc ws-test db jpprimary jpindex jpclient/; +my @nodes = qw/client server logger utils client-java doc ws-test db jpprimary jpindex jpclient harvester/; my %enable_nodes; my %disable_nodes; @@ -39,16 +40,23 @@ my %extern_prefix = ( globus => '/opt/globus', gsoap => '/usr', mysql => '/usr', + 'mysql-devel' => '', + 'mysql-server' => '', voms => '/opt/glite', gridsite => '/opt/glite', lcas => '/opt/glite', + trustmanager => '/opt/glite', ant => '/usr', jdk => '/usr', libtar => '/usr', + axis => '/usr', + log4c => '/usr', + postgresql => '/usr' ); my %jar = ( - 'commons-codec' => '/usr/share/java/commons-codec-1.3.jar', + 'commons-codec' => '/usr/share/java/commons-codec.jar', + 'commons-lang' => '/usr/share/java/commons-lang.jar', ); @@ -63,9 +71,9 @@ my %deps_type; my %topbuild; my %lbmodules = ( - 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test/], + 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test harvester/], 'security' => [qw/gss gsoap-plugin/], - 'lbjp-common' => [qw/db maildir server-bones trio jp-interface/], + 'lbjp-common' => [qw/db log maildir server-bones trio jp-interface/], 'jobid' => [qw/api-c api-cpp api-java/], 'jp' => [ qw/client doc index primary server-common ws-interface/ ], ); @@ -88,6 +96,7 @@ my @opts = ( 'security-tag=s' => \$sec_tag, 'jobid-tag=s' => \$jobid_tag, 'help' => \$help, + 'libdir=s' => \$libdir, ); for (@nodes) { @@ -105,6 +114,9 @@ my @keeparg = @ARGV; GetOptions @opts or die "Errors parsing command line\n"; +$extern_prefix{'mysql-devel'}=$extern_prefix{mysql} if $extern_prefix{'mysql-devel'} eq ''; +$extern_prefix{'mysql-server'}=$extern_prefix{mysql} if $extern_prefix{'mysql-server'} eq ''; + if ($help) { usage(); exit 0; } if ($listmodules) { @@ -286,17 +298,19 @@ sub mode_checkout() { BEGIN{ %need_externs_aux = ( 'lb.client' => [ qw/cppunit:B classads/ ], - 'lb.client-java' => [ qw/ant:B/ ], + 'lb.client-java' => [ qw/ant:B jdk:B axis:B trustmanager/ ], 'lb.common' => [ qw/expat cppunit:B classads/ ], 'lb.doc' => [], - 'lb.logger' => [ qw/cppunit:B/ ], - 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql cppunit:B gsoap:B classads voms lcas gridsite/ ], + 'lb.logger' => [ qw/cppunit:B log4c/ ], + 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql:R mysql-server:R mysql-devel:B cppunit:B gsoap:B classads voms lcas gridsite log4c/ ], 'lb.state-machine' => [ qw/classads/ ], 'lb.utils' => [ qw/cppunit:B/ ], 'lb.ws-interface' => [], 'lb.ws-test' => [ qw/gsoap:B/ ], 'lb.types' => [ qw// ], - 'lbjp-common.db' => [ qw/mysql/ ], + 'lb.harvester' => [ qw/postgresql:R/ ], + 'lbjp-common.db' => [ qw/mysql:B mysql-devel:B postgresql:B/ ], + 'lbjp-common.log' => [ qw// ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], 'lbjp-common.trio' => [ qw/cppunit:B/ ], @@ -325,6 +339,7 @@ for my $ext (keys %need_externs_aux) { %need_jars = ( 'jobid.api-java' => [ qw/commons-codec/ ], + 'lb.client-java' => [ qw/commons-lang/ ], ); for my $jar (keys %need_jars) { @@ -342,6 +357,7 @@ for my $jar (keys %need_jars) { / ], 'lb.client-java' => [ qw/ lb.types:B + lb.ws-interface:B jobid.api-java / ], 'lb.common' => [ qw/ @@ -351,17 +367,18 @@ for my $jar (keys %need_jars) { 'lb.doc' => [ qw/lb.types:B/ ], 'lb.logger' => [ qw/ lbjp-common.trio + lbjp-common.log jobid.api-c lb.common security.gss / ], 'lb.server' => [ qw/ lb.ws-interface lb.types:B lb.common lb.state-machine - lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir + lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir lbjp-common.log jobid.api-c security.gsoap-plugin security.gss / ], - 'lb.state-machine' => [ qw/lb.common lbjp-common.jp-interface security.gss/ ], + 'lb.state-machine' => [ qw/lb.types:B lb.common lbjp-common.jp-interface security.gss/ ], 'lb.utils' => [ qw/ lbjp-common.jp-interface jobid.api-c @@ -371,6 +388,10 @@ for my $jar (keys %need_jars) { 'lb.ws-test' => [ qw/security.gsoap-plugin lb.ws-interface/ ], 'lb.ws-interface' => [ qw/lb.types:B/ ], 'lb.types' => [ qw// ], + 'lb.harvester' => [ qw/ + jobid.api-c lbjp-common.trio lbjp-common.db lb.common lb.client + security.gss + / ], 'lbjp-common.db' => [ qw/lbjp-common.trio/ ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], @@ -428,7 +449,7 @@ for my $ext (keys %deps_aux) { jpclient => 'jp.client', ); -my @t = qw/lb.client-java jobid.api-java lb.types/; +my @t = qw/lb.client-java jobid.api-java lb.types lbjp-common.log/; @topbuild{@t} = (1) x ($#t+1); } @@ -443,10 +464,10 @@ sub mkinc my %aux; undef %aux; my @m=qw/ -lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java +lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java lb.harvester security.gss security.gsoap-plugin jobid.api-c jobid.api-cpp jobid.api-java -lbjp-common.db lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface +lbjp-common.db lbjp-common.log lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface jp.client jp.doc jp.index jp.primary jp.server-common jp.ws-interface /; @aux{@m} = (1) x ($#m+1); @@ -480,6 +501,7 @@ PREFIX = $prefix stagedir = $stagedir thrflavour = $thrflavour nothrflavour = $nothrflavour +libdir = $libdir }; for (@{$need_externs{$short}}) { @@ -508,6 +530,7 @@ BEGIN{ voms=>'org.glite.security.voms-api-cpp', gridsite=>'org.gridsite.shared', lcas=>'org.glite.security.lcas', + trustmanager=>'org.glite.security.trustmanager', ); %etics_projects = ( vdt=>[qw/globus globus_essentials/], @@ -545,8 +568,10 @@ sub mode_etics { @ge{@{$etics_projects{'org.glite'}}} = (1) x ($#{$etics_projects{'org.glite'}}+1); for (@{$need_externs{"$subsys.$module"}}) { + if ($need_externs_type{"$subsys.$module"}->{$_}=~/B/) { my $eext = $etics_externs{$_} ? $etics_externs{$_} : $_; push @copts,$ge{$_} ? "--with-$_=\${stageDir}" : "--with-$_=\${$eext.location}"; + } } for (@{$need_jars{"$subsys.$module"}}) { @@ -599,7 +624,7 @@ init = None install = make install clean = make clean test = make check -configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --module $subsys.$module @copts +configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --libdir=\${libdir} --module $subsys.$module @copts checkstyle = None [Platform-default:Property] @@ -658,6 +683,7 @@ General options (defaults in []): --thrflavour=flavour --nothrflavour=flavour threaded and non-treaded flavours [gcc64dbgpthr,gcc64dbg] --listmodules=subsys list modules of a subsystem + --libdir=libdir typically [lib,lib64] postfix Mode of operation: --mode={checkout|build|etics} what to do [build] diff --git a/org.glite.lb.ws-interface/project/ChangeLog b/org.glite.lb.ws-interface/project/ChangeLog index ab3aab4..f5527f2 100644 --- a/org.glite.lb.ws-interface/project/ChangeLog +++ b/org.glite.lb.ws-interface/project/ChangeLog @@ -13,3 +13,6 @@ 3.0.0-4 - configure script update +3.0.1-1 +- Initial implementation of WS notifications + diff --git a/org.glite.lb.ws-interface/project/version.properties b/org.glite.lb.ws-interface/project/version.properties index afe81df..b2c9f7b 100755 --- a/org.glite.lb.ws-interface/project/version.properties +++ b/org.glite.lb.ws-interface/project/version.properties @@ -1,3 +1,3 @@ # $Header$ -module.version=3.0.0 -module.age=4 +module.version=3.0.1 +module.age=1 diff --git a/org.glite.lb.ws-test/configure b/org.glite.lb.ws-test/configure index 9a7e696..80097bd 100755 --- a/org.glite.lb.ws-test/configure +++ b/org.glite.lb.ws-test/configure @@ -26,8 +26,9 @@ my $lbjp_tag = ''; my $jp_tag = ''; my $sec_tag = ''; my $jobid_tag = ''; +my $libdir = 'lib'; -my @nodes = qw/client server logger utils client-java doc ws-test db jpprimary jpindex jpclient/; +my @nodes = qw/client server logger utils client-java doc ws-test db jpprimary jpindex jpclient harvester/; my %enable_nodes; my %disable_nodes; @@ -39,16 +40,23 @@ my %extern_prefix = ( globus => '/opt/globus', gsoap => '/usr', mysql => '/usr', + 'mysql-devel' => '', + 'mysql-server' => '', voms => '/opt/glite', gridsite => '/opt/glite', lcas => '/opt/glite', + trustmanager => '/opt/glite', ant => '/usr', jdk => '/usr', libtar => '/usr', + axis => '/usr', + log4c => '/usr', + postgresql => '/usr' ); my %jar = ( - 'commons-codec' => '/usr/share/java/commons-codec-1.3.jar', + 'commons-codec' => '/usr/share/java/commons-codec.jar', + 'commons-lang' => '/usr/share/java/commons-lang.jar', ); @@ -63,9 +71,9 @@ my %deps_type; my %topbuild; my %lbmodules = ( - 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test/], + 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test harvester/], 'security' => [qw/gss gsoap-plugin/], - 'lbjp-common' => [qw/db maildir server-bones trio jp-interface/], + 'lbjp-common' => [qw/db log maildir server-bones trio jp-interface/], 'jobid' => [qw/api-c api-cpp api-java/], 'jp' => [ qw/client doc index primary server-common ws-interface/ ], ); @@ -88,6 +96,7 @@ my @opts = ( 'security-tag=s' => \$sec_tag, 'jobid-tag=s' => \$jobid_tag, 'help' => \$help, + 'libdir=s' => \$libdir, ); for (@nodes) { @@ -105,6 +114,9 @@ my @keeparg = @ARGV; GetOptions @opts or die "Errors parsing command line\n"; +$extern_prefix{'mysql-devel'}=$extern_prefix{mysql} if $extern_prefix{'mysql-devel'} eq ''; +$extern_prefix{'mysql-server'}=$extern_prefix{mysql} if $extern_prefix{'mysql-server'} eq ''; + if ($help) { usage(); exit 0; } if ($listmodules) { @@ -286,17 +298,19 @@ sub mode_checkout() { BEGIN{ %need_externs_aux = ( 'lb.client' => [ qw/cppunit:B classads/ ], - 'lb.client-java' => [ qw/ant:B/ ], + 'lb.client-java' => [ qw/ant:B jdk:B axis:B trustmanager/ ], 'lb.common' => [ qw/expat cppunit:B classads/ ], 'lb.doc' => [], - 'lb.logger' => [ qw/cppunit:B/ ], - 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql cppunit:B gsoap:B classads voms lcas gridsite/ ], + 'lb.logger' => [ qw/cppunit:B log4c/ ], + 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql:R mysql-server:R mysql-devel:B cppunit:B gsoap:B classads voms lcas gridsite log4c/ ], 'lb.state-machine' => [ qw/classads/ ], 'lb.utils' => [ qw/cppunit:B/ ], 'lb.ws-interface' => [], 'lb.ws-test' => [ qw/gsoap:B/ ], 'lb.types' => [ qw// ], - 'lbjp-common.db' => [ qw/mysql/ ], + 'lb.harvester' => [ qw/postgresql:R/ ], + 'lbjp-common.db' => [ qw/mysql:B mysql-devel:B postgresql:B/ ], + 'lbjp-common.log' => [ qw// ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], 'lbjp-common.trio' => [ qw/cppunit:B/ ], @@ -325,6 +339,7 @@ for my $ext (keys %need_externs_aux) { %need_jars = ( 'jobid.api-java' => [ qw/commons-codec/ ], + 'lb.client-java' => [ qw/commons-lang/ ], ); for my $jar (keys %need_jars) { @@ -342,6 +357,7 @@ for my $jar (keys %need_jars) { / ], 'lb.client-java' => [ qw/ lb.types:B + lb.ws-interface:B jobid.api-java / ], 'lb.common' => [ qw/ @@ -351,17 +367,18 @@ for my $jar (keys %need_jars) { 'lb.doc' => [ qw/lb.types:B/ ], 'lb.logger' => [ qw/ lbjp-common.trio + lbjp-common.log jobid.api-c lb.common security.gss / ], 'lb.server' => [ qw/ lb.ws-interface lb.types:B lb.common lb.state-machine - lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir + lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir lbjp-common.log jobid.api-c security.gsoap-plugin security.gss / ], - 'lb.state-machine' => [ qw/lb.common lbjp-common.jp-interface security.gss/ ], + 'lb.state-machine' => [ qw/lb.types:B lb.common lbjp-common.jp-interface security.gss/ ], 'lb.utils' => [ qw/ lbjp-common.jp-interface jobid.api-c @@ -371,6 +388,10 @@ for my $jar (keys %need_jars) { 'lb.ws-test' => [ qw/security.gsoap-plugin lb.ws-interface/ ], 'lb.ws-interface' => [ qw/lb.types:B/ ], 'lb.types' => [ qw// ], + 'lb.harvester' => [ qw/ + jobid.api-c lbjp-common.trio lbjp-common.db lb.common lb.client + security.gss + / ], 'lbjp-common.db' => [ qw/lbjp-common.trio/ ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], @@ -428,7 +449,7 @@ for my $ext (keys %deps_aux) { jpclient => 'jp.client', ); -my @t = qw/lb.client-java jobid.api-java lb.types/; +my @t = qw/lb.client-java jobid.api-java lb.types lbjp-common.log/; @topbuild{@t} = (1) x ($#t+1); } @@ -443,10 +464,10 @@ sub mkinc my %aux; undef %aux; my @m=qw/ -lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java +lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java lb.harvester security.gss security.gsoap-plugin jobid.api-c jobid.api-cpp jobid.api-java -lbjp-common.db lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface +lbjp-common.db lbjp-common.log lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface jp.client jp.doc jp.index jp.primary jp.server-common jp.ws-interface /; @aux{@m} = (1) x ($#m+1); @@ -480,6 +501,7 @@ PREFIX = $prefix stagedir = $stagedir thrflavour = $thrflavour nothrflavour = $nothrflavour +libdir = $libdir }; for (@{$need_externs{$short}}) { @@ -508,6 +530,7 @@ BEGIN{ voms=>'org.glite.security.voms-api-cpp', gridsite=>'org.gridsite.shared', lcas=>'org.glite.security.lcas', + trustmanager=>'org.glite.security.trustmanager', ); %etics_projects = ( vdt=>[qw/globus globus_essentials/], @@ -545,8 +568,10 @@ sub mode_etics { @ge{@{$etics_projects{'org.glite'}}} = (1) x ($#{$etics_projects{'org.glite'}}+1); for (@{$need_externs{"$subsys.$module"}}) { + if ($need_externs_type{"$subsys.$module"}->{$_}=~/B/) { my $eext = $etics_externs{$_} ? $etics_externs{$_} : $_; push @copts,$ge{$_} ? "--with-$_=\${stageDir}" : "--with-$_=\${$eext.location}"; + } } for (@{$need_jars{"$subsys.$module"}}) { @@ -599,7 +624,7 @@ init = None install = make install clean = make clean test = make check -configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --module $subsys.$module @copts +configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --libdir=\${libdir} --module $subsys.$module @copts checkstyle = None [Platform-default:Property] @@ -658,6 +683,7 @@ General options (defaults in []): --thrflavour=flavour --nothrflavour=flavour threaded and non-treaded flavours [gcc64dbgpthr,gcc64dbg] --listmodules=subsys list modules of a subsystem + --libdir=libdir typically [lib,lib64] postfix Mode of operation: --mode={checkout|build|etics} what to do [build] diff --git a/org.glite.lb.ws-test/project/ChangeLog b/org.glite.lb.ws-test/project/ChangeLog index e4689aa..16b4037 100644 --- a/org.glite.lb.ws-test/project/ChangeLog +++ b/org.glite.lb.ws-test/project/ChangeLog @@ -14,3 +14,9 @@ - configure script update - new example script +1.0.1-2 +- configure script update + +1.0.1-3 +- Module repacked + diff --git a/org.glite.lb.ws-test/project/version.properties b/org.glite.lb.ws-test/project/version.properties index e967ca5..fcf0e252 100644 --- a/org.glite.lb.ws-test/project/version.properties +++ b/org.glite.lb.ws-test/project/version.properties @@ -1,3 +1,3 @@ # : /cvs/jra1mw/org.glite.lb.ws-test/project/version.properties,v 1.1 2009/01/15 15:49:26 zsustr Exp $ module.version=1.0.1 -module.age=1 +module.age=3 diff --git a/org.glite.lb/configure b/org.glite.lb/configure index 3f5fc54..80097bd 100755 --- a/org.glite.lb/configure +++ b/org.glite.lb/configure @@ -26,6 +26,7 @@ my $lbjp_tag = ''; my $jp_tag = ''; my $sec_tag = ''; my $jobid_tag = ''; +my $libdir = 'lib'; my @nodes = qw/client server logger utils client-java doc ws-test db jpprimary jpindex jpclient harvester/; my %enable_nodes; @@ -40,6 +41,7 @@ my %extern_prefix = ( gsoap => '/usr', mysql => '/usr', 'mysql-devel' => '', + 'mysql-server' => '', voms => '/opt/glite', gridsite => '/opt/glite', lcas => '/opt/glite', @@ -94,6 +96,7 @@ my @opts = ( 'security-tag=s' => \$sec_tag, 'jobid-tag=s' => \$jobid_tag, 'help' => \$help, + 'libdir=s' => \$libdir, ); for (@nodes) { @@ -112,6 +115,7 @@ my @keeparg = @ARGV; GetOptions @opts or die "Errors parsing command line\n"; $extern_prefix{'mysql-devel'}=$extern_prefix{mysql} if $extern_prefix{'mysql-devel'} eq ''; +$extern_prefix{'mysql-server'}=$extern_prefix{mysql} if $extern_prefix{'mysql-server'} eq ''; if ($help) { usage(); exit 0; } @@ -298,7 +302,7 @@ BEGIN{ 'lb.common' => [ qw/expat cppunit:B classads/ ], 'lb.doc' => [], 'lb.logger' => [ qw/cppunit:B log4c/ ], - 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql cppunit:B gsoap:B classads voms lcas gridsite log4c/ ], + 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql:R mysql-server:R mysql-devel:B cppunit:B gsoap:B classads voms lcas gridsite log4c/ ], 'lb.state-machine' => [ qw/classads/ ], 'lb.utils' => [ qw/cppunit:B/ ], 'lb.ws-interface' => [], @@ -374,7 +378,7 @@ for my $jar (keys %need_jars) { jobid.api-c security.gsoap-plugin security.gss / ], - 'lb.state-machine' => [ qw/lb.common lbjp-common.jp-interface security.gss/ ], + 'lb.state-machine' => [ qw/lb.types:B lb.common lbjp-common.jp-interface security.gss/ ], 'lb.utils' => [ qw/ lbjp-common.jp-interface jobid.api-c @@ -497,6 +501,7 @@ PREFIX = $prefix stagedir = $stagedir thrflavour = $thrflavour nothrflavour = $nothrflavour +libdir = $libdir }; for (@{$need_externs{$short}}) { @@ -619,7 +624,7 @@ init = None install = make install clean = make clean test = make check -configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --module $subsys.$module @copts +configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --libdir=\${libdir} --module $subsys.$module @copts checkstyle = None [Platform-default:Property] @@ -678,6 +683,7 @@ General options (defaults in []): --thrflavour=flavour --nothrflavour=flavour threaded and non-treaded flavours [gcc64dbgpthr,gcc64dbg] --listmodules=subsys list modules of a subsystem + --libdir=libdir typically [lib,lib64] postfix Mode of operation: --mode={checkout|build|etics} what to do [build] diff --git a/org.glite.lb/project/version.properties b/org.glite.lb/project/version.properties index 61009db..dccfa60 100644 --- a/org.glite.lb/project/version.properties +++ b/org.glite.lb/project/version.properties @@ -1,3 +1,3 @@ # : /cvs/glite/org.glite.lb/project/version.properties,v 1.164 2008/01/09 15:35:55 mmulac Exp $ -module.version=2.0.2 -module.age=1 +module.version=2.0.5 +module.age=2 diff --git a/org.glite.lbjp-common.db/Makefile b/org.glite.lbjp-common.db/Makefile index 1915902..dafb817 100644 --- a/org.glite.lbjp-common.db/Makefile +++ b/org.glite.lbjp-common.db/Makefile @@ -23,14 +23,8 @@ VPATH=${top_srcdir}/interface:${top_srcdir}/src:${top_srcdir}/examples DEBUG:=-g -O0 -W -Wall -archlib:=lib -host_cpu:=${shell uname -m} -ifeq (${host_cpu},x86_64) - archlib:=lib64 -endif - -MYSQL_SONAME:=$(shell ../project/get_soname.sh mysqlclient ${mysql-devel_prefix}/${archlib} ${mysql_prefix}/${archlib} ${mysql-devel_prefix}/lib ${mysql_prefix}/lib) -PSQL_SONAME:=$(shell ../project/get_soname.sh pq ${postgresql_prefix}/${archlib} ${postgresql_prefix}/lib) +MYSQL_SONAME:=$(shell ../project/get_soname.sh mysqlclient ${mysql-devel_prefix}/${libdir} ${mysql_prefix}/${libdir} ${mysql-devel_prefix}/lib ${mysql_prefix}/lib) +PSQL_SONAME:=$(shell ../project/get_soname.sh pq ${postgresql_prefix}/${libdir} ${postgresql_prefix}/lib) MYSQL_CPPFLAGS:=-I${mysql-devel_prefix}/include -I${mysql-devel_prefix}/include/mysql PSQL_CPPFLAGS:=-I${postgresql_prefix}/include diff --git a/org.glite.lbjp-common.db/configure b/org.glite.lbjp-common.db/configure index c289773..80097bd 100755 --- a/org.glite.lbjp-common.db/configure +++ b/org.glite.lbjp-common.db/configure @@ -26,8 +26,9 @@ my $lbjp_tag = ''; my $jp_tag = ''; my $sec_tag = ''; my $jobid_tag = ''; +my $libdir = 'lib'; -my @nodes = qw/client server logger utils client-java doc ws-test db jpprimary jpindex jpclient/; +my @nodes = qw/client server logger utils client-java doc ws-test db jpprimary jpindex jpclient harvester/; my %enable_nodes; my %disable_nodes; @@ -40,16 +41,22 @@ my %extern_prefix = ( gsoap => '/usr', mysql => '/usr', 'mysql-devel' => '', + 'mysql-server' => '', voms => '/opt/glite', gridsite => '/opt/glite', lcas => '/opt/glite', + trustmanager => '/opt/glite', ant => '/usr', jdk => '/usr', libtar => '/usr', + axis => '/usr', + log4c => '/usr', + postgresql => '/usr' ); my %jar = ( - 'commons-codec' => '/usr/share/java/commons-codec-1.3.jar', + 'commons-codec' => '/usr/share/java/commons-codec.jar', + 'commons-lang' => '/usr/share/java/commons-lang.jar', ); @@ -64,9 +71,9 @@ my %deps_type; my %topbuild; my %lbmodules = ( - 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test/], + 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test harvester/], 'security' => [qw/gss gsoap-plugin/], - 'lbjp-common' => [qw/db maildir server-bones trio jp-interface/], + 'lbjp-common' => [qw/db log maildir server-bones trio jp-interface/], 'jobid' => [qw/api-c api-cpp api-java/], 'jp' => [ qw/client doc index primary server-common ws-interface/ ], ); @@ -89,6 +96,7 @@ my @opts = ( 'security-tag=s' => \$sec_tag, 'jobid-tag=s' => \$jobid_tag, 'help' => \$help, + 'libdir=s' => \$libdir, ); for (@nodes) { @@ -107,6 +115,7 @@ my @keeparg = @ARGV; GetOptions @opts or die "Errors parsing command line\n"; $extern_prefix{'mysql-devel'}=$extern_prefix{mysql} if $extern_prefix{'mysql-devel'} eq ''; +$extern_prefix{'mysql-server'}=$extern_prefix{mysql} if $extern_prefix{'mysql-server'} eq ''; if ($help) { usage(); exit 0; } @@ -289,17 +298,19 @@ sub mode_checkout() { BEGIN{ %need_externs_aux = ( 'lb.client' => [ qw/cppunit:B classads/ ], - 'lb.client-java' => [ qw/ant:B/ ], + 'lb.client-java' => [ qw/ant:B jdk:B axis:B trustmanager/ ], 'lb.common' => [ qw/expat cppunit:B classads/ ], 'lb.doc' => [], - 'lb.logger' => [ qw/cppunit:B/ ], - 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql cppunit:B gsoap:B classads voms lcas gridsite/ ], + 'lb.logger' => [ qw/cppunit:B log4c/ ], + 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql:R mysql-server:R mysql-devel:B cppunit:B gsoap:B classads voms lcas gridsite log4c/ ], 'lb.state-machine' => [ qw/classads/ ], 'lb.utils' => [ qw/cppunit:B/ ], 'lb.ws-interface' => [], 'lb.ws-test' => [ qw/gsoap:B/ ], 'lb.types' => [ qw// ], - 'lbjp-common.db' => [ qw/mysql:R mysql-devel:B/ ], + 'lb.harvester' => [ qw/postgresql:R/ ], + 'lbjp-common.db' => [ qw/mysql:B mysql-devel:B postgresql:B/ ], + 'lbjp-common.log' => [ qw// ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], 'lbjp-common.trio' => [ qw/cppunit:B/ ], @@ -328,6 +339,7 @@ for my $ext (keys %need_externs_aux) { %need_jars = ( 'jobid.api-java' => [ qw/commons-codec/ ], + 'lb.client-java' => [ qw/commons-lang/ ], ); for my $jar (keys %need_jars) { @@ -345,6 +357,7 @@ for my $jar (keys %need_jars) { / ], 'lb.client-java' => [ qw/ lb.types:B + lb.ws-interface:B jobid.api-java / ], 'lb.common' => [ qw/ @@ -354,17 +367,18 @@ for my $jar (keys %need_jars) { 'lb.doc' => [ qw/lb.types:B/ ], 'lb.logger' => [ qw/ lbjp-common.trio + lbjp-common.log jobid.api-c lb.common security.gss / ], 'lb.server' => [ qw/ lb.ws-interface lb.types:B lb.common lb.state-machine - lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir + lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir lbjp-common.log jobid.api-c security.gsoap-plugin security.gss / ], - 'lb.state-machine' => [ qw/lb.common lbjp-common.jp-interface security.gss/ ], + 'lb.state-machine' => [ qw/lb.types:B lb.common lbjp-common.jp-interface security.gss/ ], 'lb.utils' => [ qw/ lbjp-common.jp-interface jobid.api-c @@ -374,6 +388,10 @@ for my $jar (keys %need_jars) { 'lb.ws-test' => [ qw/security.gsoap-plugin lb.ws-interface/ ], 'lb.ws-interface' => [ qw/lb.types:B/ ], 'lb.types' => [ qw// ], + 'lb.harvester' => [ qw/ + jobid.api-c lbjp-common.trio lbjp-common.db lb.common lb.client + security.gss + / ], 'lbjp-common.db' => [ qw/lbjp-common.trio/ ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], @@ -431,7 +449,7 @@ for my $ext (keys %deps_aux) { jpclient => 'jp.client', ); -my @t = qw/lb.client-java jobid.api-java lb.types/; +my @t = qw/lb.client-java jobid.api-java lb.types lbjp-common.log/; @topbuild{@t} = (1) x ($#t+1); } @@ -446,10 +464,10 @@ sub mkinc my %aux; undef %aux; my @m=qw/ -lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java +lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java lb.harvester security.gss security.gsoap-plugin jobid.api-c jobid.api-cpp jobid.api-java -lbjp-common.db lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface +lbjp-common.db lbjp-common.log lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface jp.client jp.doc jp.index jp.primary jp.server-common jp.ws-interface /; @aux{@m} = (1) x ($#m+1); @@ -483,6 +501,7 @@ PREFIX = $prefix stagedir = $stagedir thrflavour = $thrflavour nothrflavour = $nothrflavour +libdir = $libdir }; for (@{$need_externs{$short}}) { @@ -511,6 +530,7 @@ BEGIN{ voms=>'org.glite.security.voms-api-cpp', gridsite=>'org.gridsite.shared', lcas=>'org.glite.security.lcas', + trustmanager=>'org.glite.security.trustmanager', ); %etics_projects = ( vdt=>[qw/globus globus_essentials/], @@ -604,7 +624,7 @@ init = None install = make install clean = make clean test = make check -configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --module $subsys.$module @copts +configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --libdir=\${libdir} --module $subsys.$module @copts checkstyle = None [Platform-default:Property] @@ -663,6 +683,7 @@ General options (defaults in []): --thrflavour=flavour --nothrflavour=flavour threaded and non-treaded flavours [gcc64dbgpthr,gcc64dbg] --listmodules=subsys list modules of a subsystem + --libdir=libdir typically [lib,lib64] postfix Mode of operation: --mode={checkout|build|etics} what to do [build] diff --git a/org.glite.lbjp-common.db/project/ChangeLog b/org.glite.lbjp-common.db/project/ChangeLog index 55c45ff..a4e8938 100644 --- a/org.glite.lbjp-common.db/project/ChangeLog +++ b/org.glite.lbjp-common.db/project/ChangeLog @@ -19,3 +19,13 @@ 1.0.0-8 - Soname detection logic moved from the Makefille to a shell-out script +1.0.1-1 +- Using second fractions in timestamps + +1.0.1-2 +- Makefile relies on the libdir variable +- New configure script + +1.0.1-3 +- Module repacked. + diff --git a/org.glite.lbjp-common.db/project/version.properties b/org.glite.lbjp-common.db/project/version.properties index 80722eb..b40a2b3 100644 --- a/org.glite.lbjp-common.db/project/version.properties +++ b/org.glite.lbjp-common.db/project/version.properties @@ -1,3 +1,3 @@ : /cvs/jra1mw/org.glite.lbjp-common.db/project/version.properties,v 1.2 2009/01/21 10:44:34 zsustr Exp $ -module.version=1.0.0 -module.age=8 +module.version=1.0.1 +module.age=3 diff --git a/org.glite.lbjp-common.jp-interface/configure b/org.glite.lbjp-common.jp-interface/configure index c059fa4..80097bd 100755 --- a/org.glite.lbjp-common.jp-interface/configure +++ b/org.glite.lbjp-common.jp-interface/configure @@ -23,10 +23,12 @@ my $version; my $output; my $lb_tag = ''; my $lbjp_tag = ''; +my $jp_tag = ''; my $sec_tag = ''; my $jobid_tag = ''; +my $libdir = 'lib'; -my @nodes = qw/client server logger utils client-java doc ws-test/; +my @nodes = qw/client server logger utils client-java doc ws-test db jpprimary jpindex jpclient harvester/; my %enable_nodes; my %disable_nodes; @@ -38,13 +40,23 @@ my %extern_prefix = ( globus => '/opt/globus', gsoap => '/usr', mysql => '/usr', + 'mysql-devel' => '', + 'mysql-server' => '', voms => '/opt/glite', gridsite => '/opt/glite', lcas => '/opt/glite', + trustmanager => '/opt/glite', + ant => '/usr', + jdk => '/usr', + libtar => '/usr', + axis => '/usr', + log4c => '/usr', + postgresql => '/usr' ); my %jar = ( - 'commons-codec' => '/usr/share/java/commons-codec-1.3.jar', + 'commons-codec' => '/usr/share/java/commons-codec.jar', + 'commons-lang' => '/usr/share/java/commons-lang.jar', ); @@ -59,10 +71,11 @@ my %deps_type; my %topbuild; my %lbmodules = ( - 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test/], + 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test harvester/], 'security' => [qw/gss gsoap-plugin/], - 'lbjp-common' => [qw/db maildir server-bones trio jp-interface/], + 'lbjp-common' => [qw/db log maildir server-bones trio jp-interface/], 'jobid' => [qw/api-c api-cpp api-java/], + 'jp' => [ qw/client doc index primary server-common ws-interface/ ], ); @@ -79,9 +92,11 @@ my @opts = ( 'stage=s' => \$stagedir, 'lb-tag=s' => \$lb_tag, 'lbjp-common-tag=s' => \$lbjp_tag, + 'jp-tag=s' => \$jp_tag, 'security-tag=s' => \$sec_tag, 'jobid-tag=s' => \$jobid_tag, 'help' => \$help, + 'libdir=s' => \$libdir, ); for (@nodes) { @@ -99,6 +114,9 @@ my @keeparg = @ARGV; GetOptions @opts or die "Errors parsing command line\n"; +$extern_prefix{'mysql-devel'}=$extern_prefix{mysql} if $extern_prefix{'mysql-devel'} eq ''; +$extern_prefix{'mysql-server'}=$extern_prefix{mysql} if $extern_prefix{'mysql-server'} eq ''; + if ($help) { usage(); exit 0; } if ($listmodules) { @@ -122,7 +140,7 @@ die "--enable-* and --disable-* are mutually exclusive\n" die "--module cannot be used with --enable-* or --disable-*\n" if $module && ($en || $dis); -die "$module: unknown module\n" if $module && ! grep $module,@{$lbmodules{lb}},@{$lbmodules{security}}; +die "$module: unknown module\n" if $module && ! grep $module,@{$lbmodules{lb}},@{$lbmodules{security}},{$lbmodules{jp}}; if ($dis) { for (@nodes) { @@ -148,10 +166,11 @@ my @modules; my %aux; if ($module) { +# push @modules,split(/[,.]+/,$module); push @modules,$module; } else { - @modules = map 'lb.'.($extranodmod{$_} ? $extranodmod{$_} : $_),keys %enable_nodes; + @modules = map(($extranodmod{$_} ? $extranodmod{$_} : 'lb.'.$_),(keys %enable_nodes)); my $n; @@ -217,7 +236,7 @@ sub mode_build { my %ldeps; undef %ldeps; @ldeps{@{$deps{$_}}} = 1; for my $x (split /,/,$staged) { delete $ldeps{$x}; } - my @dnames = keys %ldeps; + my @dnames = $module ? () : keys %ldeps; my $full = full($_); my $build = $topbuild{$_} ? '': '/build'; @@ -246,6 +265,13 @@ sub mode_checkout() { } } } + if ($jp_tag){ + for (@{$lbmodules{'jp'}}){ + if ("jp.".$_ eq $module){ + $tag = '-r '.$jp_tag; + } + } + } if ($sec_tag){ for (@{$lbmodules{security}}){ if ("security.".$_ eq $module){ @@ -272,25 +298,34 @@ sub mode_checkout() { BEGIN{ %need_externs_aux = ( 'lb.client' => [ qw/cppunit:B classads/ ], + 'lb.client-java' => [ qw/ant:B jdk:B axis:B trustmanager/ ], 'lb.common' => [ qw/expat cppunit:B classads/ ], 'lb.doc' => [], - 'lb.logger' => [ qw/cppunit:B/ ], - 'lb.server' => [ qw/globus expat cares mysql cppunit:B gsoap:B classads voms lcas gridsite/ ], + 'lb.logger' => [ qw/cppunit:B log4c/ ], + 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql:R mysql-server:R mysql-devel:B cppunit:B gsoap:B classads voms lcas gridsite log4c/ ], 'lb.state-machine' => [ qw/classads/ ], 'lb.utils' => [ qw/cppunit:B/ ], 'lb.ws-interface' => [], 'lb.ws-test' => [ qw/gsoap:B/ ], 'lb.types' => [ qw// ], - 'lbjp-common.db' => [ qw/mysql/ ], + 'lb.harvester' => [ qw/postgresql:R/ ], + 'lbjp-common.db' => [ qw/mysql:B mysql-devel:B postgresql:B/ ], + 'lbjp-common.log' => [ qw// ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], 'lbjp-common.trio' => [ qw/cppunit:B/ ], 'lbjp-common.jp-interface' => [ qw/cppunit:B/ ], - 'security.gss' => [ qw/globus cares cppunit:B/ ], - 'security.gsoap-plugin' => [ qw/cppunit:B globus cares gsoap:B/ ], + 'security.gss' => [ qw/globus_essentials:R globus:B cares cppunit:B/ ], + 'security.gsoap-plugin' => [ qw/cppunit:B globus_essentials:R globus:B cares gsoap:B/ ], 'jobid.api-c' => [ qw/cppunit:B/ ], 'jobid.api-cpp' => [ qw/cppunit:B/ ], - 'jobid.api-java' => [ qw// ], + 'jobid.api-java' => [ qw/ant:B jdk:B/ ], + 'jp.client' => [ qw/gsoap libtar globus_essentials:R globus:B/ ], + 'jp.doc' => [], + 'jp.index' => [ qw/gsoap globus_essentials:R globus:B/ ], + 'jp.primary' => [ qw/classads gsoap libtar globus_essentials:R globus:B/ ], + 'jp.server-common' => [], + 'jp.ws-interface' => [], ); for my $ext (keys %need_externs_aux) { @@ -304,6 +339,7 @@ for my $ext (keys %need_externs_aux) { %need_jars = ( 'jobid.api-java' => [ qw/commons-codec/ ], + 'lb.client-java' => [ qw/commons-lang/ ], ); for my $jar (keys %need_jars) { @@ -321,6 +357,7 @@ for my $jar (keys %need_jars) { / ], 'lb.client-java' => [ qw/ lb.types:B + lb.ws-interface:B jobid.api-java / ], 'lb.common' => [ qw/ @@ -330,17 +367,18 @@ for my $jar (keys %need_jars) { 'lb.doc' => [ qw/lb.types:B/ ], 'lb.logger' => [ qw/ lbjp-common.trio + lbjp-common.log jobid.api-c lb.common security.gss / ], 'lb.server' => [ qw/ lb.ws-interface lb.types:B lb.common lb.state-machine - lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir + lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir lbjp-common.log jobid.api-c security.gsoap-plugin security.gss / ], - 'lb.state-machine' => [ qw/lb.common lbjp-common.jp-interface security.gss/ ], + 'lb.state-machine' => [ qw/lb.types:B lb.common lbjp-common.jp-interface security.gss/ ], 'lb.utils' => [ qw/ lbjp-common.jp-interface jobid.api-c @@ -350,6 +388,10 @@ for my $jar (keys %need_jars) { 'lb.ws-test' => [ qw/security.gsoap-plugin lb.ws-interface/ ], 'lb.ws-interface' => [ qw/lb.types:B/ ], 'lb.types' => [ qw// ], + 'lb.harvester' => [ qw/ + jobid.api-c lbjp-common.trio lbjp-common.db lb.common lb.client + security.gss + / ], 'lbjp-common.db' => [ qw/lbjp-common.trio/ ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], @@ -361,6 +403,30 @@ for my $jar (keys %need_jars) { 'jobid.api-java' => [ qw// ], 'lbjp-common.jp-interface' => [ qw/lbjp-common.db jobid.api-c/ ], + + 'jp.client' => [ qw/ + jp.ws-interface + lbjp-common.jp-interface lbjp-common.maildir + jobid.api-c + security.gsoap-plugin + / ], + 'jp.doc' => [ qw// ], + 'jp.index' => [ qw/ + jp.server-common jp.ws-interface + lbjp-common.jp-interface lbjp-common.trio lbjp-common.db lbjp-common.server-bones + security.gsoap-plugin + / ], + 'jp.primary' => [ qw/ + jobid.api-c + jp.server-common jp.ws-interface + lb.state-machine + lbjp-common.jp-interface lbjp-common.trio lbjp-common.db lbjp-common.server-bones + security.gsoap-plugin + / ], + 'jp.server-common' => [ qw/ + lbjp-common.jp-interface lbjp-common.db + / ], + 'jp.ws-interface' => [ qw// ], ); for my $ext (keys %deps_aux) { @@ -375,9 +441,15 @@ for my $ext (keys %deps_aux) { %extrafull = ( gridsite=>'org.gridsite.core'); -# %extranodmod = ( java => 'client-java' ); +#( java => 'client-java' ); +%extranodmod = ( + db => 'lbjp-common.db', + jpprimary => 'jp.primary', + jpindex => 'jp.index', + jpclient => 'jp.client', +); -my @t = qw/lb.client-java jobid.api-java lb.types/; +my @t = qw/lb.client-java jobid.api-java lb.types lbjp-common.log/; @topbuild{@t} = (1) x ($#t+1); } @@ -392,10 +464,11 @@ sub mkinc my %aux; undef %aux; my @m=qw/ -lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java +lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java lb.harvester security.gss security.gsoap-plugin jobid.api-c jobid.api-cpp jobid.api-java -lbjp-common.db lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface +lbjp-common.db lbjp-common.log lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface +jp.client jp.doc jp.index jp.primary jp.server-common jp.ws-interface /; @aux{@m} = (1) x ($#m+1); @@ -428,6 +501,7 @@ PREFIX = $prefix stagedir = $stagedir thrflavour = $thrflavour nothrflavour = $nothrflavour +libdir = $libdir }; for (@{$need_externs{$short}}) { @@ -450,14 +524,16 @@ my %etics_externs; my %etics_projects; BEGIN{ %etics_externs = ( - globus=>'vdt_globus_essentials', + globus_essentials=>'vdt_globus_essentials', + globus=>'globus', cares=>'c-ares', - voms=>'org.glite.security.voms-api-c', + voms=>'org.glite.security.voms-api-cpp', gridsite=>'org.gridsite.shared', lcas=>'org.glite.security.lcas', + trustmanager=>'org.glite.security.trustmanager', ); %etics_projects = ( - vdt=>[qw/globus/], + vdt=>[qw/globus globus_essentials/], 'org.glite'=>[qw/voms gridsite lcas/], ); }; @@ -492,8 +568,10 @@ sub mode_etics { @ge{@{$etics_projects{'org.glite'}}} = (1) x ($#{$etics_projects{'org.glite'}}+1); for (@{$need_externs{"$subsys.$module"}}) { + if ($need_externs_type{"$subsys.$module"}->{$_}=~/B/) { my $eext = $etics_externs{$_} ? $etics_externs{$_} : $_; push @copts,$ge{$_} ? "--with-$_=\${stageDir}" : "--with-$_=\${$eext.location}"; + } } for (@{$need_jars{"$subsys.$module"}}) { @@ -546,7 +624,7 @@ init = None install = make install clean = make clean test = make check -configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --module $subsys.$module @copts +configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --libdir=\${libdir} --module $subsys.$module @copts checkstyle = None [Platform-default:Property] @@ -604,7 +682,8 @@ General options (defaults in []): --staged=module,module,... what is already in PREFIX (specify without org.glite.) --thrflavour=flavour --nothrflavour=flavour threaded and non-treaded flavours [gcc64dbgpthr,gcc64dbg] - --listmodules=subsys list modules of a subsystem + --listmodules=subsys list modules of a subsystem + --libdir=libdir typically [lib,lib64] postfix Mode of operation: --mode={checkout|build|etics} what to do [build] @@ -615,6 +694,7 @@ What to build: @{$lbmodules{lb}},@{$lbmodules{security}} --disable-NODE don't build this node --lb-tag=tag checkout LB modules with specific tag + --jp-tag=tag checkout JP modules with specific tag --lbjp-common-tag=tag checkout lbjp-common modules with specific tag --security-tag=tag checkout security modules with specific tag --jobid-tag=tag checkout jobid modules with specific tag diff --git a/org.glite.lbjp-common.jp-interface/project/ChangeLog b/org.glite.lbjp-common.jp-interface/project/ChangeLog index cd9fdf6..8537bb9 100644 --- a/org.glite.lbjp-common.jp-interface/project/ChangeLog +++ b/org.glite.lbjp-common.jp-interface/project/ChangeLog @@ -10,3 +10,9 @@ 1.0.0-4 - configure script update (globus flavors added to configure call) +1.0.0-5 +- configure script update + +1.0.0-6 +- Module repacked. + diff --git a/org.glite.lbjp-common.jp-interface/project/version.properties b/org.glite.lbjp-common.jp-interface/project/version.properties index 9b1d449..11299ee 100644 --- a/org.glite.lbjp-common.jp-interface/project/version.properties +++ b/org.glite.lbjp-common.jp-interface/project/version.properties @@ -1,3 +1,3 @@ #: /cvs/jra1mw/org.glite.lbjp-common.jp-interface/project/version.properties,v 1.1.1.1 2009/01/21 14:43:52 zsustr Exp $ module.version=1.0.0 -module.age=4 +module.age=6 diff --git a/org.glite.lbjp-common.log/configure b/org.glite.lbjp-common.log/configure index 3fbd147..80097bd 100755 --- a/org.glite.lbjp-common.log/configure +++ b/org.glite.lbjp-common.log/configure @@ -26,8 +26,9 @@ my $lbjp_tag = ''; my $jp_tag = ''; my $sec_tag = ''; my $jobid_tag = ''; +my $libdir = 'lib'; -my @nodes = qw/client server logger utils client-java doc ws-test db jpprimary jpindex jpclient/; +my @nodes = qw/client server logger utils client-java doc ws-test db jpprimary jpindex jpclient harvester/; my %enable_nodes; my %disable_nodes; @@ -40,6 +41,7 @@ my %extern_prefix = ( gsoap => '/usr', mysql => '/usr', 'mysql-devel' => '', + 'mysql-server' => '', voms => '/opt/glite', gridsite => '/opt/glite', lcas => '/opt/glite', @@ -49,6 +51,7 @@ my %extern_prefix = ( libtar => '/usr', axis => '/usr', log4c => '/usr', + postgresql => '/usr' ); my %jar = ( @@ -68,7 +71,7 @@ my %deps_type; my %topbuild; my %lbmodules = ( - 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test/], + 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test harvester/], 'security' => [qw/gss gsoap-plugin/], 'lbjp-common' => [qw/db log maildir server-bones trio jp-interface/], 'jobid' => [qw/api-c api-cpp api-java/], @@ -93,6 +96,7 @@ my @opts = ( 'security-tag=s' => \$sec_tag, 'jobid-tag=s' => \$jobid_tag, 'help' => \$help, + 'libdir=s' => \$libdir, ); for (@nodes) { @@ -111,6 +115,7 @@ my @keeparg = @ARGV; GetOptions @opts or die "Errors parsing command line\n"; $extern_prefix{'mysql-devel'}=$extern_prefix{mysql} if $extern_prefix{'mysql-devel'} eq ''; +$extern_prefix{'mysql-server'}=$extern_prefix{mysql} if $extern_prefix{'mysql-server'} eq ''; if ($help) { usage(); exit 0; } @@ -297,13 +302,14 @@ BEGIN{ 'lb.common' => [ qw/expat cppunit:B classads/ ], 'lb.doc' => [], 'lb.logger' => [ qw/cppunit:B log4c/ ], - 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql cppunit:B gsoap:B classads voms lcas gridsite log4c/ ], + 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql:R mysql-server:R mysql-devel:B cppunit:B gsoap:B classads voms lcas gridsite log4c/ ], 'lb.state-machine' => [ qw/classads/ ], 'lb.utils' => [ qw/cppunit:B/ ], 'lb.ws-interface' => [], 'lb.ws-test' => [ qw/gsoap:B/ ], 'lb.types' => [ qw// ], - 'lbjp-common.db' => [ qw/mysql:R mysql-devel:B/ ], + 'lb.harvester' => [ qw/postgresql:R/ ], + 'lbjp-common.db' => [ qw/mysql:B mysql-devel:B postgresql:B/ ], 'lbjp-common.log' => [ qw// ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], @@ -372,7 +378,7 @@ for my $jar (keys %need_jars) { jobid.api-c security.gsoap-plugin security.gss / ], - 'lb.state-machine' => [ qw/lb.common lbjp-common.jp-interface security.gss/ ], + 'lb.state-machine' => [ qw/lb.types:B lb.common lbjp-common.jp-interface security.gss/ ], 'lb.utils' => [ qw/ lbjp-common.jp-interface jobid.api-c @@ -382,6 +388,10 @@ for my $jar (keys %need_jars) { 'lb.ws-test' => [ qw/security.gsoap-plugin lb.ws-interface/ ], 'lb.ws-interface' => [ qw/lb.types:B/ ], 'lb.types' => [ qw// ], + 'lb.harvester' => [ qw/ + jobid.api-c lbjp-common.trio lbjp-common.db lb.common lb.client + security.gss + / ], 'lbjp-common.db' => [ qw/lbjp-common.trio/ ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], @@ -454,7 +464,7 @@ sub mkinc my %aux; undef %aux; my @m=qw/ -lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java +lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java lb.harvester security.gss security.gsoap-plugin jobid.api-c jobid.api-cpp jobid.api-java lbjp-common.db lbjp-common.log lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface @@ -491,6 +501,7 @@ PREFIX = $prefix stagedir = $stagedir thrflavour = $thrflavour nothrflavour = $nothrflavour +libdir = $libdir }; for (@{$need_externs{$short}}) { @@ -613,7 +624,7 @@ init = None install = make install clean = make clean test = make check -configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --module $subsys.$module @copts +configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --libdir=\${libdir} --module $subsys.$module @copts checkstyle = None [Platform-default:Property] @@ -672,6 +683,7 @@ General options (defaults in []): --thrflavour=flavour --nothrflavour=flavour threaded and non-treaded flavours [gcc64dbgpthr,gcc64dbg] --listmodules=subsys list modules of a subsystem + --libdir=libdir typically [lib,lib64] postfix Mode of operation: --mode={checkout|build|etics} what to do [build] diff --git a/org.glite.lbjp-common.maildir/configure b/org.glite.lbjp-common.maildir/configure index c059fa4..80097bd 100755 --- a/org.glite.lbjp-common.maildir/configure +++ b/org.glite.lbjp-common.maildir/configure @@ -23,10 +23,12 @@ my $version; my $output; my $lb_tag = ''; my $lbjp_tag = ''; +my $jp_tag = ''; my $sec_tag = ''; my $jobid_tag = ''; +my $libdir = 'lib'; -my @nodes = qw/client server logger utils client-java doc ws-test/; +my @nodes = qw/client server logger utils client-java doc ws-test db jpprimary jpindex jpclient harvester/; my %enable_nodes; my %disable_nodes; @@ -38,13 +40,23 @@ my %extern_prefix = ( globus => '/opt/globus', gsoap => '/usr', mysql => '/usr', + 'mysql-devel' => '', + 'mysql-server' => '', voms => '/opt/glite', gridsite => '/opt/glite', lcas => '/opt/glite', + trustmanager => '/opt/glite', + ant => '/usr', + jdk => '/usr', + libtar => '/usr', + axis => '/usr', + log4c => '/usr', + postgresql => '/usr' ); my %jar = ( - 'commons-codec' => '/usr/share/java/commons-codec-1.3.jar', + 'commons-codec' => '/usr/share/java/commons-codec.jar', + 'commons-lang' => '/usr/share/java/commons-lang.jar', ); @@ -59,10 +71,11 @@ my %deps_type; my %topbuild; my %lbmodules = ( - 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test/], + 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test harvester/], 'security' => [qw/gss gsoap-plugin/], - 'lbjp-common' => [qw/db maildir server-bones trio jp-interface/], + 'lbjp-common' => [qw/db log maildir server-bones trio jp-interface/], 'jobid' => [qw/api-c api-cpp api-java/], + 'jp' => [ qw/client doc index primary server-common ws-interface/ ], ); @@ -79,9 +92,11 @@ my @opts = ( 'stage=s' => \$stagedir, 'lb-tag=s' => \$lb_tag, 'lbjp-common-tag=s' => \$lbjp_tag, + 'jp-tag=s' => \$jp_tag, 'security-tag=s' => \$sec_tag, 'jobid-tag=s' => \$jobid_tag, 'help' => \$help, + 'libdir=s' => \$libdir, ); for (@nodes) { @@ -99,6 +114,9 @@ my @keeparg = @ARGV; GetOptions @opts or die "Errors parsing command line\n"; +$extern_prefix{'mysql-devel'}=$extern_prefix{mysql} if $extern_prefix{'mysql-devel'} eq ''; +$extern_prefix{'mysql-server'}=$extern_prefix{mysql} if $extern_prefix{'mysql-server'} eq ''; + if ($help) { usage(); exit 0; } if ($listmodules) { @@ -122,7 +140,7 @@ die "--enable-* and --disable-* are mutually exclusive\n" die "--module cannot be used with --enable-* or --disable-*\n" if $module && ($en || $dis); -die "$module: unknown module\n" if $module && ! grep $module,@{$lbmodules{lb}},@{$lbmodules{security}}; +die "$module: unknown module\n" if $module && ! grep $module,@{$lbmodules{lb}},@{$lbmodules{security}},{$lbmodules{jp}}; if ($dis) { for (@nodes) { @@ -148,10 +166,11 @@ my @modules; my %aux; if ($module) { +# push @modules,split(/[,.]+/,$module); push @modules,$module; } else { - @modules = map 'lb.'.($extranodmod{$_} ? $extranodmod{$_} : $_),keys %enable_nodes; + @modules = map(($extranodmod{$_} ? $extranodmod{$_} : 'lb.'.$_),(keys %enable_nodes)); my $n; @@ -217,7 +236,7 @@ sub mode_build { my %ldeps; undef %ldeps; @ldeps{@{$deps{$_}}} = 1; for my $x (split /,/,$staged) { delete $ldeps{$x}; } - my @dnames = keys %ldeps; + my @dnames = $module ? () : keys %ldeps; my $full = full($_); my $build = $topbuild{$_} ? '': '/build'; @@ -246,6 +265,13 @@ sub mode_checkout() { } } } + if ($jp_tag){ + for (@{$lbmodules{'jp'}}){ + if ("jp.".$_ eq $module){ + $tag = '-r '.$jp_tag; + } + } + } if ($sec_tag){ for (@{$lbmodules{security}}){ if ("security.".$_ eq $module){ @@ -272,25 +298,34 @@ sub mode_checkout() { BEGIN{ %need_externs_aux = ( 'lb.client' => [ qw/cppunit:B classads/ ], + 'lb.client-java' => [ qw/ant:B jdk:B axis:B trustmanager/ ], 'lb.common' => [ qw/expat cppunit:B classads/ ], 'lb.doc' => [], - 'lb.logger' => [ qw/cppunit:B/ ], - 'lb.server' => [ qw/globus expat cares mysql cppunit:B gsoap:B classads voms lcas gridsite/ ], + 'lb.logger' => [ qw/cppunit:B log4c/ ], + 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql:R mysql-server:R mysql-devel:B cppunit:B gsoap:B classads voms lcas gridsite log4c/ ], 'lb.state-machine' => [ qw/classads/ ], 'lb.utils' => [ qw/cppunit:B/ ], 'lb.ws-interface' => [], 'lb.ws-test' => [ qw/gsoap:B/ ], 'lb.types' => [ qw// ], - 'lbjp-common.db' => [ qw/mysql/ ], + 'lb.harvester' => [ qw/postgresql:R/ ], + 'lbjp-common.db' => [ qw/mysql:B mysql-devel:B postgresql:B/ ], + 'lbjp-common.log' => [ qw// ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], 'lbjp-common.trio' => [ qw/cppunit:B/ ], 'lbjp-common.jp-interface' => [ qw/cppunit:B/ ], - 'security.gss' => [ qw/globus cares cppunit:B/ ], - 'security.gsoap-plugin' => [ qw/cppunit:B globus cares gsoap:B/ ], + 'security.gss' => [ qw/globus_essentials:R globus:B cares cppunit:B/ ], + 'security.gsoap-plugin' => [ qw/cppunit:B globus_essentials:R globus:B cares gsoap:B/ ], 'jobid.api-c' => [ qw/cppunit:B/ ], 'jobid.api-cpp' => [ qw/cppunit:B/ ], - 'jobid.api-java' => [ qw// ], + 'jobid.api-java' => [ qw/ant:B jdk:B/ ], + 'jp.client' => [ qw/gsoap libtar globus_essentials:R globus:B/ ], + 'jp.doc' => [], + 'jp.index' => [ qw/gsoap globus_essentials:R globus:B/ ], + 'jp.primary' => [ qw/classads gsoap libtar globus_essentials:R globus:B/ ], + 'jp.server-common' => [], + 'jp.ws-interface' => [], ); for my $ext (keys %need_externs_aux) { @@ -304,6 +339,7 @@ for my $ext (keys %need_externs_aux) { %need_jars = ( 'jobid.api-java' => [ qw/commons-codec/ ], + 'lb.client-java' => [ qw/commons-lang/ ], ); for my $jar (keys %need_jars) { @@ -321,6 +357,7 @@ for my $jar (keys %need_jars) { / ], 'lb.client-java' => [ qw/ lb.types:B + lb.ws-interface:B jobid.api-java / ], 'lb.common' => [ qw/ @@ -330,17 +367,18 @@ for my $jar (keys %need_jars) { 'lb.doc' => [ qw/lb.types:B/ ], 'lb.logger' => [ qw/ lbjp-common.trio + lbjp-common.log jobid.api-c lb.common security.gss / ], 'lb.server' => [ qw/ lb.ws-interface lb.types:B lb.common lb.state-machine - lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir + lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir lbjp-common.log jobid.api-c security.gsoap-plugin security.gss / ], - 'lb.state-machine' => [ qw/lb.common lbjp-common.jp-interface security.gss/ ], + 'lb.state-machine' => [ qw/lb.types:B lb.common lbjp-common.jp-interface security.gss/ ], 'lb.utils' => [ qw/ lbjp-common.jp-interface jobid.api-c @@ -350,6 +388,10 @@ for my $jar (keys %need_jars) { 'lb.ws-test' => [ qw/security.gsoap-plugin lb.ws-interface/ ], 'lb.ws-interface' => [ qw/lb.types:B/ ], 'lb.types' => [ qw// ], + 'lb.harvester' => [ qw/ + jobid.api-c lbjp-common.trio lbjp-common.db lb.common lb.client + security.gss + / ], 'lbjp-common.db' => [ qw/lbjp-common.trio/ ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], @@ -361,6 +403,30 @@ for my $jar (keys %need_jars) { 'jobid.api-java' => [ qw// ], 'lbjp-common.jp-interface' => [ qw/lbjp-common.db jobid.api-c/ ], + + 'jp.client' => [ qw/ + jp.ws-interface + lbjp-common.jp-interface lbjp-common.maildir + jobid.api-c + security.gsoap-plugin + / ], + 'jp.doc' => [ qw// ], + 'jp.index' => [ qw/ + jp.server-common jp.ws-interface + lbjp-common.jp-interface lbjp-common.trio lbjp-common.db lbjp-common.server-bones + security.gsoap-plugin + / ], + 'jp.primary' => [ qw/ + jobid.api-c + jp.server-common jp.ws-interface + lb.state-machine + lbjp-common.jp-interface lbjp-common.trio lbjp-common.db lbjp-common.server-bones + security.gsoap-plugin + / ], + 'jp.server-common' => [ qw/ + lbjp-common.jp-interface lbjp-common.db + / ], + 'jp.ws-interface' => [ qw// ], ); for my $ext (keys %deps_aux) { @@ -375,9 +441,15 @@ for my $ext (keys %deps_aux) { %extrafull = ( gridsite=>'org.gridsite.core'); -# %extranodmod = ( java => 'client-java' ); +#( java => 'client-java' ); +%extranodmod = ( + db => 'lbjp-common.db', + jpprimary => 'jp.primary', + jpindex => 'jp.index', + jpclient => 'jp.client', +); -my @t = qw/lb.client-java jobid.api-java lb.types/; +my @t = qw/lb.client-java jobid.api-java lb.types lbjp-common.log/; @topbuild{@t} = (1) x ($#t+1); } @@ -392,10 +464,11 @@ sub mkinc my %aux; undef %aux; my @m=qw/ -lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java +lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java lb.harvester security.gss security.gsoap-plugin jobid.api-c jobid.api-cpp jobid.api-java -lbjp-common.db lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface +lbjp-common.db lbjp-common.log lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface +jp.client jp.doc jp.index jp.primary jp.server-common jp.ws-interface /; @aux{@m} = (1) x ($#m+1); @@ -428,6 +501,7 @@ PREFIX = $prefix stagedir = $stagedir thrflavour = $thrflavour nothrflavour = $nothrflavour +libdir = $libdir }; for (@{$need_externs{$short}}) { @@ -450,14 +524,16 @@ my %etics_externs; my %etics_projects; BEGIN{ %etics_externs = ( - globus=>'vdt_globus_essentials', + globus_essentials=>'vdt_globus_essentials', + globus=>'globus', cares=>'c-ares', - voms=>'org.glite.security.voms-api-c', + voms=>'org.glite.security.voms-api-cpp', gridsite=>'org.gridsite.shared', lcas=>'org.glite.security.lcas', + trustmanager=>'org.glite.security.trustmanager', ); %etics_projects = ( - vdt=>[qw/globus/], + vdt=>[qw/globus globus_essentials/], 'org.glite'=>[qw/voms gridsite lcas/], ); }; @@ -492,8 +568,10 @@ sub mode_etics { @ge{@{$etics_projects{'org.glite'}}} = (1) x ($#{$etics_projects{'org.glite'}}+1); for (@{$need_externs{"$subsys.$module"}}) { + if ($need_externs_type{"$subsys.$module"}->{$_}=~/B/) { my $eext = $etics_externs{$_} ? $etics_externs{$_} : $_; push @copts,$ge{$_} ? "--with-$_=\${stageDir}" : "--with-$_=\${$eext.location}"; + } } for (@{$need_jars{"$subsys.$module"}}) { @@ -546,7 +624,7 @@ init = None install = make install clean = make clean test = make check -configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --module $subsys.$module @copts +configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --libdir=\${libdir} --module $subsys.$module @copts checkstyle = None [Platform-default:Property] @@ -604,7 +682,8 @@ General options (defaults in []): --staged=module,module,... what is already in PREFIX (specify without org.glite.) --thrflavour=flavour --nothrflavour=flavour threaded and non-treaded flavours [gcc64dbgpthr,gcc64dbg] - --listmodules=subsys list modules of a subsystem + --listmodules=subsys list modules of a subsystem + --libdir=libdir typically [lib,lib64] postfix Mode of operation: --mode={checkout|build|etics} what to do [build] @@ -615,6 +694,7 @@ What to build: @{$lbmodules{lb}},@{$lbmodules{security}} --disable-NODE don't build this node --lb-tag=tag checkout LB modules with specific tag + --jp-tag=tag checkout JP modules with specific tag --lbjp-common-tag=tag checkout lbjp-common modules with specific tag --security-tag=tag checkout security modules with specific tag --jobid-tag=tag checkout jobid modules with specific tag diff --git a/org.glite.lbjp-common.maildir/project/ChangeLog b/org.glite.lbjp-common.maildir/project/ChangeLog index 9e072fa..241af0a 100644 --- a/org.glite.lbjp-common.maildir/project/ChangeLog +++ b/org.glite.lbjp-common.maildir/project/ChangeLog @@ -4,3 +4,6 @@ 1.0.0-2 - configure script update (globus flavors added to configure call) +1.0.0-3 +- configure script update + diff --git a/org.glite.lbjp-common.maildir/project/version.properties b/org.glite.lbjp-common.maildir/project/version.properties index 5cfac6f..af720aa 100644 --- a/org.glite.lbjp-common.maildir/project/version.properties +++ b/org.glite.lbjp-common.maildir/project/version.properties @@ -1,3 +1,3 @@ # : /cvs/jra1mw/org.glite.lbjp-common.maildir/project/version.properties,v 1.1 2007/11/01 20:17:45 valtri Exp $ module.version=1.0.0 -module.age=2 +module.age=3 diff --git a/org.glite.lbjp-common.server-bones/configure b/org.glite.lbjp-common.server-bones/configure index c059fa4..80097bd 100755 --- a/org.glite.lbjp-common.server-bones/configure +++ b/org.glite.lbjp-common.server-bones/configure @@ -23,10 +23,12 @@ my $version; my $output; my $lb_tag = ''; my $lbjp_tag = ''; +my $jp_tag = ''; my $sec_tag = ''; my $jobid_tag = ''; +my $libdir = 'lib'; -my @nodes = qw/client server logger utils client-java doc ws-test/; +my @nodes = qw/client server logger utils client-java doc ws-test db jpprimary jpindex jpclient harvester/; my %enable_nodes; my %disable_nodes; @@ -38,13 +40,23 @@ my %extern_prefix = ( globus => '/opt/globus', gsoap => '/usr', mysql => '/usr', + 'mysql-devel' => '', + 'mysql-server' => '', voms => '/opt/glite', gridsite => '/opt/glite', lcas => '/opt/glite', + trustmanager => '/opt/glite', + ant => '/usr', + jdk => '/usr', + libtar => '/usr', + axis => '/usr', + log4c => '/usr', + postgresql => '/usr' ); my %jar = ( - 'commons-codec' => '/usr/share/java/commons-codec-1.3.jar', + 'commons-codec' => '/usr/share/java/commons-codec.jar', + 'commons-lang' => '/usr/share/java/commons-lang.jar', ); @@ -59,10 +71,11 @@ my %deps_type; my %topbuild; my %lbmodules = ( - 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test/], + 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test harvester/], 'security' => [qw/gss gsoap-plugin/], - 'lbjp-common' => [qw/db maildir server-bones trio jp-interface/], + 'lbjp-common' => [qw/db log maildir server-bones trio jp-interface/], 'jobid' => [qw/api-c api-cpp api-java/], + 'jp' => [ qw/client doc index primary server-common ws-interface/ ], ); @@ -79,9 +92,11 @@ my @opts = ( 'stage=s' => \$stagedir, 'lb-tag=s' => \$lb_tag, 'lbjp-common-tag=s' => \$lbjp_tag, + 'jp-tag=s' => \$jp_tag, 'security-tag=s' => \$sec_tag, 'jobid-tag=s' => \$jobid_tag, 'help' => \$help, + 'libdir=s' => \$libdir, ); for (@nodes) { @@ -99,6 +114,9 @@ my @keeparg = @ARGV; GetOptions @opts or die "Errors parsing command line\n"; +$extern_prefix{'mysql-devel'}=$extern_prefix{mysql} if $extern_prefix{'mysql-devel'} eq ''; +$extern_prefix{'mysql-server'}=$extern_prefix{mysql} if $extern_prefix{'mysql-server'} eq ''; + if ($help) { usage(); exit 0; } if ($listmodules) { @@ -122,7 +140,7 @@ die "--enable-* and --disable-* are mutually exclusive\n" die "--module cannot be used with --enable-* or --disable-*\n" if $module && ($en || $dis); -die "$module: unknown module\n" if $module && ! grep $module,@{$lbmodules{lb}},@{$lbmodules{security}}; +die "$module: unknown module\n" if $module && ! grep $module,@{$lbmodules{lb}},@{$lbmodules{security}},{$lbmodules{jp}}; if ($dis) { for (@nodes) { @@ -148,10 +166,11 @@ my @modules; my %aux; if ($module) { +# push @modules,split(/[,.]+/,$module); push @modules,$module; } else { - @modules = map 'lb.'.($extranodmod{$_} ? $extranodmod{$_} : $_),keys %enable_nodes; + @modules = map(($extranodmod{$_} ? $extranodmod{$_} : 'lb.'.$_),(keys %enable_nodes)); my $n; @@ -217,7 +236,7 @@ sub mode_build { my %ldeps; undef %ldeps; @ldeps{@{$deps{$_}}} = 1; for my $x (split /,/,$staged) { delete $ldeps{$x}; } - my @dnames = keys %ldeps; + my @dnames = $module ? () : keys %ldeps; my $full = full($_); my $build = $topbuild{$_} ? '': '/build'; @@ -246,6 +265,13 @@ sub mode_checkout() { } } } + if ($jp_tag){ + for (@{$lbmodules{'jp'}}){ + if ("jp.".$_ eq $module){ + $tag = '-r '.$jp_tag; + } + } + } if ($sec_tag){ for (@{$lbmodules{security}}){ if ("security.".$_ eq $module){ @@ -272,25 +298,34 @@ sub mode_checkout() { BEGIN{ %need_externs_aux = ( 'lb.client' => [ qw/cppunit:B classads/ ], + 'lb.client-java' => [ qw/ant:B jdk:B axis:B trustmanager/ ], 'lb.common' => [ qw/expat cppunit:B classads/ ], 'lb.doc' => [], - 'lb.logger' => [ qw/cppunit:B/ ], - 'lb.server' => [ qw/globus expat cares mysql cppunit:B gsoap:B classads voms lcas gridsite/ ], + 'lb.logger' => [ qw/cppunit:B log4c/ ], + 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql:R mysql-server:R mysql-devel:B cppunit:B gsoap:B classads voms lcas gridsite log4c/ ], 'lb.state-machine' => [ qw/classads/ ], 'lb.utils' => [ qw/cppunit:B/ ], 'lb.ws-interface' => [], 'lb.ws-test' => [ qw/gsoap:B/ ], 'lb.types' => [ qw// ], - 'lbjp-common.db' => [ qw/mysql/ ], + 'lb.harvester' => [ qw/postgresql:R/ ], + 'lbjp-common.db' => [ qw/mysql:B mysql-devel:B postgresql:B/ ], + 'lbjp-common.log' => [ qw// ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], 'lbjp-common.trio' => [ qw/cppunit:B/ ], 'lbjp-common.jp-interface' => [ qw/cppunit:B/ ], - 'security.gss' => [ qw/globus cares cppunit:B/ ], - 'security.gsoap-plugin' => [ qw/cppunit:B globus cares gsoap:B/ ], + 'security.gss' => [ qw/globus_essentials:R globus:B cares cppunit:B/ ], + 'security.gsoap-plugin' => [ qw/cppunit:B globus_essentials:R globus:B cares gsoap:B/ ], 'jobid.api-c' => [ qw/cppunit:B/ ], 'jobid.api-cpp' => [ qw/cppunit:B/ ], - 'jobid.api-java' => [ qw// ], + 'jobid.api-java' => [ qw/ant:B jdk:B/ ], + 'jp.client' => [ qw/gsoap libtar globus_essentials:R globus:B/ ], + 'jp.doc' => [], + 'jp.index' => [ qw/gsoap globus_essentials:R globus:B/ ], + 'jp.primary' => [ qw/classads gsoap libtar globus_essentials:R globus:B/ ], + 'jp.server-common' => [], + 'jp.ws-interface' => [], ); for my $ext (keys %need_externs_aux) { @@ -304,6 +339,7 @@ for my $ext (keys %need_externs_aux) { %need_jars = ( 'jobid.api-java' => [ qw/commons-codec/ ], + 'lb.client-java' => [ qw/commons-lang/ ], ); for my $jar (keys %need_jars) { @@ -321,6 +357,7 @@ for my $jar (keys %need_jars) { / ], 'lb.client-java' => [ qw/ lb.types:B + lb.ws-interface:B jobid.api-java / ], 'lb.common' => [ qw/ @@ -330,17 +367,18 @@ for my $jar (keys %need_jars) { 'lb.doc' => [ qw/lb.types:B/ ], 'lb.logger' => [ qw/ lbjp-common.trio + lbjp-common.log jobid.api-c lb.common security.gss / ], 'lb.server' => [ qw/ lb.ws-interface lb.types:B lb.common lb.state-machine - lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir + lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir lbjp-common.log jobid.api-c security.gsoap-plugin security.gss / ], - 'lb.state-machine' => [ qw/lb.common lbjp-common.jp-interface security.gss/ ], + 'lb.state-machine' => [ qw/lb.types:B lb.common lbjp-common.jp-interface security.gss/ ], 'lb.utils' => [ qw/ lbjp-common.jp-interface jobid.api-c @@ -350,6 +388,10 @@ for my $jar (keys %need_jars) { 'lb.ws-test' => [ qw/security.gsoap-plugin lb.ws-interface/ ], 'lb.ws-interface' => [ qw/lb.types:B/ ], 'lb.types' => [ qw// ], + 'lb.harvester' => [ qw/ + jobid.api-c lbjp-common.trio lbjp-common.db lb.common lb.client + security.gss + / ], 'lbjp-common.db' => [ qw/lbjp-common.trio/ ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], @@ -361,6 +403,30 @@ for my $jar (keys %need_jars) { 'jobid.api-java' => [ qw// ], 'lbjp-common.jp-interface' => [ qw/lbjp-common.db jobid.api-c/ ], + + 'jp.client' => [ qw/ + jp.ws-interface + lbjp-common.jp-interface lbjp-common.maildir + jobid.api-c + security.gsoap-plugin + / ], + 'jp.doc' => [ qw// ], + 'jp.index' => [ qw/ + jp.server-common jp.ws-interface + lbjp-common.jp-interface lbjp-common.trio lbjp-common.db lbjp-common.server-bones + security.gsoap-plugin + / ], + 'jp.primary' => [ qw/ + jobid.api-c + jp.server-common jp.ws-interface + lb.state-machine + lbjp-common.jp-interface lbjp-common.trio lbjp-common.db lbjp-common.server-bones + security.gsoap-plugin + / ], + 'jp.server-common' => [ qw/ + lbjp-common.jp-interface lbjp-common.db + / ], + 'jp.ws-interface' => [ qw// ], ); for my $ext (keys %deps_aux) { @@ -375,9 +441,15 @@ for my $ext (keys %deps_aux) { %extrafull = ( gridsite=>'org.gridsite.core'); -# %extranodmod = ( java => 'client-java' ); +#( java => 'client-java' ); +%extranodmod = ( + db => 'lbjp-common.db', + jpprimary => 'jp.primary', + jpindex => 'jp.index', + jpclient => 'jp.client', +); -my @t = qw/lb.client-java jobid.api-java lb.types/; +my @t = qw/lb.client-java jobid.api-java lb.types lbjp-common.log/; @topbuild{@t} = (1) x ($#t+1); } @@ -392,10 +464,11 @@ sub mkinc my %aux; undef %aux; my @m=qw/ -lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java +lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java lb.harvester security.gss security.gsoap-plugin jobid.api-c jobid.api-cpp jobid.api-java -lbjp-common.db lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface +lbjp-common.db lbjp-common.log lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface +jp.client jp.doc jp.index jp.primary jp.server-common jp.ws-interface /; @aux{@m} = (1) x ($#m+1); @@ -428,6 +501,7 @@ PREFIX = $prefix stagedir = $stagedir thrflavour = $thrflavour nothrflavour = $nothrflavour +libdir = $libdir }; for (@{$need_externs{$short}}) { @@ -450,14 +524,16 @@ my %etics_externs; my %etics_projects; BEGIN{ %etics_externs = ( - globus=>'vdt_globus_essentials', + globus_essentials=>'vdt_globus_essentials', + globus=>'globus', cares=>'c-ares', - voms=>'org.glite.security.voms-api-c', + voms=>'org.glite.security.voms-api-cpp', gridsite=>'org.gridsite.shared', lcas=>'org.glite.security.lcas', + trustmanager=>'org.glite.security.trustmanager', ); %etics_projects = ( - vdt=>[qw/globus/], + vdt=>[qw/globus globus_essentials/], 'org.glite'=>[qw/voms gridsite lcas/], ); }; @@ -492,8 +568,10 @@ sub mode_etics { @ge{@{$etics_projects{'org.glite'}}} = (1) x ($#{$etics_projects{'org.glite'}}+1); for (@{$need_externs{"$subsys.$module"}}) { + if ($need_externs_type{"$subsys.$module"}->{$_}=~/B/) { my $eext = $etics_externs{$_} ? $etics_externs{$_} : $_; push @copts,$ge{$_} ? "--with-$_=\${stageDir}" : "--with-$_=\${$eext.location}"; + } } for (@{$need_jars{"$subsys.$module"}}) { @@ -546,7 +624,7 @@ init = None install = make install clean = make clean test = make check -configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --module $subsys.$module @copts +configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --libdir=\${libdir} --module $subsys.$module @copts checkstyle = None [Platform-default:Property] @@ -604,7 +682,8 @@ General options (defaults in []): --staged=module,module,... what is already in PREFIX (specify without org.glite.) --thrflavour=flavour --nothrflavour=flavour threaded and non-treaded flavours [gcc64dbgpthr,gcc64dbg] - --listmodules=subsys list modules of a subsystem + --listmodules=subsys list modules of a subsystem + --libdir=libdir typically [lib,lib64] postfix Mode of operation: --mode={checkout|build|etics} what to do [build] @@ -615,6 +694,7 @@ What to build: @{$lbmodules{lb}},@{$lbmodules{security}} --disable-NODE don't build this node --lb-tag=tag checkout LB modules with specific tag + --jp-tag=tag checkout JP modules with specific tag --lbjp-common-tag=tag checkout lbjp-common modules with specific tag --security-tag=tag checkout security modules with specific tag --jobid-tag=tag checkout jobid modules with specific tag diff --git a/org.glite.lbjp-common.server-bones/project/ChangeLog b/org.glite.lbjp-common.server-bones/project/ChangeLog index f503ed0..1d25f18 100644 --- a/org.glite.lbjp-common.server-bones/project/ChangeLog +++ b/org.glite.lbjp-common.server-bones/project/ChangeLog @@ -4,3 +4,6 @@ 1.0.0-3 - configure script update (globus flavors added to configure call) +1.0.0-4 +- configure script update + diff --git a/org.glite.lbjp-common.server-bones/project/version.properties b/org.glite.lbjp-common.server-bones/project/version.properties index ef4723a..78dfc90 100644 --- a/org.glite.lbjp-common.server-bones/project/version.properties +++ b/org.glite.lbjp-common.server-bones/project/version.properties @@ -1,3 +1,3 @@ # : /cvs/jra1mw/org.glite.lbjp-common.server-bones/project/version.properties,v 1.2 2009/01/21 10:44:34 zsustr Exp $ module.version=1.0.0 -module.age=3 +module.age=4 diff --git a/org.glite.lbjp-common.trio/configure b/org.glite.lbjp-common.trio/configure index c059fa4..80097bd 100755 --- a/org.glite.lbjp-common.trio/configure +++ b/org.glite.lbjp-common.trio/configure @@ -23,10 +23,12 @@ my $version; my $output; my $lb_tag = ''; my $lbjp_tag = ''; +my $jp_tag = ''; my $sec_tag = ''; my $jobid_tag = ''; +my $libdir = 'lib'; -my @nodes = qw/client server logger utils client-java doc ws-test/; +my @nodes = qw/client server logger utils client-java doc ws-test db jpprimary jpindex jpclient harvester/; my %enable_nodes; my %disable_nodes; @@ -38,13 +40,23 @@ my %extern_prefix = ( globus => '/opt/globus', gsoap => '/usr', mysql => '/usr', + 'mysql-devel' => '', + 'mysql-server' => '', voms => '/opt/glite', gridsite => '/opt/glite', lcas => '/opt/glite', + trustmanager => '/opt/glite', + ant => '/usr', + jdk => '/usr', + libtar => '/usr', + axis => '/usr', + log4c => '/usr', + postgresql => '/usr' ); my %jar = ( - 'commons-codec' => '/usr/share/java/commons-codec-1.3.jar', + 'commons-codec' => '/usr/share/java/commons-codec.jar', + 'commons-lang' => '/usr/share/java/commons-lang.jar', ); @@ -59,10 +71,11 @@ my %deps_type; my %topbuild; my %lbmodules = ( - 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test/], + 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test harvester/], 'security' => [qw/gss gsoap-plugin/], - 'lbjp-common' => [qw/db maildir server-bones trio jp-interface/], + 'lbjp-common' => [qw/db log maildir server-bones trio jp-interface/], 'jobid' => [qw/api-c api-cpp api-java/], + 'jp' => [ qw/client doc index primary server-common ws-interface/ ], ); @@ -79,9 +92,11 @@ my @opts = ( 'stage=s' => \$stagedir, 'lb-tag=s' => \$lb_tag, 'lbjp-common-tag=s' => \$lbjp_tag, + 'jp-tag=s' => \$jp_tag, 'security-tag=s' => \$sec_tag, 'jobid-tag=s' => \$jobid_tag, 'help' => \$help, + 'libdir=s' => \$libdir, ); for (@nodes) { @@ -99,6 +114,9 @@ my @keeparg = @ARGV; GetOptions @opts or die "Errors parsing command line\n"; +$extern_prefix{'mysql-devel'}=$extern_prefix{mysql} if $extern_prefix{'mysql-devel'} eq ''; +$extern_prefix{'mysql-server'}=$extern_prefix{mysql} if $extern_prefix{'mysql-server'} eq ''; + if ($help) { usage(); exit 0; } if ($listmodules) { @@ -122,7 +140,7 @@ die "--enable-* and --disable-* are mutually exclusive\n" die "--module cannot be used with --enable-* or --disable-*\n" if $module && ($en || $dis); -die "$module: unknown module\n" if $module && ! grep $module,@{$lbmodules{lb}},@{$lbmodules{security}}; +die "$module: unknown module\n" if $module && ! grep $module,@{$lbmodules{lb}},@{$lbmodules{security}},{$lbmodules{jp}}; if ($dis) { for (@nodes) { @@ -148,10 +166,11 @@ my @modules; my %aux; if ($module) { +# push @modules,split(/[,.]+/,$module); push @modules,$module; } else { - @modules = map 'lb.'.($extranodmod{$_} ? $extranodmod{$_} : $_),keys %enable_nodes; + @modules = map(($extranodmod{$_} ? $extranodmod{$_} : 'lb.'.$_),(keys %enable_nodes)); my $n; @@ -217,7 +236,7 @@ sub mode_build { my %ldeps; undef %ldeps; @ldeps{@{$deps{$_}}} = 1; for my $x (split /,/,$staged) { delete $ldeps{$x}; } - my @dnames = keys %ldeps; + my @dnames = $module ? () : keys %ldeps; my $full = full($_); my $build = $topbuild{$_} ? '': '/build'; @@ -246,6 +265,13 @@ sub mode_checkout() { } } } + if ($jp_tag){ + for (@{$lbmodules{'jp'}}){ + if ("jp.".$_ eq $module){ + $tag = '-r '.$jp_tag; + } + } + } if ($sec_tag){ for (@{$lbmodules{security}}){ if ("security.".$_ eq $module){ @@ -272,25 +298,34 @@ sub mode_checkout() { BEGIN{ %need_externs_aux = ( 'lb.client' => [ qw/cppunit:B classads/ ], + 'lb.client-java' => [ qw/ant:B jdk:B axis:B trustmanager/ ], 'lb.common' => [ qw/expat cppunit:B classads/ ], 'lb.doc' => [], - 'lb.logger' => [ qw/cppunit:B/ ], - 'lb.server' => [ qw/globus expat cares mysql cppunit:B gsoap:B classads voms lcas gridsite/ ], + 'lb.logger' => [ qw/cppunit:B log4c/ ], + 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql:R mysql-server:R mysql-devel:B cppunit:B gsoap:B classads voms lcas gridsite log4c/ ], 'lb.state-machine' => [ qw/classads/ ], 'lb.utils' => [ qw/cppunit:B/ ], 'lb.ws-interface' => [], 'lb.ws-test' => [ qw/gsoap:B/ ], 'lb.types' => [ qw// ], - 'lbjp-common.db' => [ qw/mysql/ ], + 'lb.harvester' => [ qw/postgresql:R/ ], + 'lbjp-common.db' => [ qw/mysql:B mysql-devel:B postgresql:B/ ], + 'lbjp-common.log' => [ qw// ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], 'lbjp-common.trio' => [ qw/cppunit:B/ ], 'lbjp-common.jp-interface' => [ qw/cppunit:B/ ], - 'security.gss' => [ qw/globus cares cppunit:B/ ], - 'security.gsoap-plugin' => [ qw/cppunit:B globus cares gsoap:B/ ], + 'security.gss' => [ qw/globus_essentials:R globus:B cares cppunit:B/ ], + 'security.gsoap-plugin' => [ qw/cppunit:B globus_essentials:R globus:B cares gsoap:B/ ], 'jobid.api-c' => [ qw/cppunit:B/ ], 'jobid.api-cpp' => [ qw/cppunit:B/ ], - 'jobid.api-java' => [ qw// ], + 'jobid.api-java' => [ qw/ant:B jdk:B/ ], + 'jp.client' => [ qw/gsoap libtar globus_essentials:R globus:B/ ], + 'jp.doc' => [], + 'jp.index' => [ qw/gsoap globus_essentials:R globus:B/ ], + 'jp.primary' => [ qw/classads gsoap libtar globus_essentials:R globus:B/ ], + 'jp.server-common' => [], + 'jp.ws-interface' => [], ); for my $ext (keys %need_externs_aux) { @@ -304,6 +339,7 @@ for my $ext (keys %need_externs_aux) { %need_jars = ( 'jobid.api-java' => [ qw/commons-codec/ ], + 'lb.client-java' => [ qw/commons-lang/ ], ); for my $jar (keys %need_jars) { @@ -321,6 +357,7 @@ for my $jar (keys %need_jars) { / ], 'lb.client-java' => [ qw/ lb.types:B + lb.ws-interface:B jobid.api-java / ], 'lb.common' => [ qw/ @@ -330,17 +367,18 @@ for my $jar (keys %need_jars) { 'lb.doc' => [ qw/lb.types:B/ ], 'lb.logger' => [ qw/ lbjp-common.trio + lbjp-common.log jobid.api-c lb.common security.gss / ], 'lb.server' => [ qw/ lb.ws-interface lb.types:B lb.common lb.state-machine - lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir + lbjp-common.db lbjp-common.server-bones lbjp-common.trio lbjp-common.maildir lbjp-common.log jobid.api-c security.gsoap-plugin security.gss / ], - 'lb.state-machine' => [ qw/lb.common lbjp-common.jp-interface security.gss/ ], + 'lb.state-machine' => [ qw/lb.types:B lb.common lbjp-common.jp-interface security.gss/ ], 'lb.utils' => [ qw/ lbjp-common.jp-interface jobid.api-c @@ -350,6 +388,10 @@ for my $jar (keys %need_jars) { 'lb.ws-test' => [ qw/security.gsoap-plugin lb.ws-interface/ ], 'lb.ws-interface' => [ qw/lb.types:B/ ], 'lb.types' => [ qw// ], + 'lb.harvester' => [ qw/ + jobid.api-c lbjp-common.trio lbjp-common.db lb.common lb.client + security.gss + / ], 'lbjp-common.db' => [ qw/lbjp-common.trio/ ], 'lbjp-common.maildir' => [ qw// ], 'lbjp-common.server-bones' => [ qw// ], @@ -361,6 +403,30 @@ for my $jar (keys %need_jars) { 'jobid.api-java' => [ qw// ], 'lbjp-common.jp-interface' => [ qw/lbjp-common.db jobid.api-c/ ], + + 'jp.client' => [ qw/ + jp.ws-interface + lbjp-common.jp-interface lbjp-common.maildir + jobid.api-c + security.gsoap-plugin + / ], + 'jp.doc' => [ qw// ], + 'jp.index' => [ qw/ + jp.server-common jp.ws-interface + lbjp-common.jp-interface lbjp-common.trio lbjp-common.db lbjp-common.server-bones + security.gsoap-plugin + / ], + 'jp.primary' => [ qw/ + jobid.api-c + jp.server-common jp.ws-interface + lb.state-machine + lbjp-common.jp-interface lbjp-common.trio lbjp-common.db lbjp-common.server-bones + security.gsoap-plugin + / ], + 'jp.server-common' => [ qw/ + lbjp-common.jp-interface lbjp-common.db + / ], + 'jp.ws-interface' => [ qw// ], ); for my $ext (keys %deps_aux) { @@ -375,9 +441,15 @@ for my $ext (keys %deps_aux) { %extrafull = ( gridsite=>'org.gridsite.core'); -# %extranodmod = ( java => 'client-java' ); +#( java => 'client-java' ); +%extranodmod = ( + db => 'lbjp-common.db', + jpprimary => 'jp.primary', + jpindex => 'jp.index', + jpclient => 'jp.client', +); -my @t = qw/lb.client-java jobid.api-java lb.types/; +my @t = qw/lb.client-java jobid.api-java lb.types lbjp-common.log/; @topbuild{@t} = (1) x ($#t+1); } @@ -392,10 +464,11 @@ sub mkinc my %aux; undef %aux; my @m=qw/ -lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java +lb.client lb.doc lb.state-machine lb.ws-interface lb.logger lb.types lb.common lb.server lb.utils lb.ws-test lb.client-java lb.harvester security.gss security.gsoap-plugin jobid.api-c jobid.api-cpp jobid.api-java -lbjp-common.db lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface +lbjp-common.db lbjp-common.log lbjp-common.maildir lbjp-common.server-bones lbjp-common.trio lbjp-common.jp-interface +jp.client jp.doc jp.index jp.primary jp.server-common jp.ws-interface /; @aux{@m} = (1) x ($#m+1); @@ -428,6 +501,7 @@ PREFIX = $prefix stagedir = $stagedir thrflavour = $thrflavour nothrflavour = $nothrflavour +libdir = $libdir }; for (@{$need_externs{$short}}) { @@ -450,14 +524,16 @@ my %etics_externs; my %etics_projects; BEGIN{ %etics_externs = ( - globus=>'vdt_globus_essentials', + globus_essentials=>'vdt_globus_essentials', + globus=>'globus', cares=>'c-ares', - voms=>'org.glite.security.voms-api-c', + voms=>'org.glite.security.voms-api-cpp', gridsite=>'org.gridsite.shared', lcas=>'org.glite.security.lcas', + trustmanager=>'org.glite.security.trustmanager', ); %etics_projects = ( - vdt=>[qw/globus/], + vdt=>[qw/globus globus_essentials/], 'org.glite'=>[qw/voms gridsite lcas/], ); }; @@ -492,8 +568,10 @@ sub mode_etics { @ge{@{$etics_projects{'org.glite'}}} = (1) x ($#{$etics_projects{'org.glite'}}+1); for (@{$need_externs{"$subsys.$module"}}) { + if ($need_externs_type{"$subsys.$module"}->{$_}=~/B/) { my $eext = $etics_externs{$_} ? $etics_externs{$_} : $_; push @copts,$ge{$_} ? "--with-$_=\${stageDir}" : "--with-$_=\${$eext.location}"; + } } for (@{$need_jars{"$subsys.$module"}}) { @@ -546,7 +624,7 @@ init = None install = make install clean = make clean test = make check -configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --module $subsys.$module @copts +configure = cd $confdir && \${moduleName}/configure --thrflavour=\${globus.thr.flavor} --nothrflavour=\${globus.nothr.flavor} --prefix=\${prefix} --stage=\${stageDir} --libdir=\${libdir} --module $subsys.$module @copts checkstyle = None [Platform-default:Property] @@ -604,7 +682,8 @@ General options (defaults in []): --staged=module,module,... what is already in PREFIX (specify without org.glite.) --thrflavour=flavour --nothrflavour=flavour threaded and non-treaded flavours [gcc64dbgpthr,gcc64dbg] - --listmodules=subsys list modules of a subsystem + --listmodules=subsys list modules of a subsystem + --libdir=libdir typically [lib,lib64] postfix Mode of operation: --mode={checkout|build|etics} what to do [build] @@ -615,6 +694,7 @@ What to build: @{$lbmodules{lb}},@{$lbmodules{security}} --disable-NODE don't build this node --lb-tag=tag checkout LB modules with specific tag + --jp-tag=tag checkout JP modules with specific tag --lbjp-common-tag=tag checkout lbjp-common modules with specific tag --security-tag=tag checkout security modules with specific tag --jobid-tag=tag checkout jobid modules with specific tag diff --git a/org.glite.lbjp-common.trio/project/ChangeLog b/org.glite.lbjp-common.trio/project/ChangeLog index 3055c83..f12d6ac 100644 --- a/org.glite.lbjp-common.trio/project/ChangeLog +++ b/org.glite.lbjp-common.trio/project/ChangeLog @@ -7,3 +7,9 @@ 1.0.0-4 - configure script update (globus flavors added to configure call) +1.0.0-5 +- configure script update + +1.0.1-1 +- Fixed build with newer gcc versions + diff --git a/org.glite.lbjp-common.trio/project/version.properties b/org.glite.lbjp-common.trio/project/version.properties index e86f816..5dbb8ed 100644 --- a/org.glite.lbjp-common.trio/project/version.properties +++ b/org.glite.lbjp-common.trio/project/version.properties @@ -1,3 +1,3 @@ # : /cvs/jra1mw/org.glite.lbjp-common.trio/project/version.properties,v 1.2 2009/01/21 10:44:34 zsustr Exp $ -module.version=1.0.0 -module.age=4 +module.version=1.0.1 +module.age=1 diff --git a/org.glite.lbjp-common.trio/test/trio_test.cpp b/org.glite.lbjp-common.trio/test/trio_test.cpp index 3ba4b9c..2cbe502 100644 --- a/org.glite.lbjp-common.trio/test/trio_test.cpp +++ b/org.glite.lbjp-common.trio/test/trio_test.cpp @@ -1,4 +1,5 @@ #include +#include #include #include