gridsite packaging cleanups:
authorFrantišek Dvořák <valtri@civ.zcu.cz>
Thu, 31 Mar 2011 16:09:22 +0000 (16:09 +0000)
committerFrantišek Dvořák <valtri@civ.zcu.cz>
Thu, 31 Mar 2011 16:09:22 +0000 (16:09 +0000)
- new gridsite submodules
- --mode=etics for all modules
- fix dependencies, adding runtime dependencies to etics
- filter out not supported platforms
- prepare for build cleanups in upstream
- gridsite-devel dependency in L&B

org.glite.lb/configure

index 24b0fce..1e3f769 100755 (executable)
@@ -186,7 +186,7 @@ my %lbmodules = (
        'lbjp-common' => [qw/db log maildir server-bones trio jp-interface gss gsoap-plugin/],
        'jobid' => [qw/api-c api-cpp api-java/],
        'jp' => [ qw/client doc index primary server-common ws-interface/ ],
-       'gridsite' => [ qw/apache shared commands core/ ],
+       'gridsite' => [ qw/apache shared commands core devel slashgrid services service-clients gsexec/ ],
        'px' => [ qw/proxyrenewal glite-PX myproxy-yaim/ ],
        );
 
@@ -533,7 +533,15 @@ BEGIN{
         'jp.primary' => [ qw/classads gsoap libtar globus_essentials:R globus:B/ ],
         'jp.server-common' => [],
         'jp.ws-interface' => [],
-       'gridsite.core' => [ qw/httpd-devel:B gsoap:B globus:B curl:B doxygen:B fuse:B libxml2:B openssl:B/ ],
+       'gridsite.core' => [ qw/httpd-devel:B gsoap:B globus:B curl:B doxygen:B fuse-devel:B libxml2 openssl:B build_common_cpp:B doxygen:B/ ],
+       'gridsite.commands' => [ qw/curl:R openssl:R/ ],
+       'gridsite.apache' => [ qw/libxml2:R openssl:R curl:R/ ],
+       'gridsite.shared' => [ qw/libxml2:R openssl:R/ ],
+       'gridsite.devel' => [],
+       'gridsite.slashgrid' => [ qw/curl:R fuse-libs:R fuse:R/],
+       'gridsite.services' => [ qw/curl:R gsoap:R/ ],
+       'gridsite.service-clients' => [ qw/curl:R gsoap:R gsoapxx:R/ ],
+       'gridsite.gsexec' => [ qw// ],
        'px.proxyrenewal' => [ qw/globus:B globus_essentials:R myproxy-devel:B myproxy-libs:R voms libtool:R/ ],
        'px.myproxy-config' => [ qw/myproxy-admin:R/ ], # in myproxy-config.spec
 );
@@ -639,7 +647,15 @@ for my $jar (keys %need_jars) {
         / ],
        'jp.ws-interface' => [ qw// ],
 
-       'gridsite.core' => [ qw/build.common-cpp:B/ ],
+       'gridsite.core' => [ qw// ],
+       'gridsite.commands' => [ qw/gridsite.shared:R/ ],
+       'gridsite.apache' => [ qw/gridsite.shared:R/ ],
+       'gridsite.shared' => [ qw// ],
+       'gridsite.devel' => [ qw/gridsite.shared:R/ ],
+       'gridsite.slashgrid' => [ qw/gridsite.shared:R/],
+       'gridsite.services' => [ qw/gridsite.shared:R/ ],
+       'gridsite.service-clients' => [ qw/gridsite.shared:R/ ],
+       'gridsite.gsexec' => [ qw// ],
 
        'px.proxyrenewal' => [ qw// ],
        'px.glite-PX' => [qw/px.myproxy-yaim:R/],
@@ -709,6 +725,7 @@ for my $ext (keys %deps_aux) {
 # etics_projects ....... ETICS project names of externals
 # etics_externs_devel .. ETICS modules names of devel versions of externals
 # need_externs_aux ..... project-specific external dependencies
+# supported_platforms .. platforms supported by the project
 %projects = (
        glite => {
                etics_name => 'org.glite',
@@ -731,8 +748,10 @@ for my $ext (keys %deps_aux) {
                        axis=>'axis',
                        lcas=>'org.glite.security.lcas',
                        gsoapxx=>'-',
+                       build_common_cpp=>'org.glite.build.common-cpp',
                },
                etics_externs_devel => {
+                       gridsite=>'org.gridsite.devel',
                },
                etics_projects => {
                        vdt=>[qw/globus globus_essentials gpt/],
@@ -776,6 +795,7 @@ for my $ext (keys %deps_aux) {
                        axis=>'axis1.4',
                        lcas=>'emi.sac.lcas',
                        gsoapxx=>'-',
+                       build_common_cpp=>'emi.misc.glite.build-common-cpp',
                },
                etics_externs_devel => {
                        cares => 'c-ares-devel',
@@ -788,9 +808,9 @@ for my $ext (keys %deps_aux) {
                        log4c => 'log4c-devel',
                        postgresql => 'postgresql-devel',
                        curl => 'curl-devel',
-                       fuse => 'fuse-devel',
                        libxml2 => 'libxml2-devel',
                        openssl => 'openssl-devel',
+                       gridsite=>'emi.gridsite.devel',
                },
                etics_projects => {
                        'emi'=>[qw/voms voms-devel gridsite lcas gip_release gip_service bdii glite_version glue_schema yaim_core yaim_bdii trustmanager trustmanager_axis/],
@@ -802,6 +822,10 @@ for my $ext (keys %deps_aux) {
                        'px.glite-PX' => [qw/myproxy-server:R myproxy-admin:R fetchcrl:R gip_service:R bdii:R glite_version:R glue_schema:R/],
                        'px.myproxy-yaim' => [ qw/yaim_core:R yaim_bdii:R/ ],
                },
+               supported_platforms => {
+                       sl5_x86_64_gcc412EPEL => 1,
+                       sl5_ia32_gcc412EPEL => 1,
+               },
        },
 );
 
@@ -941,7 +965,11 @@ sub mode_etics {
                ($major,$minor,$rev,$age) = ($1,$2,$3,$4);
        }
        else { 
-               open V,"$cvs_prefix{$subsys}.$subsys.$module/project/version.properties"
+               my $path = "$cvs_prefix{$subsys}.$subsys.$module/project";
+               if ($subsys eq 'gridsite') {
+                       $path = "$cvs_prefix{$subsys}.$subsys.core/project";
+               }
+               open V,"$path/version.properties"
                        or die "$cvs_prefix{$subsys}.$subsys.$module/project/version.properties: $!\n";
        
                while ($_ = <V>) {
@@ -1035,8 +1063,14 @@ sub mode_etics {
        my %cmd;
        @cmd{qw/configure compile test install packaging clean/} = ('None') x 6;
        $cmd{clean} = 'make clean';
+       $cmd{checkout} = "mkdir -v \${moduleName}; cd \${moduleName} && cvs -d \${vcsroot} co ".($conftag eq 'HEAD' ? '-A' : '-r ${tag}')." $cvs_prefix{$subsys}.$subsys.$module";
+       #$cmd{checkout} = "(test -d \${moduleName}/.git && (cd \${moduleName}; git pull) || git clone http://scientific.zcu.cz/jra1mw.git \${moduleName})";
+       #$cmd{checkout} .= " && (cd \${moduleName}; git checkout ${tag})" unless ($conftag =~ /HEAD/);
+       $cmd{tag} = "cd \${moduleName} && cvs -d \${vcsroot} tag -R \${tag} $cvs_prefix{$subsys}.$subsys.$module";
 
        if ($subsys eq 'gridsite') {
+               $cmd{tag} = 'None';
+
                if ($module eq 'core') {
                        my $flags;
 
@@ -1046,12 +1080,15 @@ sub mode_etics {
                                $flags = 'RELEASE_VERSION=${age}.${platformFamily} prefix=${prefix} libdir=${libdir} GSOAPDIR=${gsoap.location} OPENSSL_GLOBUS_FLAGS=-I${globus.location}/include/${globus.dbg.nothr.flavor} OPENSSL_GLOBUS_LIBS=-L${globus.location}/${libdir}/ FLAVOR_GLOBUS_EXT=_${globus.dbg.nothr.flavor} HTTPD_FLAGS="-I${httpd-devel.location}/include/httpd -I${httpd-devel.location}/include/apache2 -I${httpd-devel.location}/include/apr-${aprSuffix} -I${httpd-devel.location}/include/pcre"';
                        }
 
-                       $cmd{compile} = "make $flags build";
+                       $cmd{compile} = "echo 'make $flags' > build.sh\n\tmake $flags build";
+                       $cmd{clean} = "rm -rvf build.sh; $cmd{clean}";
                        $cmd{install} = "make $flags install";
                        $cmd{packaging} = "make $flags rpm";
                }
                else {
+                       $cmd{clean} = 'None';
                        $cmd{packaging} = "echo building nothing, org.gridsite.core make rpm step will create this";
+                       $cmd{checkout} = "mkdir -v \${moduleName} 2>/dev/null || true";
                }
        }
        elsif ($subsys eq 'px' and $module eq 'myproxy-config') {
@@ -1071,8 +1108,6 @@ sub mode_etics {
                $defprops .= $p . ' = ' . $platform_properties{"$subsys.$module"}->{default}->{$p} . "\n";
        }
 
-       my $checkoutcmd = "mkdir -v \${moduleName}; cd \${moduleName} && cvs -d \${vcsroot} co ".($conftag eq 'HEAD' ? '-A' : '-r ${tag}')." $cvs_prefix{$subsys}.$subsys.$module";
-
        print STDERR "Writing $file\n";
        print C qq{
 [Configuration-$conf]
@@ -1090,10 +1125,10 @@ $dwpath
 [Platform-default:VcsCommand]
 displayName = None
 description = None
-tag = cd \${moduleName} && cvs -d \${vcsroot} tag -R \${tag} $cvs_prefix{$subsys}.$subsys.$module
+tag = $cmd{tag}
 branch = None
 commit = None
-checkout = $checkoutcmd
+checkout = $cmd{checkout}
 
 [Platform-default:BuildCommand]
 postpublish = None
@@ -1114,8 +1149,8 @@ checkstyle = None
 [Platform-default:Property]
 $buildroot
 aprSuffix = 0
-package.RPMSLocation = \${moduleDir}/RPMTMP/RPMS
-package.SRPMSLocation = \${moduleDir}/RPMTMP/SRPMS
+package.RPMSLocation = \${moduleDir}/$cvs_prefix{$subsys}.$subsys.$module/RPMTMP/RPMS
+package.SRPMSLocation = \${moduleDir}/$cvs_prefix{$subsys}.$subsys.$module/RPMTMP/SRPMS
 package.preserve.libtool = false
 $package_description$package_summary$defprops};
 
@@ -1126,14 +1161,15 @@ $package_description$package_summary$defprops};
 
        for my $pp (keys %{$platform_properties{"$subsys.$module"}}) {
                next if $pp eq 'default';
+               next if exists $project{supported_platforms} and not exists $project{supported_platforms}{$pp};
+
                print C "[Platform-$pp:Property]\n$buildroot\n";
 
                for my $p (keys %{$platform_properties{"$subsys.$module"}->{$pp}}) {
                        print C $p . ' = ' . $platform_properties{"$subsys.$module"}->{$pp}->{$p} . "\n";
                }
-               print C q{package.RPMSLocation = ${moduleDir}/RPMTMP/RPMS
-package.SRPMSLocation = ${moduleDir}/RPMTMP/SRPMS
-};
+               print C "package.RPMSLocation = \${moduleDir}/$cvs_prefix{$subsys}.$subsys.$module/RPMTMP/RPMS
+package.SRPMSLocation = \${moduleDir}/$cvs_prefix{$subsys}.$subsys.$module/RPMTMP/SRPMS\n";
                print C "$package_description$package_summary\n";
        }