\hypertarget{e0001----bad-characters-in-file-name}{%
\subsection{E0001 -\/- Bad characters in file
name}\label{e0001----bad-characters-in-file-name}}

File name should not contain non-ascii characters. Additionally, file
names should not contain control characters or other characters which
may have a special meaning for UNIX shells.

For more details refer to:
\url{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#nounixspecialcharacters}

\hypertarget{e0002----file-permissions}{%
\subsection{E0002 -\/- File
Permissions}\label{e0002----file-permissions}}

Files submitted to CTAN should be world readable.

Only files that are truly executable (like scripts and binaries) should
be marked as such.

For more details refer to:
\url{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#filepermissions}

\hypertarget{e0003----readme-is-not-a-text-file}{%
\subsection{E0003 -\/- README is not a text
file}\label{e0003----readme-is-not-a-text-file}}

The \texttt{README} file specified in the error message must be a text
file but it isn't.

\hypertarget{e0004----empty-directory-not-allowed}{%
\subsection{E0004 -\/- Empty directory not
allowed}\label{e0004----empty-directory-not-allowed}}

Empty directories are considered as rubbish, and are usually not
accepted as part of a package, neither in the package tree nor in the
TDS zip archive.

For more details refer to:
\url{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#noemptyfiles}

\hypertarget{e0005----empty-files-not-allowed}{%
\subsection{E0005 -\/- Empty files not
allowed}\label{e0005----empty-files-not-allowed}}

Empty files are considered as rubbish, and are usually not accepted as
part of a package.

For more details refer to:
\url{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#noemptyfiles}

\hypertarget{e0006----hidden-directories-not-allowed}{%
\subsection{E0006 -\/- Hidden directories not
allowed}\label{e0006----hidden-directories-not-allowed}}

A package should not contain hidden directories, neither in the package
tree nor in the TDS zip archive.

For more details refer to:
\url{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#noauxfiles}

\hypertarget{e0007----hidden-files-not-allowed}{%
\subsection{E0007 -\/- Hidden files not
allowed}\label{e0007----hidden-files-not-allowed}}

A package should not contain hidden files, neither in the package tree
nor in the TDS zip archive.

For more details refer to:
\url{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#noauxfiles}

\hypertarget{e0008----temporary-file-detected}{%
\subsection{E0008 -\/- Temporary file
detected}\label{e0008----temporary-file-detected}}

A temporary file was detected. These are typically files created by TeX
\& friends and should not be part of a package.

Temporary files will also be detected in a TDS zip archive.

For more details refer to:
\url{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#noauxfiles}

\hypertarget{e0009----package-doesnt-contain-a-readme-file}{%
\subsection{E0009 -\/- Package doesn't contain a README
file}\label{e0009----package-doesnt-contain-a-readme-file}}

A package must contain at least one of \texttt{README},
\texttt{README.md} or \texttt{README.txt} file.

For more details refer to:
\url{http://mirrors.ibiblio.org/CTAN/help/ctan/CTAN-upload-addendum.html\#readme}

\hypertarget{e0010----broken-symlink-detected}{%
\subsection{E0010 -\/- Broken symlink
detected}\label{e0010----broken-symlink-detected}}

A broken symlink was detected.

\hypertarget{e0011----wrong-permission-for-directory}{%
\subsection{E0011 -\/- Wrong permission for
directory}\label{e0011----wrong-permission-for-directory}}

Directories should have rwx for the owner and at least \texttt{r-x} for
others (i.e. world readable).

For more details refer to:
\url{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#filepermissions}

\hypertarget{e0012----crlf-line-endings-detected}{%
\subsection{E0012 -\/- CRLF line endings
detected}\label{e0012----crlf-line-endings-detected}}

The file specified in the error message contains CRLF line endings. Text
files should have UNIX style line endings.

For more details refer to:
\url{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#crlf}

\hypertarget{e0013----socket-special-fie-detected}{%
\subsection{E0013 -\/- Socket special fie
detected}\label{e0013----socket-special-fie-detected}}

The file specified in the error message is a socket special file which
is not allowed.

\hypertarget{e0014----fifo-special-file-detected}{%
\subsection{E0014 -\/- Fifo special file
detected}\label{e0014----fifo-special-file-detected}}

The file specified in the error message is a fifo special file which is
not allowed.

\hypertarget{e0015----bloch-device-file-detected}{%
\subsection{E0015 -\/- Bloch device file
detected}\label{e0015----bloch-device-file-detected}}

The file specified in the error message is a block device file which is
not allowed.

\hypertarget{e0016----character-device-file-detected}{%
\subsection{E0016 -\/- Character device file
detected}\label{e0016----character-device-file-detected}}

The file specified in the error message is a character device file which
is not allowed.

\hypertarget{e0017----pdf-document-is-in-error}{%
\subsection{E0017 -\/- PDF document is in
error}\label{e0017----pdf-document-is-in-error}}

The PDF document mentioned in the message is in error.

\texttt{pdfinfo} will be run to check if a PDF document can be read.
Message \texttt{E0017} will be followed by the error messages from
\texttt{pdfinfo}.

Example:

\begin{verbatim}
I0002   Checking package files in directory somepkg
E0017   PDF error detected in somepkg/sompkg.pdf
Syntax Error (1293042): Illegal character ')'
Syntax Error: Couldn't find trailer dictionary
Syntax Error (1293042): Illegal character ')'
Syntax Error: Couldn't find trailer dictionary
Syntax Error: Couldn't read xref table
\end{verbatim}

\hypertarget{e0018----unwanted-directory-detected}{%
\subsection{E0018 -\/- Unwanted directory
detected}\label{e0018----unwanted-directory-detected}}

A directory was detected which should not be part of a package. Example:
\texttt{\_\_MACOSX}

\hypertarget{e0019----generated-file-detected}{%
\subsection{E0019 -\/- Generated file
detected}\label{e0019----generated-file-detected}}

In order to avoid redundancy we don't want to have included files in a
package which easily can be generated from other files in the
submission.

Exceptions are the \texttt{README} files of the package, i.e.
\texttt{README}, \texttt{README.md} or \texttt{README.txt},
\texttt{.pdf}, \texttt{.html}, or \texttt{.css} files.

\texttt{pkgcheck} detects generated files anywhere in the package
directory tree.

For more details refer to:
\url{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#nogeneratedfiles}

\hypertarget{e0020----unwanted-directory-detected-in-the-top-level-directory-in-tds-zip-archive}{%
\subsection{E0020 -\/- Unwanted directory detected in the top level
directory in TDS zip
archive}\label{e0020----unwanted-directory-detected-in-the-top-level-directory-in-tds-zip-archive}}

The name of a top level directory of a TDS archive must be one of those
listed here: \texttt{asymptote}, \texttt{bibtex}, \texttt{chktex},
\texttt{context}, \texttt{doc}, \texttt{dvipdfmx}, \texttt{dvips},
\texttt{fonts}, \texttt{hbf2gf}, \texttt{makeindex}, \texttt{metafont},
\texttt{metapost}, \texttt{mft}, \texttt{omega}, \texttt{pbibtex},
\texttt{psutils}, \texttt{scripts}, \texttt{source}, \texttt{tex},
\texttt{tex4ht}, \texttt{texconfig}, \texttt{texdoc}, \texttt{texdoctk},
\texttt{ttf2pk}, \texttt{web2c}, \texttt{xdvi}, \texttt{xindy},

Any other other directory at the top level is an error.

\hypertarget{e0021----error-when-reading-a-file}{%
\subsection{E0021 -\/- Error when reading a
file}\label{e0021----error-when-reading-a-file}}

An error was encountered when reading the file specified in the message.

\hypertarget{e0022----check-of-an-url-in-a-readme-file-failed}{%
\subsection{E0022 -\/- Check of an URL in a README file
failed}\label{e0022----check-of-an-url-in-a-readme-file-failed}}

URL checking is in effect. An error occcured when trying to retrieve an
URL which was found in the specified \texttt{README} file.

\hypertarget{e0023----follow-up-error-when-trying-to-read-a-directory-with-insufficient-permissions}{%
\subsection{E0023 -\/- Follow up error when trying to read a directory
with insufficient
permissions}\label{e0023----follow-up-error-when-trying-to-read-a-directory-with-insufficient-permissions}}

Error which is a follow-up error. For instance, when a directory could
not be read.

\hypertarget{e0024----tds-zip-archive-has-wrong-permissions}{%
\subsection{E0024 -\/- TDS zip archive has wrong
permissions}\label{e0024----tds-zip-archive-has-wrong-permissions}}

The TDS zip archive should have at least \texttt{r-\/-} for the owner
and at least \texttt{r-\/-} for others (i.e. world readable).

For more details refer to:
\url{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#filepermissions}

\hypertarget{e0025----duplicate-names-when-ignoring-letter-case-for-files-or-directories}{%
\subsection{E0025 -\/- Duplicate names when ignoring letter case for
files or
directories}\label{e0025----duplicate-names-when-ignoring-letter-case-for-files-or-directories}}

As there are operating systems which do not distinguish between
\texttt{myfile} and \texttt{MYFILE} we don't want to have file names in
a directory which are the same after converting to lower case.

For more details refer to:
\url{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#filenames}

\hypertarget{e0026----files-not-in-tds-or-different-in-tds-and-non-install-tree}{%
\subsection{E0026 -\/- Files not in TDS or different in TDS and
non-install
tree}\label{e0026----files-not-in-tds-or-different-in-tds-and-non-install-tree}}

The file mentioned in the error message is either not existing in the
TDS zip archive, or it is different to the one in the non-install tree

\hypertarget{e0027----an-io-error-occured}{%
\subsection{E0027 -\/- An I/O error
occured}\label{e0027----an-io-error-occured}}

Some kind of I/O error occured. If you believe there is an error in
\texttt{pkgcheck} please contact the author.

\hypertarget{e0028----a-path-name-in-a-tds-zip-archive-must-contain-the-package-name}{%
\subsection{E0028 -\/- A path name in a TDS zip archive must contain the
package
name}\label{e0028----a-path-name-in-a-tds-zip-archive-must-contain-the-package-name}}

The path names in a TDS zip archive must contain the package name.

\textbf{Example:} Assume a package \texttt{somepkg}. Then path names
should look like follows:

\begin{verbatim}
tex/latex/somepkg/somepkg.cls
doc/latex/somepkg/README
source/latex/somepkg/somepkg.dtx
...
\end{verbatim}

\hypertarget{e0029----readme-file--encoding-with-bom-detected}{%
\subsection{\texorpdfstring{E0029 -\/- README file: encoding with BOM
detected}{E0029 -\/- README file:  encoding with BOM detected}}\label{e0029----readme-file--encoding-with-bom-detected}}

A README file should be either ASCII or UTF-8 without BOM(byte order
mark)

For more details refer to:
\url{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#readme}

\hypertarget{e0030----a-symlink-was-found-which-points-outside-of-the-package-directory-tree}{%
\subsection{E0030 -\/- A symlink was found which points outside of the
package directory
tree}\label{e0030----a-symlink-was-found-which-points-outside-of-the-package-directory-tree}}

A symlink must not point to a file or directory outside of the package
directory tree.

\hypertarget{e0031----file-name-contains-invalid-utf-8-characters}{%
\subsection{E0031 -\/- File name contains invalid UTF-8
character(s)}\label{e0031----file-name-contains-invalid-utf-8-characters}}

A file name contains invald UTF-8 character(s).

\hypertarget{e0033----error-when-unpacking-tds-archive}{%
\subsection{E0033 -\/- Error when unpacking tds
archive}\label{e0033----error-when-unpacking-tds-archive}}

In order to investigate the contents of the TDS zip archive
\texttt{pkgcheck} unpacks the TDS zip archive to a temporary location
which failed for the reason given in the error message.

\hypertarget{e0034----unwanted-file-detected-in-the-top-level-directory-in-tds-zip-archive}{%
\subsection{E0034 -\/- Unwanted file detected in the top level directory
in TDS zip
archive}\label{e0034----unwanted-file-detected-in-the-top-level-directory-in-tds-zip-archive}}

A top level directory of a TDS archive should only contain certain
directories but no files.

\hypertarget{e0035----unwanted-tds-archive-detected-in-package-directory-tree}{%
\subsection{E0035 -\/- Unwanted TDS archive detected in package
directory
tree}\label{e0035----unwanted-tds-archive-detected-in-package-directory-tree}}

A package directory should not contain a TDS zip archive.

\hypertarget{e0036----dtxins-files-found-in-wrong-directory-in-tds-zip-archive}{%
\subsection{E0036 -\/- .dtx/.ins files found in wrong directory in TDS
zip
archive}\label{e0036----dtxins-files-found-in-wrong-directory-in-tds-zip-archive}}

In a TDS zip archive a \texttt{.dtx} resp. \texttt{.ins} file must be in
a subdirectory of either of \texttt{source/} or \texttt{doc/} top level
directories.

\hypertarget{e0037----cr-line-endings-detected}{%
\subsection{E0037 -\/- CR line endings
detected}\label{e0037----cr-line-endings-detected}}

The file specified in the error message contains CR line endings. Text
files should have UNIX style line endings.

For more details refer to:
\url{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#crlf}

\hypertarget{e0038----file-has-inconsistent-line-endings-cr-x-lf-y-crlf-z}{%
\subsection{E0038 -\/- File has inconsistent line endings: CR: x, LF: y,
CRLF:
z}\label{e0038----file-has-inconsistent-line-endings-cr-x-lf-y-crlf-z}}

The file specified in the error message contains CR line endings. Text
files should have UNIX style line endings.

For more details refer to:
\url{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#crlf}

\hypertarget{e0039----no-doc-directory-found-in-the-top-level-directory-of-the-tds-zip-archive}{%
\subsection{E0039 -\/- No doc/ directory found in the top level
directory of the TDS zip
archive}\label{e0039----no-doc-directory-found-in-the-top-level-directory-of-the-tds-zip-archive}}

A TDS zip archive is required to contain a top level directory doc/.

\hypertarget{e0040----too-few-top-level-directories-in-the-tds-zip-archive}{%
\subsection{E0040 -\/- Too few top level directories in the TDS zip
archive}\label{e0040----too-few-top-level-directories-in-the-tds-zip-archive}}

The top level directory of a TDS zip archive must contain at least a
\texttt{doc} directory and one or more of the following directories:
\texttt{asymptote}, \texttt{bibtex}, \texttt{chktex}, \texttt{context},
\texttt{dvipdfmx}, \texttt{dvips}, \texttt{fonts}, \texttt{hbf2gf},
\texttt{makeindex}, \texttt{metafont}, \texttt{metapost}, \texttt{mft},
\texttt{omega}, \texttt{pbibtex}, \texttt{psutils}, \texttt{scripts},
\texttt{source}, \texttt{tex}, \texttt{tex4ht}, \texttt{texconfig},
\texttt{texdoc}, \texttt{texdoctk}, \texttt{ttf2pk}, \texttt{web2c},
\texttt{xdvi}, \texttt{xindy},

Any other other directory at the top level is an error.

\hypertarget{e0041----one-or-more-map-file-found-for-the-package-but-none-of-them-is-in-a-path-starting-with-fontsmapdvips}{%
\subsection{E0041 -\/- One or more map file found for the package but
none of them is in a path starting with
fonts/map/dvips}\label{e0041----one-or-more-map-file-found-for-the-package-but-none-of-them-is-in-a-path-starting-with-fontsmapdvips}}

At least one map file was found which was not in a path starting with
\texttt{fonts/map/dvips}.
