From 58f04c818621248e8b4f217efb69d82290bb4909 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 30 Nov 2008 00:45:17 +0000 Subject: svn update on the affected dirs, even in non-place mode, so two people updating the same package can be noticed sooner git-svn-id: svn://tug.org/texlive/trunk@11478 c570f23f-e606-0410-a88d-b1316a301751 --- Master/tlpkg/bin/ctan2tl | 11 +++++++---- Master/tlpkg/bin/place | 22 ++++++++++++++-------- Master/tlpkg/installer/tar.exe | Bin 3 files changed, 21 insertions(+), 12 deletions(-) mode change 100644 => 100755 Master/tlpkg/installer/tar.exe (limited to 'Master') diff --git a/Master/tlpkg/bin/ctan2tl b/Master/tlpkg/bin/ctan2tl index 479f363bd14..6ac192017ed 100755 --- a/Master/tlpkg/bin/ctan2tl +++ b/Master/tlpkg/bin/ctan2tl @@ -20,12 +20,15 @@ if test "x$1" = x--help; then echo echo "Install a package from CTAN into TeX Live." echo - echo "--place, -p execute place script for repository adds/removes." + echo "--place, -p perform repository adds/removes." echo "--no-ctan if already have files in Build/tmp.raw/PKG." echo - echo "This never actually commits anything to the repository." - echo "Without --place, it doesn't even touch anything in the repository" - echo "outside of Build/tmp.{raw,cooked}." + echo "This never actually commits anything to the repository," + echo "but it does svn update the potentially affected directories." + echo + echo "Without --place, it only creates files in Build/tmp.{raw,cooked}." + echo "With --place, it also does repository adds and removes," + echo "but never commits." echo echo "Read and understand http://tug.org/texlive/pkgupdate.html" echo "before running this." diff --git a/Master/tlpkg/bin/place b/Master/tlpkg/bin/place index 1742c41a302..3a934183803 100755 --- a/Master/tlpkg/bin/place +++ b/Master/tlpkg/bin/place @@ -164,7 +164,7 @@ foreach $file (sort keys %Old) { # remove old files. if (! $New{$file}) { - &my_system ("svn remove $M/$file"); + &xsystem ("svn remove $M/$file"); } my $dname = dirname ("$M/$file"); @@ -173,7 +173,7 @@ foreach $file (sort keys %Old) { # copy files my $job = "tar cf - . | (cd $M && tar xf - )"; -&my_system ($job); +&xsystem ($job); # sort so dirs will be added before subdirs. foreach $file (sort keys %New) { @@ -183,7 +183,7 @@ foreach $file (sort keys %New) { } &xchdir ($cooked); -&my_system ("mv $package $package.done"); +&xsystem ("mv $package $package.done"); if ($newpackage) { @@ -200,7 +200,8 @@ $dirs{"$M/tlpkg/tlpsrc/$package.tlpsrc"}++; # # also write dir list to a separate file, for easy passing to a commit. # -$DIRLIST = ">$tmpfile.dirs"; +my $dirlist_file = "$tmpfile.dirs"; +$DIRLIST = ">$dirlist_file"; open (DIRLIST) || die "open($DIRLIST) failed: $!"; # print "place: directories are:\n"; @@ -211,7 +212,11 @@ for my $dir (sort keys %dirs) { # close (DIRLIST) || warn "close($DIRLIST) failed: $!"; -#xx warn "WARNING WARNING Things we SHOULD/COULD do here:\n - Update the texlive.tlpdb\n - Compare the files ACTUALLY present in cooked/package with those included via tlpsrc/tltree generation!!!\n - Create list file\n - Update the list of available packages for web update\n - Create zip file(s)\n\n\n"; +# Always run svn update, even without --place. This will let a user +# detect that a particular package update has already been done by +# someone else. +print ("\nsvn update of those directories:\n"); +system ("svn update `cat $dirlist_file`"); exit (0); @@ -264,9 +269,9 @@ sub add_file $dirs{$dir}++; $dir = dirname ($dir); } - &my_system ("svn add -N $needed_dirs") if $needed_dirs; + &xsystem ("svn add -N $needed_dirs") if $needed_dirs; - &my_system ("svn add $newfile"); + &xsystem ("svn add $newfile"); # remember that we changed this directory. $dirs{$newdir}++; @@ -282,7 +287,7 @@ sub xchdir } -sub my_system +sub xsystem { my ($cmd) = @_; @@ -290,6 +295,7 @@ sub my_system unless ($chicken) { my $ret = system ($cmd); + $ret /= 256; die "`$cmd' failed, status=$ret, goodbye\n" if $ret != 0; } } diff --git a/Master/tlpkg/installer/tar.exe b/Master/tlpkg/installer/tar.exe old mode 100644 new mode 100755 -- cgit v1.2.3