From: Zdeněk Šustr Date: Tue, 6 Nov 2012 16:49:55 +0000 (+0000) Subject: Updating version, ChangeLog and copying the most recent configure from ./org.glite... X-Git-Tag: glite-px-emi-px_R_1_0_2_1~1 X-Git-Url: http://scientific.zcu.cz/git/?a=commitdiff_plain;h=eaff1ee169ab5829f52e2db0892b7a0d332d4fd5;p=jra1mw.git Updating version, ChangeLog and copying the most recent configure from ./org.glite.lb for v. 1.0.2-1 --- diff --git a/org.glite.px.emi-px/configure b/org.glite.px.emi-px/configure index 6857be9..b1a1d31 100755 --- a/org.glite.px.emi-px/configure +++ b/org.glite.px.emi-px/configure @@ -26,6 +26,9 @@ use Getopt::Long; use POSIX qw(locale_h strftime); +#my $default_url = 'http://eticssoft.web.cern.ch/eticssoft/repository/emi/${moduleName}/${version}/src'; +my $default_url = 'http://scientific.zcu.cz/emi/${moduleName}'; + my $pwd = `pwd`; chomp $pwd; my $prefix = '/usr'; my $stagedir = undef; @@ -33,10 +36,11 @@ my $root = $pwd.'/stage'; my $sysroot = ''; my $sysconfdir; my $localstatedir; +my $os_type; my $staged; my $module; -my $thrflavour = 'gcc64dbgpthr'; -my $nothrflavour = 'gcc64dbg'; +my $thrflavour = ''; +my $nothrflavour = ''; my $mode = 'build'; my $help = 0; my $listmodules; @@ -52,10 +56,14 @@ my $project = 'emi'; my $project_version; my (%projects, %project); my $debug = 0; +my $url = $default_url; +my $url_rpm; +my $url_deb; +my $url_source; 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 client-java/; my %enable_nodes; my %disable_nodes; my %default_nodes; @default_nodes{@default_nodes} = (1) x ($#default_nodes + 1); @@ -124,11 +132,8 @@ my %externs = ( pkg => 'voms-2.0' }, gridsite => { - prefix => '/opt/glite' - }, - lcas => { prefix => '/opt/glite', - pkg => 'lcas' + pkg => 'gridsite-openssl' }, trustmanager => { prefix => '/opt/glite' @@ -187,11 +192,11 @@ my (%etics_externs, %etics_projects); # additional modules from $project{modules} are automatically added # my %lbmodules = ( - 'lb' => [ qw/client client-java common doc logger server state-machine types utils ws-interface ws-test harvester yaim logger-msg nagios client-devel client-progs common-devel logger-devel state-machine-devel/], + 'lb' => [ qw/client common doc logger server state-machine types utils ws-interface ws-test harvester yaim logger-msg nagios client-devel client-progs common-devel logger-devel state-machine-devel/], 'lbjp-common' => [qw/db log maildir server-bones trio jp-interface gss gsoap-plugin db-devel log-devel maildir-devel server-bones-devel trio-devel jp-interface-devel gss-devel gsoap-plugin-devel/], - 'jobid' => [qw/api-c api-c-devel api-cpp api-cpp-devel api-java/], + 'jobid' => [qw/api-c api-c-devel api-cpp api-cpp-devel/], 'jp' => [ qw/client doc index primary server-common ws-interface/ ], - 'gridsite' => [ qw/apache libs commands core devel slashgrid services service-clients gsexec/ ], + 'gridsite' => [ qw/apache libs commands core devel services service-clients/ ], 'px' => [ qw/proxyrenewal myproxy-yaim proxyrenewal-devel proxyrenewal-progs/ ], 'canl' => [ qw/c c-devel/ ], ); @@ -220,6 +225,13 @@ my %subpackages = ( 'px.proxyrenewal-devel' => 'px.proxyrenewal', 'px.proxyrenewal-progs' => 'px.proxyrenewal', 'canl.c-devel' => 'canl.c', + 'gridsite.apache' => 'gridsite.core', + 'gridsite.shared' => 'gridsite.core', + 'gridsite.commands' => 'gridsite.core', + 'gridsite.devel' => 'gridsite.core', + 'gridsite.libs' => 'gridsite.core', + 'gridsite.services' => 'gridsite.core', + 'gridsite.service-clients' => 'gridsite.core', ); my @opts = ( @@ -238,15 +250,21 @@ my @opts = ( 'sysroot:s' => \$sysroot, 'sysconfdir=s' => \$sysconfdir, 'localstatedir=s' => \$localstatedir, + 'os-type=s' => \$os_type, 'lb-tag=s' => \$lb_tag, 'lbjp-common-tag=s' => \$lbjp_tag, 'jp-tag=s' => \$jp_tag, 'jobid-tag=s' => \$jobid_tag, 'canl-tag=s' => \$canl_tag, + 'px-tag=s' => \$px_tag, 'help' => \$help, 'libdir=s' => \$libdir, 'project=s' => \$project, 'debug' => \$debug, + 'url=s' => \$url, + 'url-rpm=s' => \$url_rpm, + 'url-deb=s' => \$url_deb, + 'url-source=s' => \$url_source, ); for (@nodes) { @@ -270,6 +288,14 @@ if (not $sysconfdir) { $sysconfdir = $prefix eq '/usr' ? '/etc' : "$prefix/etc"; if (not $localstatedir) { $localstatedir = $prefix eq '/usr' ? '/var' : "$prefix/var"; } $sysconfdir=~s/\/$//; $localstatedir=~s/\/$//; +if (not $os_type) { $os_type = os_type(); } +if (not $url_rpm) { $url_rpm = $url; } +if (not $url_deb) { $url_deb = $url; } +if (not $url_source) { $url_source = $url; } +$url=~s/\/$//; +$url_rpm=~s/\/$//; +$url_deb=~s/\/$//; +$url_source=~s/\/$//; $externs{'mysql-server'}{prefix}=$externs{mysql}{prefix} if $externs{'mysql-server'}{prefix} eq ''; $externs{'mysql-devel'}{prefix}=$externs{mysql}{prefix} if $externs{'mysql-devel'}{prefix} eq ''; @@ -285,6 +311,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 services service-clients/ ]; +} for my $platform (keys %{$project{etics_externs}}) { for $_ (keys %{$project{etics_externs}{$platform}}) { $etics_externs{$platform}{$_} = $project{etics_externs}{$platform}{$_}; @@ -311,6 +340,9 @@ if ($project eq 'emi') { $extranodmod{lb} = 'lb.emi-lb'; $extranodmod{px} = 'px.emi-px'; } +if ($project ne 'emi' or $project_version <= 2) { + $project{modules}{gridsite} = [ qw/slashgrid gsexec/ ]; +} for $_ (keys %{$project{modules}}) { push @{$lbmodules{$_}},@{$project{modules}{$_}}; } @@ -325,7 +357,7 @@ if ($listmodules) { if (exists $lbmodules{$listmodules}) { @m = map exists $subpackages{$listmodules . '.' . $_} ? "" : "$name_prefix.$listmodules.$_",@{$lbmodules{$listmodules}}; } else { - if ($project eq 'emi' and $project_version == 1) { + if ($project eq 'emi' and $project_version == 1 and $listmodules ne 'gridsite.core') { # no sub-packages in EMI-1 } else { for my $sub (keys %subpackages) { @@ -489,7 +521,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 +553,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; } } @@ -564,6 +603,13 @@ sub mode_checkout() { } } } + if ($px_tag) { + for (@{$lbmodules{'px'}}){ + if ("px.".$_ eq $module){ + $tag = '-r '.$px_tag; + } + } + } #if (grep {"lb.".$_ eq $module} @{$lbmodules{lb}}){ # print "found"; #} @@ -593,11 +639,11 @@ BEGIN{ %need_externs_aux = ( 'lb.client' => [ qw/cppunit:B classads:B libtool:B globus:B pkgconfig:B/ ], 'lb.common' => [ qw/expat cares:B cppunit:B classads:B libtool:B globus:B pkgconfig:B/ ], - 'lb.doc' => [ qw/tetex-latex:B/ ], + 'lb.doc' => [ qw/tetex-latex:B texlive-latex-recommended:B texlive-fonts-recommended:B texlive-latex-extra:B/ ], 'lb.logger' => [ qw/cppunit:B libtool:B globus:B pkgconfig:B/ ], 'lb.logger-msg' => [ qw/cppunit:B activemq libtool:B globus:B pkgconfig:B/ ], 'lb.nagios' => [ qw/globus_proxy_utils:R/ ], - 'lb.server' => [ qw/globus_essentials:R globus:B expat cares mysql-server:R cppunit:B gsoap:B classads: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/ ], @@ -613,7 +659,7 @@ BEGIN{ 'lbjp-common.gss' => [ qw/globus_essentials:R globus:B cares cppunit:B libtool:B pkgconfig:B/ ], 'lbjp-common.gsoap-plugin' => [ qw/cppunit:B globus_essentials:R globus:B cares:B gsoap gsoapxx libtool:B pkgconfig:B/ ], 'jobid.api-c' => [ qw/cppunit:B libtool:B openssl:B pkgconfig:B/ ], - 'jobid.api-cpp' => [ qw/cppunit:B libtool:B pkgconfig:B/ ], + 'jobid.api-cpp' => [ qw// ], 'jobid.api-java' => [ qw/ant:B jdk:B/ ], 'jp.client' => [ qw/gsoap libtar globus_essentials:R globus:B pkgconfig:B/ ], 'jp.doc' => [], @@ -621,10 +667,11 @@ BEGIN{ 'jp.primary' => [ qw/classads:B gsoap libtar globus_essentials:R globus:B mysql-server:R pkgconfig:B/ ], 'jp.server-common' => [], 'jp.ws-interface' => [], - 'gridsite.core' => [ qw/httpd-devel:B gsoap:B globus:B curl:B doxygen:B fuse-devel:B libxml2:B openssl:B doxygen:B pkgconfig:B/ ], + 'gridsite.core' => [ qw/httpd-devel:B gsoap:B globus:B curl:B doxygen:B libxml2:B openssl:B doxygen:B pkgconfig:B libtool:B/ ], 'gridsite.commands' => [ qw/curl:R openssl:R/ ], 'gridsite.apache' => [ qw/libxml2:R openssl:R curl:R/ ], 'gridsite.libs' => [ qw/libxml2:R openssl:R/ ], + 'gridsite.shared' => [ qw/libxml2:R openssl:R/ ], 'gridsite.devel' => [ qw// ], 'gridsite.slashgrid' => [ qw/curl:R fuse:R/], 'gridsite.services' => [ qw/curl:R gsoap:R/ ], @@ -633,7 +680,7 @@ BEGIN{ 'gridsite.1.5-compat' => [ qw/httpd-devel:B gsoap:B globus:B curl:B doxygen:B fuse-devel:B libxml2:B openssl:B doxygen:B/ ], 'px.proxyrenewal' => [ qw/globus:B globus_essentials:R myproxy-devel:B voms:B libtool:B pkgconfig:B/ ], 'px.myproxy-config' => [ qw/myproxy-admin:R/ ], # in myproxy-config.spec - 'canl.c' => [ qw/cares:B openssl:B libtool:B bison:B flex:B krb5-devel:B pkgconfig:B tetex-latex:B/ ], + 'canl.c' => [ qw/cares:B openssl:B libtool:B bison:B flex:B krb5-devel:B pkgconfig:B tetex-latex:B texlive-latex-recommended:B texlive-fonts-recommended:B texlive-latex-extra:/ ], ); %need_jars = ( @@ -702,12 +749,12 @@ for my $jar (keys %need_jars) { 'lb.yaim' => [ qw// ], 'lb.glite-LB' => [ qw/ lb.logger:R lb.server:R lb.utils:R lb.doc:R - lb.ws-test:R lb.harvester:R lb.yaim:R lb.client-java:R + lb.ws-test:R lb.harvester:R lb.yaim:R lb.logger-msg:R / ], 'lb.emi-lb' => [ qw/ lb.logger:R lb.server:R lb.utils:R lb.doc:R - lb.ws-test:R lb.harvester:R lb.yaim:R lb.client-java:R + lb.ws-test:R lb.harvester:R lb.yaim:R lb.logger-msg:R / ], 'lbjp-common.db' => [ qw/lbjp-common.trio lbjp-common.log/ ], @@ -747,10 +794,11 @@ for my $jar (keys %need_jars) { / ], 'jp.ws-interface' => [ qw// ], - 'gridsite.core' => [ qw// ], + 'gridsite.core' => [ qw/canl.c:B/ ], '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 +917,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 +947,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 +965,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 +978,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 => { '*' => '', @@ -946,7 +1005,7 @@ for my $ext (keys %deps_aux) { }, emi => { - current_version => 2, + current_version => 3, etics_name => 'emi', conf_prefix => { 'lb' => 'emi-', @@ -958,6 +1017,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 => { @@ -972,10 +1032,12 @@ for my $ext (keys %deps_aux) { bdii=>'emi.bdii.core', glite_version=>'emi.emi-version', glue_schema=>'emi.bdii.glue-schema', + 'texlive-fonts-recommended' => '-', + 'texlive-latex-recommended' => '-', + 'texlive-latex-extra' => '-', 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', @@ -988,6 +1050,10 @@ for my $ext (keys %deps_aux) { }, deb6_x86_64_gcc445 => { axis => 'axis1.4', + 'tetex-latex' => '-', + 'texlive-fonts-recommended' => 'texlive-fonts-recommended', + 'texlive-latex-recommended' => 'texlive-latex-recommended', + 'texlive-latex-extra' => 'texlive-latex-extra', # mappings in ETICS project configuration #globus_essentials => 'libglobus-gssapi-gsi4', #globus => 'libglobus-gssapi-gsi-dev', @@ -1002,7 +1068,6 @@ for my $ext (keys %deps_aux) { #libxslt => 'xsltproc', #'jakarta-commons-codec' => 'libcommons-codec-java', #'jakarta-commons-lang' => 'libcommons-lang-java', - #'tetex-latex' => 'texlive-latex-extra', #'perl-LDAP' => 'libnet-ldap-perl', #'fuse-lib' => 'libfuse2', #'fuse' => 'fuse-utils', @@ -1045,7 +1110,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', @@ -1061,6 +1126,7 @@ for my $ext (keys %deps_aux) { sl5_x86_64_gcc412EPEL => 1, sl5_ia32_gcc412EPEL => 1, sl6_x86_64_gcc446EPEL => 1, + sl6_ia32_gcc446EPEL => 1, deb6_x86_64_gcc445 => 1, }, modules => { @@ -1209,7 +1275,7 @@ sub get_version while () { 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_; @@ -1334,6 +1400,7 @@ stagedir = $stagedir sysroot = $sysroot sysconfdir = $sysconfdir localstatedir = $localstatedir +os_type = $os_type thrflavour = $thrflavour nothrflavour = $nothrflavour libdir = $libdir @@ -1355,6 +1422,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 LICENSE; 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}.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; @@ -1375,6 +1491,13 @@ top_srcdir = $top_srcdir for my $file ("$packageName.spec", "debian.rules", "debian.control", "debian.changelog", "debian.copyright") { if (-f "$abs_srcdir/project/$file") { my $old_ = $_; + my $url_spec = $url_source; + + $url_spec =~ s/\$\{moduleName\}/$project{etics_name}.$subsys.$mod/g; + $url_spec =~ s/\$\{packageName\}/%{name}/g; + $url_spec =~ s/\$\{version\}/%{version}/g; + $url_spec =~ s/\$\{age\}/%{rel}/g; + printf STDERR "Creating $build$file\n" if ($debug);; open DST, ">$build$file"; open SRC, "<$abs_srcdir/project/$file"; @@ -1399,6 +1522,7 @@ top_srcdir = $top_srcdir s/--version\s+\S+\s?//; s/$/ --version $version/; } + if (/^Source:.*/ and $file =~ /\.spec$/) { s,^(Source:\s*).*?([^/]*)$,\1$url_spec/\2,; } printf DST "%s", "$_"; } close SRC; @@ -1407,43 +1531,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) stable; urgency=low * Automatically generated package -- $package{maintainer} $debdate }; - close FH; - } + close FH; + } - } else { - `rm -rf ${build}debian`; + } else { + `rm -rf ${build}debian`; + } } } @@ -1455,17 +1584,20 @@ 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'; - $srcAge = ''; + $srcTarBall = "../$srcPackageName-\${version}.src.tar.gz"; + $srcAge = '.src'; $topDir = '../'; } else { $workspaceDir = '${workspaceDir}'; $srcPackageName = '${packageName}'; - $srcAge = '-${age}'; + $srcTarBall = "$srcPackageName-\${version}.tar.gz"; + $srcAge = ''; + if ($project eq 'emi' and $project_version <= 2) { $srcAge = '-${age}.src'; } $topDir = ''; } @@ -1474,8 +1606,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}.tar.gz + cp -vf $srcTarBall \$dir/SOURCES/$srcPackageName-\${version}${srcAge}.tar.gz rpmbuild -bs --nodeps --define \"_topdir \$dir\" $srcPackageName.spec cp -v \$dir/SRPMS/*.src.rpm \${package.SRPMSLocation}/ rm -rf \$dir"; @@ -1487,8 +1619,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}.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} @@ -1536,7 +1668,7 @@ sub mode_etics { } my $conf; - my $conftag; + my ($vcsroot, $conftag); my ($confprefix, $nameprefix, $packageName); $dwpath = "path = \${projectName}/\${moduleName}/\${version}/\${platformName}/\${packageName}-\${version}-\${age}.tar.gz\n"; @@ -1546,6 +1678,7 @@ sub mode_etics { $nameprefix =~ s/-$//; $nameprefix =~ s/-/\./g; $packageName = "$project{tag_prefix}{$subsys}$subsys-${module}"; + $vcsroot=":pserver:anonymous\@glite.cvs.cern.ch:/cvs/glite"; if ($branch) { $conf = "$confprefix${subsys}-${module}_$branch"; @@ -1559,7 +1692,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 @@ -1567,12 +1700,12 @@ sub mode_etics { $age = $age - 1; } - # '.emi1' suffix for older packaging - if ($project eq 'emi' and $project_version == 1) { + # .emi1/.emi2 suffix for older packaging + if ($project eq 'emi' and $project_version <= 2) { $age = $age.'.'.$project.$project_version; } } - if ($project eq 'emi' and $project_version == 1) { + if ($project eq 'emi' and $project_version <= 2) { $conf = $conf.$project.$project_version; } @@ -1594,12 +1727,8 @@ sub mode_etics { } 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/\${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_vcs{checkout} = 'true'; + $cmd_vcs{tag} = 'None'; $cmd{default}{init} = 'None'; $cmd{default}{configure} = 'None'; @@ -1607,51 +1736,76 @@ sub mode_etics { $cmd{default}{test} = 'None'; $cmd{default}{install} = 'None'; $cmd{default}{packaging} = 'None'; - $cmd{default}{clean} = 'make clean'; + $cmd{default}{clean} = 'None'; if (exists $subpackages{$fmod}) { - $cmd{default}{clean} = 'None'; $cmd{default}{packaging} = "echo building nothing, $subpackages{$fmod} will build this package"; - $cmd_vcs{checkout} = "mkdir -v \${moduleName} 2>/dev/null || true"; - } elsif ($subsys eq 'gridsite') { - $cmd_vcs{tag} = 'None'; + $cmd_vcs{checkout} = "true"; + } elsif ($project eq 'emi' and $project_version >= 3) { + # for non-branched configuration for EMI-3 do the build from external source package + my $pkgName = $fmod eq 'gridsite.core' ? 'gridsite' : '${packageName}'; + + $cmd{default}{clean} = 'rm -rf ${package.SRPMSLocation}'; + $cmd{default}{init} = "wget -P \${package.SRPMSLocation} $url_rpm/$pkgName-\${version}-\${age}.src.rpm"; + $cmd{default}{packaging} = 'true'; + + 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} = 'rm -rf ${package.SRPMSLocation}'; + $cmd{$p}{init} = "wget -P \${package.tgzLocation} $url_deb/${pkgName}_\${version}-\${age}.debian.tar.gz $url_deb/${pkgName}_\${version}-\${age}.dsc $url_deb/${pkgName}_\${version}.orig.tar.gz"; + $cmd{$p}{packaging} = 'true'; + } + + $vcsroot = 'None'; + $conftag = 'None'; + } else { + $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})"; - if ($module eq 'core') { - my $flags; + if ($subsys eq 'gridsite') { + $cmd{default}{clean} = 'make clean'; + + if ($module eq 'core') { + my $flags; - if ($project ne 'glite') { - # don't evaluate pkg-config calls to get them into source package - $flags = 'RELEASE_VERSION=${age} + if ($project ne 'glite') { + # don't evaluate pkg-config calls to get them into source package + $flags = 'RELEASE_VERSION=${age} GSOAPDIR=\`pkg-config gsoap --variable=prefix\` OPENSSL_GLOBUS_FLAGS=\`pkg-config globus-openssl --cflags\` OPENSSL_GLOBUS_LIBS=\`pkg-config globus-openssl --libs\`'; - } else { - $flags = 'RELEASE_VERSION=${age} + } else { + $flags = 'RELEASE_VERSION=${age} GSOAPDIR=${gsoap.location} OPENSSL_GLOBUS_FLAGS=-I${globus.location}/include/${globus.dbg.nothr.flavor} OPENSSL_GLOBUS_LIBS=-L${globus.location}/${libdir} HTTPD_FLAGS=-I${httpd-devel.location}/include/httpd -I${httpd-devel.location}/include/apache2 -I${httpd-devel.location}/include/apr-1 -I${httpd-devel.location}/include/apr-1.0 -I${httpd-devel.location}/include/apr-0 -I${httpd-devel.location}/include/pcre'; - } + } - $cmd{default}{configure} = "cat > Makefile.inc </dev/null"; - $cmd{default}{init} = 'echo "/sbin/ldconfig" > project/.post + ); + } + 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"; + $cmd{default}{init} = 'echo "/sbin/ldconfig" > project/.post echo "/sbin/ldconfig" > project/.postun'; - $cmd{default}{configure} = "cat > src/Makefile.inc <{$pp}}) { - print C $p . ' = ' . $platform_properties{"$subsys.$module"}->{$pp}->{$p} . "\n"; + for my $p (keys %{$platform_properties{"$subsys.$module"}->{$pp}}) { + print C $p . ' = ' . $platform_properties{"$subsys.$module"}->{$pp}->{$p} . "\n"; + } + print C "$package_description$package_summary\n"; } - print C "$package_description$package_summary\n"; } for my $platform ('default', keys %{$project{supported_platforms}}) { my $used = 0; my $output = ''; - for (@{$need_externs{"$subsys.$module"}},@{$need_jars{"$subsys.$module"}}) { - my $eext = $etics_externs{$platform}{$_}; - my $edev = $project{etics_externs_devel}{$platform}{$_}; + # build dependencies needed only for EMI <= 2 + if ($project ne 'emi' or $project_version <= 2) { + for (@{$need_externs{"$subsys.$module"}},@{$need_jars{"$subsys.$module"}}) { + my $eext = $etics_externs{$platform}{$_}; + my $edev = $project{etics_externs_devel}{$platform}{$_}; - # for the default platform using package of the same - # name for runtime dependency - if (not $eext) { - if ($platform eq 'default') { + # for the default platform using package of the same + # name for runtime dependency + if (not $eext) { + if ($platform eq 'default') { #print "default runtime $_ on default\n"; - $eext = $_; } - else { + $eext = $_; } + else { #print "no runtime $_ on $platform\n"; - $eext = '-'; } - } - if ($eext eq '-' and $edev eq '-') { + $eext = '-'; } + } + if ($eext eq '-' and $edev eq '-') { #print "skipping $_ on $platform\n"; - next; - } + next; + } - my $proj = 'externals'; - for my $p (keys %etics_projects) { - for $m (@{$etics_projects{$p}}) { - $proj = $p if $m eq $_; + my $proj = 'externals'; + for my $p (keys %etics_projects) { + for $m (@{$etics_projects{$p}}) { + $proj = $p if $m eq $_; + } } - } - my $type = $need_externs_type{"$subsys.$module"}->{$_}; + my $type = $need_externs_type{"$subsys.$module"}->{$_}; - if ($edev) { - if ($type eq 'B') { - # no runtime - change to devel pkg - $eext = $edev; - } elsif ($type eq 'BR' or $type eq 'RB') { - # additional devel pkg - if ($edev ne '-') { $output .= "$proj|$edev = B\n"; } + if ($edev) { + if ($type eq 'B') { + # no runtime - change to devel pkg + $eext = $edev; + } elsif ($type eq 'BR' or $type eq 'RB') { + # additional devel pkg + if ($edev ne '-') { $output .= "$proj|$edev = B\n"; } + } } + if ($eext ne '-') { $output .= "$proj|$eext = $type\n"; } } - if ($eext ne '-') { $output .= "$proj|$eext = $type\n"; } } if ($platform eq 'default') { @@ -2004,6 +2169,24 @@ sub reshuffle_platforms($$) { } } +sub os_type { + my $ver; + + open FH, '<', '/etc/issue' or return "redhat"; + $_=; + close FH; + + if (/Debian|Ubuntu/i) { return "debian"; } + elsif (/Scientific|Redhat|Centos/i) { return "redhat"; } + elsif (/Fedora/i) { + $ver = `rpm -q --queryformat '%{version}' fedora-release 2>/dev/null`; + if ($ver and $ver >= 15) { return "fedora"; } + else { return "redhat"; } + } else { + return "redhat"; + } +} + sub usage { my @ext = keys %externs; my @myjars = keys %jar; @@ -2017,9 +2200,11 @@ General options (defaults in []): --root=DIR installation root (custom relocation root -> sysroot) [./stage] --sysroot=DIR system root (custom relocation root -> sysroot) [] --sysconfdir=DIR system configuration directory [PREFIX/etc] + --localstatedir=DIR system local status directory [PREFIX/var] + --os-type=DIST system type (debian/redhat/fedora) --staged=module,module,... what is already in PREFIX (specify without org.glite.) --thrflavour=flavour - --nothrflavour=flavour threaded and non-treaded flavours [gcc64dbgpthr,gcc64dbg] + --nothrflavour=flavour threaded and non-treaded flavours [] --listmodules=subsys list modules of a subsystem --listmodules=module list subpackages of a module --version=maj.min.rev-age version used instead of reading version.properties @@ -2027,6 +2212,10 @@ General options (defaults in []): --libdir=libdir typically [lib,lib64] postfix --project=PROJECT build or generate etics for a project (glite/emi1/emi) [emi] --debug print more details + --url URL of all published files [$default_url] + --url-rpm URL of published RPM packages [] + --url-deb URL of published Debian packages [] + --url-source URL of published source tarballs [] Mode of operation: --mode=\{checkout|build|etics\} what to do [build] @@ -2040,6 +2229,7 @@ What to build: --lbjp-common-tag=tag checkout lbjp-common modules with specific tag --jobid-tag=tag checkout jobid modules with specific tag --canl-tag=tag checkout canl modules with specific tag + --px-tag=tag checkout px modules with specific tag Dependencies (summary of what will be used is always printed): --with-EXTERNAL=PATH where to look for an external [autodetect] diff --git a/org.glite.px.emi-px/project/ChangeLog b/org.glite.px.emi-px/project/ChangeLog index a0842e1..f12c3fb 100644 --- a/org.glite.px.emi-px/project/ChangeLog +++ b/org.glite.px.emi-px/project/ChangeLog @@ -4,3 +4,6 @@ 1.0.1-1 - ProxyRenewal modules split/restructured +1.0.2-1 +- License and packaging fixes + diff --git a/org.glite.px.emi-px/project/version.properties b/org.glite.px.emi-px/project/version.properties index e575ad0..c0fc191 100644 --- a/org.glite.px.emi-px/project/version.properties +++ b/org.glite.px.emi-px/project/version.properties @@ -1,2 +1,2 @@ -module.version=1.0.1 +module.version=1.0.2 module.age=1