diff options
author | Norbert Preining <preining@logic.at> | 2008-04-03 12:24:19 +0000 |
---|---|---|
committer | Norbert Preining <preining@logic.at> | 2008-04-03 12:24:19 +0000 |
commit | 7bda7674a42eb06786f00ada40384cff686b5721 (patch) | |
tree | 5e81ac5a5362775bda2e2217e9b729815a6a0802 | |
parent | 9cb8984c9ec2243119dffa70e98f642501d68c04 (diff) |
work on tlmgr
git-svn-id: svn://tug.org/texlive/trunk@7291 c570f23f-e606-0410-a88d-b1316a301751
25 files changed, 418 insertions, 447 deletions
diff --git a/Build/source/texk/texlive/Makefile.in b/Build/source/texk/texlive/Makefile.in index fd2a35cd0ef..92fa6206f46 100644 --- a/Build/source/texk/texlive/Makefile.in +++ b/Build/source/texk/texlive/Makefile.in @@ -9,7 +9,7 @@ kpse_include ../make/programs.mk LIVESCRIPTS = simpdftex \ ebong getnonfreefonts giftopng \ pdfthumb wordcount.sh \ - texlua-perl-runner + tlmgr TEXLUARUNNERS = diff --git a/Master/bin/alpha-linux/tl-package-manager b/Master/bin/alpha-linux/tl-package-manager deleted file mode 120000 index 90fc2c5381f..00000000000 --- a/Master/bin/alpha-linux/tl-package-manager +++ /dev/null @@ -1 +0,0 @@ -../../texmf/scripts/texlive/tl-package-manager.pl
\ No newline at end of file diff --git a/Master/bin/hppa-hpux/tl-package-manager b/Master/bin/hppa-hpux/tl-package-manager deleted file mode 120000 index 90fc2c5381f..00000000000 --- a/Master/bin/hppa-hpux/tl-package-manager +++ /dev/null @@ -1 +0,0 @@ -../../texmf/scripts/texlive/tl-package-manager.pl
\ No newline at end of file diff --git a/Master/bin/i386-darwin/tl-package-manager b/Master/bin/i386-darwin/tl-package-manager deleted file mode 120000 index 90fc2c5381f..00000000000 --- a/Master/bin/i386-darwin/tl-package-manager +++ /dev/null @@ -1 +0,0 @@ -../../texmf/scripts/texlive/tl-package-manager.pl
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/tl-package-manager b/Master/bin/i386-freebsd/tl-package-manager deleted file mode 120000 index 90fc2c5381f..00000000000 --- a/Master/bin/i386-freebsd/tl-package-manager +++ /dev/null @@ -1 +0,0 @@ -../../texmf/scripts/texlive/tl-package-manager.pl
\ No newline at end of file diff --git a/Master/bin/i386-linux/tl-package-manager b/Master/bin/i386-linux/tl-package-manager deleted file mode 120000 index 90fc2c5381f..00000000000 --- a/Master/bin/i386-linux/tl-package-manager +++ /dev/null @@ -1 +0,0 @@ -../../texmf/scripts/texlive/tl-package-manager.pl
\ No newline at end of file diff --git a/Master/bin/i386-linux/tlmgr b/Master/bin/i386-linux/tlmgr new file mode 100755 index 00000000000..7dcc72ca73c --- /dev/null +++ b/Master/bin/i386-linux/tlmgr @@ -0,0 +1,185 @@ +#! /usr/bin/env texlua +--*-Lua-*- +-- $Id: tlmgr.texlua 7030 2008-03-19 21:52:43Z reinhardk $ + +-- Copyright (C) 2008 Reinhard Kotucha, Norbert Preining. +-- You may freely use, modify and/or distribute this file. + +-- tlmgr +-- one central managment utility for TeX Live +-- it calls several supporting scripts from texmf/scripts/texlive +-- and other places +-- +-- Currently supported arguments +-- help local, not implemented +-- generate-fmtutil generate-fmtutil.pl +-- generate-updmap generate-updmap.pl +-- generate-language generate-language.pl +-- install tl-package-manager.pl +-- remove tl-package-manager.pl +-- search tl-package-manager.pl +-- globalsearch tl-package-manager.pl + +function fixwin(args_unix) + if os.type == 'windows' then + local args_win={} -- new table + args_win[0]=args_unix[1] + for i=1, #args_unix do + args_win[i]='"'..args_unix[i]..'"' + end + return args_win + else + return args_unix + end +end + +function setupperl() + -- For Windows we use the shipped perl interpreter, otherwise we expect + -- a perl to be installed + if os.type == 'windows' then + perlbin=TEXDIR..'/tlpkg/tlperl/bin/perl.exe' + os.setenv('PERL5LIB', TEXDIR..'/tlpkg/tlperl/lib') + else + perlbin = 'perl' + end +end + +function findscript(scriptname) + script = kpse.find_file(scriptname, 'texmfscripts') + if script then + return script + else + io.stderr:write(filename..': Cannot find script '..scriptname) + return false + end +end + +function rmdir(dirn) + if os.type == 'windows' then + ret = os.spawn({"rmdir", "/s", "/q", dirn}) + else + ret = os.spawn({"rm", "-rf", dirn}) + end + if ret then + return ret + else + io.stderr:write(filename..': removing '..dirn.." didn't work") + end + return ret +end + +if string.find(arg[0], '/') then -- UNIX path + filename=select(1, string.gsub(arg[0], '.*/', '')) +elseif string.find(arg[0], '\\') then -- Windows path + filename=select(1, string.gsub(arg[0], '.*\\', '')) +else -- no path + filename=arg[0] +end + + +basename=select(1, string.gsub(filename, '\.texlua$', '')) + +kpse.set_program_name(filename, basename) +TEXDIR=kpse.var_value('SELFAUTOPARENT') +TEXMFSYSVAR=kpse.var_value('TEXMFSYSVAR') +BINDIR=kpse.var_value('SELFAUTOLOC') + + +if arg[1] == 'help' then + print ("Usage: not implemented") + os.exit(0) +end + +if arg[1] == 'uninstall' then + print ("removing the whole installation") + -- we have to call perl uninstall-tl.pl AND have to remove the following files: + -- TEXDIR/texmf{,-dist,-doc,-var,-config,}, TEXDIR/bin, TEXDIR/tlpkg, TEXDIR/install-tl.log + -- TEXMFSYSVAR + -- that should remove all the stuff + -- Or other options? + setupperl() + script = findscript('uninstall-tl.pl') + if script then + command = { perlbin, script } + else + os.exit(1) + end + for i=1, #arg do + command[#command+1] = arg[i] + end + command = fixwin(command) + ret = os.spawn(command) + -- here we should check the return value!!! + if not ret then + io.stderr:write(filename..': The removal script uninstall-tl.pl returned false\n') + io.stderr:write(filename..": We don't continue removing stuff\n") + os.exit(1) + end + -- on windows we have now removed the associations etc, while + -- on unix we have removed the symlinks in case they were present + -- + -- now we have to remove all the files and directories + rmdir(TEXDIR.."/texmf-dist") + rmdir(TEXDIR.."/texmf-doc") + rmdir(TEXDIR.."/texmf-var") + rmdir(TEXDIR.."/texmf-config") + rmdir(TEXDIR.."/texmf") + rmdir(TEXDIR.."/tlpkg") + os.remove(TEXDIR.."/install-tl.log") + rmdir(TEXDIR.."/bin") + -- now everything should be removed, try to remove also TEXDIR + os.remove(TEXDIR) + os.exit(0) +end + +if arg[1] == 'generate-fmtutil' then + setupperl() + script = findscript('generate-fmtutil.pl') + if script then + command = { perlbin, script } + else + os.exit(1) + end +end + +if arg[1] == 'generate-language' then + setupperl() + script = findscript('generate-language.pl') + if script then + command = { perlbin, script } + else + os.exit(1) + end +end + +if arg[1] == 'generate-updmap' then + setupperl() + script = findscript('generate-updmap.pl') + if script then + command = { perlbin, script } + else + os.exit(1) + end +end + +if arg[1] == 'install' or arg[1] == 'remove' or arg[1] == 'search' or + arg[1] == 'globalsearch' then + setupperl() + script = findscript('tl-package-manager.pl') + if script then + command = { perlbin, script } + else + os.exit(1) + end +end + +for i=1, #arg do + command[#command+1]=arg[i] +end + +command=fixwin(command) + +ret=os.spawn(command) +os.exit(ret) + + diff --git a/Master/bin/i386-openbsd/tl-package-manager b/Master/bin/i386-openbsd/tl-package-manager deleted file mode 120000 index 90fc2c5381f..00000000000 --- a/Master/bin/i386-openbsd/tl-package-manager +++ /dev/null @@ -1 +0,0 @@ -../../texmf/scripts/texlive/tl-package-manager.pl
\ No newline at end of file diff --git a/Master/bin/i386-solaris/tl-package-manager b/Master/bin/i386-solaris/tl-package-manager deleted file mode 120000 index 90fc2c5381f..00000000000 --- a/Master/bin/i386-solaris/tl-package-manager +++ /dev/null @@ -1 +0,0 @@ -../../texmf/scripts/texlive/tl-package-manager.pl
\ No newline at end of file diff --git a/Master/bin/mips-irix/tl-package-manager b/Master/bin/mips-irix/tl-package-manager deleted file mode 120000 index 90fc2c5381f..00000000000 --- a/Master/bin/mips-irix/tl-package-manager +++ /dev/null @@ -1 +0,0 @@ -../../texmf/scripts/texlive/tl-package-manager.pl
\ No newline at end of file diff --git a/Master/bin/powerpc-aix/tl-package-manager b/Master/bin/powerpc-aix/tl-package-manager deleted file mode 120000 index 90fc2c5381f..00000000000 --- a/Master/bin/powerpc-aix/tl-package-manager +++ /dev/null @@ -1 +0,0 @@ -../../texmf/scripts/texlive/tl-package-manager.pl
\ No newline at end of file diff --git a/Master/bin/powerpc-darwin/tl-package-manager b/Master/bin/powerpc-darwin/tl-package-manager deleted file mode 120000 index 90fc2c5381f..00000000000 --- a/Master/bin/powerpc-darwin/tl-package-manager +++ /dev/null @@ -1 +0,0 @@ -../../texmf/scripts/texlive/tl-package-manager.pl
\ No newline at end of file diff --git a/Master/bin/powerpc-linux/tl-package-manager b/Master/bin/powerpc-linux/tl-package-manager deleted file mode 120000 index 90fc2c5381f..00000000000 --- a/Master/bin/powerpc-linux/tl-package-manager +++ /dev/null @@ -1 +0,0 @@ -../../texmf/scripts/texlive/tl-package-manager.pl
\ No newline at end of file diff --git a/Master/bin/sparc-linux/tl-package-manager b/Master/bin/sparc-linux/tl-package-manager deleted file mode 120000 index 90fc2c5381f..00000000000 --- a/Master/bin/sparc-linux/tl-package-manager +++ /dev/null @@ -1 +0,0 @@ -../../texmf/scripts/texlive/tl-package-manager.pl
\ No newline at end of file diff --git a/Master/bin/sparc-solaris/tl-package-manager b/Master/bin/sparc-solaris/tl-package-manager deleted file mode 120000 index 90fc2c5381f..00000000000 --- a/Master/bin/sparc-solaris/tl-package-manager +++ /dev/null @@ -1 +0,0 @@ -../../texmf/scripts/texlive/tl-package-manager.pl
\ No newline at end of file diff --git a/Master/bin/win32/tl-package-manager.texlua b/Master/bin/win32/tl-package-manager.texlua deleted file mode 100755 index c808e94b5a9..00000000000 --- a/Master/bin/win32/tl-package-manager.texlua +++ /dev/null @@ -1,85 +0,0 @@ -#! /usr/bin/env texlua ---*-Lua-*- --- $Id: fmtutil-sys.texlua 7030 2008-03-19 21:52:43Z reinhardk $ - --- Copyright (C) 2007 Reinhard Kotucha, Norbert Preining. --- You may freely use, modify and/or distribute this file. - --- Wrapper for scripts. - -function fixwin(args_unix) - if os.type == 'windows' then - local args_win={} -- new table - args_win[0]=args_unix[1] - for i=1, #args_unix do - args_win[i]='"'..args_unix[i]..'"' - end - return args_win - else - return args_unix - end -end - -if string.find(arg[0], '/') then -- UNIX path - filename=select(1, string.gsub(arg[0], '.*/', '')) -elseif string.find(arg[0], '\\') then -- Windows path - filename=select(1, string.gsub(arg[0], '.*\\', '')) -else -- no path - filename=arg[0] -end - -basename=select(1, string.gsub(filename, '\.texlua$', '')) - -sys=false - -if string.find(basename, '-sys$') then - basename=select(1, string.gsub(basename, '-sys$', '')) - sys=true -end - -kpse.set_program_name(filename, basename) -TEXDIR=kpse.var_value('SELFAUTOPARENT') -BINDIR=kpse.var_value('SELFAUTOLOC') - -perlbin=TEXDIR..'/tlpkg/tlperl/bin/perl.exe' - -os.setenv('PERL5LIB', TEXDIR..'/tlpkg/tlperl/lib') -os.setenv('GS_LIB', TEXDIR..'/tlpkg/tlgs/lib') -os.setenv('PATH', TEXDIR..'/tlpkg/tlgs/bin;'..os.getenv('PATH')) - -if sys then - os.setenv('TEXMFVAR', kpse.var_value('TEXMFSYSVAR')) - os.setenv('TEXMFCONFIG', kpse.var_value('TEXMFSYSCONFIG')) - os.setenv('TEX_SYS_PROG', 'true') -end - -if sys and lfs.isfile(BINDIR..'/'..basename..'.exe') then - command={BINDIR..'/'..basename..'.exe'} -elseif lfs.isfile(BINDIR..'/'..basename..'-bin.exe') then - command={BINDIR..'/'..basename..'-bin.exe'} -elseif lfs.isfile(BINDIR..'/'..basename..'.pl') then - script=BINDIR..'/'..basename..'.pl' - command={perlbin, script} -elseif kpse.find_file(basename..'.pl', 'texmfscripts') then - script=kpse.find_file(basename..'.pl', 'texmfscripts') - command={perlbin, script} -else - io.stderr:write(filename..'.texlua: '..basename.. - ': No appropriate script found.\n') -end - -for i=1, #arg do - command[#command+1]=arg[i] -end - -command=fixwin(command) - ---[[ Prepend an additional hyphen to activate this code. -for i=0, #command do - print (command[i]) -end -os.exit(ret) ---]] - -ret=os.spawn(command) -os.exit(ret) diff --git a/Master/bin/win32/tlmgr.texlua b/Master/bin/win32/tlmgr.texlua new file mode 100755 index 00000000000..7dcc72ca73c --- /dev/null +++ b/Master/bin/win32/tlmgr.texlua @@ -0,0 +1,185 @@ +#! /usr/bin/env texlua +--*-Lua-*- +-- $Id: tlmgr.texlua 7030 2008-03-19 21:52:43Z reinhardk $ + +-- Copyright (C) 2008 Reinhard Kotucha, Norbert Preining. +-- You may freely use, modify and/or distribute this file. + +-- tlmgr +-- one central managment utility for TeX Live +-- it calls several supporting scripts from texmf/scripts/texlive +-- and other places +-- +-- Currently supported arguments +-- help local, not implemented +-- generate-fmtutil generate-fmtutil.pl +-- generate-updmap generate-updmap.pl +-- generate-language generate-language.pl +-- install tl-package-manager.pl +-- remove tl-package-manager.pl +-- search tl-package-manager.pl +-- globalsearch tl-package-manager.pl + +function fixwin(args_unix) + if os.type == 'windows' then + local args_win={} -- new table + args_win[0]=args_unix[1] + for i=1, #args_unix do + args_win[i]='"'..args_unix[i]..'"' + end + return args_win + else + return args_unix + end +end + +function setupperl() + -- For Windows we use the shipped perl interpreter, otherwise we expect + -- a perl to be installed + if os.type == 'windows' then + perlbin=TEXDIR..'/tlpkg/tlperl/bin/perl.exe' + os.setenv('PERL5LIB', TEXDIR..'/tlpkg/tlperl/lib') + else + perlbin = 'perl' + end +end + +function findscript(scriptname) + script = kpse.find_file(scriptname, 'texmfscripts') + if script then + return script + else + io.stderr:write(filename..': Cannot find script '..scriptname) + return false + end +end + +function rmdir(dirn) + if os.type == 'windows' then + ret = os.spawn({"rmdir", "/s", "/q", dirn}) + else + ret = os.spawn({"rm", "-rf", dirn}) + end + if ret then + return ret + else + io.stderr:write(filename..': removing '..dirn.." didn't work") + end + return ret +end + +if string.find(arg[0], '/') then -- UNIX path + filename=select(1, string.gsub(arg[0], '.*/', '')) +elseif string.find(arg[0], '\\') then -- Windows path + filename=select(1, string.gsub(arg[0], '.*\\', '')) +else -- no path + filename=arg[0] +end + + +basename=select(1, string.gsub(filename, '\.texlua$', '')) + +kpse.set_program_name(filename, basename) +TEXDIR=kpse.var_value('SELFAUTOPARENT') +TEXMFSYSVAR=kpse.var_value('TEXMFSYSVAR') +BINDIR=kpse.var_value('SELFAUTOLOC') + + +if arg[1] == 'help' then + print ("Usage: not implemented") + os.exit(0) +end + +if arg[1] == 'uninstall' then + print ("removing the whole installation") + -- we have to call perl uninstall-tl.pl AND have to remove the following files: + -- TEXDIR/texmf{,-dist,-doc,-var,-config,}, TEXDIR/bin, TEXDIR/tlpkg, TEXDIR/install-tl.log + -- TEXMFSYSVAR + -- that should remove all the stuff + -- Or other options? + setupperl() + script = findscript('uninstall-tl.pl') + if script then + command = { perlbin, script } + else + os.exit(1) + end + for i=1, #arg do + command[#command+1] = arg[i] + end + command = fixwin(command) + ret = os.spawn(command) + -- here we should check the return value!!! + if not ret then + io.stderr:write(filename..': The removal script uninstall-tl.pl returned false\n') + io.stderr:write(filename..": We don't continue removing stuff\n") + os.exit(1) + end + -- on windows we have now removed the associations etc, while + -- on unix we have removed the symlinks in case they were present + -- + -- now we have to remove all the files and directories + rmdir(TEXDIR.."/texmf-dist") + rmdir(TEXDIR.."/texmf-doc") + rmdir(TEXDIR.."/texmf-var") + rmdir(TEXDIR.."/texmf-config") + rmdir(TEXDIR.."/texmf") + rmdir(TEXDIR.."/tlpkg") + os.remove(TEXDIR.."/install-tl.log") + rmdir(TEXDIR.."/bin") + -- now everything should be removed, try to remove also TEXDIR + os.remove(TEXDIR) + os.exit(0) +end + +if arg[1] == 'generate-fmtutil' then + setupperl() + script = findscript('generate-fmtutil.pl') + if script then + command = { perlbin, script } + else + os.exit(1) + end +end + +if arg[1] == 'generate-language' then + setupperl() + script = findscript('generate-language.pl') + if script then + command = { perlbin, script } + else + os.exit(1) + end +end + +if arg[1] == 'generate-updmap' then + setupperl() + script = findscript('generate-updmap.pl') + if script then + command = { perlbin, script } + else + os.exit(1) + end +end + +if arg[1] == 'install' or arg[1] == 'remove' or arg[1] == 'search' or + arg[1] == 'globalsearch' then + setupperl() + script = findscript('tl-package-manager.pl') + if script then + command = { perlbin, script } + else + os.exit(1) + end +end + +for i=1, #arg do + command[#command+1]=arg[i] +end + +command=fixwin(command) + +ret=os.spawn(command) +os.exit(ret) + + diff --git a/Master/bin/x86_64-linux/tl-package-manager b/Master/bin/x86_64-linux/tl-package-manager deleted file mode 120000 index 90fc2c5381f..00000000000 --- a/Master/bin/x86_64-linux/tl-package-manager +++ /dev/null @@ -1 +0,0 @@ -../../texmf/scripts/texlive/tl-package-manager.pl
\ No newline at end of file diff --git a/Master/install-tl.pl b/Master/install-tl.pl index e3346f83310..86f8720f2b8 100755 --- a/Master/install-tl.pl +++ b/Master/install-tl.pl @@ -797,10 +797,6 @@ sub save_options_into_tlpdb { if ($vars{'option_src'}) { push @deps, "srcfiles"; } - push @deps, "TEXDIR/$vars{'TEXDIR'}"; - push @deps, "TEXMFSYSVAR/$vars{'TEXMFSYSVAR'}"; - push @deps, "TEXMFLOCAL/$vars{'TEXMFLOCAL'}"; - push @deps, "TEXMFHOME/$vars{'TEXMFHOME'}"; $tlp->depends(@deps); $localtlpdb->add_tlpobj($tlp); $localtlpdb->save(); diff --git a/Master/tlpkg/TeXLive/TLPDB.pm b/Master/tlpkg/TeXLive/TLPDB.pm index a584754b26e..4585c0e6ff7 100644 --- a/Master/tlpkg/TeXLive/TLPDB.pm +++ b/Master/tlpkg/TeXLive/TLPDB.pm @@ -757,10 +757,6 @@ sub option_srcfiles { my $self = shift; return $self->_option_setting("srcfiles" sub option_formats { my $self = shift; return $self->_option_setting("formats"); } sub option_letter { my $self = shift; return $self->_option_setting("letter"); } sub option_location { my $self = shift; return $self->_option_value("location"); } -sub option_TEXDIR { my $self = shift; return $self->_option_value("TEXDIR"); } -sub option_TEXMFSYSVAR { my $self = shift; return $self->_option_value("TEXMFSYSVAR"); } -sub option_TEXMFLOCAL { my $self = shift; return $self->_option_value("TEXMFLOCAL"); } -sub option_TEXMFHOME { my $self = shift; return $self->_option_value("TEXMFHOME"); } sub option_sys_bin { my $self = shift; return $self->_option_value("sys_bin"); } sub option_sys_man { my $self = shift; return $self->_option_value("sys_man"); } sub option_sys_info { my $self = shift; return $self->_option_value("sys_info"); } diff --git a/Master/tlpkg/installer/uninstall-tl.bat b/Master/tlpkg/installer/uninstall-tl.bat deleted file mode 100755 index 4f149d7c0f3..00000000000 --- a/Master/tlpkg/installer/uninstall-tl.bat +++ /dev/null @@ -1,32 +0,0 @@ -@echo off
-
-rem TeX Live Root; ends with backslash
-rem This should also work with UNC names
-set tlsub=%~dp0
-set tldrive=%~d0
-
-%tldrive%
-cd %tlsub%
-
-rem use provided Perl
-
-set PERL5SAVE=%PERL5LIB%
-
-set PERL5LIB=%tlsub%..\tlperl\lib
-"%tlsub%..\tlperl\bin\perl" "%~dpn0.pl" %1 %2 %3 %4 %5 %6 %7 %8 %9
-
-rem remove files that are in use by the perl un-installer
-rmdir /s /q %tlsub%..\tlperl
-rmdir /s /q %tlsub%..\..\temp
-del /q %tlsub%..\texlive.tlpdb
-cd %tlsub%..\..
-rmdir /s /q tlpkg
-del /q install-tl.log
-rem pause Done
-
-rem cleanup in case of start from command-line
-
-set PERL5LIB=%PERL5SAVE%
-set PERL5SAVE=
-set tldrive=
-set tlsub=
diff --git a/Master/tlpkg/installer/uninstall-tl.pl b/Master/tlpkg/installer/uninstall-tl.pl deleted file mode 100755 index 0f4fcecfe83..00000000000 --- a/Master/tlpkg/installer/uninstall-tl.pl +++ /dev/null @@ -1,194 +0,0 @@ -#!/usr/bin/env perl - -# $Id: uninstall-tl.pl 6381 2008-01-23 17:50:54Z preining $ -# uninstall-tl.pl -# -# Copyright 2008 Norbert Preining, Siep Kroonenberg -# This file is licensed under the GNU General Public License version 2 -# or any later version. -# - - -my $me; - -BEGIN { - $^W = 1; - $me=$0; - $me=~s!\\!/!g if $^O=~/^MSWin(32|64)$/i; - if ($me =~ m!/!) { - $me=~s!(.*)/[^/]+/[^/]*$!$1!; # parent - } else { - $me='./..'; - } - unshift (@INC, $me); -} - -use TeXLive::TLWinGoo; -use TeXLive::TLPDB; -use Cwd qw/abs_path/; -use strict; - -&main (); - -sub win32 -{ - return ($^O=~/^MSWin(32|64)$/i ? 1 : 0); -} - -sub main -{ - # get the db. - my $Master = abs_path("$me/.."); # another step up - my $tlpdb = TeXLive::TLPDB->new ("root" => "$Master"); - my $opt_symlinks = 0; - my ($sys_bin,$sys_info,$sys_man); - my ($texdir,$texmflocal,$texmfhome,$texmfsysvar); - if ($tlpdb) { - my $tlp = $tlpdb->get_package("00texlive-installation.config"); - if (defined($tlp)) { - my @deps = $tlp->depends; - foreach my $d (@deps) { - $opt_symlinks = 1 if ($d =~ m/^option_symlinks$/); - if ($d =~ m;^sys_bin/(.*)$;) { $sys_bin = $1 ; } - if ($d =~ m;^sys_man/(.*)$;) { $sys_man = $1 ; } - if ($d =~ m;^sys_info/(.*)$;) { $sys_info = $1 ; } - if ($d =~ m;^TEXDIR/(.*)$;) { $texdir = $1 ; } - if ($d =~ m;^TEXMFHOME/(.*)$;) { $texmfhome = $1 ; } - if ($d =~ m;^TEXMFSYSVAR/(.*)$;) { $texmfsysvar = $1 ; } - if ($d =~ m;^TEXMFLOCAL/(.*)$;) { $texmflocal = $1 ; } - } - } - } else { - warn("Cannot find tlpdb in $Master!\n"); - } - # we have to - # - (win32) remove the entry of bin/arch from the PATH environment - # - (unix) remove the links if opt_symlinks - # - (win32) remove the .texlua association - # - (win32) remove the entry of PATHEXT - # - (unix) ... the links - if (win32()) { - remove_texbindirs_from_path(); - unregister_script_type(".texlua"); - broadcast_env(); - update_assocs(); - # remove all the directories - system("rmdir /s /q \"$Master\\texmf-dist\""); - system("rmdir /s /q \"$Master\\texmf-doc\""); - system("rmdir /s /q \"$Master\\texmf-var\""); - system("rmdir /s /q \"$Master\\texmf-config\""); - system("rmdir /s /q \"$Master\\texmf\""); - system("rmdir /s /q \"$Master\\bin\""); - system("del /q \"$Master\\install-tl.log\""); - # that cannot be removed that easily, some files are in use ... - # so we move that to the .bat file - # tlpkg\bin\uninstall-tl.pl - # tlpkg\bin - # tlpkg\texlive.tlpdb - # tlpkg\tlperl\bin - # tlpkg\tlperl\lib - #system("rmdir /s /q \"$Master\\tlpkg\""); - # now everything should be removed ... - system("rmdir /q \"$Master\""); - } else { - # remove the links missing - if ($opt_symlinks) { - my @files; - if ((-d "$sys_bin") && (-w "$sys_bin")) { - my $plat_bindir; - if (-l "$sys_bin/pdftex") { - my $fullpath = readlink("$sys_bin/pdftex"); - if ($fullpath =~ m;^$Master/bin/(.*)/[^/]*$;) { - $plat_bindir = $1; - } - } else { - warn "$sys_bin/pdftex not present or not a link, not removing any link of binaries!\n"; - } - if ($plat_bindir) { - @files = `ls "$Master/bin/$plat_bindir"`; - chomp(@files); - foreach my $f (@files) { - next if (! -r "$sys_bin/$f"); - if ((-l "$sys_bin/$f") && - (readlink("$sys_bin/$f") =~ m;^$Master/bin/$plat_bindir/;)) { - unlink("$sys_bin/$f"); - } else { - warn ("not removing $sys_bin/$f, not a link or wrong destination!\n"); - } - } - } - `rmdir "$sys_bin" 2>/dev/null`; - } else { - warn "destination of bin symlink $sys_bin not writable, no removal of links of bin files done!\n"; - } - # info files - if (-w $sys_info) { - @files = `ls "$Master/texmf/doc/info"`; - chomp(@files); - foreach my $f (@files) { - next if (! -r "$sys_info/$f"); - if ((-l "$sys_info/$f") && - (readlink("$sys_info/$f") =~ m;^$Master/texmf/doc/info/;)) { - unlink("$sys_info/$f"); - } else { - warn ("not removing $sys_info/$f, not a link or wrong destination!\n"); - } - } - `rmdir "$sys_info" 2>/dev/null`; - } else { - warn "destination of info symlink $sys_info not writable, no removal of links of info files done!\n"; - } - # man files - if (-w $sys_man) { - my $foo = `(cd "$Master/texmf/doc/man" && echo *)`; - my @mans = split ' ', $foo; - chomp(@mans); - foreach my $m (@mans) { - my $mandir = "$Master/texmf/doc/man/$m"; - next unless -d $mandir; - next unless -d "$sys_man/$m"; - @files = `ls "$mandir"`; - chomp(@files); - foreach my $f (@files) { - next if (! -r "$sys_man/$m/$f"); - if ((-l "$sys_man/$m/$f") && - (readlink("$sys_man/$m/$f") =~ m;^$Master/texmf/doc/man/$m/;)) { - unlink("$sys_man/$m/$f"); - } else { - warn ("not removing $sys_man/$m/$f, not a link or wrong destination!\n"); - } - } - # ignore errors, it might be not empty - `rmdir "$sys_man/$m" 2>/dev/null`; - } - `rmdir "$sys_man" 2>/dev/null`; - } else { - warn "destination of man symlink $sys_man not writable, no removal of links of man files done!\n"; - } - } - # remove all the directories - system("rm -rf \"$Master/texmf-dist\""); - system("rm -rf \"$Master/texmf-doc\""); - system("rm -rf \"$Master/texmf-var\""); - system("rm -rf \"$Master/texmf-config\""); - system("rm -rf \"$Master/texmf\""); - system("rm -rf \"$Master/bin\""); - system("rm -rf \"$Master/tlpkg\""); - system("rm -f \"$Master/install-tl.log\""); - # now everything should be removed ... - # note that shell returns 0 on success, so we have to use "and" - system("rmdir \"$Master\"") and - warn("Couldn't completely remove $Master: $!\n"); - } -} - - -__END__ - - -### Local Variables: -### perl-indent-level: 2 -### tab-width: 2 -### indent-tabs-mode: nil -### End: -# vim:set tabstop=2 expandtab: # diff --git a/Master/tlpkg/texlive.tlpdb b/Master/tlpkg/texlive.tlpdb index 6f9b9a1d0ac..2dc932ea16a 100644 --- a/Master/tlpkg/texlive.tlpdb +++ b/Master/tlpkg/texlive.tlpdb @@ -36,7 +36,7 @@ runfiles size=92 name 00texlive.installer category TLCore revision 7221 -runfiles size=47 +runfiles size=45 config.guess install-tl.html install-tl.pl @@ -50,7 +50,7 @@ runfiles size=47 tlpkg/installer/uninstall-tl.pl binfiles arch=i386-linux size=3 tlpkg/installer/lzmadec.i386-linux -binfiles arch=win32 size=1092 +binfiles arch=win32 size=1091 install-tl.bat tl-portable.bat tlpkg/installer/lzmadec.win32.exe @@ -190,8 +190,6 @@ category TLCore revision 7221 depend texlive-infra depend 0texlive.support.ARCH -runfiles size=2 - tlpkg/installer/uninstall-tl.pl name 0texlive.support.alpha-linux category TLCore @@ -264,10 +262,9 @@ name 0texlive.support.win32 category TLCore revision 7221 shortdesc binary files of 0texlive.support for win32 -binfiles arch=win32 size=134 +binfiles arch=win32 size=133 tlpkg/installer/lzmadec.win32.exe tlpkg/installer/tar.exe - tlpkg/installer/uninstall-tl.bat tlpkg/installer/wget.exe name 0texlive.support.x86_64-linux @@ -4003,7 +4000,7 @@ runfiles size=33 texmf-dist/tex/latex/animate/animate-noocg.sty texmf-dist/tex/latex/animate/animate.sty catalogue-version -catalogue-date 2008-04-02 10:49:29 +0200 +catalogue-date 2008-03-26 12:52:35 +0100 catalogue-ctan /macros/latex/contrib/animate catalogue-license lppl @@ -20616,7 +20613,7 @@ binfiles arch=x86_64-linux size=274 name bin-texlive category TLCore -revision 7266 +revision 7238 depend texlive-infra depend 0texlive.support depend bin-texlive.ARCH @@ -20630,108 +20627,82 @@ runfiles size=9 name bin-texlive.alpha-linux category TLCore -revision 7266 +revision 7238 shortdesc binary files of bin-texlive for alpha-linux -binfiles arch=alpha-linux size=1 - bin/alpha-linux/tl-package-manager name bin-texlive.hppa-hpux category TLCore -revision 7266 +revision 7238 shortdesc binary files of bin-texlive for hppa-hpux -binfiles arch=hppa-hpux size=1 - bin/hppa-hpux/tl-package-manager name bin-texlive.i386-darwin category TLCore -revision 7266 +revision 7238 shortdesc binary files of bin-texlive for i386-darwin -binfiles arch=i386-darwin size=1 - bin/i386-darwin/tl-package-manager name bin-texlive.i386-freebsd category TLCore -revision 7266 +revision 7238 shortdesc binary files of bin-texlive for i386-freebsd -binfiles arch=i386-freebsd size=1 - bin/i386-freebsd/tl-package-manager name bin-texlive.i386-linux category TLCore -revision 7266 +revision 7238 shortdesc binary files of bin-texlive for i386-linux -binfiles arch=i386-linux size=1 - bin/i386-linux/tl-package-manager +binfiles arch=i386-linux size=2 + bin/i386-linux/tlmgr name bin-texlive.i386-openbsd category TLCore -revision 7266 +revision 7238 shortdesc binary files of bin-texlive for i386-openbsd -binfiles arch=i386-openbsd size=1 - bin/i386-openbsd/tl-package-manager name bin-texlive.i386-solaris category TLCore -revision 7266 +revision 7238 shortdesc binary files of bin-texlive for i386-solaris -binfiles arch=i386-solaris size=1 - bin/i386-solaris/tl-package-manager name bin-texlive.mips-irix category TLCore -revision 7266 +revision 7238 shortdesc binary files of bin-texlive for mips-irix -binfiles arch=mips-irix size=1 - bin/mips-irix/tl-package-manager name bin-texlive.powerpc-aix category TLCore -revision 7266 +revision 7238 shortdesc binary files of bin-texlive for powerpc-aix -binfiles arch=powerpc-aix size=1 - bin/powerpc-aix/tl-package-manager name bin-texlive.powerpc-darwin category TLCore -revision 7266 +revision 7238 shortdesc binary files of bin-texlive for powerpc-darwin -binfiles arch=powerpc-darwin size=1 - bin/powerpc-darwin/tl-package-manager name bin-texlive.powerpc-linux category TLCore -revision 7266 +revision 7238 shortdesc binary files of bin-texlive for powerpc-linux -binfiles arch=powerpc-linux size=1 - bin/powerpc-linux/tl-package-manager name bin-texlive.sparc-linux category TLCore -revision 7266 +revision 7238 shortdesc binary files of bin-texlive for sparc-linux -binfiles arch=sparc-linux size=1 - bin/sparc-linux/tl-package-manager name bin-texlive.sparc-solaris category TLCore -revision 7266 +revision 7238 shortdesc binary files of bin-texlive for sparc-solaris -binfiles arch=sparc-solaris size=1 - bin/sparc-solaris/tl-package-manager name bin-texlive.win32 category TLCore -revision 7266 +revision 7238 shortdesc binary files of bin-texlive for win32 -binfiles arch=win32 size=1 - bin/win32/tl-package-manager.texlua +binfiles arch=win32 size=2 + bin/win32/tlmgr.texlua name bin-texlive.x86_64-linux category TLCore -revision 7266 +revision 7238 shortdesc binary files of bin-texlive for x86_64-linux -binfiles arch=x86_64-linux size=1 - bin/x86_64-linux/tl-package-manager name bin-texsis category TLCore @@ -33111,23 +33082,14 @@ catalogue-license lppl name constants category Package revision 7248 -shortdesc Automatic numbering of constants. -longdesc The package provides a way to number constants in a -longdesc mathematical proof automatically, with a system for -longdesc labelling/referencing. In addition, several families of -longdesc constants (with different symbols) may be defined. docfiles size=30 - texmf-dist/doc/latex/constants/README details="Readme" - texmf-dist/doc/latex/constants/constants.pdf details="Package documentation" + texmf-dist/doc/latex/constants/README + texmf-dist/doc/latex/constants/constants.pdf srcfiles size=7 texmf-dist/source/latex/constants/constants.dtx texmf-dist/source/latex/constants/constants.ins runfiles size=2 texmf-dist/tex/latex/constants/constants.sty -catalogue-version 1.0 -catalogue-date 2008-03-30 20:51:50 +0200 -catalogue-ctan /macros/latex/contrib/constants -catalogue-license lppl name context category Package @@ -43718,8 +43680,8 @@ runfiles size=20 texmf-dist/tex/latex/floatrow/fr-longtable.sty texmf-dist/tex/latex/floatrow/fr-subfig.sty texmf-dist/tex/latex/floatrow/listpen.sty -catalogue-version 0.2c -catalogue-date 2008-03-31 14:27:25 +0200 +catalogue-version 0.2a +catalogue-date 2007-09-07 11:33:18 +0200 catalogue-ctan /macros/latex/contrib/floatrow catalogue-license lppl @@ -44528,26 +44490,15 @@ catalogue-license lppl name fouridx category Package revision 7249 -shortdesc Left sub- and superscripts in maths mode. -longdesc The package enables left subscripts and superscripts in maths -longdesc mode. The sub- and superscripts are raised for optimum fitting -longdesc to the symbol indexed, in such a way that left and right sub- -longdesc and superscripts are set on the same level, as appropriate. The -longdesc package provides an alternative to the use of the \sideset -longdesc command in the amsmath package. docfiles size=30 - texmf-dist/doc/latex/fouridx/README details="Readme" - texmf-dist/doc/latex/fouridx/fouridx.pdf details="Package documentation" + texmf-dist/doc/latex/fouridx/README + texmf-dist/doc/latex/fouridx/fouridx.pdf texmf-dist/doc/latex/fouridx/fouridx.tex srcfiles size=3 texmf-dist/source/latex/fouridx/fouridx.dtx texmf-dist/source/latex/fouridx/fouridx.ins runfiles size=1 texmf-dist/tex/latex/fouridx/fouridx.sty -catalogue-version 1.00 -catalogue-date 2008-03-30 01:14:06 +0100 -catalogue-ctan /macros/latex/contrib/fouridx -catalogue-license lppl name fourier category Package @@ -47000,7 +46951,7 @@ docfiles size=206 runfiles size=22 texmf-dist/tex/latex/gmutils/gmutils.sty catalogue-version v0.85 -catalogue-date 2007-11-17 21:57:01 +0100 +catalogue-date 2007-11-17 20:57:01 +0000 catalogue-ctan /macros/latex/contrib/gmutils catalogue-license lppl @@ -49534,8 +49485,8 @@ runfiles size=147 texmf-dist/tex/latex/hyperref/puenc.def texmf-dist/tex/latex/hyperref/puvnenc.def texmf-dist/tex/latex/hyperref/xr-hyper.sty -catalogue-version 6.77j -catalogue-date 2008-04-02 10:07:13 +0200 +catalogue-version 6.77i +catalogue-date 2008-01-10 01:10:44 +0100 catalogue-ctan /macros/latex/contrib/hyperref catalogue-license lppl @@ -54968,21 +54919,21 @@ longdesc the sectioning commands, an experiment index is generated. The longdesc class is based on the KOMA-Script class scrbook.cls. There can longdesc be several index entries for one experiment. docfiles size=70 - texmf-dist/doc/latex/labbook/README details="Readme" + texmf-dist/doc/latex/labbook/README texmf-dist/doc/latex/labbook/boilerplates.tex texmf-dist/doc/latex/labbook/examplde.tex texmf-dist/doc/latex/labbook/examplen.tex - texmf-dist/doc/latex/labbook/labboode.pdf details="Package documentation (German)" language="de" + texmf-dist/doc/latex/labbook/labboode.pdf texmf-dist/doc/latex/labbook/labboode.tex texmf-dist/doc/latex/labbook/labbook.el - texmf-dist/doc/latex/labbook/labbook.pdf details="Package documentation (English)" language="en" + texmf-dist/doc/latex/labbook/labbook.pdf srcfiles size=21 texmf-dist/source/latex/labbook/labbook.dtx texmf-dist/source/latex/labbook/labbook.ins runfiles size=5 texmf-dist/tex/latex/labbook/labbook.cls catalogue-version -catalogue-date 2008-03-30 20:37:26 +0200 +catalogue-date 2006-12-15 14:14:43 +0100 catalogue-ctan /macros/latex/contrib/labbook catalogue-license lppl @@ -64316,8 +64267,8 @@ runfiles size=6 texmf-dist/tex/latex/mongolian-babel/mn.def texmf-dist/tex/latex/mongolian-babel/mongolian.ldf texmf-dist/tex/latex/mongolian-babel/mongolian.sty -catalogue-version 1.2 -catalogue-date 2008-03-30 17:33:51 +0200 +catalogue-version 1.1 +catalogue-date 2007-03-22 16:49:27 +0100 catalogue-ctan /language/mongolian/babel catalogue-license lppl @@ -69572,8 +69523,8 @@ runfiles size=19 texmf-dist/tex/latex/pdfpages/pppdftex.def texmf-dist/tex/latex/pdfpages/ppvtex.def texmf-dist/tex/latex/pdfpages/ppxetex.def -catalogue-version 0.4c -catalogue-date 2008-04-01 20:15:18 +0200 +catalogue-version 0.4a +catalogue-date 2007-03-11 14:35:09 +0100 catalogue-ctan /macros/latex/contrib/pdfpages catalogue-license lppl @@ -78265,29 +78216,14 @@ catalogue-license lppl name stringstrings category Package revision 7272 -shortdesc String manipulation for cosmetic and programming application. -longdesc The package provides a large and sundry set of macros for the -longdesc manipulation of strings. The macros are developed not merely -longdesc for cosmetic application (such as changing the case of letters -longdesc and string substitution), but also for programming applications -longdesc such as character look-ahead, argument parsing, conditional -longdesc tests on various string conditions, etc. The macros were -longdesc designed all to be expandable (note that things such as -longdesc \uppercase and \lowercase are not expandable), so that the -longdesc macros may be strung together sequentially and nested (after a -longdesc fashion) to achieve rather complex manipulations. docfiles size=75 - texmf-dist/doc/latex/stringstrings/README details="Readme" - texmf-dist/doc/latex/stringstrings/stringstrings.pdf details="Package documentation" + texmf-dist/doc/latex/stringstrings/README + texmf-dist/doc/latex/stringstrings/stringstrings.pdf srcfiles size=37 texmf-dist/source/latex/stringstrings/stringstrings.dtx texmf-dist/source/latex/stringstrings/stringstrings.ins runfiles size=15 texmf-dist/tex/latex/stringstrings/stringstrings.sty -catalogue-version 1.00 -catalogue-date 2008-03-31 17:38:32 +0200 -catalogue-ctan /macros/latex/contrib/stringstrings -catalogue-license lgpl name struktex category Package @@ -79420,7 +79356,7 @@ revision 5027 shortdesc Templates for TeX usage. longdesc A set of templates for using LaTeX packages that the author longdesc uses, comprising: – Hausarbeit.tex: for students of the -longdesc Lehrstuhl Volkskunde an der Friedrich-Schiller-Universität +longdesc Lehrstuhl Volkskunde an der Friedrich‐Schiller‐Universität longdesc Jena; – Psycho-Dipl.tex: for diploma theses in psychology. docfiles size=14 texmf-doc/doc/german/templates-sommer/Hausarbeit.bib @@ -79430,7 +79366,7 @@ docfiles size=14 texmf-doc/doc/german/templates-sommer/Psycho-Dipl.tex texmf-doc/doc/german/templates-sommer/README.de details="README" language="de" catalogue-version -catalogue-date 2008-04-01 21:56:42 +0200 +catalogue-date 2007-06-11 18:00:32 +0200 catalogue-ctan /info/templates/sommer catalogue-license lppl diff --git a/Master/tlpkg/tlpsrc/0texlive.support.tlpsrc b/Master/tlpkg/tlpsrc/0texlive.support.tlpsrc index f30725d47e5..6386419a5f1 100644 --- a/Master/tlpkg/tlpsrc/0texlive.support.tlpsrc +++ b/Master/tlpkg/tlpsrc/0texlive.support.tlpsrc @@ -6,6 +6,3 @@ binpattern f/win32 tlpkg/installer/tar.exe binpattern f/win32 tlpkg/installer/lzmadec.win32.exe binpattern f/win32 tlpkg/installer/wget.exe binpattern f tlpkg/installer/lzmadec.${ARCH} -# uninstall program -runpattern f tlpkg/installer/uninstall-tl.pl -binpattern f/win32 tlpkg/installer/uninstall-tl.bat diff --git a/Master/tlpkg/tlpsrc/bin-texlive.tlpsrc b/Master/tlpkg/tlpsrc/bin-texlive.tlpsrc index 80eb92a88bc..d9abc952f6d 100644 --- a/Master/tlpkg/tlpsrc/bin-texlive.tlpsrc +++ b/Master/tlpkg/tlpsrc/bin-texlive.tlpsrc @@ -8,5 +8,6 @@ runpattern f texmf/scripts/texlive/generate-fmtutil.pl runpattern f texmf/scripts/texlive/generate-language.pl runpattern f texmf/scripts/texlive/generate-updmap.pl runpattern f texmf/scripts/texlive/tl-package-manager.pl +runpattern f texmf/scripts/texlive/uninstall-tl.pl runpattern f texmf/web2c/updmap-hdr.cfg -binpattern f bin/${ARCH}/tl-package-manager +binpattern f bin/${ARCH}/tlmgr |