merge from LB 2.0 (merge_20_1_src)
authorFrantišek Dvořák <valtri@civ.zcu.cz>
Fri, 27 Nov 2009 13:50:23 +0000 (13:50 +0000)
committerFrantišek Dvořák <valtri@civ.zcu.cz>
Fri, 27 Nov 2009 13:50:23 +0000 (13:50 +0000)
117 files changed:
org.glite.jobid.api-c/configure
org.glite.jobid.api-c/project/ChangeLog
org.glite.jobid.api-c/project/version.properties
org.glite.jobid.api-c/test/base64_test.cpp
org.glite.jobid.api-cpp/configure
org.glite.jobid.api-cpp/project/ChangeLog
org.glite.jobid.api-cpp/project/version.properties
org.glite.lb.client/configure
org.glite.lb.client/examples/Makefile
org.glite.lb.client/examples/abort_job.c
org.glite.lb.client/examples/change_acl.c
org.glite.lb.client/examples/dagids.c
org.glite.lb.client/examples/feed_shark.c
org.glite.lb.client/examples/flood_proxy.c
org.glite.lb.client/examples/gen_sample_job
org.glite.lb.client/examples/job_log.c
org.glite.lb.client/examples/job_reg.c
org.glite.lb.client/examples/job_status.c
org.glite.lb.client/examples/log_usertag_proxy.c
org.glite.lb.client/examples/parse_eventsfile.c
org.glite.lb.client/examples/query_ext.c
org.glite.lb.client/examples/query_seq_code.c
org.glite.lb.client/examples/stats.c
org.glite.lb.client/examples/stress_context.c
org.glite.lb.client/examples/stresslog.c
org.glite.lb.client/examples/user_jobs.c
org.glite.lb.client/project/ChangeLog
org.glite.lb.client/project/version.properties
org.glite.lb.common/Makefile
org.glite.lb.common/configure
org.glite.lb.common/interface/mini_http.h
org.glite.lb.common/interface/query_rec.h
org.glite.lb.common/project/ChangeLog
org.glite.lb.common/project/version.properties
org.glite.lb.common/src/xml_conversions.c
org.glite.lb.doc/configure
org.glite.lb.doc/examples/Makefile
org.glite.lb.doc/examples/notif_example.c
org.glite.lb.doc/project/ChangeLog
org.glite.lb.doc/project/version.properties
org.glite.lb.doc/src/LBAG-Installation.tex
org.glite.lb.doc/src/LBTP-PerfTests.tex
org.glite.lb.doc/src/LBTP-Tests.tex
org.glite.lb.doc/src/LBTP.tex
org.glite.lb.logger/config/startup
org.glite.lb.logger/configure
org.glite.lb.logger/doc/glite-lb-interlogd.8
org.glite.lb.logger/doc/glite-lb-logd.8
org.glite.lb.logger/project/ChangeLog
org.glite.lb.logger/project/version.properties
org.glite.lb.logger/src/il_master.c
org.glite.lb.logger/src/interlogd.c
org.glite.lb.logger/src/interlogd.h
org.glite.lb.logger/src/logd.c
org.glite.lb.logger/src/recover.c
org.glite.lb.server/Makefile
org.glite.lb.server/build.xml [deleted file]
org.glite.lb.server/config/glite-lb-dbsetup-migrate2transactions.sql [deleted file]
org.glite.lb.server/config/glite-lb-migrate_db2version20
org.glite.lb.server/config/startup
org.glite.lb.server/configure
org.glite.lb.server/project/ChangeLog
org.glite.lb.server/project/configure.properties.xml [deleted file]
org.glite.lb.server/project/properties.xml [deleted file]
org.glite.lb.server/project/version.properties
org.glite.lb.server/src/bkindex.c
org.glite.lb.server/src/bkserverd.c
org.glite.lb.server/src/db_calls.c
org.glite.lb.server/src/jobstat.c
org.glite.lb.server/src/lb_authz.c
org.glite.lb.server/src/lb_proto.c
org.glite.lb.server/src/openserver.c
org.glite.lb.server/src/purge.h
org.glite.lb.server/src/query.c
org.glite.lb.server/src/srv_purge.c
org.glite.lb.server/src/stats.c
org.glite.lb.server/src/ws_typeref.c.T
org.glite.lb.state-machine/Makefile
org.glite.lb.state-machine/configure
org.glite.lb.state-machine/interface/intjobstat.h
org.glite.lb.state-machine/project/ChangeLog
org.glite.lb.state-machine/project/version.properties
org.glite.lb.types/Makefile
org.glite.lb.types/at3.in
org.glite.lb.types/configure
org.glite.lb.utils/Makefile
org.glite.lb.utils/configure
org.glite.lb.utils/doc/glite-lb-purge.8
org.glite.lb.utils/project/ChangeLog
org.glite.lb.utils/project/version.properties
org.glite.lb.utils/src/purge.c
org.glite.lb.ws-interface/configure
org.glite.lb.ws-interface/project/ChangeLog
org.glite.lb.ws-interface/project/version.properties
org.glite.lb.ws-test/configure
org.glite.lb.ws-test/project/ChangeLog
org.glite.lb.ws-test/project/version.properties
org.glite.lb/configure
org.glite.lb/project/version.properties
org.glite.lbjp-common.db/Makefile
org.glite.lbjp-common.db/configure
org.glite.lbjp-common.db/project/ChangeLog
org.glite.lbjp-common.db/project/version.properties
org.glite.lbjp-common.jp-interface/configure
org.glite.lbjp-common.jp-interface/project/ChangeLog
org.glite.lbjp-common.jp-interface/project/version.properties
org.glite.lbjp-common.log/configure
org.glite.lbjp-common.maildir/configure
org.glite.lbjp-common.maildir/project/ChangeLog
org.glite.lbjp-common.maildir/project/version.properties
org.glite.lbjp-common.server-bones/configure
org.glite.lbjp-common.server-bones/project/ChangeLog
org.glite.lbjp-common.server-bones/project/version.properties
org.glite.lbjp-common.trio/configure
org.glite.lbjp-common.trio/project/ChangeLog
org.glite.lbjp-common.trio/project/version.properties
org.glite.lbjp-common.trio/test/trio_test.cpp

