diff options
author | Karl Berry <karl@freefriends.org> | 2017-11-19 22:17:35 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2017-11-19 22:17:35 +0000 |
commit | b40b1cb1e5dc67b35e577a4d9ea88d80bd6673c3 (patch) | |
tree | 068e7dabc1c2e9079e302da5058355b6d047c69a /Build/source | |
parent | 39010d345f62fd98626853160fbacf66fc329f0d (diff) |
crossrefware (19nov17)
git-svn-id: svn://tug.org/texlive/trunk@45853 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source')
6 files changed, 131 insertions, 37 deletions
diff --git a/Build/source/texk/texlive/linked_scripts/crossrefware/bbl2bib.pl b/Build/source/texk/texlive/linked_scripts/crossrefware/bbl2bib.pl index a2df920382d..477412d140e 100755 --- a/Build/source/texk/texlive/linked_scripts/crossrefware/bbl2bib.pl +++ b/Build/source/texk/texlive/linked_scripts/crossrefware/bbl2bib.pl @@ -8,13 +8,15 @@ bbl2bib.pl - convert thebibliography environment to a bib file =head1 SYNOPSIS -bbl2bib.pl [B<-o> I<output>] I<file> +bbl2bib.pl [-d] [B<-o> I<output>] I<file> =head1 OPTIONS =over 4 +=item [-d] +Send debugging output to stdout =item B<-o> I<output> @@ -98,10 +100,13 @@ use LaTeX::ToUnicode qw (convert); use Getopt::Std; use URI::Escape; use LWP::Simple; +# Sometimes AMS forgets to update certificates +$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME}=0; + my $USAGE="USAGE: $0 [-o output] file\n"; my $VERSION = <<END; -bbl2bib v2.1a +bbl2bib v2.2 This is free software. You may redistribute copies of it under the terms of the GNU General Public License http://www.gnu.org/licenses/gpl.html. There is NO WARRANTY, to the @@ -109,7 +114,7 @@ extent permitted by law. $USAGE END our %opts; -getopts('c:o:s:hV',\%opts) or die $USAGE; +getopts('do:hV',\%opts) or die $USAGE; if ($opts{h} || $opts{V}){ print $VERSION; @@ -130,6 +135,10 @@ if (exists $opts{o}) { $outputfile = $opts{o}; } +my $debug=0; +if ($opts{d}) { + $debug=1; +} my $input= IO::File->new($inputfile) or @@ -168,7 +177,15 @@ sub ProcessBibitem { my $bibitem = shift; my $key = $bibitem->{key}; my $text=$bibitem->{text}; + + if ($debug) { + print STDOUT "DEBUG: Processing item $key\n"; + } + if (!length($text) || $text =~ /^\s+$/s) { + if ($debug) { + print STDOUT "DEBUG: No text found\n"; + } return; } @@ -180,21 +197,33 @@ sub ProcessBibitem { # Arxiv entry? if ($text =~ s/\\arxiv\{([^\}]+)\}\.?//) { + if ($debug) { + print STDOUT "DEBUG: Found arXiv number $1\n"; + } $bibitem->{arxiv}=$1; } # Mr number exists? if ($text =~ s/\\mr\{([^\}]+)\}\.?//) { + if ($debug) { + print STDOUT "DEBUG: Found mr number $1\n"; + } $bibitem->{mr}=$1; } # zbl number exists? if ($text =~ s/\\zbl\{([^\}]+)\}\.?//) { + if ($debug) { + print STDOUT "DEBUG: Found zbl number $1\n"; + } $bibitem->{zbl}=$1; } # doi number exists? if ($text =~ s/\\doi\{([^\}]+)\}\.?//) { + if ($debug) { + print STDOUT "DEBUG: Found doi $1\n"; + } $bibitem->{doi}=$1; } @@ -208,8 +237,14 @@ sub SearchMref { my $bibitem = shift; my $mirror = "http://www.ams.org/mathscinet-mref"; my $string=uri_escape_utf8($bibitem->{text}); + if ($debug) { + print STDOUT "Sending $mirror?ref=$string".'&'."dataType=bibtex\n" + } my $response = $userAgent->get("$mirror?ref=$string&dataType=bibtex") -> decoded_content(); + if ($debug) { + print STDOUT "DEBUG: Response $response\n"; + } if ($response =~ /<pre>(.*)<\/pre>/s) { my $bib= $1; my $fh = new FileHandle; diff --git a/Build/source/texk/texlive/linked_scripts/crossrefware/bibdoiadd.pl b/Build/source/texk/texlive/linked_scripts/crossrefware/bibdoiadd.pl index bf7bc1a2856..52eba925283 100755 --- a/Build/source/texk/texlive/linked_scripts/crossrefware/bibdoiadd.pl +++ b/Build/source/texk/texlive/linked_scripts/crossrefware/bibdoiadd.pl @@ -104,10 +104,12 @@ use LaTeX::ToUnicode qw (convert); use Getopt::Std; use URI::Escape; use LWP::Simple; +# Sometimes AMS forgets to update certificates +$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME}=0; my $USAGE="USAGE: $0 [-c config] [-e 1|0] [-f] [-o output] file\n"; my $VERSION = <<END; -bibdoiadd v2.1 +bibdoiadd v2.2 This is free software. You may redistribute copies of it under the terms of the GNU General Public License http://www.gnu.org/licenses/gpl.html. There is NO WARRANTY, to the diff --git a/Build/source/texk/texlive/linked_scripts/crossrefware/bibmradd.pl b/Build/source/texk/texlive/linked_scripts/crossrefware/bibmradd.pl index 8b1c9938a56..10f36113f6a 100755 --- a/Build/source/texk/texlive/linked_scripts/crossrefware/bibmradd.pl +++ b/Build/source/texk/texlive/linked_scripts/crossrefware/bibmradd.pl @@ -75,10 +75,12 @@ use Getopt::Std; use URI::Escape; use LWP::UserAgent; $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME}=0; +# Sometimes AMS forgets to update certificates +$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME}=0; my $USAGE="USAGE: $0 [-d] [-e 1|0] [-f] [-o output] file\n"; my $VERSION = <<END; -bibmradd v2.1 +bibmradd v2.2 This is free software. You may redistribute copies of it under the terms of the GNU General Public License http://www.gnu.org/licenses/gpl.html. There is NO WARRANTY, to the diff --git a/Build/source/texk/texlive/linked_scripts/crossrefware/bibzbladd.pl b/Build/source/texk/texlive/linked_scripts/crossrefware/bibzbladd.pl index b946766fdf9..2dba99eeedc 100755 --- a/Build/source/texk/texlive/linked_scripts/crossrefware/bibzbladd.pl +++ b/Build/source/texk/texlive/linked_scripts/crossrefware/bibzbladd.pl @@ -78,7 +78,7 @@ $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME}=0; my $USAGE="USAGE: $0 [-d] [-e 1|0] [-f] [-o output] file\n"; my $VERSION = <<END; -bibzbladd v2.1 +bibzbladd v2.2 This is free software. You may redistribute copies of it under the terms of the GNU General Public License http://www.gnu.org/licenses/gpl.html. There is NO WARRANTY, to the diff --git a/Build/source/texk/texlive/linked_scripts/crossrefware/ltx2crossrefxml.pl b/Build/source/texk/texlive/linked_scripts/crossrefware/ltx2crossrefxml.pl index f9585399cfa..105611a7dc9 100755 --- a/Build/source/texk/texlive/linked_scripts/crossrefware/ltx2crossrefxml.pl +++ b/Build/source/texk/texlive/linked_scripts/crossrefware/ltx2crossrefxml.pl @@ -82,7 +82,7 @@ extent permitted by law. use File::Spec; my $USAGE="USAGE: $0 [-c config] [-o output] file1 file2 ...\n"; my $VERSION = <<END; -ltx2crossrefxml v2.0 +ltx2crossrefxml v2.2 This is free software. You may redistribute copies of it under the terms of the GNU General Public License http://www.gnu.org/licenses/gpl.html. There is NO WARRANTY, to the diff --git a/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl b/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl index ccbf7a22a42..99d24521621 100755 --- a/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl +++ b/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl @@ -1,14 +1,15 @@ #!/usr/bin/env perl -# $Id: tlmgr.pl 45815 2017-11-15 03:45:40Z preining $ +# $Id: tlmgr.pl 45838 2017-11-17 02:13:42Z preining $ # # Copyright 2008-2017 Norbert Preining # This file is licensed under the GNU General Public License version 2 # or any later version. # -my $svnrev = '$Revision: 45815 $'; -my $datrev = '$Date: 2017-11-15 04:45:40 +0100 (Wed, 15 Nov 2017) $'; +my $svnrev = '$Revision: 45838 $'; +my $datrev = '$Date: 2017-11-17 03:13:42 +0100 (Fri, 17 Nov 2017) $'; my $tlmgrrevision; +my $tlmgrversion; my $prg; if ($svnrev =~ m/: ([0-9]+) /) { $tlmgrrevision = $1; @@ -17,7 +18,7 @@ if ($svnrev =~ m/: ([0-9]+) /) { } $datrev =~ s/^.*Date: //; $datrev =~ s/ \(.*$//; -$tlmgrrevision .= " ($datrev)"; +$tlmgrversion = "$tlmgrrevision ($datrev)"; our $Master; our $ismain; @@ -522,7 +523,7 @@ sub main { } else { # give a short message about usage print " -tlmgr revision $tlmgrrevision +tlmgr revision $tlmgrversion usage: tlmgr OPTION... ACTION ARGUMENT... where ACTION is one of:\n"; for my $k (sort keys %action_specification) { @@ -541,7 +542,7 @@ for the full story.\n"; # --machine-readable is only supported by update. if ($::machinereadable && - $action ne "update" && $action ne "install" && $action ne "option" && $action ne "shell") { + $action ne "update" && $action ne "install" && $action ne "option" && $action ne "shell" && $action ne "remove") { tlwarn("$prg: --machine-readable output not supported for $action\n"); } @@ -666,29 +667,45 @@ for the full story.\n"; sub give_version { if (!defined($::version_string)) { $::version_string = ""; - $::version_string .= "tlmgr revision $tlmgrrevision\n"; + $::mrversion = ""; + $::version_string .= "tlmgr revision $tlmgrversion\n"; + $::mrversion .= "revision $tlmgrrevision\n"; $::version_string .= "tlmgr using installation: $Master\n"; + $::mrversion .= "installation $Master\n"; if (open (REL_TL, "$Master/release-texlive.txt")) { - # print first and last lines, which have the TL version info. - my @rel_tl = <REL_TL>; - $::version_string .= $rel_tl[0]; - $::version_string .= $rel_tl[$#rel_tl]; + # print first, which has the TL version info. + my $rel_tl = <REL_TL>; + $::version_string .= $rel_tl; + # for machine readable we only want the last word which is the version + my @foo = split(' ', $rel_tl); + $::mrversion .= "tlversion $foo[$#foo]\n"; close (REL_TL); } + # + # add the list of revisions + if ($::opt_verbosity > 0) { + $::version_string .= "Revisions of TeXLive:: modules:"; + $::version_string .= "\nTLConfig: " . TeXLive::TLConfig->module_revision(); + $::version_string .= "\nTLUtils: " . TeXLive::TLUtils->module_revision(); + $::version_string .= "\nTLPOBJ: " . TeXLive::TLPOBJ->module_revision(); + $::version_string .= "\nTLPDB: " . TeXLive::TLPDB->module_revision(); + $::version_string .= "\nTLPaper: " . TeXLive::TLPaper->module_revision(); + $::version_string .= "\nTLWinGoo: " . TeXLive::TLWinGoo->module_revision(); + $::version_string .= "\n"; + } + $::mrversion .= "TLConfig " . TeXLive::TLConfig->module_revision(); + $::mrversion .= "\nTLUtils " . TeXLive::TLUtils->module_revision(); + $::mrversion .= "\nTLPOBJ " . TeXLive::TLPOBJ->module_revision(); + $::mrversion .= "\nTLPDB " . TeXLive::TLPDB->module_revision(); + $::mrversion .= "\nTLPaper " . TeXLive::TLPaper->module_revision(); + $::mrversion .= "\nTLWinGoo " . TeXLive::TLWinGoo->module_revision(); + $::mrversion .= "\n"; + } + if ($::machinereadable) { + return $::mrversion; + } else { + return $::version_string; } - # - # add the list of revisions - if ($::opt_verbosity > 0) { - $::version_string .= "Revisions of TeXLive:: modules:"; - $::version_string .= "\nTLConfig: " . TeXLive::TLConfig->module_revision(); - $::version_string .= "\nTLUtils: " . TeXLive::TLUtils->module_revision(); - $::version_string .= "\nTLPOBJ: " . TeXLive::TLPOBJ->module_revision(); - $::version_string .= "\nTLPDB: " . TeXLive::TLPDB->module_revision(); - $::version_string .= "\nTLPaper: " . TeXLive::TLPaper->module_revision(); - $::version_string .= "\nTLWinGoo: " . TeXLive::TLWinGoo->module_revision(); - $::version_string .= "\n"; - } - return $::version_string; } @@ -1120,6 +1137,20 @@ sub action_remove { } } @packs = keys %packs; + + my %sizes = %{$localtlpdb->sizes_of_packages( + $localtlpdb->option("install_srcfiles"), + $localtlpdb->option("install_docfiles"), undef, @packs)}; + defined($sizes{'__TOTAL__'}) || ($sizes{'__TOTAL__'} = 0); + my $totalsize = $sizes{'__TOTAL__'}; + my $totalnr = $#packs; + my $currnr = 1; + my $starttime = time(); + my $donesize = 0; + + print "total-bytes\t$sizes{'__TOTAL__'}\n" if $::machinereadable; + print "end-of-header\n" if $::machinereadable; + foreach my $pkg (sort @packs) { my $tlp = $localtlpdb->get_package($pkg); next if defined($already_removed{$pkg}); @@ -1127,17 +1158,27 @@ sub action_remove { info("$pkg: package not present, cannot remove\n"); $ret |= $F_WARNING; } else { + my ($estrem, $esttot) = TeXLive::TLUtils::time_estimate($totalsize, + $donesize, $starttime); + # in the first round we only remove collections, nothing else # but removing collections will remove all dependencies, too # save the information of which packages have already been removed # into %already_removed. if ($tlp->category eq "Collection") { my $foo = 0; - info ("$prg: removing $pkg\n"); + if ($::machinereadable) { + machine_line($pkg, "d", $tlp->revision, "-", $sizes{$pkg}, $estrem, $esttot); + } else { + # info ("$prg: removing $pkg\n"); + info("[$currnr/$totalnr, $estrem/$esttot] remove: $pkg\n"); + } if (!$opts{"dry-run"}) { $foo = backup_and_remove_package($pkg, $autobackup); logpackage("remove: $pkg"); } + $currnr++; + $donesize += $sizes{$pkg}; if ($foo) { # removal was successful, so the return is at least 0x0001 mktexlsr # remove dependencies, too @@ -1153,8 +1194,19 @@ sub action_remove { } } foreach my $pkg (sort @more_removal) { + my $tlp = $localtlpdb->get_package($pkg); if (!defined($already_removed{$pkg})) { - info ("$prg: removing package $pkg\n"); + my ($estrem, $esttot) = TeXLive::TLUtils::time_estimate($totalsize, + $donesize, $starttime); + # info ("$prg: removing package $pkg\n"); + if ($::machinereadable) { + machine_line($pkg, "d", $tlp->revision, "-", $sizes{$pkg}, $estrem, $esttot); + } else { + # info ("$prg: removing $pkg\n"); + info("[$currnr/$totalnr, $estrem/$esttot] remove: $pkg\n"); + } + $currnr++; + $donesize += $sizes{$pkg}; if (!$opts{"dry-run"}) { if (backup_and_remove_package($pkg, $autobackup)) { # removal was successful @@ -1164,6 +1216,7 @@ sub action_remove { } } } + print "end-of-updates\n" if $::machinereadable; if ($opts{"dry-run"}) { # stop here, don't do any postinstall actions return ($ret | $F_NOPOSTACTION); @@ -1171,9 +1224,11 @@ sub action_remove { $localtlpdb->save; my @foo = sort keys %already_removed; if (@foo) { - info("$prg: ultimately removed these packages: @foo\n"); + info("$prg: ultimately removed these packages: @foo\n") + if (!$::machinereadable); } else { - info("$prg: no packages removed.\n"); + info("$prg: no packages removed.\n") + if (!$::machinereadable); } } return ($ret); @@ -6194,7 +6249,7 @@ sub action_shell { } elsif ($cmd eq "help") { print "Please see tlmgr help or http://tug.org/texlive/tlmgr.html.\n"; } elsif ($cmd eq "version") { - print give_version(), "\n"; + print give_version(); } elsif ($cmd =~ m/^(quit|end|bye(bye)?)$/i) { return $F_OK; } elsif ($cmd eq "setup-location") { @@ -9259,7 +9314,7 @@ This script and its documentation were written for the TeX Live distribution (L<http://tug.org/texlive>) and both are licensed under the GNU General Public License Version 2 or later. -$Id: tlmgr.pl 45815 2017-11-15 03:45:40Z preining $ +$Id: tlmgr.pl 45838 2017-11-17 02:13:42Z preining $ =cut # to remake HTML version: pod2html --cachedir=/tmp tlmgr.pl >/tmp/tlmgr.html |