diff --git a/lib/chkconfig.ltx b/lib/chkconfig.ltx index dbe99648df..bf0d410fd5 100644 --- a/lib/chkconfig.ltx +++ b/lib/chkconfig.ltx @@ -120,12 +120,22 @@ #6 \fi} + +% For the version test below, we need to load the tested package. +% However, we are only interested in the version information, so +% we redefine an internal method of \ProvidesPackage to quit +% as soon as we have that information +\let\chk@pr@videpackage\@pr@videpackage +\def\@pr@videpackage[#1]{\chk@pr@videpackage[#1]\endinput} + % Tests whether an package is present and also adds the version to the package list \newcommand{\TestPackageAddVersion}[2][\default]{ \def\default{#2} \def\package@version{} - % The actual test only works after the package has been loaded \IfFileExists{#1.sty}{% + % The actual test only works after the package has been loaded, + % but with the redefinition of \@pr@videpackage above, we quit + % as early as possible \RequirePackage{#1}% \protected@edef\package@@version{\csname ver@#1.sty\endcsname}% \protected@edef\package@version{\expandafter\@parse@version\package@@version//00\@nil}% diff --git a/status.24x b/status.24x index 0ad2ec7048..e206b09a08 100644 --- a/status.24x +++ b/status.24x @@ -108,3 +108,7 @@ What's new - Fix (only informal) check for hyphenation patterns in (re)configuration. +- Improve check for package versions in (re)configuration. Particularly, + configuration does not break any longer if a sub-dependency of a + tested package is missing (bug 13112), +