\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: \href{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#nounixspecialcharacters}{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: \href{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#filepermissions}{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: \href{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#noemptyfiles}{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: \href{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#noemptyfiles}{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: \href{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#noauxfiles}{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: \href{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#noauxfiles}{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: \href{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#noauxfiles}{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: \href{http://mirrors.ibiblio.org/CTAN/help/ctan/CTAN-upload-addendum.html\#readme}{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: \href{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#filepermissions}{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: \href{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#crlf}{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}. Starting with version 1.1.0 \texttt{pkgcheck} also detects generated files if they are in a different directory in the package. For more details refer to: \href{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#nogeneratedfiles}{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#nogeneratedfiles} \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: \href{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#filepermissions}{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: \href{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#filenames}{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: \href{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#readme}{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: \href{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#crlf}{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: \href{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#crlf}{http://mirror.ctan.org/help/ctan/CTAN-upload-addendum.html\#crlf}