index a72805e..80097bd 100755 (executable)
@@ -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
index f1d3725..008dac5 100644 (file)
@@ -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
+
index a8d5c67..59a8ad7 100644 (file)
@@ -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
index 0593da9..53d1b4d 100644 (file)
@@ -1,4 +1,6 @@
 #include <assert.h>
+#include <stdlib.h> 
+#include <cstring> 
 #include <fstream>
 
 #include <cppunit/extensions/HelperMacros.h>
index a72805e..80097bd 100755 (executable)
@@ -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
index bccf86f..f02e829 100644 (file)
@@ -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 
+
index 0df28c6..2213c8e 100644 (file)
@@ -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
index fee5f52..80097bd 100755 (executable)
@@ -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/],
index ee5fc6f..8b4e31f 100644 (file)
@@ -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
index 24e9d05..3407b22 100644 (file)
 #include <errno.h>
 
 #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"
 
index 24a1d4d..3464a16 100644 (file)
@@ -4,7 +4,11 @@
 #include <unistd.h>
 
 #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
index a710148..91f4e60 100644 (file)
@@ -6,7 +6,11 @@
 #include <fcntl.h>
 
 #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;
index 8004537..7aeac7d 100644 (file)
@@ -7,7 +7,11 @@
 #include <errno.h>
 #include <sysexits.h>
 
+#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);
index 9f2a3aa..5fb23a6 100644 (file)
@@ -7,7 +7,11 @@
 #include <sys/types.h>
 #include <sys/wait.h>
 
+#ifdef BUILDING_LB_CLIENT
 #include "producer.h"
+#else
+#include "glite/lb/producer.h"
+#endif
 #include "glite/jobid/cjobid.h"
 
 static void slave();
index 3ea9a7e..3f532f0 100755 (executable)
@@ -132,4 +132,3 @@ function logit()
        print "send_log_ev" ff;
 }
 ' $1
-
index afa6558..03ddd40 100644 (file)
 #include <errno.h>
 
 #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"
index 1417c73..7e3b8e7 100644 (file)
@@ -6,7 +6,11 @@
 #include <fcntl.h>
 
 #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;
index b479af4..ac5cd67 100644 (file)
@@ -7,7 +7,11 @@
 #include <time.h>
 
 #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"
 
