[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