diff options
Diffstat (limited to 'Master/tlpkg')
-rwxr-xr-x | Master/tlpkg/bin/tlpkg-ctan-check | 2 | ||||
-rwxr-xr-x | Master/tlpkg/libexec/ctan2tds | 103 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/collection-binextra.tlpsrc | 1 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/texdef.tlpsrc | 1 |
4 files changed, 72 insertions, 35 deletions
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index cd18ce36c11..65db602ba91 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -335,7 +335,7 @@ my @TLP_working = qw( tensor termcal termlist teubner tex-ewd tex-font-errors-cheatsheet tex-gyre tex-label tex-overview texapi texcount - texdiff texdirflatten texilikechaps texilikecover + texdef texdiff texdirflatten texilikechaps texilikecover texloganalyser texlogos texmate texments texpower texshade textcase textfit textmerg textopo textpath textpos tfrupee diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds index 2d2e22a2a54..05edd2cff57 100755 --- a/Master/tlpkg/libexec/ctan2tds +++ b/Master/tlpkg/libexec/ctan2tds @@ -40,7 +40,10 @@ chdir "../tmp.cooked" || die "chdir(../tmp.cooked) failed: $!"; $COOKED_TOP = getcwd(); # output (cooked) directory paren chdir $RAW_DIR || die "chdir($RAW_DIR) failed: $!"; # back to raw -$Master = "$mydir/../.."; +# the real Master and Build tree. +chomp ($Master = `cd $mydir/../.. && pwd`); +chomp ($Build = `cd $Master/../Build/source && pwd`); + # # packages to treat entirely on their own, or not at all. @@ -1888,6 +1891,7 @@ $standardxmt='\.xmt'; 'sty2dtx' => '\.pl$', 'svn-multi' => 'svn-multi\.pl$', 'texcount' => '\.pl$', + 'texdef' => '\.pl$', 'texdiff' => 'texdiff$', 'texdirflatten' => 'texdirflatten$', 'texloganalyser' => 'texloganalyser', @@ -2015,7 +2019,7 @@ for (@ARGV) { $package = pop (@x); my $COOKED_PKG = "$COOKED_TOP/$package"; # output directory - if ($package eq "biber") { # later anything with scripts + if ($package =~ /^(biber|texdef)$/) { # later anything with scripts $BUILDDEST = "$COOKED_PKG/Build/source"; $TOPDEST = "$COOKED_PKG/Master"; } else { @@ -2328,8 +2332,7 @@ sub donormal &do_posthook (); } -sub runins -{ +sub runins { my ($thispatt) = @_; print "\t RUNINS $thispatt\n"; for (grep (/$thispatt/, @filenames)) { @@ -2340,8 +2343,7 @@ sub runins &killfiles ($specialclean{$package} || $standardclean); } -sub install -{ +sub install { my ($destdir,$thispatt) = @_; return unless $thispatt; @@ -2479,35 +2481,78 @@ sub dotype1{ &install("$DEST/fonts/sfd/$package", $sfdpatt); } + + # scripts. Make them executable even if it isn't always necessary. # Build/source/tex/texlive/linked_scripts/Makefile.am installs symlinks # in the bin directories where needed. That Makefile is independently -# maintained, needs to updated by hand when new user-visible scripts are -# added. +# maintained, needs to be updated by hand when new user-visible scripts +# are added. We do add/update the script itself under linked_scripts. +# We also make the symlinks/w32-wrapper-copy in Master/bin when new. # -sub doscripts -{ - my $scriptpatt = $specialscripts{$package}; - return unless $scriptpatt; - &install ("$DEST/scripts/$package", $scriptpatt); - &SYSTEM ("chmod a+x $DEST/scripts/$package/*"); +sub doscripts { + my $scriptpatt = $specialscripts{$package}; + return unless $scriptpatt; + + &install ("$DEST/scripts/$package", $scriptpatt); + &SYSTEM ("chmod a+x $DEST/scripts/$package/*"); + + return unless $package eq "texdef"; # xx just testing this one for now + # update the copy in Build, too. + my $build_tldir = "texk/texlive"; + my $build_scriptsdir = "$build_tldir/linked_scripts"; + my $builddir = "$BUILDDEST/$build_scriptsdir/$package"; + &xmkdir ($builddir); + &SYSTEM ("$CP $DEST/scripts/$package/* $builddir/"); + + # List of scripts we're installing. + chomp (my @scripts = `cd $builddir && ls`); + + # For each, give a warning if missing from the Makefile.am in the sources. + # Also, if not already present, create the platform-specific bindir entries. + # + my $scripts_Makefile = "$Build/$build_scriptsdir/Makefile.am"; + chomp (my @platforms = `cd $Master/bin && ls`); + # + for my $s (@scripts) { + system ("grep $package/$s $scripts_Makefile >&/dev/null"); + if ($? != 0) { + print "*** $package/$s not in $scripts_Makefile\n"; + } + + (my $linkname = $s) =~ s/\..*$//; + next if -e "$Master/bin/i386-linux/$linkname"; # already there, move on + for my $p (@platforms) { + my $platdir = "$TOPDEST/bin/$p"; + &xmkdir ($platdir); + if ($p ne "win32") { + my $linktarget = "../../$dest_tree/scripts/$package/$s"; + &SYSTEM ("ln -s $linktarget $platdir/$linkname"); + } else { + # Windows. If a shell script, skip. Else copy the wrapper. + next if $s =~ /\.sh$|^[^.]+$/; + my $w32_wrapper = "$Build/$build_tldir/w32_wrapper/runscript.exe"; + &SYSTEM ("$CP $w32_wrapper $platdir/$linkname.exe"); + } + } + } } + + # info files. We put these in texmf/doc/info, which is where we keep # the info files for the programs, too. Having an info dir in # texmf-dist also would imply lots of changes in the installer, and # there seems to be no gain. # -sub doinfos -{ +sub doinfos { my $infopatt = $specialinfos{$package}; return unless $infopatt; &install ("$TOPDEST/texmf/doc/info/", $infopatt); } # xmltex files -sub doxmt -{ +sub doxmt { my $xmtpatt = $specialxmt{$package} || $standardxmt; &install ("$DEST/tex/xmltex/$package", $xmtpatt); } @@ -4109,8 +4154,6 @@ sub POSTbiber { my %tl_platform = ( "MSWIN" => "win32", "cygwin32" => "i386-cygwin", - "amd64-freebsd7" => "amd64-freebsd", - "i386-freebsd7" => "i386-freebsd", "darwin_x86_i386" => "universal-darwin", "darwin_x86_64" => "x86_64-darwin", "linux_x86_32" => "i386-linux", @@ -4121,12 +4164,10 @@ sub POSTbiber { # handle the prebuilt binaries, which are zipped or tarred. for my $archive (sort (<biber-*>)) { - next if $archive =~ /freebsd[68]$/; # we only want freebsd7 + next if $archive =~ /freebsd[68]\./; # we only want freebsd7 - my ($unarchiver,$post) = &biber_unarchiver ($archive); + my $unarchiver = &biber_unarchiver ($archive); &SYSTEM ("$unarchiver $archive"); - (my $archive_file = $archive) =~ s/\..z$//; # for x86-solaris.xz - &SYSTEM ("$post $archive_file* biber") if $post; # each .tar.gz unpacks into a single file named biber, # .zip unpacks into biber.exe. @@ -4158,25 +4199,19 @@ sub POSTbiber { # biber binaries are distributed in a variety of ways. The idea here is # to specify the commands that will get from the distribution on CTAN to # a binary named "biber". -sub biber_unarchiver { +# +sub unarchiver { my ($archive) = @_; - my ($unarch,$post) = ("", ""); + my ($unarch) = ("", ""); if ($archive =~ /\.tar\./) { $unarch = "tar xf"; - } elsif ($archive =~ /\.xz$/) { - $unarch = "unxz"; - $post = "cp"; } elsif ($archive =~ /\.zip$/) { $unarch = "unzip -q"; - } elsif ($archive =~ /freebsd.$/) { - $unarch = "true"; - $post = "cp"; } else { - print "hello $archive?\n"; die "do not know unarchiver for $archive"; } - return ($unarch,$post); + return $unarch; } sub POSTbibtex { diff --git a/Master/tlpkg/tlpsrc/collection-binextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-binextra.tlpsrc index 106e5bfe214..2596f562869 100644 --- a/Master/tlpkg/tlpsrc/collection-binextra.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-binextra.tlpsrc @@ -45,6 +45,7 @@ depend seetexk depend sty2dtx depend synctex depend texcount +depend texdef depend texdiff depend texdirflatten depend texdoc diff --git a/Master/tlpkg/tlpsrc/texdef.tlpsrc b/Master/tlpkg/tlpsrc/texdef.tlpsrc new file mode 100644 index 00000000000..9e971494919 --- /dev/null +++ b/Master/tlpkg/tlpsrc/texdef.tlpsrc @@ -0,0 +1 @@ +binpattern f bin/${ARCH}/texdef |