summaryrefslogtreecommitdiff
path: root/support
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-02-05 03:03:08 +0000
committerNorbert Preining <norbert@preining.info>2020-02-05 03:03:08 +0000
commit4b795f65d52cde0d136c0175ce20101946378b54 (patch)
tree07b9b0c89193d379ff6971be01a8ca1e3e6931ca /support
parentfc358ce7332053945afe16ced2a271556cdccfb7 (diff)
CTAN sync 202002050303
Diffstat (limited to 'support')
-rw-r--r--support/texosquery/CHANGES9
-rw-r--r--support/texosquery/README.md15
-rw-r--r--support/texosquery/java/TeXOSQuery.java11
-rw-r--r--support/texosquery/texosquery.dtx145
-rw-r--r--support/texosquery/texosquery.pdfbin505685 -> 506274 bytes
5 files changed, 110 insertions, 70 deletions
diff --git a/support/texosquery/CHANGES b/support/texosquery/CHANGES
index 90a16eff9f..fac25b1210 100644
--- a/support/texosquery/CHANGES
+++ b/support/texosquery/CHANGES
@@ -1,3 +1,12 @@
+1.7 (2020/02/04):
+
+ * Renamed scratch variable to avoid conflict.
+
+ * The default version is now texosquery-jre8 since Java 7 has long
+ passed its end of life.
+
+ * Modified bash scripts to improve cygwin support.
+
1.6 (2017/06/20):
* Added new command line options:
diff --git a/support/texosquery/README.md b/support/texosquery/README.md
index ce37682edd..b1f46dff00 100644
--- a/support/texosquery/README.md
+++ b/support/texosquery/README.md
@@ -2,6 +2,16 @@
Cross-platform Java application to query OS information designed for use in
TeX's shell escape mechanism.
+## Licence
+
+This material is subject to the LaTeX Project Public License.
+See http://www.ctan.org/license/lppl1.3
+for the details of that license.
+
+Copyright 2016-2020 Nicola Talbot
+
+## Description
+
The application can query the following:
- locale information
@@ -320,8 +330,8 @@ reading file information won't work if read access is forbidden by
In addition to obeying `openin_any`, the file listing actions (such
as `--list`) for the JRE7 and 8 variants also prohibit listing the
-contents outside of the current working directory's path. This means
-that you can't, for example, list the contents of `..` (the current
+contents outside of the current working directory's path even if `openin_any=a`.
+This means that you can't, for example, list the contents of `..` (the current
working directory's parent) nor can you try walking the entire file
system. The `--walk` action additionally won't descend hidden
directories. This extra restriction is designed to prevent malicious
@@ -410,4 +420,3 @@ Source on GitHub: https://github.com/nlct/texosquery
Author Home Page: http://www.dickimaw-books.com/
-License: LPPL 1.3+
diff --git a/support/texosquery/java/TeXOSQuery.java b/support/texosquery/java/TeXOSQuery.java
index 9f97e85886..87318542a1 100644
--- a/support/texosquery/java/TeXOSQuery.java
+++ b/support/texosquery/java/TeXOSQuery.java
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2016 Nicola L.C. Talbot
+ Copyright (C) 2016-2020 Nicola L.C. Talbot
www.dickimaw-books.com
This work may be distributed and/or modified under the
@@ -3836,9 +3836,10 @@ public class TeXOSQuery implements Serializable
*/
protected void version()
{
- System.out.println(String.format("%s %s %s", name, VERSION_NUMBER,
+ System.out.println(String.format("%s %s (%s)", name, VERSION_NUMBER,
VERSION_DATE));
- System.out.println("Copyright 2016 Nicola Talbot");
+ System.out.println(String.format("Copyright 2016-%s Nicola Talbot",
+ VERSION_DATE.substring(0,4)));
System.out.println("License LPPL 1.3+ (http://ctan.org/license/lppl1.3)");
}
@@ -4614,8 +4615,8 @@ public class TeXOSQuery implements Serializable
public static final int DEFAULT_COMPATIBLE=2;
- private static final String VERSION_NUMBER = "1.6";
- private static final String VERSION_DATE = "2017-06-20";
+ private static final String VERSION_NUMBER = "1.7";
+ private static final String VERSION_DATE = "2020-02-04";
private static final char BACKSLASH = '\\';
private static final long ZERO = 0L;
diff --git a/support/texosquery/texosquery.dtx b/support/texosquery/texosquery.dtx
index e35098d78d..d15722457c 100644
--- a/support/texosquery/texosquery.dtx
+++ b/support/texosquery/texosquery.dtx
@@ -19,7 +19,7 @@
%\fi
% \iffalse
% Doc-Source file
-% Copyright (C) 2017 Nicola Talbot, all rights reserved.
+% Copyright (C) 2016-2020 Nicola Talbot, all rights reserved.
% \fi
% \iffalse
%<*driver>
@@ -53,7 +53,7 @@
\renewcommand{\meta@font@select}{\rmfamily\itshape}
\makeatother
-\CheckSum{3469}
+\CheckSum{3472}
\RecordChanges
\PageIndex
@@ -127,7 +127,7 @@ Organization for Standardization}
%\author{Nicola L. C. Talbot\\
%\href{http://www.dickimaw-books.com/}{\nolinkurl{dickimaw-books.com}}
%\and Paulo Cereda}
-%\date{2017-06-20 (v1.6)}
+%\date{2020-02-04 (v1.7)}
%\maketitle
%
%\begin{abstract}
@@ -170,9 +170,9 @@ Organization for Standardization}
%\href{http://www.oracle.com/technetwork/java/eol-135779.html}{end
%of life and is now deprecated}.
%\item \file{texosquery-jre8.jar}: requires at least Java~8, has best locale
-%support, obeys \texttt{openin\_any} but has additional
+%support, is on \TeX\ Live's restricted list, obeys \texttt{openin\_any} but has additional
%restrictions imposed for security reasons (no listings outside the
-%current working directory path);
+%current working directory path);
%\item \file{texosquery-jre5.jar}: requires at least Java~5, has poor locale
%support (language scripts not recognised), doesn't have the walk
%action, obeys \texttt{openin\_any} but doesn't have the extra restrictions of the
@@ -180,7 +180,10 @@ Organization for Standardization}
%are deprecated. Old deprecated versions are considered a security
%risk.
%\end{itemize}
-%The default is \file{texosquery.jar}. Throughout this document
+%The default is now \file{texosquery-jre8.jar}. If you have an older
+%version of Java you will need to edit the \file{texosquery.cfg}
+%file (although, if possible, you should consider upgrading your Java version for
+%security reasons). Throughout this document
%\app{texosquery} is used to reference the application, regardless
%which of these three jar files you've chosen to use. See
%section~\ref{sec:setup} for further details.
@@ -208,20 +211,18 @@ Organization for Standardization}
%function to support this. The \sty{tracklang} package has similarly added
%\cs{TrackLanguageTag}\marg{IETF tag}.
%
-%The \sty{locale} package occasionally referenced in this document
-%is still under development at the time of writing. The
-%\longarg{numeric}, \longarg{locale-data}, \longarg{date-time} and
+%The \longarg{numeric}, \longarg{locale-data}, \longarg{date-time} and
%\longarg{time-zones} options are designed to
-%interface with the \sty{locale} package, so although
-%\sty{texosquery} and \sty{locale} will be distributed separately,
-%version 1.2 of \app{texosquery} is being
-%developed alongside version 1.0 of the \sty{locale} package.
-%The aim of the \sty{locale} package is to use both \sty{tracklang}
+%interface with the \sty{tex-locale} package, so although
+%\sty{texosquery} and \sty{tex-locale} are distributed separately,
+%version 1.2 of \app{texosquery} was
+%developed alongside version 1.0 of the \sty{tex-locale} package.
+%The aim of the \sty{tex-locale} package is to use both \sty{tracklang}
%and \sty{texosquery} to automatically set up the document language.
%For example, in the following \LaTeX\ document
%\begin{verbatim}
%\documentclass{article}
-%\usepackage{locale}
+%\usepackage{tex-locale}
%\begin{document}
%Language: \CurrentLocaleLanguageNativeName.
%Region: \CurrentLocaleRegionNativeName.
@@ -238,7 +239,7 @@ Organization for Standardization}
%\texosqueryfmtnumber{\CurrentLocaleCurrencyPattern}{1234567}{0}{0}
%\end{document}
%\end{verbatim}
-%the \sty{locale} package will automatically:
+%the \sty{tex-locale} package will automatically:
%\begin{itemize}
%\item load the \sty{textcomp} package for currency symbols (package
%option \texttt{symbols=fontawesome} will use \sty{fontawesome}
@@ -286,9 +287,7 @@ Organization for Standardization}
%\bye
%\end{verbatim}
%
-%So that's the reasoning behind the new v1.2 actions. Hopefully the
-%new \sty{locale} package will be uploaded to \gls{CTAN} shortly after the
-%new version of \sty{texosquery}.
+%So that's the reasoning behind the new v1.2 actions.
%
%\clearpage
%\tableofcontents
@@ -1491,7 +1490,7 @@ Organization for Standardization}
%the non-standalone names.
%
%The information supplied with this option is quite complex,
-%but it's used by the \sty{locale} package to set up all the
+%but it's used by the \sty{tex-locale} package to set up all the
%required information for each locale used in the document.
%Any non-\gls{ASCII} characters are marked up with \cs{twrp},
%which is locally defined by \cs{TeXOSQuery} to expand to
@@ -1621,7 +1620,7 @@ Organization for Standardization}
%This is done in order to be compatible with \sty{pgfcalendar}. For
%example, with \texttt{-D en-GB} \meta{first day} is 0 (Monday), but
%with \texttt{pt-BR} \meta{first day} is 6 (Sunday). The
-%\sty{locale} package provides a way of converting the index to
+%\sty{tex-locale} package provides a way of converting the index to
%Monday=1 or Sunday=1 indexing.
%
%\item \meta{date pattern block}
@@ -2047,7 +2046,7 @@ Organization for Standardization}
%\TeXOSQueryInvoker ...TeXOSInvokerName \space #1"
%
%\TeXOSQuery ...noexpand #1{\TeXOSQueryInvoker {#2}
-% }}\x \fi
+% }}\@texosquery@tmp \fi
%l.5 \TeXOSQuery{\result}{-b}
% ^^M
%(Press Enter to retry, or Control-D to exit)
@@ -2082,10 +2081,11 @@ Organization for Standardization}
%\end{itemize}
%
%The \cs{TeXOSQuery} command uses \ics{TeXOSInvokerName} to reference the
-%application name. This defaults to \app{texosquery} but needs to be
+%application name. This now defaults to \app{texosquery-jre8} (as
+%from \app{texosquery} version 1.7) but needs to be
%redefined to reflect the particular system call that's required.
%For example, \texttt{texosquery} (Java~7) or
-%\texttt{texosquery-jre8} (Java~8). This redefinition
+%\texttt{texosquery-jre5} (Java~5). This redefinition
%can be done in the configuration file \file{texosquery.cfg} for a
%system-wide setting. See section~\ref{sec:setup} for further
%details.
@@ -2663,7 +2663,7 @@ Organization for Standardization}
% \end{macrocode}
% Version info.
% \begin{macrocode}
-\expandafter\def\csname ver@texosquery.tex\endcsname{2017/06/20 v1.6 (NLCT)}
+\expandafter\def\csname ver@texosquery.tex\endcsname{2020/02/04 v1.7 (NLCT)}
% \end{macrocode}
%
%\begin{macro}{\@texosquery@warn}
@@ -3928,10 +3928,11 @@ Organization for Standardization}
\catcode`\;=12\relax
\catcode`\%=12\relax
\everyeof{\noexpand}\relax
- \@texosquery@edef\x{\endgroup\def\noexpand#1{\TeXOSQueryInvoker{#2}}}\x
+ \@texosquery@edef\@texosquery@tmp{\endgroup\def\noexpand#1{\TeXOSQueryInvoker{#2}}}\@texosquery@tmp
\fi
}
% \end{macrocode}
+%\changes{1.7}{2020-02-04}{renamed scratch variable}
%\end{macro}
%
%\begin{macro}{\TeXOSQueryFromFile}
@@ -3968,10 +3969,11 @@ Organization for Standardization}
\catcode`\;=12\relax
\catcode`\%=12\relax
\everyeof{\noexpand}\relax
- \@texosquery@edef\x{\endgroup\def\noexpand#1{\texosquery@input #2 }}\x
+ \@texosquery@edef\@texosquery@tmp{\endgroup\def\noexpand#1{\texosquery@input #2 }}\@texosquery@tmp
\fi
}
% \end{macrocode}
+%\changes{1.7}{2020-02-04}{renamed scratch variable}
%\end{macro}
%
%
@@ -5797,9 +5799,10 @@ Organization for Standardization}
\def\texosquerydefpattern#1#2{%
\begingroup
\@texosquery@pattern@shortcuts
- \@texosquery@edef\x{\endgroup\def\noexpand#1{#2}}\x
+ \@texosquery@edef\@texosquery@tmp{\endgroup\def\noexpand#1{#2}}\@texosquery@tmp
}
% \end{macrocode}
+%\changes{1.7}{2020-02-04}{renamed scratch variable}
%\end{macro}
%
%
@@ -6663,7 +6666,7 @@ Organization for Standardization}
%For example, \verb|{2}{M}| indicates the format \texttt{MM}. This
%command tests for \cs{texosqueryfmtpat}\meta{format}, which should
%take a single argument. If defined, that's used, otherwise use one
-%of the numeric commands defined above. The \sty{locale} package
+%of the numeric commands defined above. The \sty{tex-locale} package
%defines \cs{texosqueryfmtpatMMM} and so on to use the locale's month names
%etc.
%\changes{1.2}{2017-03-23}{new}
@@ -7941,7 +7944,7 @@ Organization for Standardization}
%Identify package:
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{texosquery}[2017/06/20 v1.6 (NLCT)]
+\ProvidesPackage{texosquery}[2020/02/04 v1.7 (NLCT)]
% \end{macrocode}
%Load \file{texosquery.tex}:
% \begin{macrocode}
@@ -7955,7 +7958,9 @@ Organization for Standardization}
%
%\subsection{Configuration File (\file{texosquery.cfg})}
%The configuration file. This will need to be edited as appropriate
-%to the system.
+%to the system. Since Java 7 end of life has long passed, this
+%now defaults to Java 8.
+%\changes{1.7}{2020-02-04}{changed the default version to texosquery-jre8}
%\iffalse
% \begin{macrocode}
%<*texosquery.cfg>
@@ -7972,27 +7977,30 @@ Organization for Standardization}
% from your command line.
% * If the version number starts with "1.5" or "1.6" then
-% \TeXOSInvokerName must be texosquery-jre5
+% \TeXOSInvokerName must be texosquery-jre5
+% and \TeXOSQueryAllowRestricted must be commented out
%
% * If the version number starts with "1.7" then
-% \TeXOSInvokerName must be texosquery
-%
-% * If the version number starts with "1.8" then
-% \TeXOSInvokerName must be texosquery-jre8
+% \TeXOSInvokerName must be texosquery
+% and \TeXOSQueryAllowRestricted must be commented out
+%
+% * If the version number starts with "1.8" or above then
+% \TeXOSInvokerName must be texosquery-jre8
+% and \TeXOSQueryAllowRestricted should be uncommented if
+% texosquery-jre8 is on the restricted list. (This has been the
+% case since TeX Live 2017.)
% (bash users need to check that the .sh extension has been removed
% from the bash scripts.)
-\def\TeXOSInvokerName{texosquery}
+\def\TeXOSInvokerName{texosquery-jre8}
% 2. If the invoker name given in the definition above is on the
-% restricted list, uncomment the line below to allow it to be run
-% in restricted mode:
+% restricted list, the line below should be uncommented to allow it to be run
+% in restricted mode. Otherwise comment it out.
-%\TeXOSQueryAllowRestricted
+\TeXOSQueryAllowRestricted
-% Leave it commented out if the invoker name is not on the
-% restricted list.
%COMMENT
% \end{macrocode}
%\iffalse
@@ -8015,15 +8023,20 @@ Organization for Standardization}
% \end{macrocode}
%\fi
%\subsubsection{\file{texosquery.sh}}
-%This now has a check for cygwin.
-% \begin{macrocode}
-kernel=`uname -s`
-if test "${kernel#*CYGWIN}" != "$kernel"
-then
- jarpath=`cygpath -w $(kpsewhich --progname=texosquery --format=texmfscripts texosquery.jar)`
-else
- jarpath=`kpsewhich --progname=texosquery --format=texmfscripts texosquery.jar`
+%\changes{1.7}{2020-02-04}{changed bash scripts for improved cygwin support}
+%Adapted from tlcockpit.sh to ensure the script works with cygwin.
+% \begin{macrocode}
+scriptname=`basename "$0" .sh`
+jar="$scriptname.jar"
+jarpath=`kpsewhich --progname="$scriptname" --format=texmfscripts "$jar"`
+
+kernel=`uname -s 2>/dev/null`
+if echo "$kernel" | grep CYGWIN >/dev/null; then
+ CYGWIN_ROOT=`cygpath -w /`
+ export CYGWIN_ROOT
+ jarpath=`cygpath -w "$jarpath"`
fi
+
java -jar "$jarpath" "$@"
% \end{macrocode}
%\iffalse
@@ -8039,13 +8052,17 @@ java -jar "$jarpath" "$@"
%\fi
%\subsubsection{\file{texosquery-jre8.sh}}
% \begin{macrocode}
-kernel=`uname -s`
-if test "${kernel#*CYGWIN}" != "$kernel"
-then
- jarpath=`cygpath -w $(kpsewhich --progname=texosquery --format=texmfscripts texosquery-jre8.jar)`
-else
- jarpath=`kpsewhich --progname=texosquery --format=texmfscripts texosquery-jre8.jar`
+scriptname=`basename "$0" .sh`
+jar="$scriptname.jar"
+jarpath=`kpsewhich --progname="$scriptname" --format=texmfscripts "$jar"`
+
+kernel=`uname -s 2>/dev/null`
+if echo "$kernel" | grep CYGWIN >/dev/null; then
+ CYGWIN_ROOT=`cygpath -w /`
+ export CYGWIN_ROOT
+ jarpath=`cygpath -w "$jarpath"`
fi
+
java -Djava.locale.providers=CLDR,JRE -jar "$jarpath" "$@"
% \end{macrocode}
%\iffalse
@@ -8061,13 +8078,17 @@ java -Djava.locale.providers=CLDR,JRE -jar "$jarpath" "$@"
%\fi
%\subsubsection{\file{texosquery-jre5.sh}}
% \begin{macrocode}
-kernel=`uname -s`
-if test "${kernel#*CYGWIN}" != "$kernel"
-then
- jarpath=`cygpath -w $(kpsewhich --progname=texosquery --format=texmfscripts texosquery-jre5.jar)`
-else
- jarpath=`kpsewhich --progname=texosquery --format=texmfscripts texosquery-jre5.jar`
+scriptname=`basename "$0" .sh`
+jar="$scriptname.jar"
+jarpath=`kpsewhich --progname="$scriptname" --format=texmfscripts "$jar"`
+
+kernel=`uname -s 2>/dev/null`
+if echo "$kernel" | grep CYGWIN >/dev/null; then
+ CYGWIN_ROOT=`cygpath -w /`
+ export CYGWIN_ROOT
+ jarpath=`cygpath -w "$jarpath"`
fi
+
java -jar "$jarpath" "$@"
% \end{macrocode}
%\iffalse
diff --git a/support/texosquery/texosquery.pdf b/support/texosquery/texosquery.pdf
index 51aee9d372..4ff5125198 100644
--- a/support/texosquery/texosquery.pdf
+++ b/support/texosquery/texosquery.pdf
Binary files differ