summaryrefslogtreecommitdiff
path: root/Master/tlpkg
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg')
-rwxr-xr-xMaster/tlpkg/bin/ctan2tl11
-rwxr-xr-xMaster/tlpkg/bin/place22
-rwxr-xr-x[-rw-r--r--]Master/tlpkg/installer/tar.exebin193536 -> 193536 bytes
3 files changed, 21 insertions, 12 deletions
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
index e5a7a553080..e5a7a553080 100644..100755
--- a/Master/tlpkg/installer/tar.exe
+++ b/Master/tlpkg/installer/tar.exe
Binary files differ