index 3873460..2b48494 100644 (file)
@@ -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[] = {
index 83ee8f2..2f9d339 100644 (file)
@@ -5,7 +5,11 @@
 #include <errno.h>
 #include <fcntl.h>
 
+#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"
 
index ac9b609..82b23c6 100644 (file)
@@ -7,7 +7,11 @@
 #include <time.h>
 
 #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
index 29e9de7..730dd95 100644 (file)
@@ -6,7 +6,11 @@
 #include <errno.h>
 
 #include "glite/jobid/cjobid.h"
+#ifdef BUILDING_LB_CLIENT
 #include "consumer.h"
+#else
+#include "glite/lb/consumer.h"
+#endif
 
 
 static struct option opts[] = {
index af6dcb1..626efde 100644 (file)
@@ -1,8 +1,13 @@
 #include <stdio.h>
+#include <stdlib.h>
 #include <time.h>
 #include <string.h>
 
+#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 <CE name>\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;
index a551d30..dfd54a6 100644 (file)
@@ -5,7 +5,11 @@
 #include <limits.h>
 
 #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";
index 6034f0a..67d7c07 100644 (file)
@@ -6,7 +6,11 @@
 #include <fcntl.h>
 
 #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
index 918625c..1d1dbbb 100644 (file)
@@ -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;
 
index c863192..b7545e4 100644 (file)
 - (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
+
index 7b77e9b..c28306c 100644 (file)
@@ -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}
index 9a7e696..80097bd 100755 (executable)
@@ -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]
index 0096568..72c9f8c 100644 (file)
@@ -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
index 3498a01..c8d302d 100644 (file)
@@ -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.
index 2f59f83..93cc697 100644 (file)
 - 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
+
index 7d75088..cc8af3f 100644 (file)
@@ -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);
        } 
 
