Index: .ltibrc =================================================================== RCS file: /sources/ltib/ltib/.ltibrc,v retrieving revision 1.16 diff -u -r1.16 .ltibrc --- .ltibrc 17 Aug 2010 18:18:00 -0000 1.16 +++ .ltibrc 16 Feb 2012 15:22:49 -0000 @@ -100,6 +100,11 @@ #%use_localtime #0 +# control whether --clobber will remove package build directory if +# package specfile has been updated +#%allow_clobber +#0 + # This is used to trigger re-running the host install package # pass. Bump this number up if you update a host support # package and you want to force others to install this update Index: ltib =================================================================== RCS file: /sources/ltib/ltib/ltib,v retrieving revision 1.78 diff -u -r1.78 ltib --- ltib 29 Nov 2011 07:43:55 -0000 1.78 +++ ltib 16 Feb 2012 15:22:50 -0000 @@ -198,6 +198,7 @@ no_sudo_check => 0, # fc9 work-around help => 0, + clobber => 0, }; use strict 'vars'; @@ -343,6 +344,7 @@ --rcfile|r : use this resource file --batch|b : batch mode, assume yes to all questions --force|f : force rebuilds even if they are up to date + --clobber|K : clobber a package build source if its specfile is updated --reinstall|e : re-install rpms (but don't force rebuild) --erase|E : remove (erase) rpm --nodeps|n : turn off install/uninstall dependency checks @@ -399,6 +401,7 @@ "verbose|v" => \$verbose, "batch|b" => \$cf->{batch}, "force|f" => \$cf->{force}, + "clobber|K" => \$cf->{clobber}, "reinstall|e"=> \$cf->{reinstall}, "erase|E" => \$cf->{erase}, "nodeps|n" => \$cf->{nodeps}, @@ -839,6 +842,28 @@ return 1 if $cf->{download_only}; return 1 if $cf->{dltest}; + # if --clobber set (and spec file is updated, remove package source + # unless %allow_clobber is not set in ~/.ltibrc + if ($cf->{clobber} && $dir_bld && $unpack eq 'yes' && ( $spec_upd || ! @rpms)) { + if ($cf->{allow_clobber}) { + print "Clobber forces removal of $cf->{rpmdir}/BUILD/$tok->{pkg_dir_name}\n"; + system_nb("rm -rf $cf->{rpmdir}/BUILD/$tok->{pkg_dir_name}"); + # force prep + $dir_bld = 0; + } else { + warn(<{rpmdir}/BUILD/$tok->{pkg_dir_name} +Enable %allow_clobber in .ltibrc if you really want to automatically remove +package build source if specfile is updated + +TXT + } + } + if( $dir_bld ) { # Don't allow scbuild/scdeploy of host rpms if($cf->{hostinst} || $cf->{mode} ne 'buildrpms') {