Merge from branch 3.2 to HEAD, round 3
authorZdeněk Šustr <sustr4@cesnet.cz>
Wed, 1 Aug 2012 13:41:08 +0000 (13:41 +0000)
committerZdeněk Šustr <sustr4@cesnet.cz>
Wed, 1 Aug 2012 13:41:08 +0000 (13:41 +0000)
77 files changed:
org.glite.jobid.api-c/configure
org.glite.jobid.api-c/project/ChangeLog
org.glite.jobid.api-cpp/configure
org.glite.jobid.api-cpp/project/ChangeLog
org.glite.jobid.api-java/configure
org.glite.jobid.api-java/project/ChangeLog
org.glite.lb.client-java/Makefile
org.glite.lb.client-java/configure
org.glite.lb.client-java/project/ChangeLog
org.glite.lb.client-java/project/glite-lb-client-java.spec
org.glite.lb.client-java/project/list-jars.sh
org.glite.lb.client/Makefile
org.glite.lb.client/configure
org.glite.lb.client/examples/query_ext.c
org.glite.lb.client/project/ChangeLog
org.glite.lb.common/Makefile
org.glite.lb.common/configure
org.glite.lb.common/project/ChangeLog
org.glite.lb.doc/configure
org.glite.lb.doc/project/ChangeLog
org.glite.lb.doc/src/LBTP-Tests.tex
org.glite.lb.doc/src/versions.tex
org.glite.lb.emi-lb/configure
org.glite.lb.emi-lb/project/debian.control
org.glite.lb.emi-lb/project/emi-lb.spec
org.glite.lb.harvester/configure
org.glite.lb.harvester/project/ChangeLog
org.glite.lb.logger-msg/Makefile
org.glite.lb.logger-msg/configure
org.glite.lb.logger-msg/project/ChangeLog
org.glite.lb.logger-msg/project/glite-lb-logger-msg.spec
org.glite.lb.logger/Makefile
org.glite.lb.logger/configure
org.glite.lb.logger/project/ChangeLog
org.glite.lb.nagios/configure
org.glite.lb.nagios/project/ChangeLog
org.glite.lb.server/Makefile
org.glite.lb.server/configure
org.glite.lb.server/project/ChangeLog
org.glite.lb.server/src/jobstat.c
org.glite.lb.server/src/pretty_print_wrapper.cpp
org.glite.lb.server/src/query.c
org.glite.lb.state-machine/configure
org.glite.lb.state-machine/project/ChangeLog
org.glite.lb.state-machine/src/process_event.c
org.glite.lb.types/configure
org.glite.lb.types/project/ChangeLog
org.glite.lb.utils/Makefile
org.glite.lb.utils/configure
org.glite.lb.utils/project/ChangeLog
org.glite.lb.utils/src/dump_exporter.c
org.glite.lb.ws-interface/configure
org.glite.lb.ws-interface/project/ChangeLog
org.glite.lb.ws-test/Makefile
org.glite.lb.ws-test/configure
org.glite.lb.ws-test/project/ChangeLog
org.glite.lb.yaim/configure
org.glite.lb.yaim/project/ChangeLog
org.glite.lbjp-common.db/configure
org.glite.lbjp-common.db/project/ChangeLog
org.glite.lbjp-common.db/src/db-pg.c
org.glite.lbjp-common.db/src/db.c
org.glite.lbjp-common.gsoap-plugin/configure
org.glite.lbjp-common.gsoap-plugin/project/ChangeLog
org.glite.lbjp-common.gss/configure
org.glite.lbjp-common.gss/project/ChangeLog
org.glite.lbjp-common.jp-interface/configure
org.glite.lbjp-common.jp-interface/project/ChangeLog
org.glite.lbjp-common.log/configure
org.glite.lbjp-common.log/project/ChangeLog
org.glite.lbjp-common.maildir/configure
org.glite.lbjp-common.maildir/project/ChangeLog
org.glite.lbjp-common.server-bones/configure
org.glite.lbjp-common.server-bones/project/ChangeLog
org.glite.lbjp-common.trio/Makefile
org.glite.lbjp-common.trio/configure
org.glite.lbjp-common.trio/project/ChangeLog

index e457931..f2880c2 100755 (executable)
@@ -54,8 +54,8 @@ 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 nagios/;
+my @nodes = qw/client server logger logger-msg nagios utils client-java doc ws-test db jpprimary jpindex jpclient harvester lb px proxyrenewal canl/;
+my @default_nodes = qw/lb px proxyrenewal nagios canl/;
 my %enable_nodes;
 my %disable_nodes;
 my %default_nodes; @default_nodes{@default_nodes} = (1) x ($#default_nodes + 1);
@@ -126,10 +126,6 @@ my %externs = (
        gridsite => {
                prefix => '/opt/glite'
        },
-       lcas => {
-               prefix => '/opt/glite',
-               pkg => 'lcas'
-       },
        trustmanager => {
                prefix => '/opt/glite'
        },
@@ -492,7 +488,7 @@ sub mode_build {
 
                print MAK "all: @modules\n\n";
                print MAK "stage: ".(join '-stage ', @modules)."-stage\n\n";
-               print MAK "clean check install:\n";
+               print MAK "clean check install dist distcheck rpm deb:\n";
 
                for (@modules) {
                        my $full = full($_);
@@ -524,6 +520,13 @@ sub mode_build {
                        print MAK "$_-stage: $snames\n\tcd $full/$build && \${MAKE} && \${MAKE} stage\n\n";
                }
 
+               print MAK qq/release-rpm: clean dist distcheck rpm
+
+release-deb: clean dist distcheck deb
+
+.PHONY: all stage clean check install dist distcheck rpm deb release-rpm release-deb
+/;
+
                close MAK;
        }
 }
@@ -600,7 +603,7 @@ BEGIN{
        '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:B voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B pkgconfig:B/ ],
+       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads:B voms:B 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/ ],
@@ -874,6 +877,17 @@ for my $ext (keys %deps_aux) {
        'canl' => 'emi-',
 );
 
+%cvs_tag_suffix = (
+       'lb' => '',
+       'jp' => '',
+       'jobid' => '',
+       'lbjp-common' => '',
+       'gridsite' => '-core',
+       'px' => '',
+       'canl' => '',
+);
+
+
 # ==== projects specification ====
 # etics_name ........... ETICS project name
 # conf_prefix .......... ETICS configurations name prefix
@@ -893,6 +907,7 @@ for my $ext (keys %deps_aux) {
                etics_name => 'org.glite',
                conf_prefix => { %cvs_tag_prefix },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour=${globus.thr.flavor} --nothrflavour=${globus.nothr.flavor}',
                local_prefix => '',
                etics_externs => {
@@ -910,7 +925,6 @@ for my $ext (keys %deps_aux) {
                                glue_schema=>'glue-schema',
                                trustmanager=>'org.glite.security.trustmanager',
                                axis=>'axis',
-                               lcas=>'org.glite.security.lcas',
                                gsoapxx=>'-',
                                jdk=>'jdk',
                                voms=>'org.glite.security.voms-api-cpp',
@@ -924,7 +938,7 @@ for my $ext (keys %deps_aux) {
                },
                etics_projects => {
                        vdt=>[qw/globus globus_essentials globus_proxy_utils gpt/],
-                       'org.glite'=>[qw/voms gridsite lcas gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
+                       'org.glite'=>[qw/voms gridsite gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
                },
                etics_locations => {
                        '*' => '',
@@ -963,6 +977,7 @@ for my $ext (keys %deps_aux) {
                        'canl' => 'emi-',
                },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour= --nothrflavour=',
                local_prefix => '/usr',
                etics_externs => {
@@ -980,7 +995,6 @@ for my $ext (keys %deps_aux) {
                                trustmanager=>'emi.java-security.trustmanager',
                                trustmanager_axis=>'emi.java-security.trustmanager-axis',
                                axis=>'axis1.4',
-                               lcas=>'emi.sac.lcas',
                                gsoapxx=>'-',
                                jdk=>'java',
                                voms => 'emi.voms.voms-api',
@@ -1050,7 +1064,7 @@ for my $ext (keys %deps_aux) {
                        },
                },
                etics_projects => {
-                       'emi'=>[qw/voms voms-devel gridsite lcas gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
+                       'emi'=>[qw/voms voms-devel gridsite gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
                },
                etics_locations => {
                        axis => 'axis',
@@ -1214,7 +1228,7 @@ sub get_version
                while (<V>) {
                        chomp;
                        ($major,$minor,$rev) = ($1,$2,$3) if /module\.version\s*=\s*([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)/;
-                       $age = $1 if /module\.age\s*=\s*([[:digit:]]+)/;
+                       $age = $1 if /module\.age\s*=\s*(\S+)/;
                }
                close V;
                $_ = $old_;
@@ -1360,6 +1374,55 @@ top_srcdir = $top_srcdir
 
        print MKINC "gsoap_default_version=".gsoap_version()."\n"  if $need_gsoap;
 
+       print MKINC '
+-include ${top_srcdir}/project/version.properties
+version=${module.version}
+
+${package}-${version}.tar.gz:
+       rm -rf dist
+       for dist in ${SOURCES} ${SOURCES_EXEC} configure project/ChangeLog project/debian.* project/*.spec project/package.* project/version.properties; do \
+               dir=${package}-${version}/`dirname $$dist`; \
+               mkdir -p dist/$$dir || :; \
+               install -m 0644 ${top_srcdir}/$$dist dist/$$dir; \
+       done
+       for dist in ${SOURCES_EXEC} configure; do \
+               chmod +x dist/${package}-${version}/$$dist; \
+       done
+       (cd dist; tar -czf ${package}-${version}.tar.gz ${package}-${version})
+       mv dist/${package}-${version}.tar.gz .
+
+dist: ${package}-${version}.tar.gz
+
+distcheck: ${package}-${version}.tar.gz
+       rm -rf dist
+       mkdir -p dist
+       cp ${package}-${version}.tar.gz dist
+       (cd dist; tar -xzf ${package}-${version}.tar.gz)
+       a=`(cd dist/${package}-${version}; find . -type f | sort)`; \
+       b=`(cd ${top_srcdir}; find . -path ./dist -prune -or -type f -print | sort)`; \
+       echo "$$a" >dist/files-dist; \
+       echo "$$b" | egrep -v "(^./Makefile.inc$$|^./${package}-${version}.tar.gz$$|^./debian|^./[^/]*.spec$$|\.cvsignore|^\./project/changelog$$|/CVS)" >dist/files-original
+       diff -U0 dist/files-dist dist/files-original
+
+rpm: ${package}-${version}.tar.gz
+       dir=dist/rpm_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir/BUILD $$dir/RPMS $$dir/SOURCES $$dir/SRPMS; \
+       cp ${package}-${version}.tar.gz $$dir/SOURCES/${package}-${version}-${module.age}.src.tar.gz && \
+       rpmbuild -bs --nodeps --define "_topdir $$dir" ${package}.spec && \
+       cp -v $$dir/SRPMS/*.src.rpm dist/
+
+deb: ${package}-${version}.tar.gz
+       dir=dist/dpkg_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir; \
+       cp ${package}-${version}.tar.gz $$dir/${package}_${version}.orig.tar.gz && \
+       tar zxf $$dir/${package}_${version}.orig.tar.gz -C $$dir && \
+       cp -rf debian/ $$dir/${package}-${version} && \
+       (cd $$dir/${package}-${version} && dpkg-buildpackage -S -d -nc -us -uc) && \
+       cp -v $$dir/*.tar.gz $$dir/*.dsc dist/
+';
+
        close MKINC;
 
        my $dh;
@@ -1412,43 +1475,48 @@ top_srcdir = $top_srcdir
                }
        }
 
-       print "Creating ${build}debian/\n" if ($debug);;
-
-       `rm -rfv  ${build}debian`;
-       mkdir $build."debian" or die $!;
-       `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
-       `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
-       `rm -f ${build}debian/*.orig`;
-       opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
-       for $_ (readdir $dh) {
-               if (/^debian\.(.*)/) {
-                       `mv ${build}debian/$_ ${build}debian/$1`;
-                       $debian = 1;
+       if ($module and -d $build."debian") {
+               print "Skipping ${build}debian/ (no rewrite in single module mode)\n" if ($debug);
+               `rm -f ${build}debian.*`;
+       } else {
+               print "Creating ${build}debian/\n" if ($debug);;
+
+               `rm -rfv  ${build}debian`;
+               mkdir $build."debian" or die $!;
+               `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
+               `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
+               `rm -f ${build}debian/*.orig`;
+               opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
+               for $_ (readdir $dh) {
+                       if (/^debian\.(.*)/) {
+                               `mv ${build}debian/$_ ${build}debian/$1`;
+                               $debian = 1;
+                       }
                }
-       }
-       closedir $dh;
+               closedir $dh;
 
-       if ($debian) {
-               my ($dir, $file);
+               if ($debian) {
+                       my ($dir, $file);
 
-               chmod 0755, "${build}debian/rules";
-               $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
-               $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
-               $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
-               $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
-               $file="${build}debian/changelog"; if (not -f $file) {
-                       open FH, ">$file" or die $!;
-                       print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
+                       chmod 0755, "${build}debian/rules";
+                       $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
+                       $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
+                       $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
+                       $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
+                       $file="${build}debian/changelog"; if (not -f $file) {
+                               open FH, ">$file" or die $!;
+                               print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
 
   * Automatically generated package
 
  -- $package{maintainer}  $debdate
 };
-                       close FH;
-               }
+                               close FH;
+                       }
 
-       } else {
-               `rm -rf ${build}debian`;
+               } else {
+                       `rm -rf ${build}debian`;
+               }
        }
 }
 
@@ -1460,16 +1528,18 @@ sub mode_etics_packaging {
        my ($workspaceDir, $srcPackageName, $srcAge, $topDir);
 
        # old-school packaging by ETICS for EMI-1
-       if ($project eq 'emi' and $project_version == 1) { return; }
+       if ($project eq 'emi' and $project_version == 1 and $fmod ne 'gridsite.core') { return; }
 
        if ($fmod eq 'gridsite.core') {
                $workspaceDir = '..';
                $srcPackageName = 'gridsite';
+               $srcTarBall = "../$srcPackageName-\${version}.src.tar.gz";
                $srcAge = '';
                $topDir = '../';
        } else {
                $workspaceDir = '${workspaceDir}';
                $srcPackageName = '${packageName}';
+               $srcTarBall = "$srcPackageName-\${version}.tar.gz";
                $srcAge = '-${age}';
                $topDir = '';
        }
@@ -1479,8 +1549,8 @@ sub mode_etics_packaging {
        $cmd->{default}{packaging} = $rpmprepare;
        $cmd->{default}{packaging} .= "dir=\${workspaceDir}/rpm_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SRPMSLocation} \$dir/{BUILD,RPMS,SOURCES,SRPMS} 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/SOURCES/
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/SOURCES/$srcPackageName-\${version}${srcAge}.src.tar.gz
        rpmbuild -bs --nodeps --define \"_topdir \$dir\" $srcPackageName.spec
        cp -v \$dir/SRPMS/*.src.rpm \${package.SRPMSLocation}/
        rm -rf \$dir";
@@ -1492,8 +1562,8 @@ sub mode_etics_packaging {
                $cmd->{$p}{packaging} = $debprepare;
                $cmd->{$p}{packaging} .= "dir=\${workspaceDir}/dpkg_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SDEBSLocation} \$dir 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/${srcPackageName}_\${version}.orig.tar.gz
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/${srcPackageName}_\${version}.orig.tar.gz
        tar xzf \$dir/${srcPackageName}_\${version}.orig.tar.gz -C \$dir
        cp -rf ${topDir}debian/ \$dir/$srcPackageName-\${version}/
        cd \$dir/$srcPackageName-\${version}
@@ -1564,7 +1634,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}_R_${major}_${minor}_${rev}" : 
+               $conftag = $subsys eq 'gridsite' ? "$project{tag_prefix}{$subsys}${subsys}$project{tag_suffix}{$subsys}_R_${major}_${minor}_${rev}" : 
                        "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}_${age}";
 
                # lowering age for older packaging
@@ -1603,7 +1673,6 @@ sub mode_etics {
        #$cmd_vcs{checkout} = "((test -d jra1mw/.git && (cd jra1mw; git pull)) || (git clone -q http://scientific.zcu.cz/git/jra1mw.git";
        #$cmd_vcs{checkout} .= " && (cd jra1mw; git checkout -b \${tag} --track origin/\${tag})" unless ($conftag eq /HEAD/);
        #$cmd_vcs{checkout} .= ")) && (test -d \${moduleName} || ln -s jra1mw/$cvs_module \${moduleName})";
-       $cmd_vcs{checkout} .= "\n\ttest -f \${packageName}-\${version}-\${age}.src.tar.gz || (ln -s \${moduleName} \${packageName}-\${version}; tar -chf - \${packageName}-\${version} --exclude CVS --exclude .git --exclude .etics | gzip --best > \${packageName}-\${version}-\${age}.src.tar.gz; rm \${packageName}-\${version})";
        $cmd_vcs{tag} = "cvs -d \${vcsroot} tag -R \${tag} ${moduleName}";
 
        $cmd{default}{init} = 'None';
@@ -1695,7 +1764,7 @@ sub mode_etics {
                        $cmd{default}{compile} = "make rpath=$project{local_prefix}/\${libdir}";
                        $cmd{default}{install} = "make install post-install rpath=$project{local_prefix}/\${libdir}";
                }
-               mode_etics_packaging($fmod, \%cmd);
+               mode_etics_packaging($fmod, \%cmd, "make dist\n\t", "make dist\n\t");
        }
 
        my $defprops = '';
index 0d1f024..1dafaed 100644 (file)
@@ -82,6 +82,9 @@
 2.1.2-2
 - Module rebuilt
 
+2.1.2-3
+- Module rebuilt
+
 2.2.0-1
 - Merge from branch_3_2
 
index e457931..f2880c2 100755 (executable)
@@ -54,8 +54,8 @@ 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 nagios/;
+my @nodes = qw/client server logger logger-msg nagios utils client-java doc ws-test db jpprimary jpindex jpclient harvester lb px proxyrenewal canl/;
+my @default_nodes = qw/lb px proxyrenewal nagios canl/;
 my %enable_nodes;
 my %disable_nodes;
 my %default_nodes; @default_nodes{@default_nodes} = (1) x ($#default_nodes + 1);
@@ -126,10 +126,6 @@ my %externs = (
        gridsite => {
                prefix => '/opt/glite'
        },
-       lcas => {
-               prefix => '/opt/glite',
-               pkg => 'lcas'
-       },
        trustmanager => {
                prefix => '/opt/glite'
        },
@@ -492,7 +488,7 @@ sub mode_build {
 
                print MAK "all: @modules\n\n";
                print MAK "stage: ".(join '-stage ', @modules)."-stage\n\n";
-               print MAK "clean check install:\n";
+               print MAK "clean check install dist distcheck rpm deb:\n";
 
                for (@modules) {
                        my $full = full($_);
@@ -524,6 +520,13 @@ sub mode_build {
                        print MAK "$_-stage: $snames\n\tcd $full/$build && \${MAKE} && \${MAKE} stage\n\n";
                }
 
+               print MAK qq/release-rpm: clean dist distcheck rpm
+
+release-deb: clean dist distcheck deb
+
+.PHONY: all stage clean check install dist distcheck rpm deb release-rpm release-deb
+/;
+
                close MAK;
        }
 }
@@ -600,7 +603,7 @@ BEGIN{
        '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:B voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B pkgconfig:B/ ],
+       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads:B voms:B 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/ ],
@@ -874,6 +877,17 @@ for my $ext (keys %deps_aux) {
        'canl' => 'emi-',
 );
 
+%cvs_tag_suffix = (
+       'lb' => '',
+       'jp' => '',
+       'jobid' => '',
+       'lbjp-common' => '',
+       'gridsite' => '-core',
+       'px' => '',
+       'canl' => '',
+);
+
+
 # ==== projects specification ====
 # etics_name ........... ETICS project name
 # conf_prefix .......... ETICS configurations name prefix
@@ -893,6 +907,7 @@ for my $ext (keys %deps_aux) {
                etics_name => 'org.glite',
                conf_prefix => { %cvs_tag_prefix },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour=${globus.thr.flavor} --nothrflavour=${globus.nothr.flavor}',
                local_prefix => '',
                etics_externs => {
@@ -910,7 +925,6 @@ for my $ext (keys %deps_aux) {
                                glue_schema=>'glue-schema',
                                trustmanager=>'org.glite.security.trustmanager',
                                axis=>'axis',
-                               lcas=>'org.glite.security.lcas',
                                gsoapxx=>'-',
                                jdk=>'jdk',
                                voms=>'org.glite.security.voms-api-cpp',
@@ -924,7 +938,7 @@ for my $ext (keys %deps_aux) {
                },
                etics_projects => {
                        vdt=>[qw/globus globus_essentials globus_proxy_utils gpt/],
-                       'org.glite'=>[qw/voms gridsite lcas gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
+                       'org.glite'=>[qw/voms gridsite gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
                },
                etics_locations => {
                        '*' => '',
@@ -963,6 +977,7 @@ for my $ext (keys %deps_aux) {
                        'canl' => 'emi-',
                },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour= --nothrflavour=',
                local_prefix => '/usr',
                etics_externs => {
@@ -980,7 +995,6 @@ for my $ext (keys %deps_aux) {
                                trustmanager=>'emi.java-security.trustmanager',
                                trustmanager_axis=>'emi.java-security.trustmanager-axis',
                                axis=>'axis1.4',
-                               lcas=>'emi.sac.lcas',
                                gsoapxx=>'-',
                                jdk=>'java',
                                voms => 'emi.voms.voms-api',
@@ -1050,7 +1064,7 @@ for my $ext (keys %deps_aux) {
                        },
                },
                etics_projects => {
-                       'emi'=>[qw/voms voms-devel gridsite lcas gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
+                       'emi'=>[qw/voms voms-devel gridsite gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
                },
                etics_locations => {
                        axis => 'axis',
@@ -1214,7 +1228,7 @@ sub get_version
                while (<V>) {
                        chomp;
                        ($major,$minor,$rev) = ($1,$2,$3) if /module\.version\s*=\s*([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)/;
-                       $age = $1 if /module\.age\s*=\s*([[:digit:]]+)/;
+                       $age = $1 if /module\.age\s*=\s*(\S+)/;
                }
                close V;
                $_ = $old_;
@@ -1360,6 +1374,55 @@ top_srcdir = $top_srcdir
 
        print MKINC "gsoap_default_version=".gsoap_version()."\n"  if $need_gsoap;
 
+       print MKINC '
+-include ${top_srcdir}/project/version.properties
+version=${module.version}
+
+${package}-${version}.tar.gz:
+       rm -rf dist
+       for dist in ${SOURCES} ${SOURCES_EXEC} configure project/ChangeLog project/debian.* project/*.spec project/package.* project/version.properties; do \
+               dir=${package}-${version}/`dirname $$dist`; \
+               mkdir -p dist/$$dir || :; \
+               install -m 0644 ${top_srcdir}/$$dist dist/$$dir; \
+       done
+       for dist in ${SOURCES_EXEC} configure; do \
+               chmod +x dist/${package}-${version}/$$dist; \
+       done
+       (cd dist; tar -czf ${package}-${version}.tar.gz ${package}-${version})
+       mv dist/${package}-${version}.tar.gz .
+
+dist: ${package}-${version}.tar.gz
+
+distcheck: ${package}-${version}.tar.gz
+       rm -rf dist
+       mkdir -p dist
+       cp ${package}-${version}.tar.gz dist
+       (cd dist; tar -xzf ${package}-${version}.tar.gz)
+       a=`(cd dist/${package}-${version}; find . -type f | sort)`; \
+       b=`(cd ${top_srcdir}; find . -path ./dist -prune -or -type f -print | sort)`; \
+       echo "$$a" >dist/files-dist; \
+       echo "$$b" | egrep -v "(^./Makefile.inc$$|^./${package}-${version}.tar.gz$$|^./debian|^./[^/]*.spec$$|\.cvsignore|^\./project/changelog$$|/CVS)" >dist/files-original
+       diff -U0 dist/files-dist dist/files-original
+
+rpm: ${package}-${version}.tar.gz
+       dir=dist/rpm_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir/BUILD $$dir/RPMS $$dir/SOURCES $$dir/SRPMS; \
+       cp ${package}-${version}.tar.gz $$dir/SOURCES/${package}-${version}-${module.age}.src.tar.gz && \
+       rpmbuild -bs --nodeps --define "_topdir $$dir" ${package}.spec && \
+       cp -v $$dir/SRPMS/*.src.rpm dist/
+
+deb: ${package}-${version}.tar.gz
+       dir=dist/dpkg_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir; \
+       cp ${package}-${version}.tar.gz $$dir/${package}_${version}.orig.tar.gz && \
+       tar zxf $$dir/${package}_${version}.orig.tar.gz -C $$dir && \
+       cp -rf debian/ $$dir/${package}-${version} && \
+       (cd $$dir/${package}-${version} && dpkg-buildpackage -S -d -nc -us -uc) && \
+       cp -v $$dir/*.tar.gz $$dir/*.dsc dist/
+';
+
        close MKINC;
 
        my $dh;
@@ -1412,43 +1475,48 @@ top_srcdir = $top_srcdir
                }
        }
 
-       print "Creating ${build}debian/\n" if ($debug);;
-
-       `rm -rfv  ${build}debian`;
-       mkdir $build."debian" or die $!;
-       `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
-       `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
-       `rm -f ${build}debian/*.orig`;
-       opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
-       for $_ (readdir $dh) {
-               if (/^debian\.(.*)/) {
-                       `mv ${build}debian/$_ ${build}debian/$1`;
-                       $debian = 1;
+       if ($module and -d $build."debian") {
+               print "Skipping ${build}debian/ (no rewrite in single module mode)\n" if ($debug);
+               `rm -f ${build}debian.*`;
+       } else {
+               print "Creating ${build}debian/\n" if ($debug);;
+
+               `rm -rfv  ${build}debian`;
+               mkdir $build."debian" or die $!;
+               `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
+               `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
+               `rm -f ${build}debian/*.orig`;
+               opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
+               for $_ (readdir $dh) {
+                       if (/^debian\.(.*)/) {
+                               `mv ${build}debian/$_ ${build}debian/$1`;
+                               $debian = 1;
+                       }
                }
-       }
-       closedir $dh;
+               closedir $dh;
 
-       if ($debian) {
-               my ($dir, $file);
+               if ($debian) {
+                       my ($dir, $file);
 
-               chmod 0755, "${build}debian/rules";
-               $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
-               $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
-               $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
-               $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
-               $file="${build}debian/changelog"; if (not -f $file) {
-                       open FH, ">$file" or die $!;
-                       print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
+                       chmod 0755, "${build}debian/rules";
+                       $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
+                       $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
+                       $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
+                       $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
+                       $file="${build}debian/changelog"; if (not -f $file) {
+                               open FH, ">$file" or die $!;
+                               print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
 
   * Automatically generated package
 
  -- $package{maintainer}  $debdate
 };
-                       close FH;
-               }
+                               close FH;
+                       }
 
-       } else {
-               `rm -rf ${build}debian`;
+               } else {
+                       `rm -rf ${build}debian`;
+               }
        }
 }
 
@@ -1460,16 +1528,18 @@ sub mode_etics_packaging {
        my ($workspaceDir, $srcPackageName, $srcAge, $topDir);
 
        # old-school packaging by ETICS for EMI-1
-       if ($project eq 'emi' and $project_version == 1) { return; }
+       if ($project eq 'emi' and $project_version == 1 and $fmod ne 'gridsite.core') { return; }
 
        if ($fmod eq 'gridsite.core') {
                $workspaceDir = '..';
                $srcPackageName = 'gridsite';
+               $srcTarBall = "../$srcPackageName-\${version}.src.tar.gz";
                $srcAge = '';
                $topDir = '../';
        } else {
                $workspaceDir = '${workspaceDir}';
                $srcPackageName = '${packageName}';
+               $srcTarBall = "$srcPackageName-\${version}.tar.gz";
                $srcAge = '-${age}';
                $topDir = '';
        }
@@ -1479,8 +1549,8 @@ sub mode_etics_packaging {
        $cmd->{default}{packaging} = $rpmprepare;
        $cmd->{default}{packaging} .= "dir=\${workspaceDir}/rpm_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SRPMSLocation} \$dir/{BUILD,RPMS,SOURCES,SRPMS} 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/SOURCES/
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/SOURCES/$srcPackageName-\${version}${srcAge}.src.tar.gz
        rpmbuild -bs --nodeps --define \"_topdir \$dir\" $srcPackageName.spec
        cp -v \$dir/SRPMS/*.src.rpm \${package.SRPMSLocation}/
        rm -rf \$dir";
@@ -1492,8 +1562,8 @@ sub mode_etics_packaging {
                $cmd->{$p}{packaging} = $debprepare;
                $cmd->{$p}{packaging} .= "dir=\${workspaceDir}/dpkg_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SDEBSLocation} \$dir 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/${srcPackageName}_\${version}.orig.tar.gz
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/${srcPackageName}_\${version}.orig.tar.gz
        tar xzf \$dir/${srcPackageName}_\${version}.orig.tar.gz -C \$dir
        cp -rf ${topDir}debian/ \$dir/$srcPackageName-\${version}/
        cd \$dir/$srcPackageName-\${version}
@@ -1564,7 +1634,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}_R_${major}_${minor}_${rev}" : 
+               $conftag = $subsys eq 'gridsite' ? "$project{tag_prefix}{$subsys}${subsys}$project{tag_suffix}{$subsys}_R_${major}_${minor}_${rev}" : 
                        "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}_${age}";
 
                # lowering age for older packaging
@@ -1603,7 +1673,6 @@ sub mode_etics {
        #$cmd_vcs{checkout} = "((test -d jra1mw/.git && (cd jra1mw; git pull)) || (git clone -q http://scientific.zcu.cz/git/jra1mw.git";
        #$cmd_vcs{checkout} .= " && (cd jra1mw; git checkout -b \${tag} --track origin/\${tag})" unless ($conftag eq /HEAD/);
        #$cmd_vcs{checkout} .= ")) && (test -d \${moduleName} || ln -s jra1mw/$cvs_module \${moduleName})";
-       $cmd_vcs{checkout} .= "\n\ttest -f \${packageName}-\${version}-\${age}.src.tar.gz || (ln -s \${moduleName} \${packageName}-\${version}; tar -chf - \${packageName}-\${version} --exclude CVS --exclude .git --exclude .etics | gzip --best > \${packageName}-\${version}-\${age}.src.tar.gz; rm \${packageName}-\${version})";
        $cmd_vcs{tag} = "cvs -d \${vcsroot} tag -R \${tag} ${moduleName}";
 
        $cmd{default}{init} = 'None';
@@ -1695,7 +1764,7 @@ sub mode_etics {
                        $cmd{default}{compile} = "make rpath=$project{local_prefix}/\${libdir}";
                        $cmd{default}{install} = "make install post-install rpath=$project{local_prefix}/\${libdir}";
                }
-               mode_etics_packaging($fmod, \%cmd);
+               mode_etics_packaging($fmod, \%cmd, "make dist\n\t", "make dist\n\t");
        }
 
        my $defprops = '';
index 0521be7..9888345 100644 (file)
@@ -74,6 +74,9 @@
 1.2.0-5
 - Module rebuilt
 
+1.2.0-6
+- Module rebuilt
+
 1.3.0-1
 - Merge from branch_3_2
 
index e457931..f2880c2 100755 (executable)
@@ -54,8 +54,8 @@ 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 nagios/;
+my @nodes = qw/client server logger logger-msg nagios utils client-java doc ws-test db jpprimary jpindex jpclient harvester lb px proxyrenewal canl/;
+my @default_nodes = qw/lb px proxyrenewal nagios canl/;
 my %enable_nodes;
 my %disable_nodes;
 my %default_nodes; @default_nodes{@default_nodes} = (1) x ($#default_nodes + 1);
@@ -126,10 +126,6 @@ my %externs = (
        gridsite => {
                prefix => '/opt/glite'
        },
-       lcas => {
-               prefix => '/opt/glite',
-               pkg => 'lcas'
-       },
        trustmanager => {
                prefix => '/opt/glite'
        },
@@ -492,7 +488,7 @@ sub mode_build {
 
                print MAK "all: @modules\n\n";
                print MAK "stage: ".(join '-stage ', @modules)."-stage\n\n";
-               print MAK "clean check install:\n";
+               print MAK "clean check install dist distcheck rpm deb:\n";
 
                for (@modules) {
                        my $full = full($_);
@@ -524,6 +520,13 @@ sub mode_build {
                        print MAK "$_-stage: $snames\n\tcd $full/$build && \${MAKE} && \${MAKE} stage\n\n";
                }
 
+               print MAK qq/release-rpm: clean dist distcheck rpm
+
+release-deb: clean dist distcheck deb
+
+.PHONY: all stage clean check install dist distcheck rpm deb release-rpm release-deb
+/;
+
                close MAK;
        }
 }
@@ -600,7 +603,7 @@ BEGIN{
        '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:B voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B pkgconfig:B/ ],
+       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads:B voms:B 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/ ],
@@ -874,6 +877,17 @@ for my $ext (keys %deps_aux) {
        'canl' => 'emi-',
 );
 
+%cvs_tag_suffix = (
+       'lb' => '',
+       'jp' => '',
+       'jobid' => '',
+       'lbjp-common' => '',
+       'gridsite' => '-core',
+       'px' => '',
+       'canl' => '',
+);
+
+
 # ==== projects specification ====
 # etics_name ........... ETICS project name
 # conf_prefix .......... ETICS configurations name prefix
@@ -893,6 +907,7 @@ for my $ext (keys %deps_aux) {
                etics_name => 'org.glite',
                conf_prefix => { %cvs_tag_prefix },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour=${globus.thr.flavor} --nothrflavour=${globus.nothr.flavor}',
                local_prefix => '',
                etics_externs => {
@@ -910,7 +925,6 @@ for my $ext (keys %deps_aux) {
                                glue_schema=>'glue-schema',
                                trustmanager=>'org.glite.security.trustmanager',
                                axis=>'axis',
-                               lcas=>'org.glite.security.lcas',
                                gsoapxx=>'-',
                                jdk=>'jdk',
                                voms=>'org.glite.security.voms-api-cpp',
@@ -924,7 +938,7 @@ for my $ext (keys %deps_aux) {
                },
                etics_projects => {
                        vdt=>[qw/globus globus_essentials globus_proxy_utils gpt/],
-                       'org.glite'=>[qw/voms gridsite lcas gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
+                       'org.glite'=>[qw/voms gridsite gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
                },
                etics_locations => {
                        '*' => '',
@@ -963,6 +977,7 @@ for my $ext (keys %deps_aux) {
                        'canl' => 'emi-',
                },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour= --nothrflavour=',
                local_prefix => '/usr',
                etics_externs => {
@@ -980,7 +995,6 @@ for my $ext (keys %deps_aux) {
                                trustmanager=>'emi.java-security.trustmanager',
                                trustmanager_axis=>'emi.java-security.trustmanager-axis',
                                axis=>'axis1.4',
-                               lcas=>'emi.sac.lcas',
                                gsoapxx=>'-',
                                jdk=>'java',
                                voms => 'emi.voms.voms-api',
@@ -1050,7 +1064,7 @@ for my $ext (keys %deps_aux) {
                        },
                },
                etics_projects => {
-                       'emi'=>[qw/voms voms-devel gridsite lcas gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
+                       'emi'=>[qw/voms voms-devel gridsite gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
                },
                etics_locations => {
                        axis => 'axis',
@@ -1214,7 +1228,7 @@ sub get_version
                while (<V>) {
                        chomp;
                        ($major,$minor,$rev) = ($1,$2,$3) if /module\.version\s*=\s*([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)/;
-                       $age = $1 if /module\.age\s*=\s*([[:digit:]]+)/;
+                       $age = $1 if /module\.age\s*=\s*(\S+)/;
                }
                close V;
                $_ = $old_;
@@ -1360,6 +1374,55 @@ top_srcdir = $top_srcdir
 
        print MKINC "gsoap_default_version=".gsoap_version()."\n"  if $need_gsoap;
 
+       print MKINC '
+-include ${top_srcdir}/project/version.properties
+version=${module.version}
+
+${package}-${version}.tar.gz:
+       rm -rf dist
+       for dist in ${SOURCES} ${SOURCES_EXEC} configure project/ChangeLog project/debian.* project/*.spec project/package.* project/version.properties; do \
+               dir=${package}-${version}/`dirname $$dist`; \
+               mkdir -p dist/$$dir || :; \
+               install -m 0644 ${top_srcdir}/$$dist dist/$$dir; \
+       done
+       for dist in ${SOURCES_EXEC} configure; do \
+               chmod +x dist/${package}-${version}/$$dist; \
+       done
+       (cd dist; tar -czf ${package}-${version}.tar.gz ${package}-${version})
+       mv dist/${package}-${version}.tar.gz .
+
+dist: ${package}-${version}.tar.gz
+
+distcheck: ${package}-${version}.tar.gz
+       rm -rf dist
+       mkdir -p dist
+       cp ${package}-${version}.tar.gz dist
+       (cd dist; tar -xzf ${package}-${version}.tar.gz)
+       a=`(cd dist/${package}-${version}; find . -type f | sort)`; \
+       b=`(cd ${top_srcdir}; find . -path ./dist -prune -or -type f -print | sort)`; \
+       echo "$$a" >dist/files-dist; \
+       echo "$$b" | egrep -v "(^./Makefile.inc$$|^./${package}-${version}.tar.gz$$|^./debian|^./[^/]*.spec$$|\.cvsignore|^\./project/changelog$$|/CVS)" >dist/files-original
+       diff -U0 dist/files-dist dist/files-original
+
+rpm: ${package}-${version}.tar.gz
+       dir=dist/rpm_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir/BUILD $$dir/RPMS $$dir/SOURCES $$dir/SRPMS; \
+       cp ${package}-${version}.tar.gz $$dir/SOURCES/${package}-${version}-${module.age}.src.tar.gz && \
+       rpmbuild -bs --nodeps --define "_topdir $$dir" ${package}.spec && \
+       cp -v $$dir/SRPMS/*.src.rpm dist/
+
+deb: ${package}-${version}.tar.gz
+       dir=dist/dpkg_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir; \
+       cp ${package}-${version}.tar.gz $$dir/${package}_${version}.orig.tar.gz && \
+       tar zxf $$dir/${package}_${version}.orig.tar.gz -C $$dir && \
+       cp -rf debian/ $$dir/${package}-${version} && \
+       (cd $$dir/${package}-${version} && dpkg-buildpackage -S -d -nc -us -uc) && \
+       cp -v $$dir/*.tar.gz $$dir/*.dsc dist/
+';
+
        close MKINC;
 
        my $dh;
@@ -1412,43 +1475,48 @@ top_srcdir = $top_srcdir
                }
        }
 
-       print "Creating ${build}debian/\n" if ($debug);;
-
-       `rm -rfv  ${build}debian`;
-       mkdir $build."debian" or die $!;
-       `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
-       `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
-       `rm -f ${build}debian/*.orig`;
-       opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
-       for $_ (readdir $dh) {
-               if (/^debian\.(.*)/) {
-                       `mv ${build}debian/$_ ${build}debian/$1`;
-                       $debian = 1;
+       if ($module and -d $build."debian") {
+               print "Skipping ${build}debian/ (no rewrite in single module mode)\n" if ($debug);
+               `rm -f ${build}debian.*`;
+       } else {
+               print "Creating ${build}debian/\n" if ($debug);;
+
+               `rm -rfv  ${build}debian`;
+               mkdir $build."debian" or die $!;
+               `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
+               `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
+               `rm -f ${build}debian/*.orig`;
+               opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
+               for $_ (readdir $dh) {
+                       if (/^debian\.(.*)/) {
+                               `mv ${build}debian/$_ ${build}debian/$1`;
+                               $debian = 1;
+                       }
                }
-       }
-       closedir $dh;
+               closedir $dh;
 
-       if ($debian) {
-               my ($dir, $file);
+               if ($debian) {
+                       my ($dir, $file);
 
-               chmod 0755, "${build}debian/rules";
-               $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
-               $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
-               $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
-               $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
-               $file="${build}debian/changelog"; if (not -f $file) {
-                       open FH, ">$file" or die $!;
-                       print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
+                       chmod 0755, "${build}debian/rules";
+                       $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
+                       $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
+                       $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
+                       $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
+                       $file="${build}debian/changelog"; if (not -f $file) {
+                               open FH, ">$file" or die $!;
+                               print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
 
   * Automatically generated package
 
  -- $package{maintainer}  $debdate
 };
-                       close FH;
-               }
+                               close FH;
+                       }
 
-       } else {
-               `rm -rf ${build}debian`;
+               } else {
+                       `rm -rf ${build}debian`;
+               }
        }
 }
 
@@ -1460,16 +1528,18 @@ sub mode_etics_packaging {
        my ($workspaceDir, $srcPackageName, $srcAge, $topDir);
 
        # old-school packaging by ETICS for EMI-1
-       if ($project eq 'emi' and $project_version == 1) { return; }
+       if ($project eq 'emi' and $project_version == 1 and $fmod ne 'gridsite.core') { return; }
 
        if ($fmod eq 'gridsite.core') {
                $workspaceDir = '..';
                $srcPackageName = 'gridsite';
+               $srcTarBall = "../$srcPackageName-\${version}.src.tar.gz";
                $srcAge = '';
                $topDir = '../';
        } else {
                $workspaceDir = '${workspaceDir}';
                $srcPackageName = '${packageName}';
+               $srcTarBall = "$srcPackageName-\${version}.tar.gz";
                $srcAge = '-${age}';
                $topDir = '';
        }
@@ -1479,8 +1549,8 @@ sub mode_etics_packaging {
        $cmd->{default}{packaging} = $rpmprepare;
        $cmd->{default}{packaging} .= "dir=\${workspaceDir}/rpm_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SRPMSLocation} \$dir/{BUILD,RPMS,SOURCES,SRPMS} 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/SOURCES/
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/SOURCES/$srcPackageName-\${version}${srcAge}.src.tar.gz
        rpmbuild -bs --nodeps --define \"_topdir \$dir\" $srcPackageName.spec
        cp -v \$dir/SRPMS/*.src.rpm \${package.SRPMSLocation}/
        rm -rf \$dir";
@@ -1492,8 +1562,8 @@ sub mode_etics_packaging {
                $cmd->{$p}{packaging} = $debprepare;
                $cmd->{$p}{packaging} .= "dir=\${workspaceDir}/dpkg_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SDEBSLocation} \$dir 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/${srcPackageName}_\${version}.orig.tar.gz
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/${srcPackageName}_\${version}.orig.tar.gz
        tar xzf \$dir/${srcPackageName}_\${version}.orig.tar.gz -C \$dir
        cp -rf ${topDir}debian/ \$dir/$srcPackageName-\${version}/
        cd \$dir/$srcPackageName-\${version}
@@ -1564,7 +1634,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}_R_${major}_${minor}_${rev}" : 
+               $conftag = $subsys eq 'gridsite' ? "$project{tag_prefix}{$subsys}${subsys}$project{tag_suffix}{$subsys}_R_${major}_${minor}_${rev}" : 
                        "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}_${age}";
 
                # lowering age for older packaging
@@ -1603,7 +1673,6 @@ sub mode_etics {
        #$cmd_vcs{checkout} = "((test -d jra1mw/.git && (cd jra1mw; git pull)) || (git clone -q http://scientific.zcu.cz/git/jra1mw.git";
        #$cmd_vcs{checkout} .= " && (cd jra1mw; git checkout -b \${tag} --track origin/\${tag})" unless ($conftag eq /HEAD/);
        #$cmd_vcs{checkout} .= ")) && (test -d \${moduleName} || ln -s jra1mw/$cvs_module \${moduleName})";
-       $cmd_vcs{checkout} .= "\n\ttest -f \${packageName}-\${version}-\${age}.src.tar.gz || (ln -s \${moduleName} \${packageName}-\${version}; tar -chf - \${packageName}-\${version} --exclude CVS --exclude .git --exclude .etics | gzip --best > \${packageName}-\${version}-\${age}.src.tar.gz; rm \${packageName}-\${version})";
        $cmd_vcs{tag} = "cvs -d \${vcsroot} tag -R \${tag} ${moduleName}";
 
        $cmd{default}{init} = 'None';
@@ -1695,7 +1764,7 @@ sub mode_etics {
                        $cmd{default}{compile} = "make rpath=$project{local_prefix}/\${libdir}";
                        $cmd{default}{install} = "make install post-install rpath=$project{local_prefix}/\${libdir}";
                }
-               mode_etics_packaging($fmod, \%cmd);
+               mode_etics_packaging($fmod, \%cmd, "make dist\n\t", "make dist\n\t");
        }
 
        my $defprops = '';
index 4e12201..c6654e3 100644 (file)
@@ -61,6 +61,9 @@
 1.2.0-5
 - Module rebuilt
 
+1.2.0-6
+- Module rebuilt
+
 1.3.0-1
 - Merge from branch_3_2
 
index 90936a9..405d99f 100644 (file)
@@ -32,7 +32,7 @@ JAVA:=${jdk_prefix}/bin/java
 
 GEN:=${stagedir}${prefix}/sbin/glite-lb-at3 ${top_srcdir}/project/genEventTypes.pl
 AT3DIR:=${stagedir}${prefix}/share/glite-lb/at3
-axis_classpath:=$(shell ${top_srcdir}/project/list-jars.sh ${axis_prefix}/lib ${axis_prefix}/share/java /usr/share/java /usr/lib/java)
+axis_classpath:=$(shell ${top_srcdir}/project/list-jars.sh ${axis_prefix}/lib ${axis_prefix}/share/java ${axis_prefix}/share/java/axis /usr/share/java /usr/lib/java /usr/lib/java/axis)
 trustmanager_classpath:=$(shell ls -1 ${trustmanager_prefix}/share/java/glite-security-trustmanager.jar ${trustmanager_prefix}/share/java/trustmanager.jar ${trustmanager_prefix}/share/java/trustmanager-axis.jar ${stagedir}${prefix}/share/java/trustmanager.jar ${stagedir}${prefix}/share/java/trustmanager-axis.jar 2>/dev/null | tr '\012' :)
 
 all compile: compile-java-axis compile-java-lb compile-java-gen compile-java-lb2 build-jar examples build-c
index 4be8ff9..f2880c2 100755 (executable)
@@ -54,8 +54,8 @@ 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 nagios/;
+my @nodes = qw/client server logger logger-msg nagios utils client-java doc ws-test db jpprimary jpindex jpclient harvester lb px proxyrenewal canl/;
+my @default_nodes = qw/lb px proxyrenewal nagios canl/;
 my %enable_nodes;
 my %disable_nodes;
 my %default_nodes; @default_nodes{@default_nodes} = (1) x ($#default_nodes + 1);
@@ -126,10 +126,6 @@ my %externs = (
        gridsite => {
                prefix => '/opt/glite'
        },
-       lcas => {
-               prefix => '/opt/glite',
-               pkg => 'lcas'
-       },
        trustmanager => {
                prefix => '/opt/glite'
        },
@@ -492,7 +488,7 @@ sub mode_build {
 
                print MAK "all: @modules\n\n";
                print MAK "stage: ".(join '-stage ', @modules)."-stage\n\n";
-               print MAK "clean check install:\n";
+               print MAK "clean check install dist distcheck rpm deb:\n";
 
                for (@modules) {
                        my $full = full($_);
@@ -524,6 +520,13 @@ sub mode_build {
                        print MAK "$_-stage: $snames\n\tcd $full/$build && \${MAKE} && \${MAKE} stage\n\n";
                }
 
+               print MAK qq/release-rpm: clean dist distcheck rpm
+
+release-deb: clean dist distcheck deb
+
+.PHONY: all stage clean check install dist distcheck rpm deb release-rpm release-deb
+/;
+
                close MAK;
        }
 }
@@ -600,7 +603,7 @@ BEGIN{
        '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:B voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B pkgconfig:B/ ],
+       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads:B voms:B 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/ ],
@@ -874,6 +877,17 @@ for my $ext (keys %deps_aux) {
        'canl' => 'emi-',
 );
 
+%cvs_tag_suffix = (
+       'lb' => '',
+       'jp' => '',
+       'jobid' => '',
+       'lbjp-common' => '',
+       'gridsite' => '-core',
+       'px' => '',
+       'canl' => '',
+);
+
+
 # ==== projects specification ====
 # etics_name ........... ETICS project name
 # conf_prefix .......... ETICS configurations name prefix
@@ -893,6 +907,7 @@ for my $ext (keys %deps_aux) {
                etics_name => 'org.glite',
                conf_prefix => { %cvs_tag_prefix },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour=${globus.thr.flavor} --nothrflavour=${globus.nothr.flavor}',
                local_prefix => '',
                etics_externs => {
@@ -910,7 +925,6 @@ for my $ext (keys %deps_aux) {
                                glue_schema=>'glue-schema',
                                trustmanager=>'org.glite.security.trustmanager',
                                axis=>'axis',
-                               lcas=>'org.glite.security.lcas',
                                gsoapxx=>'-',
                                jdk=>'jdk',
                                voms=>'org.glite.security.voms-api-cpp',
@@ -924,7 +938,7 @@ for my $ext (keys %deps_aux) {
                },
                etics_projects => {
                        vdt=>[qw/globus globus_essentials globus_proxy_utils gpt/],
-                       'org.glite'=>[qw/voms gridsite lcas gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
+                       'org.glite'=>[qw/voms gridsite gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
                },
                etics_locations => {
                        '*' => '',
@@ -963,6 +977,7 @@ for my $ext (keys %deps_aux) {
                        'canl' => 'emi-',
                },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour= --nothrflavour=',
                local_prefix => '/usr',
                etics_externs => {
@@ -980,7 +995,6 @@ for my $ext (keys %deps_aux) {
                                trustmanager=>'emi.java-security.trustmanager',
                                trustmanager_axis=>'emi.java-security.trustmanager-axis',
                                axis=>'axis1.4',
-                               lcas=>'emi.sac.lcas',
                                gsoapxx=>'-',
                                jdk=>'java',
                                voms => 'emi.voms.voms-api',
@@ -1050,7 +1064,7 @@ for my $ext (keys %deps_aux) {
                        },
                },
                etics_projects => {
-                       'emi'=>[qw/voms voms-devel gridsite lcas gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
+                       'emi'=>[qw/voms voms-devel gridsite gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
                },
                etics_locations => {
                        axis => 'axis',
@@ -1214,7 +1228,7 @@ sub get_version
                while (<V>) {
                        chomp;
                        ($major,$minor,$rev) = ($1,$2,$3) if /module\.version\s*=\s*([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)/;
-                       $age = $1 if /module\.age\s*=\s*([[:digit:]]+)/;
+                       $age = $1 if /module\.age\s*=\s*(\S+)/;
                }
                close V;
                $_ = $old_;
@@ -1360,6 +1374,55 @@ top_srcdir = $top_srcdir
 
        print MKINC "gsoap_default_version=".gsoap_version()."\n"  if $need_gsoap;
 
+       print MKINC '
+-include ${top_srcdir}/project/version.properties
+version=${module.version}
+
+${package}-${version}.tar.gz:
+       rm -rf dist
+       for dist in ${SOURCES} ${SOURCES_EXEC} configure project/ChangeLog project/debian.* project/*.spec project/package.* project/version.properties; do \
+               dir=${package}-${version}/`dirname $$dist`; \
+               mkdir -p dist/$$dir || :; \
+               install -m 0644 ${top_srcdir}/$$dist dist/$$dir; \
+       done
+       for dist in ${SOURCES_EXEC} configure; do \
+               chmod +x dist/${package}-${version}/$$dist; \
+       done
+       (cd dist; tar -czf ${package}-${version}.tar.gz ${package}-${version})
+       mv dist/${package}-${version}.tar.gz .
+
+dist: ${package}-${version}.tar.gz
+
+distcheck: ${package}-${version}.tar.gz
+       rm -rf dist
+       mkdir -p dist
+       cp ${package}-${version}.tar.gz dist
+       (cd dist; tar -xzf ${package}-${version}.tar.gz)
+       a=`(cd dist/${package}-${version}; find . -type f | sort)`; \
+       b=`(cd ${top_srcdir}; find . -path ./dist -prune -or -type f -print | sort)`; \
+       echo "$$a" >dist/files-dist; \
+       echo "$$b" | egrep -v "(^./Makefile.inc$$|^./${package}-${version}.tar.gz$$|^./debian|^./[^/]*.spec$$|\.cvsignore|^\./project/changelog$$|/CVS)" >dist/files-original
+       diff -U0 dist/files-dist dist/files-original
+
+rpm: ${package}-${version}.tar.gz
+       dir=dist/rpm_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir/BUILD $$dir/RPMS $$dir/SOURCES $$dir/SRPMS; \
+       cp ${package}-${version}.tar.gz $$dir/SOURCES/${package}-${version}-${module.age}.src.tar.gz && \
+       rpmbuild -bs --nodeps --define "_topdir $$dir" ${package}.spec && \
+       cp -v $$dir/SRPMS/*.src.rpm dist/
+
+deb: ${package}-${version}.tar.gz
+       dir=dist/dpkg_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir; \
+       cp ${package}-${version}.tar.gz $$dir/${package}_${version}.orig.tar.gz && \
+       tar zxf $$dir/${package}_${version}.orig.tar.gz -C $$dir && \
+       cp -rf debian/ $$dir/${package}-${version} && \
+       (cd $$dir/${package}-${version} && dpkg-buildpackage -S -d -nc -us -uc) && \
+       cp -v $$dir/*.tar.gz $$dir/*.dsc dist/
+';
+
        close MKINC;
 
        my $dh;
@@ -1412,43 +1475,48 @@ top_srcdir = $top_srcdir
                }
        }
 
-       print "Creating ${build}debian/\n" if ($debug);;
-
-       `rm -rfv  ${build}debian`;
-       mkdir $build."debian" or die $!;
-       `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
-       `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
-       `rm -f ${build}debian/*.orig`;
-       opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
-       for $_ (readdir $dh) {
-               if (/^debian\.(.*)/) {
-                       `mv ${build}debian/$_ ${build}debian/$1`;
-                       $debian = 1;
+       if ($module and -d $build."debian") {
+               print "Skipping ${build}debian/ (no rewrite in single module mode)\n" if ($debug);
+               `rm -f ${build}debian.*`;
+       } else {
+               print "Creating ${build}debian/\n" if ($debug);;
+
+               `rm -rfv  ${build}debian`;
+               mkdir $build."debian" or die $!;
+               `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
+               `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
+               `rm -f ${build}debian/*.orig`;
+               opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
+               for $_ (readdir $dh) {
+                       if (/^debian\.(.*)/) {
+                               `mv ${build}debian/$_ ${build}debian/$1`;
+                               $debian = 1;
+                       }
                }
-       }
-       closedir $dh;
+               closedir $dh;
 
-       if ($debian) {
-               my ($dir, $file);
+               if ($debian) {
+                       my ($dir, $file);
 
-               chmod 0755, "${build}debian/rules";
-               $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
-               $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
-               $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
-               $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
-               $file="${build}debian/changelog"; if (not -f $file) {
-                       open FH, ">$file" or die $!;
-                       print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
+                       chmod 0755, "${build}debian/rules";
+                       $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
+                       $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
+                       $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
+                       $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
+                       $file="${build}debian/changelog"; if (not -f $file) {
+                               open FH, ">$file" or die $!;
+                               print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
 
   * Automatically generated package
 
  -- $package{maintainer}  $debdate
 };
-                       close FH;
-               }
+                               close FH;
+                       }
 
-       } else {
-               `rm -rf ${build}debian`;
+               } else {
+                       `rm -rf ${build}debian`;
+               }
        }
 }
 
@@ -1465,11 +1533,13 @@ sub mode_etics_packaging {
        if ($fmod eq 'gridsite.core') {
                $workspaceDir = '..';
                $srcPackageName = 'gridsite';
+               $srcTarBall = "../$srcPackageName-\${version}.src.tar.gz";
                $srcAge = '';
                $topDir = '../';
        } else {
                $workspaceDir = '${workspaceDir}';
                $srcPackageName = '${packageName}';
+               $srcTarBall = "$srcPackageName-\${version}.tar.gz";
                $srcAge = '-${age}';
                $topDir = '';
        }
@@ -1479,8 +1549,8 @@ sub mode_etics_packaging {
        $cmd->{default}{packaging} = $rpmprepare;
        $cmd->{default}{packaging} .= "dir=\${workspaceDir}/rpm_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SRPMSLocation} \$dir/{BUILD,RPMS,SOURCES,SRPMS} 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/SOURCES/
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/SOURCES/$srcPackageName-\${version}${srcAge}.src.tar.gz
        rpmbuild -bs --nodeps --define \"_topdir \$dir\" $srcPackageName.spec
        cp -v \$dir/SRPMS/*.src.rpm \${package.SRPMSLocation}/
        rm -rf \$dir";
@@ -1492,8 +1562,8 @@ sub mode_etics_packaging {
                $cmd->{$p}{packaging} = $debprepare;
                $cmd->{$p}{packaging} .= "dir=\${workspaceDir}/dpkg_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SDEBSLocation} \$dir 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/${srcPackageName}_\${version}.orig.tar.gz
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/${srcPackageName}_\${version}.orig.tar.gz
        tar xzf \$dir/${srcPackageName}_\${version}.orig.tar.gz -C \$dir
        cp -rf ${topDir}debian/ \$dir/$srcPackageName-\${version}/
        cd \$dir/$srcPackageName-\${version}
@@ -1564,7 +1634,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}_R_${major}_${minor}_${rev}" : 
+               $conftag = $subsys eq 'gridsite' ? "$project{tag_prefix}{$subsys}${subsys}$project{tag_suffix}{$subsys}_R_${major}_${minor}_${rev}" : 
                        "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}_${age}";
 
                # lowering age for older packaging
@@ -1603,7 +1673,6 @@ sub mode_etics {
        #$cmd_vcs{checkout} = "((test -d jra1mw/.git && (cd jra1mw; git pull)) || (git clone -q http://scientific.zcu.cz/git/jra1mw.git";
        #$cmd_vcs{checkout} .= " && (cd jra1mw; git checkout -b \${tag} --track origin/\${tag})" unless ($conftag eq /HEAD/);
        #$cmd_vcs{checkout} .= ")) && (test -d \${moduleName} || ln -s jra1mw/$cvs_module \${moduleName})";
-       $cmd_vcs{checkout} .= "\n\ttest -f \${packageName}-\${version}-\${age}.src.tar.gz || (ln -s \${moduleName} \${packageName}-\${version}; tar -chf - \${packageName}-\${version} --exclude CVS --exclude .git --exclude .etics | gzip --best > \${packageName}-\${version}-\${age}.src.tar.gz; rm \${packageName}-\${version})";
        $cmd_vcs{tag} = "cvs -d \${vcsroot} tag -R \${tag} ${moduleName}";
 
        $cmd{default}{init} = 'None';
@@ -1695,7 +1764,7 @@ sub mode_etics {
                        $cmd{default}{compile} = "make rpath=$project{local_prefix}/\${libdir}";
                        $cmd{default}{install} = "make install post-install rpath=$project{local_prefix}/\${libdir}";
                }
-               mode_etics_packaging($fmod, \%cmd);
+               mode_etics_packaging($fmod, \%cmd, "make dist\n\t", "make dist\n\t");
        }
 
        my $defprops = '';
index 808b1d3..6f22e0a 100644 (file)
@@ -94,6 +94,9 @@
 1.2.2-1
 - Limit number of jars used for axis (scanning script with the expected list)
 
+1.2.3-1
+- Improved building and packaging for Fedora and Debian
+
 1.3.0-1
 - Merge from branch_3_2
 
index 563212f..3e8109d 100644 (file)
@@ -9,7 +9,11 @@ License: ASL 2.0
 Vendor: EMI
 Group: System Environment/Libraries
 BuildRequires: ant
+%if 0%{?fedora}
+BuildRequires: axis
+%else
 BuildRequires: axis1.4
+%endif
 BuildRequires: chrpath
 BuildRequires: emi-trustmanager
 BuildRequires: emi-trustmanager-axis
index 5f4fff4..4536505 100755 (executable)
@@ -11,7 +11,7 @@ for prefix in $PREFIXES; do
        #echo $prefix >&2
        for pkgid in $LIST; do
                #echo $pkgid >&2
-               for pkg in `ls -1 ${prefix}/${pkgid}*.jar 2>/dev/null`; do
+               for pkg in `ls -1 ${prefix}/${pkgid}*.jar ${prefix}/apache-${pkgid}*.jar 2>/dev/null`; do
                        if ! test -h ${pkg}; then
                                CP="$CP:${pkg}"
                        fi
index 9b974c1..4b07dc2 100644 (file)
@@ -251,19 +251,19 @@ ${THRPLUSLIB}: ${PLUSTHROBJS} ${THRLIB}
 endif
 
 logevent: logevent.o args.o
-       ${LINK} -o $@ logevent.o args.o ${default_clientlib} ${EXT_LIB} 
+       ${LINK} -o $@ logevent.o args.o ${default_clientlib} ${EXT_LIB} ${PLUS_EXTRA_LIB} -lm
 
 notify: notify.o
-       ${LINKXX} -o $@ notify.o ${default_clientpluslib} ${EXT_LIB} ${PLUS_EXTRA_LIB}
+       ${LINK} -o $@ notify.o ${default_clientpluslib} ${EXT_LIB} ${PLUS_EXTRA_LIB}
 
 register_sandbox: %: %.o
-       ${LINK} -o $@ $@.o ${default_clientlib} ${EXT_LIB}
+       ${LINK} -o $@ $@.o ${default_clientlib} ${EXT_LIB} ${PLUS_EXTRA_LIB}
 
 ${TOOLS} ${EXAMPLES} ${EXAMPLES_CL}: %: %.o
-       ${LINK} -o $@ $< ${default_clientlib} ${default_commonlib} ${EXT_LIB} 
+       ${LINK} -o $@ $< ${default_clientlib} ${default_commonlib} ${EXT_LIB} ${PLUS_EXTRA_LIB}
 
 ${EXAMPLES_CL_THR}: %: %.o
-       ${LINK} -o $@ $< ${default_clientlib_thr} ${default_commonlib_thr} ${EXT_LIB} -lpthread
+       ${LINK} -o $@ $< ${default_clientlib_thr} ${default_commonlib_thr} ${EXT_LIB} ${PLUS_EXTRA_LIB} -lpthread
 
 ${TOOLS}: ${default_clientlib}
 
index 4be8ff9..f2880c2 100755 (executable)
@@ -54,8 +54,8 @@ 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 nagios/;
+my @nodes = qw/client server logger logger-msg nagios utils client-java doc ws-test db jpprimary jpindex jpclient harvester lb px proxyrenewal canl/;
+my @default_nodes = qw/lb px proxyrenewal nagios canl/;
 my %enable_nodes;
 my %disable_nodes;
 my %default_nodes; @default_nodes{@default_nodes} = (1) x ($#default_nodes + 1);
@@ -126,10 +126,6 @@ my %externs = (
        gridsite => {
                prefix => '/opt/glite'
        },
-       lcas => {
-               prefix => '/opt/glite',
-               pkg => 'lcas'
-       },
        trustmanager => {
                prefix => '/opt/glite'
        },
@@ -492,7 +488,7 @@ sub mode_build {
 
                print MAK "all: @modules\n\n";
                print MAK "stage: ".(join '-stage ', @modules)."-stage\n\n";
-               print MAK "clean check install:\n";
+               print MAK "clean check install dist distcheck rpm deb:\n";
 
                for (@modules) {
                        my $full = full($_);
@@ -524,6 +520,13 @@ sub mode_build {
                        print MAK "$_-stage: $snames\n\tcd $full/$build && \${MAKE} && \${MAKE} stage\n\n";
                }
 
+               print MAK qq/release-rpm: clean dist distcheck rpm
+
+release-deb: clean dist distcheck deb
+
+.PHONY: all stage clean check install dist distcheck rpm deb release-rpm release-deb
+/;
+
                close MAK;
        }
 }
@@ -600,7 +603,7 @@ BEGIN{
        '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:B voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B pkgconfig:B/ ],
+       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads:B voms:B 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/ ],
@@ -874,6 +877,17 @@ for my $ext (keys %deps_aux) {
        'canl' => 'emi-',
 );
 
+%cvs_tag_suffix = (
+       'lb' => '',
+       'jp' => '',
+       'jobid' => '',
+       'lbjp-common' => '',
+       'gridsite' => '-core',
+       'px' => '',
+       'canl' => '',
+);
+
+
 # ==== projects specification ====
 # etics_name ........... ETICS project name
 # conf_prefix .......... ETICS configurations name prefix
@@ -893,6 +907,7 @@ for my $ext (keys %deps_aux) {
                etics_name => 'org.glite',
                conf_prefix => { %cvs_tag_prefix },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour=${globus.thr.flavor} --nothrflavour=${globus.nothr.flavor}',
                local_prefix => '',
                etics_externs => {
@@ -910,7 +925,6 @@ for my $ext (keys %deps_aux) {
                                glue_schema=>'glue-schema',
                                trustmanager=>'org.glite.security.trustmanager',
                                axis=>'axis',
-                               lcas=>'org.glite.security.lcas',
                                gsoapxx=>'-',
                                jdk=>'jdk',
                                voms=>'org.glite.security.voms-api-cpp',
@@ -924,7 +938,7 @@ for my $ext (keys %deps_aux) {
                },
                etics_projects => {
                        vdt=>[qw/globus globus_essentials globus_proxy_utils gpt/],
-                       'org.glite'=>[qw/voms gridsite lcas gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
+                       'org.glite'=>[qw/voms gridsite gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
                },
                etics_locations => {
                        '*' => '',
@@ -963,6 +977,7 @@ for my $ext (keys %deps_aux) {
                        'canl' => 'emi-',
                },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour= --nothrflavour=',
                local_prefix => '/usr',
                etics_externs => {
@@ -980,7 +995,6 @@ for my $ext (keys %deps_aux) {
                                trustmanager=>'emi.java-security.trustmanager',
                                trustmanager_axis=>'emi.java-security.trustmanager-axis',
                                axis=>'axis1.4',
-                               lcas=>'emi.sac.lcas',
                                gsoapxx=>'-',
                                jdk=>'java',
                                voms => 'emi.voms.voms-api',
@@ -1050,7 +1064,7 @@ for my $ext (keys %deps_aux) {
                        },
                },
                etics_projects => {
-                       'emi'=>[qw/voms voms-devel gridsite lcas gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
+                       'emi'=>[qw/voms voms-devel gridsite gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
                },
                etics_locations => {
                        axis => 'axis',
@@ -1214,7 +1228,7 @@ sub get_version
                while (<V>) {
                        chomp;
                        ($major,$minor,$rev) = ($1,$2,$3) if /module\.version\s*=\s*([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)/;
-                       $age = $1 if /module\.age\s*=\s*([[:digit:]]+)/;
+                       $age = $1 if /module\.age\s*=\s*(\S+)/;
                }
                close V;
                $_ = $old_;
@@ -1360,6 +1374,55 @@ top_srcdir = $top_srcdir
 
        print MKINC "gsoap_default_version=".gsoap_version()."\n"  if $need_gsoap;
 
+       print MKINC '
+-include ${top_srcdir}/project/version.properties
+version=${module.version}
+
+${package}-${version}.tar.gz:
+       rm -rf dist
+       for dist in ${SOURCES} ${SOURCES_EXEC} configure project/ChangeLog project/debian.* project/*.spec project/package.* project/version.properties; do \
+               dir=${package}-${version}/`dirname $$dist`; \
+               mkdir -p dist/$$dir || :; \
+               install -m 0644 ${top_srcdir}/$$dist dist/$$dir; \
+       done
+       for dist in ${SOURCES_EXEC} configure; do \
+               chmod +x dist/${package}-${version}/$$dist; \
+       done
+       (cd dist; tar -czf ${package}-${version}.tar.gz ${package}-${version})
+       mv dist/${package}-${version}.tar.gz .
+
+dist: ${package}-${version}.tar.gz
+
+distcheck: ${package}-${version}.tar.gz
+       rm -rf dist
+       mkdir -p dist
+       cp ${package}-${version}.tar.gz dist
+       (cd dist; tar -xzf ${package}-${version}.tar.gz)
+       a=`(cd dist/${package}-${version}; find . -type f | sort)`; \
+       b=`(cd ${top_srcdir}; find . -path ./dist -prune -or -type f -print | sort)`; \
+       echo "$$a" >dist/files-dist; \
+       echo "$$b" | egrep -v "(^./Makefile.inc$$|^./${package}-${version}.tar.gz$$|^./debian|^./[^/]*.spec$$|\.cvsignore|^\./project/changelog$$|/CVS)" >dist/files-original
+       diff -U0 dist/files-dist dist/files-original
+
+rpm: ${package}-${version}.tar.gz
+       dir=dist/rpm_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir/BUILD $$dir/RPMS $$dir/SOURCES $$dir/SRPMS; \
+       cp ${package}-${version}.tar.gz $$dir/SOURCES/${package}-${version}-${module.age}.src.tar.gz && \
+       rpmbuild -bs --nodeps --define "_topdir $$dir" ${package}.spec && \
+       cp -v $$dir/SRPMS/*.src.rpm dist/
+
+deb: ${package}-${version}.tar.gz
+       dir=dist/dpkg_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir; \
+       cp ${package}-${version}.tar.gz $$dir/${package}_${version}.orig.tar.gz && \
+       tar zxf $$dir/${package}_${version}.orig.tar.gz -C $$dir && \
+       cp -rf debian/ $$dir/${package}-${version} && \
+       (cd $$dir/${package}-${version} && dpkg-buildpackage -S -d -nc -us -uc) && \
+       cp -v $$dir/*.tar.gz $$dir/*.dsc dist/
+';
+
        close MKINC;
 
        my $dh;
@@ -1412,43 +1475,48 @@ top_srcdir = $top_srcdir
                }
        }
 
-       print "Creating ${build}debian/\n" if ($debug);;
-
-       `rm -rfv  ${build}debian`;
-       mkdir $build."debian" or die $!;
-       `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
-       `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
-       `rm -f ${build}debian/*.orig`;
-       opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
-       for $_ (readdir $dh) {
-               if (/^debian\.(.*)/) {
-                       `mv ${build}debian/$_ ${build}debian/$1`;
-                       $debian = 1;
+       if ($module and -d $build."debian") {
+               print "Skipping ${build}debian/ (no rewrite in single module mode)\n" if ($debug);
+               `rm -f ${build}debian.*`;
+       } else {
+               print "Creating ${build}debian/\n" if ($debug);;
+
+               `rm -rfv  ${build}debian`;
+               mkdir $build."debian" or die $!;
+               `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
+               `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
+               `rm -f ${build}debian/*.orig`;
+               opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
+               for $_ (readdir $dh) {
+                       if (/^debian\.(.*)/) {
+                               `mv ${build}debian/$_ ${build}debian/$1`;
+                               $debian = 1;
+                       }
                }
-       }
-       closedir $dh;
+               closedir $dh;
 
-       if ($debian) {
-               my ($dir, $file);
+               if ($debian) {
+                       my ($dir, $file);
 
-               chmod 0755, "${build}debian/rules";
-               $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
-               $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
-               $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
-               $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
-               $file="${build}debian/changelog"; if (not -f $file) {
-                       open FH, ">$file" or die $!;
-                       print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
+                       chmod 0755, "${build}debian/rules";
+                       $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
+                       $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
+                       $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
+                       $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
+                       $file="${build}debian/changelog"; if (not -f $file) {
+                               open FH, ">$file" or die $!;
+                               print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
 
   * Automatically generated package
 
  -- $package{maintainer}  $debdate
 };
-                       close FH;
-               }
+                               close FH;
+                       }
 
-       } else {
-               `rm -rf ${build}debian`;
+               } else {
+                       `rm -rf ${build}debian`;
+               }
        }
 }
 
@@ -1465,11 +1533,13 @@ sub mode_etics_packaging {
        if ($fmod eq 'gridsite.core') {
                $workspaceDir = '..';
                $srcPackageName = 'gridsite';
+               $srcTarBall = "../$srcPackageName-\${version}.src.tar.gz";
                $srcAge = '';
                $topDir = '../';
        } else {
                $workspaceDir = '${workspaceDir}';
                $srcPackageName = '${packageName}';
+               $srcTarBall = "$srcPackageName-\${version}.tar.gz";
                $srcAge = '-${age}';
                $topDir = '';
        }
@@ -1479,8 +1549,8 @@ sub mode_etics_packaging {
        $cmd->{default}{packaging} = $rpmprepare;
        $cmd->{default}{packaging} .= "dir=\${workspaceDir}/rpm_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SRPMSLocation} \$dir/{BUILD,RPMS,SOURCES,SRPMS} 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/SOURCES/
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/SOURCES/$srcPackageName-\${version}${srcAge}.src.tar.gz
        rpmbuild -bs --nodeps --define \"_topdir \$dir\" $srcPackageName.spec
        cp -v \$dir/SRPMS/*.src.rpm \${package.SRPMSLocation}/
        rm -rf \$dir";
@@ -1492,8 +1562,8 @@ sub mode_etics_packaging {
                $cmd->{$p}{packaging} = $debprepare;
                $cmd->{$p}{packaging} .= "dir=\${workspaceDir}/dpkg_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SDEBSLocation} \$dir 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/${srcPackageName}_\${version}.orig.tar.gz
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/${srcPackageName}_\${version}.orig.tar.gz
        tar xzf \$dir/${srcPackageName}_\${version}.orig.tar.gz -C \$dir
        cp -rf ${topDir}debian/ \$dir/$srcPackageName-\${version}/
        cd \$dir/$srcPackageName-\${version}
@@ -1564,7 +1634,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}_R_${major}_${minor}_${rev}" : 
+               $conftag = $subsys eq 'gridsite' ? "$project{tag_prefix}{$subsys}${subsys}$project{tag_suffix}{$subsys}_R_${major}_${minor}_${rev}" : 
                        "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}_${age}";
 
                # lowering age for older packaging
@@ -1603,7 +1673,6 @@ sub mode_etics {
        #$cmd_vcs{checkout} = "((test -d jra1mw/.git && (cd jra1mw; git pull)) || (git clone -q http://scientific.zcu.cz/git/jra1mw.git";
        #$cmd_vcs{checkout} .= " && (cd jra1mw; git checkout -b \${tag} --track origin/\${tag})" unless ($conftag eq /HEAD/);
        #$cmd_vcs{checkout} .= ")) && (test -d \${moduleName} || ln -s jra1mw/$cvs_module \${moduleName})";
-       $cmd_vcs{checkout} .= "\n\ttest -f \${packageName}-\${version}-\${age}.src.tar.gz || (ln -s \${moduleName} \${packageName}-\${version}; tar -chf - \${packageName}-\${version} --exclude CVS --exclude .git --exclude .etics | gzip --best > \${packageName}-\${version}-\${age}.src.tar.gz; rm \${packageName}-\${version})";
        $cmd_vcs{tag} = "cvs -d \${vcsroot} tag -R \${tag} ${moduleName}";
 
        $cmd{default}{init} = 'None';
@@ -1695,7 +1764,7 @@ sub mode_etics {
                        $cmd{default}{compile} = "make rpath=$project{local_prefix}/\${libdir}";
                        $cmd{default}{install} = "make install post-install rpath=$project{local_prefix}/\${libdir}";
                }
-               mode_etics_packaging($fmod, \%cmd);
+               mode_etics_packaging($fmod, \%cmd, "make dist\n\t", "make dist\n\t");
        }
 
        my $defprops = '';
index 643c0d9..0ee7679 100644 (file)
@@ -368,9 +368,10 @@ static char *get_op(char *src, edg_wll_QueryOp *op)
        else if ( src[i] == '>' ) *op = EDG_WLL_QUERY_OP_GREATER;
        else if ( src[i] == '<' )
        {
-               if ( (src[i+1] != '\0') && (src[++i] == '>') )
+               if ( (src[i+1] != '\0') && (src[i+1] == '>') ) {
                        *op = EDG_WLL_QUERY_OP_UNEQUAL;
-               else
+                       i++;
+               } else
                        *op = EDG_WLL_QUERY_OP_LESS;
        } 
        else return NULL;
index 9c58a06..92af34f 100644 (file)
 5.1.4-2
 - Module rebuilt
 
+5.1.5-1
+- Showing CREAM data for WMS+CREAM jobs in the job_status example
+- Fixed conditions parsing in the query_ext example
+- Avoid logging unnecessary events when registering sandbox transfers
+
 5.2.0-1
 - Torque jobs support
 - Showing CREAM data for WMS->CREAM jobs
index 806913f..6d29e19 100644 (file)
@@ -252,6 +252,7 @@ install:
 
 clean:
        rm -rvf *.o *.lo .libs lib* *.c *.h *.dox C/ CPP/ test_parse il_test parse.cpp events.tex status.tex
+       rm -rvf ${REPORTS}
        rm -rvf dist ${package}-*.tar.gz
 
 distclean:
index 4be8ff9..f2880c2 100755 (executable)
@@ -54,8 +54,8 @@ 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 nagios/;
+my @nodes = qw/client server logger logger-msg nagios utils client-java doc ws-test db jpprimary jpindex jpclient harvester lb px proxyrenewal canl/;
+my @default_nodes = qw/lb px proxyrenewal nagios canl/;
 my %enable_nodes;
 my %disable_nodes;
 my %default_nodes; @default_nodes{@default_nodes} = (1) x ($#default_nodes + 1);
@@ -126,10 +126,6 @@ my %externs = (
        gridsite => {
                prefix => '/opt/glite'
        },
-       lcas => {
-               prefix => '/opt/glite',
-               pkg => 'lcas'
-       },
        trustmanager => {
                prefix => '/opt/glite'
        },
@@ -492,7 +488,7 @@ sub mode_build {
 
                print MAK "all: @modules\n\n";
                print MAK "stage: ".(join '-stage ', @modules)."-stage\n\n";
-               print MAK "clean check install:\n";
+               print MAK "clean check install dist distcheck rpm deb:\n";
 
                for (@modules) {
                        my $full = full($_);
@@ -524,6 +520,13 @@ sub mode_build {
                        print MAK "$_-stage: $snames\n\tcd $full/$build && \${MAKE} && \${MAKE} stage\n\n";
                }
 
+               print MAK qq/release-rpm: clean dist distcheck rpm
+
+release-deb: clean dist distcheck deb
+
+.PHONY: all stage clean check install dist distcheck rpm deb release-rpm release-deb
+/;
+
                close MAK;
        }
 }
@@ -600,7 +603,7 @@ BEGIN{
        '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:B voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B pkgconfig:B/ ],
+       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads:B voms:B 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/ ],
@@ -874,6 +877,17 @@ for my $ext (keys %deps_aux) {
        'canl' => 'emi-',
 );
 
+%cvs_tag_suffix = (
+       'lb' => '',
+       'jp' => '',
+       'jobid' => '',
+       'lbjp-common' => '',
+       'gridsite' => '-core',
+       'px' => '',
+       'canl' => '',
+);
+
+
 # ==== projects specification ====
 # etics_name ........... ETICS project name
 # conf_prefix .......... ETICS configurations name prefix
@@ -893,6 +907,7 @@ for my $ext (keys %deps_aux) {
                etics_name => 'org.glite',
                conf_prefix => { %cvs_tag_prefix },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour=${globus.thr.flavor} --nothrflavour=${globus.nothr.flavor}',
                local_prefix => '',
                etics_externs => {
@@ -910,7 +925,6 @@ for my $ext (keys %deps_aux) {
                                glue_schema=>'glue-schema',
                                trustmanager=>'org.glite.security.trustmanager',
                                axis=>'axis',
-                               lcas=>'org.glite.security.lcas',
                                gsoapxx=>'-',
                                jdk=>'jdk',
                                voms=>'org.glite.security.voms-api-cpp',
@@ -924,7 +938,7 @@ for my $ext (keys %deps_aux) {
                },
                etics_projects => {
                        vdt=>[qw/globus globus_essentials globus_proxy_utils gpt/],
-                       'org.glite'=>[qw/voms gridsite lcas gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
+                       'org.glite'=>[qw/voms gridsite gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
                },
                etics_locations => {
                        '*' => '',
@@ -963,6 +977,7 @@ for my $ext (keys %deps_aux) {
                        'canl' => 'emi-',
                },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour= --nothrflavour=',
                local_prefix => '/usr',
                etics_externs => {
@@ -980,7 +995,6 @@ for my $ext (keys %deps_aux) {
                                trustmanager=>'emi.java-security.trustmanager',
                                trustmanager_axis=>'emi.java-security.trustmanager-axis',
                                axis=>'axis1.4',
-                               lcas=>'emi.sac.lcas',
                                gsoapxx=>'-',
                                jdk=>'java',
                                voms => 'emi.voms.voms-api',
@@ -1050,7 +1064,7 @@ for my $ext (keys %deps_aux) {
                        },
                },
                etics_projects => {
-                       'emi'=>[qw/voms voms-devel gridsite lcas gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
+                       'emi'=>[qw/voms voms-devel gridsite gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
                },
                etics_locations => {
                        axis => 'axis',
@@ -1214,7 +1228,7 @@ sub get_version
                while (<V>) {
                        chomp;
                        ($major,$minor,$rev) = ($1,$2,$3) if /module\.version\s*=\s*([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)/;
-                       $age = $1 if /module\.age\s*=\s*([[:digit:]]+)/;
+                       $age = $1 if /module\.age\s*=\s*(\S+)/;
                }
                close V;
                $_ = $old_;
@@ -1360,6 +1374,55 @@ top_srcdir = $top_srcdir
 
        print MKINC "gsoap_default_version=".gsoap_version()."\n"  if $need_gsoap;
 
+       print MKINC '
+-include ${top_srcdir}/project/version.properties
+version=${module.version}
+
+${package}-${version}.tar.gz:
+       rm -rf dist
+       for dist in ${SOURCES} ${SOURCES_EXEC} configure project/ChangeLog project/debian.* project/*.spec project/package.* project/version.properties; do \
+               dir=${package}-${version}/`dirname $$dist`; \
+               mkdir -p dist/$$dir || :; \
+               install -m 0644 ${top_srcdir}/$$dist dist/$$dir; \
+       done
+       for dist in ${SOURCES_EXEC} configure; do \
+               chmod +x dist/${package}-${version}/$$dist; \
+       done
+       (cd dist; tar -czf ${package}-${version}.tar.gz ${package}-${version})
+       mv dist/${package}-${version}.tar.gz .
+
+dist: ${package}-${version}.tar.gz
+
+distcheck: ${package}-${version}.tar.gz
+       rm -rf dist
+       mkdir -p dist
+       cp ${package}-${version}.tar.gz dist
+       (cd dist; tar -xzf ${package}-${version}.tar.gz)
+       a=`(cd dist/${package}-${version}; find . -type f | sort)`; \
+       b=`(cd ${top_srcdir}; find . -path ./dist -prune -or -type f -print | sort)`; \
+       echo "$$a" >dist/files-dist; \
+       echo "$$b" | egrep -v "(^./Makefile.inc$$|^./${package}-${version}.tar.gz$$|^./debian|^./[^/]*.spec$$|\.cvsignore|^\./project/changelog$$|/CVS)" >dist/files-original
+       diff -U0 dist/files-dist dist/files-original
+
+rpm: ${package}-${version}.tar.gz
+       dir=dist/rpm_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir/BUILD $$dir/RPMS $$dir/SOURCES $$dir/SRPMS; \
+       cp ${package}-${version}.tar.gz $$dir/SOURCES/${package}-${version}-${module.age}.src.tar.gz && \
+       rpmbuild -bs --nodeps --define "_topdir $$dir" ${package}.spec && \
+       cp -v $$dir/SRPMS/*.src.rpm dist/
+
+deb: ${package}-${version}.tar.gz
+       dir=dist/dpkg_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir; \
+       cp ${package}-${version}.tar.gz $$dir/${package}_${version}.orig.tar.gz && \
+       tar zxf $$dir/${package}_${version}.orig.tar.gz -C $$dir && \
+       cp -rf debian/ $$dir/${package}-${version} && \
+       (cd $$dir/${package}-${version} && dpkg-buildpackage -S -d -nc -us -uc) && \
+       cp -v $$dir/*.tar.gz $$dir/*.dsc dist/
+';
+
        close MKINC;
 
        my $dh;
@@ -1412,43 +1475,48 @@ top_srcdir = $top_srcdir
                }
        }
 
-       print "Creating ${build}debian/\n" if ($debug);;
-
-       `rm -rfv  ${build}debian`;
-       mkdir $build."debian" or die $!;
-       `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
-       `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
-       `rm -f ${build}debian/*.orig`;
-       opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
-       for $_ (readdir $dh) {
-               if (/^debian\.(.*)/) {
-                       `mv ${build}debian/$_ ${build}debian/$1`;
-                       $debian = 1;
+       if ($module and -d $build."debian") {
+               print "Skipping ${build}debian/ (no rewrite in single module mode)\n" if ($debug);
+               `rm -f ${build}debian.*`;
+       } else {
+               print "Creating ${build}debian/\n" if ($debug);;
+
+               `rm -rfv  ${build}debian`;
+               mkdir $build."debian" or die $!;
+               `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
+               `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
+               `rm -f ${build}debian/*.orig`;
+               opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
+               for $_ (readdir $dh) {
+                       if (/^debian\.(.*)/) {
+                               `mv ${build}debian/$_ ${build}debian/$1`;
+                               $debian = 1;
+                       }
                }
-       }
-       closedir $dh;
+               closedir $dh;
 
-       if ($debian) {
-               my ($dir, $file);
+               if ($debian) {
+                       my ($dir, $file);
 
-               chmod 0755, "${build}debian/rules";
-               $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
-               $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
-               $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
-               $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
-               $file="${build}debian/changelog"; if (not -f $file) {
-                       open FH, ">$file" or die $!;
-                       print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
+                       chmod 0755, "${build}debian/rules";
+                       $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
+                       $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
+                       $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
+                       $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
+                       $file="${build}debian/changelog"; if (not -f $file) {
+                               open FH, ">$file" or die $!;
+                               print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
 
   * Automatically generated package
 
  -- $package{maintainer}  $debdate
 };
-                       close FH;
-               }
+                               close FH;
+                       }
 
-       } else {
-               `rm -rf ${build}debian`;
+               } else {
+                       `rm -rf ${build}debian`;
+               }
        }
 }
 
@@ -1465,11 +1533,13 @@ sub mode_etics_packaging {
        if ($fmod eq 'gridsite.core') {
                $workspaceDir = '..';
                $srcPackageName = 'gridsite';
+               $srcTarBall = "../$srcPackageName-\${version}.src.tar.gz";
                $srcAge = '';
                $topDir = '../';
        } else {
                $workspaceDir = '${workspaceDir}';
                $srcPackageName = '${packageName}';
+               $srcTarBall = "$srcPackageName-\${version}.tar.gz";
                $srcAge = '-${age}';
                $topDir = '';
        }
@@ -1479,8 +1549,8 @@ sub mode_etics_packaging {
        $cmd->{default}{packaging} = $rpmprepare;
        $cmd->{default}{packaging} .= "dir=\${workspaceDir}/rpm_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SRPMSLocation} \$dir/{BUILD,RPMS,SOURCES,SRPMS} 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/SOURCES/
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/SOURCES/$srcPackageName-\${version}${srcAge}.src.tar.gz
        rpmbuild -bs --nodeps --define \"_topdir \$dir\" $srcPackageName.spec
        cp -v \$dir/SRPMS/*.src.rpm \${package.SRPMSLocation}/
        rm -rf \$dir";
@@ -1492,8 +1562,8 @@ sub mode_etics_packaging {
                $cmd->{$p}{packaging} = $debprepare;
                $cmd->{$p}{packaging} .= "dir=\${workspaceDir}/dpkg_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SDEBSLocation} \$dir 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/${srcPackageName}_\${version}.orig.tar.gz
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/${srcPackageName}_\${version}.orig.tar.gz
        tar xzf \$dir/${srcPackageName}_\${version}.orig.tar.gz -C \$dir
        cp -rf ${topDir}debian/ \$dir/$srcPackageName-\${version}/
        cd \$dir/$srcPackageName-\${version}
@@ -1564,7 +1634,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}_R_${major}_${minor}_${rev}" : 
+               $conftag = $subsys eq 'gridsite' ? "$project{tag_prefix}{$subsys}${subsys}$project{tag_suffix}{$subsys}_R_${major}_${minor}_${rev}" : 
                        "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}_${age}";
 
                # lowering age for older packaging
@@ -1603,7 +1673,6 @@ sub mode_etics {
        #$cmd_vcs{checkout} = "((test -d jra1mw/.git && (cd jra1mw; git pull)) || (git clone -q http://scientific.zcu.cz/git/jra1mw.git";
        #$cmd_vcs{checkout} .= " && (cd jra1mw; git checkout -b \${tag} --track origin/\${tag})" unless ($conftag eq /HEAD/);
        #$cmd_vcs{checkout} .= ")) && (test -d \${moduleName} || ln -s jra1mw/$cvs_module \${moduleName})";
-       $cmd_vcs{checkout} .= "\n\ttest -f \${packageName}-\${version}-\${age}.src.tar.gz || (ln -s \${moduleName} \${packageName}-\${version}; tar -chf - \${packageName}-\${version} --exclude CVS --exclude .git --exclude .etics | gzip --best > \${packageName}-\${version}-\${age}.src.tar.gz; rm \${packageName}-\${version})";
        $cmd_vcs{tag} = "cvs -d \${vcsroot} tag -R \${tag} ${moduleName}";
 
        $cmd{default}{init} = 'None';
@@ -1695,7 +1764,7 @@ sub mode_etics {
                        $cmd{default}{compile} = "make rpath=$project{local_prefix}/\${libdir}";
                        $cmd{default}{install} = "make install post-install rpath=$project{local_prefix}/\${libdir}";
                }
-               mode_etics_packaging($fmod, \%cmd);
+               mode_etics_packaging($fmod, \%cmd, "make dist\n\t", "make dist\n\t");
        }
 
        my $defprops = '';
index 6c1615e..47a2969 100644 (file)
 8.1.3-3
 - Module rebuilt
 
+8.1.4-1
+- Missing files in clean targets added
+- Handling seqnumbers for jobs going through CREAM
+
 8.2.0-1
 - Merge from branch_3_2
 - Torque jobs support
index e457931..f2880c2 100755 (executable)
@@ -54,8 +54,8 @@ 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 nagios/;
+my @nodes = qw/client server logger logger-msg nagios utils client-java doc ws-test db jpprimary jpindex jpclient harvester lb px proxyrenewal canl/;
+my @default_nodes = qw/lb px proxyrenewal nagios canl/;
 my %enable_nodes;
 my %disable_nodes;
 my %default_nodes; @default_nodes{@default_nodes} = (1) x ($#default_nodes + 1);
@@ -126,10 +126,6 @@ my %externs = (
        gridsite => {
                prefix => '/opt/glite'
        },
-       lcas => {
-               prefix => '/opt/glite',
-               pkg => 'lcas'
-       },
        trustmanager => {
                prefix => '/opt/glite'
        },
@@ -492,7 +488,7 @@ sub mode_build {
 
                print MAK "all: @modules\n\n";
                print MAK "stage: ".(join '-stage ', @modules)."-stage\n\n";
-               print MAK "clean check install:\n";
+               print MAK "clean check install dist distcheck rpm deb:\n";
 
                for (@modules) {
                        my $full = full($_);
@@ -524,6 +520,13 @@ sub mode_build {
                        print MAK "$_-stage: $snames\n\tcd $full/$build && \${MAKE} && \${MAKE} stage\n\n";
                }
 
+               print MAK qq/release-rpm: clean dist distcheck rpm
+
+release-deb: clean dist distcheck deb
+
+.PHONY: all stage clean check install dist distcheck rpm deb release-rpm release-deb
+/;
+
                close MAK;
        }
 }
@@ -600,7 +603,7 @@ BEGIN{
        '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:B voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B pkgconfig:B/ ],
+       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads:B voms:B 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/ ],
@@ -874,6 +877,17 @@ for my $ext (keys %deps_aux) {
        'canl' => 'emi-',
 );
 
+%cvs_tag_suffix = (
+       'lb' => '',
+       'jp' => '',
+       'jobid' => '',
+       'lbjp-common' => '',
+       'gridsite' => '-core',
+       'px' => '',
+       'canl' => '',
+);
+
+
 # ==== projects specification ====
 # etics_name ........... ETICS project name
 # conf_prefix .......... ETICS configurations name prefix
@@ -893,6 +907,7 @@ for my $ext (keys %deps_aux) {
                etics_name => 'org.glite',
                conf_prefix => { %cvs_tag_prefix },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour=${globus.thr.flavor} --nothrflavour=${globus.nothr.flavor}',
                local_prefix => '',
                etics_externs => {
@@ -910,7 +925,6 @@ for my $ext (keys %deps_aux) {
                                glue_schema=>'glue-schema',
                                trustmanager=>'org.glite.security.trustmanager',
                                axis=>'axis',
-                               lcas=>'org.glite.security.lcas',
                                gsoapxx=>'-',
                                jdk=>'jdk',
                                voms=>'org.glite.security.voms-api-cpp',
@@ -924,7 +938,7 @@ for my $ext (keys %deps_aux) {
                },
                etics_projects => {
                        vdt=>[qw/globus globus_essentials globus_proxy_utils gpt/],
-                       'org.glite'=>[qw/voms gridsite lcas gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
+                       'org.glite'=>[qw/voms gridsite gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
                },
                etics_locations => {
                        '*' => '',
@@ -963,6 +977,7 @@ for my $ext (keys %deps_aux) {
                        'canl' => 'emi-',
                },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour= --nothrflavour=',
                local_prefix => '/usr',
                etics_externs => {
@@ -980,7 +995,6 @@ for my $ext (keys %deps_aux) {
                                trustmanager=>'emi.java-security.trustmanager',
                                trustmanager_axis=>'emi.java-security.trustmanager-axis',
                                axis=>'axis1.4',
-                               lcas=>'emi.sac.lcas',
                                gsoapxx=>'-',
                                jdk=>'java',
                                voms => 'emi.voms.voms-api',
@@ -1050,7 +1064,7 @@ for my $ext (keys %deps_aux) {
                        },
                },
                etics_projects => {
-                       'emi'=>[qw/voms voms-devel gridsite lcas gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
+                       'emi'=>[qw/voms voms-devel gridsite gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
                },
                etics_locations => {
                        axis => 'axis',
@@ -1214,7 +1228,7 @@ sub get_version
                while (<V>) {
                        chomp;
                        ($major,$minor,$rev) = ($1,$2,$3) if /module\.version\s*=\s*([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)/;
-                       $age = $1 if /module\.age\s*=\s*([[:digit:]]+)/;
+                       $age = $1 if /module\.age\s*=\s*(\S+)/;
                }
                close V;
                $_ = $old_;
@@ -1360,6 +1374,55 @@ top_srcdir = $top_srcdir
 
        print MKINC "gsoap_default_version=".gsoap_version()."\n"  if $need_gsoap;
 
+       print MKINC '
+-include ${top_srcdir}/project/version.properties
+version=${module.version}
+
+${package}-${version}.tar.gz:
+       rm -rf dist
+       for dist in ${SOURCES} ${SOURCES_EXEC} configure project/ChangeLog project/debian.* project/*.spec project/package.* project/version.properties; do \
+               dir=${package}-${version}/`dirname $$dist`; \
+               mkdir -p dist/$$dir || :; \
+               install -m 0644 ${top_srcdir}/$$dist dist/$$dir; \
+       done
+       for dist in ${SOURCES_EXEC} configure; do \
+               chmod +x dist/${package}-${version}/$$dist; \
+       done
+       (cd dist; tar -czf ${package}-${version}.tar.gz ${package}-${version})
+       mv dist/${package}-${version}.tar.gz .
+
+dist: ${package}-${version}.tar.gz
+
+distcheck: ${package}-${version}.tar.gz
+       rm -rf dist
+       mkdir -p dist
+       cp ${package}-${version}.tar.gz dist
+       (cd dist; tar -xzf ${package}-${version}.tar.gz)
+       a=`(cd dist/${package}-${version}; find . -type f | sort)`; \
+       b=`(cd ${top_srcdir}; find . -path ./dist -prune -or -type f -print | sort)`; \
+       echo "$$a" >dist/files-dist; \
+       echo "$$b" | egrep -v "(^./Makefile.inc$$|^./${package}-${version}.tar.gz$$|^./debian|^./[^/]*.spec$$|\.cvsignore|^\./project/changelog$$|/CVS)" >dist/files-original
+       diff -U0 dist/files-dist dist/files-original
+
+rpm: ${package}-${version}.tar.gz
+       dir=dist/rpm_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir/BUILD $$dir/RPMS $$dir/SOURCES $$dir/SRPMS; \
+       cp ${package}-${version}.tar.gz $$dir/SOURCES/${package}-${version}-${module.age}.src.tar.gz && \
+       rpmbuild -bs --nodeps --define "_topdir $$dir" ${package}.spec && \
+       cp -v $$dir/SRPMS/*.src.rpm dist/
+
+deb: ${package}-${version}.tar.gz
+       dir=dist/dpkg_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir; \
+       cp ${package}-${version}.tar.gz $$dir/${package}_${version}.orig.tar.gz && \
+       tar zxf $$dir/${package}_${version}.orig.tar.gz -C $$dir && \
+       cp -rf debian/ $$dir/${package}-${version} && \
+       (cd $$dir/${package}-${version} && dpkg-buildpackage -S -d -nc -us -uc) && \
+       cp -v $$dir/*.tar.gz $$dir/*.dsc dist/
+';
+
        close MKINC;
 
        my $dh;
@@ -1412,43 +1475,48 @@ top_srcdir = $top_srcdir
                }
        }
 
-       print "Creating ${build}debian/\n" if ($debug);;
-
-       `rm -rfv  ${build}debian`;
-       mkdir $build."debian" or die $!;
-       `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
-       `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
-       `rm -f ${build}debian/*.orig`;
-       opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
-       for $_ (readdir $dh) {
-               if (/^debian\.(.*)/) {
-                       `mv ${build}debian/$_ ${build}debian/$1`;
-                       $debian = 1;
+       if ($module and -d $build."debian") {
+               print "Skipping ${build}debian/ (no rewrite in single module mode)\n" if ($debug);
+               `rm -f ${build}debian.*`;
+       } else {
+               print "Creating ${build}debian/\n" if ($debug);;
+
+               `rm -rfv  ${build}debian`;
+               mkdir $build."debian" or die $!;
+               `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
+               `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
+               `rm -f ${build}debian/*.orig`;
+               opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
+               for $_ (readdir $dh) {
+                       if (/^debian\.(.*)/) {
+                               `mv ${build}debian/$_ ${build}debian/$1`;
+                               $debian = 1;
+                       }
                }
-       }
-       closedir $dh;
+               closedir $dh;
 
-       if ($debian) {
-               my ($dir, $file);
+               if ($debian) {
+                       my ($dir, $file);
 
-               chmod 0755, "${build}debian/rules";
-               $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
-               $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
-               $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
-               $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
-               $file="${build}debian/changelog"; if (not -f $file) {
-                       open FH, ">$file" or die $!;
-                       print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
+                       chmod 0755, "${build}debian/rules";
+                       $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
+                       $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
+                       $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
+                       $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
+                       $file="${build}debian/changelog"; if (not -f $file) {
+                               open FH, ">$file" or die $!;
+                               print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
 
   * Automatically generated package
 
  -- $package{maintainer}  $debdate
 };
-                       close FH;
-               }
+                               close FH;
+                       }
 
-       } else {
-               `rm -rf ${build}debian`;
+               } else {
+                       `rm -rf ${build}debian`;
+               }
        }
 }
 
@@ -1460,16 +1528,18 @@ sub mode_etics_packaging {
        my ($workspaceDir, $srcPackageName, $srcAge, $topDir);
 
        # old-school packaging by ETICS for EMI-1
-       if ($project eq 'emi' and $project_version == 1) { return; }
+       if ($project eq 'emi' and $project_version == 1 and $fmod ne 'gridsite.core') { return; }
 
        if ($fmod eq 'gridsite.core') {
                $workspaceDir = '..';
                $srcPackageName = 'gridsite';
+               $srcTarBall = "../$srcPackageName-\${version}.src.tar.gz";
                $srcAge = '';
                $topDir = '../';
        } else {
                $workspaceDir = '${workspaceDir}';
                $srcPackageName = '${packageName}';
+               $srcTarBall = "$srcPackageName-\${version}.tar.gz";
                $srcAge = '-${age}';
                $topDir = '';
        }
@@ -1479,8 +1549,8 @@ sub mode_etics_packaging {
        $cmd->{default}{packaging} = $rpmprepare;
        $cmd->{default}{packaging} .= "dir=\${workspaceDir}/rpm_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SRPMSLocation} \$dir/{BUILD,RPMS,SOURCES,SRPMS} 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/SOURCES/
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/SOURCES/$srcPackageName-\${version}${srcAge}.src.tar.gz
        rpmbuild -bs --nodeps --define \"_topdir \$dir\" $srcPackageName.spec
        cp -v \$dir/SRPMS/*.src.rpm \${package.SRPMSLocation}/
        rm -rf \$dir";
@@ -1492,8 +1562,8 @@ sub mode_etics_packaging {
                $cmd->{$p}{packaging} = $debprepare;
                $cmd->{$p}{packaging} .= "dir=\${workspaceDir}/dpkg_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SDEBSLocation} \$dir 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/${srcPackageName}_\${version}.orig.tar.gz
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/${srcPackageName}_\${version}.orig.tar.gz
        tar xzf \$dir/${srcPackageName}_\${version}.orig.tar.gz -C \$dir
        cp -rf ${topDir}debian/ \$dir/$srcPackageName-\${version}/
        cd \$dir/$srcPackageName-\${version}
@@ -1564,7 +1634,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}_R_${major}_${minor}_${rev}" : 
+               $conftag = $subsys eq 'gridsite' ? "$project{tag_prefix}{$subsys}${subsys}$project{tag_suffix}{$subsys}_R_${major}_${minor}_${rev}" : 
                        "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}_${age}";
 
                # lowering age for older packaging
@@ -1603,7 +1673,6 @@ sub mode_etics {
        #$cmd_vcs{checkout} = "((test -d jra1mw/.git && (cd jra1mw; git pull)) || (git clone -q http://scientific.zcu.cz/git/jra1mw.git";
        #$cmd_vcs{checkout} .= " && (cd jra1mw; git checkout -b \${tag} --track origin/\${tag})" unless ($conftag eq /HEAD/);
        #$cmd_vcs{checkout} .= ")) && (test -d \${moduleName} || ln -s jra1mw/$cvs_module \${moduleName})";
-       $cmd_vcs{checkout} .= "\n\ttest -f \${packageName}-\${version}-\${age}.src.tar.gz || (ln -s \${moduleName} \${packageName}-\${version}; tar -chf - \${packageName}-\${version} --exclude CVS --exclude .git --exclude .etics | gzip --best > \${packageName}-\${version}-\${age}.src.tar.gz; rm \${packageName}-\${version})";
        $cmd_vcs{tag} = "cvs -d \${vcsroot} tag -R \${tag} ${moduleName}";
 
        $cmd{default}{init} = 'None';
@@ -1695,7 +1764,7 @@ sub mode_etics {
                        $cmd{default}{compile} = "make rpath=$project{local_prefix}/\${libdir}";
                        $cmd{default}{install} = "make install post-install rpath=$project{local_prefix}/\${libdir}";
                }
-               mode_etics_packaging($fmod, \%cmd);
+               mode_etics_packaging($fmod, \%cmd, "make dist\n\t", "make dist\n\t");
        }
 
        my $defprops = '';
index 0e0f5a9..4a51297 100644 (file)
 1.3.4-1
 - CREAM and SB Transfers documentation
 
+1.3.5-1
+- Added dependency on LaTex for Debian and Fedora.
+- New functionality tests described
+- L&B 2.0 not to be advertised as stable release anymore
+
 1.4.0-1
 - Merge from branch_3_2
 
index 3bc588b..5daaedf 100644 (file)
@@ -79,6 +79,10 @@ Besides pure System Functionality Tests, this list also includes In-the-Wild tes
 \hline
 {\tt lb-test-notif-keeper.sh} & Test the \texttt{notif-keeper} script \\
 \hline
+{\tt lb-test-dump-load.sh} & Test the dump (backup) and load (restore) procedure \\
+\hline
+{\tt lb-test-collections.sh} & A placeholder for collection-specific regression tests \\
+\hline
 \end{tabularx}
 
 \subsubsection{Event logging examples}
@@ -609,6 +613,44 @@ do nothing (i.e. nothing was left in the database).
 
 \result\ All information was succesfully downloaded and matched expectations.
 
+\subsubsection{Dump \& Load Events}
+\label{dumpload}
+\req\ All \LB\ services configured and running.
+
+\what
+\begin{enumerate}
+\item Register tests jobs of all applicable types, including collections and DAGs
+\item Generate events to change the state of all types of test jobs. At least one subjob in any type of collection must remain free of events to test embryonic registration
+\item Check all those jobs are in their expected states.
+\item Dump events for all test jobs
+\item Purge all test jobs from the \LB server
+\item Test that all test jobs were actually purged (status query must return \texttt{EIDRM})
+\item Load dumped events
+\item Check that all test jobs are in their expected states as before
+\end{enumerate}
+
+\how\ \ctblb{lb-test-dump-load.sh}
+
+\result\ All jobs were first purged and then restored to their previous states.
+
+\note\ The test registers multiple jobs for each type to reduce the probability of an accidental positive result (could be caused by random event ordering).
+
+\note\ The probe includes artificial delays (about 12\,s worth) but also performs a lot of action. The test takes approx. 150\,s to finish.
+
+\subsubsection{Collection-specific tests}
+\label{dumpload}
+\req\ All \LB\ services configured and running.
+
+\what
+\begin{enumerate}
+\item Register a collection
+\item Try querying for jobs by parent ID only
+\end{enumerate}
+
+\how\ \ctblb{lb-test-collections.sh}
+
+\result\ Children were returned.
+
 
 \section{LB ``In the Wild''---Real-World WMS Test}
 \req\ All \LB services running, working grid infrastructure accessible (including permissions). 
index f7c403a..683064e 100644 (file)
@@ -49,11 +49,10 @@ The complete \LB Documentation consists of the following parts:
 \item \LBver{3.2}: included in the EMI-2 \emph{Matterhorn} release
 \item \LBver{3.1}: an update for the EMI-1 \emph{Kebnekaise} release
 \item \LBver{3.0}: included in the EMI-1 \emph{Kebnekaise} release
-\item \LBver{2.1}: replacement for \LBver{2.0} in gLite 3.2,
-\item \LBver{2.0}: current stable version, in production as part of gLite 3.2,
-\item \LBver{1.x}: old stable version, in production as part of gLite 3.1.
+\item \LBver{2.1}: replacement for \LBver{2.0} in gLite 3.2
+\item \LBver{2.0}: included in gLite 3.2 release
+\item \LBver{1.x}: included in gLite 3.1 release
 \end{itemize}
-\textbf{The older version of \LB that appeared in gLite 3.0 became obsolete and is not maintained anymore.}
 
 \textbf{\LB packages can be obtained from two distinguished sources:}
 
index 6857be9..f2880c2 100755 (executable)
@@ -54,8 +54,8 @@ 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 nagios/;
+my @nodes = qw/client server logger logger-msg nagios utils client-java doc ws-test db jpprimary jpindex jpclient harvester lb px proxyrenewal canl/;
+my @default_nodes = qw/lb px proxyrenewal nagios canl/;
 my %enable_nodes;
 my %disable_nodes;
 my %default_nodes; @default_nodes{@default_nodes} = (1) x ($#default_nodes + 1);
@@ -126,10 +126,6 @@ my %externs = (
        gridsite => {
                prefix => '/opt/glite'
        },
-       lcas => {
-               prefix => '/opt/glite',
-               pkg => 'lcas'
-       },
        trustmanager => {
                prefix => '/opt/glite'
        },
@@ -285,6 +281,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}{$_};
@@ -489,7 +488,7 @@ sub mode_build {
 
                print MAK "all: @modules\n\n";
                print MAK "stage: ".(join '-stage ', @modules)."-stage\n\n";
-               print MAK "clean check install:\n";
+               print MAK "clean check install dist distcheck rpm deb:\n";
 
                for (@modules) {
                        my $full = full($_);
@@ -521,6 +520,13 @@ sub mode_build {
                        print MAK "$_-stage: $snames\n\tcd $full/$build && \${MAKE} && \${MAKE} stage\n\n";
                }
 
+               print MAK qq/release-rpm: clean dist distcheck rpm
+
+release-deb: clean dist distcheck deb
+
+.PHONY: all stage clean check install dist distcheck rpm deb release-rpm release-deb
+/;
+
                close MAK;
        }
 }
@@ -597,7 +603,7 @@ BEGIN{
        '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:B voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B pkgconfig:B/ ],
+       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads:B voms:B 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/ ],
@@ -625,6 +631,7 @@ BEGIN{
        '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/ ],
@@ -751,6 +758,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/ ],
@@ -869,6 +877,17 @@ for my $ext (keys %deps_aux) {
        'canl' => 'emi-',
 );
 
+%cvs_tag_suffix = (
+       'lb' => '',
+       'jp' => '',
+       'jobid' => '',
+       'lbjp-common' => '',
+       'gridsite' => '-core',
+       'px' => '',
+       'canl' => '',
+);
+
+
 # ==== projects specification ====
 # etics_name ........... ETICS project name
 # conf_prefix .......... ETICS configurations name prefix
@@ -888,6 +907,7 @@ for my $ext (keys %deps_aux) {
                etics_name => 'org.glite',
                conf_prefix => { %cvs_tag_prefix },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour=${globus.thr.flavor} --nothrflavour=${globus.nothr.flavor}',
                local_prefix => '',
                etics_externs => {
@@ -905,7 +925,6 @@ for my $ext (keys %deps_aux) {
                                glue_schema=>'glue-schema',
                                trustmanager=>'org.glite.security.trustmanager',
                                axis=>'axis',
-                               lcas=>'org.glite.security.lcas',
                                gsoapxx=>'-',
                                jdk=>'jdk',
                                voms=>'org.glite.security.voms-api-cpp',
@@ -919,7 +938,7 @@ for my $ext (keys %deps_aux) {
                },
                etics_projects => {
                        vdt=>[qw/globus globus_essentials globus_proxy_utils gpt/],
-                       'org.glite'=>[qw/voms gridsite lcas gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
+                       'org.glite'=>[qw/voms gridsite gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
                },
                etics_locations => {
                        '*' => '',
@@ -958,6 +977,7 @@ for my $ext (keys %deps_aux) {
                        'canl' => 'emi-',
                },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour= --nothrflavour=',
                local_prefix => '/usr',
                etics_externs => {
@@ -975,7 +995,6 @@ for my $ext (keys %deps_aux) {
                                trustmanager=>'emi.java-security.trustmanager',
                                trustmanager_axis=>'emi.java-security.trustmanager-axis',
                                axis=>'axis1.4',
-                               lcas=>'emi.sac.lcas',
                                gsoapxx=>'-',
                                jdk=>'java',
                                voms => 'emi.voms.voms-api',
@@ -1045,7 +1064,7 @@ for my $ext (keys %deps_aux) {
                        },
                },
                etics_projects => {
-                       'emi'=>[qw/voms voms-devel gridsite lcas gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
+                       'emi'=>[qw/voms voms-devel gridsite gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
                },
                etics_locations => {
                        axis => 'axis',
@@ -1209,7 +1228,7 @@ sub get_version
                while (<V>) {
                        chomp;
                        ($major,$minor,$rev) = ($1,$2,$3) if /module\.version\s*=\s*([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)/;
-                       $age = $1 if /module\.age\s*=\s*([[:digit:]]+)/;
+                       $age = $1 if /module\.age\s*=\s*(\S+)/;
                }
                close V;
                $_ = $old_;
@@ -1355,6 +1374,55 @@ top_srcdir = $top_srcdir
 
        print MKINC "gsoap_default_version=".gsoap_version()."\n"  if $need_gsoap;
 
+       print MKINC '
+-include ${top_srcdir}/project/version.properties
+version=${module.version}
+
+${package}-${version}.tar.gz:
+       rm -rf dist
+       for dist in ${SOURCES} ${SOURCES_EXEC} configure project/ChangeLog project/debian.* project/*.spec project/package.* project/version.properties; do \
+               dir=${package}-${version}/`dirname $$dist`; \
+               mkdir -p dist/$$dir || :; \
+               install -m 0644 ${top_srcdir}/$$dist dist/$$dir; \
+       done
+       for dist in ${SOURCES_EXEC} configure; do \
+               chmod +x dist/${package}-${version}/$$dist; \
+       done
+       (cd dist; tar -czf ${package}-${version}.tar.gz ${package}-${version})
+       mv dist/${package}-${version}.tar.gz .
+
+dist: ${package}-${version}.tar.gz
+
+distcheck: ${package}-${version}.tar.gz
+       rm -rf dist
+       mkdir -p dist
+       cp ${package}-${version}.tar.gz dist
+       (cd dist; tar -xzf ${package}-${version}.tar.gz)
+       a=`(cd dist/${package}-${version}; find . -type f | sort)`; \
+       b=`(cd ${top_srcdir}; find . -path ./dist -prune -or -type f -print | sort)`; \
+       echo "$$a" >dist/files-dist; \
+       echo "$$b" | egrep -v "(^./Makefile.inc$$|^./${package}-${version}.tar.gz$$|^./debian|^./[^/]*.spec$$|\.cvsignore|^\./project/changelog$$|/CVS)" >dist/files-original
+       diff -U0 dist/files-dist dist/files-original
+
+rpm: ${package}-${version}.tar.gz
+       dir=dist/rpm_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir/BUILD $$dir/RPMS $$dir/SOURCES $$dir/SRPMS; \
+       cp ${package}-${version}.tar.gz $$dir/SOURCES/${package}-${version}-${module.age}.src.tar.gz && \
+       rpmbuild -bs --nodeps --define "_topdir $$dir" ${package}.spec && \
+       cp -v $$dir/SRPMS/*.src.rpm dist/
+
+deb: ${package}-${version}.tar.gz
+       dir=dist/dpkg_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir; \
+       cp ${package}-${version}.tar.gz $$dir/${package}_${version}.orig.tar.gz && \
+       tar zxf $$dir/${package}_${version}.orig.tar.gz -C $$dir && \
+       cp -rf debian/ $$dir/${package}-${version} && \
+       (cd $$dir/${package}-${version} && dpkg-buildpackage -S -d -nc -us -uc) && \
+       cp -v $$dir/*.tar.gz $$dir/*.dsc dist/
+';
+
        close MKINC;
 
        my $dh;
@@ -1407,43 +1475,48 @@ top_srcdir = $top_srcdir
                }
        }
 
-       print "Creating ${build}debian/\n" if ($debug);;
-
-       `rm -rfv  ${build}debian`;
-       mkdir $build."debian" or die $!;
-       `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
-       `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
-       `rm -f ${build}debian/*.orig`;
-       opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
-       for $_ (readdir $dh) {
-               if (/^debian\.(.*)/) {
-                       `mv ${build}debian/$_ ${build}debian/$1`;
-                       $debian = 1;
+       if ($module and -d $build."debian") {
+               print "Skipping ${build}debian/ (no rewrite in single module mode)\n" if ($debug);
+               `rm -f ${build}debian.*`;
+       } else {
+               print "Creating ${build}debian/\n" if ($debug);;
+
+               `rm -rfv  ${build}debian`;
+               mkdir $build."debian" or die $!;
+               `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
+               `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
+               `rm -f ${build}debian/*.orig`;
+               opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
+               for $_ (readdir $dh) {
+                       if (/^debian\.(.*)/) {
+                               `mv ${build}debian/$_ ${build}debian/$1`;
+                               $debian = 1;
+                       }
                }
-       }
-       closedir $dh;
+               closedir $dh;
 
-       if ($debian) {
-               my ($dir, $file);
+               if ($debian) {
+                       my ($dir, $file);
 
-               chmod 0755, "${build}debian/rules";
-               $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
-               $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
-               $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
-               $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
-               $file="${build}debian/changelog"; if (not -f $file) {
-                       open FH, ">$file" or die $!;
-                       print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
+                       chmod 0755, "${build}debian/rules";
+                       $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
+                       $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
+                       $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
+                       $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
+                       $file="${build}debian/changelog"; if (not -f $file) {
+                               open FH, ">$file" or die $!;
+                               print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
 
   * Automatically generated package
 
  -- $package{maintainer}  $debdate
 };
-                       close FH;
-               }
+                               close FH;
+                       }
 
-       } else {
-               `rm -rf ${build}debian`;
+               } else {
+                       `rm -rf ${build}debian`;
+               }
        }
 }
 
@@ -1455,16 +1528,18 @@ sub mode_etics_packaging {
        my ($workspaceDir, $srcPackageName, $srcAge, $topDir);
 
        # old-school packaging by ETICS for EMI-1
-       if ($project eq 'emi' and $project_version == 1) { return; }
+       if ($project eq 'emi' and $project_version == 1 and $fmod ne 'gridsite.core') { return; }
 
        if ($fmod eq 'gridsite.core') {
                $workspaceDir = '..';
                $srcPackageName = 'gridsite';
+               $srcTarBall = "../$srcPackageName-\${version}.src.tar.gz";
                $srcAge = '';
                $topDir = '../';
        } else {
                $workspaceDir = '${workspaceDir}';
                $srcPackageName = '${packageName}';
+               $srcTarBall = "$srcPackageName-\${version}.tar.gz";
                $srcAge = '-${age}';
                $topDir = '';
        }
@@ -1474,8 +1549,8 @@ sub mode_etics_packaging {
        $cmd->{default}{packaging} = $rpmprepare;
        $cmd->{default}{packaging} .= "dir=\${workspaceDir}/rpm_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SRPMSLocation} \$dir/{BUILD,RPMS,SOURCES,SRPMS} 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/SOURCES/
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/SOURCES/$srcPackageName-\${version}${srcAge}.src.tar.gz
        rpmbuild -bs --nodeps --define \"_topdir \$dir\" $srcPackageName.spec
        cp -v \$dir/SRPMS/*.src.rpm \${package.SRPMSLocation}/
        rm -rf \$dir";
@@ -1487,8 +1562,8 @@ sub mode_etics_packaging {
                $cmd->{$p}{packaging} = $debprepare;
                $cmd->{$p}{packaging} .= "dir=\${workspaceDir}/dpkg_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SDEBSLocation} \$dir 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/${srcPackageName}_\${version}.orig.tar.gz
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/${srcPackageName}_\${version}.orig.tar.gz
        tar xzf \$dir/${srcPackageName}_\${version}.orig.tar.gz -C \$dir
        cp -rf ${topDir}debian/ \$dir/$srcPackageName-\${version}/
        cd \$dir/$srcPackageName-\${version}
@@ -1559,7 +1634,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}$project{tag_suffix}{$subsys}_R_${major}_${minor}_${rev}" : 
                        "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}_${age}";
 
                # lowering age for older packaging
@@ -1598,7 +1673,6 @@ sub mode_etics {
        #$cmd_vcs{checkout} = "((test -d jra1mw/.git && (cd jra1mw; git pull)) || (git clone -q http://scientific.zcu.cz/git/jra1mw.git";
        #$cmd_vcs{checkout} .= " && (cd jra1mw; git checkout -b \${tag} --track origin/\${tag})" unless ($conftag eq /HEAD/);
        #$cmd_vcs{checkout} .= ")) && (test -d \${moduleName} || ln -s jra1mw/$cvs_module \${moduleName})";
-       $cmd_vcs{checkout} .= "\n\ttest -f \${packageName}-\${version}-\${age}.src.tar.gz || (ln -s \${moduleName} \${packageName}-\${version}; tar -chf - \${packageName}-\${version} --exclude CVS --exclude .git --exclude .etics | gzip --best > \${packageName}-\${version}-\${age}.src.tar.gz; rm \${packageName}-\${version})";
        $cmd_vcs{tag} = "cvs -d \${vcsroot} tag -R \${tag} ${moduleName}";
 
        $cmd{default}{init} = 'None';
@@ -1634,7 +1708,7 @@ sub mode_etics {
                        }
 
                        $cmd{default}{configure} = "cat > Makefile.inc <<EOF
-       project = $project
+       project = $project$project_version
        top_srcdir = ..
        $flags
        EOF";
@@ -1690,7 +1764,7 @@ sub mode_etics {
                        $cmd{default}{compile} = "make rpath=$project{local_prefix}/\${libdir}";
                        $cmd{default}{install} = "make install post-install rpath=$project{local_prefix}/\${libdir}";
                }
-               mode_etics_packaging($fmod, \%cmd);
+               mode_etics_packaging($fmod, \%cmd, "make dist\n\t", "make dist\n\t");
        }
 
        my $defprops = '';
index 0cc7819..b5d29ca 100644 (file)
@@ -12,7 +12,7 @@ DM-Upload-Allowed: yes
 Package: emi-lb
 Section: net
 Architecture: any
-Depends: ${misc:Depends}, bdii, emi-version, fetch-crl, glite-lb-client-java, glite-lb-client-progs, glite-lb-doc, glite-lb-harvester, glite-lb-logger, glite-lb-logger-msg, glite-lb-server, glite-lb-utils, glite-lb-ws-test, glite-lb-yaim, glue-schema
-Recommends: glite-info-provider-service
+Depends: ${misc:Depends}, bdii, emi-version, fetch-crl, glite-lb-client-progs, glite-lb-doc, glite-lb-harvester, glite-lb-logger, glite-lb-logger-msg, glite-lb-server, glite-lb-utils, glite-lb-ws-test, glue-schema
+Recommends: glite-info-provider-service glite-lb-client-java glite-lb-yaim
 Description: @SUMMARY@
 @DEBIAN_DESCRIPTION@
index 066e057..f64bcc6 100644 (file)
@@ -9,7 +9,9 @@ Group: System Environment/Base
 Requires: bdii
 Requires: emi-version
 Requires: fetch-crl
+%if ! 0%{?fedora}
 Requires: glite-lb-client-java
+%endif
 Requires: glite-lb-client-progs
 Requires: glite-lb-doc
 Requires: glite-lb-harvester
index e457931..f2880c2 100755 (executable)
@@ -54,8 +54,8 @@ 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 nagios/;
+my @nodes = qw/client server logger logger-msg nagios utils client-java doc ws-test db jpprimary jpindex jpclient harvester lb px proxyrenewal canl/;
+my @default_nodes = qw/lb px proxyrenewal nagios canl/;
 my %enable_nodes;
 my %disable_nodes;
 my %default_nodes; @default_nodes{@default_nodes} = (1) x ($#default_nodes + 1);
@@ -126,10 +126,6 @@ my %externs = (
        gridsite => {
                prefix => '/opt/glite'
        },
-       lcas => {
-               prefix => '/opt/glite',
-               pkg => 'lcas'
-       },
        trustmanager => {
                prefix => '/opt/glite'
        },
@@ -492,7 +488,7 @@ sub mode_build {
 
                print MAK "all: @modules\n\n";
                print MAK "stage: ".(join '-stage ', @modules)."-stage\n\n";
-               print MAK "clean check install:\n";
+               print MAK "clean check install dist distcheck rpm deb:\n";
 
                for (@modules) {
                        my $full = full($_);
@@ -524,6 +520,13 @@ sub mode_build {
                        print MAK "$_-stage: $snames\n\tcd $full/$build && \${MAKE} && \${MAKE} stage\n\n";
                }
 
+               print MAK qq/release-rpm: clean dist distcheck rpm
+
+release-deb: clean dist distcheck deb
+
+.PHONY: all stage clean check install dist distcheck rpm deb release-rpm release-deb
+/;
+
                close MAK;
        }
 }
@@ -600,7 +603,7 @@ BEGIN{
        '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:B voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B pkgconfig:B/ ],
+       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads:B voms:B 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/ ],
@@ -874,6 +877,17 @@ for my $ext (keys %deps_aux) {
        'canl' => 'emi-',
 );
 
+%cvs_tag_suffix = (
+       'lb' => '',
+       'jp' => '',
+       'jobid' => '',
+       'lbjp-common' => '',
+       'gridsite' => '-core',
+       'px' => '',
+       'canl' => '',
+);
+
+
 # ==== projects specification ====
 # etics_name ........... ETICS project name
 # conf_prefix .......... ETICS configurations name prefix
@@ -893,6 +907,7 @@ for my $ext (keys %deps_aux) {
                etics_name => 'org.glite',
                conf_prefix => { %cvs_tag_prefix },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour=${globus.thr.flavor} --nothrflavour=${globus.nothr.flavor}',
                local_prefix => '',
                etics_externs => {
@@ -910,7 +925,6 @@ for my $ext (keys %deps_aux) {
                                glue_schema=>'glue-schema',
                                trustmanager=>'org.glite.security.trustmanager',
                                axis=>'axis',
-                               lcas=>'org.glite.security.lcas',
                                gsoapxx=>'-',
                                jdk=>'jdk',
                                voms=>'org.glite.security.voms-api-cpp',
@@ -924,7 +938,7 @@ for my $ext (keys %deps_aux) {
                },
                etics_projects => {
                        vdt=>[qw/globus globus_essentials globus_proxy_utils gpt/],
-                       'org.glite'=>[qw/voms gridsite lcas gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
+                       'org.glite'=>[qw/voms gridsite gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
                },
                etics_locations => {
                        '*' => '',
@@ -963,6 +977,7 @@ for my $ext (keys %deps_aux) {
                        'canl' => 'emi-',
                },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour= --nothrflavour=',
                local_prefix => '/usr',
                etics_externs => {
@@ -980,7 +995,6 @@ for my $ext (keys %deps_aux) {
                                trustmanager=>'emi.java-security.trustmanager',
                                trustmanager_axis=>'emi.java-security.trustmanager-axis',
                                axis=>'axis1.4',
-                               lcas=>'emi.sac.lcas',
                                gsoapxx=>'-',
                                jdk=>'java',
                                voms => 'emi.voms.voms-api',
@@ -1050,7 +1064,7 @@ for my $ext (keys %deps_aux) {
                        },
                },
                etics_projects => {
-                       'emi'=>[qw/voms voms-devel gridsite lcas gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
+                       'emi'=>[qw/voms voms-devel gridsite gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
                },
                etics_locations => {
                        axis => 'axis',
@@ -1214,7 +1228,7 @@ sub get_version
                while (<V>) {
                        chomp;
                        ($major,$minor,$rev) = ($1,$2,$3) if /module\.version\s*=\s*([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)/;
-                       $age = $1 if /module\.age\s*=\s*([[:digit:]]+)/;
+                       $age = $1 if /module\.age\s*=\s*(\S+)/;
                }
                close V;
                $_ = $old_;
@@ -1360,6 +1374,55 @@ top_srcdir = $top_srcdir
 
        print MKINC "gsoap_default_version=".gsoap_version()."\n"  if $need_gsoap;
 
+       print MKINC '
+-include ${top_srcdir}/project/version.properties
+version=${module.version}
+
+${package}-${version}.tar.gz:
+       rm -rf dist
+       for dist in ${SOURCES} ${SOURCES_EXEC} configure project/ChangeLog project/debian.* project/*.spec project/package.* project/version.properties; do \
+               dir=${package}-${version}/`dirname $$dist`; \
+               mkdir -p dist/$$dir || :; \
+               install -m 0644 ${top_srcdir}/$$dist dist/$$dir; \
+       done
+       for dist in ${SOURCES_EXEC} configure; do \
+               chmod +x dist/${package}-${version}/$$dist; \
+       done
+       (cd dist; tar -czf ${package}-${version}.tar.gz ${package}-${version})
+       mv dist/${package}-${version}.tar.gz .
+
+dist: ${package}-${version}.tar.gz
+
+distcheck: ${package}-${version}.tar.gz
+       rm -rf dist
+       mkdir -p dist
+       cp ${package}-${version}.tar.gz dist
+       (cd dist; tar -xzf ${package}-${version}.tar.gz)
+       a=`(cd dist/${package}-${version}; find . -type f | sort)`; \
+       b=`(cd ${top_srcdir}; find . -path ./dist -prune -or -type f -print | sort)`; \
+       echo "$$a" >dist/files-dist; \
+       echo "$$b" | egrep -v "(^./Makefile.inc$$|^./${package}-${version}.tar.gz$$|^./debian|^./[^/]*.spec$$|\.cvsignore|^\./project/changelog$$|/CVS)" >dist/files-original
+       diff -U0 dist/files-dist dist/files-original
+
+rpm: ${package}-${version}.tar.gz
+       dir=dist/rpm_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir/BUILD $$dir/RPMS $$dir/SOURCES $$dir/SRPMS; \
+       cp ${package}-${version}.tar.gz $$dir/SOURCES/${package}-${version}-${module.age}.src.tar.gz && \
+       rpmbuild -bs --nodeps --define "_topdir $$dir" ${package}.spec && \
+       cp -v $$dir/SRPMS/*.src.rpm dist/
+
+deb: ${package}-${version}.tar.gz
+       dir=dist/dpkg_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir; \
+       cp ${package}-${version}.tar.gz $$dir/${package}_${version}.orig.tar.gz && \
+       tar zxf $$dir/${package}_${version}.orig.tar.gz -C $$dir && \
+       cp -rf debian/ $$dir/${package}-${version} && \
+       (cd $$dir/${package}-${version} && dpkg-buildpackage -S -d -nc -us -uc) && \
+       cp -v $$dir/*.tar.gz $$dir/*.dsc dist/
+';
+
        close MKINC;
 
        my $dh;
@@ -1412,43 +1475,48 @@ top_srcdir = $top_srcdir
                }
        }
 
-       print "Creating ${build}debian/\n" if ($debug);;
-
-       `rm -rfv  ${build}debian`;
-       mkdir $build."debian" or die $!;
-       `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
-       `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
-       `rm -f ${build}debian/*.orig`;
-       opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
-       for $_ (readdir $dh) {
-               if (/^debian\.(.*)/) {
-                       `mv ${build}debian/$_ ${build}debian/$1`;
-                       $debian = 1;
+       if ($module and -d $build."debian") {
+               print "Skipping ${build}debian/ (no rewrite in single module mode)\n" if ($debug);
+               `rm -f ${build}debian.*`;
+       } else {
+               print "Creating ${build}debian/\n" if ($debug);;
+
+               `rm -rfv  ${build}debian`;
+               mkdir $build."debian" or die $!;
+               `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
+               `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
+               `rm -f ${build}debian/*.orig`;
+               opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
+               for $_ (readdir $dh) {
+                       if (/^debian\.(.*)/) {
+                               `mv ${build}debian/$_ ${build}debian/$1`;
+                               $debian = 1;
+                       }
                }
-       }
-       closedir $dh;
+               closedir $dh;
 
-       if ($debian) {
-               my ($dir, $file);
+               if ($debian) {
+                       my ($dir, $file);
 
-               chmod 0755, "${build}debian/rules";
-               $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
-               $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
-               $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
-               $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
-               $file="${build}debian/changelog"; if (not -f $file) {
-                       open FH, ">$file" or die $!;
-                       print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
+                       chmod 0755, "${build}debian/rules";
+                       $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
+                       $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
+                       $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
+                       $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
+                       $file="${build}debian/changelog"; if (not -f $file) {
+                               open FH, ">$file" or die $!;
+                               print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
 
   * Automatically generated package
 
  -- $package{maintainer}  $debdate
 };
-                       close FH;
-               }
+                               close FH;
+                       }
 
-       } else {
-               `rm -rf ${build}debian`;
+               } else {
+                       `rm -rf ${build}debian`;
+               }
        }
 }
 
@@ -1460,16 +1528,18 @@ sub mode_etics_packaging {
        my ($workspaceDir, $srcPackageName, $srcAge, $topDir);
 
        # old-school packaging by ETICS for EMI-1
-       if ($project eq 'emi' and $project_version == 1) { return; }
+       if ($project eq 'emi' and $project_version == 1 and $fmod ne 'gridsite.core') { return; }
 
        if ($fmod eq 'gridsite.core') {
                $workspaceDir = '..';
                $srcPackageName = 'gridsite';
+               $srcTarBall = "../$srcPackageName-\${version}.src.tar.gz";
                $srcAge = '';
                $topDir = '../';
        } else {
                $workspaceDir = '${workspaceDir}';
                $srcPackageName = '${packageName}';
+               $srcTarBall = "$srcPackageName-\${version}.tar.gz";
                $srcAge = '-${age}';
                $topDir = '';
        }
@@ -1479,8 +1549,8 @@ sub mode_etics_packaging {
        $cmd->{default}{packaging} = $rpmprepare;
        $cmd->{default}{packaging} .= "dir=\${workspaceDir}/rpm_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SRPMSLocation} \$dir/{BUILD,RPMS,SOURCES,SRPMS} 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/SOURCES/
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/SOURCES/$srcPackageName-\${version}${srcAge}.src.tar.gz
        rpmbuild -bs --nodeps --define \"_topdir \$dir\" $srcPackageName.spec
        cp -v \$dir/SRPMS/*.src.rpm \${package.SRPMSLocation}/
        rm -rf \$dir";
@@ -1492,8 +1562,8 @@ sub mode_etics_packaging {
                $cmd->{$p}{packaging} = $debprepare;
                $cmd->{$p}{packaging} .= "dir=\${workspaceDir}/dpkg_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SDEBSLocation} \$dir 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/${srcPackageName}_\${version}.orig.tar.gz
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/${srcPackageName}_\${version}.orig.tar.gz
        tar xzf \$dir/${srcPackageName}_\${version}.orig.tar.gz -C \$dir
        cp -rf ${topDir}debian/ \$dir/$srcPackageName-\${version}/
        cd \$dir/$srcPackageName-\${version}
@@ -1564,7 +1634,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}_R_${major}_${minor}_${rev}" : 
+               $conftag = $subsys eq 'gridsite' ? "$project{tag_prefix}{$subsys}${subsys}$project{tag_suffix}{$subsys}_R_${major}_${minor}_${rev}" : 
                        "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}_${age}";
 
                # lowering age for older packaging
@@ -1603,7 +1673,6 @@ sub mode_etics {
        #$cmd_vcs{checkout} = "((test -d jra1mw/.git && (cd jra1mw; git pull)) || (git clone -q http://scientific.zcu.cz/git/jra1mw.git";
        #$cmd_vcs{checkout} .= " && (cd jra1mw; git checkout -b \${tag} --track origin/\${tag})" unless ($conftag eq /HEAD/);
        #$cmd_vcs{checkout} .= ")) && (test -d \${moduleName} || ln -s jra1mw/$cvs_module \${moduleName})";
-       $cmd_vcs{checkout} .= "\n\ttest -f \${packageName}-\${version}-\${age}.src.tar.gz || (ln -s \${moduleName} \${packageName}-\${version}; tar -chf - \${packageName}-\${version} --exclude CVS --exclude .git --exclude .etics | gzip --best > \${packageName}-\${version}-\${age}.src.tar.gz; rm \${packageName}-\${version})";
        $cmd_vcs{tag} = "cvs -d \${vcsroot} tag -R \${tag} ${moduleName}";
 
        $cmd{default}{init} = 'None';
@@ -1695,7 +1764,7 @@ sub mode_etics {
                        $cmd{default}{compile} = "make rpath=$project{local_prefix}/\${libdir}";
                        $cmd{default}{install} = "make install post-install rpath=$project{local_prefix}/\${libdir}";
                }
-               mode_etics_packaging($fmod, \%cmd);
+               mode_etics_packaging($fmod, \%cmd, "make dist\n\t", "make dist\n\t");
        }
 
        my $defprops = '';
index 5e5da35..f4efff7 100644 (file)
 1.2.3-2
 - Module rebuilt
 
+1.2.3-3
+- Module rebuilt
+
 1.3.0-1
 - Fixed template database encoding
 
index d3f5c71..02c0de4 100644 (file)
@@ -19,7 +19,7 @@ default: all
 version=${module.version}
 
 CC=gcc
-CXX=gcc
+CXX=g++
 
 VPATH:=${top_srcdir}/src:${top_srcdir}/interface:${top_srcdir}/test:${top_srcdir}/doc:${top_srcdir}/examples:${top_srcdir}/config
 
@@ -101,7 +101,7 @@ ${MAN_GZ}: ${MAN}
        gzip -f $(notdir $?)
 
 glite-lb-cmsclient: cmsclient.o
-       $(CC) $< ${EXT_LIB} -o $@
+       $(CXX) $< ${EXT_LIB} -o $@
 
 man: ${MAN_GZ}
 
index 4be8ff9..f2880c2 100755 (executable)
@@ -54,8 +54,8 @@ 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 nagios/;
+my @nodes = qw/client server logger logger-msg nagios utils client-java doc ws-test db jpprimary jpindex jpclient harvester lb px proxyrenewal canl/;
+my @default_nodes = qw/lb px proxyrenewal nagios canl/;
 my %enable_nodes;
 my %disable_nodes;
 my %default_nodes; @default_nodes{@default_nodes} = (1) x ($#default_nodes + 1);
@@ -126,10 +126,6 @@ my %externs = (
        gridsite => {
                prefix => '/opt/glite'
        },
-       lcas => {
-               prefix => '/opt/glite',
-               pkg => 'lcas'
-       },
        trustmanager => {
                prefix => '/opt/glite'
        },
@@ -492,7 +488,7 @@ sub mode_build {
 
                print MAK "all: @modules\n\n";
                print MAK "stage: ".(join '-stage ', @modules)."-stage\n\n";
-               print MAK "clean check install:\n";
+               print MAK "clean check install dist distcheck rpm deb:\n";
 
                for (@modules) {
                        my $full = full($_);
@@ -524,6 +520,13 @@ sub mode_build {
                        print MAK "$_-stage: $snames\n\tcd $full/$build && \${MAKE} && \${MAKE} stage\n\n";
                }
 
+               print MAK qq/release-rpm: clean dist distcheck rpm
+
+release-deb: clean dist distcheck deb
+
+.PHONY: all stage clean check install dist distcheck rpm deb release-rpm release-deb
+/;
+
                close MAK;
        }
 }
@@ -600,7 +603,7 @@ BEGIN{
        '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:B voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B pkgconfig:B/ ],
+       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads:B voms:B 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/ ],
@@ -874,6 +877,17 @@ for my $ext (keys %deps_aux) {
        'canl' => 'emi-',
 );
 
+%cvs_tag_suffix = (
+       'lb' => '',
+       'jp' => '',
+       'jobid' => '',
+       'lbjp-common' => '',
+       'gridsite' => '-core',
+       'px' => '',
+       'canl' => '',
+);
+
+
 # ==== projects specification ====
 # etics_name ........... ETICS project name
 # conf_prefix .......... ETICS configurations name prefix
@@ -893,6 +907,7 @@ for my $ext (keys %deps_aux) {
                etics_name => 'org.glite',
                conf_prefix => { %cvs_tag_prefix },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour=${globus.thr.flavor} --nothrflavour=${globus.nothr.flavor}',
                local_prefix => '',
                etics_externs => {
@@ -910,7 +925,6 @@ for my $ext (keys %deps_aux) {
                                glue_schema=>'glue-schema',
                                trustmanager=>'org.glite.security.trustmanager',
                                axis=>'axis',
-                               lcas=>'org.glite.security.lcas',
                                gsoapxx=>'-',
                                jdk=>'jdk',
                                voms=>'org.glite.security.voms-api-cpp',
@@ -924,7 +938,7 @@ for my $ext (keys %deps_aux) {
                },
                etics_projects => {
                        vdt=>[qw/globus globus_essentials globus_proxy_utils gpt/],
-                       'org.glite'=>[qw/voms gridsite lcas gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
+                       'org.glite'=>[qw/voms gridsite gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
                },
                etics_locations => {
                        '*' => '',
@@ -963,6 +977,7 @@ for my $ext (keys %deps_aux) {
                        'canl' => 'emi-',
                },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour= --nothrflavour=',
                local_prefix => '/usr',
                etics_externs => {
@@ -980,7 +995,6 @@ for my $ext (keys %deps_aux) {
                                trustmanager=>'emi.java-security.trustmanager',
                                trustmanager_axis=>'emi.java-security.trustmanager-axis',
                                axis=>'axis1.4',
-                               lcas=>'emi.sac.lcas',
                                gsoapxx=>'-',
                                jdk=>'java',
                                voms => 'emi.voms.voms-api',
@@ -1050,7 +1064,7 @@ for my $ext (keys %deps_aux) {
                        },
                },
                etics_projects => {
-                       'emi'=>[qw/voms voms-devel gridsite lcas gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
+                       'emi'=>[qw/voms voms-devel gridsite gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
                },
                etics_locations => {
                        axis => 'axis',
@@ -1214,7 +1228,7 @@ sub get_version
                while (<V>) {
                        chomp;
                        ($major,$minor,$rev) = ($1,$2,$3) if /module\.version\s*=\s*([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)/;
-                       $age = $1 if /module\.age\s*=\s*([[:digit:]]+)/;
+                       $age = $1 if /module\.age\s*=\s*(\S+)/;
                }
                close V;
                $_ = $old_;
@@ -1360,6 +1374,55 @@ top_srcdir = $top_srcdir
 
        print MKINC "gsoap_default_version=".gsoap_version()."\n"  if $need_gsoap;
 
+       print MKINC '
+-include ${top_srcdir}/project/version.properties
+version=${module.version}
+
+${package}-${version}.tar.gz:
+       rm -rf dist
+       for dist in ${SOURCES} ${SOURCES_EXEC} configure project/ChangeLog project/debian.* project/*.spec project/package.* project/version.properties; do \
+               dir=${package}-${version}/`dirname $$dist`; \
+               mkdir -p dist/$$dir || :; \
+               install -m 0644 ${top_srcdir}/$$dist dist/$$dir; \
+       done
+       for dist in ${SOURCES_EXEC} configure; do \
+               chmod +x dist/${package}-${version}/$$dist; \
+       done
+       (cd dist; tar -czf ${package}-${version}.tar.gz ${package}-${version})
+       mv dist/${package}-${version}.tar.gz .
+
+dist: ${package}-${version}.tar.gz
+
+distcheck: ${package}-${version}.tar.gz
+       rm -rf dist
+       mkdir -p dist
+       cp ${package}-${version}.tar.gz dist
+       (cd dist; tar -xzf ${package}-${version}.tar.gz)
+       a=`(cd dist/${package}-${version}; find . -type f | sort)`; \
+       b=`(cd ${top_srcdir}; find . -path ./dist -prune -or -type f -print | sort)`; \
+       echo "$$a" >dist/files-dist; \
+       echo "$$b" | egrep -v "(^./Makefile.inc$$|^./${package}-${version}.tar.gz$$|^./debian|^./[^/]*.spec$$|\.cvsignore|^\./project/changelog$$|/CVS)" >dist/files-original
+       diff -U0 dist/files-dist dist/files-original
+
+rpm: ${package}-${version}.tar.gz
+       dir=dist/rpm_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir/BUILD $$dir/RPMS $$dir/SOURCES $$dir/SRPMS; \
+       cp ${package}-${version}.tar.gz $$dir/SOURCES/${package}-${version}-${module.age}.src.tar.gz && \
+       rpmbuild -bs --nodeps --define "_topdir $$dir" ${package}.spec && \
+       cp -v $$dir/SRPMS/*.src.rpm dist/
+
+deb: ${package}-${version}.tar.gz
+       dir=dist/dpkg_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir; \
+       cp ${package}-${version}.tar.gz $$dir/${package}_${version}.orig.tar.gz && \
+       tar zxf $$dir/${package}_${version}.orig.tar.gz -C $$dir && \
+       cp -rf debian/ $$dir/${package}-${version} && \
+       (cd $$dir/${package}-${version} && dpkg-buildpackage -S -d -nc -us -uc) && \
+       cp -v $$dir/*.tar.gz $$dir/*.dsc dist/
+';
+
        close MKINC;
 
        my $dh;
@@ -1412,43 +1475,48 @@ top_srcdir = $top_srcdir
                }
        }
 
-       print "Creating ${build}debian/\n" if ($debug);;
-
-       `rm -rfv  ${build}debian`;
-       mkdir $build."debian" or die $!;
-       `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
-       `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
-       `rm -f ${build}debian/*.orig`;
-       opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
-       for $_ (readdir $dh) {
-               if (/^debian\.(.*)/) {
-                       `mv ${build}debian/$_ ${build}debian/$1`;
-                       $debian = 1;
+       if ($module and -d $build."debian") {
+               print "Skipping ${build}debian/ (no rewrite in single module mode)\n" if ($debug);
+               `rm -f ${build}debian.*`;
+       } else {
+               print "Creating ${build}debian/\n" if ($debug);;
+
+               `rm -rfv  ${build}debian`;
+               mkdir $build."debian" or die $!;
+               `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
+               `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
+               `rm -f ${build}debian/*.orig`;
+               opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
+               for $_ (readdir $dh) {
+                       if (/^debian\.(.*)/) {
+                               `mv ${build}debian/$_ ${build}debian/$1`;
+                               $debian = 1;
+                       }
                }
-       }
-       closedir $dh;
+               closedir $dh;
 
-       if ($debian) {
-               my ($dir, $file);
+               if ($debian) {
+                       my ($dir, $file);
 
-               chmod 0755, "${build}debian/rules";
-               $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
-               $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
-               $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
-               $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
-               $file="${build}debian/changelog"; if (not -f $file) {
-                       open FH, ">$file" or die $!;
-                       print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
+                       chmod 0755, "${build}debian/rules";
+                       $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
+                       $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
+                       $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
+                       $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
+                       $file="${build}debian/changelog"; if (not -f $file) {
+                               open FH, ">$file" or die $!;
+                               print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
 
   * Automatically generated package
 
  -- $package{maintainer}  $debdate
 };
-                       close FH;
-               }
+                               close FH;
+                       }
 
-       } else {
-               `rm -rf ${build}debian`;
+               } else {
+                       `rm -rf ${build}debian`;
+               }
        }
 }
 
@@ -1465,11 +1533,13 @@ sub mode_etics_packaging {
        if ($fmod eq 'gridsite.core') {
                $workspaceDir = '..';
                $srcPackageName = 'gridsite';
+               $srcTarBall = "../$srcPackageName-\${version}.src.tar.gz";
                $srcAge = '';
                $topDir = '../';
        } else {
                $workspaceDir = '${workspaceDir}';
                $srcPackageName = '${packageName}';
+               $srcTarBall = "$srcPackageName-\${version}.tar.gz";
                $srcAge = '-${age}';
                $topDir = '';
        }
@@ -1479,8 +1549,8 @@ sub mode_etics_packaging {
        $cmd->{default}{packaging} = $rpmprepare;
        $cmd->{default}{packaging} .= "dir=\${workspaceDir}/rpm_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SRPMSLocation} \$dir/{BUILD,RPMS,SOURCES,SRPMS} 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/SOURCES/
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/SOURCES/$srcPackageName-\${version}${srcAge}.src.tar.gz
        rpmbuild -bs --nodeps --define \"_topdir \$dir\" $srcPackageName.spec
        cp -v \$dir/SRPMS/*.src.rpm \${package.SRPMSLocation}/
        rm -rf \$dir";
@@ -1492,8 +1562,8 @@ sub mode_etics_packaging {
                $cmd->{$p}{packaging} = $debprepare;
                $cmd->{$p}{packaging} .= "dir=\${workspaceDir}/dpkg_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SDEBSLocation} \$dir 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/${srcPackageName}_\${version}.orig.tar.gz
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/${srcPackageName}_\${version}.orig.tar.gz
        tar xzf \$dir/${srcPackageName}_\${version}.orig.tar.gz -C \$dir
        cp -rf ${topDir}debian/ \$dir/$srcPackageName-\${version}/
        cd \$dir/$srcPackageName-\${version}
@@ -1564,7 +1634,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}_R_${major}_${minor}_${rev}" : 
+               $conftag = $subsys eq 'gridsite' ? "$project{tag_prefix}{$subsys}${subsys}$project{tag_suffix}{$subsys}_R_${major}_${minor}_${rev}" : 
                        "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}_${age}";
 
                # lowering age for older packaging
@@ -1603,7 +1673,6 @@ sub mode_etics {
        #$cmd_vcs{checkout} = "((test -d jra1mw/.git && (cd jra1mw; git pull)) || (git clone -q http://scientific.zcu.cz/git/jra1mw.git";
        #$cmd_vcs{checkout} .= " && (cd jra1mw; git checkout -b \${tag} --track origin/\${tag})" unless ($conftag eq /HEAD/);
        #$cmd_vcs{checkout} .= ")) && (test -d \${moduleName} || ln -s jra1mw/$cvs_module \${moduleName})";
-       $cmd_vcs{checkout} .= "\n\ttest -f \${packageName}-\${version}-\${age}.src.tar.gz || (ln -s \${moduleName} \${packageName}-\${version}; tar -chf - \${packageName}-\${version} --exclude CVS --exclude .git --exclude .etics | gzip --best > \${packageName}-\${version}-\${age}.src.tar.gz; rm \${packageName}-\${version})";
        $cmd_vcs{tag} = "cvs -d \${vcsroot} tag -R \${tag} ${moduleName}";
 
        $cmd{default}{init} = 'None';
@@ -1695,7 +1764,7 @@ sub mode_etics {
                        $cmd{default}{compile} = "make rpath=$project{local_prefix}/\${libdir}";
                        $cmd{default}{install} = "make install post-install rpath=$project{local_prefix}/\${libdir}";
                }
-               mode_etics_packaging($fmod, \%cmd);
+               mode_etics_packaging($fmod, \%cmd, "make dist\n\t", "make dist\n\t");
        }
 
        my $defprops = '';
index 61e42e2..37afff8 100644 (file)
 1.1.3-3
 - Module rebuilt
 
+1.1.4-1
+- Improved build and packaging for Fedora
+- Alternative activemq-cpp library package name supported on Fedora
+
 1.2.0-1
 - Merge from branch_3_2
 
index 5756b18..e097fa7 100644 (file)
@@ -6,7 +6,11 @@ Url: @URL@
 License: ASL 2.0
 Vendor: EMI
 Group: System Environment/Daemons
+%if 0%{?fedora}
+BuildRequires: activemq-cpp-devel%{_isa}
+%else
 BuildRequires: activemq-cpp-library
+%endif
 BuildRequires: cppunit-devel%{?_isa}
 BuildRequires: glite-lb-logger-devel%{?_isa}
 BuildRequires: glite-lbjp-common-log-devel%{?_isa}
index 669a05f..b2d4364 100644 (file)
@@ -63,6 +63,12 @@ endif
 
 GLITE_LBJP_COMMON_GSS_CFLAGS?=`PKG_CONFIG_PATH=$$PKG_CONFIG_PATH:${PREFIX}${prefix}/${libdir}/pkgconfig pkg-config glite-security-gss --cflags`
 
+os=${shell uname}
+DL_LIBS=
+ifeq (${os},Linux)
+       DL_LIBS=-ldl
+endif
+
 DEBUG:=-g -O0
 CFLAGS:=${DEBUG} \
        -I${stagedir}${prefix}/include -I${top_srcdir}/src -I${top_srcdir}/interface \
@@ -89,11 +95,10 @@ INSTALL:=libtool --mode=install install
 HDRS:=interlogd.h il_error.h
 
 COMMON_LIB:=-lglite_lb_common
-
-EXT_LIB:=-lglite_lbu_trio -lglite_lbu_log
-
 GLITE_GSS_LIB:=-lglite_security_gss
 
+EXT_LIB:=-lglite_lbu_trio -lglite_lbu_log ${GLITE_GSS_LIB} -lglite_jobid
+
 CPPUNIT_LIBS?=-L${cppunit_prefix}/${libdir} -lcppunit
 CPPUNIT_CFLAGS?=-I${cppunit_prefix}/include
 
@@ -161,10 +166,10 @@ glite-lb-logd-perf-nofile: ${LOGD_NOBJS}
        ${LINK} -o $@ ${LOGD_NOBJS} ${COMMON_LIB}${default_nothrflavour} ${EXT_LIB}
 
 glite-lb-interlogd: ${INTERLOG_OBJS}
-       ${LINK} -o $@ ${INTERLOG_OBJS} ${COMMON_LIB}${default_thrflavour} ${EXT_LIB} -lpthread
+       ${LINK} -o $@ ${INTERLOG_OBJS} ${COMMON_LIB}${default_thrflavour} ${EXT_LIB} -lpthread ${DL_LIBS}
 
 glite-lb-notif-interlogd: ${INTERLOG_NOTIF_OBJS}
-       ${LINK} -export-dynamic -o $@ ${INTERLOG_NOTIF_OBJS} ${COMMON_LIB}${default_thrflavour} ${EXT_LIB} -lpthread
+       ${LINK} -export-dynamic -o $@ ${INTERLOG_NOTIF_OBJS} ${COMMON_LIB}${default_thrflavour} ${EXT_LIB} -lpthread ${DL_LIBS}
 
 glite-lb-interlogd-perf: ${INTERLOG_PERF_OBJS}
        ${LINK} -o $@ ${INTERLOG_PERF_OBJS} ${COMMON_LIB}${default_thrflavour} ${EXT_LIB} -lpthread
@@ -201,7 +206,7 @@ check.ll:
        -echo commented out -- fix needed
 
 check.il: ${INTERLOG_TEST_OBJS}
-       ${LINKXX} -o $@ ${COMMON_LIB}${default_thrflavour} ${CPPUNIT_LIBS} ${EXT_LIB} -lpthread $+
+       ${LINKXX} -o $@ ${COMMON_LIB}${default_thrflavour} ${CPPUNIT_LIBS} ${GLITE_GSS_LIB} -lglite_jobid -lpthread ${DL_LIBS} $+
 
 install:
        -mkdir -p ${DESTDIR}${PREFIX}${prefix}/bin
@@ -258,9 +263,10 @@ il_test.o IlTestBase.o server_msgTest.o event_queueTest.o input_queue_socketTest
 
 clean:
        rm -rvf .libs/ *.o *.lo *.no ${LOGD} ${INTERLOGD} ${NOTIF_INTERLOGD} ${MAN_GZ} startup
+       rm -rvf check.ll check.il
        rm -rvf dist ${package}-*.tar.gz
 
 distclean:
        rm -rvf Makefile.inc *.spec debian/
 
-.PHONY: default all compile man stage check check.il check.ll install clean distclean dist distcheck
+.PHONY: default all compile man stage check install clean distclean dist distcheck
index eba7d34..f2880c2 100755 (executable)
@@ -54,8 +54,8 @@ 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 nagios/;
+my @nodes = qw/client server logger logger-msg nagios utils client-java doc ws-test db jpprimary jpindex jpclient harvester lb px proxyrenewal canl/;
+my @default_nodes = qw/lb px proxyrenewal nagios canl/;
 my %enable_nodes;
 my %disable_nodes;
 my %default_nodes; @default_nodes{@default_nodes} = (1) x ($#default_nodes + 1);
@@ -488,7 +488,7 @@ sub mode_build {
 
                print MAK "all: @modules\n\n";
                print MAK "stage: ".(join '-stage ', @modules)."-stage\n\n";
-               print MAK "clean check install:\n";
+               print MAK "clean check install dist distcheck rpm deb:\n";
 
                for (@modules) {
                        my $full = full($_);
@@ -520,6 +520,13 @@ sub mode_build {
                        print MAK "$_-stage: $snames\n\tcd $full/$build && \${MAKE} && \${MAKE} stage\n\n";
                }
 
+               print MAK qq/release-rpm: clean dist distcheck rpm
+
+release-deb: clean dist distcheck deb
+
+.PHONY: all stage clean check install dist distcheck rpm deb release-rpm release-deb
+/;
+
                close MAK;
        }
 }
@@ -870,6 +877,17 @@ for my $ext (keys %deps_aux) {
        'canl' => 'emi-',
 );
 
+%cvs_tag_suffix = (
+       'lb' => '',
+       'jp' => '',
+       'jobid' => '',
+       'lbjp-common' => '',
+       'gridsite' => '-core',
+       'px' => '',
+       'canl' => '',
+);
+
+
 # ==== projects specification ====
 # etics_name ........... ETICS project name
 # conf_prefix .......... ETICS configurations name prefix
@@ -889,6 +907,7 @@ for my $ext (keys %deps_aux) {
                etics_name => 'org.glite',
                conf_prefix => { %cvs_tag_prefix },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour=${globus.thr.flavor} --nothrflavour=${globus.nothr.flavor}',
                local_prefix => '',
                etics_externs => {
@@ -958,6 +977,7 @@ for my $ext (keys %deps_aux) {
                        'canl' => 'emi-',
                },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour= --nothrflavour=',
                local_prefix => '/usr',
                etics_externs => {
@@ -1208,7 +1228,7 @@ sub get_version
                while (<V>) {
                        chomp;
                        ($major,$minor,$rev) = ($1,$2,$3) if /module\.version\s*=\s*([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)/;
-                       $age = $1 if /module\.age\s*=\s*([[:digit:]]+)/;
+                       $age = $1 if /module\.age\s*=\s*(\S+)/;
                }
                close V;
                $_ = $old_;
@@ -1354,6 +1374,55 @@ top_srcdir = $top_srcdir
 
        print MKINC "gsoap_default_version=".gsoap_version()."\n"  if $need_gsoap;
 
+       print MKINC '
+-include ${top_srcdir}/project/version.properties
+version=${module.version}
+
+${package}-${version}.tar.gz:
+       rm -rf dist
+       for dist in ${SOURCES} ${SOURCES_EXEC} configure project/ChangeLog project/debian.* project/*.spec project/package.* project/version.properties; do \
+               dir=${package}-${version}/`dirname $$dist`; \
+               mkdir -p dist/$$dir || :; \
+               install -m 0644 ${top_srcdir}/$$dist dist/$$dir; \
+       done
+       for dist in ${SOURCES_EXEC} configure; do \
+               chmod +x dist/${package}-${version}/$$dist; \
+       done
+       (cd dist; tar -czf ${package}-${version}.tar.gz ${package}-${version})
+       mv dist/${package}-${version}.tar.gz .
+
+dist: ${package}-${version}.tar.gz
+
+distcheck: ${package}-${version}.tar.gz
+       rm -rf dist
+       mkdir -p dist
+       cp ${package}-${version}.tar.gz dist
+       (cd dist; tar -xzf ${package}-${version}.tar.gz)
+       a=`(cd dist/${package}-${version}; find . -type f | sort)`; \
+       b=`(cd ${top_srcdir}; find . -path ./dist -prune -or -type f -print | sort)`; \
+       echo "$$a" >dist/files-dist; \
+       echo "$$b" | egrep -v "(^./Makefile.inc$$|^./${package}-${version}.tar.gz$$|^./debian|^./[^/]*.spec$$|\.cvsignore|^\./project/changelog$$|/CVS)" >dist/files-original
+       diff -U0 dist/files-dist dist/files-original
+
+rpm: ${package}-${version}.tar.gz
+       dir=dist/rpm_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir/BUILD $$dir/RPMS $$dir/SOURCES $$dir/SRPMS; \
+       cp ${package}-${version}.tar.gz $$dir/SOURCES/${package}-${version}-${module.age}.src.tar.gz && \
+       rpmbuild -bs --nodeps --define "_topdir $$dir" ${package}.spec && \
+       cp -v $$dir/SRPMS/*.src.rpm dist/
+
+deb: ${package}-${version}.tar.gz
+       dir=dist/dpkg_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir; \
+       cp ${package}-${version}.tar.gz $$dir/${package}_${version}.orig.tar.gz && \
+       tar zxf $$dir/${package}_${version}.orig.tar.gz -C $$dir && \
+       cp -rf debian/ $$dir/${package}-${version} && \
+       (cd $$dir/${package}-${version} && dpkg-buildpackage -S -d -nc -us -uc) && \
+       cp -v $$dir/*.tar.gz $$dir/*.dsc dist/
+';
+
        close MKINC;
 
        my $dh;
@@ -1406,43 +1475,48 @@ top_srcdir = $top_srcdir
                }
        }
 
-       print "Creating ${build}debian/\n" if ($debug);;
-
-       `rm -rfv  ${build}debian`;
-       mkdir $build."debian" or die $!;
-       `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
-       `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
-       `rm -f ${build}debian/*.orig`;
-       opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
-       for $_ (readdir $dh) {
-               if (/^debian\.(.*)/) {
-                       `mv ${build}debian/$_ ${build}debian/$1`;
-                       $debian = 1;
+       if ($module and -d $build."debian") {
+               print "Skipping ${build}debian/ (no rewrite in single module mode)\n" if ($debug);
+               `rm -f ${build}debian.*`;
+       } else {
+               print "Creating ${build}debian/\n" if ($debug);;
+
+               `rm -rfv  ${build}debian`;
+               mkdir $build."debian" or die $!;
+               `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
+               `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
+               `rm -f ${build}debian/*.orig`;
+               opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
+               for $_ (readdir $dh) {
+                       if (/^debian\.(.*)/) {
+                               `mv ${build}debian/$_ ${build}debian/$1`;
+                               $debian = 1;
+                       }
                }
-       }
-       closedir $dh;
+               closedir $dh;
 
-       if ($debian) {
-               my ($dir, $file);
+               if ($debian) {
+                       my ($dir, $file);
 
-               chmod 0755, "${build}debian/rules";
-               $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
-               $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
-               $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
-               $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
-               $file="${build}debian/changelog"; if (not -f $file) {
-                       open FH, ">$file" or die $!;
-                       print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
+                       chmod 0755, "${build}debian/rules";
+                       $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
+                       $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
+                       $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
+                       $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
+                       $file="${build}debian/changelog"; if (not -f $file) {
+                               open FH, ">$file" or die $!;
+                               print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
 
   * Automatically generated package
 
  -- $package{maintainer}  $debdate
 };
-                       close FH;
-               }
+                               close FH;
+                       }
 
-       } else {
-               `rm -rf ${build}debian`;
+               } else {
+                       `rm -rf ${build}debian`;
+               }
        }
 }
 
@@ -1459,11 +1533,13 @@ sub mode_etics_packaging {
        if ($fmod eq 'gridsite.core') {
                $workspaceDir = '..';
                $srcPackageName = 'gridsite';
+               $srcTarBall = "../$srcPackageName-\${version}.src.tar.gz";
                $srcAge = '';
                $topDir = '../';
        } else {
                $workspaceDir = '${workspaceDir}';
                $srcPackageName = '${packageName}';
+               $srcTarBall = "$srcPackageName-\${version}.tar.gz";
                $srcAge = '-${age}';
                $topDir = '';
        }
@@ -1473,8 +1549,8 @@ sub mode_etics_packaging {
        $cmd->{default}{packaging} = $rpmprepare;
        $cmd->{default}{packaging} .= "dir=\${workspaceDir}/rpm_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SRPMSLocation} \$dir/{BUILD,RPMS,SOURCES,SRPMS} 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/SOURCES/
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/SOURCES/$srcPackageName-\${version}${srcAge}.src.tar.gz
        rpmbuild -bs --nodeps --define \"_topdir \$dir\" $srcPackageName.spec
        cp -v \$dir/SRPMS/*.src.rpm \${package.SRPMSLocation}/
        rm -rf \$dir";
@@ -1486,8 +1562,8 @@ sub mode_etics_packaging {
                $cmd->{$p}{packaging} = $debprepare;
                $cmd->{$p}{packaging} .= "dir=\${workspaceDir}/dpkg_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SDEBSLocation} \$dir 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/${srcPackageName}_\${version}.orig.tar.gz
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/${srcPackageName}_\${version}.orig.tar.gz
        tar xzf \$dir/${srcPackageName}_\${version}.orig.tar.gz -C \$dir
        cp -rf ${topDir}debian/ \$dir/$srcPackageName-\${version}/
        cd \$dir/$srcPackageName-\${version}
@@ -1558,7 +1634,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}_R_${major}_${minor}_${rev}" : 
+               $conftag = $subsys eq 'gridsite' ? "$project{tag_prefix}{$subsys}${subsys}$project{tag_suffix}{$subsys}_R_${major}_${minor}_${rev}" : 
                        "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}_${age}";
 
                # lowering age for older packaging
@@ -1597,7 +1673,6 @@ sub mode_etics {
        #$cmd_vcs{checkout} = "((test -d jra1mw/.git && (cd jra1mw; git pull)) || (git clone -q http://scientific.zcu.cz/git/jra1mw.git";
        #$cmd_vcs{checkout} .= " && (cd jra1mw; git checkout -b \${tag} --track origin/\${tag})" unless ($conftag eq /HEAD/);
        #$cmd_vcs{checkout} .= ")) && (test -d \${moduleName} || ln -s jra1mw/$cvs_module \${moduleName})";
-       $cmd_vcs{checkout} .= "\n\ttest -f \${packageName}-\${version}-\${age}.src.tar.gz || (ln -s \${moduleName} \${packageName}-\${version}; tar -chf - \${packageName}-\${version} --exclude CVS --exclude .git --exclude .etics | gzip --best > \${packageName}-\${version}-\${age}.src.tar.gz; rm \${packageName}-\${version})";
        $cmd_vcs{tag} = "cvs -d \${vcsroot} tag -R \${tag} ${moduleName}";
 
        $cmd{default}{init} = 'None';
@@ -1689,7 +1764,7 @@ sub mode_etics {
                        $cmd{default}{compile} = "make rpath=$project{local_prefix}/\${libdir}";
                        $cmd{default}{install} = "make install post-install rpath=$project{local_prefix}/\${libdir}";
                }
-               mode_etics_packaging($fmod, \%cmd);
+               mode_etics_packaging($fmod, \%cmd, "make dist\n\t", "make dist\n\t");
        }
 
        my $defprops = '';
index c63e3b5..2c07ce2 100644 (file)
 2.3.4-2
 - Module rebuilt
 
+2.3.5-1
+- Improved build and packaging for Fedora
+- Fix for notification interlogger failures (bug #95013)
+- Explicit pkg-config dependency
+
 2.4.0-1
 - Merge from branch_3_2
 - Torque jobs support
index e457931..f2880c2 100755 (executable)
@@ -54,8 +54,8 @@ 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 nagios/;
+my @nodes = qw/client server logger logger-msg nagios utils client-java doc ws-test db jpprimary jpindex jpclient harvester lb px proxyrenewal canl/;
+my @default_nodes = qw/lb px proxyrenewal nagios canl/;
 my %enable_nodes;
 my %disable_nodes;
 my %default_nodes; @default_nodes{@default_nodes} = (1) x ($#default_nodes + 1);
@@ -126,10 +126,6 @@ my %externs = (
        gridsite => {
                prefix => '/opt/glite'
        },
-       lcas => {
-               prefix => '/opt/glite',
-               pkg => 'lcas'
-       },
        trustmanager => {
                prefix => '/opt/glite'
        },
@@ -492,7 +488,7 @@ sub mode_build {
 
                print MAK "all: @modules\n\n";
                print MAK "stage: ".(join '-stage ', @modules)."-stage\n\n";
-               print MAK "clean check install:\n";
+               print MAK "clean check install dist distcheck rpm deb:\n";
 
                for (@modules) {
                        my $full = full($_);
@@ -524,6 +520,13 @@ sub mode_build {
                        print MAK "$_-stage: $snames\n\tcd $full/$build && \${MAKE} && \${MAKE} stage\n\n";
                }
 
+               print MAK qq/release-rpm: clean dist distcheck rpm
+
+release-deb: clean dist distcheck deb
+
+.PHONY: all stage clean check install dist distcheck rpm deb release-rpm release-deb
+/;
+
                close MAK;
        }
 }
@@ -600,7 +603,7 @@ BEGIN{
        '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:B voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B pkgconfig:B/ ],
+       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads:B voms:B 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/ ],
@@ -874,6 +877,17 @@ for my $ext (keys %deps_aux) {
        'canl' => 'emi-',
 );
 
+%cvs_tag_suffix = (
+       'lb' => '',
+       'jp' => '',
+       'jobid' => '',
+       'lbjp-common' => '',
+       'gridsite' => '-core',
+       'px' => '',
+       'canl' => '',
+);
+
+
 # ==== projects specification ====
 # etics_name ........... ETICS project name
 # conf_prefix .......... ETICS configurations name prefix
@@ -893,6 +907,7 @@ for my $ext (keys %deps_aux) {
                etics_name => 'org.glite',
                conf_prefix => { %cvs_tag_prefix },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour=${globus.thr.flavor} --nothrflavour=${globus.nothr.flavor}',
                local_prefix => '',
                etics_externs => {
@@ -910,7 +925,6 @@ for my $ext (keys %deps_aux) {
                                glue_schema=>'glue-schema',
                                trustmanager=>'org.glite.security.trustmanager',
                                axis=>'axis',
-                               lcas=>'org.glite.security.lcas',
                                gsoapxx=>'-',
                                jdk=>'jdk',
                                voms=>'org.glite.security.voms-api-cpp',
@@ -924,7 +938,7 @@ for my $ext (keys %deps_aux) {
                },
                etics_projects => {
                        vdt=>[qw/globus globus_essentials globus_proxy_utils gpt/],
-                       'org.glite'=>[qw/voms gridsite lcas gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
+                       'org.glite'=>[qw/voms gridsite gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
                },
                etics_locations => {
                        '*' => '',
@@ -963,6 +977,7 @@ for my $ext (keys %deps_aux) {
                        'canl' => 'emi-',
                },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour= --nothrflavour=',
                local_prefix => '/usr',
                etics_externs => {
@@ -980,7 +995,6 @@ for my $ext (keys %deps_aux) {
                                trustmanager=>'emi.java-security.trustmanager',
                                trustmanager_axis=>'emi.java-security.trustmanager-axis',
                                axis=>'axis1.4',
-                               lcas=>'emi.sac.lcas',
                                gsoapxx=>'-',
                                jdk=>'java',
                                voms => 'emi.voms.voms-api',
@@ -1050,7 +1064,7 @@ for my $ext (keys %deps_aux) {
                        },
                },
                etics_projects => {
-                       'emi'=>[qw/voms voms-devel gridsite lcas gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
+                       'emi'=>[qw/voms voms-devel gridsite gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
                },
                etics_locations => {
                        axis => 'axis',
@@ -1214,7 +1228,7 @@ sub get_version
                while (<V>) {
                        chomp;
                        ($major,$minor,$rev) = ($1,$2,$3) if /module\.version\s*=\s*([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)/;
-                       $age = $1 if /module\.age\s*=\s*([[:digit:]]+)/;
+                       $age = $1 if /module\.age\s*=\s*(\S+)/;
                }
                close V;
                $_ = $old_;
@@ -1360,6 +1374,55 @@ top_srcdir = $top_srcdir
 
        print MKINC "gsoap_default_version=".gsoap_version()."\n"  if $need_gsoap;
 
+       print MKINC '
+-include ${top_srcdir}/project/version.properties
+version=${module.version}
+
+${package}-${version}.tar.gz:
+       rm -rf dist
+       for dist in ${SOURCES} ${SOURCES_EXEC} configure project/ChangeLog project/debian.* project/*.spec project/package.* project/version.properties; do \
+               dir=${package}-${version}/`dirname $$dist`; \
+               mkdir -p dist/$$dir || :; \
+               install -m 0644 ${top_srcdir}/$$dist dist/$$dir; \
+       done
+       for dist in ${SOURCES_EXEC} configure; do \
+               chmod +x dist/${package}-${version}/$$dist; \
+       done
+       (cd dist; tar -czf ${package}-${version}.tar.gz ${package}-${version})
+       mv dist/${package}-${version}.tar.gz .
+
+dist: ${package}-${version}.tar.gz
+
+distcheck: ${package}-${version}.tar.gz
+       rm -rf dist
+       mkdir -p dist
+       cp ${package}-${version}.tar.gz dist
+       (cd dist; tar -xzf ${package}-${version}.tar.gz)
+       a=`(cd dist/${package}-${version}; find . -type f | sort)`; \
+       b=`(cd ${top_srcdir}; find . -path ./dist -prune -or -type f -print | sort)`; \
+       echo "$$a" >dist/files-dist; \
+       echo "$$b" | egrep -v "(^./Makefile.inc$$|^./${package}-${version}.tar.gz$$|^./debian|^./[^/]*.spec$$|\.cvsignore|^\./project/changelog$$|/CVS)" >dist/files-original
+       diff -U0 dist/files-dist dist/files-original
+
+rpm: ${package}-${version}.tar.gz
+       dir=dist/rpm_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir/BUILD $$dir/RPMS $$dir/SOURCES $$dir/SRPMS; \
+       cp ${package}-${version}.tar.gz $$dir/SOURCES/${package}-${version}-${module.age}.src.tar.gz && \
+       rpmbuild -bs --nodeps --define "_topdir $$dir" ${package}.spec && \
+       cp -v $$dir/SRPMS/*.src.rpm dist/
+
+deb: ${package}-${version}.tar.gz
+       dir=dist/dpkg_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir; \
+       cp ${package}-${version}.tar.gz $$dir/${package}_${version}.orig.tar.gz && \
+       tar zxf $$dir/${package}_${version}.orig.tar.gz -C $$dir && \
+       cp -rf debian/ $$dir/${package}-${version} && \
+       (cd $$dir/${package}-${version} && dpkg-buildpackage -S -d -nc -us -uc) && \
+       cp -v $$dir/*.tar.gz $$dir/*.dsc dist/
+';
+
        close MKINC;
 
        my $dh;
@@ -1412,43 +1475,48 @@ top_srcdir = $top_srcdir
                }
        }
 
-       print "Creating ${build}debian/\n" if ($debug);;
-
-       `rm -rfv  ${build}debian`;
-       mkdir $build."debian" or die $!;
-       `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
-       `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
-       `rm -f ${build}debian/*.orig`;
-       opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
-       for $_ (readdir $dh) {
-               if (/^debian\.(.*)/) {
-                       `mv ${build}debian/$_ ${build}debian/$1`;
-                       $debian = 1;
+       if ($module and -d $build."debian") {
+               print "Skipping ${build}debian/ (no rewrite in single module mode)\n" if ($debug);
+               `rm -f ${build}debian.*`;
+       } else {
+               print "Creating ${build}debian/\n" if ($debug);;
+
+               `rm -rfv  ${build}debian`;
+               mkdir $build."debian" or die $!;
+               `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
+               `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
+               `rm -f ${build}debian/*.orig`;
+               opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
+               for $_ (readdir $dh) {
+                       if (/^debian\.(.*)/) {
+                               `mv ${build}debian/$_ ${build}debian/$1`;
+                               $debian = 1;
+                       }
                }
-       }
-       closedir $dh;
+               closedir $dh;
 
-       if ($debian) {
-               my ($dir, $file);
+               if ($debian) {
+                       my ($dir, $file);
 
-               chmod 0755, "${build}debian/rules";
-               $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
-               $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
-               $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
-               $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
-               $file="${build}debian/changelog"; if (not -f $file) {
-                       open FH, ">$file" or die $!;
-                       print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
+                       chmod 0755, "${build}debian/rules";
+                       $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
+                       $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
+                       $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
+                       $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
+                       $file="${build}debian/changelog"; if (not -f $file) {
+                               open FH, ">$file" or die $!;
+                               print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
 
   * Automatically generated package
 
  -- $package{maintainer}  $debdate
 };
-                       close FH;
-               }
+                               close FH;
+                       }
 
-       } else {
-               `rm -rf ${build}debian`;
+               } else {
+                       `rm -rf ${build}debian`;
+               }
        }
 }
 
@@ -1460,16 +1528,18 @@ sub mode_etics_packaging {
        my ($workspaceDir, $srcPackageName, $srcAge, $topDir);
 
        # old-school packaging by ETICS for EMI-1
-       if ($project eq 'emi' and $project_version == 1) { return; }
+       if ($project eq 'emi' and $project_version == 1 and $fmod ne 'gridsite.core') { return; }
 
        if ($fmod eq 'gridsite.core') {
                $workspaceDir = '..';
                $srcPackageName = 'gridsite';
+               $srcTarBall = "../$srcPackageName-\${version}.src.tar.gz";
                $srcAge = '';
                $topDir = '../';
        } else {
                $workspaceDir = '${workspaceDir}';
                $srcPackageName = '${packageName}';
+               $srcTarBall = "$srcPackageName-\${version}.tar.gz";
                $srcAge = '-${age}';
                $topDir = '';
        }
@@ -1479,8 +1549,8 @@ sub mode_etics_packaging {
        $cmd->{default}{packaging} = $rpmprepare;
        $cmd->{default}{packaging} .= "dir=\${workspaceDir}/rpm_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SRPMSLocation} \$dir/{BUILD,RPMS,SOURCES,SRPMS} 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/SOURCES/
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/SOURCES/$srcPackageName-\${version}${srcAge}.src.tar.gz
        rpmbuild -bs --nodeps --define \"_topdir \$dir\" $srcPackageName.spec
        cp -v \$dir/SRPMS/*.src.rpm \${package.SRPMSLocation}/
        rm -rf \$dir";
@@ -1492,8 +1562,8 @@ sub mode_etics_packaging {
                $cmd->{$p}{packaging} = $debprepare;
                $cmd->{$p}{packaging} .= "dir=\${workspaceDir}/dpkg_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SDEBSLocation} \$dir 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/${srcPackageName}_\${version}.orig.tar.gz
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/${srcPackageName}_\${version}.orig.tar.gz
        tar xzf \$dir/${srcPackageName}_\${version}.orig.tar.gz -C \$dir
        cp -rf ${topDir}debian/ \$dir/$srcPackageName-\${version}/
        cd \$dir/$srcPackageName-\${version}
@@ -1564,7 +1634,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}_R_${major}_${minor}_${rev}" : 
+               $conftag = $subsys eq 'gridsite' ? "$project{tag_prefix}{$subsys}${subsys}$project{tag_suffix}{$subsys}_R_${major}_${minor}_${rev}" : 
                        "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}_${age}";
 
                # lowering age for older packaging
@@ -1603,7 +1673,6 @@ sub mode_etics {
        #$cmd_vcs{checkout} = "((test -d jra1mw/.git && (cd jra1mw; git pull)) || (git clone -q http://scientific.zcu.cz/git/jra1mw.git";
        #$cmd_vcs{checkout} .= " && (cd jra1mw; git checkout -b \${tag} --track origin/\${tag})" unless ($conftag eq /HEAD/);
        #$cmd_vcs{checkout} .= ")) && (test -d \${moduleName} || ln -s jra1mw/$cvs_module \${moduleName})";
-       $cmd_vcs{checkout} .= "\n\ttest -f \${packageName}-\${version}-\${age}.src.tar.gz || (ln -s \${moduleName} \${packageName}-\${version}; tar -chf - \${packageName}-\${version} --exclude CVS --exclude .git --exclude .etics | gzip --best > \${packageName}-\${version}-\${age}.src.tar.gz; rm \${packageName}-\${version})";
        $cmd_vcs{tag} = "cvs -d \${vcsroot} tag -R \${tag} ${moduleName}";
 
        $cmd{default}{init} = 'None';
@@ -1695,7 +1764,7 @@ sub mode_etics {
                        $cmd{default}{compile} = "make rpath=$project{local_prefix}/\${libdir}";
                        $cmd{default}{install} = "make install post-install rpath=$project{local_prefix}/\${libdir}";
                }
-               mode_etics_packaging($fmod, \%cmd);
+               mode_etics_packaging($fmod, \%cmd, "make dist\n\t", "make dist\n\t");
        }
 
        my $defprops = '';
index 8bc8742..8f37704 100644 (file)
@@ -19,6 +19,9 @@
 1.1.1-4
 - Module rebuilt
 
+1.1.1-5
+- Module rebuilt
+
 1.2.0-1
 - Merge from branch_3_2
 
index 4b28982..3e33d30 100644 (file)
@@ -104,6 +104,12 @@ ifneq (${classads_prefix},/usr)
 endif
 CLASSADS_CFLAGS?=-I${classads_prefix}/include -I${classads_prefix}/include/classad
 CLASSADS_LIBS?=${classads_libs} -lclassad
+classad_namespace:=${shell if ${classads_prefix}/bin/classad_version | grep -i 'classad namespace.*yes' >/dev/null; then echo yes; fi}
+ifeq (${classad_namespace},yes)
+CLASSADS_CFLAGS+=-DCLASSAD_NAMESPACE=classad::
+else
+CLASSADS_CFLAGS+=-DCLASSAD_NAMESPACE=
+endif
 
 ifneq (${cares_prefix},/usr)
        cares_libs := -L${cares_prefix}/${libdir} -L${cares_prefix}/lib
@@ -112,7 +118,13 @@ LIBCARES_CFLAGS?=-I${cares_prefix}/include
 LIBCARES_LIBS?=${cares_libs} -lcares
 
 GSOAP_CFLAGS?=-I${gsoap_prefix}/include -I${gsoap_prefix}/
+ifeq (${expat_prefix},/usr)
+EXPAT_CFLAGS?=
+EXPAT_LIBS?=-lexpat
+else
 EXPAT_CFLAGS?=-I${expat_prefix}/include
+EXPAT_LIBS?=-L${expat_prefix}/${libdir} -lexpat
+endif
 GLOBUS_GSSAPI_GSI_CFLAGS?=-I${globus_prefix}/include/${nothrflavour}
 KERBEROS_GSSAPI_GSI_CFLAGS=-DNO_GLOBUS_GSSAPI
 
@@ -181,7 +193,6 @@ XSLTPROC:=xsltproc --novalid
 gsoap_bin_prefix:=${shell if [ -x  ${gsoap_prefix}/bin/soapcpp2 ]; then echo ${gsoap_prefix}/bin; else echo ${gsoap_prefix}; fi }
 
 EXT_LIBS:=  \
-       -lz \
        ${GRIDSITE_LIBS} \
        ${CLASSADS_LIBS} \
        ${LIBCARES_LIBS} 
@@ -210,7 +221,7 @@ dotless_gsoap_ver:=${shell echo ${gsoap_version} | tr -d . }
 ifeq ($(shell test -f ${stagedir}${prefix}/${libdir}/libglite_security_gsoap_plugin_${dotless_gsoap_ver}${default_flavour}_c.so && echo ok),ok)
        langflavour:=_c
 endif
-GSOAP_LIB:=-L${stagedir}${prefix}/${libdir} -lglite_security_gsoap_plugin_${dotless_gsoap_ver}${default_flavour}${langflavour}
+GSOAP_LIB:=-L${stagedir}${prefix}/${libdir} -lglite_security_gsoap_plugin_${dotless_gsoap_ver}${default_flavour}${langflavour} -lglite_security_gss${default_flavour} ${GSOAP_LIBS}
 
 ifeq ($(GLITE_LB_SERVER_WITH_WS),yes)
        BKSERVER_OBJS:= \
@@ -225,9 +236,11 @@ ifeq ($(GLITE_LB_SERVER_WITH_WS),yes)
                ${LB_UTILS_DB_LIB} \
                ${GSOAP_LIB} \
                ${EXT_LIBS} \
-               ${classadslib} \
+               ${EXPAT_LIBS} \
                -lglite_lbu_maildir \
-               -lglite_lbu_log
+               -lglite_lbu_log \
+               -lglite_lbu_trio \
+               -lglite_jobid
 else
        BKSERVER_OBJS:= ${BKSERVER_BASE_OBJS}
                
@@ -238,9 +251,11 @@ else
                ${LB_UTILS_DB_LIB} \
                -lglite_security_gss${default_flavour} \
                ${EXT_LIBS} \
-               ${classadslib} \
+               ${EXPAT_LIBS} \
                -lglite_lbu_maildir \
-               -lglite_lbu_log
+               -lglite_lbu_log \
+               -lglite_lbu_trio \
+               -lglite_jobid
 endif
 
 INDEX_OBJS:= index.o index_parse.o jobstat_supp.o openserver.o \
@@ -248,7 +263,8 @@ INDEX_OBJS:= index.o index_parse.o jobstat_supp.o openserver.o \
        lb_authz.o store.o bkindex.o stats.o server_stats.o\
        request.o db_store.o srv_purge.o notif_match.o il_lbproxy.o dump.o lb_xml_parse.o il_notification.o lb_proto.o lb_text.o server_state.o lb_xml_parse_V21.o lb_html.o cond_dump.o notification.o seqcode.o userjobs.o load.o db_calls.o db_supp.o lb_rss.o pretty_print_wrapper.o authz_policy.o crypto.o
 
-INDEX_LIBS:= ${SRVBONES_LIB} ${COMMON_LIBS} ${LB_MACHINE_LIB} ${EXT_LIBS} ${LB_UTILS_DB_LIB}
+INDEX_LIBS:= ${SRVBONES_LIB} ${COMMON_LIBS} ${LB_MACHINE_LIB} ${EXT_LIBS} \
+       ${EXPAT_LIBS} ${LB_UTILS_DB_LIB} -lglite_lbu_trio -lglite_jobid
 
 WS_CLIENT_OBJS:= $(GSOAP_FILES_PREFIX)C.o $(GSOAP_FILES_PREFIX)Client.o ws_fault.o ws_typeref.o
 WS_CLIENT_LIBS:= ${GSOAP_LIB} -lglite_lb_common${default_flavour} \
@@ -272,7 +288,8 @@ LIB_OBJS_BK:= \
        crypto.o
 
 MONDB_OBJS:=mon-db.o ${LIB_OBJS_BK}
-MONDB_LIBS:=${COMMON_LIBS} ${LB_MACHINE_LIB} ${LB_UTILS_DB_LIB} ${EXT_LIBS}
+MONDB_LIBS:=${COMMON_LIBS} ${LB_MACHINE_LIB} ${LB_UTILS_DB_LIB} ${EXT_LIBS} \
+       ${EXPAT_LIBS} -lglite_lbu_trio -lglite_jobid
 
 ifeq (${GLITE_LB_SERVER_WITH_LCAS},yes)
 LCAS_PLUGIN_OBJS:=lcas_lb.o
@@ -339,7 +356,7 @@ test.xml: test_xml
 
 test_xml: test_xml.cpp
        ${CXX} -c ${CFLAGS} ${CPPUNIT_CFLAGS} $<
-       ${LINKXX} -o $@ test_xml.o lb_xml_parse.o ${LB_COMMON_LIB} ${CPPUNIT_LIBS}
+       ${LINKXX} -o $@ test_xml.o lb_xml_parse.o ${LB_COMMON_LIB} ${CPPUNIT_LIBS} ${EXPAT_LIBS} -lglite_lbu_trio -lglite_jobid
 
 test.query: test_query_events
        # XXX coredumps ./test_query_events
@@ -350,7 +367,7 @@ query_events_objs := test_query_events.o query.o get_events.o jobstat_supp.o ind
 
 test_query_events: ${query_events_objs}
        ${LINKXX} -o $@ ${query_events_objs} \
-       ${CPPUNIT_LIBS} ${LB_COMMON_LIB} ${LB_MACHINE_LIB} ${classadslib} -lglite_lbu_log
+       ${CPPUNIT_LIBS} ${LB_COMMON_LIB} ${LB_MACHINE_LIB} ${CLASSADS_LIBS} -lglite_lbu_log -lglite_lbu_trio -lglite_security_gss${default_flavour} -lglite_jobid
 
 test.soapconv: test_soap_conv
        LD_LIBRARY_PATH=${cares_prefix}/${libdir}:${classads_prefix}/${libdir}:${LD_LIBRARY_PATH} ./test_soap_conv
index eba7d34..f2880c2 100755 (executable)
@@ -54,8 +54,8 @@ 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 nagios/;
+my @nodes = qw/client server logger logger-msg nagios utils client-java doc ws-test db jpprimary jpindex jpclient harvester lb px proxyrenewal canl/;
+my @default_nodes = qw/lb px proxyrenewal nagios canl/;
 my %enable_nodes;
 my %disable_nodes;
 my %default_nodes; @default_nodes{@default_nodes} = (1) x ($#default_nodes + 1);
@@ -488,7 +488,7 @@ sub mode_build {
 
                print MAK "all: @modules\n\n";
                print MAK "stage: ".(join '-stage ', @modules)."-stage\n\n";
-               print MAK "clean check install:\n";
+               print MAK "clean check install dist distcheck rpm deb:\n";
 
                for (@modules) {
                        my $full = full($_);
@@ -520,6 +520,13 @@ sub mode_build {
                        print MAK "$_-stage: $snames\n\tcd $full/$build && \${MAKE} && \${MAKE} stage\n\n";
                }
 
+               print MAK qq/release-rpm: clean dist distcheck rpm
+
+release-deb: clean dist distcheck deb
+
+.PHONY: all stage clean check install dist distcheck rpm deb release-rpm release-deb
+/;
+
                close MAK;
        }
 }
@@ -870,6 +877,17 @@ for my $ext (keys %deps_aux) {
        'canl' => 'emi-',
 );
 
+%cvs_tag_suffix = (
+       'lb' => '',
+       'jp' => '',
+       'jobid' => '',
+       'lbjp-common' => '',
+       'gridsite' => '-core',
+       'px' => '',
+       'canl' => '',
+);
+
+
 # ==== projects specification ====
 # etics_name ........... ETICS project name
 # conf_prefix .......... ETICS configurations name prefix
@@ -889,6 +907,7 @@ for my $ext (keys %deps_aux) {
                etics_name => 'org.glite',
                conf_prefix => { %cvs_tag_prefix },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour=${globus.thr.flavor} --nothrflavour=${globus.nothr.flavor}',
                local_prefix => '',
                etics_externs => {
@@ -958,6 +977,7 @@ for my $ext (keys %deps_aux) {
                        'canl' => 'emi-',
                },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour= --nothrflavour=',
                local_prefix => '/usr',
                etics_externs => {
@@ -1208,7 +1228,7 @@ sub get_version
                while (<V>) {
                        chomp;
                        ($major,$minor,$rev) = ($1,$2,$3) if /module\.version\s*=\s*([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)/;
-                       $age = $1 if /module\.age\s*=\s*([[:digit:]]+)/;
+                       $age = $1 if /module\.age\s*=\s*(\S+)/;
                }
                close V;
                $_ = $old_;
@@ -1354,6 +1374,55 @@ top_srcdir = $top_srcdir
 
        print MKINC "gsoap_default_version=".gsoap_version()."\n"  if $need_gsoap;
 
+       print MKINC '
+-include ${top_srcdir}/project/version.properties
+version=${module.version}
+
+${package}-${version}.tar.gz:
+       rm -rf dist
+       for dist in ${SOURCES} ${SOURCES_EXEC} configure project/ChangeLog project/debian.* project/*.spec project/package.* project/version.properties; do \
+               dir=${package}-${version}/`dirname $$dist`; \
+               mkdir -p dist/$$dir || :; \
+               install -m 0644 ${top_srcdir}/$$dist dist/$$dir; \
+       done
+       for dist in ${SOURCES_EXEC} configure; do \
+               chmod +x dist/${package}-${version}/$$dist; \
+       done
+       (cd dist; tar -czf ${package}-${version}.tar.gz ${package}-${version})
+       mv dist/${package}-${version}.tar.gz .
+
+dist: ${package}-${version}.tar.gz
+
+distcheck: ${package}-${version}.tar.gz
+       rm -rf dist
+       mkdir -p dist
+       cp ${package}-${version}.tar.gz dist
+       (cd dist; tar -xzf ${package}-${version}.tar.gz)
+       a=`(cd dist/${package}-${version}; find . -type f | sort)`; \
+       b=`(cd ${top_srcdir}; find . -path ./dist -prune -or -type f -print | sort)`; \
+       echo "$$a" >dist/files-dist; \
+       echo "$$b" | egrep -v "(^./Makefile.inc$$|^./${package}-${version}.tar.gz$$|^./debian|^./[^/]*.spec$$|\.cvsignore|^\./project/changelog$$|/CVS)" >dist/files-original
+       diff -U0 dist/files-dist dist/files-original
+
+rpm: ${package}-${version}.tar.gz
+       dir=dist/rpm_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir/BUILD $$dir/RPMS $$dir/SOURCES $$dir/SRPMS; \
+       cp ${package}-${version}.tar.gz $$dir/SOURCES/${package}-${version}-${module.age}.src.tar.gz && \
+       rpmbuild -bs --nodeps --define "_topdir $$dir" ${package}.spec && \
+       cp -v $$dir/SRPMS/*.src.rpm dist/
+
+deb: ${package}-${version}.tar.gz
+       dir=dist/dpkg_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir; \
+       cp ${package}-${version}.tar.gz $$dir/${package}_${version}.orig.tar.gz && \
+       tar zxf $$dir/${package}_${version}.orig.tar.gz -C $$dir && \
+       cp -rf debian/ $$dir/${package}-${version} && \
+       (cd $$dir/${package}-${version} && dpkg-buildpackage -S -d -nc -us -uc) && \
+       cp -v $$dir/*.tar.gz $$dir/*.dsc dist/
+';
+
        close MKINC;
 
        my $dh;
@@ -1406,43 +1475,48 @@ top_srcdir = $top_srcdir
                }
        }
 
-       print "Creating ${build}debian/\n" if ($debug);;
-
-       `rm -rfv  ${build}debian`;
-       mkdir $build."debian" or die $!;
-       `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
-       `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
-       `rm -f ${build}debian/*.orig`;
-       opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
-       for $_ (readdir $dh) {
-               if (/^debian\.(.*)/) {
-                       `mv ${build}debian/$_ ${build}debian/$1`;
-                       $debian = 1;
+       if ($module and -d $build."debian") {
+               print "Skipping ${build}debian/ (no rewrite in single module mode)\n" if ($debug);
+               `rm -f ${build}debian.*`;
+       } else {
+               print "Creating ${build}debian/\n" if ($debug);;
+
+               `rm -rfv  ${build}debian`;
+               mkdir $build."debian" or die $!;
+               `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
+               `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
+               `rm -f ${build}debian/*.orig`;
+               opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
+               for $_ (readdir $dh) {
+                       if (/^debian\.(.*)/) {
+                               `mv ${build}debian/$_ ${build}debian/$1`;
+                               $debian = 1;
+                       }
                }
-       }
-       closedir $dh;
+               closedir $dh;
 
-       if ($debian) {
-               my ($dir, $file);
+               if ($debian) {
+                       my ($dir, $file);
 
-               chmod 0755, "${build}debian/rules";
-               $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
-               $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
-               $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
-               $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
-               $file="${build}debian/changelog"; if (not -f $file) {
-                       open FH, ">$file" or die $!;
-                       print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
+                       chmod 0755, "${build}debian/rules";
+                       $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
+                       $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
+                       $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
+                       $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
+                       $file="${build}debian/changelog"; if (not -f $file) {
+                               open FH, ">$file" or die $!;
+                               print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
 
   * Automatically generated package
 
  -- $package{maintainer}  $debdate
 };
-                       close FH;
-               }
+                               close FH;
+                       }
 
-       } else {
-               `rm -rf ${build}debian`;
+               } else {
+                       `rm -rf ${build}debian`;
+               }
        }
 }
 
@@ -1459,11 +1533,13 @@ sub mode_etics_packaging {
        if ($fmod eq 'gridsite.core') {
                $workspaceDir = '..';
                $srcPackageName = 'gridsite';
+               $srcTarBall = "../$srcPackageName-\${version}.src.tar.gz";
                $srcAge = '';
                $topDir = '../';
        } else {
                $workspaceDir = '${workspaceDir}';
                $srcPackageName = '${packageName}';
+               $srcTarBall = "$srcPackageName-\${version}.tar.gz";
                $srcAge = '-${age}';
                $topDir = '';
        }
@@ -1473,8 +1549,8 @@ sub mode_etics_packaging {
        $cmd->{default}{packaging} = $rpmprepare;
        $cmd->{default}{packaging} .= "dir=\${workspaceDir}/rpm_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SRPMSLocation} \$dir/{BUILD,RPMS,SOURCES,SRPMS} 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/SOURCES/
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/SOURCES/$srcPackageName-\${version}${srcAge}.src.tar.gz
        rpmbuild -bs --nodeps --define \"_topdir \$dir\" $srcPackageName.spec
        cp -v \$dir/SRPMS/*.src.rpm \${package.SRPMSLocation}/
        rm -rf \$dir";
@@ -1486,8 +1562,8 @@ sub mode_etics_packaging {
                $cmd->{$p}{packaging} = $debprepare;
                $cmd->{$p}{packaging} .= "dir=\${workspaceDir}/dpkg_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SDEBSLocation} \$dir 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/${srcPackageName}_\${version}.orig.tar.gz
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/${srcPackageName}_\${version}.orig.tar.gz
        tar xzf \$dir/${srcPackageName}_\${version}.orig.tar.gz -C \$dir
        cp -rf ${topDir}debian/ \$dir/$srcPackageName-\${version}/
        cd \$dir/$srcPackageName-\${version}
@@ -1558,7 +1634,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}_R_${major}_${minor}_${rev}" : 
+               $conftag = $subsys eq 'gridsite' ? "$project{tag_prefix}{$subsys}${subsys}$project{tag_suffix}{$subsys}_R_${major}_${minor}_${rev}" : 
                        "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}_${age}";
 
                # lowering age for older packaging
@@ -1597,7 +1673,6 @@ sub mode_etics {
        #$cmd_vcs{checkout} = "((test -d jra1mw/.git && (cd jra1mw; git pull)) || (git clone -q http://scientific.zcu.cz/git/jra1mw.git";
        #$cmd_vcs{checkout} .= " && (cd jra1mw; git checkout -b \${tag} --track origin/\${tag})" unless ($conftag eq /HEAD/);
        #$cmd_vcs{checkout} .= ")) && (test -d \${moduleName} || ln -s jra1mw/$cvs_module \${moduleName})";
-       $cmd_vcs{checkout} .= "\n\ttest -f \${packageName}-\${version}-\${age}.src.tar.gz || (ln -s \${moduleName} \${packageName}-\${version}; tar -chf - \${packageName}-\${version} --exclude CVS --exclude .git --exclude .etics | gzip --best > \${packageName}-\${version}-\${age}.src.tar.gz; rm \${packageName}-\${version})";
        $cmd_vcs{tag} = "cvs -d \${vcsroot} tag -R \${tag} ${moduleName}";
 
        $cmd{default}{init} = 'None';
@@ -1689,7 +1764,7 @@ sub mode_etics {
                        $cmd{default}{compile} = "make rpath=$project{local_prefix}/\${libdir}";
                        $cmd{default}{install} = "make install post-install rpath=$project{local_prefix}/\${libdir}";
                }
-               mode_etics_packaging($fmod, \%cmd);
+               mode_etics_packaging($fmod, \%cmd, "make dist\n\t", "make dist\n\t");
        }
 
        my $defprops = '';
index 4862120..b134eab 100644 (file)
   - 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)
 
+2.3.6-1
+- Improved building and packaging for Fedora
+- New convenience function to check current user's (ctx) authorization for actions
+- Fixed dump/load
+  - Generate fake registration events for subjobs on dump
+  - Register jobs on load, recalculate states
+  - Greyjobs temporarily allowed when loading from a dump file
+  - Not only events but also jobs stored in DB on load (SB #92557, SB #92564)
+  - Jobs registered on load, states recalculated
+- Fixed crash when building with -O2
+- Fixed handling of READ_ANONYMIZED permission in queries
+- Owner-based conditions forbidden in notif registrations if the only authorization category is READ_ANONYMIZED (fixes a possible security issue)
+- Fixed crash when running without owner index.
+- Job listing over HTML simplified (algorithm complexity reduced)
+- HTML/text output production now in a single function
+- Server statistics available in text format as well as in HTML
+- Stats list constructed systematically
+- Error code returned if statistics cannot be retireved
+- The READ_ALL auth rule observed in event-only queries. Fix for SB #92128
+- End of notification stream also when error occures. Preventively keep ending item in the array anyway.
+- Fixed the <> relationship evaluation for JDL attribute queries
+- CREAM jobs also turned to zombies on purge
+
 2.4.0-1
 - Resolved packaging warnings
 - Job status queries over socket enabled (fixes the proxy purge, second part of the SB #88630)
index b7de13e..06b19d3 100644 (file)
@@ -200,7 +200,7 @@ int edg_wll_JobStatusServer(
                                                        edg_wll_SetError(ctx, ENOMEM, "edg_wll_JobStatusServer() calloc children_states failed!");
                                                        goto rollback;
                                                }
-                                               while ((num_f = edg_wll_FetchRow(ctx, sh, sizeof(out_stat), NULL, out_stat)) == 3
+                                               while ((num_f = edg_wll_FetchRow(ctx, sh, sizeof(out_stat)/sizeof(out_stat[0]), NULL, out_stat)) == 3
                                                        && i < num_sub) {
                                                        if (!strcmp(INTSTAT_VERSION,out_stat[0])) {
                                                                js = dec_intJobStat(out_stat[1], &s_out);
index 8acd280..d8968d6 100644 (file)
@@ -22,8 +22,8 @@ limitations under the License.
 #include <string.h>
 
 int pretty_print(char *jdl, char **formated_print){
-       ClassAd        *classad;
-       ClassAdParser  parser;
+       CLASSAD_NAMESPACE ClassAd        *classad;
+       CLASSAD_NAMESPACE ClassAdParser  parser;
 
        classad = parser.ParseClassAd(std::string(jdl), true);
        if (! classad){
@@ -31,7 +31,7 @@ int pretty_print(char *jdl, char **formated_print){
                return -1;      // not ClassAd data
        }
 
-       PrettyPrint     pp;
+       CLASSAD_NAMESPACE PrettyPrint   pp;
        std::string buf;
        pp.Unparse(buf, classad);
        *formated_print = strdup(buf.c_str());
index ff7fecb..abd676f 100644 (file)
@@ -359,24 +359,30 @@ static int queryjobs_cb(edg_wll_Context ctx, glite_jobid_t jobid, edg_wll_JobSta
        size_t maxn = store->maxn;
        void *tmp;
 
-       if (n >= maxn) {
+       // one more item for the array ending shouldn't be needed,
+       // only preventively here
+       if (n + 1 >= maxn) {
                maxn = maxn ? maxn << 1 : 256;
-               if ((tmp = realloc(store->jobs, maxn * sizeof(*store->jobs))) == NULL)
+               if ((tmp = realloc(store->jobs, (maxn + 1) * sizeof(*store->jobs))) == NULL)
                        return edg_wll_SetError(ctx, errno ? : ENOMEM, NULL);
                store->jobs = tmp;
 
                if (!(store->flags & EDG_WLL_STAT_NO_STATES)) {
-                       if ((tmp = realloc(store->states, maxn * sizeof(*store->states))) == NULL)
+                       if ((tmp = realloc(store->states, (maxn + 1) * sizeof(*store->states))) == NULL)
                                return edg_wll_SetError(ctx, errno ? : ENOMEM, NULL);
                        store->states = tmp;
                }
 
                store->maxn = maxn;
        }
+
        store->jobs[n] = jobid;
+       store->jobs[n + 1] = NULL;
+
        if (!(store->flags & EDG_WLL_STAT_NO_STATES)) {
                if (status) store->states[n] = *status;
                else memset(&store->states[n], 0, sizeof(*store->states));
+               memset(&store->states[n + 1], 0, sizeof(*store->states));
        }
        store->n++;
 
@@ -675,10 +681,10 @@ limit_cycle_cleanup:
                }
        }
 
+cleanup:
        // finish
        cb(ctx, NULL, NULL, data);
 
-cleanup:
        free(qbase);
        free(state_where);
        free(tags_where);
@@ -1747,8 +1753,8 @@ int match_status(edg_wll_Context ctx, const edg_wll_JobStat *oldstat, const edg_
 
                                                if ( !strcmp(conds[i][j].value.c, extr_val) ) {
                                                        if ( conds[i][j].op == EDG_WLL_QUERY_OP_EQUAL ) goto or_satisfied;
-                                                       else if ( conds[i][j].op == EDG_WLL_QUERY_OP_UNEQUAL ) goto or_satisfied;
                                                }
+                                               else if ( conds[i][j].op == EDG_WLL_QUERY_OP_UNEQUAL ) goto or_satisfied;
                                        }
                                }
                                break;
index 4be8ff9..f2880c2 100755 (executable)
@@ -54,8 +54,8 @@ 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 nagios/;
+my @nodes = qw/client server logger logger-msg nagios utils client-java doc ws-test db jpprimary jpindex jpclient harvester lb px proxyrenewal canl/;
+my @default_nodes = qw/lb px proxyrenewal nagios canl/;
 my %enable_nodes;
 my %disable_nodes;
 my %default_nodes; @default_nodes{@default_nodes} = (1) x ($#default_nodes + 1);
@@ -126,10 +126,6 @@ my %externs = (
        gridsite => {
                prefix => '/opt/glite'
        },
-       lcas => {
-               prefix => '/opt/glite',
-               pkg => 'lcas'
-       },
        trustmanager => {
                prefix => '/opt/glite'
        },
@@ -492,7 +488,7 @@ sub mode_build {
 
                print MAK "all: @modules\n\n";
                print MAK "stage: ".(join '-stage ', @modules)."-stage\n\n";
-               print MAK "clean check install:\n";
+               print MAK "clean check install dist distcheck rpm deb:\n";
 
                for (@modules) {
                        my $full = full($_);
@@ -524,6 +520,13 @@ sub mode_build {
                        print MAK "$_-stage: $snames\n\tcd $full/$build && \${MAKE} && \${MAKE} stage\n\n";
                }
 
+               print MAK qq/release-rpm: clean dist distcheck rpm
+
+release-deb: clean dist distcheck deb
+
+.PHONY: all stage clean check install dist distcheck rpm deb release-rpm release-deb
+/;
+
                close MAK;
        }
 }
@@ -600,7 +603,7 @@ BEGIN{
        '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:B voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B pkgconfig:B/ ],
+       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads:B voms:B 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/ ],
@@ -874,6 +877,17 @@ for my $ext (keys %deps_aux) {
        'canl' => 'emi-',
 );
 
+%cvs_tag_suffix = (
+       'lb' => '',
+       'jp' => '',
+       'jobid' => '',
+       'lbjp-common' => '',
+       'gridsite' => '-core',
+       'px' => '',
+       'canl' => '',
+);
+
+
 # ==== projects specification ====
 # etics_name ........... ETICS project name
 # conf_prefix .......... ETICS configurations name prefix
@@ -893,6 +907,7 @@ for my $ext (keys %deps_aux) {
                etics_name => 'org.glite',
                conf_prefix => { %cvs_tag_prefix },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour=${globus.thr.flavor} --nothrflavour=${globus.nothr.flavor}',
                local_prefix => '',
                etics_externs => {
@@ -910,7 +925,6 @@ for my $ext (keys %deps_aux) {
                                glue_schema=>'glue-schema',
                                trustmanager=>'org.glite.security.trustmanager',
                                axis=>'axis',
-                               lcas=>'org.glite.security.lcas',
                                gsoapxx=>'-',
                                jdk=>'jdk',
                                voms=>'org.glite.security.voms-api-cpp',
@@ -924,7 +938,7 @@ for my $ext (keys %deps_aux) {
                },
                etics_projects => {
                        vdt=>[qw/globus globus_essentials globus_proxy_utils gpt/],
-                       'org.glite'=>[qw/voms gridsite lcas gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
+                       'org.glite'=>[qw/voms gridsite gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
                },
                etics_locations => {
                        '*' => '',
@@ -963,6 +977,7 @@ for my $ext (keys %deps_aux) {
                        'canl' => 'emi-',
                },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour= --nothrflavour=',
                local_prefix => '/usr',
                etics_externs => {
@@ -980,7 +995,6 @@ for my $ext (keys %deps_aux) {
                                trustmanager=>'emi.java-security.trustmanager',
                                trustmanager_axis=>'emi.java-security.trustmanager-axis',
                                axis=>'axis1.4',
-                               lcas=>'emi.sac.lcas',
                                gsoapxx=>'-',
                                jdk=>'java',
                                voms => 'emi.voms.voms-api',
@@ -1050,7 +1064,7 @@ for my $ext (keys %deps_aux) {
                        },
                },
                etics_projects => {
-                       'emi'=>[qw/voms voms-devel gridsite lcas gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
+                       'emi'=>[qw/voms voms-devel gridsite gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
                },
                etics_locations => {
                        axis => 'axis',
@@ -1214,7 +1228,7 @@ sub get_version
                while (<V>) {
                        chomp;
                        ($major,$minor,$rev) = ($1,$2,$3) if /module\.version\s*=\s*([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)/;
-                       $age = $1 if /module\.age\s*=\s*([[:digit:]]+)/;
+                       $age = $1 if /module\.age\s*=\s*(\S+)/;
                }
                close V;
                $_ = $old_;
@@ -1360,6 +1374,55 @@ top_srcdir = $top_srcdir
 
        print MKINC "gsoap_default_version=".gsoap_version()."\n"  if $need_gsoap;
 
+       print MKINC '
+-include ${top_srcdir}/project/version.properties
+version=${module.version}
+
+${package}-${version}.tar.gz:
+       rm -rf dist
+       for dist in ${SOURCES} ${SOURCES_EXEC} configure project/ChangeLog project/debian.* project/*.spec project/package.* project/version.properties; do \
+               dir=${package}-${version}/`dirname $$dist`; \
+               mkdir -p dist/$$dir || :; \
+               install -m 0644 ${top_srcdir}/$$dist dist/$$dir; \
+       done
+       for dist in ${SOURCES_EXEC} configure; do \
+               chmod +x dist/${package}-${version}/$$dist; \
+       done
+       (cd dist; tar -czf ${package}-${version}.tar.gz ${package}-${version})
+       mv dist/${package}-${version}.tar.gz .
+
+dist: ${package}-${version}.tar.gz
+
+distcheck: ${package}-${version}.tar.gz
+       rm -rf dist
+       mkdir -p dist
+       cp ${package}-${version}.tar.gz dist
+       (cd dist; tar -xzf ${package}-${version}.tar.gz)
+       a=`(cd dist/${package}-${version}; find . -type f | sort)`; \
+       b=`(cd ${top_srcdir}; find . -path ./dist -prune -or -type f -print | sort)`; \
+       echo "$$a" >dist/files-dist; \
+       echo "$$b" | egrep -v "(^./Makefile.inc$$|^./${package}-${version}.tar.gz$$|^./debian|^./[^/]*.spec$$|\.cvsignore|^\./project/changelog$$|/CVS)" >dist/files-original
+       diff -U0 dist/files-dist dist/files-original
+
+rpm: ${package}-${version}.tar.gz
+       dir=dist/rpm_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir/BUILD $$dir/RPMS $$dir/SOURCES $$dir/SRPMS; \
+       cp ${package}-${version}.tar.gz $$dir/SOURCES/${package}-${version}-${module.age}.src.tar.gz && \
+       rpmbuild -bs --nodeps --define "_topdir $$dir" ${package}.spec && \
+       cp -v $$dir/SRPMS/*.src.rpm dist/
+
+deb: ${package}-${version}.tar.gz
+       dir=dist/dpkg_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir; \
+       cp ${package}-${version}.tar.gz $$dir/${package}_${version}.orig.tar.gz && \
+       tar zxf $$dir/${package}_${version}.orig.tar.gz -C $$dir && \
+       cp -rf debian/ $$dir/${package}-${version} && \
+       (cd $$dir/${package}-${version} && dpkg-buildpackage -S -d -nc -us -uc) && \
+       cp -v $$dir/*.tar.gz $$dir/*.dsc dist/
+';
+
        close MKINC;
 
        my $dh;
@@ -1412,43 +1475,48 @@ top_srcdir = $top_srcdir
                }
        }
 
-       print "Creating ${build}debian/\n" if ($debug);;
-
-       `rm -rfv  ${build}debian`;
-       mkdir $build."debian" or die $!;
-       `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
-       `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
-       `rm -f ${build}debian/*.orig`;
-       opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
-       for $_ (readdir $dh) {
-               if (/^debian\.(.*)/) {
-                       `mv ${build}debian/$_ ${build}debian/$1`;
-                       $debian = 1;
+       if ($module and -d $build."debian") {
+               print "Skipping ${build}debian/ (no rewrite in single module mode)\n" if ($debug);
+               `rm -f ${build}debian.*`;
+       } else {
+               print "Creating ${build}debian/\n" if ($debug);;
+
+               `rm -rfv  ${build}debian`;
+               mkdir $build."debian" or die $!;
+               `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
+               `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
+               `rm -f ${build}debian/*.orig`;
+               opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
+               for $_ (readdir $dh) {
+                       if (/^debian\.(.*)/) {
+                               `mv ${build}debian/$_ ${build}debian/$1`;
+                               $debian = 1;
+                       }
                }
-       }
-       closedir $dh;
+               closedir $dh;
 
-       if ($debian) {
-               my ($dir, $file);
+               if ($debian) {
+                       my ($dir, $file);
 
-               chmod 0755, "${build}debian/rules";
-               $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
-               $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
-               $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
-               $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
-               $file="${build}debian/changelog"; if (not -f $file) {
-                       open FH, ">$file" or die $!;
-                       print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
+                       chmod 0755, "${build}debian/rules";
+                       $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
+                       $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
+                       $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
+                       $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
+                       $file="${build}debian/changelog"; if (not -f $file) {
+                               open FH, ">$file" or die $!;
+                               print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
 
   * Automatically generated package
 
  -- $package{maintainer}  $debdate
 };
-                       close FH;
-               }
+                               close FH;
+                       }
 
-       } else {
-               `rm -rf ${build}debian`;
+               } else {
+                       `rm -rf ${build}debian`;
+               }
        }
 }
 
@@ -1465,11 +1533,13 @@ sub mode_etics_packaging {
        if ($fmod eq 'gridsite.core') {
                $workspaceDir = '..';
                $srcPackageName = 'gridsite';
+               $srcTarBall = "../$srcPackageName-\${version}.src.tar.gz";
                $srcAge = '';
                $topDir = '../';
        } else {
                $workspaceDir = '${workspaceDir}';
                $srcPackageName = '${packageName}';
+               $srcTarBall = "$srcPackageName-\${version}.tar.gz";
                $srcAge = '-${age}';
                $topDir = '';
        }
@@ -1479,8 +1549,8 @@ sub mode_etics_packaging {
        $cmd->{default}{packaging} = $rpmprepare;
        $cmd->{default}{packaging} .= "dir=\${workspaceDir}/rpm_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SRPMSLocation} \$dir/{BUILD,RPMS,SOURCES,SRPMS} 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/SOURCES/
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/SOURCES/$srcPackageName-\${version}${srcAge}.src.tar.gz
        rpmbuild -bs --nodeps --define \"_topdir \$dir\" $srcPackageName.spec
        cp -v \$dir/SRPMS/*.src.rpm \${package.SRPMSLocation}/
        rm -rf \$dir";
@@ -1492,8 +1562,8 @@ sub mode_etics_packaging {
                $cmd->{$p}{packaging} = $debprepare;
                $cmd->{$p}{packaging} .= "dir=\${workspaceDir}/dpkg_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SDEBSLocation} \$dir 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/${srcPackageName}_\${version}.orig.tar.gz
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/${srcPackageName}_\${version}.orig.tar.gz
        tar xzf \$dir/${srcPackageName}_\${version}.orig.tar.gz -C \$dir
        cp -rf ${topDir}debian/ \$dir/$srcPackageName-\${version}/
        cd \$dir/$srcPackageName-\${version}
@@ -1564,7 +1634,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}_R_${major}_${minor}_${rev}" : 
+               $conftag = $subsys eq 'gridsite' ? "$project{tag_prefix}{$subsys}${subsys}$project{tag_suffix}{$subsys}_R_${major}_${minor}_${rev}" : 
                        "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}_${age}";
 
                # lowering age for older packaging
@@ -1603,7 +1673,6 @@ sub mode_etics {
        #$cmd_vcs{checkout} = "((test -d jra1mw/.git && (cd jra1mw; git pull)) || (git clone -q http://scientific.zcu.cz/git/jra1mw.git";
        #$cmd_vcs{checkout} .= " && (cd jra1mw; git checkout -b \${tag} --track origin/\${tag})" unless ($conftag eq /HEAD/);
        #$cmd_vcs{checkout} .= ")) && (test -d \${moduleName} || ln -s jra1mw/$cvs_module \${moduleName})";
-       $cmd_vcs{checkout} .= "\n\ttest -f \${packageName}-\${version}-\${age}.src.tar.gz || (ln -s \${moduleName} \${packageName}-\${version}; tar -chf - \${packageName}-\${version} --exclude CVS --exclude .git --exclude .etics | gzip --best > \${packageName}-\${version}-\${age}.src.tar.gz; rm \${packageName}-\${version})";
        $cmd_vcs{tag} = "cvs -d \${vcsroot} tag -R \${tag} ${moduleName}";
 
        $cmd{default}{init} = 'None';
@@ -1695,7 +1764,7 @@ sub mode_etics {
                        $cmd{default}{compile} = "make rpath=$project{local_prefix}/\${libdir}";
                        $cmd{default}{install} = "make install post-install rpath=$project{local_prefix}/\${libdir}";
                }
-               mode_etics_packaging($fmod, \%cmd);
+               mode_etics_packaging($fmod, \%cmd, "make dist\n\t", "make dist\n\t");
        }
 
        my $defprops = '';
index 9fd3d0f..03d4fdf 100644 (file)
 1.3.2-3
 - Module rebuilt
 
+1.3.3-1
+- Affected JobID added wen logging 'really running on a bad branch' (SB #92129)
+
 1.4.0-1
 - Merge from branch_3_2
 - Torque jobs support
index 5c605a5..485e15e 100644 (file)
@@ -615,9 +615,13 @@ 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) {
+                               char *jobid_s;
+
+                               jobid_s = glite_jobid_unparse(e->any.jobId);
                                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);
+                                               jobid_s);
+                               free(jobid_s);
                                break;
                        }
                        /* select the branch unless TOOOLD, i.e. before deep resubmission */
index 4be8ff9..f2880c2 100755 (executable)
@@ -54,8 +54,8 @@ 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 nagios/;
+my @nodes = qw/client server logger logger-msg nagios utils client-java doc ws-test db jpprimary jpindex jpclient harvester lb px proxyrenewal canl/;
+my @default_nodes = qw/lb px proxyrenewal nagios canl/;
 my %enable_nodes;
 my %disable_nodes;
 my %default_nodes; @default_nodes{@default_nodes} = (1) x ($#default_nodes + 1);
@@ -126,10 +126,6 @@ my %externs = (
        gridsite => {
                prefix => '/opt/glite'
        },
-       lcas => {
-               prefix => '/opt/glite',
-               pkg => 'lcas'
-       },
        trustmanager => {
                prefix => '/opt/glite'
        },
@@ -492,7 +488,7 @@ sub mode_build {
 
                print MAK "all: @modules\n\n";
                print MAK "stage: ".(join '-stage ', @modules)."-stage\n\n";
-               print MAK "clean check install:\n";
+               print MAK "clean check install dist distcheck rpm deb:\n";
 
                for (@modules) {
                        my $full = full($_);
@@ -524,6 +520,13 @@ sub mode_build {
                        print MAK "$_-stage: $snames\n\tcd $full/$build && \${MAKE} && \${MAKE} stage\n\n";
                }
 
+               print MAK qq/release-rpm: clean dist distcheck rpm
+
+release-deb: clean dist distcheck deb
+
+.PHONY: all stage clean check install dist distcheck rpm deb release-rpm release-deb
+/;
+
                close MAK;
        }
 }
@@ -600,7 +603,7 @@ BEGIN{
        '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:B voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B pkgconfig:B/ ],
+       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads:B voms:B 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/ ],
@@ -874,6 +877,17 @@ for my $ext (keys %deps_aux) {
        'canl' => 'emi-',
 );
 
+%cvs_tag_suffix = (
+       'lb' => '',
+       'jp' => '',
+       'jobid' => '',
+       'lbjp-common' => '',
+       'gridsite' => '-core',
+       'px' => '',
+       'canl' => '',
+);
+
+
 # ==== projects specification ====
 # etics_name ........... ETICS project name
 # conf_prefix .......... ETICS configurations name prefix
@@ -893,6 +907,7 @@ for my $ext (keys %deps_aux) {
                etics_name => 'org.glite',
                conf_prefix => { %cvs_tag_prefix },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour=${globus.thr.flavor} --nothrflavour=${globus.nothr.flavor}',
                local_prefix => '',
                etics_externs => {
@@ -910,7 +925,6 @@ for my $ext (keys %deps_aux) {
                                glue_schema=>'glue-schema',
                                trustmanager=>'org.glite.security.trustmanager',
                                axis=>'axis',
-                               lcas=>'org.glite.security.lcas',
                                gsoapxx=>'-',
                                jdk=>'jdk',
                                voms=>'org.glite.security.voms-api-cpp',
@@ -924,7 +938,7 @@ for my $ext (keys %deps_aux) {
                },
                etics_projects => {
                        vdt=>[qw/globus globus_essentials globus_proxy_utils gpt/],
-                       'org.glite'=>[qw/voms gridsite lcas gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
+                       'org.glite'=>[qw/voms gridsite gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
                },
                etics_locations => {
                        '*' => '',
@@ -963,6 +977,7 @@ for my $ext (keys %deps_aux) {
                        'canl' => 'emi-',
                },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour= --nothrflavour=',
                local_prefix => '/usr',
                etics_externs => {
@@ -980,7 +995,6 @@ for my $ext (keys %deps_aux) {
                                trustmanager=>'emi.java-security.trustmanager',
                                trustmanager_axis=>'emi.java-security.trustmanager-axis',
                                axis=>'axis1.4',
-                               lcas=>'emi.sac.lcas',
                                gsoapxx=>'-',
                                jdk=>'java',
                                voms => 'emi.voms.voms-api',
@@ -1050,7 +1064,7 @@ for my $ext (keys %deps_aux) {
                        },
                },
                etics_projects => {
-                       'emi'=>[qw/voms voms-devel gridsite lcas gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
+                       'emi'=>[qw/voms voms-devel gridsite gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
                },
                etics_locations => {
                        axis => 'axis',
@@ -1214,7 +1228,7 @@ sub get_version
                while (<V>) {
                        chomp;
                        ($major,$minor,$rev) = ($1,$2,$3) if /module\.version\s*=\s*([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)/;
-                       $age = $1 if /module\.age\s*=\s*([[:digit:]]+)/;
+                       $age = $1 if /module\.age\s*=\s*(\S+)/;
                }
                close V;
                $_ = $old_;
@@ -1360,6 +1374,55 @@ top_srcdir = $top_srcdir
 
        print MKINC "gsoap_default_version=".gsoap_version()."\n"  if $need_gsoap;
 
+       print MKINC '
+-include ${top_srcdir}/project/version.properties
+version=${module.version}
+
+${package}-${version}.tar.gz:
+       rm -rf dist
+       for dist in ${SOURCES} ${SOURCES_EXEC} configure project/ChangeLog project/debian.* project/*.spec project/package.* project/version.properties; do \
+               dir=${package}-${version}/`dirname $$dist`; \
+               mkdir -p dist/$$dir || :; \
+               install -m 0644 ${top_srcdir}/$$dist dist/$$dir; \
+       done
+       for dist in ${SOURCES_EXEC} configure; do \
+               chmod +x dist/${package}-${version}/$$dist; \
+       done
+       (cd dist; tar -czf ${package}-${version}.tar.gz ${package}-${version})
+       mv dist/${package}-${version}.tar.gz .
+
+dist: ${package}-${version}.tar.gz
+
+distcheck: ${package}-${version}.tar.gz
+       rm -rf dist
+       mkdir -p dist
+       cp ${package}-${version}.tar.gz dist
+       (cd dist; tar -xzf ${package}-${version}.tar.gz)
+       a=`(cd dist/${package}-${version}; find . -type f | sort)`; \
+       b=`(cd ${top_srcdir}; find . -path ./dist -prune -or -type f -print | sort)`; \
+       echo "$$a" >dist/files-dist; \
+       echo "$$b" | egrep -v "(^./Makefile.inc$$|^./${package}-${version}.tar.gz$$|^./debian|^./[^/]*.spec$$|\.cvsignore|^\./project/changelog$$|/CVS)" >dist/files-original
+       diff -U0 dist/files-dist dist/files-original
+
+rpm: ${package}-${version}.tar.gz
+       dir=dist/rpm_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir/BUILD $$dir/RPMS $$dir/SOURCES $$dir/SRPMS; \
+       cp ${package}-${version}.tar.gz $$dir/SOURCES/${package}-${version}-${module.age}.src.tar.gz && \
+       rpmbuild -bs --nodeps --define "_topdir $$dir" ${package}.spec && \
+       cp -v $$dir/SRPMS/*.src.rpm dist/
+
+deb: ${package}-${version}.tar.gz
+       dir=dist/dpkg_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir; \
+       cp ${package}-${version}.tar.gz $$dir/${package}_${version}.orig.tar.gz && \
+       tar zxf $$dir/${package}_${version}.orig.tar.gz -C $$dir && \
+       cp -rf debian/ $$dir/${package}-${version} && \
+       (cd $$dir/${package}-${version} && dpkg-buildpackage -S -d -nc -us -uc) && \
+       cp -v $$dir/*.tar.gz $$dir/*.dsc dist/
+';
+
        close MKINC;
 
        my $dh;
@@ -1412,43 +1475,48 @@ top_srcdir = $top_srcdir
                }
        }
 
-       print "Creating ${build}debian/\n" if ($debug);;
-
-       `rm -rfv  ${build}debian`;
-       mkdir $build."debian" or die $!;
-       `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
-       `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
-       `rm -f ${build}debian/*.orig`;
-       opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
-       for $_ (readdir $dh) {
-               if (/^debian\.(.*)/) {
-                       `mv ${build}debian/$_ ${build}debian/$1`;
-                       $debian = 1;
+       if ($module and -d $build."debian") {
+               print "Skipping ${build}debian/ (no rewrite in single module mode)\n" if ($debug);
+               `rm -f ${build}debian.*`;
+       } else {
+               print "Creating ${build}debian/\n" if ($debug);;
+
+               `rm -rfv  ${build}debian`;
+               mkdir $build."debian" or die $!;
+               `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
+               `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
+               `rm -f ${build}debian/*.orig`;
+               opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
+               for $_ (readdir $dh) {
+                       if (/^debian\.(.*)/) {
+                               `mv ${build}debian/$_ ${build}debian/$1`;
+                               $debian = 1;
+                       }
                }
-       }
-       closedir $dh;
+               closedir $dh;
 
-       if ($debian) {
-               my ($dir, $file);
+               if ($debian) {
+                       my ($dir, $file);
 
-               chmod 0755, "${build}debian/rules";
-               $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
-               $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
-               $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
-               $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
-               $file="${build}debian/changelog"; if (not -f $file) {
-                       open FH, ">$file" or die $!;
-                       print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
+                       chmod 0755, "${build}debian/rules";
+                       $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
+                       $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
+                       $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
+                       $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
+                       $file="${build}debian/changelog"; if (not -f $file) {
+                               open FH, ">$file" or die $!;
+                               print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
 
   * Automatically generated package
 
  -- $package{maintainer}  $debdate
 };
-                       close FH;
-               }
+                               close FH;
+                       }
 
-       } else {
-               `rm -rf ${build}debian`;
+               } else {
+                       `rm -rf ${build}debian`;
+               }
        }
 }
 
@@ -1465,11 +1533,13 @@ sub mode_etics_packaging {
        if ($fmod eq 'gridsite.core') {
                $workspaceDir = '..';
                $srcPackageName = 'gridsite';
+               $srcTarBall = "../$srcPackageName-\${version}.src.tar.gz";
                $srcAge = '';
                $topDir = '../';
        } else {
                $workspaceDir = '${workspaceDir}';
                $srcPackageName = '${packageName}';
+               $srcTarBall = "$srcPackageName-\${version}.tar.gz";
                $srcAge = '-${age}';
                $topDir = '';
        }
@@ -1479,8 +1549,8 @@ sub mode_etics_packaging {
        $cmd->{default}{packaging} = $rpmprepare;
        $cmd->{default}{packaging} .= "dir=\${workspaceDir}/rpm_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SRPMSLocation} \$dir/{BUILD,RPMS,SOURCES,SRPMS} 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/SOURCES/
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/SOURCES/$srcPackageName-\${version}${srcAge}.src.tar.gz
        rpmbuild -bs --nodeps --define \"_topdir \$dir\" $srcPackageName.spec
        cp -v \$dir/SRPMS/*.src.rpm \${package.SRPMSLocation}/
        rm -rf \$dir";
@@ -1492,8 +1562,8 @@ sub mode_etics_packaging {
                $cmd->{$p}{packaging} = $debprepare;
                $cmd->{$p}{packaging} .= "dir=\${workspaceDir}/dpkg_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SDEBSLocation} \$dir 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/${srcPackageName}_\${version}.orig.tar.gz
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/${srcPackageName}_\${version}.orig.tar.gz
        tar xzf \$dir/${srcPackageName}_\${version}.orig.tar.gz -C \$dir
        cp -rf ${topDir}debian/ \$dir/$srcPackageName-\${version}/
        cd \$dir/$srcPackageName-\${version}
@@ -1564,7 +1634,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}_R_${major}_${minor}_${rev}" : 
+               $conftag = $subsys eq 'gridsite' ? "$project{tag_prefix}{$subsys}${subsys}$project{tag_suffix}{$subsys}_R_${major}_${minor}_${rev}" : 
                        "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}_${age}";
 
                # lowering age for older packaging
@@ -1603,7 +1673,6 @@ sub mode_etics {
        #$cmd_vcs{checkout} = "((test -d jra1mw/.git && (cd jra1mw; git pull)) || (git clone -q http://scientific.zcu.cz/git/jra1mw.git";
        #$cmd_vcs{checkout} .= " && (cd jra1mw; git checkout -b \${tag} --track origin/\${tag})" unless ($conftag eq /HEAD/);
        #$cmd_vcs{checkout} .= ")) && (test -d \${moduleName} || ln -s jra1mw/$cvs_module \${moduleName})";
-       $cmd_vcs{checkout} .= "\n\ttest -f \${packageName}-\${version}-\${age}.src.tar.gz || (ln -s \${moduleName} \${packageName}-\${version}; tar -chf - \${packageName}-\${version} --exclude CVS --exclude .git --exclude .etics | gzip --best > \${packageName}-\${version}-\${age}.src.tar.gz; rm \${packageName}-\${version})";
        $cmd_vcs{tag} = "cvs -d \${vcsroot} tag -R \${tag} ${moduleName}";
 
        $cmd{default}{init} = 'None';
@@ -1695,7 +1764,7 @@ sub mode_etics {
                        $cmd{default}{compile} = "make rpath=$project{local_prefix}/\${libdir}";
                        $cmd{default}{install} = "make install post-install rpath=$project{local_prefix}/\${libdir}";
                }
-               mode_etics_packaging($fmod, \%cmd);
+               mode_etics_packaging($fmod, \%cmd, "make dist\n\t", "make dist\n\t");
        }
 
        my $defprops = '';
index 8c89320..05a8c41 100644 (file)
@@ -97,6 +97,9 @@
 1.3.1-4
 - Module rebuilt
 
+1.3.1-5
+- Module rebuilt
+
 1.4.0-1
 - Merge from branch_3_2
 - Torque jobs support
index 6299896..77e04ef 100644 (file)
@@ -8,7 +8,6 @@ version=0.0.0
 PREFIX=/opt/glite
 prefix=
 
-expat_prefix=/opt/expat
 gsoap_prefix=/opt/gsoap
 
 default: all
@@ -34,11 +33,6 @@ SUFFIXES = .T
 
 DEBUG:=-g -O0 -Wall
 
-ifneq (${expat_prefix},/usr)
-       expatlib := -L${expat_prefix}/${libdir} -L${expat_prefix}/lib
-endif
-EXPAT_CFLAGS?=-I${expat_prefix}/include
-EXPAT_LIB?=${expatlib} -lexpat
 GSOAP_CFLAGS?=-I${gsoap_prefix}/include -I${gsoap_prefix}/
 GLITE_LBJP_COMMON_GSS_CFLAGS?=`PKG_CONFIG_PATH=$$PKG_CONFIG_PATH:${PREFIX}${prefix}/${libdir}/pkgconfig pkg-config glite-security-gss --cflags`
 
@@ -47,7 +41,6 @@ CFLAGS:= \
        -DVERSION=\"${version}\" \
        -I${stagedir}${prefix}/include -I${top_srcdir}/src -I. \
        -I${top_srcdir}/interface \
-       ${EXPAT_CFLAGS} \
        ${GSOAP_CFLAGS} \
        ${COVERAGE_FLAGS} \
        -D_GNU_SOURCE ${GLITE_LBJP_COMMON_GSS_CFLAGS} ${CFLAGS}
@@ -62,7 +55,7 @@ INSTALL:=libtool --mode=install install
 LINKXX:=libtool --mode=link  ${CXX} -rpath ${stagedir}${prefix}/${libdir} ${LDFLAGS}
 XSLTPROC:=xsltproc --novalid
 
-EXT_LIBS:= ${EXPAT_LIBS}
+EXT_LIBS:=
 
 ifeq (${thrflavour},)
 COMMON_LIB:=-lglite_lb_common
@@ -76,8 +69,14 @@ PLUS_LIB:=-lglite_lb_clientpp_${nothrflavour}
 JP_LIBS:=-lglite_jp_common_${nothrflavour}
 endif
 
-UTILS:=mon purge dump load dump_exporter
-ALLUTILS:=${UTILS} state_history statistics
+os=${shell uname}
+DL_LIBS=
+ifeq (${os},Linux)
+       DL_LIBS=-ldl
+endif
+
+UTILS:=purge dump load
+ALLUTILS:=${UTILS} mon dump_exporter state_history statistics
 STATISTICS_OBJS:=statistics.o process_attrs.o process_attrs2.o
 
 MAN_GZ:=glite-lb-mon.1.gz
@@ -90,11 +89,17 @@ compile all: ${ALLUTILS} ${MAN_GZ} ${MAN8_GZ}
 ${UTILS}: %: %.o
        ${LINK} -o $@ $< ${COMMON_LIB} ${CLIENT_LIB} ${EXT_LIBS} -lglite_lbu_maildir
 
+mon: %: %.o
+       ${LINK} -o $@ $< ${COMMON_LIB} ${CLIENT_LIB} ${EXT_LIBS} -lglite_jobid
+
+dump_exporter: %: %.o
+       ${LINK} -o $@ $< ${COMMON_LIB} ${CLIENT_LIB} ${EXT_LIBS} -lglite_jobid -lglite_lbu_maildir
+
 statistics: ${STATISTICS_OBJS}
-       ${LINK} -rdynamic -o $@ ${STATISTICS_OBJS} ${COMMON_LIB} ${JP_LIBS} ${EXT_LIBS} 
+       ${LINK} -rdynamic -o $@ ${STATISTICS_OBJS} ${COMMON_LIB} ${JP_LIBS} ${EXT_LIBS} -lglite_lbu_trio ${DL_LIBS}
 
 state_history: state_history.o
-       ${LINK} -o $@ state_history.o -lglite_lb_statemachine ${PLUS_LIB}
+       ${LINK} -o $@ state_history.o -lglite_jobid ${COMMON_LIB} ${CLIENT_LIB} -lglite_lb_statemachine ${PLUS_LIB}
 
 check: compile 
 
index e457931..f2880c2 100755 (executable)
@@ -54,8 +54,8 @@ 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 nagios/;
+my @nodes = qw/client server logger logger-msg nagios utils client-java doc ws-test db jpprimary jpindex jpclient harvester lb px proxyrenewal canl/;
+my @default_nodes = qw/lb px proxyrenewal nagios canl/;
 my %enable_nodes;
 my %disable_nodes;
 my %default_nodes; @default_nodes{@default_nodes} = (1) x ($#default_nodes + 1);
@@ -126,10 +126,6 @@ my %externs = (
        gridsite => {
                prefix => '/opt/glite'
        },
-       lcas => {
-               prefix => '/opt/glite',
-               pkg => 'lcas'
-       },
        trustmanager => {
                prefix => '/opt/glite'
        },
@@ -492,7 +488,7 @@ sub mode_build {
 
                print MAK "all: @modules\n\n";
                print MAK "stage: ".(join '-stage ', @modules)."-stage\n\n";
-               print MAK "clean check install:\n";
+               print MAK "clean check install dist distcheck rpm deb:\n";
 
                for (@modules) {
                        my $full = full($_);
@@ -524,6 +520,13 @@ sub mode_build {
                        print MAK "$_-stage: $snames\n\tcd $full/$build && \${MAKE} && \${MAKE} stage\n\n";
                }
 
+               print MAK qq/release-rpm: clean dist distcheck rpm
+
+release-deb: clean dist distcheck deb
+
+.PHONY: all stage clean check install dist distcheck rpm deb release-rpm release-deb
+/;
+
                close MAK;
        }
 }
@@ -600,7 +603,7 @@ BEGIN{
        '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:B voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B pkgconfig:B/ ],
+       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads:B voms:B 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/ ],
@@ -874,6 +877,17 @@ for my $ext (keys %deps_aux) {
        'canl' => 'emi-',
 );
 
+%cvs_tag_suffix = (
+       'lb' => '',
+       'jp' => '',
+       'jobid' => '',
+       'lbjp-common' => '',
+       'gridsite' => '-core',
+       'px' => '',
+       'canl' => '',
+);
+
+
 # ==== projects specification ====
 # etics_name ........... ETICS project name
 # conf_prefix .......... ETICS configurations name prefix
@@ -893,6 +907,7 @@ for my $ext (keys %deps_aux) {
                etics_name => 'org.glite',
                conf_prefix => { %cvs_tag_prefix },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour=${globus.thr.flavor} --nothrflavour=${globus.nothr.flavor}',
                local_prefix => '',
                etics_externs => {
@@ -910,7 +925,6 @@ for my $ext (keys %deps_aux) {
                                glue_schema=>'glue-schema',
                                trustmanager=>'org.glite.security.trustmanager',
                                axis=>'axis',
-                               lcas=>'org.glite.security.lcas',
                                gsoapxx=>'-',
                                jdk=>'jdk',
                                voms=>'org.glite.security.voms-api-cpp',
@@ -924,7 +938,7 @@ for my $ext (keys %deps_aux) {
                },
                etics_projects => {
                        vdt=>[qw/globus globus_essentials globus_proxy_utils gpt/],
-                       'org.glite'=>[qw/voms gridsite lcas gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
+                       'org.glite'=>[qw/voms gridsite gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
                },
                etics_locations => {
                        '*' => '',
@@ -963,6 +977,7 @@ for my $ext (keys %deps_aux) {
                        'canl' => 'emi-',
                },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour= --nothrflavour=',
                local_prefix => '/usr',
                etics_externs => {
@@ -980,7 +995,6 @@ for my $ext (keys %deps_aux) {
                                trustmanager=>'emi.java-security.trustmanager',
                                trustmanager_axis=>'emi.java-security.trustmanager-axis',
                                axis=>'axis1.4',
-                               lcas=>'emi.sac.lcas',
                                gsoapxx=>'-',
                                jdk=>'java',
                                voms => 'emi.voms.voms-api',
@@ -1050,7 +1064,7 @@ for my $ext (keys %deps_aux) {
                        },
                },
                etics_projects => {
-                       'emi'=>[qw/voms voms-devel gridsite lcas gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
+                       'emi'=>[qw/voms voms-devel gridsite gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
                },
                etics_locations => {
                        axis => 'axis',
@@ -1214,7 +1228,7 @@ sub get_version
                while (<V>) {
                        chomp;
                        ($major,$minor,$rev) = ($1,$2,$3) if /module\.version\s*=\s*([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)/;
-                       $age = $1 if /module\.age\s*=\s*([[:digit:]]+)/;
+                       $age = $1 if /module\.age\s*=\s*(\S+)/;
                }
                close V;
                $_ = $old_;
@@ -1360,6 +1374,55 @@ top_srcdir = $top_srcdir
 
        print MKINC "gsoap_default_version=".gsoap_version()."\n"  if $need_gsoap;
 
+       print MKINC '
+-include ${top_srcdir}/project/version.properties
+version=${module.version}
+
+${package}-${version}.tar.gz:
+       rm -rf dist
+       for dist in ${SOURCES} ${SOURCES_EXEC} configure project/ChangeLog project/debian.* project/*.spec project/package.* project/version.properties; do \
+               dir=${package}-${version}/`dirname $$dist`; \
+               mkdir -p dist/$$dir || :; \
+               install -m 0644 ${top_srcdir}/$$dist dist/$$dir; \
+       done
+       for dist in ${SOURCES_EXEC} configure; do \
+               chmod +x dist/${package}-${version}/$$dist; \
+       done
+       (cd dist; tar -czf ${package}-${version}.tar.gz ${package}-${version})
+       mv dist/${package}-${version}.tar.gz .
+
+dist: ${package}-${version}.tar.gz
+
+distcheck: ${package}-${version}.tar.gz
+       rm -rf dist
+       mkdir -p dist
+       cp ${package}-${version}.tar.gz dist
+       (cd dist; tar -xzf ${package}-${version}.tar.gz)
+       a=`(cd dist/${package}-${version}; find . -type f | sort)`; \
+       b=`(cd ${top_srcdir}; find . -path ./dist -prune -or -type f -print | sort)`; \
+       echo "$$a" >dist/files-dist; \
+       echo "$$b" | egrep -v "(^./Makefile.inc$$|^./${package}-${version}.tar.gz$$|^./debian|^./[^/]*.spec$$|\.cvsignore|^\./project/changelog$$|/CVS)" >dist/files-original
+       diff -U0 dist/files-dist dist/files-original
+
+rpm: ${package}-${version}.tar.gz
+       dir=dist/rpm_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir/BUILD $$dir/RPMS $$dir/SOURCES $$dir/SRPMS; \
+       cp ${package}-${version}.tar.gz $$dir/SOURCES/${package}-${version}-${module.age}.src.tar.gz && \
+       rpmbuild -bs --nodeps --define "_topdir $$dir" ${package}.spec && \
+       cp -v $$dir/SRPMS/*.src.rpm dist/
+
+deb: ${package}-${version}.tar.gz
+       dir=dist/dpkg_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir; \
+       cp ${package}-${version}.tar.gz $$dir/${package}_${version}.orig.tar.gz && \
+       tar zxf $$dir/${package}_${version}.orig.tar.gz -C $$dir && \
+       cp -rf debian/ $$dir/${package}-${version} && \
+       (cd $$dir/${package}-${version} && dpkg-buildpackage -S -d -nc -us -uc) && \
+       cp -v $$dir/*.tar.gz $$dir/*.dsc dist/
+';
+
        close MKINC;
 
        my $dh;
@@ -1412,43 +1475,48 @@ top_srcdir = $top_srcdir
                }
        }
 
-       print "Creating ${build}debian/\n" if ($debug);;
-
-       `rm -rfv  ${build}debian`;
-       mkdir $build."debian" or die $!;
-       `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
-       `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
-       `rm -f ${build}debian/*.orig`;
-       opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
-       for $_ (readdir $dh) {
-               if (/^debian\.(.*)/) {
-                       `mv ${build}debian/$_ ${build}debian/$1`;
-                       $debian = 1;
+       if ($module and -d $build."debian") {
+               print "Skipping ${build}debian/ (no rewrite in single module mode)\n" if ($debug);
+               `rm -f ${build}debian.*`;
+       } else {
+               print "Creating ${build}debian/\n" if ($debug);;
+
+               `rm -rfv  ${build}debian`;
+               mkdir $build."debian" or die $!;
+               `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
+               `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
+               `rm -f ${build}debian/*.orig`;
+               opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
+               for $_ (readdir $dh) {
+                       if (/^debian\.(.*)/) {
+                               `mv ${build}debian/$_ ${build}debian/$1`;
+                               $debian = 1;
+                       }
                }
-       }
-       closedir $dh;
+               closedir $dh;
 
-       if ($debian) {
-               my ($dir, $file);
+               if ($debian) {
+                       my ($dir, $file);
 
-               chmod 0755, "${build}debian/rules";
-               $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
-               $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
-               $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
-               $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
-               $file="${build}debian/changelog"; if (not -f $file) {
-                       open FH, ">$file" or die $!;
-                       print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
+                       chmod 0755, "${build}debian/rules";
+                       $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
+                       $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
+                       $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
+                       $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
+                       $file="${build}debian/changelog"; if (not -f $file) {
+                               open FH, ">$file" or die $!;
+                               print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
 
   * Automatically generated package
 
  -- $package{maintainer}  $debdate
 };
-                       close FH;
-               }
+                               close FH;
+                       }
 
-       } else {
-               `rm -rf ${build}debian`;
+               } else {
+                       `rm -rf ${build}debian`;
+               }
        }
 }
 
@@ -1460,16 +1528,18 @@ sub mode_etics_packaging {
        my ($workspaceDir, $srcPackageName, $srcAge, $topDir);
 
        # old-school packaging by ETICS for EMI-1
-       if ($project eq 'emi' and $project_version == 1) { return; }
+       if ($project eq 'emi' and $project_version == 1 and $fmod ne 'gridsite.core') { return; }
 
        if ($fmod eq 'gridsite.core') {
                $workspaceDir = '..';
                $srcPackageName = 'gridsite';
+               $srcTarBall = "../$srcPackageName-\${version}.src.tar.gz";
                $srcAge = '';
                $topDir = '../';
        } else {
                $workspaceDir = '${workspaceDir}';
                $srcPackageName = '${packageName}';
+               $srcTarBall = "$srcPackageName-\${version}.tar.gz";
                $srcAge = '-${age}';
                $topDir = '';
        }
@@ -1479,8 +1549,8 @@ sub mode_etics_packaging {
        $cmd->{default}{packaging} = $rpmprepare;
        $cmd->{default}{packaging} .= "dir=\${workspaceDir}/rpm_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SRPMSLocation} \$dir/{BUILD,RPMS,SOURCES,SRPMS} 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/SOURCES/
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/SOURCES/$srcPackageName-\${version}${srcAge}.src.tar.gz
        rpmbuild -bs --nodeps --define \"_topdir \$dir\" $srcPackageName.spec
        cp -v \$dir/SRPMS/*.src.rpm \${package.SRPMSLocation}/
        rm -rf \$dir";
@@ -1492,8 +1562,8 @@ sub mode_etics_packaging {
                $cmd->{$p}{packaging} = $debprepare;
                $cmd->{$p}{packaging} .= "dir=\${workspaceDir}/dpkg_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SDEBSLocation} \$dir 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/${srcPackageName}_\${version}.orig.tar.gz
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/${srcPackageName}_\${version}.orig.tar.gz
        tar xzf \$dir/${srcPackageName}_\${version}.orig.tar.gz -C \$dir
        cp -rf ${topDir}debian/ \$dir/$srcPackageName-\${version}/
        cd \$dir/$srcPackageName-\${version}
@@ -1564,7 +1634,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}_R_${major}_${minor}_${rev}" : 
+               $conftag = $subsys eq 'gridsite' ? "$project{tag_prefix}{$subsys}${subsys}$project{tag_suffix}{$subsys}_R_${major}_${minor}_${rev}" : 
                        "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}_${age}";
 
                # lowering age for older packaging
@@ -1603,7 +1673,6 @@ sub mode_etics {
        #$cmd_vcs{checkout} = "((test -d jra1mw/.git && (cd jra1mw; git pull)) || (git clone -q http://scientific.zcu.cz/git/jra1mw.git";
        #$cmd_vcs{checkout} .= " && (cd jra1mw; git checkout -b \${tag} --track origin/\${tag})" unless ($conftag eq /HEAD/);
        #$cmd_vcs{checkout} .= ")) && (test -d \${moduleName} || ln -s jra1mw/$cvs_module \${moduleName})";
-       $cmd_vcs{checkout} .= "\n\ttest -f \${packageName}-\${version}-\${age}.src.tar.gz || (ln -s \${moduleName} \${packageName}-\${version}; tar -chf - \${packageName}-\${version} --exclude CVS --exclude .git --exclude .etics | gzip --best > \${packageName}-\${version}-\${age}.src.tar.gz; rm \${packageName}-\${version})";
        $cmd_vcs{tag} = "cvs -d \${vcsroot} tag -R \${tag} ${moduleName}";
 
        $cmd{default}{init} = 'None';
@@ -1695,7 +1764,7 @@ sub mode_etics {
                        $cmd{default}{compile} = "make rpath=$project{local_prefix}/\${libdir}";
                        $cmd{default}{install} = "make install post-install rpath=$project{local_prefix}/\${libdir}";
                }
-               mode_etics_packaging($fmod, \%cmd);
+               mode_etics_packaging($fmod, \%cmd, "make dist\n\t", "make dist\n\t");
        }
 
        my $defprops = '';
index 963a392..35b8ea3 100644 (file)
 2.2.1-4
 - Module rebuilt
 
+2.2.2-1
+- Improve build and packaging for Fedora
+- Explicit pkg-config dependency
+
 2.3.0-1
 - Merge from branch_3_2
 
index 81d21f4..38eacc6 100644 (file)
@@ -29,6 +29,7 @@ limitations under the License.
 #include <sys/time.h>
 
 
+#include "glite/jobid/cjobid.h"
 #include "glite/lbu/maildir.h"
 #include "glite/lb/context.h"
 #include "glite/lb/events.h"
index 4be8ff9..f2880c2 100755 (executable)
@@ -54,8 +54,8 @@ 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 nagios/;
+my @nodes = qw/client server logger logger-msg nagios utils client-java doc ws-test db jpprimary jpindex jpclient harvester lb px proxyrenewal canl/;
+my @default_nodes = qw/lb px proxyrenewal nagios canl/;
 my %enable_nodes;
 my %disable_nodes;
 my %default_nodes; @default_nodes{@default_nodes} = (1) x ($#default_nodes + 1);
@@ -126,10 +126,6 @@ my %externs = (
        gridsite => {
                prefix => '/opt/glite'
        },
-       lcas => {
-               prefix => '/opt/glite',
-               pkg => 'lcas'
-       },
        trustmanager => {
                prefix => '/opt/glite'
        },
@@ -492,7 +488,7 @@ sub mode_build {
 
                print MAK "all: @modules\n\n";
                print MAK "stage: ".(join '-stage ', @modules)."-stage\n\n";
-               print MAK "clean check install:\n";
+               print MAK "clean check install dist distcheck rpm deb:\n";
 
                for (@modules) {
                        my $full = full($_);
@@ -524,6 +520,13 @@ sub mode_build {
                        print MAK "$_-stage: $snames\n\tcd $full/$build && \${MAKE} && \${MAKE} stage\n\n";
                }
 
+               print MAK qq/release-rpm: clean dist distcheck rpm
+
+release-deb: clean dist distcheck deb
+
+.PHONY: all stage clean check install dist distcheck rpm deb release-rpm release-deb
+/;
+
                close MAK;
        }
 }
@@ -600,7 +603,7 @@ BEGIN{
        '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:B voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B pkgconfig:B/ ],
+       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads:B voms:B 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/ ],
@@ -874,6 +877,17 @@ for my $ext (keys %deps_aux) {
        'canl' => 'emi-',
 );
 
+%cvs_tag_suffix = (
+       'lb' => '',
+       'jp' => '',
+       'jobid' => '',
+       'lbjp-common' => '',
+       'gridsite' => '-core',
+       'px' => '',
+       'canl' => '',
+);
+
+
 # ==== projects specification ====
 # etics_name ........... ETICS project name
 # conf_prefix .......... ETICS configurations name prefix
@@ -893,6 +907,7 @@ for my $ext (keys %deps_aux) {
                etics_name => 'org.glite',
                conf_prefix => { %cvs_tag_prefix },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour=${globus.thr.flavor} --nothrflavour=${globus.nothr.flavor}',
                local_prefix => '',
                etics_externs => {
@@ -910,7 +925,6 @@ for my $ext (keys %deps_aux) {
                                glue_schema=>'glue-schema',
                                trustmanager=>'org.glite.security.trustmanager',
                                axis=>'axis',
-                               lcas=>'org.glite.security.lcas',
                                gsoapxx=>'-',
                                jdk=>'jdk',
                                voms=>'org.glite.security.voms-api-cpp',
@@ -924,7 +938,7 @@ for my $ext (keys %deps_aux) {
                },
                etics_projects => {
                        vdt=>[qw/globus globus_essentials globus_proxy_utils gpt/],
-                       'org.glite'=>[qw/voms gridsite lcas gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
+                       'org.glite'=>[qw/voms gridsite gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
                },
                etics_locations => {
                        '*' => '',
@@ -963,6 +977,7 @@ for my $ext (keys %deps_aux) {
                        'canl' => 'emi-',
                },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour= --nothrflavour=',
                local_prefix => '/usr',
                etics_externs => {
@@ -980,7 +995,6 @@ for my $ext (keys %deps_aux) {
                                trustmanager=>'emi.java-security.trustmanager',
                                trustmanager_axis=>'emi.java-security.trustmanager-axis',
                                axis=>'axis1.4',
-                               lcas=>'emi.sac.lcas',
                                gsoapxx=>'-',
                                jdk=>'java',
                                voms => 'emi.voms.voms-api',
@@ -1050,7 +1064,7 @@ for my $ext (keys %deps_aux) {
                        },
                },
                etics_projects => {
-                       'emi'=>[qw/voms voms-devel gridsite lcas gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
+                       'emi'=>[qw/voms voms-devel gridsite gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
                },
                etics_locations => {
                        axis => 'axis',
@@ -1214,7 +1228,7 @@ sub get_version
                while (<V>) {
                        chomp;
                        ($major,$minor,$rev) = ($1,$2,$3) if /module\.version\s*=\s*([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)/;
-                       $age = $1 if /module\.age\s*=\s*([[:digit:]]+)/;
+                       $age = $1 if /module\.age\s*=\s*(\S+)/;
                }
                close V;
                $_ = $old_;
@@ -1360,6 +1374,55 @@ top_srcdir = $top_srcdir
 
        print MKINC "gsoap_default_version=".gsoap_version()."\n"  if $need_gsoap;
 
+       print MKINC '
+-include ${top_srcdir}/project/version.properties
+version=${module.version}
+
+${package}-${version}.tar.gz:
+       rm -rf dist
+       for dist in ${SOURCES} ${SOURCES_EXEC} configure project/ChangeLog project/debian.* project/*.spec project/package.* project/version.properties; do \
+               dir=${package}-${version}/`dirname $$dist`; \
+               mkdir -p dist/$$dir || :; \
+               install -m 0644 ${top_srcdir}/$$dist dist/$$dir; \
+       done
+       for dist in ${SOURCES_EXEC} configure; do \
+               chmod +x dist/${package}-${version}/$$dist; \
+       done
+       (cd dist; tar -czf ${package}-${version}.tar.gz ${package}-${version})
+       mv dist/${package}-${version}.tar.gz .
+
+dist: ${package}-${version}.tar.gz
+
+distcheck: ${package}-${version}.tar.gz
+       rm -rf dist
+       mkdir -p dist
+       cp ${package}-${version}.tar.gz dist
+       (cd dist; tar -xzf ${package}-${version}.tar.gz)
+       a=`(cd dist/${package}-${version}; find . -type f | sort)`; \
+       b=`(cd ${top_srcdir}; find . -path ./dist -prune -or -type f -print | sort)`; \
+       echo "$$a" >dist/files-dist; \
+       echo "$$b" | egrep -v "(^./Makefile.inc$$|^./${package}-${version}.tar.gz$$|^./debian|^./[^/]*.spec$$|\.cvsignore|^\./project/changelog$$|/CVS)" >dist/files-original
+       diff -U0 dist/files-dist dist/files-original
+
+rpm: ${package}-${version}.tar.gz
+       dir=dist/rpm_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir/BUILD $$dir/RPMS $$dir/SOURCES $$dir/SRPMS; \
+       cp ${package}-${version}.tar.gz $$dir/SOURCES/${package}-${version}-${module.age}.src.tar.gz && \
+       rpmbuild -bs --nodeps --define "_topdir $$dir" ${package}.spec && \
+       cp -v $$dir/SRPMS/*.src.rpm dist/
+
+deb: ${package}-${version}.tar.gz
+       dir=dist/dpkg_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir; \
+       cp ${package}-${version}.tar.gz $$dir/${package}_${version}.orig.tar.gz && \
+       tar zxf $$dir/${package}_${version}.orig.tar.gz -C $$dir && \
+       cp -rf debian/ $$dir/${package}-${version} && \
+       (cd $$dir/${package}-${version} && dpkg-buildpackage -S -d -nc -us -uc) && \
+       cp -v $$dir/*.tar.gz $$dir/*.dsc dist/
+';
+
        close MKINC;
 
        my $dh;
@@ -1412,43 +1475,48 @@ top_srcdir = $top_srcdir
                }
        }
 
-       print "Creating ${build}debian/\n" if ($debug);;
-
-       `rm -rfv  ${build}debian`;
-       mkdir $build."debian" or die $!;
-       `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
-       `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
-       `rm -f ${build}debian/*.orig`;
-       opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
-       for $_ (readdir $dh) {
-               if (/^debian\.(.*)/) {
-                       `mv ${build}debian/$_ ${build}debian/$1`;
-                       $debian = 1;
+       if ($module and -d $build."debian") {
+               print "Skipping ${build}debian/ (no rewrite in single module mode)\n" if ($debug);
+               `rm -f ${build}debian.*`;
+       } else {
+               print "Creating ${build}debian/\n" if ($debug);;
+
+               `rm -rfv  ${build}debian`;
+               mkdir $build."debian" or die $!;
+               `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
+               `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
+               `rm -f ${build}debian/*.orig`;
+               opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
+               for $_ (readdir $dh) {
+                       if (/^debian\.(.*)/) {
+                               `mv ${build}debian/$_ ${build}debian/$1`;
+                               $debian = 1;
+                       }
                }
-       }
-       closedir $dh;
+               closedir $dh;
 
-       if ($debian) {
-               my ($dir, $file);
+               if ($debian) {
+                       my ($dir, $file);
 
-               chmod 0755, "${build}debian/rules";
-               $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
-               $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
-               $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
-               $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
-               $file="${build}debian/changelog"; if (not -f $file) {
-                       open FH, ">$file" or die $!;
-                       print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
+                       chmod 0755, "${build}debian/rules";
+                       $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
+                       $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
+                       $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
+                       $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
+                       $file="${build}debian/changelog"; if (not -f $file) {
+                               open FH, ">$file" or die $!;
+                               print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
 
   * Automatically generated package
 
  -- $package{maintainer}  $debdate
 };
-                       close FH;
-               }
+                               close FH;
+                       }
 
-       } else {
-               `rm -rf ${build}debian`;
+               } else {
+                       `rm -rf ${build}debian`;
+               }
        }
 }
 
@@ -1465,11 +1533,13 @@ sub mode_etics_packaging {
        if ($fmod eq 'gridsite.core') {
                $workspaceDir = '..';
                $srcPackageName = 'gridsite';
+               $srcTarBall = "../$srcPackageName-\${version}.src.tar.gz";
                $srcAge = '';
                $topDir = '../';
        } else {
                $workspaceDir = '${workspaceDir}';
                $srcPackageName = '${packageName}';
+               $srcTarBall = "$srcPackageName-\${version}.tar.gz";
                $srcAge = '-${age}';
                $topDir = '';
        }
@@ -1479,8 +1549,8 @@ sub mode_etics_packaging {
        $cmd->{default}{packaging} = $rpmprepare;
        $cmd->{default}{packaging} .= "dir=\${workspaceDir}/rpm_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SRPMSLocation} \$dir/{BUILD,RPMS,SOURCES,SRPMS} 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/SOURCES/
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/SOURCES/$srcPackageName-\${version}${srcAge}.src.tar.gz
        rpmbuild -bs --nodeps --define \"_topdir \$dir\" $srcPackageName.spec
        cp -v \$dir/SRPMS/*.src.rpm \${package.SRPMSLocation}/
        rm -rf \$dir";
@@ -1492,8 +1562,8 @@ sub mode_etics_packaging {
                $cmd->{$p}{packaging} = $debprepare;
                $cmd->{$p}{packaging} .= "dir=\${workspaceDir}/dpkg_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SDEBSLocation} \$dir 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/${srcPackageName}_\${version}.orig.tar.gz
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/${srcPackageName}_\${version}.orig.tar.gz
        tar xzf \$dir/${srcPackageName}_\${version}.orig.tar.gz -C \$dir
        cp -rf ${topDir}debian/ \$dir/$srcPackageName-\${version}/
        cd \$dir/$srcPackageName-\${version}
@@ -1564,7 +1634,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}_R_${major}_${minor}_${rev}" : 
+               $conftag = $subsys eq 'gridsite' ? "$project{tag_prefix}{$subsys}${subsys}$project{tag_suffix}{$subsys}_R_${major}_${minor}_${rev}" : 
                        "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}_${age}";
 
                # lowering age for older packaging
@@ -1603,7 +1673,6 @@ sub mode_etics {
        #$cmd_vcs{checkout} = "((test -d jra1mw/.git && (cd jra1mw; git pull)) || (git clone -q http://scientific.zcu.cz/git/jra1mw.git";
        #$cmd_vcs{checkout} .= " && (cd jra1mw; git checkout -b \${tag} --track origin/\${tag})" unless ($conftag eq /HEAD/);
        #$cmd_vcs{checkout} .= ")) && (test -d \${moduleName} || ln -s jra1mw/$cvs_module \${moduleName})";
-       $cmd_vcs{checkout} .= "\n\ttest -f \${packageName}-\${version}-\${age}.src.tar.gz || (ln -s \${moduleName} \${packageName}-\${version}; tar -chf - \${packageName}-\${version} --exclude CVS --exclude .git --exclude .etics | gzip --best > \${packageName}-\${version}-\${age}.src.tar.gz; rm \${packageName}-\${version})";
        $cmd_vcs{tag} = "cvs -d \${vcsroot} tag -R \${tag} ${moduleName}";
 
        $cmd{default}{init} = 'None';
@@ -1695,7 +1764,7 @@ sub mode_etics {
                        $cmd{default}{compile} = "make rpath=$project{local_prefix}/\${libdir}";
                        $cmd{default}{install} = "make install post-install rpath=$project{local_prefix}/\${libdir}";
                }
-               mode_etics_packaging($fmod, \%cmd);
+               mode_etics_packaging($fmod, \%cmd, "make dist\n\t", "make dist\n\t");
        }
 
        my $defprops = '';
index ba3714f..eb5fe66 100644 (file)
@@ -95,6 +95,9 @@
 3.3.1-4
 - Module rebuilt
 
+3.3.1-5
+- Module rebuilt
+
 3.4.0-1
 - Torque jobs support
 
index 5c637c6..c957a65 100644 (file)
@@ -61,7 +61,7 @@ dotless_gsoap_ver:=${shell echo ${gsoap_default_version} | tr -d . }
 ifeq ($(shell test -f ${stagedir}${prefix}/${libdir}/libglite_security_gsoap_plugin_${dotless_gsoap_ver}${default_flavour}_c.so && echo ok),ok)
        langflavour:=_c
 endif
-GSOAP_LIB:=-L${stagedir}${prefix}/${libdir} -lglite_security_gsoap_plugin_${dotless_gsoap_ver}${default_flavour}${langflavour}
+GSOAP_LIB:=-L${stagedir}${prefix}/${libdir} -lglite_security_gsoap_plugin_${dotless_gsoap_ver}${default_flavour}${langflavour} ${GSOAP_LIBS}
 
 WS_CLIENT_OBJS:= $(GSOAP_FILES_PREFIX)C.o $(GSOAP_FILES_PREFIX)Client.o ws_fault.o
 # ws_typeref.o
index e457931..f2880c2 100755 (executable)
@@ -54,8 +54,8 @@ 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 nagios/;
+my @nodes = qw/client server logger logger-msg nagios utils client-java doc ws-test db jpprimary jpindex jpclient harvester lb px proxyrenewal canl/;
+my @default_nodes = qw/lb px proxyrenewal nagios canl/;
 my %enable_nodes;
 my %disable_nodes;
 my %default_nodes; @default_nodes{@default_nodes} = (1) x ($#default_nodes + 1);
@@ -126,10 +126,6 @@ my %externs = (
        gridsite => {
                prefix => '/opt/glite'
        },
-       lcas => {
-               prefix => '/opt/glite',
-               pkg => 'lcas'
-       },
        trustmanager => {
                prefix => '/opt/glite'
        },
@@ -492,7 +488,7 @@ sub mode_build {
 
                print MAK "all: @modules\n\n";
                print MAK "stage: ".(join '-stage ', @modules)."-stage\n\n";
-               print MAK "clean check install:\n";
+               print MAK "clean check install dist distcheck rpm deb:\n";
 
                for (@modules) {
                        my $full = full($_);
@@ -524,6 +520,13 @@ sub mode_build {
                        print MAK "$_-stage: $snames\n\tcd $full/$build && \${MAKE} && \${MAKE} stage\n\n";
                }
 
+               print MAK qq/release-rpm: clean dist distcheck rpm
+
+release-deb: clean dist distcheck deb
+
+.PHONY: all stage clean check install dist distcheck rpm deb release-rpm release-deb
+/;
+
                close MAK;
        }
 }
@@ -600,7 +603,7 @@ BEGIN{
        '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:B voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B pkgconfig:B/ ],
+       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads:B voms:B 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/ ],
@@ -874,6 +877,17 @@ for my $ext (keys %deps_aux) {
        'canl' => 'emi-',
 );
 
+%cvs_tag_suffix = (
+       'lb' => '',
+       'jp' => '',
+       'jobid' => '',
+       'lbjp-common' => '',
+       'gridsite' => '-core',
+       'px' => '',
+       'canl' => '',
+);
+
+
 # ==== projects specification ====
 # etics_name ........... ETICS project name
 # conf_prefix .......... ETICS configurations name prefix
@@ -893,6 +907,7 @@ for my $ext (keys %deps_aux) {
                etics_name => 'org.glite',
                conf_prefix => { %cvs_tag_prefix },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour=${globus.thr.flavor} --nothrflavour=${globus.nothr.flavor}',
                local_prefix => '',
                etics_externs => {
@@ -910,7 +925,6 @@ for my $ext (keys %deps_aux) {
                                glue_schema=>'glue-schema',
                                trustmanager=>'org.glite.security.trustmanager',
                                axis=>'axis',
-                               lcas=>'org.glite.security.lcas',
                                gsoapxx=>'-',
                                jdk=>'jdk',
                                voms=>'org.glite.security.voms-api-cpp',
@@ -924,7 +938,7 @@ for my $ext (keys %deps_aux) {
                },
                etics_projects => {
                        vdt=>[qw/globus globus_essentials globus_proxy_utils gpt/],
-                       'org.glite'=>[qw/voms gridsite lcas gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
+                       'org.glite'=>[qw/voms gridsite gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
                },
                etics_locations => {
                        '*' => '',
@@ -963,6 +977,7 @@ for my $ext (keys %deps_aux) {
                        'canl' => 'emi-',
                },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour= --nothrflavour=',
                local_prefix => '/usr',
                etics_externs => {
@@ -980,7 +995,6 @@ for my $ext (keys %deps_aux) {
                                trustmanager=>'emi.java-security.trustmanager',
                                trustmanager_axis=>'emi.java-security.trustmanager-axis',
                                axis=>'axis1.4',
-                               lcas=>'emi.sac.lcas',
                                gsoapxx=>'-',
                                jdk=>'java',
                                voms => 'emi.voms.voms-api',
@@ -1050,7 +1064,7 @@ for my $ext (keys %deps_aux) {
                        },
                },
                etics_projects => {
-                       'emi'=>[qw/voms voms-devel gridsite lcas gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
+                       'emi'=>[qw/voms voms-devel gridsite gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
                },
                etics_locations => {
                        axis => 'axis',
@@ -1214,7 +1228,7 @@ sub get_version
                while (<V>) {
                        chomp;
                        ($major,$minor,$rev) = ($1,$2,$3) if /module\.version\s*=\s*([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)/;
-                       $age = $1 if /module\.age\s*=\s*([[:digit:]]+)/;
+                       $age = $1 if /module\.age\s*=\s*(\S+)/;
                }
                close V;
                $_ = $old_;
@@ -1360,6 +1374,55 @@ top_srcdir = $top_srcdir
 
        print MKINC "gsoap_default_version=".gsoap_version()."\n"  if $need_gsoap;
 
+       print MKINC '
+-include ${top_srcdir}/project/version.properties
+version=${module.version}
+
+${package}-${version}.tar.gz:
+       rm -rf dist
+       for dist in ${SOURCES} ${SOURCES_EXEC} configure project/ChangeLog project/debian.* project/*.spec project/package.* project/version.properties; do \
+               dir=${package}-${version}/`dirname $$dist`; \
+               mkdir -p dist/$$dir || :; \
+               install -m 0644 ${top_srcdir}/$$dist dist/$$dir; \
+       done
+       for dist in ${SOURCES_EXEC} configure; do \
+               chmod +x dist/${package}-${version}/$$dist; \
+       done
+       (cd dist; tar -czf ${package}-${version}.tar.gz ${package}-${version})
+       mv dist/${package}-${version}.tar.gz .
+
+dist: ${package}-${version}.tar.gz
+
+distcheck: ${package}-${version}.tar.gz
+       rm -rf dist
+       mkdir -p dist
+       cp ${package}-${version}.tar.gz dist
+       (cd dist; tar -xzf ${package}-${version}.tar.gz)
+       a=`(cd dist/${package}-${version}; find . -type f | sort)`; \
+       b=`(cd ${top_srcdir}; find . -path ./dist -prune -or -type f -print | sort)`; \
+       echo "$$a" >dist/files-dist; \
+       echo "$$b" | egrep -v "(^./Makefile.inc$$|^./${package}-${version}.tar.gz$$|^./debian|^./[^/]*.spec$$|\.cvsignore|^\./project/changelog$$|/CVS)" >dist/files-original
+       diff -U0 dist/files-dist dist/files-original
+
+rpm: ${package}-${version}.tar.gz
+       dir=dist/rpm_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir/BUILD $$dir/RPMS $$dir/SOURCES $$dir/SRPMS; \
+       cp ${package}-${version}.tar.gz $$dir/SOURCES/${package}-${version}-${module.age}.src.tar.gz && \
+       rpmbuild -bs --nodeps --define "_topdir $$dir" ${package}.spec && \
+       cp -v $$dir/SRPMS/*.src.rpm dist/
+
+deb: ${package}-${version}.tar.gz
+       dir=dist/dpkg_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir; \
+       cp ${package}-${version}.tar.gz $$dir/${package}_${version}.orig.tar.gz && \
+       tar zxf $$dir/${package}_${version}.orig.tar.gz -C $$dir && \
+       cp -rf debian/ $$dir/${package}-${version} && \
+       (cd $$dir/${package}-${version} && dpkg-buildpackage -S -d -nc -us -uc) && \
+       cp -v $$dir/*.tar.gz $$dir/*.dsc dist/
+';
+
        close MKINC;
 
        my $dh;
@@ -1412,43 +1475,48 @@ top_srcdir = $top_srcdir
                }
        }
 
-       print "Creating ${build}debian/\n" if ($debug);;
-
-       `rm -rfv  ${build}debian`;
-       mkdir $build."debian" or die $!;
-       `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
-       `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
-       `rm -f ${build}debian/*.orig`;
-       opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
-       for $_ (readdir $dh) {
-               if (/^debian\.(.*)/) {
-                       `mv ${build}debian/$_ ${build}debian/$1`;
-                       $debian = 1;
+       if ($module and -d $build."debian") {
+               print "Skipping ${build}debian/ (no rewrite in single module mode)\n" if ($debug);
+               `rm -f ${build}debian.*`;
+       } else {
+               print "Creating ${build}debian/\n" if ($debug);;
+
+               `rm -rfv  ${build}debian`;
+               mkdir $build."debian" or die $!;
+               `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
+               `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
+               `rm -f ${build}debian/*.orig`;
+               opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
+               for $_ (readdir $dh) {
+                       if (/^debian\.(.*)/) {
+                               `mv ${build}debian/$_ ${build}debian/$1`;
+                               $debian = 1;
+                       }
                }
-       }
-       closedir $dh;
+               closedir $dh;
 
-       if ($debian) {
-               my ($dir, $file);
+               if ($debian) {
+                       my ($dir, $file);
 
-               chmod 0755, "${build}debian/rules";
-               $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
-               $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
-               $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
-               $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
-               $file="${build}debian/changelog"; if (not -f $file) {
-                       open FH, ">$file" or die $!;
-                       print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
+                       chmod 0755, "${build}debian/rules";
+                       $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
+                       $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
+                       $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
+                       $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
+                       $file="${build}debian/changelog"; if (not -f $file) {
+                               open FH, ">$file" or die $!;
+                               print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
 
   * Automatically generated package
 
  -- $package{maintainer}  $debdate
 };
-                       close FH;
-               }
+                               close FH;
+                       }
 
-       } else {
-               `rm -rf ${build}debian`;
+               } else {
+                       `rm -rf ${build}debian`;
+               }
        }
 }
 
@@ -1460,16 +1528,18 @@ sub mode_etics_packaging {
        my ($workspaceDir, $srcPackageName, $srcAge, $topDir);
 
        # old-school packaging by ETICS for EMI-1
-       if ($project eq 'emi' and $project_version == 1) { return; }
+       if ($project eq 'emi' and $project_version == 1 and $fmod ne 'gridsite.core') { return; }
 
        if ($fmod eq 'gridsite.core') {
                $workspaceDir = '..';
                $srcPackageName = 'gridsite';
+               $srcTarBall = "../$srcPackageName-\${version}.src.tar.gz";
                $srcAge = '';
                $topDir = '../';
        } else {
                $workspaceDir = '${workspaceDir}';
                $srcPackageName = '${packageName}';
+               $srcTarBall = "$srcPackageName-\${version}.tar.gz";
                $srcAge = '-${age}';
                $topDir = '';
        }
@@ -1479,8 +1549,8 @@ sub mode_etics_packaging {
        $cmd->{default}{packaging} = $rpmprepare;
        $cmd->{default}{packaging} .= "dir=\${workspaceDir}/rpm_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SRPMSLocation} \$dir/{BUILD,RPMS,SOURCES,SRPMS} 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/SOURCES/
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/SOURCES/$srcPackageName-\${version}${srcAge}.src.tar.gz
        rpmbuild -bs --nodeps --define \"_topdir \$dir\" $srcPackageName.spec
        cp -v \$dir/SRPMS/*.src.rpm \${package.SRPMSLocation}/
        rm -rf \$dir";
@@ -1492,8 +1562,8 @@ sub mode_etics_packaging {
                $cmd->{$p}{packaging} = $debprepare;
                $cmd->{$p}{packaging} .= "dir=\${workspaceDir}/dpkg_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SDEBSLocation} \$dir 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/${srcPackageName}_\${version}.orig.tar.gz
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/${srcPackageName}_\${version}.orig.tar.gz
        tar xzf \$dir/${srcPackageName}_\${version}.orig.tar.gz -C \$dir
        cp -rf ${topDir}debian/ \$dir/$srcPackageName-\${version}/
        cd \$dir/$srcPackageName-\${version}
@@ -1564,7 +1634,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}_R_${major}_${minor}_${rev}" : 
+               $conftag = $subsys eq 'gridsite' ? "$project{tag_prefix}{$subsys}${subsys}$project{tag_suffix}{$subsys}_R_${major}_${minor}_${rev}" : 
                        "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}_${age}";
 
                # lowering age for older packaging
@@ -1603,7 +1673,6 @@ sub mode_etics {
        #$cmd_vcs{checkout} = "((test -d jra1mw/.git && (cd jra1mw; git pull)) || (git clone -q http://scientific.zcu.cz/git/jra1mw.git";
        #$cmd_vcs{checkout} .= " && (cd jra1mw; git checkout -b \${tag} --track origin/\${tag})" unless ($conftag eq /HEAD/);
        #$cmd_vcs{checkout} .= ")) && (test -d \${moduleName} || ln -s jra1mw/$cvs_module \${moduleName})";
-       $cmd_vcs{checkout} .= "\n\ttest -f \${packageName}-\${version}-\${age}.src.tar.gz || (ln -s \${moduleName} \${packageName}-\${version}; tar -chf - \${packageName}-\${version} --exclude CVS --exclude .git --exclude .etics | gzip --best > \${packageName}-\${version}-\${age}.src.tar.gz; rm \${packageName}-\${version})";
        $cmd_vcs{tag} = "cvs -d \${vcsroot} tag -R \${tag} ${moduleName}";
 
        $cmd{default}{init} = 'None';
@@ -1695,7 +1764,7 @@ sub mode_etics {
                        $cmd{default}{compile} = "make rpath=$project{local_prefix}/\${libdir}";
                        $cmd{default}{install} = "make install post-install rpath=$project{local_prefix}/\${libdir}";
                }
-               mode_etics_packaging($fmod, \%cmd);
+               mode_etics_packaging($fmod, \%cmd, "make dist\n\t", "make dist\n\t");
        }
 
        my $defprops = '';
index 859d933..217922b 100644 (file)
 1.3.0-5
 - Module rebuilt
 
+1.3.1-1
+- Improved build and packaging for Fedora
+- Explicit pkg-config dependency
+
 1.4.0-1
 - Merge from branch_3_2
 
index e457931..f2880c2 100644 (file)
@@ -54,8 +54,8 @@ 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 nagios/;
+my @nodes = qw/client server logger logger-msg nagios utils client-java doc ws-test db jpprimary jpindex jpclient harvester lb px proxyrenewal canl/;
+my @default_nodes = qw/lb px proxyrenewal nagios canl/;
 my %enable_nodes;
 my %disable_nodes;
 my %default_nodes; @default_nodes{@default_nodes} = (1) x ($#default_nodes + 1);
@@ -126,10 +126,6 @@ my %externs = (
        gridsite => {
                prefix => '/opt/glite'
        },
-       lcas => {
-               prefix => '/opt/glite',
-               pkg => 'lcas'
-       },
        trustmanager => {
                prefix => '/opt/glite'
        },
@@ -492,7 +488,7 @@ sub mode_build {
 
                print MAK "all: @modules\n\n";
                print MAK "stage: ".(join '-stage ', @modules)."-stage\n\n";
-               print MAK "clean check install:\n";
+               print MAK "clean check install dist distcheck rpm deb:\n";
 
                for (@modules) {
                        my $full = full($_);
@@ -524,6 +520,13 @@ sub mode_build {
                        print MAK "$_-stage: $snames\n\tcd $full/$build && \${MAKE} && \${MAKE} stage\n\n";
                }
 
+               print MAK qq/release-rpm: clean dist distcheck rpm
+
+release-deb: clean dist distcheck deb
+
+.PHONY: all stage clean check install dist distcheck rpm deb release-rpm release-deb
+/;
+
                close MAK;
        }
 }
@@ -600,7 +603,7 @@ BEGIN{
        '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:B voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B pkgconfig:B/ ],
+       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads:B voms:B 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/ ],
@@ -874,6 +877,17 @@ for my $ext (keys %deps_aux) {
        'canl' => 'emi-',
 );
 
+%cvs_tag_suffix = (
+       'lb' => '',
+       'jp' => '',
+       'jobid' => '',
+       'lbjp-common' => '',
+       'gridsite' => '-core',
+       'px' => '',
+       'canl' => '',
+);
+
+
 # ==== projects specification ====
 # etics_name ........... ETICS project name
 # conf_prefix .......... ETICS configurations name prefix
@@ -893,6 +907,7 @@ for my $ext (keys %deps_aux) {
                etics_name => 'org.glite',
                conf_prefix => { %cvs_tag_prefix },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour=${globus.thr.flavor} --nothrflavour=${globus.nothr.flavor}',
                local_prefix => '',
                etics_externs => {
@@ -910,7 +925,6 @@ for my $ext (keys %deps_aux) {
                                glue_schema=>'glue-schema',
                                trustmanager=>'org.glite.security.trustmanager',
                                axis=>'axis',
-                               lcas=>'org.glite.security.lcas',
                                gsoapxx=>'-',
                                jdk=>'jdk',
                                voms=>'org.glite.security.voms-api-cpp',
@@ -924,7 +938,7 @@ for my $ext (keys %deps_aux) {
                },
                etics_projects => {
                        vdt=>[qw/globus globus_essentials globus_proxy_utils gpt/],
-                       'org.glite'=>[qw/voms gridsite lcas gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
+                       'org.glite'=>[qw/voms gridsite gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
                },
                etics_locations => {
                        '*' => '',
@@ -963,6 +977,7 @@ for my $ext (keys %deps_aux) {
                        'canl' => 'emi-',
                },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour= --nothrflavour=',
                local_prefix => '/usr',
                etics_externs => {
@@ -980,7 +995,6 @@ for my $ext (keys %deps_aux) {
                                trustmanager=>'emi.java-security.trustmanager',
                                trustmanager_axis=>'emi.java-security.trustmanager-axis',
                                axis=>'axis1.4',
-                               lcas=>'emi.sac.lcas',
                                gsoapxx=>'-',
                                jdk=>'java',
                                voms => 'emi.voms.voms-api',
@@ -1050,7 +1064,7 @@ for my $ext (keys %deps_aux) {
                        },
                },
                etics_projects => {
-                       'emi'=>[qw/voms voms-devel gridsite lcas gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
+                       'emi'=>[qw/voms voms-devel gridsite gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
                },
                etics_locations => {
                        axis => 'axis',
@@ -1214,7 +1228,7 @@ sub get_version
                while (<V>) {
                        chomp;
                        ($major,$minor,$rev) = ($1,$2,$3) if /module\.version\s*=\s*([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)/;
-                       $age = $1 if /module\.age\s*=\s*([[:digit:]]+)/;
+                       $age = $1 if /module\.age\s*=\s*(\S+)/;
                }
                close V;
                $_ = $old_;
@@ -1360,6 +1374,55 @@ top_srcdir = $top_srcdir
 
        print MKINC "gsoap_default_version=".gsoap_version()."\n"  if $need_gsoap;
 
+       print MKINC '
+-include ${top_srcdir}/project/version.properties
+version=${module.version}
+
+${package}-${version}.tar.gz:
+       rm -rf dist
+       for dist in ${SOURCES} ${SOURCES_EXEC} configure project/ChangeLog project/debian.* project/*.spec project/package.* project/version.properties; do \
+               dir=${package}-${version}/`dirname $$dist`; \
+               mkdir -p dist/$$dir || :; \
+               install -m 0644 ${top_srcdir}/$$dist dist/$$dir; \
+       done
+       for dist in ${SOURCES_EXEC} configure; do \
+               chmod +x dist/${package}-${version}/$$dist; \
+       done
+       (cd dist; tar -czf ${package}-${version}.tar.gz ${package}-${version})
+       mv dist/${package}-${version}.tar.gz .
+
+dist: ${package}-${version}.tar.gz
+
+distcheck: ${package}-${version}.tar.gz
+       rm -rf dist
+       mkdir -p dist
+       cp ${package}-${version}.tar.gz dist
+       (cd dist; tar -xzf ${package}-${version}.tar.gz)
+       a=`(cd dist/${package}-${version}; find . -type f | sort)`; \
+       b=`(cd ${top_srcdir}; find . -path ./dist -prune -or -type f -print | sort)`; \
+       echo "$$a" >dist/files-dist; \
+       echo "$$b" | egrep -v "(^./Makefile.inc$$|^./${package}-${version}.tar.gz$$|^./debian|^./[^/]*.spec$$|\.cvsignore|^\./project/changelog$$|/CVS)" >dist/files-original
+       diff -U0 dist/files-dist dist/files-original
+
+rpm: ${package}-${version}.tar.gz
+       dir=dist/rpm_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir/BUILD $$dir/RPMS $$dir/SOURCES $$dir/SRPMS; \
+       cp ${package}-${version}.tar.gz $$dir/SOURCES/${package}-${version}-${module.age}.src.tar.gz && \
+       rpmbuild -bs --nodeps --define "_topdir $$dir" ${package}.spec && \
+       cp -v $$dir/SRPMS/*.src.rpm dist/
+
+deb: ${package}-${version}.tar.gz
+       dir=dist/dpkg_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir; \
+       cp ${package}-${version}.tar.gz $$dir/${package}_${version}.orig.tar.gz && \
+       tar zxf $$dir/${package}_${version}.orig.tar.gz -C $$dir && \
+       cp -rf debian/ $$dir/${package}-${version} && \
+       (cd $$dir/${package}-${version} && dpkg-buildpackage -S -d -nc -us -uc) && \
+       cp -v $$dir/*.tar.gz $$dir/*.dsc dist/
+';
+
        close MKINC;
 
        my $dh;
@@ -1412,43 +1475,48 @@ top_srcdir = $top_srcdir
                }
        }
 
-       print "Creating ${build}debian/\n" if ($debug);;
-
-       `rm -rfv  ${build}debian`;
-       mkdir $build."debian" or die $!;
-       `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
-       `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
-       `rm -f ${build}debian/*.orig`;
-       opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
-       for $_ (readdir $dh) {
-               if (/^debian\.(.*)/) {
-                       `mv ${build}debian/$_ ${build}debian/$1`;
-                       $debian = 1;
+       if ($module and -d $build."debian") {
+               print "Skipping ${build}debian/ (no rewrite in single module mode)\n" if ($debug);
+               `rm -f ${build}debian.*`;
+       } else {
+               print "Creating ${build}debian/\n" if ($debug);;
+
+               `rm -rfv  ${build}debian`;
+               mkdir $build."debian" or die $!;
+               `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
+               `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
+               `rm -f ${build}debian/*.orig`;
+               opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
+               for $_ (readdir $dh) {
+                       if (/^debian\.(.*)/) {
+                               `mv ${build}debian/$_ ${build}debian/$1`;
+                               $debian = 1;
+                       }
                }
-       }
-       closedir $dh;
+               closedir $dh;
 
-       if ($debian) {
-               my ($dir, $file);
+               if ($debian) {
+                       my ($dir, $file);
 
-               chmod 0755, "${build}debian/rules";
-               $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
-               $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
-               $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
-               $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
-               $file="${build}debian/changelog"; if (not -f $file) {
-                       open FH, ">$file" or die $!;
-                       print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
+                       chmod 0755, "${build}debian/rules";
+                       $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
+                       $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
+                       $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
+                       $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
+                       $file="${build}debian/changelog"; if (not -f $file) {
+                               open FH, ">$file" or die $!;
+                               print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
 
   * Automatically generated package
 
  -- $package{maintainer}  $debdate
 };
-                       close FH;
-               }
+                               close FH;
+                       }
 
-       } else {
-               `rm -rf ${build}debian`;
+               } else {
+                       `rm -rf ${build}debian`;
+               }
        }
 }
 
@@ -1460,16 +1528,18 @@ sub mode_etics_packaging {
        my ($workspaceDir, $srcPackageName, $srcAge, $topDir);
 
        # old-school packaging by ETICS for EMI-1
-       if ($project eq 'emi' and $project_version == 1) { return; }
+       if ($project eq 'emi' and $project_version == 1 and $fmod ne 'gridsite.core') { return; }
 
        if ($fmod eq 'gridsite.core') {
                $workspaceDir = '..';
                $srcPackageName = 'gridsite';
+               $srcTarBall = "../$srcPackageName-\${version}.src.tar.gz";
                $srcAge = '';
                $topDir = '../';
        } else {
                $workspaceDir = '${workspaceDir}';
                $srcPackageName = '${packageName}';
+               $srcTarBall = "$srcPackageName-\${version}.tar.gz";
                $srcAge = '-${age}';
                $topDir = '';
        }
@@ -1479,8 +1549,8 @@ sub mode_etics_packaging {
        $cmd->{default}{packaging} = $rpmprepare;
        $cmd->{default}{packaging} .= "dir=\${workspaceDir}/rpm_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SRPMSLocation} \$dir/{BUILD,RPMS,SOURCES,SRPMS} 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/SOURCES/
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/SOURCES/$srcPackageName-\${version}${srcAge}.src.tar.gz
        rpmbuild -bs --nodeps --define \"_topdir \$dir\" $srcPackageName.spec
        cp -v \$dir/SRPMS/*.src.rpm \${package.SRPMSLocation}/
        rm -rf \$dir";
@@ -1492,8 +1562,8 @@ sub mode_etics_packaging {
                $cmd->{$p}{packaging} = $debprepare;
                $cmd->{$p}{packaging} .= "dir=\${workspaceDir}/dpkg_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SDEBSLocation} \$dir 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/${srcPackageName}_\${version}.orig.tar.gz
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/${srcPackageName}_\${version}.orig.tar.gz
        tar xzf \$dir/${srcPackageName}_\${version}.orig.tar.gz -C \$dir
        cp -rf ${topDir}debian/ \$dir/$srcPackageName-\${version}/
        cd \$dir/$srcPackageName-\${version}
@@ -1564,7 +1634,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}_R_${major}_${minor}_${rev}" : 
+               $conftag = $subsys eq 'gridsite' ? "$project{tag_prefix}{$subsys}${subsys}$project{tag_suffix}{$subsys}_R_${major}_${minor}_${rev}" : 
                        "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}_${age}";
 
                # lowering age for older packaging
@@ -1603,7 +1673,6 @@ sub mode_etics {
        #$cmd_vcs{checkout} = "((test -d jra1mw/.git && (cd jra1mw; git pull)) || (git clone -q http://scientific.zcu.cz/git/jra1mw.git";
        #$cmd_vcs{checkout} .= " && (cd jra1mw; git checkout -b \${tag} --track origin/\${tag})" unless ($conftag eq /HEAD/);
        #$cmd_vcs{checkout} .= ")) && (test -d \${moduleName} || ln -s jra1mw/$cvs_module \${moduleName})";
-       $cmd_vcs{checkout} .= "\n\ttest -f \${packageName}-\${version}-\${age}.src.tar.gz || (ln -s \${moduleName} \${packageName}-\${version}; tar -chf - \${packageName}-\${version} --exclude CVS --exclude .git --exclude .etics | gzip --best > \${packageName}-\${version}-\${age}.src.tar.gz; rm \${packageName}-\${version})";
        $cmd_vcs{tag} = "cvs -d \${vcsroot} tag -R \${tag} ${moduleName}";
 
        $cmd{default}{init} = 'None';
@@ -1695,7 +1764,7 @@ sub mode_etics {
                        $cmd{default}{compile} = "make rpath=$project{local_prefix}/\${libdir}";
                        $cmd{default}{install} = "make install post-install rpath=$project{local_prefix}/\${libdir}";
                }
-               mode_etics_packaging($fmod, \%cmd);
+               mode_etics_packaging($fmod, \%cmd, "make dist\n\t", "make dist\n\t");
        }
 
        my $defprops = '';
index b50c22e..2ce9191 100644 (file)
 4.4.3-2
 - Module rebuilt
 
+4.4.3-3
+- Module rebuilt
+
 4.5.0-1
 - Merge from branch_3_2
 
index eba7d34..f2880c2 100755 (executable)
@@ -54,8 +54,8 @@ 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 nagios/;
+my @nodes = qw/client server logger logger-msg nagios utils client-java doc ws-test db jpprimary jpindex jpclient harvester lb px proxyrenewal canl/;
+my @default_nodes = qw/lb px proxyrenewal nagios canl/;
 my %enable_nodes;
 my %disable_nodes;
 my %default_nodes; @default_nodes{@default_nodes} = (1) x ($#default_nodes + 1);
@@ -488,7 +488,7 @@ sub mode_build {
 
                print MAK "all: @modules\n\n";
                print MAK "stage: ".(join '-stage ', @modules)."-stage\n\n";
-               print MAK "clean check install:\n";
+               print MAK "clean check install dist distcheck rpm deb:\n";
 
                for (@modules) {
                        my $full = full($_);
@@ -520,6 +520,13 @@ sub mode_build {
                        print MAK "$_-stage: $snames\n\tcd $full/$build && \${MAKE} && \${MAKE} stage\n\n";
                }
 
+               print MAK qq/release-rpm: clean dist distcheck rpm
+
+release-deb: clean dist distcheck deb
+
+.PHONY: all stage clean check install dist distcheck rpm deb release-rpm release-deb
+/;
+
                close MAK;
        }
 }
@@ -870,6 +877,17 @@ for my $ext (keys %deps_aux) {
        'canl' => 'emi-',
 );
 
+%cvs_tag_suffix = (
+       'lb' => '',
+       'jp' => '',
+       'jobid' => '',
+       'lbjp-common' => '',
+       'gridsite' => '-core',
+       'px' => '',
+       'canl' => '',
+);
+
+
 # ==== projects specification ====
 # etics_name ........... ETICS project name
 # conf_prefix .......... ETICS configurations name prefix
@@ -889,6 +907,7 @@ for my $ext (keys %deps_aux) {
                etics_name => 'org.glite',
                conf_prefix => { %cvs_tag_prefix },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour=${globus.thr.flavor} --nothrflavour=${globus.nothr.flavor}',
                local_prefix => '',
                etics_externs => {
@@ -958,6 +977,7 @@ for my $ext (keys %deps_aux) {
                        'canl' => 'emi-',
                },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour= --nothrflavour=',
                local_prefix => '/usr',
                etics_externs => {
@@ -1208,7 +1228,7 @@ sub get_version
                while (<V>) {
                        chomp;
                        ($major,$minor,$rev) = ($1,$2,$3) if /module\.version\s*=\s*([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)/;
-                       $age = $1 if /module\.age\s*=\s*([[:digit:]]+)/;
+                       $age = $1 if /module\.age\s*=\s*(\S+)/;
                }
                close V;
                $_ = $old_;
@@ -1354,6 +1374,55 @@ top_srcdir = $top_srcdir
 
        print MKINC "gsoap_default_version=".gsoap_version()."\n"  if $need_gsoap;
 
+       print MKINC '
+-include ${top_srcdir}/project/version.properties
+version=${module.version}
+
+${package}-${version}.tar.gz:
+       rm -rf dist
+       for dist in ${SOURCES} ${SOURCES_EXEC} configure project/ChangeLog project/debian.* project/*.spec project/package.* project/version.properties; do \
+               dir=${package}-${version}/`dirname $$dist`; \
+               mkdir -p dist/$$dir || :; \
+               install -m 0644 ${top_srcdir}/$$dist dist/$$dir; \
+       done
+       for dist in ${SOURCES_EXEC} configure; do \
+               chmod +x dist/${package}-${version}/$$dist; \
+       done
+       (cd dist; tar -czf ${package}-${version}.tar.gz ${package}-${version})
+       mv dist/${package}-${version}.tar.gz .
+
+dist: ${package}-${version}.tar.gz
+
+distcheck: ${package}-${version}.tar.gz
+       rm -rf dist
+       mkdir -p dist
+       cp ${package}-${version}.tar.gz dist
+       (cd dist; tar -xzf ${package}-${version}.tar.gz)
+       a=`(cd dist/${package}-${version}; find . -type f | sort)`; \
+       b=`(cd ${top_srcdir}; find . -path ./dist -prune -or -type f -print | sort)`; \
+       echo "$$a" >dist/files-dist; \
+       echo "$$b" | egrep -v "(^./Makefile.inc$$|^./${package}-${version}.tar.gz$$|^./debian|^./[^/]*.spec$$|\.cvsignore|^\./project/changelog$$|/CVS)" >dist/files-original
+       diff -U0 dist/files-dist dist/files-original
+
+rpm: ${package}-${version}.tar.gz
+       dir=dist/rpm_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir/BUILD $$dir/RPMS $$dir/SOURCES $$dir/SRPMS; \
+       cp ${package}-${version}.tar.gz $$dir/SOURCES/${package}-${version}-${module.age}.src.tar.gz && \
+       rpmbuild -bs --nodeps --define "_topdir $$dir" ${package}.spec && \
+       cp -v $$dir/SRPMS/*.src.rpm dist/
+
+deb: ${package}-${version}.tar.gz
+       dir=dist/dpkg_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir; \
+       cp ${package}-${version}.tar.gz $$dir/${package}_${version}.orig.tar.gz && \
+       tar zxf $$dir/${package}_${version}.orig.tar.gz -C $$dir && \
+       cp -rf debian/ $$dir/${package}-${version} && \
+       (cd $$dir/${package}-${version} && dpkg-buildpackage -S -d -nc -us -uc) && \
+       cp -v $$dir/*.tar.gz $$dir/*.dsc dist/
+';
+
        close MKINC;
 
        my $dh;
@@ -1406,43 +1475,48 @@ top_srcdir = $top_srcdir
                }
        }
 
-       print "Creating ${build}debian/\n" if ($debug);;
-
-       `rm -rfv  ${build}debian`;
-       mkdir $build."debian" or die $!;
-       `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
-       `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
-       `rm -f ${build}debian/*.orig`;
-       opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
-       for $_ (readdir $dh) {
-               if (/^debian\.(.*)/) {
-                       `mv ${build}debian/$_ ${build}debian/$1`;
-                       $debian = 1;
+       if ($module and -d $build."debian") {
+               print "Skipping ${build}debian/ (no rewrite in single module mode)\n" if ($debug);
+               `rm -f ${build}debian.*`;
+       } else {
+               print "Creating ${build}debian/\n" if ($debug);;
+
+               `rm -rfv  ${build}debian`;
+               mkdir $build."debian" or die $!;
+               `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
+               `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
+               `rm -f ${build}debian/*.orig`;
+               opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
+               for $_ (readdir $dh) {
+                       if (/^debian\.(.*)/) {
+                               `mv ${build}debian/$_ ${build}debian/$1`;
+                               $debian = 1;
+                       }
                }
-       }
-       closedir $dh;
+               closedir $dh;
 
-       if ($debian) {
-               my ($dir, $file);
+               if ($debian) {
+                       my ($dir, $file);
 
-               chmod 0755, "${build}debian/rules";
-               $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
-               $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
-               $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
-               $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
-               $file="${build}debian/changelog"; if (not -f $file) {
-                       open FH, ">$file" or die $!;
-                       print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
+                       chmod 0755, "${build}debian/rules";
+                       $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
+                       $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
+                       $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
+                       $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
+                       $file="${build}debian/changelog"; if (not -f $file) {
+                               open FH, ">$file" or die $!;
+                               print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
 
   * Automatically generated package
 
  -- $package{maintainer}  $debdate
 };
-                       close FH;
-               }
+                               close FH;
+                       }
 
-       } else {
-               `rm -rf ${build}debian`;
+               } else {
+                       `rm -rf ${build}debian`;
+               }
        }
 }
 
@@ -1459,11 +1533,13 @@ sub mode_etics_packaging {
        if ($fmod eq 'gridsite.core') {
                $workspaceDir = '..';
                $srcPackageName = 'gridsite';
+               $srcTarBall = "../$srcPackageName-\${version}.src.tar.gz";
                $srcAge = '';
                $topDir = '../';
        } else {
                $workspaceDir = '${workspaceDir}';
                $srcPackageName = '${packageName}';
+               $srcTarBall = "$srcPackageName-\${version}.tar.gz";
                $srcAge = '-${age}';
                $topDir = '';
        }
@@ -1473,8 +1549,8 @@ sub mode_etics_packaging {
        $cmd->{default}{packaging} = $rpmprepare;
        $cmd->{default}{packaging} .= "dir=\${workspaceDir}/rpm_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SRPMSLocation} \$dir/{BUILD,RPMS,SOURCES,SRPMS} 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/SOURCES/
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/SOURCES/$srcPackageName-\${version}${srcAge}.src.tar.gz
        rpmbuild -bs --nodeps --define \"_topdir \$dir\" $srcPackageName.spec
        cp -v \$dir/SRPMS/*.src.rpm \${package.SRPMSLocation}/
        rm -rf \$dir";
@@ -1486,8 +1562,8 @@ sub mode_etics_packaging {
                $cmd->{$p}{packaging} = $debprepare;
                $cmd->{$p}{packaging} .= "dir=\${workspaceDir}/dpkg_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SDEBSLocation} \$dir 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/${srcPackageName}_\${version}.orig.tar.gz
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/${srcPackageName}_\${version}.orig.tar.gz
        tar xzf \$dir/${srcPackageName}_\${version}.orig.tar.gz -C \$dir
        cp -rf ${topDir}debian/ \$dir/$srcPackageName-\${version}/
        cd \$dir/$srcPackageName-\${version}
@@ -1558,7 +1634,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}_R_${major}_${minor}_${rev}" : 
+               $conftag = $subsys eq 'gridsite' ? "$project{tag_prefix}{$subsys}${subsys}$project{tag_suffix}{$subsys}_R_${major}_${minor}_${rev}" : 
                        "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}_${age}";
 
                # lowering age for older packaging
@@ -1597,7 +1673,6 @@ sub mode_etics {
        #$cmd_vcs{checkout} = "((test -d jra1mw/.git && (cd jra1mw; git pull)) || (git clone -q http://scientific.zcu.cz/git/jra1mw.git";
        #$cmd_vcs{checkout} .= " && (cd jra1mw; git checkout -b \${tag} --track origin/\${tag})" unless ($conftag eq /HEAD/);
        #$cmd_vcs{checkout} .= ")) && (test -d \${moduleName} || ln -s jra1mw/$cvs_module \${moduleName})";
-       $cmd_vcs{checkout} .= "\n\ttest -f \${packageName}-\${version}-\${age}.src.tar.gz || (ln -s \${moduleName} \${packageName}-\${version}; tar -chf - \${packageName}-\${version} --exclude CVS --exclude .git --exclude .etics | gzip --best > \${packageName}-\${version}-\${age}.src.tar.gz; rm \${packageName}-\${version})";
        $cmd_vcs{tag} = "cvs -d \${vcsroot} tag -R \${tag} ${moduleName}";
 
        $cmd{default}{init} = 'None';
@@ -1689,7 +1764,7 @@ sub mode_etics {
                        $cmd{default}{compile} = "make rpath=$project{local_prefix}/\${libdir}";
                        $cmd{default}{install} = "make install post-install rpath=$project{local_prefix}/\${libdir}";
                }
-               mode_etics_packaging($fmod, \%cmd);
+               mode_etics_packaging($fmod, \%cmd, "make dist\n\t", "make dist\n\t");
        }
 
        my $defprops = '';
index 0ea8d92..b0cd721 100644 (file)
 3.1.2-2
 - Module rebuilt
 
+3.1.3-1
+- Explicit pkg-config dependency
+- Using less portable timegm() instead of mktime() and setenv(). Not touching environment is better for thread applications and the code is reduced.
+
 3.2.0-1
 - Merge from branch_3_2
 
index 9480d7d..26a03e4 100644 (file)
@@ -126,7 +126,6 @@ static const char *prepared_names[4] = {"select", "update", "insert", "other"};
 
 int glite_lbu_InitDBContextPsql(glite_lbu_DBContext *ctx_gen) {
        glite_lbu_DBContextPsql ctx;
-       int err = 0;
 
        ctx = calloc(1, sizeof *ctx);
        if (!ctx) return ENOMEM;
index 6ee5a43..3ac36bd 100644 (file)
@@ -21,8 +21,8 @@ limitations under the License.
 #include <errno.h>
 #include <pthread.h>
 #include <stdio.h>
-#include <stdlib.h>
 #include <string.h>
+#include <time.h>
 #include <unistd.h>
 
 #include <glite/lbu/trio.h>
@@ -132,39 +132,6 @@ void glite_lbu_TimestampToStr(double t, char **str) {
 }
 
 
-static time_t tm2time(struct tm *tm) {
-       static struct tm tm_last = { tm_year:0, tm_mon:0 };
-       static time_t t = (time_t)-1;
-       static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
-       char *tz;
-
-       pthread_mutex_lock(&lock);
-       if (tm->tm_year == tm_last.tm_year && tm->tm_mon == tm_last.tm_mon) {
-               t = t + (tm->tm_sec - tm_last.tm_sec)
-                     + (tm->tm_min - tm_last.tm_min) * 60
-                     + (tm->tm_hour - tm_last.tm_hour) * 3600
-                     + (tm->tm_mday - tm_last.tm_mday) * 86400;
-               memcpy(&tm_last, tm, sizeof tm_last);
-       } else {
-               tz = getenv("TZ");
-               if (tz) tz = strdup(tz);
-               setenv("TZ", "UTC", 1);
-               tzset();
-
-               t =  mktime(tm);
-               memcpy(&tm_last, tm, sizeof tm_last);
-
-               if (tz) setenv("TZ", tz, 1);
-               else unsetenv("TZ");
-               free(tz);
-               tzset();
-       }
-       pthread_mutex_unlock(&lock);
-
-       return t;
-}
-
-
 time_t glite_lbu_StrToTime(const char *str) {
        struct tm       tm;
 
@@ -175,7 +142,7 @@ time_t glite_lbu_StrToTime(const char *str) {
        tm.tm_year -= 1900;
        tm.tm_mon--;
 
-       return tm2time(&tm);
+       return timegm(&tm);
 }
 
 
@@ -191,7 +158,7 @@ double glite_lbu_StrToTimestamp(const char *str) {
        tm.tm_mon--;
        tm.tm_sec = sec;
 
-       return (sec - tm.tm_sec) + tm2time(&tm);
+       return (sec - tm.tm_sec) + timegm(&tm);
 }
 
 
@@ -247,7 +214,7 @@ void glite_lbu_DBClose(glite_lbu_DBContext ctx) {
 
 
 int glite_lbu_DBQueryCaps(glite_lbu_DBContext ctx) {
-       if (!VALID(ctx->backend)) return EINVAL;
+       if (!VALID(ctx->backend)) return -1;
        return backends[ctx->backend]->queryCaps(ctx);
 }
 
@@ -277,7 +244,7 @@ int glite_lbu_Rollback(glite_lbu_DBContext ctx) {
 
 
 int glite_lbu_FetchRow(glite_lbu_Statement stmt, unsigned int n, unsigned long *lengths, char **results) {
-       if (!VALID(stmt->ctx->backend)) return EINVAL;
+       if (!VALID(stmt->ctx->backend)) return -1;
        return backends[stmt->ctx->backend]->fetchRow(stmt, n, lengths, results);
 }
 
@@ -295,7 +262,7 @@ int glite_lbu_QueryIndices(glite_lbu_DBContext ctx, const char *table, char ***k
 
 
 int glite_lbu_ExecSQL(glite_lbu_DBContext ctx, const char *cmd, glite_lbu_Statement *stmt) {
-       if (!VALID(ctx->backend)) return EINVAL;
+       if (!VALID(ctx->backend)) return -1;
        return backends[ctx->backend]->execSQL(ctx, cmd, stmt);
 }
 
@@ -313,7 +280,7 @@ int glite_lbu_PrepareStmt(glite_lbu_DBContext ctx, const char *sql, glite_lbu_St
 
 
 int glite_lbu_ExecPreparedStmt_v(glite_lbu_Statement stmt, int n, va_list ap) {
-       if (!VALID(stmt->ctx->backend)) return EINVAL;
+       if (!VALID(stmt->ctx->backend)) return -1;
        return backends[stmt->ctx->backend]->execPreparedStmt_v(stmt, n, ap);
 }
 
@@ -331,7 +298,7 @@ int glite_lbu_ExecPreparedStmt(glite_lbu_Statement stmt, int n, ...) {
 
 
 long int glite_lbu_Lastid(glite_lbu_Statement stmt) {
-       if (!VALID(stmt->ctx->backend)) return EINVAL;
+       if (!VALID(stmt->ctx->backend)) return 0;
        return backends[stmt->ctx->backend]->lastid(stmt);
 }
 
index eba7d34..f2880c2 100755 (executable)
@@ -54,8 +54,8 @@ 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 nagios/;
+my @nodes = qw/client server logger logger-msg nagios utils client-java doc ws-test db jpprimary jpindex jpclient harvester lb px proxyrenewal canl/;
+my @default_nodes = qw/lb px proxyrenewal nagios canl/;
 my %enable_nodes;
 my %disable_nodes;
 my %default_nodes; @default_nodes{@default_nodes} = (1) x ($#default_nodes + 1);
@@ -488,7 +488,7 @@ sub mode_build {
 
                print MAK "all: @modules\n\n";
                print MAK "stage: ".(join '-stage ', @modules)."-stage\n\n";
-               print MAK "clean check install:\n";
+               print MAK "clean check install dist distcheck rpm deb:\n";
 
                for (@modules) {
                        my $full = full($_);
@@ -520,6 +520,13 @@ sub mode_build {
                        print MAK "$_-stage: $snames\n\tcd $full/$build && \${MAKE} && \${MAKE} stage\n\n";
                }
 
+               print MAK qq/release-rpm: clean dist distcheck rpm
+
+release-deb: clean dist distcheck deb
+
+.PHONY: all stage clean check install dist distcheck rpm deb release-rpm release-deb
+/;
+
                close MAK;
        }
 }
@@ -870,6 +877,17 @@ for my $ext (keys %deps_aux) {
        'canl' => 'emi-',
 );
 
+%cvs_tag_suffix = (
+       'lb' => '',
+       'jp' => '',
+       'jobid' => '',
+       'lbjp-common' => '',
+       'gridsite' => '-core',
+       'px' => '',
+       'canl' => '',
+);
+
+
 # ==== projects specification ====
 # etics_name ........... ETICS project name
 # conf_prefix .......... ETICS configurations name prefix
@@ -889,6 +907,7 @@ for my $ext (keys %deps_aux) {
                etics_name => 'org.glite',
                conf_prefix => { %cvs_tag_prefix },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour=${globus.thr.flavor} --nothrflavour=${globus.nothr.flavor}',
                local_prefix => '',
                etics_externs => {
@@ -958,6 +977,7 @@ for my $ext (keys %deps_aux) {
                        'canl' => 'emi-',
                },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour= --nothrflavour=',
                local_prefix => '/usr',
                etics_externs => {
@@ -1208,7 +1228,7 @@ sub get_version
                while (<V>) {
                        chomp;
                        ($major,$minor,$rev) = ($1,$2,$3) if /module\.version\s*=\s*([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)/;
-                       $age = $1 if /module\.age\s*=\s*([[:digit:]]+)/;
+                       $age = $1 if /module\.age\s*=\s*(\S+)/;
                }
                close V;
                $_ = $old_;
@@ -1354,6 +1374,55 @@ top_srcdir = $top_srcdir
 
        print MKINC "gsoap_default_version=".gsoap_version()."\n"  if $need_gsoap;
 
+       print MKINC '
+-include ${top_srcdir}/project/version.properties
+version=${module.version}
+
+${package}-${version}.tar.gz:
+       rm -rf dist
+       for dist in ${SOURCES} ${SOURCES_EXEC} configure project/ChangeLog project/debian.* project/*.spec project/package.* project/version.properties; do \
+               dir=${package}-${version}/`dirname $$dist`; \
+               mkdir -p dist/$$dir || :; \
+               install -m 0644 ${top_srcdir}/$$dist dist/$$dir; \
+       done
+       for dist in ${SOURCES_EXEC} configure; do \
+               chmod +x dist/${package}-${version}/$$dist; \
+       done
+       (cd dist; tar -czf ${package}-${version}.tar.gz ${package}-${version})
+       mv dist/${package}-${version}.tar.gz .
+
+dist: ${package}-${version}.tar.gz
+
+distcheck: ${package}-${version}.tar.gz
+       rm -rf dist
+       mkdir -p dist
+       cp ${package}-${version}.tar.gz dist
+       (cd dist; tar -xzf ${package}-${version}.tar.gz)
+       a=`(cd dist/${package}-${version}; find . -type f | sort)`; \
+       b=`(cd ${top_srcdir}; find . -path ./dist -prune -or -type f -print | sort)`; \
+       echo "$$a" >dist/files-dist; \
+       echo "$$b" | egrep -v "(^./Makefile.inc$$|^./${package}-${version}.tar.gz$$|^./debian|^./[^/]*.spec$$|\.cvsignore|^\./project/changelog$$|/CVS)" >dist/files-original
+       diff -U0 dist/files-dist dist/files-original
+
+rpm: ${package}-${version}.tar.gz
+       dir=dist/rpm_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir/BUILD $$dir/RPMS $$dir/SOURCES $$dir/SRPMS; \
+       cp ${package}-${version}.tar.gz $$dir/SOURCES/${package}-${version}-${module.age}.src.tar.gz && \
+       rpmbuild -bs --nodeps --define "_topdir $$dir" ${package}.spec && \
+       cp -v $$dir/SRPMS/*.src.rpm dist/
+
+deb: ${package}-${version}.tar.gz
+       dir=dist/dpkg_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir; \
+       cp ${package}-${version}.tar.gz $$dir/${package}_${version}.orig.tar.gz && \
+       tar zxf $$dir/${package}_${version}.orig.tar.gz -C $$dir && \
+       cp -rf debian/ $$dir/${package}-${version} && \
+       (cd $$dir/${package}-${version} && dpkg-buildpackage -S -d -nc -us -uc) && \
+       cp -v $$dir/*.tar.gz $$dir/*.dsc dist/
+';
+
        close MKINC;
 
        my $dh;
@@ -1406,43 +1475,48 @@ top_srcdir = $top_srcdir
                }
        }
 
-       print "Creating ${build}debian/\n" if ($debug);;
-
-       `rm -rfv  ${build}debian`;
-       mkdir $build."debian" or die $!;
-       `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
-       `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
-       `rm -f ${build}debian/*.orig`;
-       opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
-       for $_ (readdir $dh) {
-               if (/^debian\.(.*)/) {
-                       `mv ${build}debian/$_ ${build}debian/$1`;
-                       $debian = 1;
+       if ($module and -d $build."debian") {
+               print "Skipping ${build}debian/ (no rewrite in single module mode)\n" if ($debug);
+               `rm -f ${build}debian.*`;
+       } else {
+               print "Creating ${build}debian/\n" if ($debug);;
+
+               `rm -rfv  ${build}debian`;
+               mkdir $build."debian" or die $!;
+               `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
+               `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
+               `rm -f ${build}debian/*.orig`;
+               opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
+               for $_ (readdir $dh) {
+                       if (/^debian\.(.*)/) {
+                               `mv ${build}debian/$_ ${build}debian/$1`;
+                               $debian = 1;
+                       }
                }
-       }
-       closedir $dh;
+               closedir $dh;
 
-       if ($debian) {
-               my ($dir, $file);
+               if ($debian) {
+                       my ($dir, $file);
 
-               chmod 0755, "${build}debian/rules";
-               $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
-               $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
-               $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
-               $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
-               $file="${build}debian/changelog"; if (not -f $file) {
-                       open FH, ">$file" or die $!;
-                       print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
+                       chmod 0755, "${build}debian/rules";
+                       $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
+                       $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
+                       $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
+                       $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
+                       $file="${build}debian/changelog"; if (not -f $file) {
+                               open FH, ">$file" or die $!;
+                               print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
 
   * Automatically generated package
 
  -- $package{maintainer}  $debdate
 };
-                       close FH;
-               }
+                               close FH;
+                       }
 
-       } else {
-               `rm -rf ${build}debian`;
+               } else {
+                       `rm -rf ${build}debian`;
+               }
        }
 }
 
@@ -1459,11 +1533,13 @@ sub mode_etics_packaging {
        if ($fmod eq 'gridsite.core') {
                $workspaceDir = '..';
                $srcPackageName = 'gridsite';
+               $srcTarBall = "../$srcPackageName-\${version}.src.tar.gz";
                $srcAge = '';
                $topDir = '../';
        } else {
                $workspaceDir = '${workspaceDir}';
                $srcPackageName = '${packageName}';
+               $srcTarBall = "$srcPackageName-\${version}.tar.gz";
                $srcAge = '-${age}';
                $topDir = '';
        }
@@ -1473,8 +1549,8 @@ sub mode_etics_packaging {
        $cmd->{default}{packaging} = $rpmprepare;
        $cmd->{default}{packaging} .= "dir=\${workspaceDir}/rpm_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SRPMSLocation} \$dir/{BUILD,RPMS,SOURCES,SRPMS} 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/SOURCES/
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/SOURCES/$srcPackageName-\${version}${srcAge}.src.tar.gz
        rpmbuild -bs --nodeps --define \"_topdir \$dir\" $srcPackageName.spec
        cp -v \$dir/SRPMS/*.src.rpm \${package.SRPMSLocation}/
        rm -rf \$dir";
@@ -1486,8 +1562,8 @@ sub mode_etics_packaging {
                $cmd->{$p}{packaging} = $debprepare;
                $cmd->{$p}{packaging} .= "dir=\${workspaceDir}/dpkg_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SDEBSLocation} \$dir 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/${srcPackageName}_\${version}.orig.tar.gz
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/${srcPackageName}_\${version}.orig.tar.gz
        tar xzf \$dir/${srcPackageName}_\${version}.orig.tar.gz -C \$dir
        cp -rf ${topDir}debian/ \$dir/$srcPackageName-\${version}/
        cd \$dir/$srcPackageName-\${version}
@@ -1558,7 +1634,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}_R_${major}_${minor}_${rev}" : 
+               $conftag = $subsys eq 'gridsite' ? "$project{tag_prefix}{$subsys}${subsys}$project{tag_suffix}{$subsys}_R_${major}_${minor}_${rev}" : 
                        "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}_${age}";
 
                # lowering age for older packaging
@@ -1597,7 +1673,6 @@ sub mode_etics {
        #$cmd_vcs{checkout} = "((test -d jra1mw/.git && (cd jra1mw; git pull)) || (git clone -q http://scientific.zcu.cz/git/jra1mw.git";
        #$cmd_vcs{checkout} .= " && (cd jra1mw; git checkout -b \${tag} --track origin/\${tag})" unless ($conftag eq /HEAD/);
        #$cmd_vcs{checkout} .= ")) && (test -d \${moduleName} || ln -s jra1mw/$cvs_module \${moduleName})";
-       $cmd_vcs{checkout} .= "\n\ttest -f \${packageName}-\${version}-\${age}.src.tar.gz || (ln -s \${moduleName} \${packageName}-\${version}; tar -chf - \${packageName}-\${version} --exclude CVS --exclude .git --exclude .etics | gzip --best > \${packageName}-\${version}-\${age}.src.tar.gz; rm \${packageName}-\${version})";
        $cmd_vcs{tag} = "cvs -d \${vcsroot} tag -R \${tag} ${moduleName}";
 
        $cmd{default}{init} = 'None';
@@ -1689,7 +1764,7 @@ sub mode_etics {
                        $cmd{default}{compile} = "make rpath=$project{local_prefix}/\${libdir}";
                        $cmd{default}{install} = "make install post-install rpath=$project{local_prefix}/\${libdir}";
                }
-               mode_etics_packaging($fmod, \%cmd);
+               mode_etics_packaging($fmod, \%cmd, "make dist\n\t", "make dist\n\t");
        }
 
        my $defprops = '';
index 70cab46..452a9e5 100644 (file)
 3.1.2-2
 - Module rebuilt
 
+3.1.2-3
+- Module rebuilt
+
 3.2.0-1
 - Merge from branch_3_2
 
index eba7d34..f2880c2 100755 (executable)
@@ -54,8 +54,8 @@ 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 nagios/;
+my @nodes = qw/client server logger logger-msg nagios utils client-java doc ws-test db jpprimary jpindex jpclient harvester lb px proxyrenewal canl/;
+my @default_nodes = qw/lb px proxyrenewal nagios canl/;
 my %enable_nodes;
 my %disable_nodes;
 my %default_nodes; @default_nodes{@default_nodes} = (1) x ($#default_nodes + 1);
@@ -488,7 +488,7 @@ sub mode_build {
 
                print MAK "all: @modules\n\n";
                print MAK "stage: ".(join '-stage ', @modules)."-stage\n\n";
-               print MAK "clean check install:\n";
+               print MAK "clean check install dist distcheck rpm deb:\n";
 
                for (@modules) {
                        my $full = full($_);
@@ -520,6 +520,13 @@ sub mode_build {
                        print MAK "$_-stage: $snames\n\tcd $full/$build && \${MAKE} && \${MAKE} stage\n\n";
                }
 
+               print MAK qq/release-rpm: clean dist distcheck rpm
+
+release-deb: clean dist distcheck deb
+
+.PHONY: all stage clean check install dist distcheck rpm deb release-rpm release-deb
+/;
+
                close MAK;
        }
 }
@@ -870,6 +877,17 @@ for my $ext (keys %deps_aux) {
        'canl' => 'emi-',
 );
 
+%cvs_tag_suffix = (
+       'lb' => '',
+       'jp' => '',
+       'jobid' => '',
+       'lbjp-common' => '',
+       'gridsite' => '-core',
+       'px' => '',
+       'canl' => '',
+);
+
+
 # ==== projects specification ====
 # etics_name ........... ETICS project name
 # conf_prefix .......... ETICS configurations name prefix
@@ -889,6 +907,7 @@ for my $ext (keys %deps_aux) {
                etics_name => 'org.glite',
                conf_prefix => { %cvs_tag_prefix },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour=${globus.thr.flavor} --nothrflavour=${globus.nothr.flavor}',
                local_prefix => '',
                etics_externs => {
@@ -958,6 +977,7 @@ for my $ext (keys %deps_aux) {
                        'canl' => 'emi-',
                },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour= --nothrflavour=',
                local_prefix => '/usr',
                etics_externs => {
@@ -1208,7 +1228,7 @@ sub get_version
                while (<V>) {
                        chomp;
                        ($major,$minor,$rev) = ($1,$2,$3) if /module\.version\s*=\s*([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)/;
-                       $age = $1 if /module\.age\s*=\s*([[:digit:]]+)/;
+                       $age = $1 if /module\.age\s*=\s*(\S+)/;
                }
                close V;
                $_ = $old_;
@@ -1354,6 +1374,55 @@ top_srcdir = $top_srcdir
 
        print MKINC "gsoap_default_version=".gsoap_version()."\n"  if $need_gsoap;
 
+       print MKINC '
+-include ${top_srcdir}/project/version.properties
+version=${module.version}
+
+${package}-${version}.tar.gz:
+       rm -rf dist
+       for dist in ${SOURCES} ${SOURCES_EXEC} configure project/ChangeLog project/debian.* project/*.spec project/package.* project/version.properties; do \
+               dir=${package}-${version}/`dirname $$dist`; \
+               mkdir -p dist/$$dir || :; \
+               install -m 0644 ${top_srcdir}/$$dist dist/$$dir; \
+       done
+       for dist in ${SOURCES_EXEC} configure; do \
+               chmod +x dist/${package}-${version}/$$dist; \
+       done
+       (cd dist; tar -czf ${package}-${version}.tar.gz ${package}-${version})
+       mv dist/${package}-${version}.tar.gz .
+
+dist: ${package}-${version}.tar.gz
+
+distcheck: ${package}-${version}.tar.gz
+       rm -rf dist
+       mkdir -p dist
+       cp ${package}-${version}.tar.gz dist
+       (cd dist; tar -xzf ${package}-${version}.tar.gz)
+       a=`(cd dist/${package}-${version}; find . -type f | sort)`; \
+       b=`(cd ${top_srcdir}; find . -path ./dist -prune -or -type f -print | sort)`; \
+       echo "$$a" >dist/files-dist; \
+       echo "$$b" | egrep -v "(^./Makefile.inc$$|^./${package}-${version}.tar.gz$$|^./debian|^./[^/]*.spec$$|\.cvsignore|^\./project/changelog$$|/CVS)" >dist/files-original
+       diff -U0 dist/files-dist dist/files-original
+
+rpm: ${package}-${version}.tar.gz
+       dir=dist/rpm_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir/BUILD $$dir/RPMS $$dir/SOURCES $$dir/SRPMS; \
+       cp ${package}-${version}.tar.gz $$dir/SOURCES/${package}-${version}-${module.age}.src.tar.gz && \
+       rpmbuild -bs --nodeps --define "_topdir $$dir" ${package}.spec && \
+       cp -v $$dir/SRPMS/*.src.rpm dist/
+
+deb: ${package}-${version}.tar.gz
+       dir=dist/dpkg_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir; \
+       cp ${package}-${version}.tar.gz $$dir/${package}_${version}.orig.tar.gz && \
+       tar zxf $$dir/${package}_${version}.orig.tar.gz -C $$dir && \
+       cp -rf debian/ $$dir/${package}-${version} && \
+       (cd $$dir/${package}-${version} && dpkg-buildpackage -S -d -nc -us -uc) && \
+       cp -v $$dir/*.tar.gz $$dir/*.dsc dist/
+';
+
        close MKINC;
 
        my $dh;
@@ -1406,43 +1475,48 @@ top_srcdir = $top_srcdir
                }
        }
 
-       print "Creating ${build}debian/\n" if ($debug);;
-
-       `rm -rfv  ${build}debian`;
-       mkdir $build."debian" or die $!;
-       `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
-       `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
-       `rm -f ${build}debian/*.orig`;
-       opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
-       for $_ (readdir $dh) {
-               if (/^debian\.(.*)/) {
-                       `mv ${build}debian/$_ ${build}debian/$1`;
-                       $debian = 1;
+       if ($module and -d $build."debian") {
+               print "Skipping ${build}debian/ (no rewrite in single module mode)\n" if ($debug);
+               `rm -f ${build}debian.*`;
+       } else {
+               print "Creating ${build}debian/\n" if ($debug);;
+
+               `rm -rfv  ${build}debian`;
+               mkdir $build."debian" or die $!;
+               `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
+               `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
+               `rm -f ${build}debian/*.orig`;
+               opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
+               for $_ (readdir $dh) {
+                       if (/^debian\.(.*)/) {
+                               `mv ${build}debian/$_ ${build}debian/$1`;
+                               $debian = 1;
+                       }
                }
-       }
-       closedir $dh;
+               closedir $dh;
 
-       if ($debian) {
-               my ($dir, $file);
+               if ($debian) {
+                       my ($dir, $file);
 
-               chmod 0755, "${build}debian/rules";
-               $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
-               $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
-               $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
-               $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
-               $file="${build}debian/changelog"; if (not -f $file) {
-                       open FH, ">$file" or die $!;
-                       print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
+                       chmod 0755, "${build}debian/rules";
+                       $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
+                       $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
+                       $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
+                       $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
+                       $file="${build}debian/changelog"; if (not -f $file) {
+                               open FH, ">$file" or die $!;
+                               print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
 
   * Automatically generated package
 
  -- $package{maintainer}  $debdate
 };
-                       close FH;
-               }
+                               close FH;
+                       }
 
-       } else {
-               `rm -rf ${build}debian`;
+               } else {
+                       `rm -rf ${build}debian`;
+               }
        }
 }
 
@@ -1459,11 +1533,13 @@ sub mode_etics_packaging {
        if ($fmod eq 'gridsite.core') {
                $workspaceDir = '..';
                $srcPackageName = 'gridsite';
+               $srcTarBall = "../$srcPackageName-\${version}.src.tar.gz";
                $srcAge = '';
                $topDir = '../';
        } else {
                $workspaceDir = '${workspaceDir}';
                $srcPackageName = '${packageName}';
+               $srcTarBall = "$srcPackageName-\${version}.tar.gz";
                $srcAge = '-${age}';
                $topDir = '';
        }
@@ -1473,8 +1549,8 @@ sub mode_etics_packaging {
        $cmd->{default}{packaging} = $rpmprepare;
        $cmd->{default}{packaging} .= "dir=\${workspaceDir}/rpm_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SRPMSLocation} \$dir/{BUILD,RPMS,SOURCES,SRPMS} 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/SOURCES/
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/SOURCES/$srcPackageName-\${version}${srcAge}.src.tar.gz
        rpmbuild -bs --nodeps --define \"_topdir \$dir\" $srcPackageName.spec
        cp -v \$dir/SRPMS/*.src.rpm \${package.SRPMSLocation}/
        rm -rf \$dir";
@@ -1486,8 +1562,8 @@ sub mode_etics_packaging {
                $cmd->{$p}{packaging} = $debprepare;
                $cmd->{$p}{packaging} .= "dir=\${workspaceDir}/dpkg_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SDEBSLocation} \$dir 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/${srcPackageName}_\${version}.orig.tar.gz
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/${srcPackageName}_\${version}.orig.tar.gz
        tar xzf \$dir/${srcPackageName}_\${version}.orig.tar.gz -C \$dir
        cp -rf ${topDir}debian/ \$dir/$srcPackageName-\${version}/
        cd \$dir/$srcPackageName-\${version}
@@ -1558,7 +1634,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}_R_${major}_${minor}_${rev}" : 
+               $conftag = $subsys eq 'gridsite' ? "$project{tag_prefix}{$subsys}${subsys}$project{tag_suffix}{$subsys}_R_${major}_${minor}_${rev}" : 
                        "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}_${age}";
 
                # lowering age for older packaging
@@ -1597,7 +1673,6 @@ sub mode_etics {
        #$cmd_vcs{checkout} = "((test -d jra1mw/.git && (cd jra1mw; git pull)) || (git clone -q http://scientific.zcu.cz/git/jra1mw.git";
        #$cmd_vcs{checkout} .= " && (cd jra1mw; git checkout -b \${tag} --track origin/\${tag})" unless ($conftag eq /HEAD/);
        #$cmd_vcs{checkout} .= ")) && (test -d \${moduleName} || ln -s jra1mw/$cvs_module \${moduleName})";
-       $cmd_vcs{checkout} .= "\n\ttest -f \${packageName}-\${version}-\${age}.src.tar.gz || (ln -s \${moduleName} \${packageName}-\${version}; tar -chf - \${packageName}-\${version} --exclude CVS --exclude .git --exclude .etics | gzip --best > \${packageName}-\${version}-\${age}.src.tar.gz; rm \${packageName}-\${version})";
        $cmd_vcs{tag} = "cvs -d \${vcsroot} tag -R \${tag} ${moduleName}";
 
        $cmd{default}{init} = 'None';
@@ -1689,7 +1764,7 @@ sub mode_etics {
                        $cmd{default}{compile} = "make rpath=$project{local_prefix}/\${libdir}";
                        $cmd{default}{install} = "make install post-install rpath=$project{local_prefix}/\${libdir}";
                }
-               mode_etics_packaging($fmod, \%cmd);
+               mode_etics_packaging($fmod, \%cmd, "make dist\n\t", "make dist\n\t");
        }
 
        my $defprops = '';
index c286dad..0e585e0 100644 (file)
 3.1.3-2
 - Module rebuilt
 
+3.1.4-1
+- Explicit dependency on pkg-config
+- Specify proper length of strings (GGUS #82746), fixes behaviour with Globus >= 5.2.1
+
+3.1.4-2
+- Module rebuilt
+
 3.2.0-1
 - -L/usr/lib not added explicitly to link options
 - Merge from branch_3_2
index e457931..f2880c2 100755 (executable)
@@ -54,8 +54,8 @@ 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 nagios/;
+my @nodes = qw/client server logger logger-msg nagios utils client-java doc ws-test db jpprimary jpindex jpclient harvester lb px proxyrenewal canl/;
+my @default_nodes = qw/lb px proxyrenewal nagios canl/;
 my %enable_nodes;
 my %disable_nodes;
 my %default_nodes; @default_nodes{@default_nodes} = (1) x ($#default_nodes + 1);
@@ -126,10 +126,6 @@ my %externs = (
        gridsite => {
                prefix => '/opt/glite'
        },
-       lcas => {
-               prefix => '/opt/glite',
-               pkg => 'lcas'
-       },
        trustmanager => {
                prefix => '/opt/glite'
        },
@@ -492,7 +488,7 @@ sub mode_build {
 
                print MAK "all: @modules\n\n";
                print MAK "stage: ".(join '-stage ', @modules)."-stage\n\n";
-               print MAK "clean check install:\n";
+               print MAK "clean check install dist distcheck rpm deb:\n";
 
                for (@modules) {
                        my $full = full($_);
@@ -524,6 +520,13 @@ sub mode_build {
                        print MAK "$_-stage: $snames\n\tcd $full/$build && \${MAKE} && \${MAKE} stage\n\n";
                }
 
+               print MAK qq/release-rpm: clean dist distcheck rpm
+
+release-deb: clean dist distcheck deb
+
+.PHONY: all stage clean check install dist distcheck rpm deb release-rpm release-deb
+/;
+
                close MAK;
        }
 }
@@ -600,7 +603,7 @@ BEGIN{
        '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:B voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B pkgconfig:B/ ],
+       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads:B voms:B 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/ ],
@@ -874,6 +877,17 @@ for my $ext (keys %deps_aux) {
        'canl' => 'emi-',
 );
 
+%cvs_tag_suffix = (
+       'lb' => '',
+       'jp' => '',
+       'jobid' => '',
+       'lbjp-common' => '',
+       'gridsite' => '-core',
+       'px' => '',
+       'canl' => '',
+);
+
+
 # ==== projects specification ====
 # etics_name ........... ETICS project name
 # conf_prefix .......... ETICS configurations name prefix
@@ -893,6 +907,7 @@ for my $ext (keys %deps_aux) {
                etics_name => 'org.glite',
                conf_prefix => { %cvs_tag_prefix },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour=${globus.thr.flavor} --nothrflavour=${globus.nothr.flavor}',
                local_prefix => '',
                etics_externs => {
@@ -910,7 +925,6 @@ for my $ext (keys %deps_aux) {
                                glue_schema=>'glue-schema',
                                trustmanager=>'org.glite.security.trustmanager',
                                axis=>'axis',
-                               lcas=>'org.glite.security.lcas',
                                gsoapxx=>'-',
                                jdk=>'jdk',
                                voms=>'org.glite.security.voms-api-cpp',
@@ -924,7 +938,7 @@ for my $ext (keys %deps_aux) {
                },
                etics_projects => {
                        vdt=>[qw/globus globus_essentials globus_proxy_utils gpt/],
-                       'org.glite'=>[qw/voms gridsite lcas gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
+                       'org.glite'=>[qw/voms gridsite gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
                },
                etics_locations => {
                        '*' => '',
@@ -963,6 +977,7 @@ for my $ext (keys %deps_aux) {
                        'canl' => 'emi-',
                },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour= --nothrflavour=',
                local_prefix => '/usr',
                etics_externs => {
@@ -980,7 +995,6 @@ for my $ext (keys %deps_aux) {
                                trustmanager=>'emi.java-security.trustmanager',
                                trustmanager_axis=>'emi.java-security.trustmanager-axis',
                                axis=>'axis1.4',
-                               lcas=>'emi.sac.lcas',
                                gsoapxx=>'-',
                                jdk=>'java',
                                voms => 'emi.voms.voms-api',
@@ -1050,7 +1064,7 @@ for my $ext (keys %deps_aux) {
                        },
                },
                etics_projects => {
-                       'emi'=>[qw/voms voms-devel gridsite lcas gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
+                       'emi'=>[qw/voms voms-devel gridsite gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
                },
                etics_locations => {
                        axis => 'axis',
@@ -1214,7 +1228,7 @@ sub get_version
                while (<V>) {
                        chomp;
                        ($major,$minor,$rev) = ($1,$2,$3) if /module\.version\s*=\s*([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)/;
-                       $age = $1 if /module\.age\s*=\s*([[:digit:]]+)/;
+                       $age = $1 if /module\.age\s*=\s*(\S+)/;
                }
                close V;
                $_ = $old_;
@@ -1360,6 +1374,55 @@ top_srcdir = $top_srcdir
 
        print MKINC "gsoap_default_version=".gsoap_version()."\n"  if $need_gsoap;
 
+       print MKINC '
+-include ${top_srcdir}/project/version.properties
+version=${module.version}
+
+${package}-${version}.tar.gz:
+       rm -rf dist
+       for dist in ${SOURCES} ${SOURCES_EXEC} configure project/ChangeLog project/debian.* project/*.spec project/package.* project/version.properties; do \
+               dir=${package}-${version}/`dirname $$dist`; \
+               mkdir -p dist/$$dir || :; \
+               install -m 0644 ${top_srcdir}/$$dist dist/$$dir; \
+       done
+       for dist in ${SOURCES_EXEC} configure; do \
+               chmod +x dist/${package}-${version}/$$dist; \
+       done
+       (cd dist; tar -czf ${package}-${version}.tar.gz ${package}-${version})
+       mv dist/${package}-${version}.tar.gz .
+
+dist: ${package}-${version}.tar.gz
+
+distcheck: ${package}-${version}.tar.gz
+       rm -rf dist
+       mkdir -p dist
+       cp ${package}-${version}.tar.gz dist
+       (cd dist; tar -xzf ${package}-${version}.tar.gz)
+       a=`(cd dist/${package}-${version}; find . -type f | sort)`; \
+       b=`(cd ${top_srcdir}; find . -path ./dist -prune -or -type f -print | sort)`; \
+       echo "$$a" >dist/files-dist; \
+       echo "$$b" | egrep -v "(^./Makefile.inc$$|^./${package}-${version}.tar.gz$$|^./debian|^./[^/]*.spec$$|\.cvsignore|^\./project/changelog$$|/CVS)" >dist/files-original
+       diff -U0 dist/files-dist dist/files-original
+
+rpm: ${package}-${version}.tar.gz
+       dir=dist/rpm_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir/BUILD $$dir/RPMS $$dir/SOURCES $$dir/SRPMS; \
+       cp ${package}-${version}.tar.gz $$dir/SOURCES/${package}-${version}-${module.age}.src.tar.gz && \
+       rpmbuild -bs --nodeps --define "_topdir $$dir" ${package}.spec && \
+       cp -v $$dir/SRPMS/*.src.rpm dist/
+
+deb: ${package}-${version}.tar.gz
+       dir=dist/dpkg_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir; \
+       cp ${package}-${version}.tar.gz $$dir/${package}_${version}.orig.tar.gz && \
+       tar zxf $$dir/${package}_${version}.orig.tar.gz -C $$dir && \
+       cp -rf debian/ $$dir/${package}-${version} && \
+       (cd $$dir/${package}-${version} && dpkg-buildpackage -S -d -nc -us -uc) && \
+       cp -v $$dir/*.tar.gz $$dir/*.dsc dist/
+';
+
        close MKINC;
 
        my $dh;
@@ -1412,43 +1475,48 @@ top_srcdir = $top_srcdir
                }
        }
 
-       print "Creating ${build}debian/\n" if ($debug);;
-
-       `rm -rfv  ${build}debian`;
-       mkdir $build."debian" or die $!;
-       `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
-       `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
-       `rm -f ${build}debian/*.orig`;
-       opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
-       for $_ (readdir $dh) {
-               if (/^debian\.(.*)/) {
-                       `mv ${build}debian/$_ ${build}debian/$1`;
-                       $debian = 1;
+       if ($module and -d $build."debian") {
+               print "Skipping ${build}debian/ (no rewrite in single module mode)\n" if ($debug);
+               `rm -f ${build}debian.*`;
+       } else {
+               print "Creating ${build}debian/\n" if ($debug);;
+
+               `rm -rfv  ${build}debian`;
+               mkdir $build."debian" or die $!;
+               `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
+               `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
+               `rm -f ${build}debian/*.orig`;
+               opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
+               for $_ (readdir $dh) {
+                       if (/^debian\.(.*)/) {
+                               `mv ${build}debian/$_ ${build}debian/$1`;
+                               $debian = 1;
+                       }
                }
-       }
-       closedir $dh;
+               closedir $dh;
 
-       if ($debian) {
-               my ($dir, $file);
+               if ($debian) {
+                       my ($dir, $file);
 
-               chmod 0755, "${build}debian/rules";
-               $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
-               $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
-               $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
-               $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
-               $file="${build}debian/changelog"; if (not -f $file) {
-                       open FH, ">$file" or die $!;
-                       print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
+                       chmod 0755, "${build}debian/rules";
+                       $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
+                       $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
+                       $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
+                       $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
+                       $file="${build}debian/changelog"; if (not -f $file) {
+                               open FH, ">$file" or die $!;
+                               print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
 
   * Automatically generated package
 
  -- $package{maintainer}  $debdate
 };
-                       close FH;
-               }
+                               close FH;
+                       }
 
-       } else {
-               `rm -rf ${build}debian`;
+               } else {
+                       `rm -rf ${build}debian`;
+               }
        }
 }
 
@@ -1460,16 +1528,18 @@ sub mode_etics_packaging {
        my ($workspaceDir, $srcPackageName, $srcAge, $topDir);
 
        # old-school packaging by ETICS for EMI-1
-       if ($project eq 'emi' and $project_version == 1) { return; }
+       if ($project eq 'emi' and $project_version == 1 and $fmod ne 'gridsite.core') { return; }
 
        if ($fmod eq 'gridsite.core') {
                $workspaceDir = '..';
                $srcPackageName = 'gridsite';
+               $srcTarBall = "../$srcPackageName-\${version}.src.tar.gz";
                $srcAge = '';
                $topDir = '../';
        } else {
                $workspaceDir = '${workspaceDir}';
                $srcPackageName = '${packageName}';
+               $srcTarBall = "$srcPackageName-\${version}.tar.gz";
                $srcAge = '-${age}';
                $topDir = '';
        }
@@ -1479,8 +1549,8 @@ sub mode_etics_packaging {
        $cmd->{default}{packaging} = $rpmprepare;
        $cmd->{default}{packaging} .= "dir=\${workspaceDir}/rpm_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SRPMSLocation} \$dir/{BUILD,RPMS,SOURCES,SRPMS} 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/SOURCES/
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/SOURCES/$srcPackageName-\${version}${srcAge}.src.tar.gz
        rpmbuild -bs --nodeps --define \"_topdir \$dir\" $srcPackageName.spec
        cp -v \$dir/SRPMS/*.src.rpm \${package.SRPMSLocation}/
        rm -rf \$dir";
@@ -1492,8 +1562,8 @@ sub mode_etics_packaging {
                $cmd->{$p}{packaging} = $debprepare;
                $cmd->{$p}{packaging} .= "dir=\${workspaceDir}/dpkg_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SDEBSLocation} \$dir 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/${srcPackageName}_\${version}.orig.tar.gz
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/${srcPackageName}_\${version}.orig.tar.gz
        tar xzf \$dir/${srcPackageName}_\${version}.orig.tar.gz -C \$dir
        cp -rf ${topDir}debian/ \$dir/$srcPackageName-\${version}/
        cd \$dir/$srcPackageName-\${version}
@@ -1564,7 +1634,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}_R_${major}_${minor}_${rev}" : 
+               $conftag = $subsys eq 'gridsite' ? "$project{tag_prefix}{$subsys}${subsys}$project{tag_suffix}{$subsys}_R_${major}_${minor}_${rev}" : 
                        "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}_${age}";
 
                # lowering age for older packaging
@@ -1603,7 +1673,6 @@ sub mode_etics {
        #$cmd_vcs{checkout} = "((test -d jra1mw/.git && (cd jra1mw; git pull)) || (git clone -q http://scientific.zcu.cz/git/jra1mw.git";
        #$cmd_vcs{checkout} .= " && (cd jra1mw; git checkout -b \${tag} --track origin/\${tag})" unless ($conftag eq /HEAD/);
        #$cmd_vcs{checkout} .= ")) && (test -d \${moduleName} || ln -s jra1mw/$cvs_module \${moduleName})";
-       $cmd_vcs{checkout} .= "\n\ttest -f \${packageName}-\${version}-\${age}.src.tar.gz || (ln -s \${moduleName} \${packageName}-\${version}; tar -chf - \${packageName}-\${version} --exclude CVS --exclude .git --exclude .etics | gzip --best > \${packageName}-\${version}-\${age}.src.tar.gz; rm \${packageName}-\${version})";
        $cmd_vcs{tag} = "cvs -d \${vcsroot} tag -R \${tag} ${moduleName}";
 
        $cmd{default}{init} = 'None';
@@ -1695,7 +1764,7 @@ sub mode_etics {
                        $cmd{default}{compile} = "make rpath=$project{local_prefix}/\${libdir}";
                        $cmd{default}{install} = "make install post-install rpath=$project{local_prefix}/\${libdir}";
                }
-               mode_etics_packaging($fmod, \%cmd);
+               mode_etics_packaging($fmod, \%cmd, "make dist\n\t", "make dist\n\t");
        }
 
        my $defprops = '';
index 99f6aa2..42265a6 100644 (file)
@@ -95,6 +95,9 @@
 2.2.1-2
 - Module rebuilt
 
+2.2.1-3
+- Module rebuilt
+
 2.3.0-1
 - Merge from branch_3_2
 
index e457931..f2880c2 100755 (executable)
@@ -54,8 +54,8 @@ 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 nagios/;
+my @nodes = qw/client server logger logger-msg nagios utils client-java doc ws-test db jpprimary jpindex jpclient harvester lb px proxyrenewal canl/;
+my @default_nodes = qw/lb px proxyrenewal nagios canl/;
 my %enable_nodes;
 my %disable_nodes;
 my %default_nodes; @default_nodes{@default_nodes} = (1) x ($#default_nodes + 1);
@@ -126,10 +126,6 @@ my %externs = (
        gridsite => {
                prefix => '/opt/glite'
        },
-       lcas => {
-               prefix => '/opt/glite',
-               pkg => 'lcas'
-       },
        trustmanager => {
                prefix => '/opt/glite'
        },
@@ -492,7 +488,7 @@ sub mode_build {
 
                print MAK "all: @modules\n\n";
                print MAK "stage: ".(join '-stage ', @modules)."-stage\n\n";
-               print MAK "clean check install:\n";
+               print MAK "clean check install dist distcheck rpm deb:\n";
 
                for (@modules) {
                        my $full = full($_);
@@ -524,6 +520,13 @@ sub mode_build {
                        print MAK "$_-stage: $snames\n\tcd $full/$build && \${MAKE} && \${MAKE} stage\n\n";
                }
 
+               print MAK qq/release-rpm: clean dist distcheck rpm
+
+release-deb: clean dist distcheck deb
+
+.PHONY: all stage clean check install dist distcheck rpm deb release-rpm release-deb
+/;
+
                close MAK;
        }
 }
@@ -600,7 +603,7 @@ BEGIN{
        '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:B voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B pkgconfig:B/ ],
+       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads:B voms:B 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/ ],
@@ -874,6 +877,17 @@ for my $ext (keys %deps_aux) {
        'canl' => 'emi-',
 );
 
+%cvs_tag_suffix = (
+       'lb' => '',
+       'jp' => '',
+       'jobid' => '',
+       'lbjp-common' => '',
+       'gridsite' => '-core',
+       'px' => '',
+       'canl' => '',
+);
+
+
 # ==== projects specification ====
 # etics_name ........... ETICS project name
 # conf_prefix .......... ETICS configurations name prefix
@@ -893,6 +907,7 @@ for my $ext (keys %deps_aux) {
                etics_name => 'org.glite',
                conf_prefix => { %cvs_tag_prefix },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour=${globus.thr.flavor} --nothrflavour=${globus.nothr.flavor}',
                local_prefix => '',
                etics_externs => {
@@ -910,7 +925,6 @@ for my $ext (keys %deps_aux) {
                                glue_schema=>'glue-schema',
                                trustmanager=>'org.glite.security.trustmanager',
                                axis=>'axis',
-                               lcas=>'org.glite.security.lcas',
                                gsoapxx=>'-',
                                jdk=>'jdk',
                                voms=>'org.glite.security.voms-api-cpp',
@@ -924,7 +938,7 @@ for my $ext (keys %deps_aux) {
                },
                etics_projects => {
                        vdt=>[qw/globus globus_essentials globus_proxy_utils gpt/],
-                       'org.glite'=>[qw/voms gridsite lcas gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
+                       'org.glite'=>[qw/voms gridsite gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
                },
                etics_locations => {
                        '*' => '',
@@ -963,6 +977,7 @@ for my $ext (keys %deps_aux) {
                        'canl' => 'emi-',
                },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour= --nothrflavour=',
                local_prefix => '/usr',
                etics_externs => {
@@ -980,7 +995,6 @@ for my $ext (keys %deps_aux) {
                                trustmanager=>'emi.java-security.trustmanager',
                                trustmanager_axis=>'emi.java-security.trustmanager-axis',
                                axis=>'axis1.4',
-                               lcas=>'emi.sac.lcas',
                                gsoapxx=>'-',
                                jdk=>'java',
                                voms => 'emi.voms.voms-api',
@@ -1050,7 +1064,7 @@ for my $ext (keys %deps_aux) {
                        },
                },
                etics_projects => {
-                       'emi'=>[qw/voms voms-devel gridsite lcas gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
+                       'emi'=>[qw/voms voms-devel gridsite gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
                },
                etics_locations => {
                        axis => 'axis',
@@ -1214,7 +1228,7 @@ sub get_version
                while (<V>) {
                        chomp;
                        ($major,$minor,$rev) = ($1,$2,$3) if /module\.version\s*=\s*([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)/;
-                       $age = $1 if /module\.age\s*=\s*([[:digit:]]+)/;
+                       $age = $1 if /module\.age\s*=\s*(\S+)/;
                }
                close V;
                $_ = $old_;
@@ -1360,6 +1374,55 @@ top_srcdir = $top_srcdir
 
        print MKINC "gsoap_default_version=".gsoap_version()."\n"  if $need_gsoap;
 
+       print MKINC '
+-include ${top_srcdir}/project/version.properties
+version=${module.version}
+
+${package}-${version}.tar.gz:
+       rm -rf dist
+       for dist in ${SOURCES} ${SOURCES_EXEC} configure project/ChangeLog project/debian.* project/*.spec project/package.* project/version.properties; do \
+               dir=${package}-${version}/`dirname $$dist`; \
+               mkdir -p dist/$$dir || :; \
+               install -m 0644 ${top_srcdir}/$$dist dist/$$dir; \
+       done
+       for dist in ${SOURCES_EXEC} configure; do \
+               chmod +x dist/${package}-${version}/$$dist; \
+       done
+       (cd dist; tar -czf ${package}-${version}.tar.gz ${package}-${version})
+       mv dist/${package}-${version}.tar.gz .
+
+dist: ${package}-${version}.tar.gz
+
+distcheck: ${package}-${version}.tar.gz
+       rm -rf dist
+       mkdir -p dist
+       cp ${package}-${version}.tar.gz dist
+       (cd dist; tar -xzf ${package}-${version}.tar.gz)
+       a=`(cd dist/${package}-${version}; find . -type f | sort)`; \
+       b=`(cd ${top_srcdir}; find . -path ./dist -prune -or -type f -print | sort)`; \
+       echo "$$a" >dist/files-dist; \
+       echo "$$b" | egrep -v "(^./Makefile.inc$$|^./${package}-${version}.tar.gz$$|^./debian|^./[^/]*.spec$$|\.cvsignore|^\./project/changelog$$|/CVS)" >dist/files-original
+       diff -U0 dist/files-dist dist/files-original
+
+rpm: ${package}-${version}.tar.gz
+       dir=dist/rpm_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir/BUILD $$dir/RPMS $$dir/SOURCES $$dir/SRPMS; \
+       cp ${package}-${version}.tar.gz $$dir/SOURCES/${package}-${version}-${module.age}.src.tar.gz && \
+       rpmbuild -bs --nodeps --define "_topdir $$dir" ${package}.spec && \
+       cp -v $$dir/SRPMS/*.src.rpm dist/
+
+deb: ${package}-${version}.tar.gz
+       dir=dist/dpkg_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir; \
+       cp ${package}-${version}.tar.gz $$dir/${package}_${version}.orig.tar.gz && \
+       tar zxf $$dir/${package}_${version}.orig.tar.gz -C $$dir && \
+       cp -rf debian/ $$dir/${package}-${version} && \
+       (cd $$dir/${package}-${version} && dpkg-buildpackage -S -d -nc -us -uc) && \
+       cp -v $$dir/*.tar.gz $$dir/*.dsc dist/
+';
+
        close MKINC;
 
        my $dh;
@@ -1412,43 +1475,48 @@ top_srcdir = $top_srcdir
                }
        }
 
-       print "Creating ${build}debian/\n" if ($debug);;
-
-       `rm -rfv  ${build}debian`;
-       mkdir $build."debian" or die $!;
-       `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
-       `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
-       `rm -f ${build}debian/*.orig`;
-       opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
-       for $_ (readdir $dh) {
-               if (/^debian\.(.*)/) {
-                       `mv ${build}debian/$_ ${build}debian/$1`;
-                       $debian = 1;
+       if ($module and -d $build."debian") {
+               print "Skipping ${build}debian/ (no rewrite in single module mode)\n" if ($debug);
+               `rm -f ${build}debian.*`;
+       } else {
+               print "Creating ${build}debian/\n" if ($debug);;
+
+               `rm -rfv  ${build}debian`;
+               mkdir $build."debian" or die $!;
+               `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
+               `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
+               `rm -f ${build}debian/*.orig`;
+               opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
+               for $_ (readdir $dh) {
+                       if (/^debian\.(.*)/) {
+                               `mv ${build}debian/$_ ${build}debian/$1`;
+                               $debian = 1;
+                       }
                }
-       }
-       closedir $dh;
+               closedir $dh;
 
-       if ($debian) {
-               my ($dir, $file);
+               if ($debian) {
+                       my ($dir, $file);
 
-               chmod 0755, "${build}debian/rules";
-               $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
-               $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
-               $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
-               $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
-               $file="${build}debian/changelog"; if (not -f $file) {
-                       open FH, ">$file" or die $!;
-                       print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
+                       chmod 0755, "${build}debian/rules";
+                       $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
+                       $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
+                       $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
+                       $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
+                       $file="${build}debian/changelog"; if (not -f $file) {
+                               open FH, ">$file" or die $!;
+                               print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
 
   * Automatically generated package
 
  -- $package{maintainer}  $debdate
 };
-                       close FH;
-               }
+                               close FH;
+                       }
 
-       } else {
-               `rm -rf ${build}debian`;
+               } else {
+                       `rm -rf ${build}debian`;
+               }
        }
 }
 
@@ -1460,16 +1528,18 @@ sub mode_etics_packaging {
        my ($workspaceDir, $srcPackageName, $srcAge, $topDir);
 
        # old-school packaging by ETICS for EMI-1
-       if ($project eq 'emi' and $project_version == 1) { return; }
+       if ($project eq 'emi' and $project_version == 1 and $fmod ne 'gridsite.core') { return; }
 
        if ($fmod eq 'gridsite.core') {
                $workspaceDir = '..';
                $srcPackageName = 'gridsite';
+               $srcTarBall = "../$srcPackageName-\${version}.src.tar.gz";
                $srcAge = '';
                $topDir = '../';
        } else {
                $workspaceDir = '${workspaceDir}';
                $srcPackageName = '${packageName}';
+               $srcTarBall = "$srcPackageName-\${version}.tar.gz";
                $srcAge = '-${age}';
                $topDir = '';
        }
@@ -1479,8 +1549,8 @@ sub mode_etics_packaging {
        $cmd->{default}{packaging} = $rpmprepare;
        $cmd->{default}{packaging} .= "dir=\${workspaceDir}/rpm_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SRPMSLocation} \$dir/{BUILD,RPMS,SOURCES,SRPMS} 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/SOURCES/
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/SOURCES/$srcPackageName-\${version}${srcAge}.src.tar.gz
        rpmbuild -bs --nodeps --define \"_topdir \$dir\" $srcPackageName.spec
        cp -v \$dir/SRPMS/*.src.rpm \${package.SRPMSLocation}/
        rm -rf \$dir";
@@ -1492,8 +1562,8 @@ sub mode_etics_packaging {
                $cmd->{$p}{packaging} = $debprepare;
                $cmd->{$p}{packaging} .= "dir=\${workspaceDir}/dpkg_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SDEBSLocation} \$dir 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/${srcPackageName}_\${version}.orig.tar.gz
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/${srcPackageName}_\${version}.orig.tar.gz
        tar xzf \$dir/${srcPackageName}_\${version}.orig.tar.gz -C \$dir
        cp -rf ${topDir}debian/ \$dir/$srcPackageName-\${version}/
        cd \$dir/$srcPackageName-\${version}
@@ -1564,7 +1634,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}_R_${major}_${minor}_${rev}" : 
+               $conftag = $subsys eq 'gridsite' ? "$project{tag_prefix}{$subsys}${subsys}$project{tag_suffix}{$subsys}_R_${major}_${minor}_${rev}" : 
                        "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}_${age}";
 
                # lowering age for older packaging
@@ -1603,7 +1673,6 @@ sub mode_etics {
        #$cmd_vcs{checkout} = "((test -d jra1mw/.git && (cd jra1mw; git pull)) || (git clone -q http://scientific.zcu.cz/git/jra1mw.git";
        #$cmd_vcs{checkout} .= " && (cd jra1mw; git checkout -b \${tag} --track origin/\${tag})" unless ($conftag eq /HEAD/);
        #$cmd_vcs{checkout} .= ")) && (test -d \${moduleName} || ln -s jra1mw/$cvs_module \${moduleName})";
-       $cmd_vcs{checkout} .= "\n\ttest -f \${packageName}-\${version}-\${age}.src.tar.gz || (ln -s \${moduleName} \${packageName}-\${version}; tar -chf - \${packageName}-\${version} --exclude CVS --exclude .git --exclude .etics | gzip --best > \${packageName}-\${version}-\${age}.src.tar.gz; rm \${packageName}-\${version})";
        $cmd_vcs{tag} = "cvs -d \${vcsroot} tag -R \${tag} ${moduleName}";
 
        $cmd{default}{init} = 'None';
@@ -1695,7 +1764,7 @@ sub mode_etics {
                        $cmd{default}{compile} = "make rpath=$project{local_prefix}/\${libdir}";
                        $cmd{default}{install} = "make install post-install rpath=$project{local_prefix}/\${libdir}";
                }
-               mode_etics_packaging($fmod, \%cmd);
+               mode_etics_packaging($fmod, \%cmd, "make dist\n\t", "make dist\n\t");
        }
 
        my $defprops = '';
index 9d968e4..42233a3 100644 (file)
@@ -80,6 +80,9 @@
 1.2.0-5
 - Module rebuilt
 
+1.2.0-6
+- Module rebuilt
+
 1.3.0-1
 - Merge from branch_3_2
 
index e457931..f2880c2 100755 (executable)
@@ -54,8 +54,8 @@ 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 nagios/;
+my @nodes = qw/client server logger logger-msg nagios utils client-java doc ws-test db jpprimary jpindex jpclient harvester lb px proxyrenewal canl/;
+my @default_nodes = qw/lb px proxyrenewal nagios canl/;
 my %enable_nodes;
 my %disable_nodes;
 my %default_nodes; @default_nodes{@default_nodes} = (1) x ($#default_nodes + 1);
@@ -126,10 +126,6 @@ my %externs = (
        gridsite => {
                prefix => '/opt/glite'
        },
-       lcas => {
-               prefix => '/opt/glite',
-               pkg => 'lcas'
-       },
        trustmanager => {
                prefix => '/opt/glite'
        },
@@ -492,7 +488,7 @@ sub mode_build {
 
                print MAK "all: @modules\n\n";
                print MAK "stage: ".(join '-stage ', @modules)."-stage\n\n";
-               print MAK "clean check install:\n";
+               print MAK "clean check install dist distcheck rpm deb:\n";
 
                for (@modules) {
                        my $full = full($_);
@@ -524,6 +520,13 @@ sub mode_build {
                        print MAK "$_-stage: $snames\n\tcd $full/$build && \${MAKE} && \${MAKE} stage\n\n";
                }
 
+               print MAK qq/release-rpm: clean dist distcheck rpm
+
+release-deb: clean dist distcheck deb
+
+.PHONY: all stage clean check install dist distcheck rpm deb release-rpm release-deb
+/;
+
                close MAK;
        }
 }
@@ -600,7 +603,7 @@ BEGIN{
        '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:B voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B pkgconfig:B/ ],
+       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads:B voms:B 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/ ],
@@ -874,6 +877,17 @@ for my $ext (keys %deps_aux) {
        'canl' => 'emi-',
 );
 
+%cvs_tag_suffix = (
+       'lb' => '',
+       'jp' => '',
+       'jobid' => '',
+       'lbjp-common' => '',
+       'gridsite' => '-core',
+       'px' => '',
+       'canl' => '',
+);
+
+
 # ==== projects specification ====
 # etics_name ........... ETICS project name
 # conf_prefix .......... ETICS configurations name prefix
@@ -893,6 +907,7 @@ for my $ext (keys %deps_aux) {
                etics_name => 'org.glite',
                conf_prefix => { %cvs_tag_prefix },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour=${globus.thr.flavor} --nothrflavour=${globus.nothr.flavor}',
                local_prefix => '',
                etics_externs => {
@@ -910,7 +925,6 @@ for my $ext (keys %deps_aux) {
                                glue_schema=>'glue-schema',
                                trustmanager=>'org.glite.security.trustmanager',
                                axis=>'axis',
-                               lcas=>'org.glite.security.lcas',
                                gsoapxx=>'-',
                                jdk=>'jdk',
                                voms=>'org.glite.security.voms-api-cpp',
@@ -924,7 +938,7 @@ for my $ext (keys %deps_aux) {
                },
                etics_projects => {
                        vdt=>[qw/globus globus_essentials globus_proxy_utils gpt/],
-                       'org.glite'=>[qw/voms gridsite lcas gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
+                       'org.glite'=>[qw/voms gridsite gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
                },
                etics_locations => {
                        '*' => '',
@@ -963,6 +977,7 @@ for my $ext (keys %deps_aux) {
                        'canl' => 'emi-',
                },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour= --nothrflavour=',
                local_prefix => '/usr',
                etics_externs => {
@@ -980,7 +995,6 @@ for my $ext (keys %deps_aux) {
                                trustmanager=>'emi.java-security.trustmanager',
                                trustmanager_axis=>'emi.java-security.trustmanager-axis',
                                axis=>'axis1.4',
-                               lcas=>'emi.sac.lcas',
                                gsoapxx=>'-',
                                jdk=>'java',
                                voms => 'emi.voms.voms-api',
@@ -1050,7 +1064,7 @@ for my $ext (keys %deps_aux) {
                        },
                },
                etics_projects => {
-                       'emi'=>[qw/voms voms-devel gridsite lcas gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
+                       'emi'=>[qw/voms voms-devel gridsite gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
                },
                etics_locations => {
                        axis => 'axis',
@@ -1214,7 +1228,7 @@ sub get_version
                while (<V>) {
                        chomp;
                        ($major,$minor,$rev) = ($1,$2,$3) if /module\.version\s*=\s*([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)/;
-                       $age = $1 if /module\.age\s*=\s*([[:digit:]]+)/;
+                       $age = $1 if /module\.age\s*=\s*(\S+)/;
                }
                close V;
                $_ = $old_;
@@ -1360,6 +1374,55 @@ top_srcdir = $top_srcdir
 
        print MKINC "gsoap_default_version=".gsoap_version()."\n"  if $need_gsoap;
 
+       print MKINC '
+-include ${top_srcdir}/project/version.properties
+version=${module.version}
+
+${package}-${version}.tar.gz:
+       rm -rf dist
+       for dist in ${SOURCES} ${SOURCES_EXEC} configure project/ChangeLog project/debian.* project/*.spec project/package.* project/version.properties; do \
+               dir=${package}-${version}/`dirname $$dist`; \
+               mkdir -p dist/$$dir || :; \
+               install -m 0644 ${top_srcdir}/$$dist dist/$$dir; \
+       done
+       for dist in ${SOURCES_EXEC} configure; do \
+               chmod +x dist/${package}-${version}/$$dist; \
+       done
+       (cd dist; tar -czf ${package}-${version}.tar.gz ${package}-${version})
+       mv dist/${package}-${version}.tar.gz .
+
+dist: ${package}-${version}.tar.gz
+
+distcheck: ${package}-${version}.tar.gz
+       rm -rf dist
+       mkdir -p dist
+       cp ${package}-${version}.tar.gz dist
+       (cd dist; tar -xzf ${package}-${version}.tar.gz)
+       a=`(cd dist/${package}-${version}; find . -type f | sort)`; \
+       b=`(cd ${top_srcdir}; find . -path ./dist -prune -or -type f -print | sort)`; \
+       echo "$$a" >dist/files-dist; \
+       echo "$$b" | egrep -v "(^./Makefile.inc$$|^./${package}-${version}.tar.gz$$|^./debian|^./[^/]*.spec$$|\.cvsignore|^\./project/changelog$$|/CVS)" >dist/files-original
+       diff -U0 dist/files-dist dist/files-original
+
+rpm: ${package}-${version}.tar.gz
+       dir=dist/rpm_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir/BUILD $$dir/RPMS $$dir/SOURCES $$dir/SRPMS; \
+       cp ${package}-${version}.tar.gz $$dir/SOURCES/${package}-${version}-${module.age}.src.tar.gz && \
+       rpmbuild -bs --nodeps --define "_topdir $$dir" ${package}.spec && \
+       cp -v $$dir/SRPMS/*.src.rpm dist/
+
+deb: ${package}-${version}.tar.gz
+       dir=dist/dpkg_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir; \
+       cp ${package}-${version}.tar.gz $$dir/${package}_${version}.orig.tar.gz && \
+       tar zxf $$dir/${package}_${version}.orig.tar.gz -C $$dir && \
+       cp -rf debian/ $$dir/${package}-${version} && \
+       (cd $$dir/${package}-${version} && dpkg-buildpackage -S -d -nc -us -uc) && \
+       cp -v $$dir/*.tar.gz $$dir/*.dsc dist/
+';
+
        close MKINC;
 
        my $dh;
@@ -1412,43 +1475,48 @@ top_srcdir = $top_srcdir
                }
        }
 
-       print "Creating ${build}debian/\n" if ($debug);;
-
-       `rm -rfv  ${build}debian`;
-       mkdir $build."debian" or die $!;
-       `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
-       `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
-       `rm -f ${build}debian/*.orig`;
-       opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
-       for $_ (readdir $dh) {
-               if (/^debian\.(.*)/) {
-                       `mv ${build}debian/$_ ${build}debian/$1`;
-                       $debian = 1;
+       if ($module and -d $build."debian") {
+               print "Skipping ${build}debian/ (no rewrite in single module mode)\n" if ($debug);
+               `rm -f ${build}debian.*`;
+       } else {
+               print "Creating ${build}debian/\n" if ($debug);;
+
+               `rm -rfv  ${build}debian`;
+               mkdir $build."debian" or die $!;
+               `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
+               `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
+               `rm -f ${build}debian/*.orig`;
+               opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
+               for $_ (readdir $dh) {
+                       if (/^debian\.(.*)/) {
+                               `mv ${build}debian/$_ ${build}debian/$1`;
+                               $debian = 1;
+                       }
                }
-       }
-       closedir $dh;
+               closedir $dh;
 
-       if ($debian) {
-               my ($dir, $file);
+               if ($debian) {
+                       my ($dir, $file);
 
-               chmod 0755, "${build}debian/rules";
-               $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
-               $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
-               $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
-               $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
-               $file="${build}debian/changelog"; if (not -f $file) {
-                       open FH, ">$file" or die $!;
-                       print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
+                       chmod 0755, "${build}debian/rules";
+                       $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
+                       $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
+                       $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
+                       $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
+                       $file="${build}debian/changelog"; if (not -f $file) {
+                               open FH, ">$file" or die $!;
+                               print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
 
   * Automatically generated package
 
  -- $package{maintainer}  $debdate
 };
-                       close FH;
-               }
+                               close FH;
+                       }
 
-       } else {
-               `rm -rf ${build}debian`;
+               } else {
+                       `rm -rf ${build}debian`;
+               }
        }
 }
 
@@ -1460,16 +1528,18 @@ sub mode_etics_packaging {
        my ($workspaceDir, $srcPackageName, $srcAge, $topDir);
 
        # old-school packaging by ETICS for EMI-1
-       if ($project eq 'emi' and $project_version == 1) { return; }
+       if ($project eq 'emi' and $project_version == 1 and $fmod ne 'gridsite.core') { return; }
 
        if ($fmod eq 'gridsite.core') {
                $workspaceDir = '..';
                $srcPackageName = 'gridsite';
+               $srcTarBall = "../$srcPackageName-\${version}.src.tar.gz";
                $srcAge = '';
                $topDir = '../';
        } else {
                $workspaceDir = '${workspaceDir}';
                $srcPackageName = '${packageName}';
+               $srcTarBall = "$srcPackageName-\${version}.tar.gz";
                $srcAge = '-${age}';
                $topDir = '';
        }
@@ -1479,8 +1549,8 @@ sub mode_etics_packaging {
        $cmd->{default}{packaging} = $rpmprepare;
        $cmd->{default}{packaging} .= "dir=\${workspaceDir}/rpm_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SRPMSLocation} \$dir/{BUILD,RPMS,SOURCES,SRPMS} 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/SOURCES/
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/SOURCES/$srcPackageName-\${version}${srcAge}.src.tar.gz
        rpmbuild -bs --nodeps --define \"_topdir \$dir\" $srcPackageName.spec
        cp -v \$dir/SRPMS/*.src.rpm \${package.SRPMSLocation}/
        rm -rf \$dir";
@@ -1492,8 +1562,8 @@ sub mode_etics_packaging {
                $cmd->{$p}{packaging} = $debprepare;
                $cmd->{$p}{packaging} .= "dir=\${workspaceDir}/dpkg_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SDEBSLocation} \$dir 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/${srcPackageName}_\${version}.orig.tar.gz
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/${srcPackageName}_\${version}.orig.tar.gz
        tar xzf \$dir/${srcPackageName}_\${version}.orig.tar.gz -C \$dir
        cp -rf ${topDir}debian/ \$dir/$srcPackageName-\${version}/
        cd \$dir/$srcPackageName-\${version}
@@ -1564,7 +1634,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}_R_${major}_${minor}_${rev}" : 
+               $conftag = $subsys eq 'gridsite' ? "$project{tag_prefix}{$subsys}${subsys}$project{tag_suffix}{$subsys}_R_${major}_${minor}_${rev}" : 
                        "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}_${age}";
 
                # lowering age for older packaging
@@ -1603,7 +1673,6 @@ sub mode_etics {
        #$cmd_vcs{checkout} = "((test -d jra1mw/.git && (cd jra1mw; git pull)) || (git clone -q http://scientific.zcu.cz/git/jra1mw.git";
        #$cmd_vcs{checkout} .= " && (cd jra1mw; git checkout -b \${tag} --track origin/\${tag})" unless ($conftag eq /HEAD/);
        #$cmd_vcs{checkout} .= ")) && (test -d \${moduleName} || ln -s jra1mw/$cvs_module \${moduleName})";
-       $cmd_vcs{checkout} .= "\n\ttest -f \${packageName}-\${version}-\${age}.src.tar.gz || (ln -s \${moduleName} \${packageName}-\${version}; tar -chf - \${packageName}-\${version} --exclude CVS --exclude .git --exclude .etics | gzip --best > \${packageName}-\${version}-\${age}.src.tar.gz; rm \${packageName}-\${version})";
        $cmd_vcs{tag} = "cvs -d \${vcsroot} tag -R \${tag} ${moduleName}";
 
        $cmd{default}{init} = 'None';
@@ -1695,7 +1764,7 @@ sub mode_etics {
                        $cmd{default}{compile} = "make rpath=$project{local_prefix}/\${libdir}";
                        $cmd{default}{install} = "make install post-install rpath=$project{local_prefix}/\${libdir}";
                }
-               mode_etics_packaging($fmod, \%cmd);
+               mode_etics_packaging($fmod, \%cmd, "make dist\n\t", "make dist\n\t");
        }
 
        my $defprops = '';
index cab273b..654554d 100644 (file)
@@ -87,6 +87,9 @@
 2.2.1-4
 - Module rebuilt
 
+2.2.1-5
+- Module rebuilt
+
 2.3.0-1
 - Merge from branch_3_2
 
index e457931..f2880c2 100755 (executable)
@@ -54,8 +54,8 @@ 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 nagios/;
+my @nodes = qw/client server logger logger-msg nagios utils client-java doc ws-test db jpprimary jpindex jpclient harvester lb px proxyrenewal canl/;
+my @default_nodes = qw/lb px proxyrenewal nagios canl/;
 my %enable_nodes;
 my %disable_nodes;
 my %default_nodes; @default_nodes{@default_nodes} = (1) x ($#default_nodes + 1);
@@ -126,10 +126,6 @@ my %externs = (
        gridsite => {
                prefix => '/opt/glite'
        },
-       lcas => {
-               prefix => '/opt/glite',
-               pkg => 'lcas'
-       },
        trustmanager => {
                prefix => '/opt/glite'
        },
@@ -492,7 +488,7 @@ sub mode_build {
 
                print MAK "all: @modules\n\n";
                print MAK "stage: ".(join '-stage ', @modules)."-stage\n\n";
-               print MAK "clean check install:\n";
+               print MAK "clean check install dist distcheck rpm deb:\n";
 
                for (@modules) {
                        my $full = full($_);
@@ -524,6 +520,13 @@ sub mode_build {
                        print MAK "$_-stage: $snames\n\tcd $full/$build && \${MAKE} && \${MAKE} stage\n\n";
                }
 
+               print MAK qq/release-rpm: clean dist distcheck rpm
+
+release-deb: clean dist distcheck deb
+
+.PHONY: all stage clean check install dist distcheck rpm deb release-rpm release-deb
+/;
+
                close MAK;
        }
 }
@@ -600,7 +603,7 @@ BEGIN{
        '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:B voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B pkgconfig:B/ ],
+       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads:B voms:B 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/ ],
@@ -874,6 +877,17 @@ for my $ext (keys %deps_aux) {
        'canl' => 'emi-',
 );
 
+%cvs_tag_suffix = (
+       'lb' => '',
+       'jp' => '',
+       'jobid' => '',
+       'lbjp-common' => '',
+       'gridsite' => '-core',
+       'px' => '',
+       'canl' => '',
+);
+
+
 # ==== projects specification ====
 # etics_name ........... ETICS project name
 # conf_prefix .......... ETICS configurations name prefix
@@ -893,6 +907,7 @@ for my $ext (keys %deps_aux) {
                etics_name => 'org.glite',
                conf_prefix => { %cvs_tag_prefix },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour=${globus.thr.flavor} --nothrflavour=${globus.nothr.flavor}',
                local_prefix => '',
                etics_externs => {
@@ -910,7 +925,6 @@ for my $ext (keys %deps_aux) {
                                glue_schema=>'glue-schema',
                                trustmanager=>'org.glite.security.trustmanager',
                                axis=>'axis',
-                               lcas=>'org.glite.security.lcas',
                                gsoapxx=>'-',
                                jdk=>'jdk',
                                voms=>'org.glite.security.voms-api-cpp',
@@ -924,7 +938,7 @@ for my $ext (keys %deps_aux) {
                },
                etics_projects => {
                        vdt=>[qw/globus globus_essentials globus_proxy_utils gpt/],
-                       'org.glite'=>[qw/voms gridsite lcas gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
+                       'org.glite'=>[qw/voms gridsite gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
                },
                etics_locations => {
                        '*' => '',
@@ -963,6 +977,7 @@ for my $ext (keys %deps_aux) {
                        'canl' => 'emi-',
                },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour= --nothrflavour=',
                local_prefix => '/usr',
                etics_externs => {
@@ -980,7 +995,6 @@ for my $ext (keys %deps_aux) {
                                trustmanager=>'emi.java-security.trustmanager',
                                trustmanager_axis=>'emi.java-security.trustmanager-axis',
                                axis=>'axis1.4',
-                               lcas=>'emi.sac.lcas',
                                gsoapxx=>'-',
                                jdk=>'java',
                                voms => 'emi.voms.voms-api',
@@ -1050,7 +1064,7 @@ for my $ext (keys %deps_aux) {
                        },
                },
                etics_projects => {
-                       'emi'=>[qw/voms voms-devel gridsite lcas gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
+                       'emi'=>[qw/voms voms-devel gridsite gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
                },
                etics_locations => {
                        axis => 'axis',
@@ -1214,7 +1228,7 @@ sub get_version
                while (<V>) {
                        chomp;
                        ($major,$minor,$rev) = ($1,$2,$3) if /module\.version\s*=\s*([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)/;
-                       $age = $1 if /module\.age\s*=\s*([[:digit:]]+)/;
+                       $age = $1 if /module\.age\s*=\s*(\S+)/;
                }
                close V;
                $_ = $old_;
@@ -1360,6 +1374,55 @@ top_srcdir = $top_srcdir
 
        print MKINC "gsoap_default_version=".gsoap_version()."\n"  if $need_gsoap;
 
+       print MKINC '
+-include ${top_srcdir}/project/version.properties
+version=${module.version}
+
+${package}-${version}.tar.gz:
+       rm -rf dist
+       for dist in ${SOURCES} ${SOURCES_EXEC} configure project/ChangeLog project/debian.* project/*.spec project/package.* project/version.properties; do \
+               dir=${package}-${version}/`dirname $$dist`; \
+               mkdir -p dist/$$dir || :; \
+               install -m 0644 ${top_srcdir}/$$dist dist/$$dir; \
+       done
+       for dist in ${SOURCES_EXEC} configure; do \
+               chmod +x dist/${package}-${version}/$$dist; \
+       done
+       (cd dist; tar -czf ${package}-${version}.tar.gz ${package}-${version})
+       mv dist/${package}-${version}.tar.gz .
+
+dist: ${package}-${version}.tar.gz
+
+distcheck: ${package}-${version}.tar.gz
+       rm -rf dist
+       mkdir -p dist
+       cp ${package}-${version}.tar.gz dist
+       (cd dist; tar -xzf ${package}-${version}.tar.gz)
+       a=`(cd dist/${package}-${version}; find . -type f | sort)`; \
+       b=`(cd ${top_srcdir}; find . -path ./dist -prune -or -type f -print | sort)`; \
+       echo "$$a" >dist/files-dist; \
+       echo "$$b" | egrep -v "(^./Makefile.inc$$|^./${package}-${version}.tar.gz$$|^./debian|^./[^/]*.spec$$|\.cvsignore|^\./project/changelog$$|/CVS)" >dist/files-original
+       diff -U0 dist/files-dist dist/files-original
+
+rpm: ${package}-${version}.tar.gz
+       dir=dist/rpm_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir/BUILD $$dir/RPMS $$dir/SOURCES $$dir/SRPMS; \
+       cp ${package}-${version}.tar.gz $$dir/SOURCES/${package}-${version}-${module.age}.src.tar.gz && \
+       rpmbuild -bs --nodeps --define "_topdir $$dir" ${package}.spec && \
+       cp -v $$dir/SRPMS/*.src.rpm dist/
+
+deb: ${package}-${version}.tar.gz
+       dir=dist/dpkg_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir; \
+       cp ${package}-${version}.tar.gz $$dir/${package}_${version}.orig.tar.gz && \
+       tar zxf $$dir/${package}_${version}.orig.tar.gz -C $$dir && \
+       cp -rf debian/ $$dir/${package}-${version} && \
+       (cd $$dir/${package}-${version} && dpkg-buildpackage -S -d -nc -us -uc) && \
+       cp -v $$dir/*.tar.gz $$dir/*.dsc dist/
+';
+
        close MKINC;
 
        my $dh;
@@ -1412,43 +1475,48 @@ top_srcdir = $top_srcdir
                }
        }
 
-       print "Creating ${build}debian/\n" if ($debug);;
-
-       `rm -rfv  ${build}debian`;
-       mkdir $build."debian" or die $!;
-       `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
-       `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
-       `rm -f ${build}debian/*.orig`;
-       opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
-       for $_ (readdir $dh) {
-               if (/^debian\.(.*)/) {
-                       `mv ${build}debian/$_ ${build}debian/$1`;
-                       $debian = 1;
+       if ($module and -d $build."debian") {
+               print "Skipping ${build}debian/ (no rewrite in single module mode)\n" if ($debug);
+               `rm -f ${build}debian.*`;
+       } else {
+               print "Creating ${build}debian/\n" if ($debug);;
+
+               `rm -rfv  ${build}debian`;
+               mkdir $build."debian" or die $!;
+               `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
+               `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
+               `rm -f ${build}debian/*.orig`;
+               opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
+               for $_ (readdir $dh) {
+                       if (/^debian\.(.*)/) {
+                               `mv ${build}debian/$_ ${build}debian/$1`;
+                               $debian = 1;
+                       }
                }
-       }
-       closedir $dh;
+               closedir $dh;
 
-       if ($debian) {
-               my ($dir, $file);
+               if ($debian) {
+                       my ($dir, $file);
 
-               chmod 0755, "${build}debian/rules";
-               $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
-               $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
-               $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
-               $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
-               $file="${build}debian/changelog"; if (not -f $file) {
-                       open FH, ">$file" or die $!;
-                       print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
+                       chmod 0755, "${build}debian/rules";
+                       $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
+                       $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
+                       $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
+                       $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
+                       $file="${build}debian/changelog"; if (not -f $file) {
+                               open FH, ">$file" or die $!;
+                               print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
 
   * Automatically generated package
 
  -- $package{maintainer}  $debdate
 };
-                       close FH;
-               }
+                               close FH;
+                       }
 
-       } else {
-               `rm -rf ${build}debian`;
+               } else {
+                       `rm -rf ${build}debian`;
+               }
        }
 }
 
@@ -1460,16 +1528,18 @@ sub mode_etics_packaging {
        my ($workspaceDir, $srcPackageName, $srcAge, $topDir);
 
        # old-school packaging by ETICS for EMI-1
-       if ($project eq 'emi' and $project_version == 1) { return; }
+       if ($project eq 'emi' and $project_version == 1 and $fmod ne 'gridsite.core') { return; }
 
        if ($fmod eq 'gridsite.core') {
                $workspaceDir = '..';
                $srcPackageName = 'gridsite';
+               $srcTarBall = "../$srcPackageName-\${version}.src.tar.gz";
                $srcAge = '';
                $topDir = '../';
        } else {
                $workspaceDir = '${workspaceDir}';
                $srcPackageName = '${packageName}';
+               $srcTarBall = "$srcPackageName-\${version}.tar.gz";
                $srcAge = '-${age}';
                $topDir = '';
        }
@@ -1479,8 +1549,8 @@ sub mode_etics_packaging {
        $cmd->{default}{packaging} = $rpmprepare;
        $cmd->{default}{packaging} .= "dir=\${workspaceDir}/rpm_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SRPMSLocation} \$dir/{BUILD,RPMS,SOURCES,SRPMS} 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/SOURCES/
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/SOURCES/$srcPackageName-\${version}${srcAge}.src.tar.gz
        rpmbuild -bs --nodeps --define \"_topdir \$dir\" $srcPackageName.spec
        cp -v \$dir/SRPMS/*.src.rpm \${package.SRPMSLocation}/
        rm -rf \$dir";
@@ -1492,8 +1562,8 @@ sub mode_etics_packaging {
                $cmd->{$p}{packaging} = $debprepare;
                $cmd->{$p}{packaging} .= "dir=\${workspaceDir}/dpkg_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SDEBSLocation} \$dir 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/${srcPackageName}_\${version}.orig.tar.gz
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/${srcPackageName}_\${version}.orig.tar.gz
        tar xzf \$dir/${srcPackageName}_\${version}.orig.tar.gz -C \$dir
        cp -rf ${topDir}debian/ \$dir/$srcPackageName-\${version}/
        cd \$dir/$srcPackageName-\${version}
@@ -1564,7 +1634,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}_R_${major}_${minor}_${rev}" : 
+               $conftag = $subsys eq 'gridsite' ? "$project{tag_prefix}{$subsys}${subsys}$project{tag_suffix}{$subsys}_R_${major}_${minor}_${rev}" : 
                        "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}_${age}";
 
                # lowering age for older packaging
@@ -1603,7 +1673,6 @@ sub mode_etics {
        #$cmd_vcs{checkout} = "((test -d jra1mw/.git && (cd jra1mw; git pull)) || (git clone -q http://scientific.zcu.cz/git/jra1mw.git";
        #$cmd_vcs{checkout} .= " && (cd jra1mw; git checkout -b \${tag} --track origin/\${tag})" unless ($conftag eq /HEAD/);
        #$cmd_vcs{checkout} .= ")) && (test -d \${moduleName} || ln -s jra1mw/$cvs_module \${moduleName})";
-       $cmd_vcs{checkout} .= "\n\ttest -f \${packageName}-\${version}-\${age}.src.tar.gz || (ln -s \${moduleName} \${packageName}-\${version}; tar -chf - \${packageName}-\${version} --exclude CVS --exclude .git --exclude .etics | gzip --best > \${packageName}-\${version}-\${age}.src.tar.gz; rm \${packageName}-\${version})";
        $cmd_vcs{tag} = "cvs -d \${vcsroot} tag -R \${tag} ${moduleName}";
 
        $cmd{default}{init} = 'None';
@@ -1695,7 +1764,7 @@ sub mode_etics {
                        $cmd{default}{compile} = "make rpath=$project{local_prefix}/\${libdir}";
                        $cmd{default}{install} = "make install post-install rpath=$project{local_prefix}/\${libdir}";
                }
-               mode_etics_packaging($fmod, \%cmd);
+               mode_etics_packaging($fmod, \%cmd, "make dist\n\t", "make dist\n\t");
        }
 
        my $defprops = '';
index 0b9cf22..82dfcdb 100644 (file)
@@ -95,6 +95,9 @@
 2.2.2-2
 - Module rebuilt
 
+2.2.2-3
+- Module rebuilt
+
 2.3.0-1
 - Merge from branch_3_2
 
index b762519..4ae1031 100644 (file)
@@ -109,7 +109,7 @@ install: all
 
 clean:
        rm -rvf *.o *.lo .libs lib* *.c *.h *.dox C/ CPP/
-       rm -vf trio_test
+       rm -rvf trio_test ${REPORTS}
        rm -rvf dist ${package}-*.tar.gz
        
 distclean:
index e457931..f2880c2 100755 (executable)
@@ -54,8 +54,8 @@ 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 nagios/;
+my @nodes = qw/client server logger logger-msg nagios utils client-java doc ws-test db jpprimary jpindex jpclient harvester lb px proxyrenewal canl/;
+my @default_nodes = qw/lb px proxyrenewal nagios canl/;
 my %enable_nodes;
 my %disable_nodes;
 my %default_nodes; @default_nodes{@default_nodes} = (1) x ($#default_nodes + 1);
@@ -126,10 +126,6 @@ my %externs = (
        gridsite => {
                prefix => '/opt/glite'
        },
-       lcas => {
-               prefix => '/opt/glite',
-               pkg => 'lcas'
-       },
        trustmanager => {
                prefix => '/opt/glite'
        },
@@ -492,7 +488,7 @@ sub mode_build {
 
                print MAK "all: @modules\n\n";
                print MAK "stage: ".(join '-stage ', @modules)."-stage\n\n";
-               print MAK "clean check install:\n";
+               print MAK "clean check install dist distcheck rpm deb:\n";
 
                for (@modules) {
                        my $full = full($_);
@@ -524,6 +520,13 @@ sub mode_build {
                        print MAK "$_-stage: $snames\n\tcd $full/$build && \${MAKE} && \${MAKE} stage\n\n";
                }
 
+               print MAK qq/release-rpm: clean dist distcheck rpm
+
+release-deb: clean dist distcheck deb
+
+.PHONY: all stage clean check install dist distcheck rpm deb release-rpm release-deb
+/;
+
                close MAK;
        }
 }
@@ -600,7 +603,7 @@ BEGIN{
        '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:B voms:B lcas gridsite:B bison:B libtool:B libxml2 flex:B pkgconfig:B/ ],
+       'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads:B voms:B 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/ ],
@@ -874,6 +877,17 @@ for my $ext (keys %deps_aux) {
        'canl' => 'emi-',
 );
 
+%cvs_tag_suffix = (
+       'lb' => '',
+       'jp' => '',
+       'jobid' => '',
+       'lbjp-common' => '',
+       'gridsite' => '-core',
+       'px' => '',
+       'canl' => '',
+);
+
+
 # ==== projects specification ====
 # etics_name ........... ETICS project name
 # conf_prefix .......... ETICS configurations name prefix
@@ -893,6 +907,7 @@ for my $ext (keys %deps_aux) {
                etics_name => 'org.glite',
                conf_prefix => { %cvs_tag_prefix },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour=${globus.thr.flavor} --nothrflavour=${globus.nothr.flavor}',
                local_prefix => '',
                etics_externs => {
@@ -910,7 +925,6 @@ for my $ext (keys %deps_aux) {
                                glue_schema=>'glue-schema',
                                trustmanager=>'org.glite.security.trustmanager',
                                axis=>'axis',
-                               lcas=>'org.glite.security.lcas',
                                gsoapxx=>'-',
                                jdk=>'jdk',
                                voms=>'org.glite.security.voms-api-cpp',
@@ -924,7 +938,7 @@ for my $ext (keys %deps_aux) {
                },
                etics_projects => {
                        vdt=>[qw/globus globus_essentials globus_proxy_utils gpt/],
-                       'org.glite'=>[qw/voms gridsite lcas gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
+                       'org.glite'=>[qw/voms gridsite gip_release gip_service bdii glite_version glite_info_templates glue_schema yaim_core/],
                },
                etics_locations => {
                        '*' => '',
@@ -963,6 +977,7 @@ for my $ext (keys %deps_aux) {
                        'canl' => 'emi-',
                },
                tag_prefix => { %cvs_tag_prefix },
+               tag_suffix => { %cvs_tag_suffix },
                flavours => '--thrflavour= --nothrflavour=',
                local_prefix => '/usr',
                etics_externs => {
@@ -980,7 +995,6 @@ for my $ext (keys %deps_aux) {
                                trustmanager=>'emi.java-security.trustmanager',
                                trustmanager_axis=>'emi.java-security.trustmanager-axis',
                                axis=>'axis1.4',
-                               lcas=>'emi.sac.lcas',
                                gsoapxx=>'-',
                                jdk=>'java',
                                voms => 'emi.voms.voms-api',
@@ -1050,7 +1064,7 @@ for my $ext (keys %deps_aux) {
                        },
                },
                etics_projects => {
-                       'emi'=>[qw/voms voms-devel gridsite lcas gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
+                       'emi'=>[qw/voms voms-devel gridsite gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
                },
                etics_locations => {
                        axis => 'axis',
@@ -1214,7 +1228,7 @@ sub get_version
                while (<V>) {
                        chomp;
                        ($major,$minor,$rev) = ($1,$2,$3) if /module\.version\s*=\s*([[:digit:]]+)\.([[:digit:]]+)\.([[:digit:]]+)/;
-                       $age = $1 if /module\.age\s*=\s*([[:digit:]]+)/;
+                       $age = $1 if /module\.age\s*=\s*(\S+)/;
                }
                close V;
                $_ = $old_;
@@ -1360,6 +1374,55 @@ top_srcdir = $top_srcdir
 
        print MKINC "gsoap_default_version=".gsoap_version()."\n"  if $need_gsoap;
 
+       print MKINC '
+-include ${top_srcdir}/project/version.properties
+version=${module.version}
+
+${package}-${version}.tar.gz:
+       rm -rf dist
+       for dist in ${SOURCES} ${SOURCES_EXEC} configure project/ChangeLog project/debian.* project/*.spec project/package.* project/version.properties; do \
+               dir=${package}-${version}/`dirname $$dist`; \
+               mkdir -p dist/$$dir || :; \
+               install -m 0644 ${top_srcdir}/$$dist dist/$$dir; \
+       done
+       for dist in ${SOURCES_EXEC} configure; do \
+               chmod +x dist/${package}-${version}/$$dist; \
+       done
+       (cd dist; tar -czf ${package}-${version}.tar.gz ${package}-${version})
+       mv dist/${package}-${version}.tar.gz .
+
+dist: ${package}-${version}.tar.gz
+
+distcheck: ${package}-${version}.tar.gz
+       rm -rf dist
+       mkdir -p dist
+       cp ${package}-${version}.tar.gz dist
+       (cd dist; tar -xzf ${package}-${version}.tar.gz)
+       a=`(cd dist/${package}-${version}; find . -type f | sort)`; \
+       b=`(cd ${top_srcdir}; find . -path ./dist -prune -or -type f -print | sort)`; \
+       echo "$$a" >dist/files-dist; \
+       echo "$$b" | egrep -v "(^./Makefile.inc$$|^./${package}-${version}.tar.gz$$|^./debian|^./[^/]*.spec$$|\.cvsignore|^\./project/changelog$$|/CVS)" >dist/files-original
+       diff -U0 dist/files-dist dist/files-original
+
+rpm: ${package}-${version}.tar.gz
+       dir=dist/rpm_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir/BUILD $$dir/RPMS $$dir/SOURCES $$dir/SRPMS; \
+       cp ${package}-${version}.tar.gz $$dir/SOURCES/${package}-${version}-${module.age}.src.tar.gz && \
+       rpmbuild -bs --nodeps --define "_topdir $$dir" ${package}.spec && \
+       cp -v $$dir/SRPMS/*.src.rpm dist/
+
+deb: ${package}-${version}.tar.gz
+       dir=dist/dpkg_build_src; \
+       rm -rf $$dir; \
+       mkdir -p $$dir; \
+       cp ${package}-${version}.tar.gz $$dir/${package}_${version}.orig.tar.gz && \
+       tar zxf $$dir/${package}_${version}.orig.tar.gz -C $$dir && \
+       cp -rf debian/ $$dir/${package}-${version} && \
+       (cd $$dir/${package}-${version} && dpkg-buildpackage -S -d -nc -us -uc) && \
+       cp -v $$dir/*.tar.gz $$dir/*.dsc dist/
+';
+
        close MKINC;
 
        my $dh;
@@ -1412,43 +1475,48 @@ top_srcdir = $top_srcdir
                }
        }
 
-       print "Creating ${build}debian/\n" if ($debug);;
-
-       `rm -rfv  ${build}debian`;
-       mkdir $build."debian" or die $!;
-       `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
-       `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
-       `rm -f ${build}debian/*.orig`;
-       opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
-       for $_ (readdir $dh) {
-               if (/^debian\.(.*)/) {
-                       `mv ${build}debian/$_ ${build}debian/$1`;
-                       $debian = 1;
+       if ($module and -d $build."debian") {
+               print "Skipping ${build}debian/ (no rewrite in single module mode)\n" if ($debug);
+               `rm -f ${build}debian.*`;
+       } else {
+               print "Creating ${build}debian/\n" if ($debug);;
+
+               `rm -rfv  ${build}debian`;
+               mkdir $build."debian" or die $!;
+               `cp $abs_srcdir/project/debian.* ${build}debian/ 2>/dev/null`;
+               `mv ${build}debian.* ${build}debian/ 2>/dev/null`;
+               `rm -f ${build}debian/*.orig`;
+               opendir $dh, "${build}debian" || die "Can't open ${build}debian: $!";
+               for $_ (readdir $dh) {
+                       if (/^debian\.(.*)/) {
+                               `mv ${build}debian/$_ ${build}debian/$1`;
+                               $debian = 1;
+                       }
                }
-       }
-       closedir $dh;
+               closedir $dh;
 
-       if ($debian) {
-               my ($dir, $file);
+               if ($debian) {
+                       my ($dir, $file);
 
-               chmod 0755, "${build}debian/rules";
-               $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
-               $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
-               $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
-               $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
-               $file="${build}debian/changelog"; if (not -f $file) {
-                       open FH, ">$file" or die $!;
-                       print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
+                       chmod 0755, "${build}debian/rules";
+                       $file="${build}debian/docs"; if (not -f $file) { `touch $file`; }
+                       $dir="${build}debian/source"; if (not -d $dir) { mkdir $dir; }
+                       $file="${build}debian/source/format"; if (not -f $file) { `echo "3.0 (quilt)" > $file` }
+                       $file="${build}debian/compat"; if (not -f $file) { `echo "7" > $file` }
+                       $file="${build}debian/changelog"; if (not -f $file) {
+                               open FH, ">$file" or die $!;
+                               print FH qq{$packageName ($major.$minor.$rev-$age) unstable; urgency=low
 
   * Automatically generated package
 
  -- $package{maintainer}  $debdate
 };
-                       close FH;
-               }
+                               close FH;
+                       }
 
-       } else {
-               `rm -rf ${build}debian`;
+               } else {
+                       `rm -rf ${build}debian`;
+               }
        }
 }
 
@@ -1460,16 +1528,18 @@ sub mode_etics_packaging {
        my ($workspaceDir, $srcPackageName, $srcAge, $topDir);
 
        # old-school packaging by ETICS for EMI-1
-       if ($project eq 'emi' and $project_version == 1) { return; }
+       if ($project eq 'emi' and $project_version == 1 and $fmod ne 'gridsite.core') { return; }
 
        if ($fmod eq 'gridsite.core') {
                $workspaceDir = '..';
                $srcPackageName = 'gridsite';
+               $srcTarBall = "../$srcPackageName-\${version}.src.tar.gz";
                $srcAge = '';
                $topDir = '../';
        } else {
                $workspaceDir = '${workspaceDir}';
                $srcPackageName = '${packageName}';
+               $srcTarBall = "$srcPackageName-\${version}.tar.gz";
                $srcAge = '-${age}';
                $topDir = '';
        }
@@ -1479,8 +1549,8 @@ sub mode_etics_packaging {
        $cmd->{default}{packaging} = $rpmprepare;
        $cmd->{default}{packaging} .= "dir=\${workspaceDir}/rpm_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SRPMSLocation} \$dir/{BUILD,RPMS,SOURCES,SRPMS} 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/SOURCES/
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/SOURCES/$srcPackageName-\${version}${srcAge}.src.tar.gz
        rpmbuild -bs --nodeps --define \"_topdir \$dir\" $srcPackageName.spec
        cp -v \$dir/SRPMS/*.src.rpm \${package.SRPMSLocation}/
        rm -rf \$dir";
@@ -1492,8 +1562,8 @@ sub mode_etics_packaging {
                $cmd->{$p}{packaging} = $debprepare;
                $cmd->{$p}{packaging} .= "dir=\${workspaceDir}/dpkg_build_src_\$\$
        mkdir -p \${package.tgzLocation} \${package.SDEBSLocation} \$dir 2>/dev/null || true
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \${package.tgzLocation}/
-       cp -vf $workspaceDir/$srcPackageName-\${version}${srcAge}.src.tar.gz \$dir/${srcPackageName}_\${version}.orig.tar.gz
+       cp -vf $srcTarBall \${package.tgzLocation}/$srcPackageName-\${version}${srcAge}.src.tar.gz
+       cp -vf $srcTarBall \$dir/${srcPackageName}_\${version}.orig.tar.gz
        tar xzf \$dir/${srcPackageName}_\${version}.orig.tar.gz -C \$dir
        cp -rf ${topDir}debian/ \$dir/$srcPackageName-\${version}/
        cd \$dir/$srcPackageName-\${version}
@@ -1564,7 +1634,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}_R_${major}_${minor}_${rev}" : 
+               $conftag = $subsys eq 'gridsite' ? "$project{tag_prefix}{$subsys}${subsys}$project{tag_suffix}{$subsys}_R_${major}_${minor}_${rev}" : 
                        "$project{tag_prefix}{$subsys}$subsys-${module}_R_${major}_${minor}_${rev}_${age}";
 
                # lowering age for older packaging
@@ -1603,7 +1673,6 @@ sub mode_etics {
        #$cmd_vcs{checkout} = "((test -d jra1mw/.git && (cd jra1mw; git pull)) || (git clone -q http://scientific.zcu.cz/git/jra1mw.git";
        #$cmd_vcs{checkout} .= " && (cd jra1mw; git checkout -b \${tag} --track origin/\${tag})" unless ($conftag eq /HEAD/);
        #$cmd_vcs{checkout} .= ")) && (test -d \${moduleName} || ln -s jra1mw/$cvs_module \${moduleName})";
-       $cmd_vcs{checkout} .= "\n\ttest -f \${packageName}-\${version}-\${age}.src.tar.gz || (ln -s \${moduleName} \${packageName}-\${version}; tar -chf - \${packageName}-\${version} --exclude CVS --exclude .git --exclude .etics | gzip --best > \${packageName}-\${version}-\${age}.src.tar.gz; rm \${packageName}-\${version})";
        $cmd_vcs{tag} = "cvs -d \${vcsroot} tag -R \${tag} ${moduleName}";
 
        $cmd{default}{init} = 'None';
@@ -1695,7 +1764,7 @@ sub mode_etics {
                        $cmd{default}{compile} = "make rpath=$project{local_prefix}/\${libdir}";
                        $cmd{default}{install} = "make install post-install rpath=$project{local_prefix}/\${libdir}";
                }
-               mode_etics_packaging($fmod, \%cmd);
+               mode_etics_packaging($fmod, \%cmd, "make dist\n\t", "make dist\n\t");
        }
 
        my $defprops = '';
index 45eea76..8ae7e3c 100644 (file)
 2.2.2-3
 - Module rebuilt
 
+2.2.3-1
+- Missing files in clean targets added
+- Explicit pkg-config dependency
+
 2.3.0-1
 - Merge from branch_3_2