index 9a7e696..80097bd 100755 (executable)
@@ -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]
index 967e07a..fc99f0a 100644 (file)
@@ -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} 
index 3e9bb2d..1d4f931 100644 (file)
@@ -72,7 +72,7 @@ int main(int argc, char *argv[])
 
        /*register*/
        if (edg_wll_NotifNew(ctx, (edg_wll_QueryRec const* const*)conditions, 
-           -1, NULL, &notif_id, &valid)) {
+           0, -1, NULL, &notif_id, &valid)) {
                char    *et,*ed;
 
                 edg_wll_Error(ctx,&et,&ed);
index 7b8a651..6256048 100644 (file)
@@ -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
+
index 67ab76c..8d5cbdb 100644 (file)
@@ -1,3 +1,3 @@
 # $Header$
-module.version=1.0.2
+module.version=1.0.3
 module.age=1
index 760afc1..2877785 100644 (file)
@@ -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 \
         </opt/glite/etc/glite-lb-dbsetup-migrate2transactions.sql
-\end{verbatim}
-\end{quote}
+   \end{verbatim}
+  \end{quote}
+ \item \emph{Start the servers.} MySQL and \LB. Check logs.
+\end{itemize}
 
-\item {\sloppy \LB version 2.0.  This version features merged \LB server and  proxy services using single database, pointers to purged jobs (``zombies'') and other improvements requiring database schema changes. Existing databases must be converted using provided shell script \verb'/opt/glite/etc/glite-lb-migrate_db2version20'. Use \verb'-s' parameter to convert database used by \LB server previously and \verb'-p' to convert database used by \LB proxy before. Optionally, unnecesary index can be dropped (this operation is likely to take a lot of time when applied to large database):
-\begin{quote}
-\verb'mysql -u lbserver lbserver20 -e "alter table events drop index host"'
-\end{quote}
-}
+
+\subsubsection{Migration to \LB 2.0}
+The migration process of existing \LB 1.x database to the \LB 2.0 is
+not handled automatically. The database schema change is required due
+to support of merged \LB server and proxy services using single
+database, pointers to purged jobs (``zombies'') and other
+improvements.
+
+Warning: There are two types of \LB database based on the fact that
+you can have a \LB server or \LB proxy. For more information about \LB
+proxy please see \ref{inst:LBproxy}.
+
+Steps:
+\begin{itemize}
+ \item \emph{Stop the server and upgrade to \LB 2.0.} Stop both a \LB
+ server and a MySQL server. Making a fresh backup copy of database is
+ a good idea. Do the upgrade to \LB 2.0, optionally you can move the
+ database to new OS in this step (see \ref{inst:OSmigration}).
+ \item \emph{Before migration some database tuning is
+ required.} Especially parameter \texttt{innodb\_buffer\_pool\_size}
+ needs to be increased, to support bigger transactions. For details
+ see Section~\ref{inst:db_tuning}.
+ \item \emph{Database type.} Check if you have a \LB server or a \LB
+ proxy. In the following step you must properly set the switch
+ \verb'-s' (server) or \verb'-p' (proxy).
+ \item \emph{Database conversion.} Use provided shell script (with the proper
+  switch from previous step):
+  \begin{quote}
+  \verb'/opt/glite/etc/glite-lb-migrate_db2version20 {-s|-p}'
+  \end{quote}
+ \item \emph{(Optional) Drop unnecesary index.} This operation is
+  likely to take a lot of time when applied to large database.
+  \begin{quote}
+  \verb'mysql -u lbserver lbserver20 -e "alter table events drop index host"'
+  \end{quote}
+ \item \emph{(Optional) Check the \LB indexes.} You may need to add
+ LastUpdateTime for monitoring services. See \ref{maintain:index}.
+ \item \emph{Start the servers.} MySQL and \LB. Check logs.
 \end{itemize}
 
+This migration procedure is tested in following environment: LB 1.9.x
+from RPMs SL4 32bit (mysql 4.1.22-2), LB server node, migration to SL5
+64bit (mysql 5.0.45-7) LB2.0 RPM. 
+
 %\TODO{automated conversion through YAIM ?}
 
 \subsubsection{Index configuration}
@@ -265,7 +337,7 @@ It is generally recommended to set it to aroung 75\% of RAM size
 (32bit OS/MySQL versions limit this to approx. 2GB due to address space 
 constraints).
 
-\item \texttt{innodb\_flush\_logs\_at\_trx\_commit} -- frequency of flushing to disk.
+\item \texttt{innodb\_flush\_log\_at\_trx\_commit} -- frequency of flushing to disk.
 Recommended values include:
 \begin{itemize}
 \item 1 (default) -- flush at each write transaction commit; relatively
@@ -286,6 +358,9 @@ disk separate from OS and MySQL log files (\texttt{innodb\_log\_group\_home\_dir
 \end{itemize}
 
 \subsection{\LB proxy}
+\label{inst:LBproxy}
+TODO: Describe LB Proxy migration here.
+
 
 All necessary configuration of standalone \LB proxy is done by YAIM,
 previous \LB server section applies to merged server+proxy setups (\LBnew only).
index 93defd7..e0bcb43 100644 (file)
@@ -1,7 +1,7 @@
 \section{Performance and stress tests}
 \label{s:perftests}
 
-\TODO{Michal: nejak sesynchronizovat s webem}
+%\TODO{Michal: nejak sesynchronizovat s webem}
 In this section we describe only the general idea of performance and stress tests of \LB components.
 This work is in progress and all necessary information is updated at the wiki page:
 
@@ -29,7 +29,7 @@ directories, these tests may require binaries from other components, though.
 \item All tests use sequence of events for typical jobs (small job, big job,
 small DAG, big DAG) prepared beforehand. These events are stored in files in
 ULM format in CVS (see \texttt{org.glite.lb.common/examples}).
-\TODO{new strategy? use real jobs...}
+%\TODO{new strategy? use real jobs...}
 
 \item Events are generated by \verb'glite-lb-stresslog' program, which reads
 ULM text of events for particular test job and logs the event sequence directly
@@ -64,12 +64,12 @@ queries, for example).
 
     \item Measure event throughput by
     \[ \mbox{event\_throughput} = \frac{1}{\mbox{time\_delivered} - \mbox{time\_arrived}} \]
-\TODO{measure job throughput for event patterns of typical jobs or deduce
-job throughput from throughput of selected types of events?}
+%\TODO{measure job throughput for event patterns of typical jobs or deduce
+%job throughput from throughput of selected types of events?}
 
     \item Publish the results on the web.
     
-    \item \TODO{ETICS test framework is used to run performance and stress tests automatically.}
+%    \item \TODO{ETICS test framework is used to run performance and stress tests automatically.}
     \end{itemize}
 
 % vztahuje se k cemu?
@@ -252,7 +252,7 @@ ii) events sent to IL
            1) stresslog sends events to interlogger using the UNIX
               domain socket and logd->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
index 2c3642c..b63c146 100644 (file)
@@ -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.}
index e30fa0d..c1750c0 100644 (file)
@@ -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{}
index 814f9b8..9104144 100755 (executable)
@@ -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()
index c289773..80097bd 100755 (executable)
@@ -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]
index d294ec7..68ae914 100644 (file)
@@ -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.
 
index a28529a..2a04be6 100644 (file)
@@ -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.
index 1585ac6..4eae228 100644 (file)
 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
+
index 77838dc..d5f008f 100644 (file)
@@ -3,6 +3,7 @@
 #include <errno.h>
 #include <string.h>
 #include <unistd.h>
+#include <stdio.h>
 
 #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)
index afec957..7fa0509 100644 (file)
@@ -10,6 +10,7 @@
 #include <signal.h>
 #include <pthread.h>
 #include <errno.h>
