diff --git a/bootstrap.sh b/bootstrap.sh index 6a78d13..66c2b96 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -131,7 +131,6 @@ GENERATED FILES * ax_init_standard_project.m4 - auxiliary macro definition file * ax_cxx_compile_stdcxx.m4 - auxiliary macro definition file * ax_check_qt.m4 - auxiliary macro definition file - * makefile_test.inc.am - makefile to be included in tests * resolve-debbuilddeps.sh - script to install debian package dependencies * resolve-rpmbuilddeps.sh - script to install RPM package dependencies * build-in-docker.sh - script to build the project encapsulated in a docker container @@ -450,7 +449,7 @@ checkdir() { if ! test -d "$1"; then # create path run mkdir -p "$1" if test -n "${VCS}" -a $novcs -eq 0 && ! contains "$1" "${excludevcs[@]}"; then - run ${VCS} add "$1" + run --no-check ${VCS} add "$1" fi fi } @@ -498,7 +497,7 @@ to() { run chmod $mode $1 if test $exists -eq 0; then if test -n "${VCS}" -a $novcs -eq 0 && ! contains "$1" "${excludevcs[@]}"; then - run ${VCS} add "$1" + run --no-check ${VCS} add "$1" if test "${VCS}" = "svn"; then run svn propset svn:keywords "Id" "$1" fi @@ -530,7 +529,7 @@ copy() { run cp "${source}" "$1" if test $exists -eq 0; then if test -n "${VCS}" -a $novcs -eq 0 && ! contains "$1" "${excludevcs[@]}"; then - run ${VCS} add "$1" + run --no-check ${VCS} add "$1" if test "${VCS}" = "svn"; then run svn propset svn:keywords "Id" "$1" fi @@ -579,7 +578,7 @@ vcs2cl() { fi if test $exists -eq 0; then if test -n "${VCS}" -a $novcs -eq 0 && ! contains "ChangeLog" "${excludevcs[@]}"; then - run ${VCS} add ChangeLog + run --no-check ${VCS} add ChangeLog fi fi } @@ -597,7 +596,6 @@ copy ${MY_NAME} copy ax_init_standard_project.m4 copy ax_cxx_compile_stdcxx.m4 copy ax_check_qt.m4 -copy makefile_test.inc.am copy resolve-debbuilddeps.sh copy resolve-rpmbuilddeps.sh copy build-in-docker.sh @@ -1512,7 +1510,7 @@ if testtag AX_USE_DOXYGEN; then sed -i ':a;/\\$/{s///;N;s/ *\n */ /g;ba}' doc/doxyfile.in if test $exists -eq 0; then if test -n "${VCS}" -a $novcs -eq 0 && ! contains "doc/doxyfile" "${excludevcs[@]}"; then - run ${VCS} add doc/doxyfile.in + run --no-check ${VCS} add doc/doxyfile.in if test "${VCS}" = "svn"; then run svn propset svn:keywords "Id" doc/doxyfile.in fi diff --git a/build-in-docker.sh b/build-in-docker.sh index c623b13..d2522e3 100755 --- a/build-in-docker.sh +++ b/build-in-docker.sh @@ -278,25 +278,18 @@ fi case "$mode" in (deb|apt|win) OPTIONS='-o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confnew -y --force-yes --no-install-suggests --no-install-recommends' - PREVENT='libpam-systemd policykit.* colord dconf-service' docker exec ${DOCKER_ID} apt-get update ${OPTIONS} - docker exec ${DOCKER_ID} apt-mark hold ${PREVENT} #docker exec ${DOCKER_ID} apt-get upgrade ${OPTIONS} - docker exec ${DOCKER_ID} apt-get install ${OPTIONS} ${PREVENT// /- }- python-software-properties software-properties-common apt-transport-https dpkg-dev lsb-release wget || \ - docker exec ${DOCKER_ID} apt-get install ${OPTIONS} ${PREVENT// /- }- software-properties-common apt-transport-https dpkg-dev lsb-release wget || \ - docker exec ${DOCKER_ID} apt-get install ${OPTIONS} ${PREVENT// /- }- python-software-properties apt-transport-https dpkg-dev lsb-release wget; + docker exec ${DOCKER_ID} apt-get install ${OPTIONS} python-software-properties software-properties-common apt-transport-https dpkg-dev lsb-release wget || \ + docker exec ${DOCKER_ID} apt-get install ${OPTIONS} software-properties-common apt-transport-https dpkg-dev lsb-release wget || \ + docker exec ${DOCKER_ID} apt-get install ${OPTIONS} python-software-properties apt-transport-https dpkg-dev lsb-release wget; if [[ "${img}" =~ "ubuntu" ]]; then - docker exec ${DOCKER_ID} apt-get install ${OPTIONS} ${PREVENT// /- }- locales + docker exec ${DOCKER_ID} apt-get install ${OPTIONS} locales docker exec ${DOCKER_ID} locale-gen ${LANG} docker exec ${DOCKER_ID} update-locale LANG=${LANG} fi - for f in ${PREVENT}; do - docker exec ${DOCKER_ID} bash -c "echo 'Package: ${f}' >> /etc/apt/preferences" - docker exec ${DOCKER_ID} bash -c "echo 'Pin-Priority: -100' >> /etc/apt/preferences" - docker exec ${DOCKER_ID} bash -c "echo >> /etc/apt/preferences" - done if test -n "${keys[*]}"; then # fix dependency bug in cosmic and stretch - docker exec ${DOCKER_ID} apt-get install ${OPTIONS} ${PREVENT// /- }- gnupg + docker exec ${DOCKER_ID} apt-get install ${OPTIONS} gnupg for key in "${keys[@]}"; do wget -O- "$key" \ | docker exec -i ${DOCKER_ID} apt-key add - @@ -308,7 +301,7 @@ case "$mode" in docker exec ${DOCKER_ID} apt-get update ${OPTIONS} for package in "${packages[@]}"; do - ifthenelse "${package}" "apt-get install ${OPTIONS} ${PREVENT// /- }- ARG" + ifthenelse "${package}" "apt-get install ${OPTIONS} ARG" done for command in "${commands[@]}"; do ifthenelse "${command}" "ARG" @@ -369,7 +362,7 @@ docker exec -u $(id -u):$(id -g) ${DOCKER_ID} ./bootstrap.sh -t "${targets}" ${h # not supported in trusty and jessie if test "$mode" = deb -a "${img//trusty/}" = "${img}" -a "${img//jessie/}" = "${img}"; then if test "${targets//deb/}" != "${targets}" && ls *.deb > /dev/null 2> /dev/null; then - docker exec ${DOCKER_ID} bash -c "apt-get install ${OPTIONS} ${PREVENT// /- }- /workdir/*.deb" + docker exec ${DOCKER_ID} bash -c "apt-get install ${OPTIONS} /workdir/*.deb" fi fi if test "$mode" = rpm -a "${targets//rpm/}" != "${targets}"; then diff --git a/template.sh b/template.sh index beb656d..05e5e67 100755 --- a/template.sh +++ b/template.sh @@ -1,5 +1,7 @@ #!/bin/bash -e +# documentation: run with option --help + ########################################################################################## #### template for bash scripts #### START BELOW ########################################## ########################################################################################## @@ -45,25 +47,25 @@ message() { # write a success message success() { echo -n "${bold}${green}success" 1>&2 - append_msg $* 1>&2 + append_msg "$*" 1>&2 } # write a notice notice() { echo -n "${bold}${yellow}notice" 1>&2 - append_msg $* 1>&2 + append_msg "$*" 1>&2 } # write a warning message warning() { echo -en "${bold}${red}warning" 1>&2 - append_msg $* 1>&2 + append_msg "$*" 1>&2 } # write error message error() { echo -en "${bold}${red}error" 1>&2 - append_msg $* 1>&2 + append_msg "$*" 1>&2 } # run a command, print the result and abort in case of error @@ -91,9 +93,10 @@ run() { exit 1 else warning "ignored return code: $res" + return 0 fi else - success + return 1 fi } @@ -119,7 +122,6 @@ function traperror() { exit $e fi done - success exit 0 } @@ -135,7 +137,7 @@ trap 'traperror "$? ${PIPESTATUS[@]}" $LINENO $BASH_LINENO "$BASH_COMMAND" "${FU ######################################################### commandline parameter evaluation while test $# -gt 0; do case "$1" in - (--help|-h) less <