From 3a56116ab0c692f084804f998c03777f07a72129 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20W=C3=A4ckerlin?= Date: Tue, 12 Jan 2016 00:24:18 +0000 Subject: [PATCH] build in docker with new option --wait --- ChangeLog | 382 +++++++++++++++++++++++++++++++++++++ build-in-docker.sh | 19 +- resolve-debbuilddeps.sh | 2 +- scripts/build-in-docker.sh | 17 ++ 4 files changed, 417 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index e69de29..7f63ca6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -0,0 +1,382 @@ +2015-12-18 16:05 marc + + * build-in-docker.sh: need upgrade on sid + +2015-12-14 12:35 marc + + * scripts/build-in-docker.sh, scripts/resolve-debbuilddeps.sh: + merged changes + +2015-12-14 12:29 marc + + * ChangeLog, ax_init_standard_project.m4, bootstrap.sh, + build-in-docker.sh, resolve-debbuilddeps.sh, + scripts/build-in-docker.sh, scripts/resolve-debbuilddeps.sh: + better build in docker + +2015-12-04 08:36 marc + + * scripts/build-in-docker.sh: distinguish by hw arch + +2015-12-04 07:06 marc + + * scripts/build-in-docker.sh: build all in docker + +2015-12-02 15:58 marc + + * README, scripts/bootstrap.sh, scripts/build-in-docker.sh, + scripts/resolve-debbuilddeps.sh: enhanced build in docker + +2015-11-25 15:25 marc + + * scripts/build-in-docker.sh: updates + +2015-11-20 15:14 marc + + * scripts/ax_init_standard_project.m4: updated + +2015-11-16 12:37 marc + + * doc/doxyfile.in: SVG must not be interactive for embedding in + redmine + +2015-11-13 16:06 marc + + * ChangeLog, ax_init_standard_project.m4, + bootstrap-build-environment.desktop.in, bootstrap.sh, + scripts/ax_init_standard_project.m4, scripts/bootstrap.sh, + sql-to-dot.sed: fixed icon and desktop file + +2015-11-11 16:03 marc + + * scripts/ax_init_standard_project.m4, scripts/bootstrap.sh: added + icon and desktop file + +2015-11-11 12:45 marc + + * ChangeLog, README, bootstrap.sh, resolve-debbuilddeps.sh, + scripts/bootstrap.sh, scripts/test, scripts/test/runtests.sh, + sql-to-dot.sed: updated + +2015-11-10 15:52 marc + + * scripts/sql-to-dot.sed: making it more robust + +2015-11-09 15:13 marc + + * scripts/bootstrap.sh, scripts/resolve-debbuilddeps.sh, + scripts/sql-to-dot.sed: better documentation + +2015-11-07 10:47 marc + + * bootstrap.sh, scripts/bootstrap.sh: there is no qt4-default + +2015-11-07 09:23 marc + + * bootstrap.sh, scripts/bootstrap.sh: there is no qt4-default + +2015-11-07 00:20 marc + + * README: set Section + +2015-11-07 00:11 marc + + * ChangeLog, ax_init_standard_project.m4, bootstrap.sh, + scripts/ax_init_standard_project.m4, scripts/bootstrap.sh: fixed + debian readme issue + +2015-11-06 15:34 marc + + * scripts/sql-to-dot.sed: new script to convert sql schema files + into graphviz dot + +2015-11-05 15:59 marc + + * README, scripts/ax_init_standard_project.m4, + scripts/bootstrap.sh: some more improvements plus creation of + trunk branches and tags + +2015-11-05 09:47 marc + + * ChangeLog, ax_init_standard_project.m4, bootstrap.sh, + build-in-docker.sh, resolve-debbuilddeps.sh: updated build system + +2015-11-04 10:36 marc + + * scripts/bootstrap.sh, scripts/build-in-docker.sh, + scripts/makefile.am, scripts/resolve-debbuilddeps.sh: new feature + ./build-in-docker.sh to start a temporary ubuntu docker container + where the project is built and tested in$ + +2015-11-04 08:52 marc + + * README, bootstrap.sh, scripts/ax_init_standard_project.m4, + scripts/bootstrap.sh: the new tag AX_BUILD_TEST allows to use + tests without the need of AX_USE_CPPUNIT, so only AX_BUILD_TEST + can be used for testing scripts. AX_USE_CPPUNIT calls + AX_BUILD_TEST, so you don't need to specify both + +2015-11-03 23:01 marc + + * debian/control.in: set section + +2015-11-03 22:02 marc + + * AUTHORS: AUTHOR updated to new homepage + +2015-11-03 15:38 marc + + * AUTHORS, COPYING, ChangeLog, INSTALL, NEWS, README, aclocal.m4, + ax_check_qt.m4, ax_cxx_compile_stdcxx_11.m4, + ax_init_standard_project.m4, bootstrap-build-environment.spec.in, + bootstrap.sh, build-resource-file.sh, configure.ac, debian, + debian/changelog.in, debian/compat, debian/control.in, + debian/docs, debian/rules, doc, doc/doxyfile.in, doc/makefile.am, + mac-create-app-bundle.sh, makefile.am, resolve-debbuilddeps.sh, + resolve-rpmbuilddeps.sh, scripts, scripts/ax_check_qt.m4, + scripts/ax_cxx_compile_stdcxx_11.m4, + scripts/ax_init_standard_project.m4, scripts/bootstrap.sh, + scripts/build-resource-file.sh, scripts/mac-create-app-bundle.sh, + scripts/makefile.am, scripts/resolve-debbuilddeps.sh, + scripts/resolve-rpmbuilddeps.sh: initial release for packaging + +2015-11-03 15:06 marc + + * ax_init_standard_project.m4, resolve-debbuilddeps.sh: can be + built in fresh docker container + +2015-11-03 15:05 marc + + * bootstrap.sh, resolve-debbuilddeps.sh: some improvements + +2015-11-03 09:22 marc + + * resolve-debbuilddeps.sh: except for variants, install al at once + (it's faster); sudo or not is the problem of the caller; also + cleanup debian/control if created (importan, otherwise with sudo, + it belongs to root) + +2015-11-03 09:22 marc + + * ax_check_qt.m4, bootstrap.sh, resolve-debbuilddeps.sh: except for + variants, install al at once (it's faster); sudo or not is the + problem of the caller; also cleanup debian/control if created + (importan, otherwise with sudo, it belongs to root) + +2015-10-10 18:05 marc + + * ax_init_standard_project.m4, bootstrap.sh: no search index when + embedded in redmine + +2015-10-10 10:44 marc + + * ax_init_standard_project.m4, bootstrap.sh: updated extra dists + +2015-10-07 07:42 marc + + * ax_init_standard_project.m4: disable qt debug + +2015-09-23 08:11 marc + + * ax_check_qt.m4, ax_init_standard_project.m4, + resolve-rpmbuilddeps.sh: sereveral improvements, also now + possibility to use fixed version minor ba adding a diff for least + +2015-09-09 15:01 marc + + * ax_check_qt.m4, bootstrap.sh, build-resource-file.sh, + resolve-debbuilddeps.sh, resolve-rpmbuilddeps.sh: new features + and fixes + +2015-09-04 13:05 marc + + * resolve-builddeps.sh~: resolve build dependencies + +2015-09-04 13:04 marc + + * ax_init_standard_project.m4, bootstrap.sh, resolve-builddeps.sh~, + resolve-debbuilddeps.sh: resolve build dependencies + +2015-08-31 12:30 marc + + * bootstrap.sh: fixed share path in debian packages + +2015-08-27 13:03 marc + + * ax_check_qt.m4, ax_init_standard_project.m4, bootstrap.sh: fixes + from several projects + +2015-08-20 08:00 marc + + * ax_init_standard_project.m4, bootstrap.sh: improvements mainly + for rpm plus including make with flexible targets + +2015-08-19 22:44 marc + + * ax_init_standard_project.m4, bootstrap.sh: some small fixes for + prinary initialization - to do: create root makefile.am after + configure.ac is setup + +2015-07-31 10:44 marc + + * ax_init_standard_project.m4, bootstrap.sh: fixed version number + and rpm issues + +2015-07-30 14:13 marc + + * ax_check_qt.m4, ax_init_standard_project.m4, bootstrap.sh: lot of + improvements, i.e. for compiling rpms + +2015-07-23 12:16 marc + + * ax_check_qt.m4, ax_init_standard_project.m4: use ${PKG_CONFOG} + +2015-07-23 12:02 marc + + * ax_init_standard_project.m4, bootstrap.sh: typo in filename + +2015-07-22 05:29 marc + + * bootstrap.sh: added rpm spec file template + +2015-07-21 13:44 marc + + * ax_check_qt.m4, ax_init_standard_project.m4: improvements, mainly + for mingw + +2015-07-16 13:54 marc + + * ax_check_qt.m4, ax_init_standard_project.m4, bootstrap.sh, + mac-create-app-bundle.sh: improvements, mainly for mac + +2015-07-13 14:57 marc + + * ax_init_standard_project.m4: improve package detection + +2015-07-13 12:18 marc + + * bootstrap.sh: some bugfixes + +2015-07-13 08:58 marc + + * bootstrap.sh: some bugfixes + +2015-07-09 12:22 marc + + * ax_check_qt.m4, ax_init_standard_project.m4, bootstrap.sh: some + qt improvements + +2015-07-02 13:11 marc + + * ax_check_qt.m4, ax_init_standard_project.m4, bootstrap.sh: new qt + features: language and resources + +2015-07-01 09:13 marc + + * AUTHORS, ax_init_standard_project.m4, bootstrap.sh: updates, e.g. + AUTHORS + +2015-06-24 09:26 marc + + * ax_init_standard_project.m4: even more support for weird and + sloppy packages + +2015-06-23 08:59 marc + + * ax_init_standard_project.m4: even more improved way to find the + necessary include path + +2015-06-23 08:48 marc + + * ax_init_standard_project.m4: even more improved way to find the + necessary include path + +2015-06-23 08:24 marc + + * ax_init_standard_project.m4: improved way to find the necessary + include path, even if module writers did a sloppy job + +2015-05-18 09:21 marc + + * ax_init_standard_project.m4: fix build on mac, fix wrong + AX_PKG_CHECK + +2015-05-18 09:10 marc + + * ax_init_standard_project.m4: bugfix in AX_PKG_REQUIRE + +2015-05-18 09:03 marc + + * ax_init_standard_project.m4: bugfix in AX_PKG_REQUIRE + +2015-05-13 13:36 marc + + * ax_init_standard_project.m4: improved check for required packages + +2015-05-12 13:33 marc + + * ax_check_qt.m4, ax_init_standard_project.m4: allow package + versions in package config dependencies + +2015-05-09 09:06 marc + + * ax_check_qt.m4, ax_init_standard_project.m4, bootstrap.sh: fixed + dependencies in pkg-config + +2015-05-08 23:37 marc + + * ax_init_standard_project.m4, bootstrap.sh: fixed the mac bug + again, because last change was incompatible with debian changelog + format + +2015-05-08 22:43 marc + + * ax_init_standard_project.m4, bootstrap.sh: build system fixed + +2015-05-07 14:35 marc + + * ax_init_standard_project.m4: fixed mac issues + +2015-05-07 14:11 marc + + * ax_init_standard_project.m4: Mac OSX does not support date -R + +2015-05-07 14:08 marc + + * ax_init_standard_project.m4: Mac OSX does not support date -R + +2015-05-07 14:06 marc + + * ax_init_standard_project.m4: error finding pkcs11 on Mac + +2015-05-07 14:04 marc + + * ax_init_standard_project.m4: error finding pkcs11 on Mac + +2015-05-07 13:07 marc + + * bootstrap.sh: Mac OSX does not support date -R + +2015-05-07 13:04 marc + + * ax_init_standard_project.m4: Mac OSX does not support date -R + +2015-05-06 23:09 marc + + * bootstrap.sh: better doxygen support + +2015-05-06 14:53 marc + + * ax_init_standard_project.m4, bootstrap.sh: support scripts and + new parameters --build --overwrite --rebuild + +2015-05-05 20:29 marc + + * AUTHORS, aclocal.m4, ax_check_qt.m4, ax_cxx_compile_stdcxx_11.m4, + ax_init_standard_project.m4, bootstrap.sh: copied initial release + from webtester + +2015-05-05 20:27 marc + + * .: initial structure + diff --git a/build-in-docker.sh b/build-in-docker.sh index 44371d8..c7cf8e0 100755 --- a/build-in-docker.sh +++ b/build-in-docker.sh @@ -10,6 +10,7 @@ dirs=("-v $(pwd):/workdir") packages=() targets="all check distcheck" commands=() +wait=0 if test -e ./build-in-docker.conf; then # you can preconfigure the variables in file build-in-docker.conf # if you do so, add the file to EXTRA_DIST in makefile.am @@ -31,6 +32,7 @@ while test $# -gt 0; do echo " -d, --dir access given directory read only" echo " -p, --package install extra debian packages" echo " -c, --cmd execute commands as root in docker" + echo " -w, --wait on error keep docker container and wait for enter" echo echo " The options -r -k -e -d -p -c can be repeated several times." echo @@ -82,6 +84,9 @@ while test $# -gt 0; do (-c|--cmd) shift; commands+=("$1") ;; + (-w|--wait) + wait=1 + ;; (*) echo "**** ERROR: unknown option '$1', try --help" 1>&2 exit 1 @@ -113,7 +118,12 @@ function traperror() { fi echo fi - echo "**** Entering docker container ${DOCKER_ID}, exit with Ctrl-D" + if [ "$wait" -eq 1 ]; then + echo " ... now you can access the docker container:" + echo " docker exec -u $(id -u) ${DOCKER_ID} -it bash" + echo -n " ... press enter to cleanup: " + read + fi echo -n " ... cleanup docker: " docker rm -f "${DOCKER_ID}" echo "returning status: $e" @@ -121,6 +131,12 @@ function traperror() { exit $e fi done + if [ "$wait" -eq 1 ]; then + echo " ... now you can access the docker container:" + echo " docker exec -u $(id -u) ${DOCKER_ID} -it bash" + echo -n " ... press enter to cleanup: " + read + fi echo -n " SUCCESS ... cleanup docker: " docker rm -f "${DOCKER_ID}" exit 0 @@ -167,7 +183,6 @@ for key in "${keys[@]}"; do | docker exec -i ${DOCKER_ID} apt-key add - done docker exec ${DOCKER_ID} apt-get update -docker exec ${DOCKER_ID} apt-get upgrade for package in "${packages[@]}"; do ifthenelse "${package}" "apt-get install -y --force-yes ARG" done diff --git a/resolve-debbuilddeps.sh b/resolve-debbuilddeps.sh index 1fd672c..ecd5522 100755 --- a/resolve-debbuilddeps.sh +++ b/resolve-debbuilddeps.sh @@ -35,7 +35,7 @@ TO_INSTALL= if test -e debian/control.in -a ! -e debian/control; then for f in $(sed -n 's, *AX_DEB_DEPEND_IFEXISTS(\([^)]*\)).*,\1,p' configure.ac); do - if test -n "$(${DO} apt-cache policy -q ${f})" && ! ${DO} dpkg -l "${f}"; then + if test -n "$(${DO} apt-cache policy -q ${f})" && ! "$(${DO} apt-cache policy ${f} 2>&1 | grep -q 'N: Unable to locate package')" && ! ${DO} dpkg -l "${f}"; then TO_INSTALL+=" ${f}" fi done diff --git a/scripts/build-in-docker.sh b/scripts/build-in-docker.sh index 4fc1652..c7cf8e0 100755 --- a/scripts/build-in-docker.sh +++ b/scripts/build-in-docker.sh @@ -10,6 +10,7 @@ dirs=("-v $(pwd):/workdir") packages=() targets="all check distcheck" commands=() +wait=0 if test -e ./build-in-docker.conf; then # you can preconfigure the variables in file build-in-docker.conf # if you do so, add the file to EXTRA_DIST in makefile.am @@ -31,6 +32,7 @@ while test $# -gt 0; do echo " -d, --dir access given directory read only" echo " -p, --package install extra debian packages" echo " -c, --cmd execute commands as root in docker" + echo " -w, --wait on error keep docker container and wait for enter" echo echo " The options -r -k -e -d -p -c can be repeated several times." echo @@ -82,6 +84,9 @@ while test $# -gt 0; do (-c|--cmd) shift; commands+=("$1") ;; + (-w|--wait) + wait=1 + ;; (*) echo "**** ERROR: unknown option '$1', try --help" 1>&2 exit 1 @@ -113,6 +118,12 @@ function traperror() { fi echo fi + if [ "$wait" -eq 1 ]; then + echo " ... now you can access the docker container:" + echo " docker exec -u $(id -u) ${DOCKER_ID} -it bash" + echo -n " ... press enter to cleanup: " + read + fi echo -n " ... cleanup docker: " docker rm -f "${DOCKER_ID}" echo "returning status: $e" @@ -120,6 +131,12 @@ function traperror() { exit $e fi done + if [ "$wait" -eq 1 ]; then + echo " ... now you can access the docker container:" + echo " docker exec -u $(id -u) ${DOCKER_ID} -it bash" + echo -n " ... press enter to cleanup: " + read + fi echo -n " SUCCESS ... cleanup docker: " docker rm -f "${DOCKER_ID}" exit 0