Changeset 2182 in ProjectBuilder
- Timestamp:
- Feb 20, 2017, 7:40:38 AM (8 years ago)
- Location:
- devel
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
devel/pb-modules/lib/ProjectBuilder/Distribution.pm
r2181 r2182 331 331 332 332 This function install the dependencies required to build the package on a distro. 333 Dependencies can be passed as a parameter in which case they are not computed 333 If $forcerepo is defined then do not assumer package are alredy installed, but reinstall them 334 (useful if you add a repo which contains more up to date packages that you need) 335 Dependencies can be passed as the 4th parameter in which case they are not computed 334 336 335 337 =cut … … 340 342 my $f = shift; 341 343 my $pbos = shift; 342 my $deps = shift; 344 my $forcerepo = shift; 345 my $deps = shift; # optional list of deps to install 343 346 344 347 # Protection 345 348 confess "Missing install command for $pbos->{name}-$pbos->{version}-$pbos->{arch}" unless (defined $pbos->{install} && $pbos->{install} =~ /\w/); 346 349 pb_apply_conf_proxy($pbos); 347 348 # Get dependencies in the build file if not forced349 $deps = pb_distro_getdeps($f,$pbos) if (not defined $deps);350 350 pb_log(1, "ftp_proxy=$ENV{ftp_proxy}\n") if (defined $ENV{ftp_proxy}); 351 351 pb_log(1, "http_proxy=$ENV{http_proxy}\n") if (defined $ENV{http_proxy}); 352 353 # Get dependencies in the build file if not forced 354 $deps = pb_distro_getdeps($f,$pbos, $forcerepo) if ((not defined $deps) || (defined $forcerepo)); 352 355 pb_log(2,"deps: $deps\n"); 353 356 return if ((not defined $deps) || ($deps =~ /^\s*$/)); … … 361 364 } 362 365 # Check that all deps have been installed correctly 363 $deps = pb_distro_getdeps($f, $pbos );366 $deps = pb_distro_getdeps($f, $pbos, $forcerepo); 364 367 confess "Some dependencies did not install ($deps)" if ((defined $deps) && ($deps =~ /\S/) && ($Global::pb_stop_on_error)); 365 368 } … … 375 378 my $f = shift; 376 379 my $pbos = shift; 380 my $forcerepo = shift; 377 381 378 382 my $regexp = ""; … … 453 457 $/ = $oldsep; 454 458 pb_log(2,"now deps: $deps\n"); 455 my $deps2 = pb_distro_only_deps_needed($pbos,$deps); 456 return($deps2); 459 if (defined $forcerepo) { 460 # We want to force installation of all pkgs 461 # because a repo was setup in between, which may contains updated versions 462 pb_log(0,"Forcing installation of all packages due to previous repo setup\n"); 463 return($deps); 464 } else { 465 pb_log(0,"Installation of only necessary packages\n"); 466 my $deps2 = pb_distro_only_deps_needed($pbos,$deps); 467 return($deps2); 468 } 457 469 } 458 470 … … 516 528 my $pbos = shift; 517 529 518 pb_distro_setuprepo_gen($pbos,pb_distro_conffile(),"osrepo");530 return(pb_distro_setuprepo_gen($pbos,pb_distro_conffile(),"osrepo")); 519 531 } 520 532 … … 529 541 my $pbos = shift; 530 542 531 pb_distro_setuprepo_gen($pbos,"$ENV{'PBDESTDIR'}/pbrc","addrepo");543 return(pb_distro_setuprepo_gen($pbos,"$ENV{'PBDESTDIR'}/pbrc","addrepo")); 532 544 } 533 545 … … 566 578 my $pbkey = shift; 567 579 568 return if (not defined $pbconf);569 return if (not defined $pbkey);580 return undef if (not defined $pbconf); 581 return undef if (not defined $pbkey); 570 582 my ($addrepo) = pb_conf_read($pbconf,$pbkey); 571 return if (not defined $addrepo);583 return undef if (not defined $addrepo); 572 584 573 585 my $param = pb_distro_get_param($pbos,$addrepo); 574 return if ($param eq "");586 return undef if ($param eq ""); 575 587 576 588 pb_apply_conf_proxy($pbos); … … 615 627 } 616 628 my $dest = "$dirdest/$bn"; 617 return if (pb_distro_compare_repo("$ENV{'PBTMP'}/$bn",$dest) == 1);629 return undef if (pb_distro_compare_repo("$ENV{'PBTMP'}/$bn",$dest) == 1); 618 630 confess "Missing directory $dirdest ($reponame)" unless (-d $dirdest); 619 631 pb_system("sudo mv $ENV{'PBTMP'}/$bn $dest","Adding $reponame repository") if (not -f "$dest"); … … 657 669 } 658 670 } 659 return ;671 return("forcerepo"); 660 672 } 661 673 -
devel/pb/bin/pb
r2180 r2182 1603 1603 1604 1604 # Additional potential repo 1605 pb_distro_setuprepo($pbos);1605 my $forcerepo = pb_distro_setuprepo($pbos); 1606 1606 foreach my $pbpkg (@pkgs) { 1607 1607 # We need to install the package to test, and deps brought with it 1608 pb_distro_installdeps(undef,$pbos,$ pbpkg);1608 pb_distro_installdeps(undef,$pbos,$forcerepo,$pbpkg); 1609 1609 pb_system("$ENV{'PBDESTDIR'}/pbtest","Launching test for $pbpkg","verbose"); 1610 1610 } … … 1619 1619 1620 1620 # If needed we may add repository to the build env 1621 pb_distro_setuprepo($pbos); 1621 my $forcerepo = pb_distro_setuprepo($pbos); 1622 pb_log(1,"Forcing full package install with forcerepo\n") if (defined $forcerepo); 1622 1623 1623 1624 # Get list of packages to build … … 1662 1663 foreach my $f (@buildfiles) { 1663 1664 if ($f =~ /$ftype/) { 1664 pb_distro_installdeps($f,$pbos );1665 pb_distro_installdeps($f,$pbos,$forcerepo); 1665 1666 } 1666 1667 } … … 2070 2071 print KEEP "$made\n"; 2071 2072 close(KEEP); 2072 pb_distro_installdeps(undef,$pbos, $ret) if ($do_install);2073 pb_distro_installdeps(undef,$pbos,undef,$ret) if ($do_install); 2073 2074 } 2074 2075 … … 3913 3914 3914 3915 my $pkgdep = pb_distro_get_param($pbos,$ospkgdep); 3915 pb_distro_installdeps(undef,$pbos, pb_distro_only_deps_needed($pbos,join(' ',split(/,/,$pkgdep))));3916 pb_distro_installdeps(undef,$pbos,undef,pb_distro_only_deps_needed($pbos,join(' ',split(/,/,$pkgdep)))); 3916 3917 3917 3918 EOF … … 3972 3973 print SCRIPT << 'EOF'; 3973 3974 my $pkgforpb = pb_distro_get_param($pbos,pb_conf_get_if("ospkg")); 3974 pb_distro_setuposrepo($pbos); 3975 pb_distro_installdeps(undef,$pbos,pb_distro_only_deps_needed($pbos,join(' ',split(/,/,$pkgforpb)))); 3975 my $forcerepo = pb_distro_setuposrepo($pbos); 3976 pb_log(1,"Forcing full package install with forcerepo\n") if (defined $forcerepo); 3977 pb_distro_installdeps(undef,$pbos,$forcerepo,pb_distro_only_deps_needed($pbos,join(' ',split(/,/,$pkgforpb)))); 3976 3978 EOF 3977 3979 } else {
Note:
See TracChangeset
for help on using the changeset viewer.