diff options
author | Norbert Preining <preining@logic.at> | 2006-11-09 13:18:02 +0000 |
---|---|---|
committer | Norbert Preining <preining@logic.at> | 2006-11-09 13:18:02 +0000 |
commit | 3696c8f2a98b5e48514a3608e0156c676b63470a (patch) | |
tree | 99006293861d5004c6de0938b605f6ef0e4b554a /Build/tools/etc/ctan2tl.new | |
parent | aa10b19a7c6ffac34c3b21c9ac9afb7dc827cec4 (diff) |
The Krakow-Vienna train ride update
package updates:
ccaption cdpbundl chem-journal clefval coordsys dingbat dramatist
egplot filecontents lcd maybemath metaobj metaplot mwcls pdfscreen
pst-bar rsc dpfloat footbib jurabib
added to ctan-tpm-check (and re-indented the long list)
no changes between CTAN and depot, only added to the WorkingTPM list
acmtrans bibunits bitfield blindtext bophook cherokee citeref
cmdtrack colorinfo compactbib courier-scaled courseoutline coursepaper
crop custom-bib cvsty dancers dashbox dcpic decimal digiconfigs
dinat directory eCards eemeir ellipsis engrec envbig epiolmec epsf
eqparbox eskd ethiop-t1 euro eurosans exam examplep expressg
extarrows extsizes fp fribrief functan gatech-thesis ginpenc greenpoint
hands hitec hvfloat hyperxmp inlinebib invoice isorot isotope jpsj
kalender kerkis keystroke labels layouts lcg leaflet leawood lgreek
limap lipsum listliketab logpap ltablex ltxindex mailing makebox
makecirc makeglos maple mceinleger menu metatex mftinc mhs multicap
mwrite nath nature ntgclass numline ofs ogham oldstyle papercdcase
paresse parrun permute phaistos pittetd plates preprint prettyref
program pseudocode pspicture pst-fr3d pst-math qcm rccol rcsinfo
resume robustindex sae sauerj
updates with changed files, but no added/removed files:
ccaption cdpbundl chem-journal clefval coordsys dingbat dramatist
egplot filecontents lcd maybemath metaobj metaplot mwcls pdfscreen
pst-bar rsc
updates with changes and added/removed files:
dpfloat footbib jurabib
git-svn-id: svn://tug.org/texlive/trunk@2411 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/tools/etc/ctan2tl.new')
-rwxr-xr-x | Build/tools/etc/ctan2tl.new | 168 |
1 files changed, 168 insertions, 0 deletions
diff --git a/Build/tools/etc/ctan2tl.new b/Build/tools/etc/ctan2tl.new new file mode 100755 index 00000000000..1a486865b34 --- /dev/null +++ b/Build/tools/etc/ctan2tl.new @@ -0,0 +1,168 @@ +#!/bin/sh +# $Id: ctan2tl 2084 2006-09-05 22:03:38Z karl $ +# Public domain. Originally written 2005, Karl Berry. +# +# Initial attempt at pushing a ctan directory into TL. +# See ./README for a bit more info. +# +# Basic usage: ctan2tl TLPKGNAME +# --place to include final `place' invocation (repository adds/removes). +# --no-ctan if already have files in ../cdbuild/raw/PKG. +# Unlikely to work without GNU utilities. +# +# This does not actually commit anything to the repository. Without +# --place, it doesn't even create any files in the repository outside of +# cdbuild/{raw,cooked}. + +unset CDPATH # avoid extraneous output + +mydir=`cd \`dirname $0\` && pwd` # Build/tools +raw=$mydir/../cdbuild/raw +test -d $raw || mkdir $raw +cd $raw || exit 1 + +if test "x$1" = x--place; then + place_chicken= + shift +else + place_chicken=-n +fi + +if test "x$1" = x--no-ctan; then + copy_from_ctan=false + shift +else + copy_from_ctan=true +fi + +pkg=$1 +if test -z "$pkg"; then + echo "$0: no TL package name specified." >&2 + exit 1 +fi + +ctan_dir1=`tlpkginfo --ctan-dir $pkg` +if test -z "$ctan_dir1"; then + echo "$0: can't find CTAN directory for $pkg." >&2 + exit 1 +fi +echo "$0: ctan dir for $pkg is $ctan_dir1" + +if $copy_from_ctan; then + +# remove whatever old stuff we might have. +rm -rf $pkg + +# An important special case: the latex-tds project contains tds-ready +# zip files for the base latex distribution and amslatex. +# We want to use them. +corelatex_tds_pkglist="babel|cyrillic|graphics|latex|psnfss|tools" +amslatex_tds_pkglist="ams|amscls|amsltx2|amsmath|amsrefs" # dup in tlpkginfo +latex_tds_pkglist="latex-tds|$amslatex_tds_pkglist|$corelatex_tds_pkglist" + +if echo "$pkg" | egrep "^($latex_tds_pkglist)\$" >/dev/null; then + mkdir $pkg + ctan_root=`tlpkginfo --ctan-root` + # + # complications: the latex-tds package, for our purposes, is the + # sources for the tools that do the process; that's in the zip file + # source.zip, in the latex-tds directory. Similarly, the zip file for + # latex itself is named "base.zip". Finally, amslatex.zip actually + # contains several packages (= directories) -- such as ams, amscls, + # etc. AMS sets it up that way. + # + if test $pkg = latex-tds; then + zipname=source.zip + elif test $pkg = latex; then + zipname=base.zip + elif echo "$pkg" | egrep "^($amslatex_tds_pkglist)\$" >/dev/null; then + zipname=amslatex.zip + else + zipname=$pkg.zip + fi + (cd $pkg && unzip -qq $ctan_root/macros/latex/contrib/latex-tds/$zipname) + +elif test "$pkg" = rsc; then + # single bst file. + mkdir -p $pkg + cp -p $ctan_dir1 $pkg + +elif test "$pkg" = genmisc; then + # do not copy subdirs, symlinks, or any files but .sty and .tex + # (that is, no patch.doc or pmat.zip). + mkdir -p $pkg + cp -p \ + `find $ctan_dir1/* '(' -type d -o -type l ')' -prune -o \ + '(' -name '*.sty' -o -name *.tex ')' -print` \ + $pkg + +else + # normal case (/. to deref symlinks, e.g., arabtex) + cp -pr $ctan_dir1/. $pkg +fi + +# Another special case: annoyingly, tugboat plain and tugboat latex are +# stored in two different places on ctan. we'll assume we're invoked +# with the latex dir, and now arrange to also copy in the plain stuff to +# a `plain' subdirectory, which ctan2tds.pl has a further special case +# to handle. Maybe we'll come across other cases like this, in which +# case we can generalize this. +# +if test "$pkg" = tugboat; then + ctan_dir2=`echo $ctan_dir1 | sed s/latex/plain/` + destdir2=$pkg/plain + cp -r $ctan_dir2 $destdir2 +fi + +fi # end of copying from CTAN. + + +# +printf "\n ctan2tds\n" +rm -rf ../cooked/$pkg +test -d ../cooked || mkdir ../cooked +../ctan2tds.pl $pkg || exit 1 + +cd ../cooked || exit 1 +printf "\n\f cooked\n" +find -depth -type d | xargs rmdir 2>/dev/null +find $pkg \! -type d -printf "%TY%Tm%Td.%TH%TM %p\n" | sort -r +1 + +# compare to tpm. +Master=../../../Master +tpmfile=`ls $Master/texmf*/tpm/$pkg.tpm 2>/dev/null` +if test -z "$tpmfile"; then + echo "$0: no tpm file for $pkg in `cd $Master; pwd`." >&2 +else + printf "\nBEGIN COMPARE DATA" + printf "\n\f new vs. present $tpmfile\n" + rm -f /tmp/pkgfiles.* + # remove leading text in case of lines starting with texmf. + # Then assume all actual files do start with texmf. + sed -n -e '/TPM:.*Files/,$s,^texmf,./texmf,p' $tpmfile \ + | grep -v '\.tpm$' \ + | sort >/tmp/pkgfiles.tpm + # + # list of files in the new package we've just cooked. + (cd $pkg && find \! -type d -print) | grep -v '/cooked/' \ + | sort >/tmp/pkgfiles.new + # + comm -3 /tmp/pkgfiles.new /tmp/pkgfiles.tpm + # + for common_file in `comm -12 /tmp/pkgfiles.new /tmp/pkgfiles.tpm`; do + diff --ignore-all-space -u0 $Master/$common_file $pkg/$common_file + done >/tmp/tldiff + diff_lines=`wc -l </tmp/tldiff` + diff_lines=`expr $diff_lines / 2` + printf "CMP: %d common files, ~%d lines different (/tmp/tldiff)\n" \ + `comm -12 /tmp/pkgfiles.new /tmp/pkgfiles.tpm | wc -l` $diff_lines + printf "\nEND COMPARE DATA\n" +fi + +printf "\n\f place $place_chicken\n" +rm -rf $pkg.done +../place $place_chicken $pkg +status=$? + +rm -rf ../raw/$pkg +exit $status |