summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2010-06-20 17:17:08 +0000
committerNorbert Preining <preining@logic.at>2010-06-20 17:17:08 +0000
commit1db438ab5c6f82681295e45f44be56bf4caffb9d (patch)
treef40e11f73b9f81121c493df2cb4fd6b9bcdce8a8
parent1d00e7fcb436040850e36ec456bae66a2add01a2 (diff)
tlmgr: announce postactions of parent package if only the .ARCH package is
updated git-svn-id: svn://tug.org/texlive/trunk@19076 c570f23f-e606-0410-a88d-b1316a301751
-rwxr-xr-xMaster/texmf/scripts/texlive/tlmgr.pl19
1 files changed, 19 insertions, 0 deletions
diff --git a/Master/texmf/scripts/texlive/tlmgr.pl b/Master/texmf/scripts/texlive/tlmgr.pl
index c6188de1794..40d0dcd597a 100755
--- a/Master/texmf/scripts/texlive/tlmgr.pl
+++ b/Master/texmf/scripts/texlive/tlmgr.pl
@@ -2427,6 +2427,25 @@ sub action_update {
unlink($unwind_package) if $remove_unwind_container;
# remember successful update
$updated{$pkg} = 1;
+ #
+ # if we updated a .ARCH package we have to announce the postactions
+ # of the parent package so that formats are rebuild
+ if ($pkg =~ m/^([^.]*)\./) {
+ my $parent = $1;
+ if (!TeXLive::TLUtils::member($parent, @inst_packs, @new_packs, @inst_colls, @new_colls, @inst_schemes, @new_schemes)) {
+ # ok, nothing happens with the parent package, so we have to
+ # find it and execute the postactions
+ my $parentobj = $localtlpdb->get_package($parent);
+ if (!defined($parentobj)) {
+ # well, in this case we might have hit a package that only
+ # has .ARCH package, like psv.win32, so do nothing
+ debug("tlmgr: .ARCH package without parent, not announcing postaction\n");
+ } else {
+ debug("tlmgr: announcing parent execute action for $pkg\n");
+ TeXLive::TLUtils::announce_execute_actions("enable", $parentobj);
+ }
+ }
+ }
} else {
# install_package returned a scalar, so error.
# now in fact we should do some cleanup, removing files and