build_module.sh: various fixes for batch mode
- sudo is not mandatory anymore
- update repo caches prior to dependencies installs
- do not install suggested/recommended packages on debian-based distros
- xmllint/xsltproc are added to build dependencies
- exit with code 1 when module build failed
diff --git a/build_module.sh b/build_module.sh
index 3dae023..bca7ebc 100755
--- a/build_module.sh
+++ b/build_module.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
#
-# build_module.sh (c) NGINX, Inc. [v0.13 12-Oct-2020] Liam Crilly <liam.crilly@nginx.com>
+# build_module.sh (c) NGINX, Inc. [v0.14 02-Nov-2020] Liam Crilly <liam.crilly@nginx.com>
#
# This script supports apt(8) and yum(8) package managers. Installs the minimum
# necessary prerequisite packages to build 3rd party modules for NGINX Plus.
@@ -9,6 +9,11 @@
# Obtains pkg-oss tool, creates packaging files and copies in module source.
#
# CHANGELOG
+# v0.14 [02-Nov-2020] sudo is not mandatory anymore
+# update repo caches prior to dependencies installs
+# do not install suggested/recommended packages on debian-based distros
+# xmllint/xsltproc are added to build dependencies
+# exit with code 1 when module build failed
# v0.13 [12-Oct-2020] adjusted for refactored package tooling
# -o option made de-facto mandatory with preconfigured default
# v0.12 [30-Aug-2017] -o option to specify destination for package files
@@ -140,19 +145,21 @@
# Locate/select package manager and configure
#
if [ `whereis yum | grep -c "^yum: /"` -eq 1 ]; then
- PKG_MGR=yum
+ PKG_MGR=yum
+ PKG_MGR_UP="yum makecache"
PKG_FMT=rpm
NGINX_PACKAGES="pcre-devel zlib-devel openssl-devel"
- DEVEL_PACKAGES="rpm-build"
+ DEVEL_PACKAGES="rpm-build libxml2 libxslt"
PACKAGING_ROOT=pkg-oss/rpm/
PACKAGING_DIR=rpm/SPECS
PACKAGE_SOURCES_DIR=../SOURCES
PACKAGE_OUTPUT_DIR=RPMS
elif [ `whereis apt-get | grep -c "^apt-get: /"` -eq 1 ]; then
- PKG_MGR=apt-get
+ PKG_MGR="apt-get --no-install-suggests --no-install-recommends"
+ PKG_MGR_UP="apt-get update"
PKG_FMT=deb
NGINX_PACKAGES="libpcre3-dev zlib1g-dev libssl-dev"
- DEVEL_PACKAGES="devscripts debhelper dpkg-dev quilt lsb-release"
+ DEVEL_PACKAGES="devscripts debhelper dpkg-dev quilt lsb-release build-essential libxml2-utils xsltproc"
PACKAGING_ROOT=pkg-oss/debian/
PACKAGING_DIR=debian
PACKAGE_SOURCES_DIR=extra
@@ -163,11 +170,15 @@
fi
if [ $CHECK_DEPENDS = 1 ]; then
- echo "$ME: INFO: testing sudo"
- sudo pwd > /dev/null
- if [ $? -ne 0 ]; then
- echo "ERROR: sudo failed. If you do not have sudo credentials then try using the '--skip-depends' option. Quitting."
- exit 1
+ if [ `id -u` -ne 0 ]; then
+ echo "$ME: INFO: testing sudo"
+ sudo pwd > /dev/null
+ if [ $? -ne 0 ]; then
+ echo "ERROR: sudo failed. If you do not have sudo credentials then try using the '--skip-depends' option. Quitting."
+ exit 1
+ else
+ SUDO=sudo
+ fi
fi
echo "$ME: INFO: checking for dependent packages"
@@ -178,7 +189,8 @@
if [ "${1##*.}" == "git" ]; then
CORE_PACKAGES="$CORE_PACKAGES git"
fi
- sudo $PKG_MGR install $SAY_YES $CORE_PACKAGES $NGINX_PACKAGES $DEVEL_PACKAGES
+ $SUDO $PKG_MGR_UP
+ $SUDO $PKG_MGR install $SAY_YES $CORE_PACKAGES $NGINX_PACKAGES $DEVEL_PACKAGES
fi
#
@@ -428,6 +440,7 @@
fi
if [ $? -ne 0 ]; then
echo "$ME: ERROR: Build failed"
+ exit 1
else
echo ""
echo "$ME: INFO: Module binaries created"