+#include <assert.h>
 
 #include "interlogd.h"
 #include "glite/lb/log_proto.h"
 #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  <file>          location of server private key\n"
               "  -C, --CAdir <dir>          directory containing CA certificates\n"
               "  -b, --book                 send events to bookkeeping server only\n"
+              "  -i, --pidfile              pid file\n"
               "  -l, --log-server <host>    specify address of log server\n"
               "  -s, --socket <path>        non-default path of local socket\n"
               "  -L, --lazy [<timeout>]     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);
 }
index 82bfc17..4c5763a 100644 (file)
@@ -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;
index d853d54..f9f8730 100644 (file)
@@ -13,6 +13,7 @@
 #include <unistd.h> 
 #include <string.h>
 #include <getopt.h>
+#include <assert.h>
 #include <errno.h>
 
 #include "glite/lbu/log.h"
 #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  <file>          location of server private key\n"
                "-C, --CAdir <dir>          directory containing CA certificates\n"
                "-s, --socket <dir>         interlogger's socket to send messages to\n"
+               "-i, --pidfile <file>       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
     */
index 29b2e2e..0edda7e 100644 (file)
@@ -69,6 +69,6 @@ recover_thread(void *q)
                                                 new_creds->name);
                        }
                }
-               sleep(INPUT_TIMEOUT);
+               sleep(RECOVER_TIMEOUT);
        }
 }
index 20bb196..eae5528 100644 (file)
@@ -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 (executable)
index ca199d2..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
-       Copyright (c) 2004 on behalf of the EU EGEE Project: 
-       The European Organization for Nuclear Research (CERN), 
-       Istituto Nazionale di Fisica Nucleare (INFN), Italy
-       Datamat Spa, Italy
-       Centre National de la Recherche Scientifique (CNRS), France
-       CS Systeme d'Information (CSSI), France
-       Royal Institute of Technology, Center for Parallel Computers (KTH-PDC), Sweden
-       Universiteit van Amsterdam (UvA), Netherlands
-       University of Helsinki (UH.HIP), Finland
-       University of Bergen (UiB), Norway
-       Council for the Central Laboratory of the Research Councils (CCLRC), United Kingdom
-
-       Build file for the GLite LB Client module
-       
-       Authors: Ales Krenek <ljocha@ics.muni.cz>
-       Version info: $Id$
-       Release: $Name$
-
-       Revision history:
-       $Log$
-       Revision 1.5  2005/05/26 15:13:55  zurek
-       inserted module.build.file
-       
-       Revision 1.4.2.1  2005/02/12 01:39:21  glbuild
-       Changed start time
-       
-       Revision 1.4  2004/10/18 19:16:09  zsalvet
-       RPM descriptions
-       
-       Revision 1.3  2004/08/05 15:24:32  dimeglio
-       Changed default target from compile to dist
-       
-       Revision 1.2  2004/07/07 12:07:41  akrenek
-       - use nonthr common library
-       - build without VOMS & GACL
-       
-       Revision 1.3  2004/07/06 17:45:30  flammer
-       Update of classpath definitions, targets & configure file.
-       
-       Revision 1.2  2004/06/23 00:29:33  dimeglio
-       Added standard comments and handling of support files
-       
--->
-
-<project name="server" default="dist">
-       
-       <!-- =========================================
-                Builds the GLite LB Client Module
-            ========================================= -->
-       
-       <!-- =========================================
-            Import properties (order is important)
-            ========================================= -->
-
-       <!-- import baseline & user properties -->
-       <import file="../org.glite/project/baseline.properties.xml" />
-
-       <!-- import component build properties,
-                       component properties &
-                       component common properties -->
-       <import file="./project/properties.xml"/>
-       
-       <!-- import subsystem build properties,
-                       subsystem properties &
-                       subsystem common properties -->
-       <import file="${subsystem.properties.file}"/>
-
-       <!-- import global build properties &
-                       global properties -->
-       <import file="${global.properties.file}" />
-               
-       <!-- =========================================
-                Load dependency property files (order is important)
-            ========================================= -->
-       <property file="${user.dependencies.file}"/>
-       <property file="${component.dependencies.file}" />
-       <property file="${subsystem.dependencies.file}" />
-       <property file="${global.dependencies.file}"/>
-       
-       <!-- =========================================
-                Load configure options (order is important)
-            ========================================= -->
-       <import file="${global.configure.options.file}"/>
-       <import file="${component.configure.options.file}"/>
-
-       <!-- =========================================
-                Import task definitions (order is important)
-            ========================================= -->
-       <import file="${subsystem.taskdefs.file}" />
-       <import file="${global.taskdefs.file}" />
-                       
-       <!-- =========================================
-                Load common targets
-            ========================================= -->
-       <import file="${global.targets-simple_make.file}" />
-
-       <!-- =========================================
-                Load version file 
-            ========================================= -->
-       <property file="${module.version.file}"/>
-       <property file="${module.build.file}"/>
-               
-       <!-- ==============================================
-                Local private targets
-            ============================================== -->
-       
-       <target name="localinit"
-               description="Module specific initialization tasks">
-        <!-- Copy support files from the subsystem project to the component project-->
-               <copy toDir="${module.project.dir}">
-                       <fileset dir="${subsystem.project.dir}">
-                               <include name="at3" />
-                               <include name="*.T" />
-                               <include name="*.pm" />
-                       </fileset>
-               </copy> 
-               <antcall target="lbmakefiles" />
-       </target>
-               
-       <target name="localcompile"
-               description="Module specific compile tasks">
-       </target>
-       
-       <target name="localclean"
-               description="Module specific cleaning tasks">
-               <delete>
-                       <fileset dir="${module.project.dir}">
-                               <include name="at3" />
-                               <include name="*.T" />
-                               <include name="*.pm" />
-                       </fileset>
-               </delete>       
-       </target>
-       
-       <!-- =========================================
-            RPM settings
-            ========================================= -->
-
-       <property name="build.package.summary" value="L&amp;B bookkeeping server" />
-       <property name="build.package.description" value=" The daemon
-installed at the Logging &amp; Bookkeeping (L&amp;B) server
-machine.&#xA;It is responsible for accepting events from locallogger,
-storing them in RDBMS,&#xA;and performing queries on client requests
-(job status, job log etc.).&#xA;Also includes purge utilities
-to remove (and optionally archive) inactive&#xA;data from
-the database and to change database index configuration." />
-
-</project>             
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 (file)
index 51eec7a..0000000
+++ /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;
index b6c81b0..a547fbf 100644 (file)
@@ -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"
index e920349..aa16a8f 100755 (executable)
@@ -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
index 9445d53..80097bd 100755 (executable)
@@ -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]
index 693d28a..62fbfb2 100644 (file)
 - 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 (file)
