Legend:
- Unmodified
- Added
- Removed
-
devel/pb/bin/pb
r1595 r1597 42 42 43 43 # Global variables 44 $Global::pb_stop_on_error = 1; 44 $Global::pb_stop_on_error = 1; # True by default 45 $Global::pb_show_sudo = 0; # False by default 46 45 47 my %opts; # CLI Options 46 48 my $action; # action to realize … … 739 741 # Check for command requirements 740 742 # 741 my ($req,$opt,$pbpara ) = pb_conf_get_if("oscmd","oscmdopt","pbparallel");743 my ($req,$opt,$pbpara,$pbshowsudo) = pb_conf_get_if("oscmd","oscmdopt","pbparallel","pbshowsudo"); 742 744 pb_check_requirements($req,$opt,$appname); 745 746 $Global::pb_show_sudo = 1 if ((defined $pbshowsudo) && (defined $pbshowsudo->{$ENV{'PBPROJ'}}) && ($pbshowsudo->{$ENV{'PBPROJ'}} =~ /true/oi)); 743 747 744 748 # … … 1432 1436 pb_mkdir_p($tmpd) if (defined $pbparallel); 1433 1437 1438 # Do it here as this doesn't work in // mode as itdies if it fails 1439 if ($pbos->{'type'} eq "rpm") { 1440 foreach my $d ('RPMS','SRPMS','SPECS','SOURCES','BUILD') { 1441 if (! -d "$ENV{'PBBUILDDIR'}/$d") { 1442 pb_mkdir_p("$ENV{'PBBUILDDIR'}/$d"); 1443 } 1444 } 1445 } 1446 1434 1447 foreach my $pbpkg (@pkgs) { 1435 1448 $pm->start and next if (defined $pbparallel); … … 1447 1460 pb_log(2,"Working directory: $ENV{'PBBUILDDIR'}\n"); 1448 1461 if ($pbos->{'type'} eq "rpm") { 1449 foreach my $d ('RPMS','SRPMS','SPECS','SOURCES','BUILD') {1450 if (! -d "$ENV{'PBBUILDDIR'}/$d") {1451 pb_mkdir_p("$ENV{'PBBUILDDIR'}/$d");1452 }1453 }1454 1455 1462 # Remove in case a previous link/file was there 1456 1463 unlink "$ENV{'PBBUILDDIR'}/SOURCES/".basename($src); … … 1548 1555 #pb_extract_build_files($src2,"$pbpkg-$pbver$pbextdir/pbconf/$pbos->{'name'}-$pbos->{'version'}-$pbos->{'arch'}/pbsrc/","$ENV{'PBBUILDDIR'}/debian","src"); 1549 1556 1557 # This can create problems in // mode as well 1550 1558 pb_distro_installdeps("debian/control",$pbos); 1551 1559 pb_system("dpkg-buildpackage -us -uc -rfakeroot","Building package","verbose"); 1560 1552 1561 # Get the name of the generated packages 1553 1562 open(LOG,"$ENV{'PBTMP'}/system.$$.log") || die "Unable to open $ENV{'PBTMP'}/system.$$.log"; 1554 my $tmp = "";1555 1563 while (<LOG>) { 1556 1564 chomp(); 1565 pb_log(3,"In loop: $_\n"); 1557 1566 next unless (/^dpkg-deb.*:\s+building\s+package\s+.*\s+in\s+\`\.\.\/(\S+)\'\./o); 1558 $tmp = $1; 1559 die "Missing file $tmp" if (not -f $tmp); 1567 my $tmp = $1; 1568 #doesn't work in my case 1569 #die "Missing file $tmp" if (not -f "../$tmp"); 1560 1570 $made = "$made $tmp"; 1561 1571 } 1562 1572 close(LOG); 1563 open(CTRL,"debian/control") or die "Unable to open debian/control: $!"; 1564 #$made="$made $tmp.dsc $tmp.tar.gz $tmp"."_*.deb $tmp"."_*.changes"; 1573 pb_log(2,"Now made is: $made\n"); 1574 1575 open(CTRL,"debian/control") || die "Unable to open debian/control: $!"; 1565 1576 while (<CTRL>) { 1577 pb_log(3,"In loop: $_\n"); 1566 1578 next unless (/^Source: (\S+)/o); 1567 foreach my $glob (("$1\_*.changes", "$1\_*.dsc", "$1\_*.tar.gz")) { 1568 my @file = glob($glob); 1569 die "Missing file for $glob" unless @file > 0; 1570 die "Too many files for $glob" if @file > 1; 1571 die "Missing file $file[0]" if (not -f $file[0]); 1572 $made .= " $file[0]"; 1573 } 1579 my $tmp = $1; 1580 $made = "$made $tmp"."_*.dsc $tmp"."_*.tar.gz $tmp"."_*.deb $tmp"."_*.changes"; 1581 #doesn't work in my case 1582 #foreach my $glob (("$1\_*.changes", "$1\_*.dsc", "$1\_*.tar.gz")) { 1583 #my @file = glob($glob); 1584 #die "Missing file for $glob" unless (@file > 0); 1585 #die "Too many files for $glob" if (@file > 1); 1586 #die "Missing file $file[0]" if (not -f $file[0]); 1587 #$made .= " $file[0]"; 1588 #} 1574 1589 } 1575 1590 close(CTRL); 1576 pb_display_file("$ENV{'PBTMP'}/system.$$.log"); 1591 #pb_display_file("$ENV{'PBTMP'}/system.$$.log"); 1592 pb_log(2,"Finally made is: $made\n"); 1577 1593 1578 1594 chdir ".." || die "Unable to chdir to parent dir"; 1579 pb_rm_rf("$pbpkg-$pbver ");1595 pb_rm_rf("$pbpkg-$pbver$pbextdir"); 1580 1596 } elsif ($pbos->{'type'} eq "ebuild") { 1581 1597 my @ebuildfile; … … 2345 2361 # For VE we need to change the owner manually 2346 2362 if ($cmt eq "VEbuild") { 2347 pb_system("sudo chown $UID $ENV{'PBBUILDDIR'}/pbgen-$ENV{'PBPROJVER'}-$ENV{'PBPROJTAG'}.$$","Adapt owner in $tdir to $UID"); 2363 my $command = pb_check_req("chown",0); 2364 pb_system("sudo $command $UID $ENV{'PBBUILDDIR'}/pbgen-$ENV{'PBPROJVER'}-$ENV{'PBPROJTAG'}.$$","Adapt owner in $tdir to $UID"); 2348 2365 } 2349 2366 if (not -f "$ENV{'PBBUILDDIR'}/pbgen-$ENV{'PBPROJVER'}-$ENV{'PBPROJTAG'}.$$") { … … 2733 2750 $i++; 2734 2751 } 2735 print SCRIPT "set -e\n" if $Global::pb_stop_on_error;2752 print SCRIPT "set -e\n" if ($Global::pb_stop_on_error); 2736 2753 # Activate script verbosity if at least 2 for pbdebug 2737 2754 print SCRIPT "set -x\n" if ($i gt 1); -
devel/pb/t/pbtest
r1596 r1597 12 12 13 13 # You may have multiple distros here 14 TESTVEDIST=" fedora-16-x86_64 mageia-1-i386 debian-6.0-x86_64 ubuntu-12.04-i386"14 TESTVEDIST="debian-6-x86_64 ubuntu-12.04-i386 fedora-16-x86_64 opensuse-12.1-x86_64 mageia-2-i386 mandriva-2010.0-i386" 15 15 # Only one VM is tested for now. 16 16 TESTVMDIST="fedora-16-i386" 17 17 TESTVMISO="/users/bruno/iso/Fedora-16-i386-DVD.iso" 18 PBTEST="/home/pbtest" 18 PBUSER=pbtest 19 PBTEST="/home/$PBUSER" 19 20 export PBPROJ=afio 20 21 … … 27 28 28 29 if [ _"$cmd" == _"/tmp/pbtestcmd" ]; then 29 echo "INFO (as pbtest): Now running `head -1 $cmd` [$msg]"30 echo "INFO (as $PBUSER): Now running `head -1 $cmd` [$msg]" 30 31 else 31 echo "INFO (as pbtest): Now running $cmd [$msg]"32 fi 33 sudo -n -E su - pbtest-c "$cmd"32 echo "INFO (as $PBUSER): Now running $cmd [$msg]" 33 fi 34 sudo -n -E su - $PBUSER -c "$cmd" 34 35 ret=$? 35 36 if [ $ret -ne 0 ] && [ _"$msg" == _"" ]; then … … 57 58 58 59 sudocmd "rm -rf $PBTEST/* $PBTEST/.??*" 59 sudocmd "killall -u pbtest"60 sudocmd "userdel pbtest"61 #sudocmd "groupdel pbtest" 162 sudocmd "useradd pbtest"63 sudocmd "grep -q pbtest/etc/sudoers"60 sudocmd "killall -u $PBUSER" 61 sudocmd "userdel $PBUSER" 62 #sudocmd "groupdel $PBUSER" 1 63 sudocmd "useradd $PBUSER" 64 sudocmd "grep -q $PBUSER /etc/sudoers" 64 65 if [ $? -ne 0 ]; then 65 66 cat > /tmp/sudoers << EOF 66 67 Defaults env_keep += "PBPROJ" 67 # This is for the pbtest account in the VE only 68 pbtest ALL=NOPASSWD:/usr/sbin/chroot 69 pbtest ALL=NOPASSWD:/usr/bin/rpmbootstrap 70 pbtest ALL=NOPASSWD:/usr/sbin/debootstrap 71 pbtest ALL=NOPASSWD:/bin/chmod 72 pbtest ALL=NOPASSWD:/bin/cp 73 pbtest ALL=NOPASSWD:/bin/rm 74 pbtest ALL=NOPASSWD:/bin/tar 75 pbtest ALL=NOPASSWD:/bin/mkdir 68 # This is for the $PBUSER account in the VE only 69 $PBUSER ALL=NOPASSWD:/usr/sbin/chroot 70 $PBUSER ALL=NOPASSWD:/usr/bin/rpmbootstrap 71 $PBUSER ALL=NOPASSWD:/usr/sbin/debootstrap 72 $PBUSER ALL=NOPASSWD:/bin/chmod 73 $PBUSER ALL=NOPASSWD:/bin/cp 74 $PBUSER ALL=NOPASSWD:/bin/rm 75 $PBUSER ALL=NOPASSWD:/bin/tar 76 $PBUSER ALL=NOPASSWD:/bin/mkdir 77 $PBUSER ALL=NOPASSWD:/bin/chown 76 78 EOF 77 79 sudocmd "cat /etc/sudoers /tmp/sudoers > /tmp/sudoers2" … … 81 83 rm -f /tmp/sudoers /tmp/sudoers2 82 84 fi 83 # Force pbtest account84 sudocmd "perl -pi -e 's|^ pbtest:.*|pbtest:$2a$08$2Q.tEty4v/fU0RyPeDelk.AjLAtXUXU3DpSs/l/8YrFmau1LJRCqC:15483:0:99999:7:::|' /etc/shadow"85 # Force $PBUSER account passwd is $PBUSER 86 sudocmd "perl -pi -e 's|^$PBUSER:.*|$PBUSER:$2a$08$2Q.tEty4v/fU0RyPeDelk.AjLAtXUXU3DpSs/l/8YrFmau1LJRCqC:15483:0:99999:7:::|' /etc/shadow" 85 87 sudopbtest "echo export PBPROJ=$PBPROJ >> $PBTEST/.bash_profile" 86 88 sudopbtest "env | grep PBPROJ" … … 91 93 cat > /tmp/authz << EOF 92 94 [/] 93 pbtest= rw95 $PBUSER = rw 94 96 * = r 95 97 EOF … … 97 99 cat > /tmp/passwd << EOF 98 100 [users] 99 pbtest = pbtest 101 $PBUSER = $PBUSER 100 102 EOF 101 103 sudocmd "mv /tmp/passwd $PBTEST/svn/conf/passwd" … … 109 111 EOF 110 112 sudocmd "mv /tmp/svnserve.conf $PBTEST/svn/conf/svnserve.conf" 111 sudocmd "chown pbtest:pbtest$PBTEST/svn/conf/authz $PBTEST/svn/conf/passwd $PBTEST/svn/conf/svnserve.conf"113 sudocmd "chown ${PBUSER}:$PBUSER $PBTEST/svn/conf/authz $PBTEST/svn/conf/passwd $PBTEST/svn/conf/svnserve.conf" 112 114 sudopbtest "killall svnserve" 1 113 115 sudopbtest "svnserve -d -r $PBTEST/svn" … … 128 130 pburl mondorescue = svn://svn.mondorescue.org/mondorescue/branches 129 131 sshhost pb = localhost 130 sshlogin pb = pbtest132 sshlogin pb = $PBUSER 131 133 sshdir pb = \$ENV{'HOME'}/ftp 132 134 # … … 155 157 veopt default = 156 158 vesnap default = false 157 velogin default = pbtest159 velogin default = $PBUSER 158 160 EOF 159 161 echo "velist default = `echo $TESTVEDIST | sed 's/ /,/g'`" >> /tmp/.pbrc 160 162 sudocmd "mv /tmp/.pbrc $PBTEST/ve/.pbrc" 161 sudocmd "chown pbtest:pbtest$PBTEST/.pbrc $PBTEST/ve/.pbrc $PBTEST/vm/.pbrc"163 sudocmd "chown ${PBUSER}:$PBUSER $PBTEST/.pbrc $PBTEST/ve/.pbrc $PBTEST/vm/.pbrc" 162 164 163 165 sudopbtest "ssh-keygen -f $PBTEST/.ssh/id_rsa -t rsa -b 768 -v -N ''" … … 175 177 EOF 176 178 sudocmd "mv /tmp/servers $PBTEST/.subversion/servers" 177 sudocmd "chown pbtest:pbtest$PBTEST/.subversion/servers"178 179 VCSOPT='--username pbtest --password pbtest'179 sudocmd "chown ${PBUSER}:$PBUSER $PBTEST/.subversion/servers" 180 181 VCSOPT='--username $PBUSER --password $PBUSER' 180 182 181 183 sudopbtest "svn import $PBTEST/pb svn://localhost/pb -m 'Initial creation of pb repo' $VCSOPT" … … 194 196 pbrepo afio = ftp://ftp.project-builder.org 195 197 sshhost afio = localhost 196 sshlogin afio = pbtest198 sshlogin afio = $PBUSER 197 199 sshdir afio = \$ENV{'HOME'}/ftp 198 200 EOF 199 201 sudocmd "mv /tmp/afio.pb $PBTEST/pb/afio/pbconf/2.5/afio.pb" 200 sudocmd "chown pbtest:pbtest$PBTEST/pb/afio/pbconf/2.5/afio.pb"202 sudocmd "chown ${PBUSER}:$PBUSER $PBTEST/pb/afio/pbconf/2.5/afio.pb" 201 203 cat > /tmp/pbtestcmd << EOF 202 204 perl -pi -e 's|testver\s+afio\s+=\s+true|testver\ afio\ =\ false|' $PBTEST/pb/afio/pbconf/2.5/afio.pb … … 214 216 EOF 215 217 sudocmd "mv /tmp/all.pbf $PBTEST/pb/afio/pbconf/2.5/pbfilter/all.pbf" 216 sudocmd "chown pbtest:pbtest$PBTEST/pb/afio/pbconf/2.5/pbfilter/all.pbf"218 sudocmd "chown ${PBUSER}:$PBUSER $PBTEST/pb/afio/pbconf/2.5/pbfilter/all.pbf" 217 219 218 220 grep -vE 'PBGRP|PBLIC' $PBTEST/pb/afio/pbconf/2.5/pbfilter/rpm.pbf > /tmp/rpm.pbf … … 223 225 EOF 224 226 sudocmd "mv /tmp/rpm.pbf $PBTEST/pb/afio/pbconf/2.5/pbfilter/rpm.pbf" 225 sudocmd "chown pbtest:pbtest $PBTEST/pb/afio/pbconf/2.5/pbfilter/rpm.pbf " 227 sudocmd "chown ${PBUSER}:$PBUSER $PBTEST/pb/afio/pbconf/2.5/pbfilter/rpm.pbf " 228 229 cat >> /tmp/deb.pbf << EOF 230 filter PBGRP = utils 231 filter PBLIC = Afio 232 EOF 233 sudocmd "mv /tmp/deb.pbf $PBTEST/pb/afio/pbconf/2.5/pbfilter/deb.pbf" 234 sudocmd "chown ${PBUSER}:$PBUSER $PBTEST/pb/afio/pbconf/2.5/pbfilter/rpm.pbf " 226 235 227 236 # First build … … 249 258 EOF 250 259 sudocmd "mv /tmp/pbcl $PBTEST/pb/afio/pbconf/2.5/afio/pbcl" 251 sudocmd "chown pbtest:pbtest$PBTEST/pb/afio/pbconf/2.5/afio/pbcl"260 sudocmd "chown ${PBUSER}:$PBUSER $PBTEST/pb/afio/pbconf/2.5/afio/pbcl" 252 261 sudopbtest "svn add $PBTEST/pb/afio/pbconf/2.5/afio/pbcl" 253 262 sudopbtest "svn ci -m 'Adding pbcl for afio' $VCSOPT $PBTEST/pb" … … 259 268 # Filtering $PBTEST/pb/afio/pbconf/2.5/afio/deb/control 260 269 perl -pi -e 's|,\s*PBDEP||' $PBTEST/pb/afio/pbconf/2.5/afio/deb/control 261 perl -pi -e 's|Recommends: PBREC||' $PBTEST/pb/afio/pbconf/2.5/afio/deb/control262 perl -pi -e 's|Suggests: PBSUG||' $PBTEST/pb/afio/pbconf/2.5/afio/deb/control270 sed -i '/Recommends: PBREC/d' $PBTEST/pb/afio/pbconf/2.5/afio/deb/control 271 sed -i '/Suggests: PBSUG/d' $PBTEST/pb/afio/pbconf/2.5/afio/deb/control 263 272 EOF 264 273 chmod 755 /tmp/pbtestcmd … … 279 288 EOF 280 289 sudocmd "mv /tmp/afio.docs $PBTEST/pb/afio/pbconf/2.5/afio/deb/afio.docs" 281 sudocmd "chown pbtest:pbtest$PBTEST/pb/afio/pbconf/2.5/afio/deb/afio.docs "290 sudocmd "chown ${PBUSER}:$PBUSER $PBTEST/pb/afio/pbconf/2.5/afio/deb/afio.docs " 282 291 283 292 cat > /tmp/pbtestcmd << EOF … … 285 294 perl -pi -e 's|config.status: configure|config.status: Makefile|' $PBTEST/pb/afio/pbconf/2.5/afio/deb/rules 286 295 perl -pi -e 's|dh_installchangelogs ChangeLog|dh_installchangelogs debian/changelog|' $PBTEST/pb/afio/pbconf/2.5/afio/deb/rules 287 perl -pi -e 's|\ $(MAKE) install|mkdir -p \$(CURDIR)/debian/\$(PACKAGE_NAME)/usr/bin \$(CURDIR)/debian/\$(PACKAGE_NAME)/usr/share/man/man1|' $PBTEST/pb/afio/pbconf/2.5/afio/deb/rules288 perl -pi -e 's|# - copy html manual to temporary location for renaming|install -p -m 755 afio \ $(CURDIR)/debian/\$(PACKAGE_NAME)/usr/bin ; install -p -m 644 afio.1 \$(CURDIR)/debian/\$(PACKAGE_NAME)/usr/share/man/man1|' $PBTEST/pb/afio/pbconf/2.5/afio/deb/rules296 perl -pi -e 's|\\\$(MAKE) install.*|mkdir -p \\\$(CURDIR)/debian/\\\$(PACKAGE_NAME)/usr/bin \\\$(CURDIR)/debian/\\\$(PACKAGE_NAME)/usr/share/man/man1|' $PBTEST/pb/afio/pbconf/2.5/afio/deb/rules 297 perl -pi -e 's|# - copy html manual to temporary location for renaming|install -p -m 755 afio \\\$(CURDIR)/debian/\\\$(PACKAGE_NAME)/usr/bin ; install -p -m 644 afio.1 \\\$(CURDIR)/debian/\\\$(PACKAGE_NAME)/usr/share/man/man1|' $PBTEST/pb/afio/pbconf/2.5/afio/deb/rules 289 298 sed -i -e '/\.\/configure /d' $PBTEST/pb/afio/pbconf/2.5/afio/deb/rules 290 299 EOF … … 312 321 vv=`echo $d | cut -d'-' -f2` 313 322 aa=`echo $d | cut -d'-' -f3` 314 if [ -f $PBTEST/ve/$dd/$vv/$aa/proc/cpuinfo]; then323 if [ -f "$PBTEST/ve/$dd/$vv/$aa/proc/cpuinfo" ]; then 315 324 sudocmd "umount $PBTEST/ve/$dd/$vv/$aa/proc" 316 325 fi … … 323 332 sudopbtest "pb clean" 324 333 325 326 327 #qemu-kvm \ 328 #-m 1024 \ 329 #-kernel /pub/mageia/distrib/cauldron/i586/isolinux/alt0/vmlinuz \ 330 #-initrd /pub/mageia/distrib/cauldron/i586/isolinux/alt0/all.rdz \ 331 #-append "ramdisk_size=128000 root=/dev/ram3 kickstart=http://192.168.8.55/pub/ks/guerrero/ks.pl automatic=method:http,server:192.168.8.55,directory:/pub/mageia/distrib/cauldron/i586,network:dhcp" \ 332 #-drive file=/users/qemu/mageia-2-i386.qemu,if=virtio,media=disk \ 333 #-redir tcp:2200:10.0.2.15:22 334 # need tobe part of group video for KVM 335 sudocmd "grep -q $PBUSER /etc/group" 336 if [ $? -ne 0 ]; then 337 sudocmd "perl -pi -e 's|^(video:.*)$|$1,|' /etc/shadow" 338 fi 339 d=mageia-2-i386 340 sudopbtest "qemu-img create -f qcow2 $PBTEST/vm/$d.qemu 72G" 341 sudopbtest "qemu-kvm -m 1024 -kernel /pub/mageia/distrib/2/i586/isolinux/alt0/vmlinuz -initrd /pub/mageia/distrib/2/i586/isolinux/alt0/all.rdz -append "ramdisk_size=128000 root=/dev/ram3 kickstart=http://192.168.8.55/pub/ks/guerrero/ks.pl automatic=method:http,server:192.168.8.55,directory:/pub/mageia/distrib/2/i586,network:dhcp" -drive file=$PBTEST/vm/$d.qemu,if=virtio,media=disk -redir tcp:2200:10.0.2.15:22" 342 sudopbtest "pb -p pb -m $d sbx2setupvm" 343 sudopbtest "pb -p pb -m $d snapvm" 344 sudopbtest "pb -m $d sbx2vm" 345 334 346 335 347 # test also with MOndoRescue
Note:
See TracChangeset
for help on using the changeset viewer.