From 7eb4cfc67713c137669aa4c1e252f430f03963f9 Mon Sep 17 00:00:00 2001 From: Christian Franke Date: Fri, 1 Mar 2024 13:56:45 +0100 Subject: [PATCH] dodoc: Skip a file if a compressed version already exists This prevents __prepdoc() (run by default during postinstall unless RESTRICT=postinst-doc) from also adding the uncompressed version of a default doc file, if src_install() already explicitly installed a compressed version. --- lib/src_install.cygpart | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/src_install.cygpart b/lib/src_install.cygpart index 18210488..7aca673c 100644 --- a/lib/src_install.cygpart +++ b/lib/src_install.cygpart @@ -163,10 +163,11 @@ docinto() { # Installs the given files or directories into $D/usr/share/doc/PN/, or a # subdirectory thereof specified by the previous call to docinto. # If a FILE does not exist, FILE.md, FILE.rst and FILE.txt are also -# considered. +# considered. A FILE is skipped if the destination file or a compressed +# version (.bz2, .gz, .xz, .zstd) of it already exists. #**** dodoc() { - local docdir d f i x + local docdir d e f i x case "${_docinto_dir}" in '') docdir=/usr/share/doc/${PN} ;; @@ -193,6 +194,10 @@ dodoc() { do if [ -s "${i}${x}" -a ! -f "${D}${docdir}/${i}${x}" ] then + for e in bz2 gz xz zst + do + ! [ -f "${D}${docdir}/${i}${x}.${e}" ] || continue 2 + done __doinstall 0644 "${i}${x}" ${docdir} || error "dodoc ${i} failed" break fi