},
);
-my %gridsite_rpm = (
- 'package.RPMSLocation' => "\${moduleDir}/RPMTMP/RPMS",
- 'package.SRPMSLocation' => "\${moduleDir}/RPMTMP/SRPMS",
-);
-my %gridsite_deb = (
- 'package.DEBSLocation' => "\${moduleDir}/RPMTMP",
-);
%platform_properties = (
- 'gridsite.core' => {
- sl5_x86_64_gcc412 => \%gridsite_rpm,
- sl5_ia32_gcc412 => \%gridsite_rpm,
- sl5_x86_64_gcc412EPEL => \%gridsite_rpm,
- sl5_ia32_gcc412EPEL => \%gridsite_rpm,
- deb5_x86_64_gcc432 => \%gridsite_deb,
- deb5_ia32_gcc432 => \%gridsite_deb,
- slc4_x86_64_gcc346 => \%gridsite_rpm,
- slc4_ia32_gcc346 => \%gridsite_rpm,
- sl6_x86_64_gcc445EPEL => \%gridsite_rpm,
- deb6_x86_64_gcc445 => \%gridsite_deb,
- },
'jobid.api-java' => {
default => { 'package.buildarch' => 'noarch' },
},
BEGIN{
};
+sub mode_etics_packaging {
+ my ($fmod, $cmd, $rpmprepare, $debprepare) = @_;
+ my ($workspaceDir, $srcPackageName, $srcAge, $topDir);
+
+ if ($fmod eq 'gridsite.core') {
+ $workspaceDir = '..';
+ $srcPackageName = 'gridsite';
+ $srcAge = '';
+ $topDir = '../';
+ } else {
+ $workspaceDir = '${workspaceDir}';
+ $srcPackageName = '${packageName}';
+ $srcAge = '-${age}';
+ $topDir = '';
+ }
+
+ $cmd->{clean} = 'make clean
+ rm -rfv ${package.tgzLocation} ${package.SRPMSLocation}';
+ $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/
+ rpmbuild -bs --nodeps --define \"_topdir \$dir\" $srcPackageName.spec
+ cp -v \$dir/SRPMS/*.src.rpm \${package.SRPMSLocation}/
+ rm -rf \$dir";
+
+ for my $p ('deb5_x86_64_gcc432', 'deb5_ia32_gcc432', 'deb6_x86_64_gcc445', 'deb6_ia32_gcc445') {
+ for my $c (keys %{$cmd->{default}}) { $cmd->{$p}{$c} = $cmd->{default}{$c}; }
+ $cmd->{$p}{clean} = 'make clean
+ rm -rfv ${package.tgzLocation} ${package.SDEBSLocation}';
+ $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
+ tar xzf \$dir/${srcPackageName}_\${version}.orig.tar.gz -C \$dir
+ cp -rf ${topDir}debian/ \$dir/$srcPackageName-\${version}/
+ cd \$dir/$srcPackageName-\${version}
+ dpkg-buildpackage -S -d -nc
+ cd -
+ cp -v \$dir/*.tar.gz \$dir/*.dsc \${package.SDEBSLocation}/
+ rm -rf \$dir";
+ }
+}
+
sub mode_etics {
$fmod = shift;
}
my %cmd;
- $cmd_vcs{checkout} = "cvs -d \${vcsroot} co -d \${moduleName} ".($conftag eq 'HEAD' ? '-A' : '-r ${tag}')." $cvs_module 2>/dev/null";
- #$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/epel)" unless ($conftag =~ /HEAD/);
- #$cmd_vcs{checkout} .= ")) && (test -d \${moduleName} || ln -s jra1mw/$cvs_module \${moduleName})";
+ #$cmd_vcs{checkout} = "cvs -d \${vcsroot} co -d \${moduleName} ".($conftag eq 'HEAD' ? '-A' : '-r ${tag}')." $cvs_module 2>/dev/null";
+ $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}";
$flags
EOF";
$cmd{default}{compile} = "make prefix=\${prefix}$project{local_prefix} libdir=\${libdir}";
- $cmd{default}{clean} = "rm -rvf \${moduleDir}/src/tgz; $cmd{default}{clean}";
$cmd{default}{install} = "make prefix=\${prefix}$project{local_prefix} libdir=\${libdir} install";
- $cmd{default}{packaging} = "mkdir -p \${moduleDir}/RPMTMP/SOURCES \${moduleDir}/src/tgz 2>/dev/null || true
- make prefix=\${prefix}$project{local_prefix} rpm && \\
- cp \${moduleDir}/RPMTMP/SOURCES/gridsite-\${version}.src.tar.gz \${moduleDir}/src/tgz";
-
- for my $p ('deb5_x86_64_gcc432', 'deb5_ia32_gcc432', 'deb6_x86_64_gcc445', 'deb6_ia32_gcc445') {
- $cmd{$p} = ();
- for my $c (keys %{$cmd{default}}) { $cmd{$p}{$c} = $cmd{default}{$c}; }
- $cmd{$p}{packaging} = "mkdir -p \${moduleDir}/RPMTMP/SOURCES \${moduleDir}/src/tgz 2>/dev/null || true
- chmod +x \${moduleDir}/src/make-debian-files || true
- make prefix=\${prefix}$project{local_prefix} deb && \\
- cp \${moduleDir}/RPMTMP/gridsite_\${version}-\${age}.\${platformFamily}.tar.gz \${moduleDir}/src/tgz";
- }
+ mode_etics_packaging($fmod, \%cmd,
+ "make prefix=\${prefix}$project{local_prefix} rpm-prepare
+ cp gridsite.spec ../\n\t",
+ "chmod +x \${moduleDir}/src/make-debian-files || true
+ make prefix=\${prefix}$project{local_prefix} deb-prepare\n\t"
+ );
}
elsif ($module eq '1.5-compat') {
$cmd_vcs{checkout} = "cvs -d \${vcsroot} co -d \${moduleName} ".($conftag eq 'HEAD' ? '-A' : '-r ${tag}')." $cvs_prefix{$subsys}.$subsys.core 2>/dev/null";
rm -fv \${prefix}$project{local_prefix}/\${libdir}/libgridsite*.so.1
rm -fv \${prefix}$project{local_prefix}/\${libdir}/libgridsite*.so
rm -fv \${prefix}$project{local_prefix}/\${libdir}/libgridsite*.a";
+ $cmd{default}{packaging} = "None";
}
else {
$cmd{default}{clean} = 'None';
$cmd{default}{packaging} = "make rpm package=".$confprefix."$subsys-myproxy-config";
}
else {
- $cmd{clean} = 'make clean
- rm -rfv ${package.tgzLocation} ${package.SRPMSLocation}';
$cmd{default}{configure} = "/usr/bin/perl $confdir/configure $project{flavours} --root=\${prefix} --prefix=$project{local_prefix} --stage=\${stageDir} --sysroot=\${package.prefix} --libdir=\${libdir} --project=\${projectName} --module $subsys.$module @copts";
$cmd{default}{compile} = 'make';
$cmd{default}{test} = 'make check';
$cmd{default}{compile} = "make rpath=$project{local_prefix}/\${libdir}";
$cmd{default}{install} = "make install post-install rpath=$project{local_prefix}/\${libdir}";
}
- $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}/${packageName}-${version}-${age}.src.tar.gz ${package.tgzLocation}/
- cp -vf ${workspaceDir}/${packageName}-${version}-${age}.src.tar.gz $dir/SOURCES/
- rpmbuild -bs --nodeps --define "_topdir $dir" ${packageName}.spec
- cp -v $dir/SRPMS/*.src.rpm ${package.SRPMSLocation}/
- rm -rf $dir';
- for my $p ('deb5_x86_64_gcc432', 'deb5_ia32_gcc432', 'deb6_x86_64_gcc445', 'deb6_ia32_gcc445') {
- for my $c (keys %{$cmd{default}}) { $cmd{$p}{$c} = $cmd{default}{$c}; }
- $cmd{$p}{clean} = 'make clean
- rm -rfv ${package.tgzLocation} ${package.SDEBSLocation}';
- $cmd{$p}{packaging} = 'dir=${workspaceDir}/dpkg_build_src_$$
- mkdir -p ${package.tgzLocation} ${package.SDEBSLocation} $dir 2>/dev/null || true
- cp -vf ${workspaceDir}/${packageName}-${version}-${age}.src.tar.gz ${package.tgzLocation}/
- cp -vf ${workspaceDir}/${packageName}-${version}-${age}.src.tar.gz $dir/${packageName}_${version}.orig.tar.gz
- tar xzf $dir/${packageName}_${version}.orig.tar.gz -C $dir
- cp -rf debian/ $dir/${packageName}-${version}/
- cd $dir/${packageName}-${version}
- dpkg-buildpackage -S -d -nc
- cd -
- cp -v $dir/*.tar.gz $dir/*.dsc ${package.SDEBSLocation}/
- rm -rf $dir';
- }
+ mode_etics_packaging($fmod, \%cmd);
}
my $defprops = '';
cd ../htcp-bin-$(VERSION) ; tar zcvf ../htcp-$(VERSION).bin.tar.gz .
rm -Rf ../htcp-bin-$(PATCH_VERSION)
-# RPM targets: build and RPMs go into subdirectories of ../RPMTMP/
-rpm: dist
+rpm-prepare: dist
export PATCH_VERSION=$(PATCH_VERSION) ; \
export MINOR_VERSION=$(MINOR_VERSION) ; \
export RELEASE_VERSION=$(RELEASE_VERSION) && \
export project=$(project); \
./make-gridsite-spec
- rm -Rf $(MYRPMDIR)/BUILDROOT $(MYRPMDIR)/BUILD
+
+rpm: rpm-prepare
+ rm -Rf $(MYRPMDIR)
mkdir -p $(MYRPMDIR)/SOURCES $(MYRPMDIR)/SPECS $(MYRPMDIR)/BUILD \
$(MYRPMDIR)/SRPMS $(MYRPMDIR)/RPMS/i386 $(MYRPMDIR)/BUILDROOT
cp -f ../gridsite-$(PATCH_VERSION).src.tar.gz $(MYRPMDIR)/SOURCES
$(RPMCMD) --define "_topdir $(MYRPMDIR)" \
-ba --buildroot $(MYRPMDIR)/BUILDROOT gridsite.spec
-deb: dist
- rm -Rf $(MYRPMDIR)
- (mkdir -p $(MYRPMDIR) && \
- tar -xC $(MYRPMDIR) -f ../gridsite-$(PATCH_VERSION).src.tar.gz && \
- cd $(MYRPMDIR)/gridsite-$(PATCH_VERSION)/src && \
- export PATCH_VERSION=$(PATCH_VERSION) && \
+deb-prepare: dist
+ export PATCH_VERSION=$(PATCH_VERSION) && \
export MINOR_VERSION=$(MINOR_VERSION) && \
export RELEASE_VERSION=$(RELEASE_VERSION) && \
export project=$(project) && \
export top_srcdir=.. && \
- ./make-debian-files)
+ ./make-debian-files
+
+deb: deb-prepare
+ rm -Rf $(MYRPMDIR)
+ mkdir -p $(MYRPMDIR)
+ tar -xC $(MYRPMDIR) -f ../gridsite-$(PATCH_VERSION).src.tar.gz
+ cp ../gridsite-$(PATCH_VERSION).src.tar.gz $(MYRPMDIR)/gridsite_$(PATCH_VERSION).orig.tar.gz
+ cp -rf ../debian/ $(MYRPMDIR)/gridsite-$(PATCH_VERSION)/
(cd $(MYRPMDIR)/gridsite-$(PATCH_VERSION) && \
pwd && \
dpkg-buildpackage)