Changeset 315 in ProjectBuilder
- Timestamp:
- Feb 10, 2008, 6:40:37 AM (17 years ago)
- Location:
- devel/pb
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
devel/pb/bin/pb
r314 r315 23 23 use ProjectBuilder::Distribution qw (pb_distro_init); 24 24 use ProjectBuilder::Version qw (pb_version_init); 25 use ProjectBuilder::Base qw (pb_conf_read pb_conf_get pb_cms_init pb_mkdir_p pb_system pb_rm_rf pb_get_filters pb_filter_file pb_filter_file_pb pb_ cms_export pb_cms_log pb_cms_isdiff pb_cms_copy pb_cms_checkout);25 use ProjectBuilder::Base qw (pb_conf_read pb_conf_get pb_cms_init pb_mkdir_p pb_system pb_rm_rf pb_get_filters pb_filter_file pb_filter_file_pb pb_filter_file_inplace pb_cms_export pb_cms_log pb_cms_isdiff pb_cms_copy pb_cms_checkout pb_get_date pb_log pb_log_init); 26 26 27 27 my %opts; # CLI Options … … 36 36 my %pbtag; # per package 37 37 my $pbrev; # Global REVISION variable 38 my @date= (localtime->sec(), localtime->min(), localtime->hour(), localtime->mday(), localtime->mon(), localtime->year(), localtime->wday(), localtime->yday(), localtime->isdst());38 my @date=pb_get_date(); 39 39 my $pbdate = strftime("%Y-%m-%d", @date); 40 my $pbdatecvs = strftime("%Y-%m-%d %H:%M:%S", @date);41 40 my $debug = 0; 42 41 my $pbaccount; # Login to use to connect to the VM … … 64 63 $debug = 0 if ($debug == -1); 65 64 } 65 pb_log_init($debug, $LOG); 66 66 67 # Handles test option 67 68 if (defined $opts{'t'}) { … … 106 107 # And get global params 107 108 if (defined $opts{'p'}) { 108 ($ debug,$LOG, $filteredfiles, $supfiles, $defpkgdir, $extpkgdir)109 ($filteredfiles, $supfiles, $defpkgdir, $extpkgdir) 109 110 = pb_env_init($opts{'p'},$pbinit); 110 111 } else { 111 ($ debug,$LOG, $filteredfiles, $supfiles, $defpkgdir, $extpkgdir)112 ($filteredfiles, $supfiles, $defpkgdir, $extpkgdir) 112 113 = pb_env_init(undef,$pbinit); 113 114 } 114 115 115 p rint $LOG "Project: $ENV{'PBPROJ'}\n" if ($debug >= 0);116 p rint $LOG "Action: $action\n" if ($debug >= 0);116 pb_log(0,"Project: $ENV{'PBPROJ'}\n"); 117 pb_log(0,"Action: $action\n"); 117 118 118 119 # Keep those project values to store them at the end each time … … 154 155 } elsif ($action =~ /^clean$/) { 155 156 } else { 156 p rint $LOG "'$action' is not available\n";157 pb_log(0,"\'$action\' is not available\n"); 157 158 pb_syntax(); 158 159 } … … 162 163 my $ptr = pb_get_pkg($defpkgdir,$extpkgdir); 163 164 @pkgs = @$ptr; 164 my $cms=pb_cms_init($ENV{'PBPROJ'});165 my ($scheme,$uri)=pb_cms_init($ENV{'PBPROJ'}); 165 166 166 167 my ($pkgv, $pkgt) = pb_conf_get_if("pkgver","pkgtag"); … … 188 189 189 190 $pbrev = $ENV{'PBREVISION'}; 190 p rint $LOG "\n";191 p rint $LOG "Management of $pbpkg $pbver-$pbtag (rev $pbrev)\n";191 pb_log(2,"\n"); 192 pb_log(2,"Management of $pbpkg $pbver-$pbtag (rev $pbrev)\n"); 192 193 die "Unable to get env var PBDESTDIR" if (not defined $ENV{'PBDESTDIR'}); 193 194 # Clean up dest if necessary. The export will recreate it … … 202 203 my $dir = $defpkgdir->{$pbpkg}; 203 204 $dir = $extpkgdir->{$pbpkg} if (not defined $dir); 204 print "def:".Dumper($defpkgdir)." ext: ".Dumper($extpkgdir)." \n" if ($debug >= 1); 205 pb_cms_export($cms,$pbdatecvs,"$ENV{'PBROOT'}/$dir",$dest); 205 pb_log(2,"def:".Dumper($defpkgdir)." ext: ".Dumper($extpkgdir)." \n"); 206 207 # If it isn't a flat CMS, then we have the choice to export subdir 208 $dir = "$uri/$dir" if ($ENV{'PBREVISION'} ne "flat"); 209 pb_cms_export($scheme,"$dir",$dest); 206 210 207 211 # Get project info on authors and log file … … 216 220 # Extract cms log history and store it 217 221 if ((defined $chglog) && (! -f "$dest/NEWS")) { 218 p rint $LOG "Generating NEWS file from $chglog\n";222 pb_log(2,"Generating NEWS file from $chglog\n"); 219 223 copy($chglog,"$dest/NEWS") || die "Unable to create $dest/NEWS"; 220 224 } 221 pb_cms_log($ cms,"$ENV{'PBROOT'}/$dir",$dest,$chglog,$authors);225 pb_cms_log($scheme,$dir,$dest,$chglog,$authors); 222 226 223 227 my %build; 224 228 225 my ($ptr) = pb_conf_get ("vmlist");229 my ($ptr) = pb_conf_get_if("vmlist","chrootlist"); 226 230 foreach my $d (split(/,/,$ptr->{$ENV{'PBPROJ'}})) { 227 my ($name,$ver ) = split(/_/,$d);228 chomp($ ver);231 my ($name,$ver,$arch) = split(/-/,$d); 232 chomp($arch); 229 233 my ($ddir, $dver, $dfam, $dtype, $pbsuf) = pb_distro_init($name,$ver); 230 p rint $LOG "DEBUG: distro tuple: ".Dumper($ddir, $dver, $dfam, $dtype, $pbsuf)."\n" if ($debug >= 1);231 p rint $LOG "DEBUG Filtering PBDATE => $pbdate, PBTAG => $pbtag, PBVER => $pbver\n" if ($debug >= 1);234 pb_log(2,"DEBUG: distro tuple: ".Dumper($ddir, $dver, $dfam, $dtype, $pbsuf)."\n"); 235 pb_log(2,"DEBUG Filtering PBDATE => $pbdate, PBTAG => $pbtag, PBVER => $pbver\n"); 232 236 233 237 # Filter build files from the less precise up to the most with overloading … … 236 240 # Find all build files first relatively to PBROOT 237 241 # Find also all specific files referenced in the .pb conf file 238 my %bfiles ;239 my %pkgfiles ;240 p rint $LOG "DEBUG dir: $ENV{'PBCONF'}/$pbpkg\n" if ($debug >= 1);242 my %bfiles = {}; 243 my %pkgfiles = {}; 244 pb_log(2,"DEBUG dir: $ENV{'PBCONF'}/$pbpkg\n"); 241 245 $build{"$ddir-$dver"} = "yes"; 242 if (-d "$ENV{'PBCONF'}/$pbpkg/$dtype") { 243 opendir(BDIR,"$ENV{'PBCONF'}/$pbpkg/$dtype") || die "Unable to open dir $ENV{'PBCONF'}/$pbpkg/$dtype: $!"; 244 foreach my $f (readdir(BDIR)) { 245 next if ($f =~ /^\./); 246 $bfiles{$f} = "$ENV{'PBCONF'}/$pbpkg/$dtype/$f"; 247 $bfiles{$f} =~ s~$ENV{'PBROOT'}~~; 248 if (defined $supfiles->{$pbpkg}) { 249 $pkgfiles{$f} = "$ENV{'PBCONF'}/$pbpkg/$dtype/$f" if ($f =~ /$supfiles->{$pbpkg}/); 250 } 251 } 252 closedir(BDIR); 253 } elsif (-d "$ENV{'PBCONF'}/$pbpkg/$dfam") { 254 opendir(BDIR,"$ENV{'PBCONF'}/$pbpkg/$dfam") || die "Unable to open dir $ENV{'PBCONF'}/$pbpkg/$dfam: $!"; 255 foreach my $f (readdir(BDIR)) { 256 next if ($f =~ /^\./); 257 $bfiles{$f} = "$ENV{'PBCONF'}/$pbpkg/$dfam/$f"; 258 $bfiles{$f} =~ s~$ENV{'PBROOT'}~~; 259 if (defined $supfiles->{$pbpkg}) { 260 $pkgfiles{$f} = "$ENV{'PBCONF'}/$pbpkg/$dfam/$f" if ($f =~ /$supfiles->{$pbpkg}/); 261 } 262 } 263 closedir(BDIR); 264 } elsif (-d "$ENV{'PBCONF'}/$pbpkg/$ddir") { 265 opendir(BDIR,"$ENV{'PBCONF'}/$pbpkg/$ddir") || die "Unable to open dir $ENV{'PBCONF'}/$pbpkg/$ddir: $!"; 266 foreach my $f (readdir(BDIR)) { 267 next if ($f =~ /^\./); 268 $bfiles{$f} = "$ENV{'PBCONF'}/$pbpkg/$ddir/$f"; 269 $bfiles{$f} =~ s~$ENV{'PBROOT'}~~; 270 if (defined $supfiles->{$pbpkg}) { 271 $pkgfiles{$f} = "$ENV{'PBCONF'}/$pbpkg/$ddir/$f" if ($f =~ /$supfiles->{$pbpkg}/); 272 } 273 } 274 closedir(BDIR); 275 } elsif (-d "$ENV{'PBCONF'}/$pbpkg/$ddir-$dver") { 276 opendir(BDIR,"$ENV{'PBCONF'}/$pbpkg/$ddir-$dver") || die "Unable to open dir $ENV{'PBCONF'}/$pbpkg/$ddir-$dver: $!"; 277 foreach my $f (readdir(BDIR)) { 278 next if ($f =~ /^\./); 279 $bfiles{$f} = "$ENV{'PBCONF'}/$pbpkg/$ddir-$dver/$f"; 280 $bfiles{$f} =~ s~$ENV{'PBROOT'}~~; 281 if (defined $supfiles->{$pbpkg}) { 282 $pkgfiles{$f} = "$ENV{'PBCONF'}/$pbpkg/$ddir-$dver/$f" if ($f =~ /$supfiles->{$pbpkg}/); 283 } 284 } 285 closedir(BDIR); 246 247 if (-d "$ENV{'PBROOT'}/$pbpkg/$dtype") { 248 pb_list_bfiles("$ENV{'PBROOT'}/$pbpkg/$dtype",$pbpkg,\%bfiles,\%pkgfiles,$supfiles); 249 } elsif (-d "$ENV{'PBROOT'}/$pbpkg/$dfam") { 250 pb_list_bfiles("$ENV{'PBROOT'}/$pbpkg/$dfam",$pbpkg,\%bfiles,\%pkgfiles,$supfiles); 251 } elsif (-d "$ENV{'PBROOT'}/$pbpkg/$ddir") { 252 pb_list_bfiles("$ENV{'PBROOT'}/$pbpkg/$ddir",$pbpkg,\%bfiles,\%pkgfiles,$supfiles); 253 } elsif (-d "$ENV{'PBROOT'}/$pbpkg/$ddir-$dver") { 254 pb_list_bfiles("$ENV{'PBROOT'}/$pbpkg/$ddir-$dver",$pbpkg,\%bfiles,\%pkgfiles,$supfiles); 286 255 } else { 287 256 $build{"$ddir-$dver"} = "no"; 288 257 next; 289 258 } 290 p rint $LOG "DEBUG bfiles: ".Dumper(\%bfiles)."\n" if ($debug >= 1);259 pb_log(2,"DEBUG bfiles: ".Dumper(\%bfiles)."\n"); 291 260 292 261 # Get all filters to apply … … 301 270 } 302 271 } 303 if ($debug >= 0) { 304 my @found; 305 my @notfound; 306 foreach my $b (keys %build) { 307 push @found,$b if ($build{$b} =~ /yes/); 308 push @notfound,$b if ($build{$b} =~ /no/); 309 } 310 print $LOG "Build files generated for ".join(',',@found)."\n"; 311 print $LOG "No Build files found for ".join(',',@notfound)."\n" if (@notfound); 312 } 272 my @found; 273 my @notfound; 274 foreach my $b (keys %build) { 275 push @found,$b if ($build{$b} =~ /yes/); 276 push @notfound,$b if ($build{$b} =~ /no/); 277 } 278 pb_log(0,"Build files generated for ".join(',',@found)."\n"); 279 pb_log(0,"No Build files found for ".join(',',@notfound)."\n") if (@notfound); 313 280 # Get the generic filter (all.pbf) and 314 281 # apply those to the non-build files including those … … 321 288 if (defined $filteredfiles->{$pbpkg}) { 322 289 foreach my $f (split(/,/,$filteredfiles->{$pbpkg})) { 323 pb_filter_file ("$ENV{'PBROOT'}/$dir/$f",$ptr,"$dest/$f",$ENV{'PBPROJ'},$pbpkg,$pbver,$pbtag,$pbrev,$pbdate,$pbpackager);290 pb_filter_file_inplace($ptr,"$dest/$f",$ENV{'PBPROJ'},$pbpkg,$pbver,$pbtag,$pbrev,$pbdate,$pbpackager); 324 291 $liste = "$f $liste"; 325 292 } 326 293 } 327 p rint $LOG "Files ".$liste."have been filtered\n";294 pb_log(2,"Files ".$liste."have been filtered\n"); 328 295 329 296 # Prepare the dest directory for archive 330 if (-x "$ENV{'PB CONF'}/$pbpkg/pbinit") {331 pb_filter_file("$ENV{'PB CONF'}/$pbpkg/pbinit",$ptr,"$ENV{'PBTMP'}/pbinit",$ENV{'PBPROJ'},$pbpkg,$pbver,$pbtag,$pbrev,$pbdate,$pbpackager);297 if (-x "$ENV{'PBROOT'}/$pbpkg/pbinit") { 298 pb_filter_file("$ENV{'PBROOT'}/$pbpkg/pbinit",$ptr,"$ENV{'PBTMP'}/pbinit",$ENV{'PBPROJ'},$pbpkg,$pbver,$pbtag,$pbrev,$pbdate,$pbpackager); 332 299 chmod 0755,"$ENV{'PBTMP'}/pbinit"; 333 pb_system("cd $dest ; $ENV{'PBTMP'}/pbinit","Executing init script from $ENV{'PB CONF'}/$pbpkg/pbinit");300 pb_system("cd $dest ; $ENV{'PBTMP'}/pbinit","Executing init script from $ENV{'PBROOT'}/$pbpkg/pbinit"); 334 301 } 335 302 … … 338 305 # Possibility to look at PBSRC to guess more the filename 339 306 pb_system("tar cfz $pbpkg-$pbver.tar.gz $pbpkg-$pbver","Creating $pbpkg tar files compressed"); 340 p rint $LOG "Under $ENV{'PBDESTDIR'}/$pbpkg-$pbver.tar.gz\n" if ($debug >= 0);307 pb_log(2,"Under $ENV{'PBDESTDIR'}/$pbpkg-$pbver.tar.gz\n"); 341 308 342 309 # Keep track of what is generated by default … … 354 321 } 355 322 356 p rint $LOG "DEBUG pkg: ".Dumper($pkg)."\n" if ($debug >= 1);323 pb_log(2,"DEBUG pkg: ".Dumper($pkg)."\n"); 357 324 open(PKG,"> $ENV{'PBDESTDIR'}/$pbprojver-$pbprojtag.pb") || die "Unable to create $ENV{'PBDESTDIR'}/$pbprojver-$pbprojtag.pb"; 358 325 foreach my $p (keys %$pkg) { … … 374 341 # Get the running distro to build on 375 342 my ($ddir, $dver, $dfam, $dtype, $pbsuf) = pb_distro_init(); 376 p rint $LOG "DEBUG: distro tuple: ".join(',',($ddir, $dver, $dfam, $dtype, $pbsuf))."\n" if ($debug >= 1);343 pb_log(2,"DEBUG: distro tuple: ".join(',',($ddir, $dver, $dfam, $dtype, $pbsuf))."\n"); 377 344 378 345 # Get content saved in cms2build … … 392 359 393 360 my $src="$ENV{'PBDESTDIR'}/$pbpkg-$pbver.tar.gz"; 394 p rint $LOG "Source file: $src\n" if ($debug >= 0);395 396 p rint $LOG "Working directory: $ENV{'PBBUILDDIR'}\n" if ($debug >= 0);361 pb_log(2,"Source file: $src\n"); 362 363 pb_log(2,"Working directory: $ENV{'PBBUILDDIR'}\n"); 397 364 if ($dtype eq "rpm") { 398 365 foreach my $d ('RPMS','SRPMS','SPECS','SOURCES','BUILD') { … … 402 369 } 403 370 371 # Remove in case a previous link/file was there 404 372 unlink "$ENV{'PBBUILDDIR'}/SOURCES/".basename($src); 405 373 symlink "$src","$ENV{'PBBUILDDIR'}/SOURCES/".basename($src) || die "Unable to symlink $src in $ENV{'PBBUILDDIR'}/SOURCES"; … … 408 376 @specfile = pb_extract_build_files($src,"$pbpkg-$pbver/pbconf/$ddir-$dver/","$ENV{'PBBUILDDIR'}/SPECS"); 409 377 410 p rint $LOG "specfile: ".Dumper(\@specfile)."\n" if ($debug >= 1);378 pb_log(2,"specfile: ".Dumper(\@specfile)."\n"); 411 379 # set LANGUAGE to check for correct log messages 412 380 $ENV{'LANGUAGE'}="C"; 413 #system("ls -R $ENV{'PBBUILDDIR'}") if ($debug >= 1);414 381 foreach my $f (@specfile) { 415 382 if ($f =~ /\.spec$/) { … … 432 399 pb_system("dpkg-buildpackage -us -uc -rfakeroot","Building package"); 433 400 $made="$made $pbpkg"."_*.deb $pbpkg"."_*.dsc $pbpkg"."_*.tar.gz"; 401 if (-f "/usr/bin/lintian") { 402 pb_system("lintian $made","Checking validity of debs with lintian"); 403 } 434 404 } elsif ($dtype eq "ebuild") { 435 405 my @ebuildfile; … … 528 498 } 529 499 my ($ddir, $dver, $dfam, $dtype, $pbsuf) = pb_distro_init($odir,$over); 530 p rint $LOG "DEBUG: distro tuple: ".join(',',($ddir, $dver, $dfam, $dtype, $pbsuf))."\n" if ($debug >= 1);500 pb_log(2,"DEBUG: distro tuple: ".join(',',($ddir, $dver, $dfam, $dtype, $pbsuf))."\n"); 531 501 532 502 # Get content saved in cms2build … … 575 545 } 576 546 577 p rint $LOG "Sources handled ($cmt): $src\n" if ($debug >= 0);547 pb_log(2,"Sources handled ($cmt): $src\n"); 578 548 my ($sshhost,$sshlogin,$sshdir,$sshport,$vmtmout,$testver) = pb_conf_get($host,$login,$dir,$port,$tmout,"testver"); 579 549 my $mac = "$sshlogin->{$ENV{'PBPROJ'}}\@$sshhost->{$ENV{'PBPROJ'}}"; … … 723 693 } 724 694 if (! -f "$vem") { 725 p rint "Unable to find VM $vem\n";695 pb_log(0,"Unable to find VM $vem\n"); 726 696 } else { 727 697 pb_system("$cmd &","Launching the VM $vem"); … … 730 700 } 731 701 } else { 732 p rint "Found an existing VM $vem (pid $veexist)\n";702 pb_log(0,"Found an existing VM $vem (pid $veexist)\n"); 733 703 } 734 704 return($veexist,$vepid); … … 798 768 } 799 769 if (! -f "$vmm") { 800 p rint "Unable to find VM $vmm\n";770 pb_log(0,"Unable to find VM $vmm\n"); 801 771 } else { 802 772 pb_system("$cmd &","Launching the VM $vmm"); … … 805 775 } 806 776 } else { 807 p rint "Found an existing VM $vmm (pid $vmexist)\n";777 pb_log(0,"Found an existing VM $vmm (pid $vmexist)\n"); 808 778 } 809 779 return($vmexist,$vmpid); … … 864 834 865 835 die "-V Version parameter needed" if ((not defined $newver) || ($newver eq "")); 866 my $ cms=pb_cms_init($ENV{'PBPROJ'});867 if ($ cms->{$ENV{'PBPROJ'}}ne "svn") {836 my $scheme=pb_cms_init($ENV{'PBPROJ'}); 837 if ($scheme ne "svn") { 868 838 die "Only SVN is supported at the moment"; 869 839 } 870 my $res = pb_cms_isdiff($ cms);840 my $res = pb_cms_isdiff($scheme); 871 841 die "You need to have no differences before creating a new version" if ($res != 0); 872 my $cmsurl = pb_cms_getinfo($ cms,$ENV{'PBROOT'});842 my $cmsurl = pb_cms_getinfo($scheme,$ENV{'PBROOT'},"URL:"); 873 843 my $newurl = dirname($cmsurl)."/$newver"; 874 pb_cms_copy($ cms,$cmsurl,$newurl);875 pb_cms_checkout($ cms,$newurl,"$ENV{'PBROOT'}/../$newver");844 pb_cms_copy($scheme,$cmsurl,$newurl); 845 pb_cms_checkout($scheme,$newurl,"$ENV{'PBROOT'}/../$newver"); 876 846 my $oldver=basename($cmsurl); 877 847 open(FILE,"$ENV{'PBROOT'}/../$newver/pbconf/$ENV{'PBPROJ'}.pb") || die "Unable to open $ENV{'PBROOT'}/../$newver/pbconf/$ENV{'PBPROJ'}.pb"; … … 884 854 close(OUT); 885 855 rename("$ENV{'PBROOT'}/../$newver/pbconf/$ENV{'PBPROJ'}.pb.new","$ENV{'PBROOT'}/../$newver/pbconf/$ENV{'PBPROJ'}.pb"); 886 pb_cms_checkin($ cms,"$ENV{'PBROOT'}/../$newver");856 pb_cms_checkin($scheme,"$ENV{'PBROOT'}/../$newver"); 887 857 } 888 858 … … 905 875 @pkgs = @ARGV; 906 876 } 907 p rint $LOG "Packages: ".join(',',@pkgs)."\n" if ($debug >= 0);877 pb_log(2,"Packages: ".join(',',@pkgs)."\n"); 908 878 return(\@pkgs); 909 879 } … … 928 898 $all = 1; 929 899 } 930 p rint $LOG "VMs: $ENV{'PBVM'}\n";900 pb_log(2,"VMs: $ENV{'PBVM'}\n"); 931 901 @vm = split(/,/,$ENV{'PBVM'}); 932 902 return(\@vm,$all); … … 969 939 next if ($f =~ /^\./); 970 940 move("$dir/$f","$ddir") || die "Unable to move $dir/$f to $ddir"; 971 p rint $LOG "mv $dir/$f $ddir\n" if ($debug >= 1);941 pb_log(2,"mv $dir/$f $ddir\n"); 972 942 push @files,"$ddir/$f"; 973 943 } … … 978 948 } 979 949 950 sub pb_list_bfiles { 951 952 my $dir = shift; 953 my $pbpkg = shift; 954 my $bfiles = shift; 955 my $pkgfiles = shift; 956 my $supfiles = shift; 957 958 opendir(BDIR,"$dir") || die "Unable to open dir $dir: $!"; 959 foreach my $f (readdir(BDIR)) { 960 next if ($f =~ /^\./); 961 $bfiles->{$f} = "$dir/$f"; 962 $bfiles->{$f} =~ s~$ENV{'PBROOT'}~~; 963 if (defined $supfiles->{$pbpkg}) { 964 $pkgfiles->{$f} = "$dir/$f" if ($f =~ /$supfiles->{$pbpkg}/); 965 } 966 } 967 closedir(BDIR); 968 } 969 980 970 sub pb_syntax { 981 971 -
devel/pb/lib/ProjectBuilder/Base.pm
r314 r315 10 10 use File::Basename; 11 11 use File::Path; 12 use File::Copy; 12 13 use File::Temp qw /tempdir/; 13 14 use Data::Dumper; 15 use POSIX qw(strftime); 14 16 15 17 use ProjectBuilder::Changelog qw (pb_changelog); 16 18 17 19 $ENV{'PBETC'} = "$ENV{'HOME'}/.pbrc"; 20 21 my $debug = 0; 22 my $LOG = \*STDOUT; 18 23 19 24 sub pb_env_init { … … 24 29 my $tag; 25 30 26 # For the moment not dynamic27 my $debug = 0; # Debug level28 my $LOG = *STDOUT; # Where to log29 30 31 # 31 32 # Check project name … … 44 45 # 45 46 my ($pbconf) = pb_conf_read("$ENV{'PBETC'}","pbconf"); 46 p rint "DEBUG pbconf: ".Dumper($pbconf)."\n" if ($debug >= 1);47 pb_log(2,"DEBUG pbconf: ".Dumper($pbconf)."\n"); 47 48 48 49 my %pbconf = %$pbconf; … … 50 51 # Take the first as the default project 51 52 $proj = (keys %pbconf)[0]; 52 if ( ($debug >= 0) and (defined $proj)) {53 p rint $LOG "WARNING: using $proj as default project as none has been specified\n"54 p rint $LOG "Please create a pbconf reference for project $proj in $ENV{'PBETC'}\nif you want to use another project\n";53 if (defined $proj) { 54 pb_log(2,"WARNING: using $proj as default project as none has been specified\n"); 55 pb_log(2,"Please create a pbconf reference for project $proj in $ENV{'PBETC'}\nif you want to use another project\n"); 55 56 } 56 57 } … … 69 70 # Tree will look like this: 70 71 # 71 # maint pbdir dev dir (optional)72 # | |73 # ------------------------ --------------------74 # | | | |75 # pbproj1 pbproj2 pbproj1 pbproj276 # | |77 # --------------------------------------------- ----------78 # * * | | | | * *79 # 1.0 dev pbconf ... build delivery 1.0 dev80 # | | |81 # ------ pbrc 72 # maint pbdir PBDIR dev dir (optional) PBDEVDIR 73 # | | 74 # ------------------------ -------------------- 75 # | | | | 76 # pbproj1 pbproj2 PBPROJ pbproj1 pbproj2 PBDEVPROJ 77 # | | 78 # --------------------------------------------- ---------- 79 # * * | | | | * * 80 # 1.0 dev pbconf ... build delivery PBCONF 1.0 dev PBDEVROOT 81 # | | PBDESTDIR 82 # ------ pbrc PBBUILDDIR 82 83 # | | 83 # 1.0 dev 84 # 1.0 dev PBROOT 84 85 # | 85 86 # ---------------------------------- … … 101 102 if (not defined $ENV{'PBDIR'}) { 102 103 if (not defined ($pbdir{$ENV{'PBPROJ'}})) { 103 p rint $LOG "WARNING: no pbdir defined, using /var/cache\n";104 p rint $LOG "Please create a pbdir reference for project $ENV{'PBPROJ'} in $ENV{'PBETC'}\nif you want to use another directory\n";104 pb_log(2,"WARNING: no pbdir defined, using /var/cache\n"); 105 pb_log(2,"Please create a pbdir reference for project $ENV{'PBPROJ'} in $ENV{'PBETC'}\nif you want to use another directory\n"); 105 106 } 106 107 # That's always the environment variable that will be used … … 157 158 158 159 my ($scheme, $account, $host, $port, $path) = pb_get_uri($pbconf{$ENV{'PBPROJ'}}); 159 my $cms = { $ENV{'PBPROJ'} => $scheme };160 160 161 161 if ((not -d "$ENV{'PBCONF'}") || (defined $pbinit)) { 162 pb_cms_checkout($ cms,$pbconf{$ENV{'PBPROJ'}},$ENV{'PBCONF'});162 pb_cms_checkout($scheme,$pbconf{$ENV{'PBPROJ'}},$ENV{'PBCONF'}); 163 163 } else { 164 my $cmsurl = pb_cms_getinfo($ cms,$ENV{'PBCONF'});164 my $cmsurl = pb_cms_getinfo($scheme,$ENV{'PBCONF'},"URL:"); 165 165 if ($cmsurl !~ /^$scheme/) { 166 166 pb_rm_rf("$ENV{'PBCONF'}"); 167 pb_cms_checkout($ cms,$pbconf{$ENV{'PBPROJ'}},$ENV{'PBCONF'});167 pb_cms_checkout($scheme,$pbconf{$ENV{'PBPROJ'}},$ENV{'PBCONF'}); 168 168 } elsif ($cmsurl ne $pbconf{$ENV{'PBPROJ'}}) { 169 169 # The local content doesn't correpond to the repository 170 p rint $LOG "ERROR: Inconsistency detected:\n";171 p rint $LOG "* $ENV{'PBCONF'} refers to $cmsurl but\n";172 p rint $LOG "* $ENV{'PBETC'} refers to $pbconf{$ENV{'PBPROJ'}}\n";170 pb_log(2,"ERROR: Inconsistency detected:\n"); 171 pb_log(2,"* $ENV{'PBCONF'} refers to $cmsurl but\n"); 172 pb_log(2,"* $ENV{'PBETC'} refers to $pbconf{$ENV{'PBPROJ'}}\n"); 173 173 die "Project $ENV{'PBPROJ'} is not Project-Builder compliant."; 174 174 } else { … … 181 181 if (! -f ("$ENV{'PBDESTDIR'}/pbrc")) { 182 182 opendir(DIR,$ENV{'PBCONF'}) || die "Unable to open directory $ENV{'PBCONF'}: $!"; 183 my maxmtime = 0;183 my $maxmtime = 0; 184 184 foreach my $d (readdir(DIR)) { 185 185 next if ($d =~ /^\./); … … 194 194 } 195 195 closedir(DIR); 196 p rint $LOG "WARNING: no pbroot defined, using $ENV{'PBROOT'}\n";197 p rint $LOG "Please -r release if you want to use another release\n";196 pb_log(2,"WARNING: no pbroot defined, using $ENV{'PBROOT'}\n"); 197 pb_log(2,"Please -r release if you want to use another release\n"); 198 198 } else { 199 199 my ($pbroot) = pb_conf_read_if("$ENV{'PBDESTDIR'}/pbrc","pbroot"); 200 200 # That's always the environment variable that will be used 201 $ENV{'PBROOT'} = $pbroot {$ENV{'PBPROJ'}};201 $ENV{'PBROOT'} = $pbroot->{$ENV{'PBPROJ'}}; 202 202 } 203 203 } else { 204 204 # transform in full path if relative 205 $ENV{'PBROOT'} = "$ENV{'PBCONF'}/$ENV{'PBROOT'}" if ($ENV{'PBROOT'} !~ |/|);205 $ENV{'PBROOT'} = "$ENV{'PBCONF'}/$ENV{'PBROOT'}" if ($ENV{'PBROOT'} !~ /\//); 206 206 } 207 207 … … 220 220 # Project version and tag (optional) 221 221 my ($extpkgdir, $version, $filteredfiles, $supfiles, $pkgv, $pkgt) = pb_conf_get_if("extpkgdir","version","filteredfiles","supfiles","projver","projtag"); 222 p rint "DEBUG: defpkgdir: ".Dumper($defpkgdir)."\n" if ($debug >= 1);223 p rint "DEBUG: extpkgdir: ".Dumper($extpkgdir)."\n" if ($debug >= 1);224 p rint "DEBUG: version: ".Dumper($version)."\n" if ($debug >= 1);225 p rint "DEBUG: filteredfiles: ".Dumper($filteredfiles)."\n" if ($debug >= 1);226 p rint "DEBUG: supfiles: ".Dumper($supfiles)."\n" if ($debug >= 1);222 pb_log(2,"DEBUG: defpkgdir: ".Dumper($defpkgdir)."\n"); 223 pb_log(2,"DEBUG: extpkgdir: ".Dumper($extpkgdir)."\n"); 224 pb_log(2,"DEBUG: version: ".Dumper($version)."\n"); 225 pb_log(2,"DEBUG: filteredfiles: ".Dumper($filteredfiles)."\n"); 226 pb_log(2,"DEBUG: supfiles: ".Dumper($supfiles)."\n"); 227 227 # Global 228 228 %defpkgdir = %$defpkgdir; … … 718 718 pb_mkdir_p("$ENV{'PBROOT'}/pkg1/pbfilter") || die "Unable to create $ENV{'PBROOT'}/pkg1/pbfilter"; 719 719 720 p rint "\nDo not to forget to commit the pbconf directory in your CMS if needed\n";721 p rint "After having renamed the pkg1 directory to your package's name \n\n";720 pb_log(2,"\nDo not to forget to commit the pbconf directory in your CMS if needed\n"); 721 pb_log(2,"After having renamed the pkg1 directory to your package's name \n\n"); 722 722 } else { 723 723 die "Unable to open $ENV{'PBROOT'}/$ENV{'PBPROJ'}.pb"; … … 725 725 } 726 726 umask 0022; 727 return( $debug,$LOG,\%filteredfiles, \%supfiles, \%defpkgdir, \%extpkgdir);727 return(\%filteredfiles, \%supfiles, \%defpkgdir, \%extpkgdir); 728 728 } 729 729 … … 748 748 my $cmt=shift || $cmd; 749 749 750 p rint "$cmt... ";750 pb_log(2,"$cmt... "); 751 751 #system("$cmd 2>&1 > $ENV{'PBTMP'}/system.log"); 752 752 system($cmd); 753 753 if ($? == -1) { 754 p rint "failed to execute ($cmd) : $!\n";754 pb_log(2,"failed to execute ($cmd) : $!\n"); 755 755 pb_display_file("$ENV{'PBTMP'}/system.log"); 756 756 } elsif ($? & 127) { 757 p rintf "child ($cmd) died with signal %d, %s coredump\n", ($? & 127), ($? & 128) ? 'with' : 'without';757 pb_log(2, "child ($cmd) died with signal ".($? & 127).", ".($? & 128) ? 'with' : 'without'." coredump\n"); 758 758 pb_display_file("$ENV{'PBTMP'}/system.log"); 759 759 } elsif ($? == 0) { 760 p rint "OK\n";760 pb_log(2,"OK\n"); 761 761 } else { 762 p rintf "child ($cmd) exited with value %d\n", $? >> 8;762 pb_log(2, "child ($cmd) exited with value ".($? >> 8)."\n"); 763 763 pb_display_file("$ENV{'PBTMP'}/system.log"); 764 764 } … … 785 785 my @return = pb_conf_get_if(@param); 786 786 787 die "No params found for $ENV{'PBPROJ'}" if (not defined@return);787 die "No params found for $ENV{'PBPROJ'}" if (not @return); 788 788 789 789 foreach my $i (0..$#param) { … … 807 807 my $p2; 808 808 809 #print "DEBUG: param1: ".Dumper(@ptr1)."\n"; # if ($debug >= 1);810 #print "DEBUG: param2: ".Dumper(@ptr2)."\n"; # if ($debug >= 1);809 pb_log(2,"DEBUG: param1: ".Dumper(@ptr1)."\n"); 810 pb_log(2,"DEBUG: param2: ".Dumper(@ptr2)."\n"); 811 811 812 812 foreach my $i (0..$#param) { … … 842 842 } 843 843 $ptr1[$i] = $p1; 844 #print "DEBUG: param ptr1: ".Dumper(@ptr1)."\n"; # if ($debug >= 1);844 pb_log(2,"DEBUG: param ptr1: ".Dumper(@ptr1)."\n"); 845 845 } 846 846 return(@ptr1); … … 870 870 my %h; 871 871 872 my $debug = 0;873 874 872 open(CONF,$conffile) || die "Unable to open $conffile"; 875 873 while(<CONF>) { 876 874 if (/^\s*([A-z0-9-_]+)\s+([[A-z0-9-_]+)\s*=\s*(.+)$/) { 877 p rint "DEBUG: 1:$1 2:$2 3:$3\n" if ($debug >= 1);875 pb_log(2,"DEBUG: 1:$1 2:$2 3:$3\n"); 878 876 $h{$1}{$2}=$3; 879 877 } … … 884 882 push @ptr,$h{$param}; 885 883 } 886 p rint "DEBUG: h:".Dumper(%h)." param:".Dumper(@param)." ptr:".Dumper(@ptr)."\n" if ($debug >= 1);884 pb_log(2,"DEBUG: h:".Dumper(%h)." param:".Dumper(@param)." ptr:".Dumper(@ptr)."\n"); 887 885 return(@ptr); 888 886 } … … 898 896 $uri =~ m|(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?|; 899 897 my ($account,$host,$port) = $authority =~ m|(?:([^\@]+)\@)?([^:]+)(:(?:[0-9]+))?|; 900 p rint "DEBUG: scheme:$scheme ac:$account host:$host port:$port path:$path\n" if ($debug >= 1);898 pb_log(2,"DEBUG: scheme:$scheme ac:$account host:$host port:$port path:$path\n"); 901 899 return($scheme, $account, $host, $port, $path); 902 900 } … … 907 905 908 906 my $proj = shift || undef; 909 my $ret; 910 911 my ($cms) = pb_conf_get("cms"); 912 913 if ($cms->{$proj} eq "svn") { 914 $ENV{'PBREVISION'}=`(cd "$ENV{'PBROOT'}" ; svnversion .)`; 915 chomp($ENV{'PBREVISION'}); 907 908 # Use the project URI 909 my ($uri) = pb_conf_get("pburl"); 910 911 # Extract values from that URI 912 my ($scheme, $account, $host, $port, $path) = pb_get_uri($uri->{$ENV{'PBPROJ'}}); 913 914 if ($scheme =~ /^svn/) { 915 $ENV{'PBREVISION'}= pb_cms_getinfo($scheme,$uri->{$ENV{'PBPROJ'}},"Revision:"); 916 #$ENV{'PBREVISION'}=`(cd "$ENV{'PBDEVDIR'}" ; svnversion .)`; 916 917 $ENV{'PBCMSLOGFILE'}="svn.log"; 917 } elsif ( $cms->{$proj} eq "flat") {918 } elsif (($scheme eq "file") || ($scheme eq "ftp") || ($scheme eq "http")) { 918 919 $ENV{'PBREVISION'}="flat"; 919 920 $ENV{'PBCMSLOGFILE'}="flat.log"; 920 } elsif ($ cms->{$proj}eq "cvs") {921 } elsif ($scheme eq "cvs") { 921 922 # Way too slow 922 923 #$ENV{'PBREVISION'}=`(cd "$ENV{'PBROOT'}" ; cvs rannotate -f . 2>&1 | awk '{print \$1}' | grep -E '^[0-9]' | cut -d. -f2 |sort -nu | tail -1)`; … … 930 931 $ENV{'CVS_RSH'} = $cvsrsh->{$proj} if (defined $cvsrsh->{$proj}); 931 932 } else { 932 die "cms $cms->{$proj} unknown"; 933 } 934 return($cms); 933 die "cms $scheme unknown"; 934 } 935 936 # 937 #if (not defined $scheme) { 938 # We're an upstream guy 939 # Try to make it easy for us 940 #pb_log(2,"WARNING: Assuming a local project under $ENV{'PBDIR'}/$ENV{'PBPROJ'}:\n"); 941 #pb_log(2,"If not, pleaase setup a pbproj entry in $ENV{'PBROOT'}/$ENV{'PBPROJ'}.pb\n"); 942 #return(""); 943 #} 944 945 return($scheme,$uri->{$ENV{'PBPROJ'}}); 946 } 947 948 sub pb_get_date { 949 950 return(localtime->sec(), localtime->min(), localtime->hour(), localtime->mday(), localtime->mon(), localtime->year(), localtime->wday(), localtime->yday(), localtime->isdst()); 935 951 } 936 952 937 953 sub pb_cms_export { 938 my $cms = shift; 939 my $ pbdate = shift || undef;954 955 my $scheme = shift; 940 956 my $source = shift; 941 957 my $destdir = shift; … … 943 959 my $tmp1; 944 960 945 if ($cms->{$ENV{'PBPROJ'}} eq "svn") { 961 my @date = pb_get_date(); 962 963 if ($scheme eq "svn") { 946 964 if (-d $source) { 947 965 $tmp = $destdir; … … 950 968 } 951 969 pb_system("svn export $source $tmp","Exporting $source from SVN to $tmp"); 952 } elsif ($ cms->{$ENV{'PBPROJ'}}eq "flat") {970 } elsif ($scheme eq "flat") { 953 971 if (-d $source) { 954 972 $tmp = $destdir; … … 957 975 } 958 976 pb_system("cp -a $source $tmp","Exporting $source from DIR to $tmp"); 959 } elsif ($ cms->{$ENV{'PBPROJ'}}eq "cvs") {977 } elsif ($scheme eq "cvs") { 960 978 my $dir=dirname($destdir); 961 979 my $base=basename($destdir); … … 970 988 # CVS needs a relative path ! 971 989 my ($cvsroot) = pb_conf_get("cvsroot"); 990 my $pbdate = strftime("%Y-%m-%d %H:%M:%S", @date); 972 991 pb_system("cd $dir ; cvs -d $cvsroot->{$ENV{'PBPROJ'}} export -D \"$pbdate\" -d $base $tmp1","Exporting $source from CVS to $destdir"); 973 992 } else { 974 die "cms $ cms->{$ENV{'PBPROJ'}}unknown";993 die "cms $scheme unknown"; 975 994 } 976 995 } … … 981 1000 my $authors=shift; 982 1001 my $dest=shift; 983 my $ cms=shift;1002 my $scheme=shift; 984 1003 985 1004 return if ($authors eq "/dev/null"); … … 992 1011 chomp($gcos); 993 1012 print DAUTH "$gcos"; 994 if (defined $ cms) {995 print DAUTH " ($nick under $ cms)\n";1013 if (defined $scheme) { 1014 print DAUTH " ($nick under $scheme)\n"; 996 1015 } else { 997 1016 print DAUTH "\n"; … … 1003 1022 1004 1023 sub pb_cms_log { 1005 my $ cms= shift;1024 my $scheme = shift; 1006 1025 my $pkgdir = shift; 1007 1026 my $dest = shift; … … 1009 1028 my $authors = shift; 1010 1029 1011 pb_create_authors($authors,$dest,$ cms->{$ENV{'PBPROJ'}});1012 1013 if ($ cms->{$ENV{'PBPROJ'}}eq "svn") {1030 pb_create_authors($authors,$dest,$scheme); 1031 1032 if ($scheme eq "svn") { 1014 1033 if (! -f "$dest/ChangeLog") { 1015 1034 if (-x "/usr/bin/svn2cl") { 1016 pb_system("/usr/bin/svn2cl --group-by-day --authors=$authors -i -o $dest/ChangeLog $pkgdir","Generating ChangeLog from SVN ");1035 pb_system("/usr/bin/svn2cl --group-by-day --authors=$authors -i -o $dest/ChangeLog $pkgdir","Generating ChangeLog from SVN with svn2cl"); 1017 1036 } else { 1018 1037 # To be written from pbcl … … 1020 1039 } 1021 1040 } 1022 } elsif ($ cms->{$ENV{'PBPROJ'}}eq "flat") {1041 } elsif ($scheme eq "flat") { 1023 1042 if (! -f "$dest/ChangeLog") { 1024 1043 pb_system("echo ChangeLog for $pkgdir > $dest/ChangeLog","Empty ChangeLog file created"); 1025 1044 } 1026 } elsif ($ cms->{$ENV{'PBPROJ'}}eq "cvs") {1045 } elsif ($scheme eq "cvs") { 1027 1046 my $tmp=basename($pkgdir); 1028 1047 # CVS needs a relative path ! 1029 1048 if (! -f "$dest/ChangeLog") { 1030 1049 if (-x "/usr/bin/cvs2cl") { 1031 pb_system("/usr/bin/cvs2cl --group-by-day -U $authors -f $dest/ChangeLog $pkgdir","Generating ChangeLog from CVS ");1050 pb_system("/usr/bin/cvs2cl --group-by-day -U $authors -f $dest/ChangeLog $pkgdir","Generating ChangeLog from CVS with cvs2cl"); 1032 1051 } else { 1033 1052 # To be written from pbcl … … 1036 1055 } 1037 1056 } else { 1038 die "cms $ cms->{$ENV{'PBPROJ'}}unknown";1057 die "cms $scheme unknown"; 1039 1058 } 1040 1059 } 1041 1060 1042 1061 sub pb_cms_getinfo { 1043 my $ cms= shift;1062 my $scheme = shift; 1044 1063 my $dir = shift; 1045 my $url = ""; 1064 my $info = shift || "URL:"; 1065 1066 my $res = ""; 1046 1067 my $void = ""; 1047 1068 1048 if ($ cms->{$ENV{'PBPROJ'}}=~ /^svn/) {1069 if ($scheme =~ /^svn/) { 1049 1070 open(PIPE,"LANGUAGE=C svn info $dir |") || return(""); 1050 1071 while (<PIPE>) { 1051 ($void,$ url) = split(/^URL:/) if (/^URL:/);1072 ($void,$res) = split(/^$info/) if (/^$info/); 1052 1073 } 1053 1074 close(PIPE); 1054 chomp($ url);1055 } elsif ($ cms->{$ENV{'PBPROJ'}}eq "flat") {1056 } elsif ($ cms->{$ENV{'PBPROJ'}}eq "cvs") {1075 chomp($res); 1076 } elsif ($scheme eq "flat") { 1077 } elsif ($scheme eq "cvs") { 1057 1078 } else { 1058 die "cms $ cms->{$ENV{'PBPROJ'}}unknown";1059 } 1060 return($ url);1079 die "cms $scheme unknown"; 1080 } 1081 return($res); 1061 1082 } 1062 1083 1063 1084 sub pb_cms_copy { 1064 my $ cms= shift;1085 my $scheme = shift; 1065 1086 my $oldurl = shift; 1066 1087 my $newurl = shift; 1067 1088 1068 if ($ cms->{$ENV{'PBPROJ'}}eq "svn") {1089 if ($scheme eq "svn") { 1069 1090 pb_system("svn copy -m \"Creation of $newurl from $oldurl\" $oldurl $newurl","Copying $oldurl to $newurl "); 1070 } elsif ($ cms->{$ENV{'PBPROJ'}}eq "flat") {1071 } elsif ($ cms->{$ENV{'PBPROJ'}}eq "cvs") {1091 } elsif ($scheme eq "flat") { 1092 } elsif ($scheme eq "cvs") { 1072 1093 } else { 1073 die "cms $ cms->{$ENV{'PBPROJ'}}unknown";1094 die "cms $scheme unknown"; 1074 1095 } 1075 1096 } 1076 1097 1077 1098 sub pb_cms_checkout { 1078 my $ cms= shift;1099 my $scheme = shift; 1079 1100 my $url = shift; 1080 1101 my $destination = shift; 1081 1102 1082 if ($ cms->{$ENV{'PBPROJ'}} eq "svn") {1103 if ($scheme =~ /^svn/) { 1083 1104 pb_system("svn co $url $destination","Checking $url to $destination "); 1084 } elsif ($ cms->{$ENV{'PBPROJ'}}eq "flat") {1085 } elsif ($ cms->{$ENV{'PBPROJ'}}eq "cvs") {1105 } elsif ($scheme eq "flat") { 1106 } elsif ($scheme eq "cvs") { 1086 1107 } else { 1087 die "cms $ cms->{$ENV{'PBPROJ'}}unknown";1108 die "cms $scheme unknown"; 1088 1109 } 1089 1110 } 1090 1111 1091 1112 sub pb_cms_checkin { 1092 my $ cms= shift;1113 my $scheme = shift; 1093 1114 my $dir = shift; 1094 1115 1095 1116 my $ver = basename($dir); 1096 if ($ cms->{$ENV{'PBPROJ'}}eq "svn") {1117 if ($scheme eq "svn") { 1097 1118 pb_system("svn ci -m \"Updated to $ver\" $dir","Checking in $dir"); 1098 1119 pb_system("svn up $dir","Updating $dir"); 1099 } elsif ($ cms->{$ENV{'PBPROJ'}}eq "flat") {1100 } elsif ($ cms->{$ENV{'PBPROJ'}}eq "cvs") {1120 } elsif ($scheme eq "flat") { 1121 } elsif ($scheme eq "cvs") { 1101 1122 } else { 1102 die "cms $ cms->{$ENV{'PBPROJ'}}unknown";1123 die "cms $scheme unknown"; 1103 1124 } 1104 1125 } 1105 1126 1106 1127 sub pb_cms_isdiff { 1107 my $ cms= shift;1108 1109 if ($ cms->{$ENV{'PBPROJ'}}eq "svn") {1128 my $scheme = shift; 1129 1130 if ($scheme eq "svn") { 1110 1131 open(PIPE,"svn diff $ENV{'PBROOT'} |") || die "Unable to get svn diff from $ENV{'PBROOT'}"; 1111 1132 my $l = 0; … … 1114 1135 } 1115 1136 return($l); 1116 } elsif ($ cms->{$ENV{'PBPROJ'}}eq "flat") {1117 } elsif ($ cms->{$ENV{'PBPROJ'}}eq "cvs") {1137 } elsif ($scheme eq "flat") { 1138 } elsif ($scheme eq "cvs") { 1118 1139 } else { 1119 die "cms $ cms->{$ENV{'PBPROJ'}}unknown";1140 die "cms $scheme unknown"; 1120 1141 } 1121 1142 } … … 1126 1147 1127 1148 sub pb_get_filters { 1128 1129 # For the moment not dynamic1130 my $debug = 0; # Debug level1131 my $LOG = *STDOUT; # Where to log1132 1149 1133 1150 my @ffiles; … … 1172 1189 } 1173 1190 if (@ffiles) { 1174 p rint $LOG "DEBUG ffiles: ".Dumper(\@ffiles)."\n" if ($debug >= 1);1191 pb_log(2,"DEBUG ffiles: ".Dumper(\@ffiles)."\n"); 1175 1192 1176 1193 foreach my $f (@ffiles) { … … 1184 1201 1185 1202 $ptr = $h{"filter"}; 1186 p rint $LOG "DEBUG f:".Dumper($ptr)."\n" if ($debug >= 1);1203 pb_log(2,"DEBUG f:".Dumper($ptr)."\n"); 1187 1204 } 1188 1205 } else { … … 1213 1230 my $chglog = shift || undef; 1214 1231 1215 # For the moment not dynamic 1216 my $debug = 0; # Debug level 1217 my $LOG = *STDOUT; # Where to log 1218 1219 print $LOG "DEBUG: From $f to $destfile\n" if ($debug >= 1); 1232 pb_log(2,"DEBUG: From $f to $destfile\n"); 1220 1233 pb_mkdir_p(dirname($destfile)) if (! -d dirname($destfile)); 1221 1234 open(DEST,"> $destfile") || die "Unable to create $destfile"; … … 1225 1238 foreach my $s (keys %filter) { 1226 1239 # Process single variables 1227 p rint $LOG "DEBUG filter{$s}: $filter{$s}\n" if ($debug >= 1);1240 pb_log(2,"DEBUG filter{$s}: $filter{$s}\n"); 1228 1241 my $tmp = $filter{$s}; 1229 1242 next if (not defined $tmp); 1230 1243 # Expand variables if any single one found 1231 p rint $LOG "DEBUG tmp: $tmp\n" if ($debug >= 1);1244 pb_log(2,"DEBUG tmp: $tmp\n"); 1232 1245 if ($tmp =~ /\$/) { 1233 1246 eval { $tmp =~ s/(\$\w+)/$1/eeg }; … … 1245 1258 close(FILE); 1246 1259 close(DEST); 1260 } 1261 1262 # Function which applies filter on files (external call) 1263 sub pb_filter_file_inplace { 1264 1265 my $ptr=shift; 1266 my %filter=%$ptr; 1267 my $destfile=shift; 1268 my $pbproj=shift; 1269 my $pbpkg=shift; 1270 my $pbver=shift; 1271 my $pbtag=shift; 1272 my $pbrev=shift; 1273 my $pbdate=shift; 1274 my $pbpackager=shift; 1275 1276 my $cp = "$ENV{'PBTMP'}/".basename($destfile); 1277 copy($destfile,$cp) || die "Unable to create $cp"; 1278 1279 pb_filter_file($cp,$ptr,$destfile,$pbproj,$pbpkg,$pbver,$pbtag,$pbrev,$pbdate,$pbpackager); 1280 unlink $cp; 1247 1281 } 1248 1282 … … 1262 1296 my $pbpackager=shift; 1263 1297 1264 # For the moment not dynamic 1265 my $debug = 0; # Debug level 1266 my $LOG = *STDOUT; # Where to log 1267 1268 print $LOG "DEBUG: From $f to $destfile\n" if ($debug >= 1); 1298 pb_log(2,"DEBUG: From $f to $destfile\n"); 1269 1299 pb_mkdir_p(dirname($destfile)) if (! -d dirname($destfile)); 1270 1300 open(DEST,"> $destfile") || die "Unable to create $destfile"; … … 1274 1304 foreach my $s (keys %filter) { 1275 1305 # Process single variables 1276 p rint $LOG "DEBUG filter{$s}: $filter{$s}\n" if ($debug > 1);1306 pb_log(2,"DEBUG filter{$s}: $filter{$s}\n"); 1277 1307 my $tmp = $filter{$s}; 1278 1308 next if (not defined $tmp); … … 1289 1319 } 1290 1320 1321 sub pb_log_init { 1322 1323 $debug = shift || 0; 1324 $LOG = shift || \*STDOUT; 1325 1326 } 1327 1328 sub pb_log { 1329 1330 my $dlevel = shift; 1331 my $msg = shift; 1332 1333 print $LOG "$msg\n" if ($dlevel >= $debug); 1334 } 1291 1335 1292 1336 1; -
devel/pb/lib/ProjectBuilder/Changelog.pm
r285 r315 42 42 43 43 if (((not defined $chglog) || (! -f $chglog)) && ($doit eq "yes")) { 44 #p rint"No ChangeLog file ($chglog) for $pkg\n";44 #pb_log(2,"No ChangeLog file ($chglog) for $pkg\n"; 45 45 print $OUTPUT "\n"; 46 46 return; … … 95 95 chomp($date); 96 96 $date =~ s/\(([0-9-]+)\)/$1/; 97 #p rint"**$date**\n";97 #pb_log(2,"**$date**\n"; 98 98 $ndate = UnixDate($date,"%a", "%b", "%d", "%Y"); 99 99 $n2date = &UnixDate($date,"%a, %d %b %Y %H:%M:%S %z"); 100 #p rint"**$ndate**\n";100 #pb_log(2,"**$ndate**\n"; 101 101 102 102 if (($dtype eq "rpm") || ($dtype eq "fc")) { -
devel/pb/lib/ProjectBuilder/Distribution.pm
r287 r315 212 212 my $found = 0; 213 213 my $ptr = $distro_similar{$d}; 214 #p rint$LOG "amb: ".Dumper($ptr)."\n" if ($debug >= 1);214 #pb_log(2,$LOG "amb: ".Dumper($ptr)."\n" if ($debug >= 1); 215 215 $release = "unknown"; 216 216 foreach my $dd (@$ptr) { 217 #p rint$LOG "check $dd\n" if ($debug >= 1);217 #pb_log(2,$LOG "check $dd\n" if ($debug >= 1); 218 218 # Try to check pattern 219 219 if (defined $distro_match{$dd}) { 220 #p rint$LOG "cmp: $distro_match{$dd} - vs - $tmp\n" if ($debug >= 1);220 #pb_log(2,$LOG "cmp: $distro_match{$dd} - vs - $tmp\n" if ($debug >= 1); 221 221 ($release) = $tmp =~ m/$distro_match{$dd}/m; 222 222 if ((defined $release) && ($release ne "unknown")) {
Note:
See TracChangeset
for help on using the changeset viewer.