index 3a73336..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
-       Copyright (c) 2004 on behalf of the EU EGEE Project: 
-       The European Organization for Nuclear Research (CERN), 
-       Istituto Nazionale di Fisica Nucleare (INFN), Italy
-       Datamat Spa, Italy
-       Centre National de la Recherche Scientifique (CNRS), France
-       CS Systeme d'Information (CSSI), France
-       Royal Institute of Technology, Center for Parallel Computers (KTH-PDC), Sweden
-       Universiteit van Amsterdam (UvA), Netherlands
-       University of Helsinki (UH.HIP), Finland
-       University of Bergen (UiB), Norway
-       Council for the Central Laboratory of the Research Councils (CCLRC), United Kingdom
-
-       Configuration options for the GLite LB Client module
-       
-       Authors: Ales Krenek <ljocha@ics.muni.cz>
-       Version info: $Id$
-       Release: $Name$
-
-       Revision history:
-       $Log$
-       Revision 1.11  2006/03/17 11:47:02  zsalvet
-       Adapt RGMA export file format and file handling to lcg-mon-job-status
-       use. Socket notification code is still available and is nonblocking now.
-       C ClassAd API is used to retrieve VO from JDL.
-
-       Revision 1.10  2006/03/15 18:13:51  akrenek
-       cares
-       
-       Revision 1.9  2006/03/15 18:12:21  akrenek
-       merge 1.5
-       
-       Revision 1.8.4.2  2006/02/20 09:14:30  zsalvet
-       Revert unfinished changes committed by mistake.
-       
-       Revision 1.8  2005/09/19 15:24:20  akrenek
-       "The gigantic merge"; from release 1.4 branch to HEAD
-       
-       Revision 1.7.2.1  2005/08/09 15:02:10  jskrabal
-       - build with broken gsoap 2.7.0 repository package
-       
-       Revision 1.7  2005/08/03 09:30:28  akrenek
-       Merged the release 1.0 branch
-       
-       Revision 1.6  2005/01/21 11:27:44  jpospi
-       completely remove gridsite.prefix and voms.prefix
-       
-       Revision 1.5  2005/01/20 11:43:00  jpospi
-       handle correctly gridsite_prefix and voms_prefix
-       
-       Revision 1.4.2.1  2005/05/19 13:41:22  akrenek
-       fix build with mysql 4.1.x
-       
-       Revision 1.4  2004/10/15 11:03:03  jskrabal
-       - merge fixes
-       
-       Revision 1.3  2004/10/06 08:14:36  dkouril
-       Support for VOMS and GACL (gridsite) from SCM CVS
-       - legacy names of GACL routines changed to new ones, which also prevents from
-         conflicts with a few older routine names being badly redefined to new ones
-       - VOMS and GACL are still commented out in the Makefile until a correct way
-         of defining dependencies is negotiated.
-       
-       Revision 1.2.2.1  2004/09/21 07:39:45  akrenek
-       
-       - First version of BK server using "server bones" library and WS protocol.
-       - Under hard development - unstable & buggy
-       
-       Revision 1.2  2004/09/08 13:38:03  akrenek
-       query event unit test (not complete yet)
-       
-       Revision 1.1  2004/07/07 12:08:09  akrenek
-       *** empty log message ***
-       
-       Revision 1.2  2004/07/06 20:47:11  flammer
-       Moved to configure.properties.xml
-       
-       
--->
-
-       <!-- ======================================================
-         Define extra properties here ...
-         ====================================================== -->
-        
-       <project name="LB Client configuration options">                                                                        
-               <target name="lbmakefiles">
-                       <exec executable="ln" failonerror="true">
-                               <arg line="-fs ${component.dir}/Makefile ${module.build.dir}/Makefile"/>
-                       </exec>
-                       <echo file="${module.build.dir}/Makefile.inc">
-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}
-                       </echo>
-           </target>
-       </project>
diff --git a/org.glite.lb.server/project/properties.xml b/org.glite.lb.server/project/properties.xml
deleted file mode 100755 (executable)
index 781ad01..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-       Copyright (c) 2004 on behalf of the EU EGEE Project: 
-       The European Organization for Nuclear Research (CERN), 
-       Istituto Nazionale di Fisica Nucleare (INFN), Italy
-       Datamat Spa, Italy
-       Centre National de la Recherche Scientifique (CNRS), France
-       CS Systeme d'Information (CSSI), France
-       Royal Institute of Technology, Center for Parallel Computers (KTH-PDC), Sweden
-       Universiteit van Amsterdam (UvA), Netherlands
-       University of Helsinki (UH.HIP), Finland
-       University of Bergen (UiB), Norway
-       Council for the Central Laboratory of the Research Councils (CCLRC), United Kingdom
-
-       Common build properties file for the Glite LB Server component
-       
-       Authors: Ales Krenek <ljocha@ics.muni.cz>
-       Version info: $Id$
-       Release: $Name$ 
-       
-       Revision history:
-       $Log$
--->
-
-<project name="LB Server component common properties">
-
-       <!-- Include build properties to allow overwriting 
-            of properties for subsystem                    -->
-       <property file="build.properties" />    
-
-       <!-- ======================================================
-          Define corresponding subsystem properties
-                ====================================================== -->
-
-       <!-- Subsystem name -->
-       <property name="subsystem.name" value="${lb.subsystem.name}"/>
-               
-       <!-- Subsystem prefix -->
-       <property name="subsystem.prefix" value="${lb.subsystem.prefix}"/>
-
-       <!-- ======================================================
-          Define component properties
-                ====================================================== -->
-                               
-       <!-- Component name prefix -->
-       <property name="component.prefix" value="server" />
-                       
-       <!-- ======================================================
-          Define general component properties
-                ====================================================== -->
-       
-       <import file="${component.general.properties.file}" />
-                                               
-       <!-- ======================================================
-                Define extra properties here ...
-                ====================================================== -->
-                
-                                                               
-</project>
\ No newline at end of file
index 3944d0a..0051b5e 100644 (file)
@@ -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
index acd7894..62e3ff0 100644 (file)
@@ -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);
+                                                               }
                                                        }
                                                }
                                        }
