22
22
# REVISION:
23
23
#
24
24
25
+ # ==============================================================
26
+ # Autobuild for debian package
27
+ # ==============================================================
25
28
#
26
- # Autobuid for debian package
29
+ # Instead of pipefail( for shells not support "set -o pipefail")
27
30
#
31
+ PIPEFAILURE_FILE=" /tmp/.pipefailure.$( od -An -tu4 -N4 /dev/random | tr -d ' \n' ) "
32
+
33
+ #
34
+ # For shellcheck
35
+ #
36
+ if locale -a | grep -q -i ' ^[[:space:]]*C.utf8[[:space:]]*$' ; then
37
+ LANG=$( locale -a | grep -i ' ^[[:space:]]*C.utf8[[:space:]]*$' | sed -e ' s/^[[:space:]]*//g' -e ' s/[[:space:]]*$//g' | tr -d ' \n' )
38
+ LC_ALL=" ${LANG} "
39
+ export LANG
40
+ export LC_ALL
41
+ elif locale -a | grep -q -i ' ^[[:space:]]*en_US.utf8[[:space:]]*$' ; then
42
+ LANG=$( locale -a | grep -i ' ^[[:space:]]*en_US.utf8[[:space:]]*$' | sed -e ' s/^[[:space:]]*//g' -e ' s/[[:space:]]*$//g' | tr -d ' \n' )
43
+ LC_ALL=" ${LANG} "
44
+ export LANG
45
+ export LC_ALL
46
+ fi
28
47
29
48
#
30
49
# Common variables
264
283
# Run configure for package version
265
284
#
266
285
echo " [INFO] Run autogen"
267
- if ! " ${SRCTOP} " /autogen.sh | sed -e ' s/^/ /' ; then
286
+ if ({ " ${SRCTOP} " /autogen.sh || echo > " ${PIPEFAILURE_FILE} " ; } | sed -e ' s/^/ /' ) && rm " ${PIPEFAILURE_FILE} " > /dev/null 2>&1 ; then
268
287
echo " [ERROR] Failed to run autogen.sh." 1>&2
269
288
exit 1
270
289
fi
271
290
echo " "
272
291
echo " [INFO] Run configure"
273
- if ! /bin/sh -c " ${SRCTOP} /configure ${CONFIGUREOPT} " | sed -e ' s/^/ /' ; then
292
+ if ({ /bin/sh -c " ${SRCTOP} /configure ${CONFIGUREOPT} " || echo > " ${PIPEFAILURE_FILE} " ; } | sed -e ' s/^/ /' ) && rm " ${PIPEFAILURE_FILE} " > /dev/null 2>&1 ; then
274
293
echo " [ERROR] Failed to run configure." 1>&2
275
294
exit 1
276
295
fi
295
314
#
296
315
echo " "
297
316
echo " [INFO] Create dist file(tar.gz)"
298
- if ! make dist | sed -e ' s/^/ /' ; then
317
+ if ({ make dist || echo > " ${PIPEFAILURE_FILE} " ; } | sed -e ' s/^/ /' ) && rm " ${PIPEFAILURE_FILE} " > /dev/null 2>&1 ; then
299
318
echo " [ERROR] Failed to create dist package(make dist)." 1>&2
300
319
exit 1
301
320
fi
@@ -314,7 +333,7 @@ if ! cp "${SRCTOP}/${PACKAGE_NAME}-${PACKAGE_VERSION}.tar.gz" "${BUILDDEBDIR}/."
314
333
echo " [ERROR] Failed to copy ${SRCTOP} /${PACKAGE_NAME} -${PACKAGE_VERSION} .tar.gz file to ${BUILDDEBDIR} " 1>&2
315
334
exit 1
316
335
fi
317
- if ! tar xvfz " ${PACKAGE_NAME} -${PACKAGE_VERSION} .tar.gz" | sed -e ' s/^/ /' ; then
336
+ if ({ tar xvfz " ${PACKAGE_NAME} -${PACKAGE_VERSION} .tar.gz" || echo > " ${PIPEFAILURE_FILE} " ; } | sed -e ' s/^/ /' ) && rm " ${PIPEFAILURE_FILE} " > /dev/null 2>&1 ; then
318
337
echo " [ERROR] Failed to expand source code from ${PACKAGE_NAME} -${PACKAGE_VERSION} .tar.gz" 1>&2
319
338
exit 1
320
339
fi
@@ -341,7 +360,7 @@ if [ -z "${LOGNAME}" ] && [ -z "${USER}" ]; then
341
360
export USER=" root"
342
361
export LOGNAME=" root"
343
362
fi
344
- if ! /bin/sh -c " dh_make -f ${BUILDDEBDIR} /${PACKAGE_NAME} -${PACKAGE_VERSION} .tar.gz --createorig --${PKG_CLASS_NAME} ${DH_MAKE_AUTORUN_OPTION} " | sed -e ' s/^/ /' ; then
363
+ if ({ /bin/sh -c " dh_make -f ${BUILDDEBDIR} /${PACKAGE_NAME} -${PACKAGE_VERSION} .tar.gz --createorig --${PKG_CLASS_NAME} ${DH_MAKE_AUTORUN_OPTION} " || echo > " ${PIPEFAILURE_FILE} " ; } | sed -e ' s/^/ /' ) && rm " ${PIPEFAILURE_FILE} " > /dev/null 2>&1 ; then
345
364
echo " [ERROR] Failed to run dh_make with ${BUILDDEBDIR} /${PACKAGE_NAME} -${PACKAGE_VERSION} .tar.gz for initializing debian directory." 1>&2
346
365
exit 1
347
366
fi
520
539
# This option can be removed if ubuntu16.04 is unsupported.
521
540
#
522
541
echo " [INFO] Create debian packages"
523
- if ! debuild -us -uc -d | sed -e ' s/^/ /' ; then
542
+ if ({ debuild -us -uc -d || echo > " ${PIPEFAILURE_FILE} " ; } | sed -e ' s/^/ /' ) && rm " ${PIPEFAILURE_FILE} " > /dev/null 2>&1 ; then
524
543
echo " [ERROR] Failed to run \" debuild -us -uc\" ." 1>&2
525
544
exit 1
526
545
fi
543
562
for _one_pkg in ${FOUND_DEB_PACKAGES} ; do
544
563
echo " "
545
564
echo " [INFO] ${_one_pkg} package information"
546
- if ! dpkg -c " ${_one_pkg} " | sed -e ' s/^/ /' ; then
565
+ if ({ dpkg -c " ${_one_pkg} " || echo > " ${PIPEFAILURE_FILE} " ; } | sed -e ' s/^/ /' ) && rm " ${PIPEFAILURE_FILE} " > /dev/null 2>&1 ; then
547
566
echo " [ERROR] Failed to print ${_one_pkg} package insformation by \" dpkg -c\" ." 1>&2
548
567
exit 1
549
568
fi
550
569
echo " ---------------------------"
551
570
552
- if ! dpkg -I " ${_one_pkg} " | sed -e ' s/^/ /' ; then
571
+ if ({ dpkg -I " ${_one_pkg} " || echo > " ${PIPEFAILURE_FILE} " ; } | sed -e ' s/^/ /' ) && rm " ${PIPEFAILURE_FILE} " > /dev/null 2>&1 ; then
553
572
echo " [ERROR] Failed to print ${_one_pkg} package insformation by \" dpkg -I\" ." 1>&2
554
573
exit 1
555
574
fi
0 commit comments