[pacman-dev] [PATCH 1/3] makepkg: move package checking out of tidy_install
Allan McRae
allan at archlinux.org
Sun Feb 1 12:34:27 UTC 2015
Signed-off-by: Allan McRae <allan at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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
More information about the pacman-dev
mailing list