Signed-off-by: Allan McRae <allan@archlinux.org> --- scripts/Makefile.am | 6 ++-- scripts/libmakepkg/.gitignore | 5 ++-- scripts/libmakepkg/lint.sh.in | 38 ++++++++++++++++++++++++++ scripts/libmakepkg/lint/build_references.sh.in | 36 ++++++++++++++++++++++++ scripts/libmakepkg/lint/missing_backup.sh.in | 36 ++++++++++++++++++++++++ scripts/libmakepkg/tidy.sh.in | 5 ---- scripts/libmakepkg/tidy/build_references.sh.in | 36 ------------------------ scripts/libmakepkg/tidy/missing_backup.sh.in | 36 ------------------------ scripts/libmakepkg/util/build_references.sh.in | 36 ++++++++++++++++++++++++ scripts/libmakepkg/util/missing_backup.sh.in | 36 ++++++++++++++++++++++++ scripts/makepkg.sh.in | 2 ++ 11 files changed, 191 insertions(+), 81 deletions(-) create mode 100644 scripts/libmakepkg/lint.sh.in create mode 100644 scripts/libmakepkg/lint/build_references.sh.in create mode 100644 scripts/libmakepkg/lint/missing_backup.sh.in delete mode 100644 scripts/libmakepkg/tidy/build_references.sh.in delete mode 100644 scripts/libmakepkg/tidy/missing_backup.sh.in create mode 100644 scripts/libmakepkg/util/build_references.sh.in create mode 100644 scripts/libmakepkg/util/missing_backup.sh.in diff --git a/scripts/Makefile.am b/scripts/Makefile.am index 4745b6e..ab036c9 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -41,6 +41,7 @@ LIBRARY = \ libmakepkgdir = $(datarootdir)/makepkg LIBMAKEPKGDIRS = \ + lint \ tidy \ util @@ -49,12 +50,13 @@ LIBMAKEPKG = \ libmakepkg/util/option.sh LIBMAKEPKG_IN = \ + libmakepkg/lint.sh \ + libmakepkg/lint/build_references.sh \ + libmakepkg/lint/missing_backup.sh \ libmakepkg/tidy.sh \ - libmakepkg/tidy/build_references.sh \ libmakepkg/tidy/docs.sh \ libmakepkg/tidy/emptydirs.sh \ libmakepkg/tidy/libtool.sh \ - libmakepkg/tidy/missing_backup.sh \ libmakepkg/tidy/optipng.sh \ libmakepkg/tidy/purge.sh \ libmakepkg/tidy/staticlibs.sh \ diff --git a/scripts/libmakepkg/.gitignore b/scripts/libmakepkg/.gitignore index 7072d8b..1064d02 100644 --- a/scripts/libmakepkg/.gitignore +++ b/scripts/libmakepkg/.gitignore @@ -1,9 +1,10 @@ +lint.sh +lint/build_references.sh +lint/missing_backup.sh tidy.sh -tidy/build_references.sh tidy/docs.sh tidy/emptydirs.sh tidy/libtool.sh -tidy/missing_backup.sh tidy/optipng.sh tidy/purge.sh tidy/staticlibs.sh diff --git a/scripts/libmakepkg/lint.sh.in b/scripts/libmakepkg/lint.sh.in new file mode 100644 index 0000000..2e3c7f6 --- /dev/null +++ b/scripts/libmakepkg/lint.sh.in @@ -0,0 +1,38 @@ +#!/bin/bash +# +# lint.sh - functions for checking for packaging errors +# +# Copyright (c) 2015 Pacman Development Team <pacman-dev@archlinux.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# + +[ -n "$LIBMAKEPKG_LINT_SH" ] && return +LIBMAKEPKG_LINT_SH=1 + +LIBRARY=${LIBRARY:-'@libmakepkgdir@'} + +source "$LIBRARY/util/message.sh" + +for lib in "$LIBRARY/lint/"*.sh; do + source "$lib" +done + +lint_package() { + cd_safe "$pkgdir" + msg "$(gettext "Checking for packaging issue...")" + + warn_missing_backup + warn_build_references +} diff --git a/scripts/libmakepkg/lint/build_references.sh.in b/scripts/libmakepkg/lint/build_references.sh.in new file mode 100644 index 0000000..9cf7b7a --- /dev/null +++ b/scripts/libmakepkg/lint/build_references.sh.in @@ -0,0 +1,36 @@ +#!/bin/bash +# +# build_references.sh - Warn about files containing references to build directories +# +# Copyright (c) 2013-2015 Pacman Development Team <pacman-dev@archlinux.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# + +[ -n "$LIBMAKEPKG_LINT_BUILD_REFERENCES_SH" ] && return +LIBMAKEPKG_LINT_BUILD_REFERENCES_SH=1 + +LIBRARY=${LIBRARY:-'@libmakepkgdir@'} + +source "$LIBRARY/util/message.sh" + + +warn_build_references() { + if find "${pkgdir}" -type f -print0 | xargs -0 grep -q -I "${srcdir}" ; then + warning "$(gettext "Package contains reference to %s")" "\$srcdir" + fi + if find "${pkgdir}" -type f -print0 | xargs -0 grep -q -I "${pkgdirbase}" ; then + warning "$(gettext "Package contains reference to %s")" "\$pkgdir" + fi +} diff --git a/scripts/libmakepkg/lint/missing_backup.sh.in b/scripts/libmakepkg/lint/missing_backup.sh.in new file mode 100644 index 0000000..b54f2ab --- /dev/null +++ b/scripts/libmakepkg/lint/missing_backup.sh.in @@ -0,0 +1,36 @@ +#!/bin/bash +# +# missing_backup.sh - Warn about missing files in the backup array +# +# Copyright (c) 2013-2015 Pacman Development Team <pacman-dev@archlinux.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# + +[ -n "$LIBMAKEPKG_LINT_MISSING_BACKUP_SH" ] && return +LIBMAKEPKG_LINT_MISSING_BACKUP_SH=1 + +LIBRARY=${LIBRARY:-'@libmakepkgdir@'} + +source "$LIBRARY/util/message.sh" + + +warn_missing_backup() { + local file + for file in "${backup[@]}"; do + if [[ ! -f $file ]]; then + warning "$(gettext "%s entry file not in package : %s")" "backup" "$file" + fi + done +} diff --git a/scripts/libmakepkg/tidy.sh.in b/scripts/libmakepkg/tidy.sh.in index 483afcb..b8c2965 100644 --- a/scripts/libmakepkg/tidy.sh.in +++ b/scripts/libmakepkg/tidy.sh.in @@ -47,11 +47,6 @@ tidy_install() { tidy_staticlibs tidy_emptydirs - # warn about packaging issues - # TODO: move these to another module - warn_missing_backup - warn_build_references - # options that reduce file sizes tidy_zipman tidy_strip diff --git a/scripts/libmakepkg/tidy/build_references.sh.in b/scripts/libmakepkg/tidy/build_references.sh.in deleted file mode 100644 index 2611869..0000000 --- a/scripts/libmakepkg/tidy/build_references.sh.in +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash -# -# build_references.sh - Warn about files containing references to build directories -# -# Copyright (c) 2013-2015 Pacman Development Team <pacman-dev@archlinux.org> -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -# - -[ -n "$LIBMAKEPKG_TIDY_BUILD_REFERENCES_SH" ] && return -LIBMAKEPKG_TIDY_BUILD_REFERENCES_SH=1 - -LIBRARY=${LIBRARY:-'@libmakepkgdir@'} - -source "$LIBRARY/util/message.sh" - - -warn_build_references() { - if find "${pkgdir}" -type f -print0 | xargs -0 grep -q -I "${srcdir}" ; then - warning "$(gettext "Package contains reference to %s")" "\$srcdir" - fi - if find "${pkgdir}" -type f -print0 | xargs -0 grep -q -I "${pkgdirbase}" ; then - warning "$(gettext "Package contains reference to %s")" "\$pkgdir" - fi -} diff --git a/scripts/libmakepkg/tidy/missing_backup.sh.in b/scripts/libmakepkg/tidy/missing_backup.sh.in deleted file mode 100644 index fae04a2..0000000 --- a/scripts/libmakepkg/tidy/missing_backup.sh.in +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash -# -# missing_backup.sh - Warn about missing files in the backup array -# -# Copyright (c) 2013-2015 Pacman Development Team <pacman-dev@archlinux.org> -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -# - -[ -n "$LIBMAKEPKG_TIDY_MISSING_BACKUP_SH" ] && return -LIBMAKEPKG_TIDY_MISSING_BACKUP_SH=1 - -LIBRARY=${LIBRARY:-'@libmakepkgdir@'} - -source "$LIBRARY/util/message.sh" - - -warn_missing_backup() { - local file - for file in "${backup[@]}"; do - if [[ ! -f $file ]]; then - warning "$(gettext "%s entry file not in package : %s")" "backup" "$file" - fi - done -} diff --git a/scripts/libmakepkg/util/build_references.sh.in b/scripts/libmakepkg/util/build_references.sh.in new file mode 100644 index 0000000..2611869 --- /dev/null +++ b/scripts/libmakepkg/util/build_references.sh.in @@ -0,0 +1,36 @@ +#!/bin/bash +# +# build_references.sh - Warn about files containing references to build directories +# +# Copyright (c) 2013-2015 Pacman Development Team <pacman-dev@archlinux.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# + +[ -n "$LIBMAKEPKG_TIDY_BUILD_REFERENCES_SH" ] && return +LIBMAKEPKG_TIDY_BUILD_REFERENCES_SH=1 + +LIBRARY=${LIBRARY:-'@libmakepkgdir@'} + +source "$LIBRARY/util/message.sh" + + +warn_build_references() { + if find "${pkgdir}" -type f -print0 | xargs -0 grep -q -I "${srcdir}" ; then + warning "$(gettext "Package contains reference to %s")" "\$srcdir" + fi + if find "${pkgdir}" -type f -print0 | xargs -0 grep -q -I "${pkgdirbase}" ; then + warning "$(gettext "Package contains reference to %s")" "\$pkgdir" + fi +} diff --git a/scripts/libmakepkg/util/missing_backup.sh.in b/scripts/libmakepkg/util/missing_backup.sh.in new file mode 100644 index 0000000..fae04a2 --- /dev/null +++ b/scripts/libmakepkg/util/missing_backup.sh.in @@ -0,0 +1,36 @@ +#!/bin/bash +# +# missing_backup.sh - Warn about missing files in the backup array +# +# Copyright (c) 2013-2015 Pacman Development Team <pacman-dev@archlinux.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# + +[ -n "$LIBMAKEPKG_TIDY_MISSING_BACKUP_SH" ] && return +LIBMAKEPKG_TIDY_MISSING_BACKUP_SH=1 + +LIBRARY=${LIBRARY:-'@libmakepkgdir@'} + +source "$LIBRARY/util/message.sh" + + +warn_missing_backup() { + local file + for file in "${backup[@]}"; do + if [[ ! -f $file ]]; then + warning "$(gettext "%s entry file not in package : %s")" "backup" "$file" + fi + done +} diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index c01e939..f47dc35 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -2891,6 +2891,7 @@ run_split_packaging() { backup_package_variables run_package $pkgname tidy_install + lint_package create_package create_debug_package restore_package_variables @@ -3348,6 +3349,7 @@ if (( INFAKEROOT )); then run_package fi tidy_install + lint_package create_package create_debug_package else -- 2.2.2