index 13b724e..1fea604 100644 (file)
@@ -24,6 +24,7 @@
 #include <arpa/nameser.h>
 #include <resolv.h>
 #include <ares.h>
+#include <ares_version.h>
 #include <errno.h>
 
 #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;
 
index ab1fab8..3d4b006 100644 (file)
@@ -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);
index 761d305..337b62b 100644 (file)
@@ -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);
 
index 48c5ea2..e5f7289 100644 (file)
 #include <libxml/parser.h> 
 #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 <glite/security/lcas/lcas_pem.h>
 
+#include "glite/security/voms/voms_apic.h"
+
 /* XXX should be defined in gridsite-gacl.h */
 GRSTgaclEntry *GACLparseEntry(xmlNodePtr cur);
 
index f014a6c..fbec29b 100644 (file)
@@ -5,6 +5,8 @@
 #include <string.h>
 #include <ctype.h>
 #include <errno.h>
+#include <signal.h>
+#include <unistd.h>
 
 #include <expat.h>
 
@@ -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;
index e352dde..28ef18d 100644 (file)
@@ -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);
index 35951bf..4252fdd 100644 (file)
@@ -3,8 +3,11 @@
 
 #ident "$Header"
 
+#include <signal.h>
 #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
index 4a69d8c..60e470e 100644 (file)
@@ -3,6 +3,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
+#include <syslog.h>
 #include <errno.h>
 #include <time.h>
 #include <assert.h>
