From ec61ef27da6d3dcf6fa50dfeb019d13b21d40948 Mon Sep 17 00:00:00 2001 From: baiyuan Date: Tue, 23 Sep 2014 22:47:52 -0400 Subject: [PATCH] add metadeb and all support --- xCAT-buildkit/bin/buildkit | 94 +++++++++++++++++++++++--------------- 1 file changed, 56 insertions(+), 38 deletions(-) diff --git a/xCAT-buildkit/bin/buildkit b/xCAT-buildkit/bin/buildkit index 68ca2384d..ff1a456dd 100755 --- a/xCAT-buildkit/bin/buildkit +++ b/xCAT-buildkit/bin/buildkit @@ -764,20 +764,20 @@ sub kit_buildrepo1 } } - # Build kitcomponent metapackages + # Build kitcomponent preppackages and metapackages if ( $debianflag ){ foreach my $kc (@{$::bldkit_config->{kitcomponent}{entries}}) { if ($repoid ne $kc->{kitrepoid}) { next; } my $debname = "$repodir/".&comppkgname($kc); if (-r $debname) { next; } - if ($::VERBOSE) { print "building kitcomponent metapackage for $kc->{basename} \n";} + if ($::VERBOSE) { print "building kitcomponent package for $kc->{basename} \n";} if (&build_kitcomp_debian($kc)) { print "Error building kitcomponent metapackage for $kc->{basename} \n"; return 1; } } - # if ( system("dpkg-scanpackages $repodir > $repodir/Packages") ) { - if ( system("cd $repodir;dpkg-scanpackages . > Packages") ) { + + if ( system("cd $repodir;dpkg-scanpackages . > Packages") ) { print "Error building the repository meta-data with the dpkg-scanpackages command \n"; return 1; } @@ -2429,15 +2429,15 @@ sub build_kitcomp_debian{ system($cmd); mkpath($debbuilddir); - $::VALID_PRER_COMPONENT = 0; + $::VALID_PREP_COMPONENT = 0; if ( !$::PREREQUISITE ) { if ( $comp->{ospkgdeps} || $comp->{preinstall} || $comp->{preupgrade} || $comp->{preuninstall} ) { - #Create debian directory for this kit component + #Create debian directory for this kit component preppackage if ( &gen_kitcomp_debdir_prep($comp,\%repo) ) { return 1; } - $::VALID_PRER_COMPONENT = 1; + $::VALID_PREP_COMPONENT = 1; # build prep deb my $prep_compversion = $comp->{version} . "-" . $comp->{release}; my $prep_buildstring = "Prep Kit component build package."; @@ -2449,14 +2449,14 @@ sub build_kitcomp_debian{ return 1; } } - #Create debian directory for this kit component + #Create debian directory for this kit component metapackage - if ( &gen_kitcomp_debdir($comp,\%repo) ) { return 1; } + if ( &gen_kitcomp_debdir($comp,\%repo,'METADEB') ) { return 1; } } else { #Create debian directory for this kit component - if ( &gen_kitcomp_debdir($comp,\%repo) ) { return 1; } + if ( &gen_kitcomp_debdir($comp,\%repo,'ALL') ) { return 1; } } @@ -2566,16 +2566,16 @@ sub gen_kitcomp_debdir_prep{ chomp; s/<<>>/$prep_comp_name/; s/<<>>/$comp->{ospkgdeps}/; - s/<<>>/$comp->{kitpkgdeps}/; - s/<<>>/$comp->{kitcompdeps}/; + s/<<>>//; + s/<<>>//; s/<<>>/$comp->{description}/; s/<<>>/$upgradeflag/; s/<<>>/$prescript/; - s/<<>>/$postscript/; + s/<<>>//; s/<<>>/$preupscript/; - s/<<>>/$postupscript/; + s/<<>>//; s/<<>>/$preunscript/; - s/<<>>/$postunscript/; + s/<<>>//; } my $joined_lines = join("\n", @lines); @@ -2607,6 +2607,7 @@ sub gen_kitcomp_debdir_prep{ sub gen_kitcomp_debdir{ my $comp = shift; my $repo = shift; + my $level = shift; my $scriptdir = $::workdir."/scripts/"; my $combuilddir = $::workdir."/debbuild/".$comp->{kitcompname}; @@ -2620,29 +2621,38 @@ sub gen_kitcomp_debdir{ my $upgradeflag = $comp->{basename} . ".tmp"; my ($prescript,$postscript,$preupscript,$postupscript,$preunscript,$postunscript,$nonnativepkgs) = ''; - if (defined($comp->{preinstall})) { - $prescript = &load_script("$scriptdir$comp->{preinstall}"); - } - if (defined($comp->{postinstall})) { - $postscript = &load_script("$scriptdir$comp->{postinstall}"); - } - if (defined($comp->{preupgrade})) { - $preupscript = &load_script("$scriptdir$comp->{preupgrade}"); - } - if (defined($comp->{postupgrade})) { - $postupscript = &load_script("$scriptdir$comp->{postupgrade}"); - } - if (defined($comp->{preuninstall})) { - $preunscript = &load_script("$scriptdir$comp->{preuninstall}"); - } - if (defined($comp->{postuninstall})) { - $postunscript = &load_script("$scriptdir$comp->{postuninstall}"); - } - if (defined($comp->{non_native_pkgs})) { - $nonnativepkgs = "\n"; - $nonnativepkgs .= "mkdir -p \$RPM_BUILD_ROOT/opt/xcat/kits/$kitname/$kitcompname \n"; - $nonnativepkgs .= "cp -a * \$RPM_BUILD_ROOT/opt/xcat/kits/$kitname/$kitcompname \n"; + + if ($level eq 'METADEB' || $level eq 'ALL') + { + if (defined($comp->{postinstall})) { + $postscript = &load_script("$scriptdir$comp->{postinstall}"); + } + + if (defined($comp->{postupgrade})) { + $postupscript = &load_script("$scriptdir$comp->{postupgrade}"); + } + if (defined($comp->{postuninstall})) { + $postunscript = &load_script("$scriptdir$comp->{postuninstall}"); + } + if (defined($comp->{non_native_pkgs})) { + $nonnativepkgs = "\n"; + $nonnativepkgs .= "mkdir -p \$RPM_BUILD_ROOT/opt/xcat/kits/$kitname/$kitcompname \n"; + $nonnativepkgs .= "cp -a * \$RPM_BUILD_ROOT/opt/xcat/kits/$kitname/$kitcompname \n"; + } } + if ($level eq 'ALL') + { + if (defined($comp->{preinstall})) { + $prescript = &load_script("$scriptdir$comp->{preinstall}"); + } + if (defined($comp->{preupgrade})) { + $preupscript = &load_script("$scriptdir$comp->{preupgrade}"); + } + if (defined($comp->{preuninstall})) { + $preunscript = &load_script("$scriptdir$comp->{preuninstall}"); + } + } + #replace all special sub string in all files under debian unless (opendir(DH, "${combuilddir}/debian/")){ @@ -2667,12 +2677,20 @@ sub gen_kitcomp_debdir{ } my @lines = ; close(FH); + my $prepcomp="prep-".$comp->{basename}; for(@lines) { chomp; s/<<>>/$comp->{basename}/; s/<<>>/$comp->{ospkgdeps}/; s/<<>>/$comp->{kitpkgdeps}/; - s/<<>>/$comp->{kitcompdeps}/; + if ( $::VALID_PREP_COMPONENT ) { + s/<<>>/$comp->{kitcompdeps},$prepcomp/; + } + else + { + s/<<>>/$comp->{kitcompdeps}/; + } + s/<<>>/$comp->{description}/; s/<<>>/$upgradeflag/; s/<<>>/$prescript/;