Merge from branch_3_2
authorZdeněk Šustr <sustr4@cesnet.cz>
Fri, 8 Jun 2012 09:29:45 +0000 (09:29 +0000)
committerZdeněk Šustr <sustr4@cesnet.cz>
Fri, 8 Jun 2012 09:29:45 +0000 (09:29 +0000)
73 files changed:
org.glite.jobid.api-c/project/debian.control
org.glite.jobid.api-c/project/glite-jobid-api-c.spec
org.glite.jobid.api-cpp/project/debian.control
org.glite.jobid.api-cpp/project/glite-jobid-api-cpp.spec
org.glite.lb.client-java/configure
org.glite.lb.client/configure
org.glite.lb.client/project/ChangeLog
org.glite.lb.client/project/debian.control
org.glite.lb.client/project/glite-lb-client.spec
org.glite.lb.client/project/version.properties
org.glite.lb.client/src/register_sandbox.c
org.glite.lb.common/configure
org.glite.lb.common/project/ChangeLog
org.glite.lb.common/project/debian.control
org.glite.lb.common/project/glite-lb-common.spec
org.glite.lb.common/project/version.properties
org.glite.lb.common/src/context.c
org.glite.lb.doc/project/debian.control
org.glite.lb.doc/project/glite-lb-doc.spec
org.glite.lb.emi-lb/configure
org.glite.lb.harvester/project/debian.control
org.glite.lb.harvester/project/glite-lb-harvester.spec
org.glite.lb.logger-msg/configure
org.glite.lb.logger-msg/project/ChangeLog
org.glite.lb.logger-msg/project/debian.control
org.glite.lb.logger-msg/project/glite-lb-logger-msg.spec
org.glite.lb.logger-msg/project/version.properties
org.glite.lb.logger/project/debian.control
org.glite.lb.logger/project/glite-lb-logger.spec
org.glite.lb.server/Makefile
org.glite.lb.server/configure
org.glite.lb.server/project/ChangeLog
org.glite.lb.server/project/debian.control
org.glite.lb.server/project/debian.rules
org.glite.lb.server/project/glite-lb-server.spec
org.glite.lb.server/project/version.properties
org.glite.lb.server/src/authz_policy.c
org.glite.lb.server/src/authz_policy.h
org.glite.lb.server/src/db_store.c
org.glite.lb.server/src/dump.c
org.glite.lb.server/src/lb_authz.c
org.glite.lb.server/src/lb_html.c
org.glite.lb.server/src/lb_html.h
org.glite.lb.server/src/lb_proto.c
org.glite.lb.server/src/lb_text.c
org.glite.lb.server/src/lb_text.h
org.glite.lb.server/src/load.c
org.glite.lb.server/src/notification.c
org.glite.lb.server/src/server_stats.h
org.glite.lb.server/src/srv_purge.c
org.glite.lb.server/src/stats.c
org.glite.lb.state-machine/configure
org.glite.lb.state-machine/project/ChangeLog
org.glite.lb.state-machine/project/debian.control
org.glite.lb.state-machine/project/glite-lb-state-machine.spec
org.glite.lb.state-machine/project/version.properties
org.glite.lb.state-machine/src/process_event.c
org.glite.lb.utils/project/debian.control
org.glite.lb.utils/project/glite-lb-utils.spec
org.glite.lb.ws-test/project/debian.control
org.glite.lb.ws-test/project/glite-lb-ws-test.spec
org.glite.lb/configure
org.glite.lb/project/version.properties
org.glite.lbjp-common.db/project/debian.control
org.glite.lbjp-common.db/project/glite-lbjp-common-db.spec
org.glite.lbjp-common.gsoap-plugin/project/debian.control
org.glite.lbjp-common.gsoap-plugin/project/glite-lbjp-common-gsoap-plugin.spec
org.glite.lbjp-common.gss/project/debian.control
org.glite.lbjp-common.gss/project/glite-lbjp-common-gss.spec
org.glite.lbjp-common.jp-interface/project/debian.control
org.glite.lbjp-common.jp-interface/project/glite-lbjp-common-jp-interface.spec
org.glite.lbjp-common.trio/project/debian.control
org.glite.lbjp-common.trio/project/glite-lbjp-common-trio.spec

index b0685f8..0c5eb1a 100644 (file)
@@ -2,7 +2,7 @@ Source: glite-jobid-api-c
 Priority: extra
 Maintainer: @MAINTAINER@
 Uploaders: @UPLOADERS@
-Build-Depends: debhelper (>= 7.0.50~), chrpath, libcppunit-dev, libtool, libssl-dev
+Build-Depends: debhelper (>= 7.0.50~), chrpath, libcppunit-dev, libtool, libssl-dev, pkg-config
 Standards-Version: 3.9.1
 Section: libs
 Homepage: @URL@
index 090b292..c428c70 100644 (file)
@@ -10,6 +10,7 @@ BuildRequires: chrpath
 BuildRequires: libtool
 BuildRequires: cppunit-devel
 BuildRequires: openssl-devel
+BuildRequires: pkgconfig
 BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
 AutoReqProv: yes
 Source: http://eticssoft.web.cern.ch/eticssoft/repository/emi/emi.jobid.api-c/%{version}/src/%{name}-@VERSION@.src.tar.gz
index 4d4c2be..8404282 100644 (file)
@@ -2,7 +2,7 @@ Source: glite-jobid-api-cpp
 Priority: extra
 Maintainer: @MAINTAINER@
 Uploaders: @UPLOADERS@
-Build-Depends: debhelper (>= 7.0.50~), libglite-jobid-api-c-dev, libcppunit-dev, libtool
+Build-Depends: debhelper (>= 7.0.50~), libglite-jobid-api-c-dev, libcppunit-dev, libtool, pkg-config
 Standards-Version: 3.9.1
 Section: libs
 Homepage: @URL@
index ea4299c..9f4a85a 100644 (file)
@@ -9,6 +9,7 @@ Group: Development/Libraries
 BuildRequires: glite-jobid-api-c-devel
 BuildRequires: libtool
 BuildRequires: cppunit-devel
+BuildRequires: pkgconfig
 BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
 AutoReqProv: yes
 Source: http://eticssoft.web.cern.ch/eticssoft/repository/emi/emi.jobid.api-c/%{version}/src/%{name}-@VERSION@.src.tar.gz