@@ -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" : "",
index 62538f2..5bde3f7 100644 (file)
@@ -9,6 +9,7 @@
 #include <string.h>
 #include <time.h>
 #include <errno.h>
+#include <signal.h>
 
 #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 */
                
index b01c711..a302f5b 100644 (file)
@@ -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;
        }
index 0c08d8c..2233e49 100644 (file)
@@ -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:
index 1ba7761..fc147a7 100644 (file)
@@ -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
index c289773..80097bd 100755 (executable)
@@ -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]
index 8be7476..bb18f2f 100644 (file)
@@ -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 
index 1cd5b58..00ba903 100644 (file)
 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
+
index 22cf109..5e05b1d 100644 (file)
@@ -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}
index 544b4c5..4711999 100755 (executable)
@@ -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;
index 9a7e696..80097bd 100755 (executable)
@@ -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]
index 039d5c9..b834a70 100644 (file)
@@ -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
index 9a7e696..80097bd 100755 (executable)
@@ -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]
index 848efa4..4482ba0 100644 (file)
@@ -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(
index acac258..f2508fe 100644 (file)
 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
+
index edb024a..368e298 100755 (executable)
@@ -1,3 +1,3 @@
 # $Header$
-module.version=2.0.1
+module.version=2.0.3
 module.age=1
index 4248528..9529e74 100644 (file)
@@ -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 <path>           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 */
index 9a7e696..80097bd 100755 (executable)
@@ -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]
index ab3aab4..f5527f2 100644 (file)
@@ -13,3 +13,6 @@
 3.0.0-4
 - configure script update
 
+3.0.1-1
+- Initial implementation of WS notifications
+
index 9a7e696..80097bd 100755 (executable)
@@ -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]
index e4689aa..16b4037 100644 (file)
@@ -14,3 +14,9 @@
 - configure script update
 - new example script
 
+1.0.1-2
+- configure script update
+
+1.0.1-3
+- Module repacked
+
index e967ca5..fcf0e25 100644 (file)
@@ -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
index 3f5fc54..80097bd 100755 (executable)
@@ -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]
index 61009db..dccfa60 100644 (file)
@@ -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
index 1915902..dafb817 100644 (file)
@@ -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
index c289773..80097bd 100755 (executable)
@@ -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]
index 55c45ff..a4e8938 100644 (file)
 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.
+
index 80722eb..b40a2b3 100644 (file)
@@ -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
index c059fa4..80097bd 100755 (executable)
@@ -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
index cd9fdf6..8537bb9 100644 (file)
@@ -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.
+
index 9b1d449..11299ee 100644 (file)
@@ -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
index 3fbd147..80097bd 100755 (executable)
@@ -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]
index c059fa4..80097bd 100755 (executable)
@@ -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
index 9e072fa..241af0a 100644 (file)
@@ -4,3 +4,6 @@
 1.0.0-2
 - configure script update (globus flavors added to configure call)
 
+1.0.0-3
+- configure script update
+
index 5cfac6f..af720aa 100644 (file)
@@ -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
index c059fa4..80097bd 100755 (executable)
@@ -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
index f503ed0..1d25f18 100644 (file)
@@ -4,3 +4,6 @@
 1.0.0-3
 - configure script update (globus flavors added to configure call)
 
+1.0.0-4
+- configure script update
+
index ef4723a..78dfc90 100644 (file)
@@ -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
index c059fa4..80097bd 100755 (executable)
@@ -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
index 3055c83..f12d6ac 100644 (file)
@@ -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 
+
index e86f816..5dbb8ed 100644 (file)
@@ -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
index 3ba4b9c..2cbe502 100644 (file)
@@ -1,4 +1,5 @@
 #include <iostream>
+#include <cstring>
 
 #include <cppunit/extensions/HelperMacros.h>
 #include <cppunit/TestFixture.h>