diff options
author | Allan McRae <mcrae_allan@hotmail.com> | 2008-05-13 20:26:11 +1000 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2008-05-29 06:37:20 -0500 |
commit | c1a5616c26a5c175c65dea61ca74a622c6930df8 (patch) | |
tree | 498b5eb61847c225c0d6d9fa41993bd4cf4b97b4 | |
parent | da1c11cc30d0286f07d46bf2d910482c9a72f31c (diff) | |
download | pacman-c1a5616c26a5c175c65dea61ca74a622c6930df8.tar.xz |
makepkg - add check for valid options in PKGBUILD
This patch removes the code block in makepkg that checked for depreciated
options in a PKGBUILD and provided a workaround. Unknown and depreciated
options are upgraded to error conditions.
Also, removed TODO regarding including install script if exists and $install
is unset. That should never happen.
Signed-off-by: Allan McRae <mcrae_allan@hotmail.com>
Signed-off-by: Xavier Chantry <shiningxc@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r-- | scripts/makepkg.sh.in | 41 |
1 files changed, 21 insertions, 20 deletions
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index 6479a980..6e2f1ad5 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -41,6 +41,8 @@ confdir='@sysconfdir@' startdir="$PWD" srcdir="$startdir/src" pkgdir="$startdir/pkg" +known_options=('strip' 'docs' 'libtool' 'emptydirs' 'zipman' 'ccache' 'distcc' 'makeflags' 'force') +readonly -a known_options # Options ASROOT=0 @@ -184,25 +186,6 @@ check_option() { return fi - # BEGIN DEPRECATED - # TODO: This code should be removed in the next release of makepkg. - local needle=$(echo $1 | tr [:upper:] [:lower:]) - local opt - for opt in ${options[@]}; do - opt=$(echo $opt | tr [:upper:] [:lower:]) - if [ "$opt" = "no$needle" ]; then - warning "$(gettext "Options beginning with 'no' will be deprecated in the next version of makepkg!")" - plain "$(gettext "Please replace 'no' with '!': %s -> %s.")" "no$needle" "!$needle" - echo 'n' # Disabled - return - elif [ "$opt" = "keepdocs" -a "$needle" = "docs" ]; then - warning "$(gettext "Option 'keepdocs' may not work as intended. Please replace with 'docs'.")" - echo 'y' # Enabled - return - fi - done - # END DEPRECATED - # fall back to makepkg.conf options ret=$(in_opt_array "$1" ${OPTIONS[@]}) if [ "$ret" != '?' ]; then @@ -848,7 +831,6 @@ create_package() { local comp_files=".PKGINFO" # check for an install script - # TODO: should we include ${pkgname}.install if it exists and $install is unset? if [ "$install" != "" ]; then msg2 "$(gettext "Adding install script...")" cp "$startdir/$install" .INSTALL @@ -1345,6 +1327,25 @@ if [ "$install" -a ! -f "$install" ]; then exit 1 fi +valid_options=1 +for opt in ${options[@]}; do + known=0 + # check if option matches a known option or its inverse + for kopt in ${known_options[@]}; do + if [ "${opt}" = "${kopt}" -o "${opt}" = "!${kopt}" ]; then + known=1 + fi + done + if [ $known -eq 0 ]; then + error "$(gettext "options array contains unknown option '%s'")" "$opt" + valid_options=0 + fi +done +if [ $valid_options -eq 0 ]; then + exit 1 +fi +unset valid_options opt known kopt + # We need to run devel_update regardless of whether we are in the fakeroot # build process so that if the user runs makepkg --forcever manually, we # 1) output the correct pkgver, and 2) use the correct filename when |