#!/bin/sh # sbopkglint test, must be sourced by sbopkglint (not run standalone). # PKG, PRGNAM, VERSION, ARCH are set by sbopkglint. also the current # directory is the root of the installed package tree. ######################################################################## # checks file permissions and ownership in the package doc dir. files # should all be mode 644, directories should be 755. everything should # be owned by root:root. also checks for empty files or (possibly) # install instructions. # ideally, we'd require all files under the doc dir to be mode 0644. # however, too many existing packages (including core Slackware ones) # break that rule. so check for the minimum set of desired permissions: # a doc file should be readable by all users (at least 444). DOCDIR=usr/doc/$PRGNAM-$VERSION # existence of the doc dir was already checked by a previous test, # so just don't do anything if it's missing. if [ -d "$DOCDIR" ]; then badpermfiles="$( find $DOCDIR -mindepth 1 -type f -a \! -perm -444 )" badpermdirs="$( find $DOCDIR -mindepth 1 -type d -a \! -perm 0755 )" badowners="$( find $DOCDIR -mindepth 1 -user root -a -group root -o -print )" empty="$( find $DOCDIR -mindepth 1 -empty )" bogus="$( find $DOCDIR -mindepth 1 -maxdepth 1 -type f -a \( -name INSTALL -o -name INSTALL.\* \) )" [ -n "$badpermfiles" ] && warn "bad file perms (should be 644, or at least 444) in doc dir:" && ls -l $badpermfiles [ -n "$badpermdirs" ] && warn "bad directory perms (should be 755) in doc dir:" && ls -ld $badpermdirs [ -n "$badowners" ] && warn "bad ownership (should be root:root) in doc dir:" && ls -ld $badowners [ -n "$empty" ] && warn "empty files/dirs in doc dir: $empty" [ -n "$bogus" ] && [ -z "$INSTALL_DOCS_OK" ] && warn "useless-looking install instructions in doc dir: $bogus" fi baddocs="$( find usr/doc -mindepth 1 -maxdepth 1 \! -name $PRGNAM-$VERSION )" [ -n "$baddocs" ] && warn "docs outside of $DOCDIR:" && ls -ld $baddocs