index bcb1531..007c7b2 100755 (executable)
@@ -400,15 +400,15 @@ if ($mode eq 'build') { for my $ext (keys %externs) {
                my $jdk_prefix;
 
                print "Looking for some caffein ... ";
-               if (defined $ENV{'JDK_HOME'}) {
+               if (defined($ENV{'JDK_HOME'}) and -f "$ENV{'JDK_HOME'}/include/jni.h") {
                        $jdk_prefix = $ENV{'JDK_HOME'};
                        print "JDK_HOME=$jdk_prefix\n";
-               } elsif (defined $ENV{'JAVA_HOME'}) {
+               } elsif (defined($ENV{'JAVA_HOME'}) and -f "$ENV{'JAVA_HOME'}/include/jni.h") {
                        $jdk_prefix = $ENV{'JAVA_HOME'};
                        print "JAVA_HOME=$jdk_prefix\n";
                } else {
                        foreach my $i (0..$#{$externs{$ext}{locations}}) {
-                               if (-e $externs{$ext}{locations}[$i]) {
+                               if (-e $externs{$ext}{locations}[$i] and -f "$externs{$ext}{locations}[$i]/include/jni.h") {
                                        $jdk_prefix=$externs{$ext}{locations}[$i];
                                        print "(found directory $jdk_prefix)\n";
                                        last;
@@ -591,37 +591,37 @@ BEGIN{
 );
 
 %need_externs_aux = (
-       'lb.client' => [ qw/cppunit:B classads libtool:B globus:B/ ],
-       'lb.common' => [ qw/expat cares:B cppunit:B classads libtool:B globus:B/ ],
+       'lb.client' => [ qw/cppunit:B classads:B libtool:B globus:B pkgconfig:B/ ],
+       'lb.common' => [ qw/expat cares:B cppunit:B classads:B libtool:B globus:B pkgconfig:B/ ],
        'lb.doc' => [ qw/tetex-latex:B/ ],
-       'lb.logger' => [ qw/cppunit:B libtool:B globus:B/ ],
-       'lb.logger-msg' => [ qw/cppunit:B activemq libtool:B globus:B/ ],
+       'lb.logger' => [ qw/cppunit:B libtool:B globus:B pkgconfig:B/ ],
+       'lb.logger-msg' => [ qw/cppunit:B activemq libtool:B globus:B pkgconfig:B/ ],
        'lb.nagios' => [ qw/globus_proxy_utils:R/ ],
-       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B/ ],
-       'lb.state-machine' => [ qw/classads libtool:B libxslt:B expat:B globus:B/ ],
-       'lb.utils' => [ qw/cppunit:B libtool:B globus:B/ ],
+       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads:B voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B pkgconfig:B/ ],
+       'lb.state-machine' => [ qw/classads:B libtool:B libxslt:B expat:B globus:B pkgconfig:B/ ],
+       'lb.utils' => [ qw/cppunit:B libtool:B globus:B pkgconfig:B/ ],
        'lb.ws-interface' => [ qw/libxslt:B tidy:B/ ],
-       'lb.ws-test' => [ qw/gsoap:B libtool:B globus:B/ ],
+       'lb.ws-test' => [ qw/gsoap:B libtool:B globus:B pkgconfig:B/ ],
        'lb.types' => [ qw// ],
-       'lb.harvester' => [ qw/docbook-utils:B libtool:B globus:B/ ],
-       'lbjp-common.db' => [ qw/mysql-devel:B postgresql:B cppunit:B log4c:B libtool:B/ ],
+       'lb.harvester' => [ qw/docbook-utils:B libtool:B globus:B pkgconfig:B/ ],
+       'lbjp-common.db' => [ qw/mysql-devel:B postgresql:B cppunit:B log4c:B libtool:B pkgconfig:B/ ],
        'lbjp-common.log' => [ qw/log4c libtool:B/ ],
        'lbjp-common.maildir' => [ qw/libtool:B/ ],
        'lbjp-common.server-bones' => [ qw/libtool:B/ ],
-       'lbjp-common.trio' => [ qw/cppunit:B libtool:B/ ],
-       'lbjp-common.jp-interface' => [ qw/cppunit:B log4c:B libtool:B/ ],
-       'lbjp-common.gss' =>  [ qw/globus_essentials:R globus:B cares cppunit:B libtool:B/ ],
-       'lbjp-common.gsoap-plugin' =>  [ qw/cppunit:B globus_essentials:R globus:B cares:B gsoap gsoapxx libtool:B/ ],
-       'jobid.api-c' =>  [ qw/cppunit:B libtool:B openssl:B/ ],
-       'jobid.api-cpp' =>  [ qw/cppunit:B libtool:B/ ],
+       'lbjp-common.trio' => [ qw/cppunit:B libtool:B pkgconfig:B/ ],
+       'lbjp-common.jp-interface' => [ qw/cppunit:B log4c:B libtool:B pkgconfig:B/ ],
+       'lbjp-common.gss' =>  [ qw/globus_essentials:R globus:B cares cppunit:B libtool:B pkgconfig:B/ ],
+       'lbjp-common.gsoap-plugin' =>  [ qw/cppunit:B globus_essentials:R globus:B cares:B gsoap gsoapxx libtool:B pkgconfig:B/ ],
+       'jobid.api-c' =>  [ qw/cppunit:B libtool:B openssl:B pkgconfig:B/ ],
+       'jobid.api-cpp' =>  [ qw/cppunit:B libtool:B pkgconfig:B/ ],
        'jobid.api-java' =>  [ qw/ant:B jdk:B/ ],
-       'jp.client' => [ qw/gsoap libtar globus_essentials:R globus:B/ ],
+       'jp.client' => [ qw/gsoap libtar globus_essentials:R globus:B pkgconfig:B/ ],
         'jp.doc' => [],
-        'jp.index' => [ qw/gsoap globus_essentials:R globus:B mysql-server:R/ ],
-        'jp.primary' => [ qw/classads gsoap libtar globus_essentials:R globus:B  mysql-server:R/ ],
+        'jp.index' => [ qw/gsoap globus_essentials:R globus:B mysql-server:R pkgconfig:B/ ],
+        'jp.primary' => [ qw/classads:B gsoap libtar globus_essentials:R globus:B  mysql-server:R pkgconfig:B/ ],
         'jp.server-common' => [],
         'jp.ws-interface' => [],
-       'gridsite.core' => [ qw/httpd-devel:B gsoap:B globus:B curl:B doxygen:B fuse-devel:B libxml2:B openssl:B doxygen:B/ ],
+       'gridsite.core' => [ qw/httpd-devel:B gsoap:B globus:B curl:B doxygen:B fuse-devel:B libxml2:B openssl:B doxygen:B pkgconfig:B/ ],
        'gridsite.commands' => [ qw/curl:R openssl:R/ ],
        'gridsite.apache' => [ qw/libxml2:R openssl:R curl:R/ ],
        'gridsite.libs' => [ qw/libxml2:R openssl:R/ ],
@@ -631,9 +631,9 @@ BEGIN{
        'gridsite.service-clients' => [ qw/curl:R gsoap:R gsoapxx:R/ ],
        'gridsite.gsexec' => [ qw// ],
        'gridsite.1.5-compat' => [ qw/httpd-devel:B gsoap:B globus:B curl:B doxygen:B fuse-devel:B libxml2:B openssl:B doxygen:B/ ],
-       'px.proxyrenewal' => [ qw/globus:B globus_essentials:R myproxy-devel:B voms:B libtool:B/ ],
+       'px.proxyrenewal' => [ qw/globus:B globus_essentials:R myproxy-devel:B voms:B libtool:B pkgconfig:B/ ],
        'px.myproxy-config' => [ qw/myproxy-admin:R/ ], # in myproxy-config.spec
-       'canl.c' => [ qw/cares:B openssl:B libtool:B bison:B flex:B krb5-devel:B/ ],
+       'canl.c' => [ qw/cares:B openssl:B libtool:B bison:B flex:B krb5-devel:B pkgconfig:B/ ],
 );
 
 %need_jars = (
@@ -1552,6 +1552,8 @@ sub mode_etics {
                $conftag = $branch;
                # forced low age number
                $age = $branch eq 'HEAD' ? '0head' : '0dev';
+               # add project major version number
+               $age .= '.'.$project_version;
                push @copts, '--version ${version}-${age}';
        }
        else {
@@ -1564,11 +1566,13 @@ sub mode_etics {
                if ($project eq 'emi' and $project_version == 1) {
                        $age = $age - 1;
                }
-       }
 
-       # emi1 suffix for older packaging
+               # '.emi1' suffix for older packaging
+               if ($project eq 'emi' and $project_version == 1) {
+                       $age = $age.'.'.$project.$project_version;
+               }
+       }
        if ($project eq 'emi' and $project_version == 1) {
-               $age = $age.$project.$project_version;
                $conf = $conf.$project.$project_version;
        }
 
@@ -1868,7 +1872,7 @@ $output};
 
                        `diff -b "$file" "$file.new"`;
                        if ($? == 0) {
-                               print STDERR "($file not changed)\n";
+                               print STDERR "($file not changed)\n" if ($debug);
                                unlink "$file.new";
                        } else {
                                print STDERR "Writing $file\n";
index bcb1531..007c7b2 100755 (executable)
@@ -400,15 +400,15 @@ if ($mode eq 'build') { for my $ext (keys %externs) {
                my $jdk_prefix;
 
                print "Looking for some caffein ... ";
-               if (defined $ENV{'JDK_HOME'}) {
+               if (defined($ENV{'JDK_HOME'}) and -f "$ENV{'JDK_HOME'}/include/jni.h") {
                        $jdk_prefix = $ENV{'JDK_HOME'};
                        print "JDK_HOME=$jdk_prefix\n";
-               } elsif (defined $ENV{'JAVA_HOME'}) {
+               } elsif (defined($ENV{'JAVA_HOME'}) and -f "$ENV{'JAVA_HOME'}/include/jni.h") {
                        $jdk_prefix = $ENV{'JAVA_HOME'};
                        print "JAVA_HOME=$jdk_prefix\n";
                } else {
                        foreach my $i (0..$#{$externs{$ext}{locations}}) {
-                               if (-e $externs{$ext}{locations}[$i]) {
+                               if (-e $externs{$ext}{locations}[$i] and -f "$externs{$ext}{locations}[$i]/include/jni.h") {
                                        $jdk_prefix=$externs{$ext}{locations}[$i];
                                        print "(found directory $jdk_prefix)\n";
                                        last;
@@ -591,37 +591,37 @@ BEGIN{
 );
 
 %need_externs_aux = (
-       'lb.client' => [ qw/cppunit:B classads libtool:B globus:B/ ],
-       'lb.common' => [ qw/expat cares:B cppunit:B classads libtool:B globus:B/ ],
+       'lb.client' => [ qw/cppunit:B classads:B libtool:B globus:B pkgconfig:B/ ],
+       'lb.common' => [ qw/expat cares:B cppunit:B classads:B libtool:B globus:B pkgconfig:B/ ],
        'lb.doc' => [ qw/tetex-latex:B/ ],
-       'lb.logger' => [ qw/cppunit:B libtool:B globus:B/ ],
-       'lb.logger-msg' => [ qw/cppunit:B activemq libtool:B globus:B/ ],
+       'lb.logger' => [ qw/cppunit:B libtool:B globus:B pkgconfig:B/ ],
+       'lb.logger-msg' => [ qw/cppunit:B activemq libtool:B globus:B pkgconfig:B/ ],
        'lb.nagios' => [ qw/globus_proxy_utils:R/ ],
-       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B/ ],
-       'lb.state-machine' => [ qw/classads libtool:B libxslt:B expat:B globus:B/ ],
-       'lb.utils' => [ qw/cppunit:B libtool:B globus:B/ ],
+       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads:B voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B pkgconfig:B/ ],
+       'lb.state-machine' => [ qw/classads:B libtool:B libxslt:B expat:B globus:B pkgconfig:B/ ],
+       'lb.utils' => [ qw/cppunit:B libtool:B globus:B pkgconfig:B/ ],
        'lb.ws-interface' => [ qw/libxslt:B tidy:B/ ],
-       'lb.ws-test' => [ qw/gsoap:B libtool:B globus:B/ ],
+       'lb.ws-test' => [ qw/gsoap:B libtool:B globus:B pkgconfig:B/ ],
        'lb.types' => [ qw// ],
-       'lb.harvester' => [ qw/docbook-utils:B libtool:B globus:B/ ],
-       'lbjp-common.db' => [ qw/mysql-devel:B postgresql:B cppunit:B log4c:B libtool:B/ ],
+       'lb.harvester' => [ qw/docbook-utils:B libtool:B globus:B pkgconfig:B/ ],
+       'lbjp-common.db' => [ qw/mysql-devel:B postgresql:B cppunit:B log4c:B libtool:B pkgconfig:B/ ],
        'lbjp-common.log' => [ qw/log4c libtool:B/ ],
        'lbjp-common.maildir' => [ qw/libtool:B/ ],
        'lbjp-common.server-bones' => [ qw/libtool:B/ ],
-       'lbjp-common.trio' => [ qw/cppunit:B libtool:B/ ],
-       'lbjp-common.jp-interface' => [ qw/cppunit:B log4c:B libtool:B/ ],
-       'lbjp-common.gss' =>  [ qw/globus_essentials:R globus:B cares cppunit:B libtool:B/ ],
-       'lbjp-common.gsoap-plugin' =>  [ qw/cppunit:B globus_essentials:R globus:B cares:B gsoap gsoapxx libtool:B/ ],
-       'jobid.api-c' =>  [ qw/cppunit:B libtool:B openssl:B/ ],
-       'jobid.api-cpp' =>  [ qw/cppunit:B libtool:B/ ],
+       'lbjp-common.trio' => [ qw/cppunit:B libtool:B pkgconfig:B/ ],
+       'lbjp-common.jp-interface' => [ qw/cppunit:B log4c:B libtool:B pkgconfig:B/ ],
+       'lbjp-common.gss' =>  [ qw/globus_essentials:R globus:B cares cppunit:B libtool:B pkgconfig:B/ ],
+       'lbjp-common.gsoap-plugin' =>  [ qw/cppunit:B globus_essentials:R globus:B cares:B gsoap gsoapxx libtool:B pkgconfig:B/ ],
+       'jobid.api-c' =>  [ qw/cppunit:B libtool:B openssl:B pkgconfig:B/ ],
+       'jobid.api-cpp' =>  [ qw/cppunit:B libtool:B pkgconfig:B/ ],
        'jobid.api-java' =>  [ qw/ant:B jdk:B/ ],
-       'jp.client' => [ qw/gsoap libtar globus_essentials:R globus:B/ ],
+       'jp.client' => [ qw/gsoap libtar globus_essentials:R globus:B pkgconfig:B/ ],
         'jp.doc' => [],
-        'jp.index' => [ qw/gsoap globus_essentials:R globus:B mysql-server:R/ ],
-        'jp.primary' => [ qw/classads gsoap libtar globus_essentials:R globus:B  mysql-server:R/ ],
+        'jp.index' => [ qw/gsoap globus_essentials:R globus:B mysql-server:R pkgconfig:B/ ],
+        'jp.primary' => [ qw/classads:B gsoap libtar globus_essentials:R globus:B  mysql-server:R pkgconfig:B/ ],
         'jp.server-common' => [],
         'jp.ws-interface' => [],
-       'gridsite.core' => [ qw/httpd-devel:B gsoap:B globus:B curl:B doxygen:B fuse-devel:B libxml2:B openssl:B doxygen:B/ ],
+       'gridsite.core' => [ qw/httpd-devel:B gsoap:B globus:B curl:B doxygen:B fuse-devel:B libxml2:B openssl:B doxygen:B pkgconfig:B/ ],
        'gridsite.commands' => [ qw/curl:R openssl:R/ ],
        'gridsite.apache' => [ qw/libxml2:R openssl:R curl:R/ ],
        'gridsite.libs' => [ qw/libxml2:R openssl:R/ ],
@@ -631,9 +631,9 @@ BEGIN{
        'gridsite.service-clients' => [ qw/curl:R gsoap:R gsoapxx:R/ ],
        'gridsite.gsexec' => [ qw// ],
        'gridsite.1.5-compat' => [ qw/httpd-devel:B gsoap:B globus:B curl:B doxygen:B fuse-devel:B libxml2:B openssl:B doxygen:B/ ],
-       'px.proxyrenewal' => [ qw/globus:B globus_essentials:R myproxy-devel:B voms:B libtool:B/ ],
+       'px.proxyrenewal' => [ qw/globus:B globus_essentials:R myproxy-devel:B voms:B libtool:B pkgconfig:B/ ],
        'px.myproxy-config' => [ qw/myproxy-admin:R/ ], # in myproxy-config.spec
-       'canl.c' => [ qw/cares:B openssl:B libtool:B bison:B flex:B krb5-devel:B/ ],
+       'canl.c' => [ qw/cares:B openssl:B libtool:B bison:B flex:B krb5-devel:B pkgconfig:B/ ],
 );
 
 %need_jars = (
@@ -1552,6 +1552,8 @@ sub mode_etics {
                $conftag = $branch;
                # forced low age number
                $age = $branch eq 'HEAD' ? '0head' : '0dev';
+               # add project major version number
+               $age .= '.'.$project_version;
                push @copts, '--version ${version}-${age}';
        }
        else {
@@ -1564,11 +1566,13 @@ sub mode_etics {
                if ($project eq 'emi' and $project_version == 1) {
                        $age = $age - 1;
                }
-       }
 
-       # emi1 suffix for older packaging
+               # '.emi1' suffix for older packaging
+               if ($project eq 'emi' and $project_version == 1) {
+                       $age = $age.'.'.$project.$project_version;
+               }
+       }
        if ($project eq 'emi' and $project_version == 1) {
-               $age = $age.$project.$project_version;
                $conf = $conf.$project.$project_version;
        }
 
@@ -1868,7 +1872,7 @@ $output};
 
                        `diff -b "$file" "$file.new"`;
                        if ($? == 0) {
-                               print STDERR "($file not changed)\n";
+                               print STDERR "($file not changed)\n" if ($debug);
                                unlink "$file.new";
                        } else {
                                print STDERR "Writing $file\n";
index 8af089e..490e25e 100644 (file)
 5.1.4-1
 - Fixed connection pool unlocking in error conditions (SB #92783)
 
+5.1.4-2
+- Module rebuilt
+
index 4fd28e5..0bd404b 100644 (file)
@@ -2,7 +2,7 @@ Source: glite-lb-client
 Priority: extra
 Maintainer: @MAINTAINER@
 Uploaders: @UPLOADERS@
-Build-Depends: debhelper (>= 7.0.50~), chrpath, libtool, libclassad1, libclassad-dev, glite-lb-types, libglite-jobid-api-c-dev, libglite-jobid-api-cpp-dev, libglite-lb-common-dev, libglite-lbjp-common-gss-dev, libglite-lbjp-common-trio-dev
+Build-Depends: debhelper (>= 7.0.50~), chrpath, libtool, libclassad0-dev | libclassad-dev, glite-lb-types, libglite-jobid-api-c-dev, libglite-jobid-api-cpp-dev, libglite-lb-common-dev, libglite-lbjp-common-gss-dev, libglite-lbjp-common-trio-dev, pkg-config
 Standards-Version: 3.9.1
 Section: libs
 Homepage: @URL@
index d41ee0f..d910697 100644 (file)
@@ -17,6 +17,7 @@ BuildRequires: glite-lb-common-devel
 BuildRequires: glite-lbjp-common-gss-devel
 BuildRequires: glite-lbjp-common-trio-devel
 BuildRequires: libtool
+BuildRequires: pkgconfig
 BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
 AutoReqProv: yes
 Source: http://eticssoft.web.cern.ch/eticssoft/repository/emi/emi.lb.client/%{version}/src/%{name}-@VERSION@.src.tar.gz
index df40cab..9064be0 100644 (file)
@@ -106,8 +106,8 @@ int main(int argc,char **argv)
        }
 
        if (!jobid_s || type == EDG_WLL_SANDBOX_SANDBOX_TYPE_UNDEFINED
-                       || (nsubjobs==0 && (!from || !to)) 
-                       || (nsubjobs>0 && ((!from && to) || (from && !to))))
+               || (nsubjobs==0 && (!from || !to)) 
+               || (nsubjobs>0 && ((!from && to) || (from && !to))))
        {
                usage(argv[0]); 
                exit(1);
@@ -194,9 +194,6 @@ int main(int argc,char **argv)
                for (i=0; subjobs[i]; i++) {
                        char    *ftsubjobid_s = edg_wlc_JobIdUnparse(subjobs[i]);
                        edg_wll_SetLoggingJob(ctx, subjobs[i], NULL, EDG_WLL_SEQ_NORMAL);
-                       //check_log(edg_wll_LogFileTransferRegister, ftsubjobid_s,(
-                       //      ctx, from, to
-                       //));
                        check_log(edg_wll_LogSandbox, ftsubjobid_s, (
                                ctx,
                                edg_wll_SandboxSandbox_typeToString(type),
index bcb1531..007c7b2 100755 (executable)
@@ -400,15 +400,15 @@ if ($mode eq 'build') { for my $ext (keys %externs) {
                my $jdk_prefix;
 
                print "Looking for some caffein ... ";
-               if (defined $ENV{'JDK_HOME'}) {
+               if (defined($ENV{'JDK_HOME'}) and -f "$ENV{'JDK_HOME'}/include/jni.h") {
                        $jdk_prefix = $ENV{'JDK_HOME'};
                        print "JDK_HOME=$jdk_prefix\n";
-               } elsif (defined $ENV{'JAVA_HOME'}) {
+               } elsif (defined($ENV{'JAVA_HOME'}) and -f "$ENV{'JAVA_HOME'}/include/jni.h") {
                        $jdk_prefix = $ENV{'JAVA_HOME'};
                        print "JAVA_HOME=$jdk_prefix\n";
                } else {
                        foreach my $i (0..$#{$externs{$ext}{locations}}) {
-                               if (-e $externs{$ext}{locations}[$i]) {
+                               if (-e $externs{$ext}{locations}[$i] and -f "$externs{$ext}{locations}[$i]/include/jni.h") {
                                        $jdk_prefix=$externs{$ext}{locations}[$i];
                                        print "(found directory $jdk_prefix)\n";
                                        last;
@@ -591,37 +591,37 @@ BEGIN{
 );
 
 %need_externs_aux = (
-       'lb.client' => [ qw/cppunit:B classads libtool:B globus:B/ ],
-       'lb.common' => [ qw/expat cares:B cppunit:B classads libtool:B globus:B/ ],
+       'lb.client' => [ qw/cppunit:B classads:B libtool:B globus:B pkgconfig:B/ ],
+       'lb.common' => [ qw/expat cares:B cppunit:B classads:B libtool:B globus:B pkgconfig:B/ ],
        'lb.doc' => [ qw/tetex-latex:B/ ],
-       'lb.logger' => [ qw/cppunit:B libtool:B globus:B/ ],
-       'lb.logger-msg' => [ qw/cppunit:B activemq libtool:B globus:B/ ],
+       'lb.logger' => [ qw/cppunit:B libtool:B globus:B pkgconfig:B/ ],
+       'lb.logger-msg' => [ qw/cppunit:B activemq libtool:B globus:B pkgconfig:B/ ],
        'lb.nagios' => [ qw/globus_proxy_utils:R/ ],
-       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B/ ],
-       'lb.state-machine' => [ qw/classads libtool:B libxslt:B expat:B globus:B/ ],
-       'lb.utils' => [ qw/cppunit:B libtool:B globus:B/ ],
+       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads:B voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B pkgconfig:B/ ],
+       'lb.state-machine' => [ qw/classads:B libtool:B libxslt:B expat:B globus:B pkgconfig:B/ ],
+       'lb.utils' => [ qw/cppunit:B libtool:B globus:B pkgconfig:B/ ],
        'lb.ws-interface' => [ qw/libxslt:B tidy:B/ ],
-       'lb.ws-test' => [ qw/gsoap:B libtool:B globus:B/ ],
+       'lb.ws-test' => [ qw/gsoap:B libtool:B globus:B pkgconfig:B/ ],
        'lb.types' => [ qw// ],
-       'lb.harvester' => [ qw/docbook-utils:B libtool:B globus:B/ ],
-       'lbjp-common.db' => [ qw/mysql-devel:B postgresql:B cppunit:B log4c:B libtool:B/ ],
+       'lb.harvester' => [ qw/docbook-utils:B libtool:B globus:B pkgconfig:B/ ],
+       'lbjp-common.db' => [ qw/mysql-devel:B postgresql:B cppunit:B log4c:B libtool:B pkgconfig:B/ ],
        'lbjp-common.log' => [ qw/log4c libtool:B/ ],
        'lbjp-common.maildir' => [ qw/libtool:B/ ],
        'lbjp-common.server-bones' => [ qw/libtool:B/ ],
-       'lbjp-common.trio' => [ qw/cppunit:B libtool:B/ ],
-       'lbjp-common.jp-interface' => [ qw/cppunit:B log4c:B libtool:B/ ],
-       'lbjp-common.gss' =>  [ qw/globus_essentials:R globus:B cares cppunit:B libtool:B/ ],
-       'lbjp-common.gsoap-plugin' =>  [ qw/cppunit:B globus_essentials:R globus:B cares:B gsoap gsoapxx libtool:B/ ],
-       'jobid.api-c' =>  [ qw/cppunit:B libtool:B openssl:B/ ],
-       'jobid.api-cpp' =>  [ qw/cppunit:B libtool:B/ ],
+       'lbjp-common.trio' => [ qw/cppunit:B libtool:B pkgconfig:B/ ],
+       'lbjp-common.jp-interface' => [ qw/cppunit:B log4c:B libtool:B pkgconfig:B/ ],
+       'lbjp-common.gss' =>  [ qw/globus_essentials:R globus:B cares cppunit:B libtool:B pkgconfig:B/ ],
+       'lbjp-common.gsoap-plugin' =>  [ qw/cppunit:B globus_essentials:R globus:B cares:B gsoap gsoapxx libtool:B pkgconfig:B/ ],
+       'jobid.api-c' =>  [ qw/cppunit:B libtool:B openssl:B pkgconfig:B/ ],
+       'jobid.api-cpp' =>  [ qw/cppunit:B libtool:B pkgconfig:B/ ],
        'jobid.api-java' =>  [ qw/ant:B jdk:B/ ],
-       'jp.client' => [ qw/gsoap libtar globus_essentials:R globus:B/ ],
+       'jp.client' => [ qw/gsoap libtar globus_essentials:R globus:B pkgconfig:B/ ],
         'jp.doc' => [],
-        'jp.index' => [ qw/gsoap globus_essentials:R globus:B mysql-server:R/ ],
-        'jp.primary' => [ qw/classads gsoap libtar globus_essentials:R globus:B  mysql-server:R/ ],
+        'jp.index' => [ qw/gsoap globus_essentials:R globus:B mysql-server:R pkgconfig:B/ ],
+        'jp.primary' => [ qw/classads:B gsoap libtar globus_essentials:R globus:B  mysql-server:R pkgconfig:B/ ],
         'jp.server-common' => [],
         'jp.ws-interface' => [],
-       'gridsite.core' => [ qw/httpd-devel:B gsoap:B globus:B curl:B doxygen:B fuse-devel:B libxml2:B openssl:B doxygen:B/ ],
+       'gridsite.core' => [ qw/httpd-devel:B gsoap:B globus:B curl:B doxygen:B fuse-devel:B libxml2:B openssl:B doxygen:B pkgconfig:B/ ],
        'gridsite.commands' => [ qw/curl:R openssl:R/ ],
        'gridsite.apache' => [ qw/libxml2:R openssl:R curl:R/ ],
        'gridsite.libs' => [ qw/libxml2:R openssl:R/ ],
@@ -631,9 +631,9 @@ BEGIN{
        'gridsite.service-clients' => [ qw/curl:R gsoap:R gsoapxx:R/ ],
        'gridsite.gsexec' => [ qw// ],
        'gridsite.1.5-compat' => [ qw/httpd-devel:B gsoap:B globus:B curl:B doxygen:B fuse-devel:B libxml2:B openssl:B doxygen:B/ ],
-       'px.proxyrenewal' => [ qw/globus:B globus_essentials:R myproxy-devel:B voms:B libtool:B/ ],
+       'px.proxyrenewal' => [ qw/globus:B globus_essentials:R myproxy-devel:B voms:B libtool:B pkgconfig:B/ ],
        'px.myproxy-config' => [ qw/myproxy-admin:R/ ], # in myproxy-config.spec
-       'canl.c' => [ qw/cares:B openssl:B libtool:B bison:B flex:B krb5-devel:B/ ],
+       'canl.c' => [ qw/cares:B openssl:B libtool:B bison:B flex:B krb5-devel:B pkgconfig:B/ ],
 );
 
 %need_jars = (
@@ -1552,6 +1552,8 @@ sub mode_etics {
                $conftag = $branch;
                # forced low age number
                $age = $branch eq 'HEAD' ? '0head' : '0dev';
+               # add project major version number
+               $age .= '.'.$project_version;
                push @copts, '--version ${version}-${age}';
        }
        else {
@@ -1564,11 +1566,13 @@ sub mode_etics {
                if ($project eq 'emi' and $project_version == 1) {
                        $age = $age - 1;
                }
-       }
 
-       # emi1 suffix for older packaging
+               # '.emi1' suffix for older packaging
+               if ($project eq 'emi' and $project_version == 1) {
+                       $age = $age.'.'.$project.$project_version;
+               }
+       }
        if ($project eq 'emi' and $project_version == 1) {
-               $age = $age.$project.$project_version;
                $conf = $conf.$project.$project_version;
        }
 
@@ -1868,7 +1872,7 @@ $output};
 
                        `diff -b "$file" "$file.new"`;
                        if ($? == 0) {
-                               print STDERR "($file not changed)\n";
+                               print STDERR "($file not changed)\n" if ($debug);
                                unlink "$file.new";
                        } else {
                                print STDERR "Writing $file\n";
index 7eed597..abcd5cb 100644 (file)
 8.1.3-2
 - Module rebuilt
 
+8.1.3-3
+- Module rebuilt
+
index fe22022..e2bf52b 100644 (file)
@@ -2,7 +2,7 @@ Source: glite-lb-common
 Priority: extra
 Maintainer: @MAINTAINER@
 Uploaders: @UPLOADERS@
-Build-Depends: debhelper (>= 7.0.50~), chrpath, glite-lb-types, libc-ares-dev, libclassad1, libclassad-dev, libexpat1, libexpat1-dev, libcppunit-dev, libglite-jobid-api-cpp-dev, libglite-jobid-api-c-dev, libglite-lbjp-common-gss-dev, libglite-lbjp-common-trio-dev, libtool
+Build-Depends: debhelper (>= 7.0.50~), chrpath, glite-lb-types, libc-ares-dev, libclassad0-dev | libclassad-dev, libexpat1, libexpat1-dev, libcppunit-dev, libglite-jobid-api-cpp-dev, libglite-jobid-api-c-dev, libglite-lbjp-common-gss-dev, libglite-lbjp-common-trio-dev, libtool, pkg-config
 Standards-Version: 3.9.1
 Section: libs
 Homepage: @URL@
index 602812a..e0c1698 100644 (file)
@@ -19,6 +19,7 @@ BuildRequires: glite-lbjp-common-gss-devel
 BuildRequires: glite-lbjp-common-trio-devel
 BuildRequires: libtool
 BuildRequires: glite-lb-types
+BuildRequires: pkgconfig
 BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
 AutoReqProv: yes
 Source: http://eticssoft.web.cern.ch/eticssoft/repository/emi/emi.lb.common/%{version}/src/%{name}-@VERSION@.src.tar.gz
index ed6530a..49ffd5b 100644 (file)
@@ -402,7 +402,7 @@ char *edg_wll_GetSequenceCode(const edg_wll_Context ctx)
 
        switch (ctx->p_seqcode.type) {
                case EDG_WLL_SEQ_CREAM:
-                       /* fall through */
+                        /* fall through */
                case EDG_WLL_SEQ_DUPLICATE:
                        /* fall through */
                case EDG_WLL_SEQ_NORMAL:
@@ -478,16 +478,17 @@ int edg_wll_SetSequenceCode(edg_wll_Context ctx,
                        if (res == EDG_WLL_SOURCE_LB_SERVER-1) {
                                /* pre-collections compatibility */
                                c[EDG_WLL_SOURCE_LB_SERVER] = 0;
-                       } else if (res != EDG_WLL_SEQ_FORMAT_NUMBER)
+                       } else if (res != EDG_WLL_SEQ_FORMAT_NUMBER) {
                                if (seq_type == EDG_WLL_SEQ_CREAM)
                                        return 0;
                                else
                                        return edg_wll_SetError(ctx, EINVAL,
                                                "edg_wll_SetSequenceCode(): syntax error in sequence code");
+                       }
 
                        if (seq_type == EDG_WLL_SEQ_DUPLICATE) {
                                if (ctx->p_source <= EDG_WLL_SOURCE_NONE || 
-                                               ctx->p_source >= EDG_WLL_SOURCE__LAST) 
+                                               ctx->p_source >= EDG_WLL_SOURCE__LAST)
                                {
                                        return edg_wll_SetError(ctx,EINVAL,
                                                "edg_wll_SetSequenceCode(): context param: source missing");
index bbc9d05..37b2b8e 100644 (file)
@@ -2,7 +2,7 @@ Source: glite-lb-doc
 Priority: extra
 Maintainer: @MAINTAINER@
 Uploaders: @UPLOADERS@
-Build-Depends: debhelper (>= 7.0.50~)
+Build-Depends: debhelper (>= 7.0.50~), texlive-latex-extra
 Standards-Version: 3.9.1
 Section: doc
 Homepage: @URL@
index 8e6e2cb..1585631 100644 (file)
@@ -1,3 +1,5 @@
+%global is_fedora %(rpm -q --quiet fedora-release && echo 1 || echo 0)
+
 Summary: @SUMMARY@
 Name: glite-lb-doc
 Version: @MAJOR@.@MINOR@.@REVISION@
@@ -7,7 +9,11 @@ License: ASL 2.0
 Vendor: EMI
 Group: Development/Tools
 BuildArch: noarch
+%if %is_fedora
+BuildRequires: texlive-latex
+%else
 BuildRequires: tetex-latex
+%endif
 BuildRequires: glite-lb-types
 BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
 AutoReqProv: yes
index e1c5a72..6857be9 100755 (executable)
@@ -40,7 +40,7 @@ my $nothrflavour = 'gcc64dbg';
 my $mode = 'build';
 my $help = 0;
 my $listmodules;
-my $version;
+my ($version, $force_version);
 my $branch;
 my $output;
 my $lb_tag = '';
@@ -48,13 +48,14 @@ my $lbjp_tag = '';
 my $jp_tag = '';
 my $jobid_tag = '';
 my $libdir = getlibdir();
-my $project = 'glite';
+my $project = 'emi';
+my $project_version;
 my (%projects, %project);
 my $debug = 0;
 my $pkg_config_env = (defined $ENV{PKG_CONFIG_PATH}) ? "$ENV{PKG_CONFIG_PATH}:" : '';
 
 my @nodes = qw/client server logger logger-msg nagios utils client-java doc ws-test db jpprimary jpindex jpclient harvester lb px proxyrenewal/;
-my @default_nodes = qw/lb px proxyrenewal/;
+my @default_nodes = qw/lb px proxyrenewal nagios/;
 my %enable_nodes;
 my %disable_nodes;
 my %default_nodes; @default_nodes{@default_nodes} = (1) x ($#default_nodes + 1);
@@ -190,7 +191,7 @@ my %lbmodules = (
        'lbjp-common' => [qw/db log maildir server-bones trio jp-interface gss gsoap-plugin db-devel log-devel maildir-devel server-bones-devel trio-devel jp-interface-devel gss-devel gsoap-plugin-devel/],
        'jobid' => [qw/api-c api-c-devel api-cpp api-cpp-devel api-java/],
        'jp' => [ qw/client doc index primary server-common ws-interface/ ],
-       'gridsite' => [ qw/apache shared commands core devel slashgrid services service-clients gsexec/ ],
+       'gridsite' => [ qw/apache libs commands core devel slashgrid services service-clients gsexec/ ],
        'px' => [ qw/proxyrenewal myproxy-yaim proxyrenewal-devel proxyrenewal-progs/ ],
        'canl' => [ qw/c c-devel/ ],
        );
@@ -229,7 +230,7 @@ my @opts = (
        'nothrflavour:s' => \$nothrflavour,
        'mode=s' => \$mode,
        'listmodules=s' => \$listmodules,
-       'version=s' => \$version,
+       'version=s' => \$force_version,
        'branch=s' => \$branch,
        'output=s' => \$output,
        'stage=s' => \$stagedir,
@@ -278,7 +279,12 @@ $externs{'mysql-server'}{withprefix}=$externs{mysql}{withprefix} if $externs{'my
 $externs{'mysql-devel'}{wihtprefix}=$externs{mysql}{withprefix} if $externs{'mysql-devel'}{withprefix} eq '';
 $externs{'gsoapxx'}{withprefix}=$externs{gsoap}{withprefix} if $externs{'gsoapxx'}{withprefix} eq '';
 
+if ($project =~ /^([^0-9]*)(.*)$/) {
+       $project = $1;
+       $project_version = $2;
+}
 %project = %{$projects{$project}};
+$project_version = $project{current_version} unless $project_version;
 for my $platform (keys %{$project{etics_externs}}) {
        for $_ (keys %{$project{etics_externs}{$platform}}) {
                $etics_externs{$platform}{$_} = $project{etics_externs}{$platform}{$_};
@@ -319,8 +325,12 @@ if ($listmodules) {
        if (exists $lbmodules{$listmodules}) {
                @m = map exists $subpackages{$listmodules . '.' . $_} ? "" : "$name_prefix.$listmodules.$_",@{$lbmodules{$listmodules}};
        } else {
-               for my $sub (keys %subpackages) {
-                       push @m, $sub if ($subpackages{$sub} eq $listmodules);
+               if ($project eq 'emi' and $project_version == 1) {
+                       # no sub-packages in EMI-1
+               } else {
+                       for my $sub (keys %subpackages) {
+                               push @m, $sub if ($subpackages{$sub} eq $listmodules);
+                       }
                }
        }
        print map $_ eq "" ? "" : "$_ ", @m;
@@ -390,15 +400,15 @@ if ($mode eq 'build') { for my $ext (keys %externs) {
                my $jdk_prefix;
 
                print "Looking for some caffein ... ";
-               if (defined $ENV{'JDK_HOME'}) {
+               if (defined($ENV{'JDK_HOME'}) and -f "$ENV{'JDK_HOME'}/include/jni.h") {
                        $jdk_prefix = $ENV{'JDK_HOME'};
                        print "JDK_HOME=$jdk_prefix\n";
-               } elsif (defined $ENV{'JAVA_HOME'}) {
+               } elsif (defined($ENV{'JAVA_HOME'}) and -f "$ENV{'JAVA_HOME'}/include/jni.h") {
                        $jdk_prefix = $ENV{'JAVA_HOME'};
                        print "JAVA_HOME=$jdk_prefix\n";
                } else {
                        foreach my $i (0..$#{$externs{$ext}{locations}}) {
-                               if (-e $externs{$ext}{locations}[$i]) {
+                               if (-e $externs{$ext}{locations}[$i] and -f "$externs{$ext}{locations}[$i]/include/jni.h") {
                                        $jdk_prefix=$externs{$ext}{locations}[$i];
                                        print "(found directory $jdk_prefix)\n";
                                        last;
@@ -581,49 +591,49 @@ BEGIN{
 );
 
 %need_externs_aux = (
-       'lb.client' => [ qw/cppunit:B classads libtool:B/ ],
-       'lb.common' => [ qw/expat cares:B cppunit:B classads libtool:B/ ],
+       'lb.client' => [ qw/cppunit:B classads:B libtool:B globus:B pkgconfig:B/ ],
+       'lb.common' => [ qw/expat cares:B cppunit:B classads:B libtool:B globus:B pkgconfig:B/ ],
        'lb.doc' => [ qw/tetex-latex:B/ ],
-       'lb.logger' => [ qw/cppunit:B libtool:B/ ],
-       'lb.logger-msg' => [ qw/cppunit:B activemq libtool:B/ ],
+       'lb.logger' => [ qw/cppunit:B libtool:B globus:B pkgconfig:B/ ],
+       'lb.logger-msg' => [ qw/cppunit:B activemq libtool:B globus:B pkgconfig:B/ ],
        'lb.nagios' => [ qw/globus_proxy_utils:R/ ],
-       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql:R mysql-server:R mysql-devel:B cppunit:B gsoap:B classads voms:B lcas gridsite bison:B libtool:B libxml2 flex:B/ ],
-       'lb.state-machine' => [ qw/classads libtool:B libxslt:B expat:B/ ],
-       'lb.utils' => [ qw/cppunit:B libtool:B/ ],
+       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads:B voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B pkgconfig:B/ ],
+       'lb.state-machine' => [ qw/classads:B libtool:B libxslt:B expat:B globus:B pkgconfig:B/ ],
+       'lb.utils' => [ qw/cppunit:B libtool:B globus:B pkgconfig:B/ ],
        'lb.ws-interface' => [ qw/libxslt:B tidy:B/ ],
-       'lb.ws-test' => [ qw/gsoap:B libtool:B/ ],
+       'lb.ws-test' => [ qw/gsoap:B libtool:B globus:B pkgconfig:B/ ],
        'lb.types' => [ qw// ],
-       'lb.harvester' => [ qw/docbook-utils:B libtool:B/ ],
-       'lbjp-common.db' => [ qw/mysql:B mysql-devel:B postgresql:B cppunit:B log4c:B libtool:B/ ],
+       'lb.harvester' => [ qw/docbook-utils:B libtool:B globus:B pkgconfig:B/ ],
+       'lbjp-common.db' => [ qw/mysql-devel:B postgresql:B cppunit:B log4c:B libtool:B pkgconfig:B/ ],
        'lbjp-common.log' => [ qw/log4c libtool:B/ ],
        'lbjp-common.maildir' => [ qw/libtool:B/ ],
        'lbjp-common.server-bones' => [ qw/libtool:B/ ],
-       'lbjp-common.trio' => [ qw/cppunit:B libtool:B/ ],
-       'lbjp-common.jp-interface' => [ qw/cppunit:B log4c:B libtool:B/ ],
-       'lbjp-common.gss' =>  [ qw/globus_essentials:R globus:B cares cppunit:B libtool:B/ ],
-       'lbjp-common.gsoap-plugin' =>  [ qw/cppunit:B globus_essentials:R globus:B cares:B gsoap gsoapxx libtool:B/ ],
-       'jobid.api-c' =>  [ qw/cppunit:B libtool:B openssl:B/ ],
-       'jobid.api-cpp' =>  [ qw/cppunit:B libtool:B/ ],
+       'lbjp-common.trio' => [ qw/cppunit:B libtool:B pkgconfig:B/ ],
+       'lbjp-common.jp-interface' => [ qw/cppunit:B log4c:B libtool:B pkgconfig:B/ ],
+       'lbjp-common.gss' =>  [ qw/globus_essentials:R globus:B cares cppunit:B libtool:B pkgconfig:B/ ],
+       'lbjp-common.gsoap-plugin' =>  [ qw/cppunit:B globus_essentials:R globus:B cares:B gsoap gsoapxx libtool:B pkgconfig:B/ ],
+       'jobid.api-c' =>  [ qw/cppunit:B libtool:B openssl:B pkgconfig:B/ ],
+       'jobid.api-cpp' =>  [ qw/cppunit:B libtool:B pkgconfig:B/ ],
        'jobid.api-java' =>  [ qw/ant:B jdk:B/ ],
-       'jp.client' => [ qw/gsoap libtar globus_essentials:R globus:B/ ],
+       'jp.client' => [ qw/gsoap libtar globus_essentials:R globus:B pkgconfig:B/ ],
         'jp.doc' => [],
-        'jp.index' => [ qw/gsoap globus_essentials:R globus:B/ ],
-        'jp.primary' => [ qw/classads gsoap libtar globus_essentials:R globus:B/ ],
+        'jp.index' => [ qw/gsoap globus_essentials:R globus:B mysql-server:R pkgconfig:B/ ],
+        'jp.primary' => [ qw/classads:B gsoap libtar globus_essentials:R globus:B  mysql-server:R pkgconfig:B/ ],
         'jp.server-common' => [],
         'jp.ws-interface' => [],
-       'gridsite.core' => [ qw/httpd-devel:B gsoap:B globus:B curl:B doxygen:B fuse-devel:B libxml2:B openssl:B doxygen:B/ ],
+       'gridsite.core' => [ qw/httpd-devel:B gsoap:B globus:B curl:B doxygen:B fuse-devel:B libxml2:B openssl:B doxygen:B pkgconfig:B/ ],
        'gridsite.commands' => [ qw/curl:R openssl:R/ ],
        'gridsite.apache' => [ qw/libxml2:R openssl:R curl:R/ ],
-       'gridsite.shared' => [ qw/libxml2:R openssl:R/ ],
+       'gridsite.libs' => [ qw/libxml2:R openssl:R/ ],
        'gridsite.devel' => [ qw// ],
        'gridsite.slashgrid' => [ qw/curl:R fuse:R/],
        'gridsite.services' => [ qw/curl:R gsoap:R/ ],
        'gridsite.service-clients' => [ qw/curl:R gsoap:R gsoapxx:R/ ],
        'gridsite.gsexec' => [ qw// ],
        'gridsite.1.5-compat' => [ qw/httpd-devel:B gsoap:B globus:B curl:B doxygen:B fuse-devel:B libxml2:B openssl:B doxygen:B/ ],
-       'px.proxyrenewal' => [ qw/globus:B globus_essentials:R myproxy-devel:B voms:B libtool:B/ ],
+       'px.proxyrenewal' => [ qw/globus:B globus_essentials:R myproxy-devel:B voms:B libtool:B pkgconfig:B/ ],
        'px.myproxy-config' => [ qw/myproxy-admin:R/ ], # in myproxy-config.spec
-       'canl.c' => [ qw/cares:B openssl:B libtool:B bison:B flex:B/ ],
+       'canl.c' => [ qw/cares:B openssl:B libtool:B bison:B flex:B krb5-devel:B pkgconfig:B tetex-latex:B/ ],
 );
 
 %need_jars = (
@@ -662,7 +672,7 @@ for my $jar (keys %need_jars) {
                lbjp-common.gss
        / ],
        'lb.logger-msg' => [ qw/
-               lb.logger-devel:B
+               lb.logger:B
        / ],
        'lb.nagios' => [ qw/
                lb.client:R
@@ -693,12 +703,12 @@ for my $jar (keys %need_jars) {
        'lb.glite-LB' => [ qw/
                lb.logger:R lb.server:R lb.utils:R lb.doc:R
                lb.ws-test:R lb.harvester:R lb.yaim:R lb.client-java:R
-               lb.logger-msg:R lb.client-progs:R
+               lb.logger-msg:R
        / ],
        'lb.emi-lb' => [ qw/
                lb.logger:R lb.server:R lb.utils:R lb.doc:R
                lb.ws-test:R lb.harvester:R lb.yaim:R lb.client-java:R
-               lb.logger-msg:R lb.client-progs:R
+               lb.logger-msg:R
        / ],
        'lbjp-common.db' => [ qw/lbjp-common.trio lbjp-common.log/ ],
        'lbjp-common.maildir' => [ qw// ],
@@ -738,13 +748,13 @@ for my $jar (keys %need_jars) {
        'jp.ws-interface' => [ qw// ],
 
        'gridsite.core' => [ qw// ],
-       'gridsite.commands' => [ qw/gridsite.core:B gridsite.shared:R/ ],
-       'gridsite.apache' => [ qw/gridsite.core:B gridsite.shared:R/ ],
-       'gridsite.shared' => [ qw/gridsite.core:B / ],
-       'gridsite.devel' => [ qw/gridsite.core:B gridsite.shared:R/ ],
-       'gridsite.slashgrid' => [ qw/gridsite.core:B gridsite.shared:R/],
-       'gridsite.services' => [ qw/gridsite.core:B gridsite.shared:R/ ],
-       'gridsite.service-clients' => [ qw/gridsite.core:B gridsite.shared:R/ ],
+       'gridsite.commands' => [ qw/gridsite.core:B/ ],
+       'gridsite.apache' => [ qw/gridsite.core:B/ ],
+       'gridsite.libs' => [ qw/gridsite.core:B / ],
+       'gridsite.devel' => [ qw/gridsite.core:B/ ],
+       'gridsite.slashgrid' => [ qw/gridsite.core:B/],
+       'gridsite.services' => [ qw/gridsite.core:B/ ],
+       'gridsite.service-clients' => [ qw/gridsite.core:B/ ],
        'gridsite.gsexec' => [ qw/gridsite.core:B/ ],
 
        'px.proxyrenewal' => [ qw// ],
@@ -874,6 +884,7 @@ for my $ext (keys %deps_aux) {
 # modules .............. additional modules in subsystems
 %projects = (
        glite => {
+               current_version => 3,
                etics_name => 'org.glite',
                conf_prefix => { %cvs_tag_prefix },
                tag_prefix => { %cvs_tag_prefix },
@@ -884,7 +895,7 @@ for my $ext (keys %deps_aux) {
                                globus_essentials=>'vdt_globus_essentials',
                                globus=>'globus',
                                globus_proxy_utils=>'vdt_globus_essentials',
-                               gridsite=>'org.gridsite.shared',
+                               gridsite=>'org.gridsite.libs',
                                yaim_core=>'org.glite.yaim.core',
                                gip_release=>'glite-info-provider-release',
                                gip_service=>'glite-info-provider-service',
@@ -916,7 +927,7 @@ for my $ext (keys %deps_aux) {
                need_externs_aux => {
                        'lb.client-java' => [ qw/ant:B jdk:B axis:B trustmanager utiljava libtool:B/ ],
                        'lb.glite-LB' => [ qw/fetchcrl:R gpt:R gip_release:R gip_service:R bdii:R glite_version:R glite_info_templates:R glue_schema:R/ ],
-                       'lb.yaim' => [ qw/yaim_core:R perl-LDAP:R/ ],
+                       'lb.yaim' => [ qw/yaim_core:R/ ],
                        'px.glite-PX' => [qw/myproxy-server:R myproxy-admin:R fetchcrl:R gip_service:R bdii:R glite_version:R gpt:R glue_schema:R/],
                        'px.myproxy-yaim' => [ qw/yaim_core:R/ ],
                },
@@ -935,6 +946,7 @@ for my $ext (keys %deps_aux) {
        },
 
        emi => {
+               current_version => 2,
                etics_name => 'emi',
                conf_prefix => {
                        'lb' => 'emi-',
@@ -953,7 +965,7 @@ for my $ext (keys %deps_aux) {
                                globus_essentials=>'globus-gssapi-gsi',
                                globus=>'globus-gssapi-gsi-devel',
                                globus_proxy_utils=>'globus-proxy-utils',
-                               gridsite=>'emi.gridsite.shared',
+                               gridsite=>'emi.gridsite.libs',
                                yaim_core=>'emi.yaim.yaim-core',
                                yaim_bdii=>'emi.bdii.yaim-bdii',
                                gip_service=>'emi.bdii.glite-info-provider-service',
@@ -1029,6 +1041,7 @@ for my $ext (keys %deps_aux) {
                                #'httpd-devel' => 'apache2-prefork-dev',
                                #'fuse-devel' => 'libfuse-dev',
                                #gsoap => 'gsoap',
+                               #'krb5-devel' => 'libkrb5-dev',
                        },
                },
                etics_projects => {
@@ -1040,7 +1053,7 @@ for my $ext (keys %deps_aux) {
                need_externs_aux => {
                        'lb.client-java' => [ qw/ant:B jdk:B axis:B trustmanager trustmanager_axis libtool:B/ ],
                        'lb.emi-lb' => [ qw/fetchcrl:R gip_service:R bdii:R glite_version:R glue_schema:R/ ],
-                       'lb.yaim' => [ qw/yaim_core:R yaim_bdii:R perl-LDAP:R/ ],
+                       'lb.yaim' => [ qw/yaim_core:R yaim_bdii:R/ ],
                        'px.emi-px' => [qw/myproxy-server:R myproxy-admin:R fetchcrl:R gip_service:R bdii:R glite_version:R glue_schema:R/],
                        'px.myproxy-yaim' => [ qw/yaim_core:R yaim_bdii:R/ ],
                },
@@ -1180,8 +1193,8 @@ sub get_version
        my ($major,$minor,$rev,$age);
        my $old_;
 
-       if ($version) {
-               $version =~ /([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)-(.+)/;
+       if ($force_version) {
+               $force_version =~ /([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)-(.+)/;
                ($major,$minor,$rev,$age) = ($1,$2,$3,$4);
        }
        else {
@@ -1200,9 +1213,8 @@ sub get_version
                }
                close V;
                $_ = $old_;
-
-               $version = "$major.$minor.$rev-$age";
        }
+       $version = "$major.$minor.$rev-$age";
 
        return ($major, $minor, $rev, $age);
 }
@@ -1352,7 +1364,7 @@ top_srcdir = $top_srcdir
        for my $dir (readdir $dh) {
                if ($dir=~/^(.*)\.spec$/) {
                        if ($1 ne $packageName) {
-                               printf STDERR "Changed RPM name: $packageName --> $1\n";
+                               printf STDERR "Changed RPM name: $packageName --> $1\n" if ($debug);;
                                $packageName=$1;
                        }
                        last;
@@ -1363,7 +1375,7 @@ top_srcdir = $top_srcdir
        for my $file ("$packageName.spec", "debian.rules", "debian.control", "debian.changelog", "debian.copyright") {
                if (-f "$abs_srcdir/project/$file") {
                        my $old_ = $_;
-                       printf STDERR "Creating $build$file\n";
+                       printf STDERR "Creating $build$file\n" if ($debug);;
                        open DST, ">$build$file";
                        open SRC, "<$abs_srcdir/project/$file";
                        while (<SRC>) {
@@ -1382,6 +1394,11 @@ top_srcdir = $top_srcdir
                                if (/\@DEBIAN_VCS\@/) { s/\@DEBIAN_VCS\@/$package{debian_vcs}/g; }
                                if (/\@DEBIAN_DATE\@/) { s/\@DEBIAN_DATE\@/$debdate/g; }
                                if (/\@SPEC_DATE\@/) { s/\@SPEC_DATE\@/$specdate/g; }
+                               if (/^\s*.+\/configure\s/ and $force_version) {
+                                       print "Version forced to $version\n" if ($debug);;
+                                       s/--version\s+\S+\s?//;
+                                       s/$/ --version $version/;
+                               }
                                printf DST "%s", "$_";
                        }
                        close SRC;
@@ -1390,7 +1407,7 @@ top_srcdir = $top_srcdir
                }
        }
 
-       print "Creating ${build}debian/\n";
+       print "Creating ${build}debian/\n" if ($debug);;
 
        `rm -rfv  ${build}debian`;
        mkdir $build."debian" or die $!;
@@ -1437,6 +1454,9 @@ sub mode_etics_packaging {
        my ($fmod, $cmd, $rpmprepare, $debprepare) = @_;
        my ($workspaceDir, $srcPackageName, $srcAge, $topDir);
 
+       # old-school packaging by ETICS for EMI-1
+       if ($project eq 'emi' and $project_version == 1) { return; }
+
        if ($fmod eq 'gridsite.core') {
                $workspaceDir = '..';
                $srcPackageName = 'gridsite';
@@ -1532,14 +1552,29 @@ sub mode_etics {
                $conftag = $branch;
                # forced low age number
                $age = $branch eq 'HEAD' ? '0head' : '0dev';
+               # add project major version number
+               $age .= '.'.$project_version;
                push @copts, '--version ${version}-${age}';
        }
        else {
-               $conf = "$confprefix$subsys-${module}_R_${major}_${minor}_${rev}_${age}"; 
-
+               $conf = "$confprefix$subsys-${module}_R_${major}_${minor}_${rev}_${age}";
 # XXX: gridsite hack
                $conftag = $subsys eq 'gridsite' ? "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}" : 
-                       "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}_${age}"; }
+                       "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}_${age}";
+
+               # lowering age for older packaging
+               if ($project eq 'emi' and $project_version == 1) {
+                       $age = $age - 1;
+               }
+
+               # '.emi1' suffix for older packaging
+               if ($project eq 'emi' and $project_version == 1) {
+                       $age = $age.'.'.$project.$project_version;
+               }
+       }
+       if ($project eq 'emi' and $project_version == 1) {
+               $conf = $conf.$project.$project_version;
+       }
 
        my $file = $output ? $output : "$conf.ini";
        open C,">$file" or die "$file: $!\n";
@@ -1837,7 +1872,7 @@ $output};
 
                        `diff -b "$file" "$file.new"`;
                        if ($? == 0) {
-                               print STDERR "($file not changed)\n";
+                               print STDERR "($file not changed)\n" if ($debug);
                                unlink "$file.new";
                        } else {
                                print STDERR "Writing $file\n";
@@ -1987,10 +2022,10 @@ General options (defaults in []):
   --nothrflavour=flavour       threaded and non-treaded flavours [gcc64dbgpthr,gcc64dbg]
   --listmodules=subsys          list modules of a subsystem
   --listmodules=module          list subpackages of a module
-  --version=maj.min.rev-age    specify version here instead of reading version.properties
+  --version=maj.min.rev-age    version used instead of reading version.properties
   --branch=branch              CVS branch/etics name suffix (HEAD, branch_2_1, ...)
   --libdir=libdir              typically [lib,lib64] postfix
-  --project=PROJECT            build or generate etics for a project (glite/emi) [emi]
+  --project=PROJECT            build or generate etics for a project (glite/emi1/emi) [emi]
   --debug                      print more details
   
 Mode of operation:
index faf4e53..1b11da9 100644 (file)
@@ -2,7 +2,7 @@ Source: glite-lb-harvester
 Priority: extra
 Maintainer: @MAINTAINER@
 Uploaders: @UPLOADERS@
-Build-Depends: debhelper (>= 7.0.50~), chrpath, docbook-utils, libglite-jobid-api-c-dev, libglite-lb-client-dev, libglite-lb-common-dev, libglite-lbjp-common-gss-dev, libglite-lbjp-common-db-dev, libglite-lbjp-common-log-dev, libglite-lbjp-common-trio-dev, libtool
+Build-Depends: debhelper (>= 7.0.50~), chrpath, docbook-utils, libglite-jobid-api-c-dev, libglite-lb-client-dev, libglite-lb-common-dev, libglite-lbjp-common-gss-dev, libglite-lbjp-common-db-dev, libglite-lbjp-common-log-dev, libglite-lbjp-common-trio-dev, libtool, pkg-config
 Standards-Version: 3.9.1
 Section: misc
 Homepage: @URL@
index 73bab36..3267b1e 100644 (file)
@@ -16,6 +16,7 @@ BuildRequires: glite-lbjp-common-db-devel
 BuildRequires: glite-lbjp-common-log-devel
 BuildRequires: glite-lbjp-common-trio-devel
 BuildRequires: libtool
+BuildRequires: pkgconfig
 Requires(post): chkconfig
 Requires(preun): chkconfig
 Requires(preun): initscripts
index bcb1531..007c7b2 100755 (executable)
@@ -400,15 +400,15 @@ if ($mode eq 'build') { for my $ext (keys %externs) {
                my $jdk_prefix;
 
                print "Looking for some caffein ... ";
-               if (defined $ENV{'JDK_HOME'}) {
+               if (defined($ENV{'JDK_HOME'}) and -f "$ENV{'JDK_HOME'}/include/jni.h") {
                        $jdk_prefix = $ENV{'JDK_HOME'};
                        print "JDK_HOME=$jdk_prefix\n";
-               } elsif (defined $ENV{'JAVA_HOME'}) {
+               } elsif (defined($ENV{'JAVA_HOME'}) and -f "$ENV{'JAVA_HOME'}/include/jni.h") {
                        $jdk_prefix = $ENV{'JAVA_HOME'};
                        print "JAVA_HOME=$jdk_prefix\n";
                } else {
                        foreach my $i (0..$#{$externs{$ext}{locations}}) {
-                               if (-e $externs{$ext}{locations}[$i]) {
+                               if (-e $externs{$ext}{locations}[$i] and -f "$externs{$ext}{locations}[$i]/include/jni.h") {
                                        $jdk_prefix=$externs{$ext}{locations}[$i];
                                        print "(found directory $jdk_prefix)\n";
                                        last;
@@ -591,37 +591,37 @@ BEGIN{
 );
 
 %need_externs_aux = (
-       'lb.client' => [ qw/cppunit:B classads libtool:B globus:B/ ],
-       'lb.common' => [ qw/expat cares:B cppunit:B classads libtool:B globus:B/ ],
+       'lb.client' => [ qw/cppunit:B classads:B libtool:B globus:B pkgconfig:B/ ],
+       'lb.common' => [ qw/expat cares:B cppunit:B classads:B libtool:B globus:B pkgconfig:B/ ],
        'lb.doc' => [ qw/tetex-latex:B/ ],
-       'lb.logger' => [ qw/cppunit:B libtool:B globus:B/ ],
-       'lb.logger-msg' => [ qw/cppunit:B activemq libtool:B globus:B/ ],
+       'lb.logger' => [ qw/cppunit:B libtool:B globus:B pkgconfig:B/ ],
+       'lb.logger-msg' => [ qw/cppunit:B activemq libtool:B globus:B pkgconfig:B/ ],
        'lb.nagios' => [ qw/globus_proxy_utils:R/ ],
-       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B/ ],
-       'lb.state-machine' => [ qw/classads libtool:B libxslt:B expat:B globus:B/ ],
-       'lb.utils' => [ qw/cppunit:B libtool:B globus:B/ ],
+       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads:B voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B pkgconfig:B/ ],
+       'lb.state-machine' => [ qw/classads:B libtool:B libxslt:B expat:B globus:B pkgconfig:B/ ],
+       'lb.utils' => [ qw/cppunit:B libtool:B globus:B pkgconfig:B/ ],
        'lb.ws-interface' => [ qw/libxslt:B tidy:B/ ],
-       'lb.ws-test' => [ qw/gsoap:B libtool:B globus:B/ ],
+       'lb.ws-test' => [ qw/gsoap:B libtool:B globus:B pkgconfig:B/ ],
        'lb.types' => [ qw// ],
-       'lb.harvester' => [ qw/docbook-utils:B libtool:B globus:B/ ],
-       'lbjp-common.db' => [ qw/mysql-devel:B postgresql:B cppunit:B log4c:B libtool:B/ ],
+       'lb.harvester' => [ qw/docbook-utils:B libtool:B globus:B pkgconfig:B/ ],
+       'lbjp-common.db' => [ qw/mysql-devel:B postgresql:B cppunit:B log4c:B libtool:B pkgconfig:B/ ],
        'lbjp-common.log' => [ qw/log4c libtool:B/ ],
        'lbjp-common.maildir' => [ qw/libtool:B/ ],
        'lbjp-common.server-bones' => [ qw/libtool:B/ ],
-       'lbjp-common.trio' => [ qw/cppunit:B libtool:B/ ],
-       'lbjp-common.jp-interface' => [ qw/cppunit:B log4c:B libtool:B/ ],
-       'lbjp-common.gss' =>  [ qw/globus_essentials:R globus:B cares cppunit:B libtool:B/ ],
-       'lbjp-common.gsoap-plugin' =>  [ qw/cppunit:B globus_essentials:R globus:B cares:B gsoap gsoapxx libtool:B/ ],
-       'jobid.api-c' =>  [ qw/cppunit:B libtool:B openssl:B/ ],
-       'jobid.api-cpp' =>  [ qw/cppunit:B libtool:B/ ],
+       'lbjp-common.trio' => [ qw/cppunit:B libtool:B pkgconfig:B/ ],
+       'lbjp-common.jp-interface' => [ qw/cppunit:B log4c:B libtool:B pkgconfig:B/ ],
+       'lbjp-common.gss' =>  [ qw/globus_essentials:R globus:B cares cppunit:B libtool:B pkgconfig:B/ ],
+       'lbjp-common.gsoap-plugin' =>  [ qw/cppunit:B globus_essentials:R globus:B cares:B gsoap gsoapxx libtool:B pkgconfig:B/ ],
+       'jobid.api-c' =>  [ qw/cppunit:B libtool:B openssl:B pkgconfig:B/ ],
+       'jobid.api-cpp' =>  [ qw/cppunit:B libtool:B pkgconfig:B/ ],
        'jobid.api-java' =>  [ qw/ant:B jdk:B/ ],
-       'jp.client' => [ qw/gsoap libtar globus_essentials:R globus:B/ ],
+       'jp.client' => [ qw/gsoap libtar globus_essentials:R globus:B pkgconfig:B/ ],
         'jp.doc' => [],
-        'jp.index' => [ qw/gsoap globus_essentials:R globus:B mysql-server:R/ ],
-        'jp.primary' => [ qw/classads gsoap libtar globus_essentials:R globus:B  mysql-server:R/ ],
+        'jp.index' => [ qw/gsoap globus_essentials:R globus:B mysql-server:R pkgconfig:B/ ],
+        'jp.primary' => [ qw/classads:B gsoap libtar globus_essentials:R globus:B  mysql-server:R pkgconfig:B/ ],
         'jp.server-common' => [],
         'jp.ws-interface' => [],
-       'gridsite.core' => [ qw/httpd-devel:B gsoap:B globus:B curl:B doxygen:B fuse-devel:B libxml2:B openssl:B doxygen:B/ ],
+       'gridsite.core' => [ qw/httpd-devel:B gsoap:B globus:B curl:B doxygen:B fuse-devel:B libxml2:B openssl:B doxygen:B pkgconfig:B/ ],
        'gridsite.commands' => [ qw/curl:R openssl:R/ ],
        'gridsite.apache' => [ qw/libxml2:R openssl:R curl:R/ ],
        'gridsite.libs' => [ qw/libxml2:R openssl:R/ ],
@@ -631,9 +631,9 @@ BEGIN{
        'gridsite.service-clients' => [ qw/curl:R gsoap:R gsoapxx:R/ ],
        'gridsite.gsexec' => [ qw// ],
        'gridsite.1.5-compat' => [ qw/httpd-devel:B gsoap:B globus:B curl:B doxygen:B fuse-devel:B libxml2:B openssl:B doxygen:B/ ],
-       'px.proxyrenewal' => [ qw/globus:B globus_essentials:R myproxy-devel:B voms:B libtool:B/ ],
+       'px.proxyrenewal' => [ qw/globus:B globus_essentials:R myproxy-devel:B voms:B libtool:B pkgconfig:B/ ],
        'px.myproxy-config' => [ qw/myproxy-admin:R/ ], # in myproxy-config.spec
-       'canl.c' => [ qw/cares:B openssl:B libtool:B bison:B flex:B krb5-devel:B/ ],
+       'canl.c' => [ qw/cares:B openssl:B libtool:B bison:B flex:B krb5-devel:B pkgconfig:B/ ],
 );
 
 %need_jars = (
@@ -1552,6 +1552,8 @@ sub mode_etics {
                $conftag = $branch;
                # forced low age number
                $age = $branch eq 'HEAD' ? '0head' : '0dev';
+               # add project major version number
+               $age .= '.'.$project_version;
                push @copts, '--version ${version}-${age}';
        }
        else {
@@ -1564,11 +1566,13 @@ sub mode_etics {
                if ($project eq 'emi' and $project_version == 1) {
                        $age = $age - 1;
                }
-       }
 
-       # emi1 suffix for older packaging
+               # '.emi1' suffix for older packaging
+               if ($project eq 'emi' and $project_version == 1) {
+                       $age = $age.'.'.$project.$project_version;
+               }
+       }
        if ($project eq 'emi' and $project_version == 1) {
-               $age = $age.$project.$project_version;
                $conf = $conf.$project.$project_version;
        }
 
@@ -1868,7 +1872,7 @@ $output};
 
                        `diff -b "$file" "$file.new"`;
                        if ($? == 0) {
-                               print STDERR "($file not changed)\n";
+                               print STDERR "($file not changed)\n" if ($debug);
                                unlink "$file.new";
                        } else {
                                print STDERR "Writing $file\n";
index aff179e..89ffd14 100644 (file)
@@ -2,7 +2,7 @@ Source: glite-lb-logger-msg
 Priority: extra
 Maintainer: @MAINTAINER@
 Uploaders: @UPLOADERS@
-Build-Depends: debhelper (>= 7.0.50~), activemq-cpp-dev, chrpath, glite-lb-logger-dev, libcppunit-dev, libglite-lbjp-common-log-dev, libglite-lbjp-common-trio-dev, libtool
+Build-Depends: debhelper (>= 7.0.50~), activemq-cpp-dev, chrpath, glite-lb-logger-dev, libcppunit-dev, libglite-lbjp-common-log-dev, libglite-lbjp-common-trio-dev, libtool, pkg-config
 Standards-Version: 3.9.1
 Section: misc
 Homepage: @URL@
@@ -12,7 +12,7 @@ DM-Upload-Allowed: yes
 Package: glite-lb-logger-msg
 Section: misc
 Architecture: any
-Depends: glite-lb-logger, ${misc:Depends}
+Depends: glite-lb-logger, ${shlibs:Depends}, ${misc:Depends}
 Description: @SUMMARY@
 @DEBIAN_DESCRIPTION@
 
index 125f64c..5756b18 100644 (file)
@@ -12,6 +12,7 @@ BuildRequires: glite-lb-logger-devel%{?_isa}
 BuildRequires: glite-lbjp-common-log-devel%{?_isa}
 BuildRequires: glite-lbjp-common-trio-devel%{?_isa}
 BuildRequires: libtool
+BuildRequires: pkgconfig
 Requires: glite-lb-logger
 BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
 AutoReqProv: yes
index c747d76..b57b1db 100644 (file)
@@ -2,7 +2,7 @@ Source: glite-lb-logger
 Priority: extra
 Maintainer: @MAINTAINER@
 Uploaders: @UPLOADERS@
-Build-Depends: debhelper (>= 7.0.50~), chrpath, libcppunit-dev, libglite-jobid-api-c-dev, libglite-lbjp-common-gss-dev, libglite-lbjp-common-log-dev, libglite-lbjp-common-trio-dev, libtool
+Build-Depends: debhelper (>= 7.0.50~), chrpath, libcppunit-dev, libglite-jobid-api-c-dev, libglite-lbjp-common-gss-dev, libglite-lbjp-common-log-dev, libglite-lbjp-common-trio-dev, libtool, pkg-config
 Standards-Version: 3.9.1
 Section: misc
 Homepage: @URL@
index 46ce6e5..db91b35 100644 (file)
@@ -14,6 +14,7 @@ BuildRequires: glite-lbjp-common-gss-devel%{?_isa}
 BuildRequires: glite-lbjp-common-trio-devel%{?_isa}
 BuildRequires: glite-lbjp-common-log-devel%{?_isa}
 BuildRequires: libtool
+BuildRequires: pkgconfig
 Requires(post): chkconfig
 Requires(preun): chkconfig
 Requires(preun): initscripts
index 9a0c3ed..49116eb 100644 (file)
@@ -238,7 +238,9 @@ WS_CLIENT_LIBS:= ${GSOAP_LIB} -lglite_lb_common${default_flavour} \
 
 HDRS=index.h lb_authz.h store.h
 
-MAN_GZ:=glite-lb-bkindex.8.gz glite-lb-bkserverd.8.gz glite-lb-mon-db.1.gz
+MAN1_GZ:=glite-lb-mon-db.1.gz
+MAN8_GZ:=glite-lb-bkindex.8.gz glite-lb-bkserverd.8.gz
+MAN_GZ:=$(MAN1_GZ) $(MAN8_GZ)
 MAN = $(MAN_GZ:.gz=)
 
 LIB_OBJS_BK:= \
@@ -370,7 +372,8 @@ install:
        -mkdir -p ${DESTDIR}${PREFIX}${sysconfdir}/mysql/conf.d
        ${INSTALL} -m 644 ${top_srcdir}/LICENSE ${DESTDIR}${PREFIX}${prefix}/share/doc/${package}-${version}
        ( cd ${top_srcdir}/project && ${INSTALL} -m 644 ChangeLog package.description package.summary ${DESTDIR}${PREFIX}${prefix}/share/doc/${package}-${version} )
-       ${INSTALL} -m 644 ${MAN_GZ} ${DESTDIR}${PREFIX}${prefix}/share/man/man1
+       ${INSTALL} -m 644 ${MAN1_GZ} ${DESTDIR}${PREFIX}${prefix}/share/man/man1
+       ${INSTALL} -m 644 ${MAN8_GZ} ${DESTDIR}${PREFIX}${prefix}/share/man/man8
        for p in bkserverd bkindex mon-db; do \
                ${INSTALL} -m 755 "glite-lb-$$p" "${DESTDIR}${PREFIX}${prefix}/bin/glite-lb-$$p"; \
        done
@@ -397,7 +400,6 @@ install:
        (cd ${top_srcdir}/interface && install -m 644 ${HDRS} ${DESTDIR}${PREFIX}${prefix}/include/${globalprefix}/${lbprefix})
        install -m 644 ${STATIC_LIB_BK} ${DESTDIR}${PREFIX}${prefix}/${libdir}
        ${INSTALL} -m 644 ${top_srcdir}/interface/srv_perf.h ${DESTDIR}${PREFIX}${prefix}/include/${globalprefix}/${lbprefix}
-       ${INSTALL} -m 644 ${MAN_GZ} ${DESTDIR}${PREFIX}${prefix}/share/man/man8
 ifdef LB_PERF
        ${INSTALL} -m 755 ${top_srcdir}/src/perftest_proxy.sh ${DESTDIR}${PREFIX}${prefix}/sbin
 endif
index bcb1531..007c7b2 100755 (executable)
@@ -400,15 +400,15 @@ if ($mode eq 'build') { for my $ext (keys %externs) {
                my $jdk_prefix;
 
                print "Looking for some caffein ... ";
-               if (defined $ENV{'JDK_HOME'}) {
+               if (defined($ENV{'JDK_HOME'}) and -f "$ENV{'JDK_HOME'}/include/jni.h") {
                        $jdk_prefix = $ENV{'JDK_HOME'};
                        print "JDK_HOME=$jdk_prefix\n";
-               } elsif (defined $ENV{'JAVA_HOME'}) {
+               } elsif (defined($ENV{'JAVA_HOME'}) and -f "$ENV{'JAVA_HOME'}/include/jni.h") {
                        $jdk_prefix = $ENV{'JAVA_HOME'};
                        print "JAVA_HOME=$jdk_prefix\n";
                } else {
                        foreach my $i (0..$#{$externs{$ext}{locations}}) {
-                               if (-e $externs{$ext}{locations}[$i]) {
+                               if (-e $externs{$ext}{locations}[$i] and -f "$externs{$ext}{locations}[$i]/include/jni.h") {
                                        $jdk_prefix=$externs{$ext}{locations}[$i];
                                        print "(found directory $jdk_prefix)\n";
                                        last;
@@ -591,37 +591,37 @@ BEGIN{
 );
 
 %need_externs_aux = (
-       'lb.client' => [ qw/cppunit:B classads libtool:B globus:B/ ],
-       'lb.common' => [ qw/expat cares:B cppunit:B classads libtool:B globus:B/ ],
+       'lb.client' => [ qw/cppunit:B classads:B libtool:B globus:B pkgconfig:B/ ],
+       'lb.common' => [ qw/expat cares:B cppunit:B classads:B libtool:B globus:B pkgconfig:B/ ],
        'lb.doc' => [ qw/tetex-latex:B/ ],
-       'lb.logger' => [ qw/cppunit:B libtool:B globus:B/ ],
-       'lb.logger-msg' => [ qw/cppunit:B activemq libtool:B globus:B/ ],
+       'lb.logger' => [ qw/cppunit:B libtool:B globus:B pkgconfig:B/ ],
+       'lb.logger-msg' => [ qw/cppunit:B activemq libtool:B globus:B pkgconfig:B/ ],
        'lb.nagios' => [ qw/globus_proxy_utils:R/ ],
-       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B/ ],
-       'lb.state-machine' => [ qw/classads libtool:B libxslt:B expat:B globus:B/ ],
-       'lb.utils' => [ qw/cppunit:B libtool:B globus:B/ ],
+       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads:B voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B pkgconfig:B/ ],
+       'lb.state-machine' => [ qw/classads:B libtool:B libxslt:B expat:B globus:B pkgconfig:B/ ],
+       'lb.utils' => [ qw/cppunit:B libtool:B globus:B pkgconfig:B/ ],
        'lb.ws-interface' => [ qw/libxslt:B tidy:B/ ],
-       'lb.ws-test' => [ qw/gsoap:B libtool:B globus:B/ ],
+       'lb.ws-test' => [ qw/gsoap:B libtool:B globus:B pkgconfig:B/ ],
        'lb.types' => [ qw// ],
-       'lb.harvester' => [ qw/docbook-utils:B libtool:B globus:B/ ],
-       'lbjp-common.db' => [ qw/mysql-devel:B postgresql:B cppunit:B log4c:B libtool:B/ ],
+       'lb.harvester' => [ qw/docbook-utils:B libtool:B globus:B pkgconfig:B/ ],
+       'lbjp-common.db' => [ qw/mysql-devel:B postgresql:B cppunit:B log4c:B libtool:B pkgconfig:B/ ],
        'lbjp-common.log' => [ qw/log4c libtool:B/ ],
        'lbjp-common.maildir' => [ qw/libtool:B/ ],
        'lbjp-common.server-bones' => [ qw/libtool:B/ ],
-       'lbjp-common.trio' => [ qw/cppunit:B libtool:B/ ],
-       'lbjp-common.jp-interface' => [ qw/cppunit:B log4c:B libtool:B/ ],
-       'lbjp-common.gss' =>  [ qw/globus_essentials:R globus:B cares cppunit:B libtool:B/ ],
-       'lbjp-common.gsoap-plugin' =>  [ qw/cppunit:B globus_essentials:R globus:B cares:B gsoap gsoapxx libtool:B/ ],
-       'jobid.api-c' =>  [ qw/cppunit:B libtool:B openssl:B/ ],
-       'jobid.api-cpp' =>  [ qw/cppunit:B libtool:B/ ],
+       'lbjp-common.trio' => [ qw/cppunit:B libtool:B pkgconfig:B/ ],
+       'lbjp-common.jp-interface' => [ qw/cppunit:B log4c:B libtool:B pkgconfig:B/ ],
+       'lbjp-common.gss' =>  [ qw/globus_essentials:R globus:B cares cppunit:B libtool:B pkgconfig:B/ ],
+       'lbjp-common.gsoap-plugin' =>  [ qw/cppunit:B globus_essentials:R globus:B cares:B gsoap gsoapxx libtool:B pkgconfig:B/ ],
+       'jobid.api-c' =>  [ qw/cppunit:B libtool:B openssl:B pkgconfig:B/ ],
+       'jobid.api-cpp' =>  [ qw/cppunit:B libtool:B pkgconfig:B/ ],
        'jobid.api-java' =>  [ qw/ant:B jdk:B/ ],
-       'jp.client' => [ qw/gsoap libtar globus_essentials:R globus:B/ ],
+       'jp.client' => [ qw/gsoap libtar globus_essentials:R globus:B pkgconfig:B/ ],
         'jp.doc' => [],
-        'jp.index' => [ qw/gsoap globus_essentials:R globus:B mysql-server:R/ ],
-        'jp.primary' => [ qw/classads gsoap libtar globus_essentials:R globus:B  mysql-server:R/ ],
+        'jp.index' => [ qw/gsoap globus_essentials:R globus:B mysql-server:R pkgconfig:B/ ],
+        'jp.primary' => [ qw/classads:B gsoap libtar globus_essentials:R globus:B  mysql-server:R pkgconfig:B/ ],
         'jp.server-common' => [],
         'jp.ws-interface' => [],
-       'gridsite.core' => [ qw/httpd-devel:B gsoap:B globus:B curl:B doxygen:B fuse-devel:B libxml2:B openssl:B doxygen:B/ ],
+       'gridsite.core' => [ qw/httpd-devel:B gsoap:B globus:B curl:B doxygen:B fuse-devel:B libxml2:B openssl:B doxygen:B pkgconfig:B/ ],
        'gridsite.commands' => [ qw/curl:R openssl:R/ ],
        'gridsite.apache' => [ qw/libxml2:R openssl:R curl:R/ ],
        'gridsite.libs' => [ qw/libxml2:R openssl:R/ ],
@@ -631,9 +631,9 @@ BEGIN{
        'gridsite.service-clients' => [ qw/curl:R gsoap:R gsoapxx:R/ ],
        'gridsite.gsexec' => [ qw// ],
        'gridsite.1.5-compat' => [ qw/httpd-devel:B gsoap:B globus:B curl:B doxygen:B fuse-devel:B libxml2:B openssl:B doxygen:B/ ],
-       'px.proxyrenewal' => [ qw/globus:B globus_essentials:R myproxy-devel:B voms:B libtool:B/ ],
+       'px.proxyrenewal' => [ qw/globus:B globus_essentials:R myproxy-devel:B voms:B libtool:B pkgconfig:B/ ],
        'px.myproxy-config' => [ qw/myproxy-admin:R/ ], # in myproxy-config.spec
-       'canl.c' => [ qw/cares:B openssl:B libtool:B bison:B flex:B krb5-devel:B/ ],
+       'canl.c' => [ qw/cares:B openssl:B libtool:B bison:B flex:B krb5-devel:B pkgconfig:B/ ],
 );
 
 %need_jars = (
@@ -1552,6 +1552,8 @@ sub mode_etics {
                $conftag = $branch;
                # forced low age number
                $age = $branch eq 'HEAD' ? '0head' : '0dev';
+               # add project major version number
+               $age .= '.'.$project_version;
                push @copts, '--version ${version}-${age}';
        }
        else {
@@ -1564,11 +1566,13 @@ sub mode_etics {
                if ($project eq 'emi' and $project_version == 1) {
                        $age = $age - 1;
                }
-       }
 
-       # emi1 suffix for older packaging
+               # '.emi1' suffix for older packaging
+               if ($project eq 'emi' and $project_version == 1) {
+                       $age = $age.'.'.$project.$project_version;
+               }
+       }
        if ($project eq 'emi' and $project_version == 1) {
-               $age = $age.$project.$project_version;
                $conf = $conf.$project.$project_version;
        }
 
@@ -1868,7 +1872,7 @@ $output};
 
                        `diff -b "$file" "$file.new"`;
                        if ($? == 0) {
-                               print STDERR "($file not changed)\n";
+                               print STDERR "($file not changed)\n" if ($debug);
                                unlink "$file.new";
                        } else {
                                print STDERR "Writing $file\n";
index 2bdafc9..a7a7645 100644 (file)
 - Job ACL output refactoring, fixing SB #92766
 - Recognize built-in index on parent_job when evaluating queries -- SB #78743
 
+2.3.5-1
+- Packaging fixes
+  - libclassad0-dev permitted as dependency too (older package)
+  - Explicit pkg-config dependency (needed to build lbjp-common.gss on Debian)
+- Enabling job status queries over socket (fixes the proxy purge, second part of the SB #88630)
+
index 0907557..9901cdd 100644 (file)
@@ -2,7 +2,7 @@ Source: glite-lb-server
 Priority: extra
 Maintainer: @MAINTAINER@
 Uploaders: @UPLOADERS@
-Build-Depends: debhelper (>= 7.0.50~), bison, chrpath, flex, glite-lb-types, glite-lb-ws-interface, gsoap, libc-ares-dev, libc-ares2, libclassad-dev, libclassad1, libcppunit-dev, libexpat1, libexpat1-dev, libglobus-gssapi-gsi-dev, libglite-jobid-api-c-dev, libglite-lb-common-dev, libglite-lb-state-machine-dev, libglite-lbjp-common-db-dev, libglite-lbjp-common-gss-dev, libglite-lbjp-common-gsoap-plugin-dev, libglite-lbjp-common-log-dev, libglite-lbjp-common-maildir-dev, libglite-lbjp-common-server-bones-dev, libglite-lbjp-common-trio-dev, libgridsite-dev, liblcas-dev, libtool, libxml2, libxml2-dev, voms-dev
+Build-Depends: debhelper (>= 7.0.50~), bison, chrpath, flex, glite-lb-types, glite-lb-ws-interface, gsoap, libc-ares-dev, libc-ares2, libclassad0-dev | libclassad-dev, libcppunit-dev, libexpat1, libexpat1-dev, libglobus-gssapi-gsi-dev, libglite-jobid-api-c-dev, libglite-lb-common-dev, libglite-lb-state-machine-dev, libglite-lbjp-common-db-dev, libglite-lbjp-common-gss-dev, libglite-lbjp-common-gsoap-plugin-dev, libglite-lbjp-common-log-dev, libglite-lbjp-common-maildir-dev, libglite-lbjp-common-server-bones-dev, libglite-lbjp-common-trio-dev, libgridsite-dev, liblcas-dev, libtool, libxml2, libxml2-dev, pkg-config, voms-dev
 Standards-Version: 3.9.1
 Section: misc
 Homepage: @URL@
index 8c02c6c..9f41c23 100644 (file)
@@ -38,6 +38,9 @@ install: build-stamp
        $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp
        rm -vf $(CURDIR)/debian/tmp/usr/lib/*.la
        rm -vf $(CURDIR)/debian/tmp/usr/lib/*.a
+       rm -vf $(CURDIR)/debian/tmp/usr/lib/modules/*.la
+       rm -vf $(CURDIR)/debian/tmp/usr/lib/modules/*.a
+       find $(CURDIR)/debian/tmp -name '*' -print | xargs -I {} -i bash -c "chrpath -d {} > /dev/null 2>&1" || echo 'Stripped RPATH'
        mv $(CURDIR)/debian/tmp/usr/share/doc/glite-lb-server-@MAJOR@.@MINOR@.@REVISION@ $(CURDIR)/debian/tmp/usr/share/doc/glite-lb-server
        (cd $(CURDIR)/debian/tmp/usr/share/doc/glite-lb-server; \
         rm -fv ChangeLog LICENSE; \
index fee3dea..0089b6d 100644 (file)
@@ -38,6 +38,7 @@ BuildRequires: expat-devel
 BuildRequires: voms
 BuildRequires: bison
 BuildRequires: chrpath
+BuildRequires: pkgconfig
 Requires: mysql-server
 # for upgrade from EMI-1:
 # new function glite_srvbones_daemon_listen() in 2.2.0
@@ -140,12 +141,9 @@ fi
 /usr/share/doc/%{name}-%{version}/LICENSE
 /usr/share/doc/%{name}-%{version}/package.description
 /usr/share/doc/%{name}-%{version}/package.summary
-/usr/share/man/man1/glite-lb-bkindex.8.gz
-/usr/share/man/man1/glite-lb-bkserverd.8.gz
 /usr/share/man/man1/glite-lb-mon-db.1.gz
 /usr/share/man/man8/glite-lb-bkindex.8.gz
 /usr/share/man/man8/glite-lb-bkserverd.8.gz
-/usr/share/man/man8/glite-lb-mon-db.1.gz
 
 
 %changelog
index a993f9a..c71dbb5 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.3.4
+module.version=2.3.5
 module.age=1
index 0c213e0..2d03e88 100644 (file)
@@ -123,6 +123,19 @@ check_authz_policy(edg_wll_authz_policy policy,
     return 0;
 }
 
+int
+check_authz_policy_ctx(edg_wll_Context ctx,
+                     authz_action action)
+{
+        struct _edg_wll_GssPrincipal_data princ;
+        memset(&princ, 0, sizeof princ);
+
+        princ.name = ctx->peerName;
+        princ.fqans = ctx->fqans;
+
+       return check_authz_policy(&ctx->authz_policy, &princ, action);  
+}
+
 authz_action
 find_authz_action(const char *name)
 {
index b6f73b9..a37d87a 100644 (file)
@@ -59,6 +59,9 @@ parse_server_policy(edg_wll_Context ctx, const char *filename, edg_wll_authz_pol
 int
 check_authz_policy(edg_wll_authz_policy, edg_wll_GssPrincipal, authz_action);
 
+int
+check_authz_policy_ctx(edg_wll_Context ctx, authz_action);
+
 authz_action
 find_authz_action(const char *name);
 
index bb5dea8..2c47495 100644 (file)
@@ -27,6 +27,7 @@ limitations under the License.
 #include "glite/lb/context-int.h"
 #include "glite/lb/events.h"
 #include "glite/lb/events_parse.h"
+#include "glite/lb/ulm_parse.h"
 #include "purge.h"
 #include "store.h"
 #include "il_lbproxy.h"
@@ -65,6 +66,12 @@ db_store(edg_wll_Context ctx, char *event)
 
   local_job = is_job_local(ctx, ev->any.jobId);
 
+  if(ctx->event_load) {
+    char buff[30];
+    if(sscanf(event, "DG.ARRIVED=%s %*s", buff) == 1)
+      edg_wll_ULMDateToTimeval(buff, &(ev->any.arrived));
+  }
+
   if (!ctx->isProxy && check_store_authz(ctx, ev) != 0)
     goto err;
 
index c25f552..ea85059 100644 (file)
@@ -31,6 +31,8 @@ limitations under the License.
 #include "glite/lb/context-int.h"
 #include "glite/lb/events_parse.h"
 #include "glite/lb/ulm_parse.h"
+#include "glite/lb/intjobstat.h"
+#include "glite/lb/intjobstat_supp.h"
 
 #include "query.h"
 #include "get_events.h"
@@ -46,18 +48,25 @@ static int handle_specials(edg_wll_Context,time_t *);
 
 int edg_wll_DumpEventsServer(edg_wll_Context ctx,const edg_wll_DumpRequest *req,edg_wll_DumpResult *result)
 {
-       char    *from_s, *to_s, *stmt, *time_s, *ptr;
+       char    *from_s, *to_s, *stmt, *stmt2, *time_s, *ptr;
        char    *tmpfname;
        time_t  start,end;
        glite_lbu_Statement     q = NULL;
+       glite_lbu_Statement     q2 = NULL;
        char            *res[11];
+       char            *res2[6];
        int     event;
        edg_wll_Event   e;
+       edg_wll_Event   *f;
        int     ret,dump = 2;   /* TODO: manage dump file */
        time_t  from = req->from,to = req->to;
+       char *event_s, *dumpline;
+       int             len, written, total;
+       intJobStat *stat;
 
-       from_s = to_s = stmt = NULL;
+       from_s = to_s = stmt = stmt2 = NULL;
        memset(res,0,sizeof res);
+       memset(res2,0,sizeof res2);
        memset(&e,0,sizeof e);
 
        time(&start);
@@ -82,7 +91,7 @@ int edg_wll_DumpEventsServer(edg_wll_Context ctx,const edg_wll_DumpRequest *req,
                        "and j.jobid = e.jobid "
                        "and j.dg_jobid like 'https://%|Ss:%d/%%' "
                        "and arrived > %s and arrived <= %s "
-                       "order by arrived",
+                       "order by arrived,event",
                        ctx->srvName,ctx->srvPort,
                        from_s,to_s);
        glite_common_log_msg(LOG_CATEGORY_LB_SERVER_DB, LOG_PRIORITY_DEBUG, stmt);
@@ -109,43 +118,88 @@ int edg_wll_DumpEventsServer(edg_wll_Context ctx,const edg_wll_DumpRequest *req,
                        edg_wll_ResetError(ctx);
                }
                else {
-                       char    *event_s = edg_wll_UnparseEvent(ctx,&e);
+                       event_s = edg_wll_UnparseEvent(ctx,&e);
                        char    arr_s[100];
-                       int             len, written, total;
 
-                       strcpy(arr_s, "DG.ARRIVED=");
-                       edg_wll_ULMTimevalToDate(e.any.arrived.tv_sec,
-                                                       e.any.arrived.tv_usec,
-                                                       arr_s+strlen("DG.ARRIVED="));
-                       len = strlen(arr_s);
+                       edg_wll_ULMTimevalToDate(e.any.arrived.tv_sec, e.any.arrived.tv_usec, arr_s);
+                       asprintf(&dumpline, "DG.ARRIVED=%s %s\n", arr_s, event_s);
+                       len = strlen(dumpline); 
                        total = 0;
                        while (total != len) {
-                               written = write(dump,arr_s+total,len-total);
+                               written = write(dump,dumpline+total,len-total);
                                if (written < 0 && errno != EAGAIN) {
                                        edg_wll_SetError(ctx,errno,"writing dump file");
-                                       free(event_s);
-                                       goto clean;
-                               }
-                               total += written;
-                       }
-                       write(dump, " ", 1);
-                       len = strlen(event_s);
-                       total = 0;
-                       while (total != len) {
-                               written = write(dump,event_s+total,len-total);
-                               if (written < 0 && errno != EAGAIN) {
-                                       edg_wll_SetError(ctx,errno,"writing dump file");
-                                       free(event_s);
-                                       goto clean;
+                                       break;
                                }
                                total += written;
                        }
-                       write(dump,"\n",1);
                        free(event_s);
                }
                edg_wll_FreeEvent(&e); memset(&e,0,sizeof e);
        }
 
+       // Take care of implicit subjob registration events
+        trio_asprintf(&stmt2,
+                        "select s.jobid,s.parent_job,ef.ulm,j.dg_jobid,s.int_status,e.arrived from states s, events_flesh ef, events e,jobs j "
+                        "where s.parent_job<>'*no parent job*' AND "
+                       "ef.jobid=s.parent_job AND (e.code=%d OR e.code=%d) AND "
+                       "e.jobid=ef.jobid AND e.event=ef.event AND "
+                       "e.arrived > %s AND e.arrived <= %s AND "
+                       "j.jobid=s.jobid",
+                       EDG_WLL_EVENT_REGJOB, EDG_WLL_EVENT_FILETRANSFERREGISTER,
+                       from_s,to_s);
+       glite_common_log_msg(LOG_CATEGORY_LB_SERVER_DB, LOG_PRIORITY_DEBUG, stmt2);
+       if (edg_wll_ExecSQL(ctx,stmt2,&q2) < 0) goto clean;
+
+       while ((ret = edg_wll_FetchRow(ctx,q2,sizeof(res2)/sizeof(res2[0]),NULL,res2)) > 0) {
+               glite_common_log(LOG_CATEGORY_LB_SERVER, LOG_PRIORITY_DEBUG, "Dumping subjob %s, parent %s", res2[0], res2[1]);
+
+               edg_wll_ParseEvent(ctx,res2[2],&f);
+
+               f->regJob.nsubjobs = 0;
+               f->regJob.parent = f->any.jobId;
+
+               f->any.jobId=NULL;
+               edg_wlc_JobIdParse(res2[3], &f->any.jobId);
+
+               f->any.arrived.tv_sec = glite_lbu_StrToTime(res2[5]);
+               f->any.arrived.tv_usec = 0;
+
+               char *rest;
+               stat = dec_intJobStat(res2[4], &rest);
+               //nasty but not the only similar solution in code
+               switch (stat->pub.jobtype) {
+                       case EDG_WLL_STAT_SIMPLE:
+                               f->regJob.jobtype = EDG_WLL_REGJOB_SIMPLE; break;
+                       case EDG_WLL_STAT_FILE_TRANSFER:
+                               f->regJob.jobtype = EDG_WLL_REGJOB_FILE_TRANSFER; break;
+                       default:
+                               f->regJob.jobtype = EDG_WLL_REGJOB_JOBTYPE_UNDEFINED;
+                               glite_common_log(LOG_CATEGORY_LB_SERVER, LOG_PRIORITY_WARN, "Job %s has type %d but it also lists a parent job %s", res2[2], stat->pub.jobtype, res2[1]);
+               }
+
+               char    arr_s[100];
+               event_s = edg_wll_UnparseEvent(ctx,f);
+               edg_wll_ULMTimevalToDate(f->any.arrived.tv_sec, f->any.arrived.tv_usec, arr_s);
+               asprintf(&dumpline, "DG.ARRIVED=%s %s\n", arr_s, event_s);
+
+               len = strlen(dumpline); 
+               total = 0;
+               while (total != len) {
+                       written = write(dump,dumpline+total,len-total);
+                       if (written < 0 && errno != EAGAIN) {
+                               edg_wll_SetError(ctx,errno,"writing dump file");
+                               break;
+                       }
+                       total += written;
+               }
+               edg_wll_FreeStatus(intJobStat_to_JobStat(stat));
+               free(event_s);
+               free(dumpline);
+               edg_wll_FreeEvent(f);
+               if (total != len) goto clean; 
+       }
+
        time(&end);
        time_s = time_to_string(start, &ptr);
        edg_wll_SetServerState(ctx,EDG_WLL_STATE_DUMP_START,time_s);
@@ -164,8 +218,10 @@ int edg_wll_DumpEventsServer(edg_wll_Context ctx,const edg_wll_DumpRequest *req,
 clean:
        edg_wll_FreeEvent(&e);
        glite_lbu_FreeStmt(&q);
+       glite_lbu_FreeStmt(&q2);
 
        free(stmt);
+       free(stmt2);
        free(from_s);
        free(to_s);
        return edg_wll_Error(ctx,NULL,NULL);
index 936621a..7d7865a 100644 (file)
@@ -22,6 +22,7 @@ limitations under the License.
 #include <errno.h>
 
 #include <openssl/x509.h>
+#include <gssapi.h>
 #ifndef NO_GLOBUS_GSSAPI
 #include "lcas/lcas_pem.h"
 #include "voms/voms_apic.h"
@@ -935,7 +936,6 @@ check_store_authz(edg_wll_Context ctx, edg_wll_Event *ev)
    const char *request = NULL;
    int ret;
    authz_action action;
-   struct _edg_wll_GssPrincipal_data princ;
 
    switch (ev->any.type) {
        case EDG_WLL_EVENT_REGJOB:
@@ -985,9 +985,7 @@ check_store_authz(edg_wll_Context ctx, edg_wll_Event *ev)
    if (policy_file == NULL)
         return 0;
 
-   princ.name = ctx->peerName;
-   princ.fqans = ctx->fqans;
-   ret = check_authz_policy(&ctx->authz_policy, &princ, action);
+   ret = check_authz_policy_ctx(ctx, action);
    if (ret == 1)
       return 0;
 
@@ -1234,22 +1232,20 @@ check_jobstat_authz(edg_wll_Context ctx,
                    int *authz_flags)
 {
     *authz_flags = 0;
+    if (job_flags & EDG_WLL_NOTIF_ANONYMIZE) *authz_flags |= READ_ANONYMIZED;
+
+    if (ctx->noAuth)
+       return 1;
 
     if (peer == NULL || peer->name == NULL)
        return 0;
 
-    if (job_flags & EDG_WLL_NOTIF_ANONYMIZE) *authz_flags |= READ_ANONYMIZED;
-
     if (edg_wll_gss_equal_subj(peer->name, stat->owner))
        return 1;
     if (stat->payload_owner && edg_wll_gss_equal_subj(peer->name, stat->payload_owner))
        return 1;
 
-    if ((!(*authz_flags & READ_ANONYMIZED)) && (check_authz_policy(&ctx->authz_policy, peer, READ_ANONYMIZED)))
-       *authz_flags |= READ_ANONYMIZED;
-
-    if (ctx->noAuth ||
-       edg_wll_amIroot(peer->name, peer->fqans, &ctx->authz_policy))
+    if (edg_wll_amIroot(peer->name, peer->fqans, &ctx->authz_policy))
        return 1;
     if (acl && edg_wll_CheckACL_princ(ctx, acl, EDG_WLL_CHANGEACL_READ, peer) == 0)
        return 1;
@@ -1257,9 +1253,12 @@ check_jobstat_authz(edg_wll_Context ctx,
 
     if (check_authz_policy(&ctx->authz_policy, peer, READ_ALL))
        return 1;
+    if ((!(*authz_flags & READ_ANONYMIZED)) && (check_authz_policy(&ctx->authz_policy, peer, READ_ANONYMIZED))) {
+       *authz_flags |= READ_ANONYMIZED;
+       return 1;
+    }
     if (check_authz_policy(&ctx->authz_policy, peer, STATUS_FOR_MONITORING)) {
        *authz_flags |= STATUS_FOR_MONITORING;
-       return 1;
     }
 
     return 0;
index 7a32fb0..78a4c1d 100644 (file)
@@ -48,84 +48,96 @@ int edg_wll_QueryToHTML(edg_wll_Context ctx UNUSED_VAR, edg_wll_Event *eventsOut
        return -1;
 }
 
+int jobstat_cmp (const void *a, const void *b) {
+       static int compr;
+       // This code should sort IDs by parent ID first, then by JobID.
+       compr = strcmp(((JobIdSorter*)a)->key, ((JobIdSorter*)b)->key);
+       if (compr) return compr;
+       if (!((JobIdSorter*)a)->parent_unparsed) return -1;
+       if (!((JobIdSorter*)b)->parent_unparsed) return 1;
+       return strcmp(((JobIdSorter*)a)->id_unparsed, ((JobIdSorter*)b)->id_unparsed);
+}
+
 /* construct Message-Body of Response-Line for edg_wll_UserJobs */
-int edg_wll_UserInfoToHTML(edg_wll_Context ctx UNUSED_VAR, edg_wlc_JobId *jobsOut, edg_wll_JobStat *statsOut, char **message)
+int edg_wll_UserInfoToHTML(edg_wll_Context ctx UNUSED_VAR, edg_wlc_JobId *jobsOut, edg_wll_JobStat *statsOut, char **message, int text)
 {
-       //TODO remove quadratic complexity one day...
+        char *pomA = NULL, *pomB, *pomC;
+       int i, total = 0, bufsize, written = 0, linlen, wassub = 0, lineoverhead;
+       JobIdSorter *order;
+       
 
-        char *pomA = NULL, *pomB;
-        int i = 0, j;
+        while (jobsOut && jobsOut[total]) total++;
 
-        /* head */
-        pomB = strdup("");
+       order=(JobIdSorter*)malloc(sizeof(JobIdSorter) * total);
 
-        while (jobsOut && jobsOut[i]) {
-                char    *chid = edg_wlc_JobIdUnparse(jobsOut[i]);
+       for (i = 0; i < total; i++) {
+               order[i].id_unparsed = edg_wlc_JobIdUnparse(jobsOut[i]);
+               order[i].parent_unparsed = edg_wlc_JobIdUnparse(statsOut[i].parent_job);
+               order[i].key = order[i].parent_unparsed ? order[i].parent_unparsed : order[i].id_unparsed;
+               order[i].order = i;
+       } 
 
-               if (! statsOut){
-                        asprintf(&pomA,"%s\t\t <li><a href=\"%s\">%s</a></li>\r\n",
-                                pomB, chid,chid);
-                        free(pomB);
-                        pomB = pomA;
-               }
-               else if ((statsOut[i].jobtype != EDG_WLL_STAT_FILE_TRANSFER_COLLECTION 
-                       && statsOut[i].jobtype != EDG_WLL_STAT_FILE_TRANSFER 
-                       && ! statsOut[i].parent_job )
-                       || ((statsOut[i].jobtype == EDG_WLL_STAT_FILE_TRANSFER_COLLECTION 
-                       || statsOut[i].jobtype == EDG_WLL_STAT_FILE_TRANSFER) 
-                       && ! statsOut[i].ft_compute_job)
-                       ){
-                       asprintf(&pomA,"%s\t\t <li><a href=\"%s\">%s</a></li>\r\n",
-                               pomB, chid,chid);
-                       free(pomB);
-                       pomB = pomA;
-                       if (statsOut[i].jobtype == EDG_WLL_STAT_COLLECTION){
-                               asprintf(&pomA,"%s\t\t <ul>\r\n", pomB);
-                                free(pomB);
-                                pomB = pomA;
-                               j = 0;
-                               while (jobsOut[j]) {
-                                       char *chid_parent = edg_wlc_JobIdUnparse(statsOut[j].parent_job);
-                                       if (chid_parent && (strcmp(chid, chid_parent) == 0)){
-                                               char *chid_children = edg_wlc_JobIdUnparse(jobsOut[j]);
-                                               asprintf(&pomA,"%s\t\t <li><a href=\"%s\">%s</a></li>\r\n",
-                                                       pomB, chid_children,chid_children);
-                                               free(chid_children);
-                                               free(pomB);
-                                               pomB = pomA;
-                                       }
-                                       free(chid_parent);
-                                       j++;
-                               }
-                               asprintf(&pomA,"%s\t\t </ul>\r\n", pomB);
-                                free(pomB);
-                                pomB = pomA;
-                       }
-                       free(chid);
+       if (text) {
+               linlen = asprintf(&pomA,"User_jobs=");
+               asprintf(&pomC, "User_subject=%s\n", ctx->peerName ? ctx->peerName: "<anonymous>");
+               lineoverhead = 2;
+       }
+       else {          
+               qsort(order, total, sizeof(JobIdSorter), jobstat_cmp); 
+       
+               linlen = asprintf(&pomA, "<HTML>\n<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">\n<TITLE>User Jobs</TITLE>\n<BODY>\n"
+                       "<h2><B>User Jobs</B></h2>\nTotal of %d<P><UL>\n",total);
+
+               asprintf(&pomC, "</UL>User subject: %s<p>\n"
+                       "</BODY>\n</HTML>",
+                       ctx->peerName?ctx->peerName: "&lt;anonymous&gt;" );
+
+               lineoverhead = 35;//Good idea to change this value if the table row format changes, but not 100-% necessary. Loop will realloc if necessary.
+       }
+
+       bufsize = (strlen(order[0].id_unparsed)*2+lineoverhead)*total + linlen + strlen(pomC);
+       pomB = (char*)malloc(sizeof(char) * bufsize);
+
+       strcpy(pomB + written, pomA);
+       written=linlen;
+       free(pomA);
+
+        /* head */
+       for (i = 0; i < total; i++) {
+               if (text) linlen = asprintf(&pomA,"%s%s", order[i].id_unparsed, i + 1 == total ? "\n" : ",");
+               else {
+                       linlen = asprintf(&pomA, "%s<li><a href=\"%s\">%s</a></li>\n",
+                               order[i].parent_unparsed ? (wassub++ ? "" : "<ul>") : (wassub ? "</UL>" : ""),
+                               order[i].id_unparsed,
+                               order[i].id_unparsed );
+                       if (!order[i].parent_unparsed) wassub = 0;
                }
 
-                i++;
-        }
+               while (written+linlen >= bufsize) {
+                       bufsize = (bufsize + 5) * 1.2;
+                       pomB = realloc(pomB, sizeof(char) * bufsize);
+               }
 
-       char *ret;
-       asprintf(&ret, "<html>\r\n\t<body>\r\n");
-       pomA = ret;
-       if (pomB[0]){
-               asprintf(&ret, "%s<h2><B>User jobs</B></h2>\r\n"
-                       "<ul>%s</ul>",
-                       pomA, pomB
-               );
+               strcpy(pomB + written, pomA);
+               written = written + linlen;
                free(pomA);
-               free(pomB);
        }
-       pomA = ret;
-       asprintf(&ret, "%sUser subject: %s<p>"
-               "\t</body>\r\n</html>",
-               pomA, ctx->peerName?ctx->peerName: "&lt;anonymous&gt;"
-       );
-       free(pomA);
 
-        *message = ret;
+       if (written+strlen(pomC)+strlen("</UL>") >= bufsize) {
+               pomB = realloc(pomB, bufsize + strlen(pomC) + strlen("</UL>"));
+       }
+
+       if (wassub) { strcpy(pomB + written, "</UL>"); written = written + strlen("</UL>"); }
+       strcpy(pomB + written, pomC);
+       free(pomC);
+
+       for (i = 0; i < total; i++) {
+               free(order[i].id_unparsed);
+               free(order[i].parent_unparsed);
+       } 
+       free(order);
+
+        *message = pomB;
 
         return 0;
 }
@@ -534,93 +546,46 @@ int edg_wll_WSDLOutput(edg_wll_Context ctx UNUSED_VAR, char **message, char *fil
        return 0;
 }
 
-int edg_wll_StatisticsToHTML(edg_wll_Context ctx, char **message) {
+int edg_wll_StatisticsToHTML(edg_wll_Context ctx, char **message, int text) {
         char *out;
+       char* times[SERVER_STATISTICS_COUNT];
+       int i;
+       char *out_tmp;
+       time_t *starttime;
+
+       for (i = 0; i < SERVER_STATISTICS_COUNT; i++)
+               if (starttime = edg_wll_ServerStatisticsGetStart(ctx, i)) 
+                       if (text) asprintf(&(times[i]), "%ld", *starttime);
+                       else times[i] = strdup((const char*)ctime(starttime));
+               else
+                       times[i] = NULL;
+
+       if (!text) asprintf(&out, "<HTML>\n<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">\n<TITLE>Server Usage Statistics</TITLE>\n<BODY>\n"
+               "<h2>LB Server Usage Statistics</h2>\n"
+               "%s"
+               "<table halign=\"left\">\n"
+               "<tr><td>Variable</td><td>Value</td><td>Measured from</td></tr>\n",
+               edg_wll_ServerStatisticsInTmp() ? "<b>WARNING: L&B statistics are stored in /tmp, please, configure L&B server to make them really persistent!</b><br/><br/>\n" : "");
+       else
+               asprintf(&out, "");
+
+       for (i = 0; i < SERVER_STATISTICS_COUNT; i++) {
+               asprintf(&out_tmp, text ? "%s%s=%i,%s\n" : "%s<tr><td>%s</td><td>%i</td><td>%s</td></tr>\n", out,
+                       text ? edg_wll_server_statistics_type_key[i] : edg_wll_server_statistics_type_title[i],
+                       edg_wll_ServerStatisticsGetValue(ctx, i),
+                       times[i]);
+               free(out);
+               out = out_tmp;
+       }
 
-        struct _edg_wll_GssPrincipal_data princ;
-        memset(&princ, 0, sizeof princ);
-        princ.name = ctx->peerName;
-        princ.fqans = ctx->fqans;
-        if (ctx->count_server_stats == 2 && !ctx->noAuth && !check_authz_policy(&ctx->authz_policy, &princ, ADMIN_ACCESS))  
-        {
-                asprintf(&out,"<h2>LB Server Usage Statistics</h2>\n"
-                        "Only superusers can view server usage statistics on this particular server.\n");
-        }
-        else
-        {
-                char* times[SERVER_STATISTICS_COUNT];
-                int i;
-               char *head;
-                for (i = 0; i < SERVER_STATISTICS_COUNT; i++)
-                        if (edg_wll_ServerStatisticsGetStart(ctx, i))
-                                times[i] = strdup((const char*)ctime(edg_wll_ServerStatisticsGetStart(ctx, i)));
-                        else
-                                times[i] = 0;
-
-               if (edg_wll_ServerStatisticsInTmp())
-                        asprintf(&head,
-                        "<b>WARNING: L&B statistics are stored in /tmp, please, configure L&B server to make them really persistent!</b><br/><br/>\n");
-                else
-                        asprintf(&head, " ");
-
-                asprintf(&out,
-                        "<h2>LB Server Usage Statistics</h2>\n"
-                       "%s"
-                        "<table halign=\"left\">\n"
-                        "<tr><td>Variable</td><td>Value</td><td>Measured from</td></tr>\n"
-                        "<tr><td>gLite job regs</td><td>%i</td><td>%s</td></tr>\n"
-                        "<tr><td>PBS job regs</td><td>%i</td><td>%s</td></tr>\n"
-                        "<tr><td>Condor job regs</td><td>%i</td><td>%s</td></tr>\n"
-                        "<tr><td>CREAM job regs</td><td>%i</td><td>%s</td></tr>\n"
-                        "<tr><td>Sandbox regs</td><td>%i</td><td>%s</td></tr>\n"
-                        "<tr><td>Notification regs (legacy interface)</td><td>%i</td><td>%s</td></tr>\n"
-                        "<tr><td>Notification regs (msg interface)</td><td>%i</td><td>%s</td></tr>\n"
-                        "<tr><td>Job events</td><td>%i</td><td>%s</td></tr>\n"
-                        "<tr><td>Notifications sent (legacy)</td><td>%i</td><td>%s</td></tr>\n"
-                        "<tr><td>Notifications sent (msg)</td><td>%i</td><td>%s</td></tr>\n"
-                        "<tr><td>L&B protocol accesses</td><td>%i</td><td>%s</td></tr>\n"
-                        "<tr><td>WS queries</td><td>%i</td><td>%s</td></tr>\n"
-                        "<tr><td>HTML accesses</td><td>%i</td><td>%s</td></tr>\n"
-                        "<tr><td>Plain text accesses</td><td>%i</td><td>%s</td></tr>\n"
-                        "<tr><td>RSS accesses</td><td>%i</td><td>%s</td></tr>\n"
-                        "</table>\n",
-                       head,
-                       edg_wll_ServerStatisticsGetValue(ctx, SERVER_STATS_GLITEJOB_REGS),
-                        times[SERVER_STATS_GLITEJOB_REGS],
-                        edg_wll_ServerStatisticsGetValue(ctx, SERVER_STATS_PBSJOB_REGS),
-                        times[SERVER_STATS_PBSJOB_REGS],
-                        edg_wll_ServerStatisticsGetValue(ctx, SERVER_STATS_CONDOR_REGS),
-                        times[SERVER_STATS_CONDOR_REGS],
-                        edg_wll_ServerStatisticsGetValue(ctx, SERVER_STATS_CREAM_REGS),
-                        times[SERVER_STATS_CREAM_REGS],
-                        edg_wll_ServerStatisticsGetValue(ctx, SERVER_STATS_SANDBOX_REGS),
-                        times[SERVER_STATS_SANDBOX_REGS],
-                        edg_wll_ServerStatisticsGetValue(ctx, SERVER_STATS_NOTIF_LEGACY_REGS),
-                        times[SERVER_STATS_NOTIF_LEGACY_REGS],
-                        edg_wll_ServerStatisticsGetValue(ctx, SERVER_STATS_NOTIF_MSG_REGS),
-                        times[SERVER_STATS_NOTIF_MSG_REGS],
-                        edg_wll_ServerStatisticsGetValue(ctx, SERVER_STATS_JOB_EVENTS),
-                        times[SERVER_STATS_JOB_EVENTS],
-                        edg_wll_ServerStatisticsGetValue(ctx, SERVER_STATS_NOTIF_LEGACY_SENT),
-                        times[SERVER_STATS_NOTIF_LEGACY_SENT],
-                        edg_wll_ServerStatisticsGetValue(ctx, SERVER_STATS_NOTIF_MSG_SENT),
-                        times[SERVER_STATS_NOTIF_MSG_SENT],
-                        edg_wll_ServerStatisticsGetValue(ctx, SERVER_STATS_LBPROTO),
-                        times[SERVER_STATS_LBPROTO],
-                        edg_wll_ServerStatisticsGetValue(ctx, SERVER_STATS_WS_QUERIES),
-                        times[SERVER_STATS_WS_QUERIES],
-                        edg_wll_ServerStatisticsGetValue(ctx, SERVER_STATS_HTML_VIEWS),
-                        times[SERVER_STATS_HTML_VIEWS],
-                        edg_wll_ServerStatisticsGetValue(ctx, SERVER_STATS_TEXT_VIEWS),
-                        times[SERVER_STATS_TEXT_VIEWS],
-                        edg_wll_ServerStatisticsGetValue(ctx, SERVER_STATS_RSS_VIEWS),
-                        times[SERVER_STATS_RSS_VIEWS]
-                );
-
-                for (i = 0; i < SERVER_STATISTICS_COUNT; i++)
-                        free(times[i]);
-               free(head);
-        }
+       if (!text) {
+               asprintf(&out_tmp, "%s</table>\n</BODY>\n</HTML>", out);
+               free(out);
+               out = out_tmp;
+       }
+
+       for (i = 0; i < SERVER_STATISTICS_COUNT; i++)
+               free(times[i]);
 
         *message = out;
        return 0;
index 682662d..de054a1 100644 (file)
@@ -25,14 +25,20 @@ limitations under the License.
 #include "glite/lb/jobstat.h"
 #include "lb_proto.h"
 
+typedef struct {
+       char *id_unparsed;
+       char *parent_unparsed;
+       char *key;
+       int order; } JobIdSorter;
+
 int edg_wll_QueryToHTML(edg_wll_Context,edg_wll_Event *,char **);
 int edg_wll_GeneralJobStatusToHTML(edg_wll_Context, edg_wll_JobStat, char **);
 int edg_wll_CreamJobStatusToHTML(edg_wll_Context, edg_wll_JobStat, char **);
-int edg_wll_UserInfoToHTML(edg_wll_Context, edg_wlc_JobId *, edg_wll_JobStat *, char **);
+int edg_wll_UserInfoToHTML(edg_wll_Context, edg_wlc_JobId *, edg_wll_JobStat *, char **, int text);
 int edg_wll_UserNotifsToHTML(edg_wll_Context ctx, char **notifids, char **message, http_admin_option option, int adm);
 int edg_wll_NotificationToHTML(edg_wll_Context ctx, notifInfo *ni, char **message);
 char *edg_wll_ErrorToHTML(edg_wll_Context,int);
 int edg_wll_FileTransferStatusToHTML(edg_wll_Context ctx, edg_wll_JobStat stat, char **message);
-int edg_wll_StatisticsToHTML(edg_wll_Context ctx, char **message);
+int edg_wll_StatisticsToHTML(edg_wll_Context ctx, char **message, int text);
 
 #endif /* GLITE_LB_HTML_H */
index b72fbc6..3c63140 100644 (file)
@@ -722,15 +722,8 @@ edg_wll_ErrorCode edg_wll_Proto(edg_wll_Context ctx,
                        flags = (requestPTR[1]=='?') ? edg_wll_string_to_stat_flags(requestPTR + 2) : 0;
 
                        switch (edg_wll_UserJobsServer(ctx, EDG_WLL_STAT_CHILDREN, &jobsOut, &statesOut)) {
-                               case 0: if (text){
-                                               edg_wll_UserInfoToText(ctx, jobsOut, &message);
-                                               edg_wll_ServerStatisticsIncrement(ctx, SERVER_STATS_TEXT_VIEWS);
-                                       }
-                                       else if (html){
-                                               edg_wll_UserInfoToHTML(ctx, jobsOut, statesOut, &message);
-                                               edg_wll_ServerStatisticsIncrement(ctx, SERVER_STATS_HTML_VIEWS);
-                                       }
-                                       else ret = HTTP_OK;
+                               case 0: edg_wll_UserInfoToHTML(ctx, jobsOut, statesOut, &message, text);
+                                       edg_wll_ServerStatisticsIncrement(ctx, text ? SERVER_STATS_TEXT_VIEWS : SERVER_STATS_HTML_VIEWS);
                                        break;
                                case ENOENT: ret = HTTP_NOTFOUND; break;
                                case EPERM: ret = HTTP_UNAUTH; break;
@@ -925,13 +918,19 @@ edg_wll_ErrorCode edg_wll_Proto(edg_wll_Context ctx,
                } else if (extra_opt == HTTP_EXTRA_OPTION_CONFIGURATION) {
                        // also browser-readable HTML version here?
                        isadm = ctx->noAuth || edg_wll_amIroot(ctx->peerName, ctx->fqans,&ctx->authz_policy);
-
                        edg_wll_ConfigurationToText(ctx, isadm, &message);
                        edg_wll_ServerStatisticsIncrement(ctx, SERVER_STATS_TEXT_VIEWS);
        /* GET /?stats*/
                } else if (extra_opt == HTTP_EXTRA_OPTION_STATS) {
-                       edg_wll_StatisticsToHTML(ctx, &message);
-                       edg_wll_ServerStatisticsIncrement(ctx, SERVER_STATS_HTML_VIEWS);
+                       isadm = ctx->noAuth || edg_wll_amIroot(ctx->peerName, ctx->fqans,&ctx->authz_policy);
+                       if ( !isadm && ctx->count_server_stats == 2 ) {
+                               ret = HTTP_UNAUTH;
+                               edg_wll_SetError(ctx, EPERM, "Only superusers can view server usage statistics on this particular server.");
+                       }
+                       else {
+                               edg_wll_StatisticsToHTML(ctx, &message, text);
+                               edg_wll_ServerStatisticsIncrement(ctx, text ? SERVER_STATS_TEXT_VIEWS : SERVER_STATS_HTML_VIEWS);
+                       }
        /* GET [something else]: not understood */
                } else ret = HTTP_BADREQ;
                free(requestPTR); requestPTR = NULL;
@@ -954,7 +953,7 @@ edg_wll_ErrorCode edg_wll_Proto(edg_wll_Context ctx,
                        else {
                                int     fatal = 0;
 
-                               switch (edg_wll_QueryEventsServer(ctx,ctx->noAuth,
+                               switch (edg_wll_QueryEventsServer(ctx,ctx->noAuth | check_authz_policy_ctx(ctx, READ_ALL),
                                    (const edg_wll_QueryRec **)job_conditions, 
                                    (const edg_wll_QueryRec **)event_conditions, &eventsOut)) {
 
index 75fd249..31d6536 100644 (file)
@@ -121,41 +121,6 @@ int edg_wll_QueryToText(edg_wll_Context ctx UNUSED_VAR, edg_wll_Event *eventsOut
         free(a); a=NULL; \
 }
 
-
-int edg_wll_UserInfoToText(edg_wll_Context ctx, edg_wlc_JobId *jobsOut, char **message)
-{
-        char *a = NULL, *b;
-        int i = 0;
-        b = strdup("");
-
-        while (jobsOut[i]){
-                char *chid = edg_wlc_JobIdUnparse(jobsOut[i]);
-
-                if (i == 0)
-                        asprintf(&a, "%s%s", b, chid);
-                else
-                        asprintf(&a, "%s,%s", b, chid);
-
-                free(chid);
-                free(b);
-                b = a;
-                i++;
-        }
-
-       if (a){
-               asprintf(&a, "User_jobs=%s\n", b);
-               free(b);
-               b = a;
-       }
-       b = a;
-
-       asprintf(&a, "%sUser_subject=%s\n", b, ctx->peerName ? ctx->peerName: "<anonymous>");
-
-        *message = a;
-
-        return 0;
-}
-
 int edg_wll_UserNotifsToText(edg_wll_Context ctx, char **notifids, char **message){
        char *a = NULL, *b;
         int i = 0;
index c6d5da6..c5647f2 100644 (file)
@@ -25,7 +25,6 @@ limitations under the License.
 
 int edg_wll_QueryToText(edg_wll_Context,edg_wll_Event *,char **);
 int edg_wll_JobStatusToText(edg_wll_Context, edg_wll_JobStat, char **);
-int edg_wll_UserInfoToText(edg_wll_Context, edg_wlc_JobId *, char **);
 int edg_wll_UserNotifsToText(edg_wll_Context ctx, char **notifids, char **message);
 int edg_wll_NotificationToText(edg_wll_Context ctx, notifInfo *ni, char **message);
 int edg_wll_ConfigurationToText(edg_wll_Context ctx, int admin, char **message);
index 19ad4e5..9328483 100644 (file)
@@ -50,12 +50,11 @@ int edg_wll_LoadEventsServer(edg_wll_Context ctx,const edg_wll_LoadRequest *req,
 {
        int                                     fd,
                                                reject_fd = -1,
+                                               ctxgrey = ctx->greyjobs,
                                                readret, i, ret;
        size_t                                  maxsize;
        char                       *line = NULL, *errdesc,
                                                buff[30];
-       edg_wll_Event      *event;
-       edg_wlc_JobId           jobid = NULL;
 
 
        edg_wll_ResetError(ctx);
@@ -66,6 +65,8 @@ int edg_wll_LoadEventsServer(edg_wll_Context ctx,const edg_wll_LoadRequest *req,
        if ( (fd = open(req->server_file, O_RDONLY)) == -1 )
                return edg_wll_SetError(ctx, errno, "Server can not open the file");
 
+       ctx->greyjobs = 1;
+
        memset(result,0,sizeof(*result));
        i = 0;
        while ( 1 )
@@ -79,9 +80,9 @@ int edg_wll_LoadEventsServer(edg_wll_Context ctx,const edg_wll_LoadRequest *req,
                if ( readret == 0 )
                        break;
 
+               ctx->event_load = 1;
                i++;
-               if (   sscanf(line, "DG.ARRIVED=%s %*s", buff) != 1
-                       || edg_wll_ParseEvent(ctx, line, &event) )
+               if (db_store(ctx, line))
                {
                        char errs[100];
                        sprintf(errs, "Error parsing event at line %d", i);
@@ -90,21 +91,6 @@ int edg_wll_LoadEventsServer(edg_wll_Context ctx,const edg_wll_LoadRequest *req,
                        fprintf(stderr, "%s", errs);
                        continue;
                }
-               edg_wll_ULMDateToTimeval(buff, &(event->any.arrived));
-
-               if ( i == 1 )
-               {
-                       result->from = event->any.arrived.tv_sec;
-                       result->to = event->any.arrived.tv_sec;
-               }
-               ctx->event_load = 1;
-               
-               do {
-                       if (edg_wll_Transaction(ctx)) goto err;
-
-                       edg_wll_StoreEvent(ctx, event, line, NULL); 
-
-               } while (edg_wll_TransNeedRetry(ctx));
 
                if ((ret = edg_wll_Error(ctx, NULL, &errdesc)) != 0) {
                        int             len = strlen(line),
@@ -146,43 +132,12 @@ int edg_wll_LoadEventsServer(edg_wll_Context ctx,const edg_wll_LoadRequest *req,
                        }
                        write(reject_fd,"\n",1);
                }
-               else {
-                       result->to = event->any.arrived.tv_sec;
-                       if ( jobid )
-                       {
-                               char *md5_jobid = edg_wlc_JobIdGetUnique(jobid);
-                               
-                               if ( strcmp(md5_jobid, edg_wlc_JobIdGetUnique(event->any.jobId)) )
-                               {
-                                       edg_wll_JobStat st;
-
-                                       edg_wll_JobStatusServer(ctx, jobid, 0, &st);
-                                       edg_wll_FreeStatus(&st);
-
-                                       edg_wlc_JobIdFree(jobid);
-                                       edg_wlc_JobIdDup(event->any.jobId, &jobid);
-                               }
-                               free(md5_jobid);
-                       }
-                       else
-                               edg_wlc_JobIdDup(event->any.jobId, &jobid);
-               }
-
 
 cycle_clean:
                ctx->event_load = 0;
-               edg_wll_FreeEvent(event);
        }
 
-err:
-       if ( jobid )
-       {
-               edg_wll_JobStat st;
-
-               edg_wll_JobStatusServer(ctx, jobid, 0, &st);
-               edg_wll_FreeStatus(&st);
-               edg_wlc_JobIdFree(jobid);
-       }
+       ctx->greyjobs = ctxgrey;
 
        if ( reject_fd != -1 )
                close(reject_fd);
index d832289..5adf21b 100644 (file)
@@ -38,6 +38,7 @@ limitations under the License.
 #include "get_events.h"
 #include "server_stats.h"
 #include "lb_authz.h"
+#include "authz_policy.h"
 
 
 typedef struct {
@@ -71,7 +72,7 @@ int edg_wll_NotifNewServer(
        const edg_wll_NotifId                   nid,
        time_t                                             *valid)
 {
-       int                                     i;
+       int                                     i,j;
        char                       *q                   = NULL,
                                           *nid_s               = NULL,
                                           *time_s              = NULL,
@@ -131,6 +132,19 @@ int edg_wll_NotifNewServer(
                goto cleanup;
        }
 
+       /*      Check permissions
+        */
+       if (!ctx->noAuth && check_authz_policy_ctx(ctx, READ_ANONYMIZED))
+               for (i=0; conditions && conditions[i]; i++)
+                       for (j=0; conditions[i][j].attr; j++)
+                               if (conditions[i][j].attr == EDG_WLL_QUERY_ATTR_OWNER && 
+                                       !edg_wll_gss_equal_subj(conditions[i][j].value.c, ctx->peerName) &&
+                                       !check_authz_policy_ctx(ctx, ADMIN_ACCESS) &&
+                                       !check_authz_policy_ctx(ctx, READ_ALL)) {
+                                               edg_wll_SetError(ctx, EPERM, "Forbidden subject. You are only authorized to register for anonymized notifications.");
+                                               goto cleanup;
+                                       }
+
        /*      Format the address
         */
        if ( address_override )
index d05c4f6..152e0d3 100644 (file)
@@ -13,8 +13,6 @@ typedef struct _edg_wll_server_statistics{
        time_t start;
 } edg_wll_server_statistics;
 
-#define SERVER_STATISTICS_COUNT 15
-
 enum edg_wll_server_statistics_type{
        SERVER_STATS_GLITEJOB_REGS = 0,
        SERVER_STATS_PBSJOB_REGS,
@@ -30,8 +28,44 @@ enum edg_wll_server_statistics_type{
        SERVER_STATS_NOTIF_LEGACY_SENT,
        SERVER_STATS_NOTIF_MSG_SENT,
        SERVER_STATS_WS_QUERIES,
-       SERVER_STATS_LBPROTO
+       SERVER_STATS_LBPROTO,
+       SERVER_STATISTICS_COUNT
 };
+// Add new values in front of LAST and do not change order
+
+static const char *edg_wll_server_statistics_type_title[] = {
+       "gLite job regs",
+       "PBS job regs",
+       "Condor job regs",
+       "CREAM job regs",
+       "Sandbox regs",
+       "Job events",
+       "HTML accesses",
+       "Plain text accesses",
+       "RSS accesses",
+       "Notification regs (legacy interface)",
+       "Notification regs (msg interface)",
+       "Notifications sent (legacy)",
+       "Notifications sent (msg)",
+       "WS queries",
+       "L&B protocol accesses" };
+
+static const char *edg_wll_server_statistics_type_key[] = {
+       "glite_jobs",
+       "pbs_jobs",
+       "condor_jobs",
+       "cream_jobs",
+       "sb_ft_jobs",
+       "events",
+       "queries_html",
+       "queries_text",
+       "queries_rss",
+       "notif_regs_legacy",
+       "notif_regs_msg",
+       "notifs_legacy",
+       "notis_msg",
+       "queries_ws",
+       "queries_api" };
 
 int edg_wll_InitServerStatistics(edg_wll_Context ctx, char *prefix);
 
index 2ccc968..edb7c1e 100644 (file)
@@ -248,18 +248,13 @@ int edg_wll_PurgeServer(edg_wll_Context ctx,const edg_wll_PurgeRequest *request,
        struct timeval  tp;
        edg_wll_JobStat stat;
        purge_ctx_t prg;
-       struct _edg_wll_GssPrincipal_data princ;
 
        memset(&prg, 0, sizeof prg);
        prg.naffected_jobs = 0;
        prg.parse = 0;
        prg.dumpfile = -1;
 
-       memset(&princ, 0, sizeof princ);
-       princ.name = ctx->peerName;
-        princ.fqans = ctx->fqans;
-
-       if (!ctx->noAuth && !check_authz_policy(&ctx->authz_policy, &princ, PURGE)) {
+       if (!ctx->noAuth && !check_authz_policy_ctx(ctx, PURGE)) {
                edg_wll_SetError(ctx,EPERM,"only superusers may purge");
                goto abort;
        }
@@ -562,6 +557,7 @@ static int get_jobid_suffix(edg_wll_Context ctx, glite_jobid_const_t job, enum e
                case EDG_WLL_STAT__PARTITIONABLE_UNUSED:
                case EDG_WLL_STAT__PARTITIONED_UNUSED:
                case EDG_WLL_STAT_COLLECTION:
+               case EDG_WLL_STAT_CREAM:
                 case EDG_WLL_STAT_FILE_TRANSFER:
                 case EDG_WLL_STAT_FILE_TRANSFER_COLLECTION:
                        // glite jobs, no suffix
@@ -611,6 +607,7 @@ static int get_jobid_prefix(edg_wll_Context ctx, glite_jobid_const_t job, enum e
                case EDG_WLL_STAT__PARTITIONABLE_UNUSED:
                case EDG_WLL_STAT__PARTITIONED_UNUSED:
                case EDG_WLL_STAT_COLLECTION:
+               case EDG_WLL_STAT_CREAM:
                case EDG_WLL_STAT_FILE_TRANSFER:
                case EDG_WLL_STAT_FILE_TRANSFER_COLLECTION:
                        // glite job prefix
index 2219232..58a43a2 100644 (file)
@@ -547,15 +547,11 @@ static int findStat(
 )
 {
        edg_wll_JobStatCode later_state;
-       struct _edg_wll_GssPrincipal_data princ;
 
        edg_wll_ResetError(ctx);
-       memset(&princ, 0, sizeof princ);
-       princ.name = ctx->peerName;
-       princ.fqans = ctx->fqans;
        switch (ctx->count_statistics) {
                 case 0: return edg_wll_SetError(ctx,ENOSYS,NULL);
-                case 1: if (!ctx->noAuth && !check_authz_policy(&ctx->authz_policy, &princ, GET_STATISTICS))
+                case 1: if (!ctx->noAuth && !check_authz_policy_ctx(ctx, GET_STATISTICS))
                                return edg_wll_SetError(ctx, EPERM, NULL);
                 case 2: break;
                 default: abort();
index bcb1531..007c7b2 100755 (executable)
@@ -400,15 +400,15 @@ if ($mode eq 'build') { for my $ext (keys %externs) {
                my $jdk_prefix;
 
                print "Looking for some caffein ... ";
-               if (defined $ENV{'JDK_HOME'}) {
+               if (defined($ENV{'JDK_HOME'}) and -f "$ENV{'JDK_HOME'}/include/jni.h") {
                        $jdk_prefix = $ENV{'JDK_HOME'};
                        print "JDK_HOME=$jdk_prefix\n";
-               } elsif (defined $ENV{'JAVA_HOME'}) {
+               } elsif (defined($ENV{'JAVA_HOME'}) and -f "$ENV{'JAVA_HOME'}/include/jni.h") {
                        $jdk_prefix = $ENV{'JAVA_HOME'};
                        print "JAVA_HOME=$jdk_prefix\n";
                } else {
                        foreach my $i (0..$#{$externs{$ext}{locations}}) {
-                               if (-e $externs{$ext}{locations}[$i]) {
+                               if (-e $externs{$ext}{locations}[$i] and -f "$externs{$ext}{locations}[$i]/include/jni.h") {
                                        $jdk_prefix=$externs{$ext}{locations}[$i];
                                        print "(found directory $jdk_prefix)\n";
                                        last;
@@ -591,37 +591,37 @@ BEGIN{
 );
 
 %need_externs_aux = (
-       'lb.client' => [ qw/cppunit:B classads libtool:B globus:B/ ],
-       'lb.common' => [ qw/expat cares:B cppunit:B classads libtool:B globus:B/ ],
+       'lb.client' => [ qw/cppunit:B classads:B libtool:B globus:B pkgconfig:B/ ],
+       'lb.common' => [ qw/expat cares:B cppunit:B classads:B libtool:B globus:B pkgconfig:B/ ],
        'lb.doc' => [ qw/tetex-latex:B/ ],
-       'lb.logger' => [ qw/cppunit:B libtool:B globus:B/ ],
-       'lb.logger-msg' => [ qw/cppunit:B activemq libtool:B globus:B/ ],
+       'lb.logger' => [ qw/cppunit:B libtool:B globus:B pkgconfig:B/ ],
+       'lb.logger-msg' => [ qw/cppunit:B activemq libtool:B globus:B pkgconfig:B/ ],
        'lb.nagios' => [ qw/globus_proxy_utils:R/ ],
-       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B/ ],
-       'lb.state-machine' => [ qw/classads libtool:B libxslt:B expat:B globus:B/ ],
-       'lb.utils' => [ qw/cppunit:B libtool:B globus:B/ ],
+       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads:B voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B pkgconfig:B/ ],
+       'lb.state-machine' => [ qw/classads:B libtool:B libxslt:B expat:B globus:B pkgconfig:B/ ],
+       'lb.utils' => [ qw/cppunit:B libtool:B globus:B pkgconfig:B/ ],
        'lb.ws-interface' => [ qw/libxslt:B tidy:B/ ],
-       'lb.ws-test' => [ qw/gsoap:B libtool:B globus:B/ ],
+       'lb.ws-test' => [ qw/gsoap:B libtool:B globus:B pkgconfig:B/ ],
        'lb.types' => [ qw// ],
-       'lb.harvester' => [ qw/docbook-utils:B libtool:B globus:B/ ],
-       'lbjp-common.db' => [ qw/mysql-devel:B postgresql:B cppunit:B log4c:B libtool:B/ ],
+       'lb.harvester' => [ qw/docbook-utils:B libtool:B globus:B pkgconfig:B/ ],
+       'lbjp-common.db' => [ qw/mysql-devel:B postgresql:B cppunit:B log4c:B libtool:B pkgconfig:B/ ],
        'lbjp-common.log' => [ qw/log4c libtool:B/ ],
        'lbjp-common.maildir' => [ qw/libtool:B/ ],
        'lbjp-common.server-bones' => [ qw/libtool:B/ ],
-       'lbjp-common.trio' => [ qw/cppunit:B libtool:B/ ],
-       'lbjp-common.jp-interface' => [ qw/cppunit:B log4c:B libtool:B/ ],
-       'lbjp-common.gss' =>  [ qw/globus_essentials:R globus:B cares cppunit:B libtool:B/ ],
-       'lbjp-common.gsoap-plugin' =>  [ qw/cppunit:B globus_essentials:R globus:B cares:B gsoap gsoapxx libtool:B/ ],
-       'jobid.api-c' =>  [ qw/cppunit:B libtool:B openssl:B/ ],
-       'jobid.api-cpp' =>  [ qw/cppunit:B libtool:B/ ],
+       'lbjp-common.trio' => [ qw/cppunit:B libtool:B pkgconfig:B/ ],
+       'lbjp-common.jp-interface' => [ qw/cppunit:B log4c:B libtool:B pkgconfig:B/ ],
+       'lbjp-common.gss' =>  [ qw/globus_essentials:R globus:B cares cppunit:B libtool:B pkgconfig:B/ ],
+       'lbjp-common.gsoap-plugin' =>  [ qw/cppunit:B globus_essentials:R globus:B cares:B gsoap gsoapxx libtool:B pkgconfig:B/ ],
+       'jobid.api-c' =>  [ qw/cppunit:B libtool:B openssl:B pkgconfig:B/ ],
+       'jobid.api-cpp' =>  [ qw/cppunit:B libtool:B pkgconfig:B/ ],
        'jobid.api-java' =>  [ qw/ant:B jdk:B/ ],
-       'jp.client' => [ qw/gsoap libtar globus_essentials:R globus:B/ ],
+       'jp.client' => [ qw/gsoap libtar globus_essentials:R globus:B pkgconfig:B/ ],
         'jp.doc' => [],
-        'jp.index' => [ qw/gsoap globus_essentials:R globus:B mysql-server:R/ ],
-        'jp.primary' => [ qw/classads gsoap libtar globus_essentials:R globus:B  mysql-server:R/ ],
+        'jp.index' => [ qw/gsoap globus_essentials:R globus:B mysql-server:R pkgconfig:B/ ],
+        'jp.primary' => [ qw/classads:B gsoap libtar globus_essentials:R globus:B  mysql-server:R pkgconfig:B/ ],
         'jp.server-common' => [],
         'jp.ws-interface' => [],
-       'gridsite.core' => [ qw/httpd-devel:B gsoap:B globus:B curl:B doxygen:B fuse-devel:B libxml2:B openssl:B doxygen:B/ ],
+       'gridsite.core' => [ qw/httpd-devel:B gsoap:B globus:B curl:B doxygen:B fuse-devel:B libxml2:B openssl:B doxygen:B pkgconfig:B/ ],
        'gridsite.commands' => [ qw/curl:R openssl:R/ ],
        'gridsite.apache' => [ qw/libxml2:R openssl:R curl:R/ ],
        'gridsite.libs' => [ qw/libxml2:R openssl:R/ ],
@@ -631,9 +631,9 @@ BEGIN{
        'gridsite.service-clients' => [ qw/curl:R gsoap:R gsoapxx:R/ ],
        'gridsite.gsexec' => [ qw// ],
        'gridsite.1.5-compat' => [ qw/httpd-devel:B gsoap:B globus:B curl:B doxygen:B fuse-devel:B libxml2:B openssl:B doxygen:B/ ],
-       'px.proxyrenewal' => [ qw/globus:B globus_essentials:R myproxy-devel:B voms:B libtool:B/ ],
+       'px.proxyrenewal' => [ qw/globus:B globus_essentials:R myproxy-devel:B voms:B libtool:B pkgconfig:B/ ],
        'px.myproxy-config' => [ qw/myproxy-admin:R/ ], # in myproxy-config.spec
-       'canl.c' => [ qw/cares:B openssl:B libtool:B bison:B flex:B krb5-devel:B/ ],
+       'canl.c' => [ qw/cares:B openssl:B libtool:B bison:B flex:B krb5-devel:B pkgconfig:B/ ],
 );
 
 %need_jars = (
@@ -1552,6 +1552,8 @@ sub mode_etics {
                $conftag = $branch;
                # forced low age number
                $age = $branch eq 'HEAD' ? '0head' : '0dev';
+               # add project major version number
+               $age .= '.'.$project_version;
                push @copts, '--version ${version}-${age}';
        }
        else {
@@ -1564,11 +1566,13 @@ sub mode_etics {
                if ($project eq 'emi' and $project_version == 1) {
                        $age = $age - 1;
                }
-       }
 
-       # emi1 suffix for older packaging
+               # '.emi1' suffix for older packaging
+               if ($project eq 'emi' and $project_version == 1) {
+                       $age = $age.'.'.$project.$project_version;
+               }
+       }
        if ($project eq 'emi' and $project_version == 1) {
-               $age = $age.$project.$project_version;
                $conf = $conf.$project.$project_version;
        }
 
@@ -1868,7 +1872,7 @@ $output};
 
                        `diff -b "$file" "$file.new"`;
                        if ($? == 0) {
-                               print STDERR "($file not changed)\n";
+                               print STDERR "($file not changed)\n" if ($debug);
                                unlink "$file.new";
                        } else {
                                print STDERR "Writing $file\n";
index e223971..7fead08 100644 (file)
@@ -2,7 +2,7 @@ Source: glite-lb-state-machine
 Priority: extra
 Maintainer: @MAINTAINER@
 Uploaders: @UPLOADERS@
-Build-Depends: debhelper (>= 7.0.50~), chrpath, glite-lb-types, libclassad-dev, libexpat1-dev, libglite-jobid-api-c-dev, libglite-lb-common-dev, libglite-lbjp-common-db-dev, libglite-lbjp-common-gss-dev, libglite-lbjp-common-jp-interface-dev, libglite-lbjp-common-trio-dev, libtool, xsltproc
+Build-Depends: debhelper (>= 7.0.50~), chrpath, glite-lb-types, libclassad0-dev | libclassad-dev, libexpat1-dev, libglite-jobid-api-c-dev, libglite-lb-common-dev, libglite-lbjp-common-db-dev, libglite-lbjp-common-gss-dev, libglite-lbjp-common-jp-interface-dev, libglite-lbjp-common-trio-dev, libtool, pkg-config, xsltproc
 Standards-Version: 3.9.1
 Section: libs
 Homepage: @URL@
index ca7a147..1c58137 100644 (file)
@@ -18,6 +18,7 @@ BuildRequires: glite-lbjp-common-jp-interface-devel
 BuildRequires: glite-lbjp-common-trio-devel
 BuildRequires: libtool
 BuildRequires: libxslt
+BuildRequires: pkgconfig
 BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
 AutoReqProv: yes
 Source: http://eticssoft.web.cern.ch/eticssoft/repository/emi/emi.lb.state-machine/%{version}/src/%{name}-@VERSION@.src.tar.gz
index e43c270..5c605a5 100644 (file)
@@ -615,8 +615,9 @@ static int processEvent_glite(intJobStat *js, edg_wll_Event *e, int ev_seq, int
                        /* consistence check -- should not receive two contradicting ReallyRunning's within single
                           deep resub cycle */
                        if (fine_res == RET_BADBRANCH) {
-                               syslog(LOG_ERR,"ReallyRunning on bad branch %s",
-                                               e->any.source == EDG_WLL_SOURCE_LOG_MONITOR ? e->reallyRunning.wn_seq : e->any.seqcode);
+                               syslog(LOG_ERR,"ReallyRunning on bad branch %s (%s)",
+                                               e->any.source == EDG_WLL_SOURCE_LOG_MONITOR ? e->reallyRunning.wn_seq : e->any.seqcode,
+                                               e->any.jobId);
                                break;
                        }
                        /* select the branch unless TOOOLD, i.e. before deep resubmission */
index 5995178..9c6b622 100644 (file)
@@ -2,7 +2,7 @@ Source: glite-lb-utils
 Priority: extra
 Maintainer: @MAINTAINER@
 Uploaders: @UPLOADERS@
-Build-Depends: debhelper (>= 7.0.50~), chrpath, glite-lb-types, libcppunit-dev, libglite-jobid-api-c-dev, libglite-lb-client-dev, libglite-lb-state-machine-dev, libglite-lbjp-common-jp-interface-dev, libglite-lbjp-common-maildir-dev, libglite-lbjp-common-trio-dev
+Build-Depends: debhelper (>= 7.0.50~), chrpath, glite-lb-types, libcppunit-dev, libglite-jobid-api-c-dev, libglite-lb-client-dev, libglite-lb-state-machine-dev, libglite-lbjp-common-jp-interface-dev, libglite-lbjp-common-maildir-dev, libglite-lbjp-common-trio-dev, pkg-config
 Standards-Version: 3.9.1
 Section: misc
 Homepage: @URL@
index e331998..705e1af 100644 (file)
@@ -16,6 +16,7 @@ BuildRequires: glite-lbjp-common-jp-interface-devel
 BuildRequires: glite-lbjp-common-maildir-devel
 BuildRequires: glite-lbjp-common-trio-devel
 BuildRequires: libtool
+BuildRequires: pkgconfig
 BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
 AutoReqProv: yes
 Source: http://eticssoft.web.cern.ch/eticssoft/repository/emi/emi.lb.utils/%{version}/src/%{name}-@VERSION@.src.tar.gz
index 5cdd9b4..899a39a 100644 (file)
@@ -2,7 +2,7 @@ Source: glite-lb-ws-test
 Priority: extra
 Maintainer: @MAINTAINER@
 Uploaders: @UPLOADERS@
-Build-Depends: debhelper (>= 7.0.50~), chrpath, gsoap, glite-lb-ws-interface, libglite-lbjp-common-gsoap-plugin-dev, libtool
+Build-Depends: debhelper (>= 7.0.50~), chrpath, gsoap, glite-lb-ws-interface, libglite-lbjp-common-gsoap-plugin-dev, libtool, pkg-config
 Standards-Version: 3.9.1
 Section: misc
 Homepage: @URL@
index 950b16a..23956eb 100644 (file)
@@ -11,6 +11,7 @@ BuildRequires: gsoap-devel
 BuildRequires: glite-lb-ws-interface
 BuildRequires: glite-lbjp-common-gsoap-plugin-devel
 BuildRequires: libtool
+BuildRequires: pkgconfig
 Requires: glite-lb-ws-interface
 BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
 AutoReqProv: yes
index 47ddec3..e457931 100755 (executable)
@@ -285,6 +285,9 @@ if ($project =~ /^([^0-9]*)(.*)$/) {
 }
 %project = %{$projects{$project}};
 $project_version = $project{current_version} unless $project_version;
+if ($project ne 'emi' or $project_version <= 1) {
+       $lbmodules{'gridsite'} = [ qw/apache shared commands core devel slashgrid services service-clients gsexec/ ];
+}
 for my $platform (keys %{$project{etics_externs}}) {
        for $_ (keys %{$project{etics_externs}{$platform}}) {
                $etics_externs{$platform}{$_} = $project{etics_externs}{$platform}{$_};
@@ -400,15 +403,15 @@ if ($mode eq 'build') { for my $ext (keys %externs) {
                my $jdk_prefix;
 
                print "Looking for some caffein ... ";
-               if (defined $ENV{'JDK_HOME'}) {
+               if (defined($ENV{'JDK_HOME'}) and -f "$ENV{'JDK_HOME'}/include/jni.h") {
                        $jdk_prefix = $ENV{'JDK_HOME'};
                        print "JDK_HOME=$jdk_prefix\n";
-               } elsif (defined $ENV{'JAVA_HOME'}) {
+               } elsif (defined($ENV{'JAVA_HOME'}) and -f "$ENV{'JAVA_HOME'}/include/jni.h") {
                        $jdk_prefix = $ENV{'JAVA_HOME'};
                        print "JAVA_HOME=$jdk_prefix\n";
                } else {
                        foreach my $i (0..$#{$externs{$ext}{locations}}) {
-                               if (-e $externs{$ext}{locations}[$i]) {
+                               if (-e $externs{$ext}{locations}[$i] and -f "$externs{$ext}{locations}[$i]/include/jni.h") {
                                        $jdk_prefix=$externs{$ext}{locations}[$i];
                                        print "(found directory $jdk_prefix)\n";
                                        last;
@@ -591,49 +594,50 @@ BEGIN{
 );
 
 %need_externs_aux = (
-       'lb.client' => [ qw/cppunit:B classads libtool:B globus:B/ ],
-       'lb.common' => [ qw/expat cares:B cppunit:B classads libtool:B globus:B/ ],
+       'lb.client' => [ qw/cppunit:B classads:B libtool:B globus:B pkgconfig:B/ ],
+       'lb.common' => [ qw/expat cares:B cppunit:B classads:B libtool:B globus:B pkgconfig:B/ ],
        'lb.doc' => [ qw/tetex-latex:B/ ],
-       'lb.logger' => [ qw/cppunit:B libtool:B globus:B/ ],
-       'lb.logger-msg' => [ qw/cppunit:B activemq libtool:B globus:B/ ],
+       'lb.logger' => [ qw/cppunit:B libtool:B globus:B pkgconfig:B/ ],
+       'lb.logger-msg' => [ qw/cppunit:B activemq libtool:B globus:B pkgconfig:B/ ],
        'lb.nagios' => [ qw/globus_proxy_utils:R/ ],
-       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B/ ],
-       'lb.state-machine' => [ qw/classads libtool:B libxslt:B expat:B globus:B/ ],
-       'lb.utils' => [ qw/cppunit:B libtool:B globus:B/ ],
+       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads:B voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B pkgconfig:B/ ],
+       'lb.state-machine' => [ qw/classads:B libtool:B libxslt:B expat:B globus:B pkgconfig:B/ ],
+       'lb.utils' => [ qw/cppunit:B libtool:B globus:B pkgconfig:B/ ],
        'lb.ws-interface' => [ qw/libxslt:B tidy:B/ ],
-       'lb.ws-test' => [ qw/gsoap:B libtool:B globus:B/ ],
+       'lb.ws-test' => [ qw/gsoap:B libtool:B globus:B pkgconfig:B/ ],
        'lb.types' => [ qw// ],
-       'lb.harvester' => [ qw/docbook-utils:B libtool:B globus:B/ ],
-       'lbjp-common.db' => [ qw/mysql-devel:B postgresql:B cppunit:B log4c:B libtool:B/ ],
+       'lb.harvester' => [ qw/docbook-utils:B libtool:B globus:B pkgconfig:B/ ],
+       'lbjp-common.db' => [ qw/mysql-devel:B postgresql:B cppunit:B log4c:B libtool:B pkgconfig:B/ ],
        'lbjp-common.log' => [ qw/log4c libtool:B/ ],
        'lbjp-common.maildir' => [ qw/libtool:B/ ],
        'lbjp-common.server-bones' => [ qw/libtool:B/ ],
-       'lbjp-common.trio' => [ qw/cppunit:B libtool:B/ ],
-       'lbjp-common.jp-interface' => [ qw/cppunit:B log4c:B libtool:B/ ],
-       'lbjp-common.gss' =>  [ qw/globus_essentials:R globus:B cares cppunit:B libtool:B/ ],
-       'lbjp-common.gsoap-plugin' =>  [ qw/cppunit:B globus_essentials:R globus:B cares:B gsoap gsoapxx libtool:B/ ],
-       'jobid.api-c' =>  [ qw/cppunit:B libtool:B openssl:B/ ],
-       'jobid.api-cpp' =>  [ qw/cppunit:B libtool:B/ ],
+       'lbjp-common.trio' => [ qw/cppunit:B libtool:B pkgconfig:B/ ],
+       'lbjp-common.jp-interface' => [ qw/cppunit:B log4c:B libtool:B pkgconfig:B/ ],
+       'lbjp-common.gss' =>  [ qw/globus_essentials:R globus:B cares cppunit:B libtool:B pkgconfig:B/ ],
+       'lbjp-common.gsoap-plugin' =>  [ qw/cppunit:B globus_essentials:R globus:B cares:B gsoap gsoapxx libtool:B pkgconfig:B/ ],
+       'jobid.api-c' =>  [ qw/cppunit:B libtool:B openssl:B pkgconfig:B/ ],
+       'jobid.api-cpp' =>  [ qw/cppunit:B libtool:B pkgconfig:B/ ],
        'jobid.api-java' =>  [ qw/ant:B jdk:B/ ],
-       'jp.client' => [ qw/gsoap libtar globus_essentials:R globus:B/ ],
+       'jp.client' => [ qw/gsoap libtar globus_essentials:R globus:B pkgconfig:B/ ],
         'jp.doc' => [],
-        'jp.index' => [ qw/gsoap globus_essentials:R globus:B mysql-server:R/ ],
-        'jp.primary' => [ qw/classads gsoap libtar globus_essentials:R globus:B  mysql-server:R/ ],
+        'jp.index' => [ qw/gsoap globus_essentials:R globus:B mysql-server:R pkgconfig:B/ ],
+        'jp.primary' => [ qw/classads:B gsoap libtar globus_essentials:R globus:B  mysql-server:R pkgconfig:B/ ],
         'jp.server-common' => [],
         'jp.ws-interface' => [],
-       'gridsite.core' => [ qw/httpd-devel:B gsoap:B globus:B curl:B doxygen:B fuse-devel:B libxml2:B openssl:B doxygen:B/ ],
+       'gridsite.core' => [ qw/httpd-devel:B gsoap:B globus:B curl:B doxygen:B fuse-devel:B libxml2:B openssl:B doxygen:B pkgconfig:B/ ],
        'gridsite.commands' => [ qw/curl:R openssl:R/ ],
        'gridsite.apache' => [ qw/libxml2:R openssl:R curl:R/ ],
        'gridsite.libs' => [ qw/libxml2:R openssl:R/ ],
+       'gridsite.shared' => [ qw/libxml2:R openssl:R/ ],
        'gridsite.devel' => [ qw// ],
        'gridsite.slashgrid' => [ qw/curl:R fuse:R/],
        'gridsite.services' => [ qw/curl:R gsoap:R/ ],
        'gridsite.service-clients' => [ qw/curl:R gsoap:R gsoapxx:R/ ],
        'gridsite.gsexec' => [ qw// ],
        'gridsite.1.5-compat' => [ qw/httpd-devel:B gsoap:B globus:B curl:B doxygen:B fuse-devel:B libxml2:B openssl:B doxygen:B/ ],
-       'px.proxyrenewal' => [ qw/globus:B globus_essentials:R myproxy-devel:B voms:B libtool:B/ ],
+       'px.proxyrenewal' => [ qw/globus:B globus_essentials:R myproxy-devel:B voms:B libtool:B pkgconfig:B/ ],
        'px.myproxy-config' => [ qw/myproxy-admin:R/ ], # in myproxy-config.spec
-       'canl.c' => [ qw/cares:B openssl:B libtool:B bison:B flex:B krb5-devel:B/ ],
+       'canl.c' => [ qw/cares:B openssl:B libtool:B bison:B flex:B krb5-devel:B pkgconfig:B tetex-latex:B/ ],
 );
 
 %need_jars = (
@@ -751,6 +755,7 @@ for my $jar (keys %need_jars) {
        'gridsite.commands' => [ qw/gridsite.core:B/ ],
        'gridsite.apache' => [ qw/gridsite.core:B/ ],
        'gridsite.libs' => [ qw/gridsite.core:B / ],
+       'gridsite.shared' => [ qw/gridsite.core:B / ],
        'gridsite.devel' => [ qw/gridsite.core:B/ ],
        'gridsite.slashgrid' => [ qw/gridsite.core:B/],
        'gridsite.services' => [ qw/gridsite.core:B/ ],
@@ -1559,7 +1564,7 @@ sub mode_etics {
        else {
                $conf = "$confprefix$subsys-${module}_R_${major}_${minor}_${rev}_${age}";
 # XXX: gridsite hack
-               $conftag = $subsys eq 'gridsite' ? "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}" : 
+               $conftag = $subsys eq 'gridsite' ? "$project{tag_prefix}{$subsys}${subsys}_R_${major}_${minor}_${rev}" : 
                        "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}_${age}";
 
                # lowering age for older packaging
@@ -1634,7 +1639,7 @@ sub mode_etics {
                        }
 
                        $cmd{default}{configure} = "cat > Makefile.inc <<EOF
-       project = $project
+       project = $project$project_version
        top_srcdir = ..
        $flags
        EOF";
index 79aeb19..04a9517 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=3.2.5
+module.version=3.2.6
 module.age=1
index 39c33c6..cfb6329 100644 (file)
@@ -2,7 +2,7 @@ Source: glite-lbjp-common-db
 Priority: extra
 Maintainer: @MAINTAINER@
 Uploaders: @UPLOADERS@
-Build-Depends: debhelper (>= 7.0.50~), chrpath, libcppunit-dev, liblog4c-dev, libglite-lbjp-common-trio-dev, libglite-lbjp-common-log-dev, libmysqlclient-dev, libpq-dev, libtool
+Build-Depends: debhelper (>= 7.0.50~), chrpath, libcppunit-dev, liblog4c-dev, libglite-lbjp-common-trio-dev, libglite-lbjp-common-log-dev, libmysqlclient-dev, libpq-dev, libtool, pkg-config
 Standards-Version: 3.9.1
 Section: libs
 Homepage: @URL@
index 0e7049b..61ec33b 100644 (file)
@@ -13,6 +13,7 @@ BuildRequires: mysql-devel
 BuildRequires: glite-lbjp-common-trio-devel
 BuildRequires: glite-lbjp-common-log-devel
 BuildRequires: libtool
+BuildRequires: pkgconfig
 BuildRequires: postgresql-devel
 BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
 AutoReqProv: yes
index 13113bd..0cedbc4 100644 (file)
@@ -2,7 +2,7 @@ Source: glite-lbjp-common-gsoap-plugin
 Priority: extra
 Maintainer: @MAINTAINER@
 Uploaders: @UPLOADERS@
-Build-Depends: debhelper (>= 7.0.50~), chrpath, libc-ares-dev, libcppunit-dev, libglite-lbjp-common-gss-dev, libglobus-gssapi-gsi-dev, gsoap, libtool
+Build-Depends: debhelper (>= 7.0.50~), chrpath, libc-ares-dev, libcppunit-dev, libglite-lbjp-common-gss-dev, libglobus-gssapi-gsi-dev, gsoap, libtool, pkg-config
 Standards-Version: 3.9.1
 Section: libs
 Homepage: @URL@
index 5307049..237e4b8 100644 (file)
@@ -14,6 +14,7 @@ BuildRequires: gsoap
 BuildRequires: gsoap-devel
 BuildRequires: glite-lbjp-common-gss-devel
 BuildRequires: libtool
+BuildRequires: pkgconfig
 BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
 Obsoletes: glite-security-gsoap-plugin%{?_isa} < 2.0.1-1
 AutoReqProv: yes
index 7609a4e..ffd1f3e 100644 (file)
@@ -2,7 +2,7 @@ Source: glite-lbjp-common-gss
 Priority: extra
 Maintainer: @MAINTAINER@
 Uploaders: @UPLOADERS@
-Build-Depends: debhelper (>= 7.0.50~), chrpath, libcppunit-dev, libc-ares2, libc-ares-dev, libglobus-gssapi-gsi-dev, libtool
+Build-Depends: debhelper (>= 7.0.50~), chrpath, libcppunit-dev, libc-ares2, libc-ares-dev, libglobus-gssapi-gsi-dev, libtool, pkg-config
 Standards-Version: 3.9.1
 Section: libs
 Homepage: @URL@
index 122b905..0b90250 100644 (file)
@@ -12,6 +12,7 @@ BuildRequires: chrpath
 BuildRequires: cppunit-devel
 BuildRequires: globus-gssapi-gsi-devel
 BuildRequires: libtool
+BuildRequires: pkgconfig
 BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
 Obsoletes: glite-security-gss%{?_isa} < 2.1.5-1
 AutoReqProv: yes
index 66eedee..47dfd90 100644 (file)
@@ -2,7 +2,7 @@ Source: glite-lbjp-common-jp-interface
 Priority: extra
 Maintainer: @MAINTAINER@
 Uploaders: @UPLOADERS@
-Build-Depends: debhelper (>= 7.0.50~), chrpath, libcppunit-dev, libglite-jobid-api-c-dev, libglite-lbjp-common-db-dev, libglite-lbjp-common-trio-dev, libtool
+Build-Depends: debhelper (>= 7.0.50~), chrpath, libcppunit-dev, libglite-jobid-api-c-dev, libglite-lbjp-common-db-dev, libglite-lbjp-common-trio-dev, libtool, pkg-config
 Standards-Version: 3.9.1
 Section: libs
 Homepage: @URL@
index c671e00..37f5648 100644 (file)
@@ -12,6 +12,7 @@ BuildRequires: glite-jobid-api-c-devel
 BuildRequires: glite-lbjp-common-db-devel
 BuildRequires: glite-lbjp-common-trio-devel
 BuildRequires: libtool
+BuildRequires: pkgconfig
 BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
 AutoReqProv: yes
 Source: http://eticssoft.web.cern.ch/eticssoft/repository/emi/emi.lbjp-common.jp-interface/%{version}/src/%{name}-@VERSION@.src.tar.gz
index 80af7ce..c5ca40b 100644 (file)
@@ -2,7 +2,7 @@ Source: glite-lbjp-common-trio
 Priority: extra
 Maintainer: @MAINTAINER@
 Uploaders: @UPLOADERS@
-Build-Depends: debhelper (>= 7.0.50~), chrpath, libcppunit-dev, libtool
+Build-Depends: debhelper (>= 7.0.50~), chrpath, libcppunit-dev, libtool, pkg-config
 Standards-Version: 3.9.1
 Section: libs
 Homepage: @URL@
index fc22d1b..6341ed4 100644 (file)
@@ -9,6 +9,7 @@ Group: System Environment/Libraries
 BuildRequires: cppunit-devel
 BuildRequires: chrpath
 BuildRequires: libtool
+BuildRequires: pkgconfig
 BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
 AutoReqProv: yes
 Source: http://eticssoft.web.cern.ch/eticssoft/repository/emi/emi.lbjp-common.trio/%{version}/src/%{name}-@VERSION@.src.tar.gz