update build system
This commit is contained in:
		
							
								
								
									
										137
									
								
								ChangeLog
									
									
									
									
									
								
							
							
						
						
									
										137
									
								
								ChangeLog
									
									
									
									
									
								
							| @@ -1,52 +1,145 @@ | ||||
| 2016-11-19 22:49   | ||||
|  | ||||
| 	* [r23] debian/control.in: | ||||
| 	  missing section | ||||
|  | ||||
| 2016-11-19 11:58   | ||||
|  | ||||
| 	* [r22] debian/control.in: | ||||
| 	  updated build | ||||
|  | ||||
| 2016-11-19 11:42   | ||||
|  | ||||
| 	* [r21] COPYING, INSTALL, ax_init_standard_project.m4, | ||||
| 	  bootstrap.sh, debian-chroots.spec.in, debian/control.in: | ||||
| 	  updated build | ||||
|  | ||||
| 2016-09-30 15:02   | ||||
|  | ||||
| 	* [r20] scripts/bootstrap-to-docker.sh: | ||||
| 	  fix unmount problem | ||||
|  | ||||
| 2016-09-30 14:26   | ||||
|  | ||||
| 	* [r19] ax_cxx_compile_stdcxx_11.m4, ax_init_standard_project.m4, | ||||
| 	  bootstrap.sh, build-in-docker.sh, doc/footer.html.in[ADD], | ||||
| 	  doc/header.html.in[ADD], doc/plantuml.jar[ADD], | ||||
| 	  doc/style.css[ADD], makefile_test.inc.am[ADD], | ||||
| 	  resolve-debbuilddeps.sh, scripts/bootstrap-to-docker.sh, | ||||
| 	  sql-to-dot.sed: | ||||
| 	  fixed busy unmount problem | ||||
|  | ||||
| 2016-09-30 06:21   | ||||
|  | ||||
| 	* [r18] scripts/bootstrap-to-docker.sh: | ||||
| 	  fix missing package in wily | ||||
|  | ||||
| 2016-09-29 22:20   | ||||
|  | ||||
| 	* [r17] debian/control.in, scripts/bootstrap-to-docker.sh: | ||||
| 	  install more packages to increase build speed | ||||
|  | ||||
| 2016-09-25 11:22   | ||||
|  | ||||
| 	* [r16] scripts/bootstrap-to-docker.sh: | ||||
| 	  new default temporary path; new option fastmode -f if you want to | ||||
| 	  skip updates and only install new distributions; new option -l to | ||||
| 	  limit execution to only one distribution; possibility to build | ||||
| 	  for foreign architecture using qemu, e.g. build armhf with | ||||
| 	  qemu-arm-static with archs="armhf" | ||||
|  | ||||
| 2016-09-23 18:24   | ||||
|  | ||||
| 	* [r15] scripts/bootstrap-to-docker.sh: | ||||
| 	  added yakkety and stretch; prepared for supoorting other | ||||
| 	  architectures,namely armhf (raspberry pi) | ||||
|  | ||||
| 2016-09-23 18:24   | ||||
|  | ||||
| 	* [r14] scripts/bootstrap-to-docker.sh: | ||||
| 	  added yakkety and stretch; prepared for supoorting other | ||||
| 	  architectures,namely armhf (raspberry pi) | ||||
|  | ||||
| 2016-09-23 18:23   | ||||
|  | ||||
| 	* [r13] scripts/bootstrap-to-docker.sh: | ||||
| 	  added yakkety and stretch; prepared for supoorting other | ||||
| 	  architectures,namely armhf (raspberry pi) | ||||
|  | ||||
| 2016-05-31 13:53   | ||||
|  | ||||
| 	* [r12] ChangeLog, autogen.sh[ADD], ax_init_standard_project.m4, | ||||
| 	  bootstrap.sh, build-in-docker.conf[ADD], build-in-docker.sh, | ||||
| 	  debian-chroots.desktop.in[ADD], mac-create-app-bundle.sh, | ||||
| 	  resolve-debbuilddeps.sh, resolve-rpmbuilddeps.sh, sql-to-dot.sed: | ||||
| 	  fixed build in docker | ||||
|  | ||||
| 2016-05-31 13:26   | ||||
|  | ||||
| 	* [r11] scripts/bootstrap-to-docker.sh, | ||||
| 	  scripts/setup-debootstrap.sh: | ||||
| 	  updated | ||||
|  | ||||
| 2016-04-04 14:56   | ||||
|  | ||||
| 	* scripts/bootstrap-to-docker.sh: after migration to new svn server | ||||
| 	* [r10] scripts/bootstrap-to-docker.sh: | ||||
| 	  after migration to new svn server | ||||
|  | ||||
| 2015-12-04 07:06  marc | ||||
|  | ||||
| 	* scripts/bootstrap-to-docker.sh: bootstrap to docker | ||||
| 	* [r9] scripts/bootstrap-to-docker.sh: | ||||
| 	  bootstrap to docker | ||||
|  | ||||
| 2015-12-02 15:58  marc | ||||
|  | ||||
| 	* scripts/bootstrap-to-docker.sh, scripts/makefile.am: new feature: | ||||
| 	  bootstrap-to-docker.sh | ||||
| 	* [r8] scripts/bootstrap-to-docker.sh[ADD], scripts/makefile.am: | ||||
| 	  new feature: bootstrap-to-docker.sh | ||||
|  | ||||
| 2015-11-16 12:37  marc | ||||
|  | ||||
| 	* doc/doxyfile.in: SVG must not be interactive for embedding in | ||||
| 	  redmine | ||||
| 	* [r7] doc/doxyfile.in: | ||||
| 	  SVG must not be interactive for embedding in redmine | ||||
|  | ||||
| 2015-11-09 22:51  marc | ||||
|  | ||||
| 	* COPYING, ChangeLog, INSTALL, ax_init_standard_project.m4, | ||||
| 	  bootstrap.sh, resolve-debbuilddeps.sh, sql-to-dot.sed: build | ||||
| 	  system updated | ||||
| 	* [r6] COPYING[ADD], ChangeLog[ADD], INSTALL[ADD], | ||||
| 	  ax_init_standard_project.m4, bootstrap.sh, | ||||
| 	  resolve-debbuilddeps.sh, sql-to-dot.sed[ADD]: | ||||
| 	  build system updated | ||||
|  | ||||
| 2015-11-07 10:47  marc | ||||
|  | ||||
| 	* bootstrap.sh, debian/control.in: there is no qt4-default | ||||
| 	* [r5] bootstrap.sh, debian/control.in: | ||||
| 	  there is no qt4-default | ||||
|  | ||||
| 2015-11-07 09:23  marc | ||||
|  | ||||
| 	* bootstrap.sh: there is no qt4-default | ||||
| 	* [r4] bootstrap.sh: | ||||
| 	  there is no qt4-default | ||||
|  | ||||
| 2015-11-07 09:12  marc | ||||
|  | ||||
| 	* scripts/makefile.am: fixed old stuff in makefile | ||||
| 	* [r3] scripts/makefile.am: | ||||
| 	  fixed old stuff in makefile | ||||
|  | ||||
| 2015-11-06 23:40  marc | ||||
|  | ||||
| 	* AUTHORS: updated author woth new homepage | ||||
| 	* [r2] AUTHORS: | ||||
| 	  updated author woth new homepage | ||||
|  | ||||
| 2015-11-05 15:58  marc | ||||
|  | ||||
| 	* ., AUTHORS, NEWS, README, ax_check_qt.m4, | ||||
| 	  ax_cxx_compile_stdcxx_11.m4, ax_init_standard_project.m4, | ||||
| 	  bootstrap.sh, build-in-docker.sh, build-resource-file.sh, | ||||
| 	  configure.ac, debian, debian-chroots.spec.in, | ||||
| 	  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/makefile.am, | ||||
| 	  scripts/setup-debootstrap.sh: initial project creation | ||||
| 	* [r1] .[ADD], AUTHORS[ADD], NEWS[ADD], README[ADD], | ||||
| 	  ax_check_qt.m4[ADD], ax_cxx_compile_stdcxx_11.m4[ADD], | ||||
| 	  ax_init_standard_project.m4[ADD], bootstrap.sh[ADD], | ||||
| 	  build-in-docker.sh[ADD], build-resource-file.sh[ADD], | ||||
| 	  configure.ac[ADD], debian[ADD], debian-chroots.spec.in[ADD], | ||||
| 	  debian/changelog.in[ADD], debian/compat[ADD], | ||||
| 	  debian/control.in[ADD], debian/docs[ADD], debian/rules[ADD], | ||||
| 	  doc[ADD], doc/doxyfile.in[ADD], doc/makefile.am[ADD], | ||||
| 	  mac-create-app-bundle.sh[ADD], makefile.am[ADD], | ||||
| 	  resolve-debbuilddeps.sh[ADD], resolve-rpmbuilddeps.sh[ADD], | ||||
| 	  scripts[ADD], scripts/makefile.am[ADD], | ||||
| 	  scripts/setup-debootstrap.sh[ADD]: | ||||
| 	  initial project creation | ||||
|  | ||||
|   | ||||
| @@ -194,17 +194,20 @@ AC_DEFUN([AX_INIT_STANDARD_PROJECT], [ | ||||
|   AX_SUBST(COPYING) | ||||
|   _AM_SUBST_NOTMAKE([COPYING]) | ||||
|   CHANGELOG=$(<ChangeLog) | ||||
|   AX_SUBST(CHANGELOG) | ||||
|   AC_SUBST(CHANGELOG) | ||||
|   _AM_SUBST_NOTMAKE([CHANGELOG]) | ||||
|   DEB_CHANGELOG=$(sed '/^[[^\t]]/{h;N;d};/^\t\* /{s,,,;H;g;s,^,\t* ,;s,\n\([[^ ]]*\) *, \1\n\t  ,}' ChangeLog) | ||||
|   AX_SUBST(DEB_CHANGELOG) | ||||
|   DEB_CHANGELOG=$(sed '/^[[^\t]]/{h;N;d};s,\t,  ,g;/^  \* /{s,,,;H;g;s,^,  * ,;s,\n\([[^ ]]*\) *, \1\n    ,}' ChangeLog) | ||||
|   if test -z "$DEB_CHANGELOG"; then | ||||
|     DEB_CHANGELOG="  * see file ChangeLog and project management web site" | ||||
|   fi | ||||
|   AC_SUBST(DEB_CHANGELOG) | ||||
|   _AM_SUBST_NOTMAKE([DEB_CHANGELOG]) | ||||
|   AUTHOR=$(head -1 AUTHORS) | ||||
|   AUTHOR_NAME=$(echo $AUTHOR | sed 's, *[[<(]].*$,,') | ||||
|   AUTHOR_URL=$(echo $AUTHOR | sed 's,.*(\(http[[^)]]*\)).*,\1,') | ||||
|   AUTHOR_MAIL=$(echo $AUTHOR | sed 's,.*<\(.*@.*\)>.*,\1,') | ||||
|   PACKAGER=$(gpg -K 2>/dev/null | sed -n 's,uid *\(\[[ultimate\]] *\)\?,,p' | head -1) | ||||
|   if -z "${PACKAGER}"; then | ||||
|   PACKAGER=$(gpg -K --display-charset utf-8 --lock-never 2>/dev/null | sed -n 's,uid *\(\[[ultimate\]] *\)\?,,p' | head -1) | ||||
|   if test -z "${PACKAGER}"; then | ||||
|     PACKAGER="$AUTHOR" | ||||
|   fi | ||||
|   AX_SUBST(AUTHOR) | ||||
| @@ -217,6 +220,8 @@ AC_DEFUN([AX_INIT_STANDARD_PROJECT], [ | ||||
|   SOURCE_DOWNLOAD="${SOURCE_DOWNLOAD:-${AUTHOR_URL}/downloads/${PACKAGE_NAME}}" | ||||
|   AX_SUBST(PROJECT_URL) | ||||
|   AX_SUBST(SOURCE_DOWNLOAD) | ||||
|   VENDOR=$((lsb_release -is 2>/dev/null || echo unknown) | tr ' ' '_') | ||||
|   AX_SUBST(VENDOR) | ||||
|   DISTRO=$(lsb_release -sc 2>/dev/null || uname -s 2>/dev/null) | ||||
|   AX_SUBST(DISTRO) | ||||
|   ARCH=$((@<:@@<:@ $(uname -sm) =~ 64 @:>@@:>@ && echo amd64) || (@<:@@<:@ $(uname -sm) =~ 'i?86' @:>@@:>@ && echo i386 || uname -sm)) | ||||
| @@ -419,7 +424,7 @@ EOF | ||||
|  | ||||
| # use this in configure.ac to support CppUnit for C++ unit tests | ||||
| AC_DEFUN([AX_USE_CPPUNIT], [ | ||||
|   AM_PATH_CPPUNIT([1.0.0], [have_cppunit="yes"], [have_cppunit="no"]) | ||||
|   PKG_CHECK_MODULES(CPPUNIT, cppunit, [have_cppunit="yes"], [have_cppunit="no"]) | ||||
|   # infos and warnings | ||||
|   if test "$have_cppunit" = "no"; then | ||||
|     AC_MSG_WARN([Missing cppunit development library! | ||||
| @@ -440,8 +445,23 @@ maintainer-clean-example-targets: | ||||
| EOF | ||||
| ]) | ||||
|  | ||||
| # use this in configure.ac to support C++ examples | ||||
| # use this in configure.ac to support NodeJS | ||||
| AC_DEFUN([AX_USE_NODEJS], [ | ||||
|   AC_PATH_PROG(ANDROID, [android], [0], | ||||
|                          [${PATH}${PATH_SEPARATOR}${ANDROID_HOME}/tools]) | ||||
|   AC_CONFIG_FILES([nodejs/package.json]) | ||||
|   AC_CONFIG_FILES([nodejs/makefile]) | ||||
|   AX_ADD_MAKEFILE_TARGET_DEP([maintainer-clean-am], [maintainer-clean-nodejs-targets], [nodejs/makefile.in]) | ||||
|   test -f nodejs/makefile.in && cat >> nodejs/makefile.in <<EOF | ||||
| #### Begin: Appended by $0 | ||||
| maintainer-clean-nodejs-targets: | ||||
| 	-rm makefile.in | ||||
| #### End: $0 | ||||
| EOF | ||||
| ]) | ||||
|  | ||||
| # use this in configure.ac to support Cordova | ||||
| AC_DEFUN([AX_USE_CORDOVA], [ | ||||
|   AC_PATH_PROG(ANDROID, [android], [0], | ||||
|                          [${PATH}${PATH_SEPARATOR}${ANDROID_HOME}/tools]) | ||||
|   AC_PATH_PROG(CORDOVA, [cordova], [0], | ||||
| @@ -454,14 +474,13 @@ AC_DEFUN([AX_USE_NODEJS], [ | ||||
|   fi | ||||
|   AM_CONDITIONAL(HAVE_CORDOVA, [test ${CORDOVA} != 0 -a ${ANDROID} != 0]) | ||||
|   AX_SUBST(CORDOVA) | ||||
|   AC_CONFIG_FILES([nodejs/package.json]) | ||||
|   AC_CONFIG_FILES([nodejs/makefile]) | ||||
|   AC_CONFIG_FILES([cordova/makefile]) | ||||
|   AC_CONFIG_FILES([cordova/config.xml]) | ||||
|   AX_ADD_MAKEFILE_TARGET_DEP([maintainer-clean-am], [maintainer-clean-example-targets], [examples/makefile.in]) | ||||
|   test -f examples/makefile.in && cat >> examples/makefile.in <<EOF | ||||
| EOF | ||||
|   AX_ADD_MAKEFILE_TARGET_DEP([maintainer-clean-am], [maintainer-clean-cordova-targets], [cordova/makefile.in]) | ||||
|   test -f cordova/makefile.in && cat >> cordova/makefile.in <<EOF | ||||
| #### Begin: Appended by $0 | ||||
| maintainer-clean-example-targets: | ||||
| maintainer-clean-cordova-targets: | ||||
| 	-rm makefile.in | ||||
| #### End: $0 | ||||
| EOF | ||||
| @@ -543,6 +562,7 @@ AC_DEFUN([AX_USE_RPM_PACKAGING], [ | ||||
| EXTRA_DIST += \${PACKAGE_NAME}.spec.in | ||||
| rpm: dist | ||||
| 	rpmbuild -ba --define "_topdir \$\$(pwd)" --define "_sourcedir \$\$(pwd)" \${PACKAGE_NAME}.spec | ||||
| 	rpmsign --define "_gpg_name \${PACKAGER}" --addsign RPMS/*/*.rpm SRPMS/*.rpm | ||||
| clean-rpm-targets: | ||||
| 	-rm -rf BUILD BUILDROOT RPMS SPECS SRPMS | ||||
| distclean-rpm-targets: | ||||
| @@ -629,7 +649,7 @@ AC_DEFUN([AX_USE_PERLDOC], [ | ||||
|   PERL_SOURCES="m4_default([$1], [perl])" | ||||
|   AX_SUBST(PERL_SOURCES) | ||||
|   if test -z "$PERL_SOURCES"; then | ||||
|     AC_MSG_ERROR([You must specify the path to per files | ||||
|     AC_MSG_ERROR([You must specify the path to perl files | ||||
|      - use [AX]_[USE]_PERLDOC([[pathes to perldoc]])]); fi | ||||
|   AC_CHECK_PROG(have_perldoc, pods2html, yes, no) | ||||
|   if test "$have_doxygen" = "no"; then | ||||
|   | ||||
							
								
								
									
										431
									
								
								bootstrap.sh
									
									
									
									
									
								
							
							
						
						
									
										431
									
								
								bootstrap.sh
									
									
									
									
									
								
							| @@ -149,6 +149,22 @@ GENERATED FILES | ||||
|     * src/version.cxx - if you enabled AX_USE_CXX | ||||
|     * html/makefile.am - if you enabled AX_BUILD_HTML | ||||
|     * scripts/makefile.am - if you enabled AX_USE_SCRIPTS | ||||
|     * nodejs/makefile.am - if you add AX_USE_NODEJS | ||||
|     * nodejs/${DEFAULT_PROJECT_NAME}.js - if you add AX_USE_NODEJS | ||||
|     * nodejs/package.json.in - if you add AX_USE_NODEJS | ||||
|     * nodejs/etc/${DEFAULT_PROJECT_NAME}.json - if you add AX_USE_NODEJS | ||||
|     * nodejs/etc/default/${DEFAULT_PROJECT_NAME} - if you add AX_USE_NODEJS | ||||
|     * nodejs/etc/init/${DEFAULT_PROJECT_NAME}.conf - if you add AX_USE_NODEJS | ||||
|     * nodejs/etc/systemd/system/${DEFAULT_PROJECT_NAME}.service - if you add AX_USE_NODEJS | ||||
|     * nodejs/public - if you add AX_USE_NODEJS | ||||
|     * nodejs/public/images - if you add AX_USE_NODEJS | ||||
|     * nodejs/public/javascripts/${DEFAULT_PROJECT_NAME}.js - if you add AX_USE_NODEJS | ||||
|     * nodejs/public/stylesheets/style.styl - if you add AX_USE_NODEJS | ||||
|     * nodejs/routes/index.js - if you add AX_USE_NODEJS | ||||
|     * nodejs/sockets/index.js - if you add AX_USE_NODEJS | ||||
|     * nodejs/views/index.ejs - if you add AX_USE_NODEJS | ||||
|     * nodejs/views/layout.ejs - if you add AX_USE_NODEJS | ||||
|     * nodejs/node_modules - if you add AX_USE_NODEJS | ||||
|     * doc/makefile.am - if you enabled AX_USE_DOXYGEN or AX_USE_PERLDOC | ||||
|     * doc/doxyfile.in - if you enabled AX_USE_DOXYGEN | ||||
|     * doc/header.html.in - if you enabled AX_USE_DOXYGEN | ||||
| @@ -242,6 +258,7 @@ FILES | ||||
|       * Enable C++: AX_USE_CXX | ||||
|       * Enable LibTool library creation: AX_USE_LIBTOOL | ||||
|       * Enable Scripts: AX_USE_SCRIPTS | ||||
|       * Enable NodeJS project: AX_USE_NODEJS | ||||
|       * Enable Doxygen documentation generation: AX_USE_DOXYGEN | ||||
|       * Enable Perldoc documentation generation: AX_USE_PERLDOC | ||||
|       * Enable Debian packaging by calling "make deb": AX_USE_DEBIAN_PACKAGING | ||||
| @@ -284,11 +301,13 @@ VCS="" | ||||
| VCSDEPENDS="" | ||||
| if test -d .svn; then | ||||
|     VCS="svn" | ||||
|     VCSDEPENDS="svn2cl, subversion, subversion-tools," | ||||
|     VCSDEPENDS_DEB="svn2cl, subversion, subversion-tools," | ||||
|     VCSDEPENDS_RPM="subversion," | ||||
|     echo -e " \e[32msuccess\e[0m detected ${VCS}" | ||||
| elif test -d .git; then | ||||
|     VCS="git" | ||||
|     VCSDEPENDS="git2cl, git," | ||||
|     VCSDEPENDS_DEB="git2cl, git," | ||||
|     VCSDEPENDS_RPM="git," | ||||
|     echo -e " \e[32msuccess\e[0m detected ${VCS}" | ||||
| else | ||||
|     echo -e " \e[33mignored\e[0m" | ||||
| @@ -552,6 +571,7 @@ AX_INIT_STANDARD_PROJECT | ||||
| #AX_USE_CXX | ||||
| #AX_USE_LIBTOOL | ||||
| #AX_USE_SCRIPTS | ||||
| #AX_USE_NODEJS | ||||
| #AX_USE_DOXYGEN | ||||
| #AX_USE_PERLDOC | ||||
| #AX_USE_DEBIAN_PACKAGING | ||||
| @@ -839,6 +859,349 @@ ${HEADER}dist_bin_SCRIPTS = | ||||
|  | ||||
| MAINTAINERCLEANFILES = makefile.in | ||||
| EOF | ||||
| if testtag AX_USE_NODEJS; then | ||||
|     checkdir nodejs | ||||
|     checkdir nodejs/public | ||||
|     checkdir nodejs/public/images | ||||
|     checkdir nodejs/etc | ||||
|     checkdir nodejs/etc/systemd | ||||
| fi | ||||
| to --condition AX_USE_NODEJS nodejs/makefile.am <<EOF | ||||
| ${HEADER}EXTRA_DIST = @PACKAGE_NAME@.js package.json.in public routes sockets views | ||||
|  | ||||
| nodejsdir = \${pkgdatadir}/nodejs | ||||
|  | ||||
| sysconfdefaultdir = \${sysconfdir}/default | ||||
| sysconfinitdir = \${sysconfdir}/init | ||||
| dist_sysconf_DATA = \${sysconfdir}/@PACKAGE_NAME@.json | ||||
| dist_sysconfdefault_DATA = \${sysconfdir}/default/@PACKAGE_NAME@ | ||||
| dist_sysconfinit_DATA = \${sysconfdir}/init/@PACKAGE_NAME@.conf | ||||
|  | ||||
| all: node_modules | ||||
|  | ||||
| node_modules: package.json.in | ||||
| 	HOME=. npm install | ||||
|  | ||||
| clean-local: | ||||
| 	-rm -r node_modules .npm | ||||
|  | ||||
| install-data-hook: | ||||
| 	test -d \$(DESTDIR)\${nodejsdir} || mkdir -p \$(DESTDIR)\${nodejsdir} | ||||
| 	chmod -R u+w \$(DESTDIR)\${nodejsdir} | ||||
| 	cp -r . \$(DESTDIR)\${nodejsdir} | ||||
|  | ||||
| uninstall-local: | ||||
| 	-chmod -R u+w \$(DESTDIR)\${nodejsdir} | ||||
| 	-rm -rf \$(DESTDIR)\${nodejsdir} | ||||
|  | ||||
| MAINTAINERCLEANFILES = makefile.in | ||||
| EOF | ||||
| to --condition AX_USE_NODEJS nodejs/${PACKAGE_NAME}.js <<EOF | ||||
| ${CHEADER}try { | ||||
|  | ||||
|   process.on('uncaughtException', function(e) { | ||||
|     console.log("**** UNCAUGHT EXCEPTION ****"); | ||||
|     console.log(e); | ||||
|     console.log(e.stack); | ||||
|     process.exit(1); | ||||
|   }); | ||||
|    | ||||
|   /** | ||||
|    * Module dependencies. | ||||
|    */ | ||||
|  | ||||
|   var express = require('express') | ||||
|     , routes = require(__dirname+'/routes'); | ||||
|  | ||||
|   var app = module.exports = express.createServer(); | ||||
|   var io  = require('socket.io').listen(app); | ||||
|   var package = require(__dirname+'/package.json'); | ||||
|   var config = require(package.path.config); | ||||
|   var authentication = require(__dirname+'/authentication')(config.restrict); | ||||
|   var sockets = require(__dirname+'/sockets')(io, authentication); | ||||
|  | ||||
|   // Configuration | ||||
|   process.argv.forEach(function(val, index) { | ||||
|     if (index<2) {return} | ||||
|     if (index!=2 || isNaN(val)) { | ||||
|       console.log("**** ERROR: Unexpected Argument - allowed is only a port number"); | ||||
|       process.exit(1); | ||||
|     } | ||||
|     config.port = parseInt(val); | ||||
|   }); | ||||
|   if (typeof config.port != 'number') { | ||||
|     console.log("**** WARNING: no valid port given, defaults to 8888"); | ||||
|     config.port = 8888; | ||||
|   } | ||||
|  | ||||
|   app.configure(function(){ | ||||
|     app.set('views', __dirname + '/views'); | ||||
|     app.set('view engine', 'ejs'); | ||||
|     app.use(express.bodyParser()); | ||||
|     app.use(express.methodOverride()); | ||||
|     app.use(require('stylus').middleware({ src: __dirname + '/public' })); | ||||
|     app.use(app.router); | ||||
|     app.use(express.static(__dirname + '/public')); | ||||
|   }); | ||||
|  | ||||
|   app.configure('development', function(){ | ||||
|     app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); | ||||
|   }); | ||||
|  | ||||
|   app.configure('production', function(){ | ||||
|     app.use(express.errorHandler()); | ||||
|   }); | ||||
|  | ||||
|   // Routes | ||||
|   app.get('/', routes.index); | ||||
|  | ||||
|   app.listen(config.port, function() { | ||||
|     console.log("Express server listening on port %d in %s mode", | ||||
|                 app.address().port, app.settings.env); | ||||
|   }); | ||||
| } catch (e) { | ||||
|   console.log("**** EXCEPTION ****"); | ||||
|   console.log(e); | ||||
|   console.log(e.stack); | ||||
|   process.exit(1); | ||||
| } | ||||
| EOF | ||||
| to --condition AX_USE_NODEJS nodejs/package.json.in <<EOF | ||||
| { | ||||
|   "name": "@PACKAGE_NAME@", | ||||
|   "version": "@PACKAGE_VERSION@", | ||||
|   "private": true, | ||||
|   "dependencies": { | ||||
|     "express": "~2.5.8", | ||||
|     "stylus": "~0.53.0", | ||||
|     "ejs": ">= 0.0.1", | ||||
|     "socket.io": "~1.4.4", | ||||
|     "socketio-auth": "0.0.5", | ||||
|     "ldapauth": "git+https://github.com/DimensionSoftware/node-ldapauth.git" | ||||
|   }, | ||||
|   "description": "@DESCRIPTION@", | ||||
|   "main": "@PACKAGE_NAME@.js", | ||||
|   "devDependencies": {}, | ||||
|   "scripts": { | ||||
|     "test": "echo \"Error: no test specified\" && exit 1" | ||||
|   }, | ||||
|   "author": "@AUTHOR@", | ||||
|   "license": "@LICENSE@", | ||||
|   "path": { | ||||
|       "prefix": "@PREFIX@", | ||||
|       "sysconf": "@SYSCONFDIR@", | ||||
|       "pkgdata": "@PKGDATADIR@", | ||||
|       "localstate": "@LOCALSTATEDIR@", | ||||
|       "log": "@LOCALSTATEDIR@/log/@PACKAGE_NAME@.log", | ||||
|       "config":  "@SYSCONFDIR@/@PACKAGE_NAME@.json", | ||||
|       "nodejs": "@PKGDATADIR@/nodejs" | ||||
|   } | ||||
| } | ||||
| EOF | ||||
| to --condition AX_USE_NODEJS nodejs/etc/${PACKAGE_NAME}.json <<EOF | ||||
| { | ||||
|   "port": 8888, | ||||
|   "restrict": { | ||||
|     "passwords": { | ||||
|       "foo": ["sha256", "fcde2b2edxx56bf408601fb721fe9b5c338d10ee429ea04fae5511b68fbf8fb9"] | ||||
|     }, | ||||
|     "ldap": { | ||||
|       "url": "ldap://dev.marc.waeckerlin.org", | ||||
|       "adminDn": "cn=tmp,ou=system,ou=people,dc=dev,dc=marc,dc=waeckerlin,dc=org", | ||||
|       "adminPassword": "secret", | ||||
|       "searchBase": "ou=person,ou=people,dc=dev,dc=marc,dc=waeckerlin,dc=org", | ||||
|       "searchFilter": "(uid={{username}})" | ||||
|     } | ||||
|   } | ||||
| } | ||||
| EOF | ||||
| to --condition AX_USE_NODEJS nodejs/etc/default/${PACKAGE_NAME} <<EOF | ||||
| #EXEC_${PACKAGE_NAME^^}="/usr/bin/nodejs /usr/share/${PACKAGE_NAME}/nodejs/${PACKAGE_NAME}" | ||||
| #${PACKAGE_NAME^^}_LOG="/var/log/${PACKAGE_NAME^^}.log" | ||||
| #${PACKAGE_NAME^^}="${PACKAGE_NAME}" | ||||
| #${PACKAGE_NAME^^}_PORT="8888" | ||||
| EOF | ||||
| to --condition AX_USE_NODEJS nodejs/etc/init/${PACKAGE_NAME}.conf <<EOF | ||||
| #!upstart | ||||
| description "$(head -1 README)" | ||||
| author      "$(head -1 AUTHORS)" | ||||
|  | ||||
| start on (local-filesystems and net-device-up) | ||||
| stop on runlevel [!2345] | ||||
|  | ||||
| respawn | ||||
|  | ||||
| script | ||||
|     echo \$\$ > /var/run/${PACKAGE_NAME}.pid | ||||
|     # there are some useful defaults | ||||
|     # do not edit this file, overwrite values in /etc/default/${PACKAGE_NAME} | ||||
|     EXEC_${PACKAGE_NAME^^}="/usr/bin/nodejs /usr/share/${PACKAGE_NAME}/nodejs/${PACKAGE_NAME}" | ||||
|     ${PACKAGE_NAME^^}_LOG="/var/log/${PACKAGE_NAME}.log" | ||||
|     ${PACKAGE_NAME^^}_USER="${PACKAGE_NAME}" | ||||
|     ${PACKAGE_NAME^^}_PORT="" | ||||
|     [ -r /etc/default/${PACKAGE_NAME} ] && . /etc/default/${PACKAGE_NAME} | ||||
|     if test -n "\${${PACKAGE_NAME^^}_USER}"; then | ||||
|         exec sudo -u "\${${PACKAGE_NAME^^}_USER}" \${EXEC_${PACKAGE_NAME^^}} \${${PACKAGE_NAME^^}_PORT} >> \${${PACKAGE_NAME^^}_LOG} 2>&1 | ||||
|     else | ||||
|         exec \${EXEC_${PACKAGE_NAME^^}} \${${PACKAGE_NAME^^}_PORT} >> \${${PACKAGE_NAME^^}_LOG} 2>&1 | ||||
|     fi | ||||
| end script | ||||
|  | ||||
| pre-start script | ||||
|     ${PACKAGE_NAME^^}_LOG="/var/log/${PACKAGE_NAME}.log" | ||||
|     [ -r /etc/default/${PACKAGE_NAME} ] && . /etc/default/${PACKAGE_NAME} | ||||
|     # Date format same as (new Date()).toISOString() for consistency | ||||
|     echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Starting" >> \${${PACKAGE_NAME^^}_LOG} | ||||
| end script | ||||
|  | ||||
| pre-stop script | ||||
|     ${PACKAGE_NAME^^}_LOG="/var/log/${PACKAGE_NAME}.log" | ||||
|     [ -r /etc/default/${PACKAGE_NAME} ] && . /etc/default/${PACKAGE_NAME} | ||||
|     rm /var/run/${PACKAGE_NAME}.pid | ||||
|     echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Stopping" >> \${${PACKAGE_NAME^^}_LOG} | ||||
| end script | ||||
| EOF | ||||
| to --condition AX_USE_NODEJS nodejs/etc/systemd/system/${PACKAGE_NAME}.service <<EOF | ||||
| [Unit] | ||||
| Description=$(head -1 README) | ||||
|  | ||||
| [Service] | ||||
| ExecStart=/usr/bin/nodejs /usr/share/${PACKAGE_NAME}/nodejs/${PACKAGE_NAME} > /var/log/${PACKAGE_NAME}.log | ||||
| Restart=on-abort | ||||
|  | ||||
| [Install] | ||||
| WantedBy=multi-user.target | ||||
| EOF | ||||
| to --condition AX_USE_NODEJS nodejs/public/javascripts/${PACKAGE_NAME}.js <<EOF | ||||
| ${CHEADER}var socket = null; | ||||
| function init() { | ||||
|   socket = io.connect(); | ||||
|   /* | ||||
|   socket | ||||
|     .io | ||||
|     .on("connect", connect) | ||||
|     .on("reconnect", connect) | ||||
|     .on("disconnect", disconnected) | ||||
|     .on("error", disconnected); | ||||
|   socket | ||||
|     .on("authenticated", authenticated) | ||||
|     .on("unauthorized", unauthorized) | ||||
|     .on("fail", error); | ||||
|   */ | ||||
| } | ||||
|  | ||||
| /// On Load, Call @ref start | ||||
| /* | ||||
|    \$(window.onbeforeunload = function() { | ||||
|    return "Are you sure you want to navigate away?"; | ||||
|    }); | ||||
|  */ | ||||
| \$(init); | ||||
| EOF | ||||
| to --condition AX_USE_NODEJS nodejs/public/stylesheets/style.styl <<EOF | ||||
| body | ||||
|   padding: 50px | ||||
|   font: 14px "Lucida Grande", Helvetica, Arial, sans-serif | ||||
| a | ||||
|   color: #00B7FF | ||||
| EOF | ||||
| to --condition AX_USE_NODEJS nodejs/routes/index.js <<EOF | ||||
| ${CHEADER}var package = require(__dirname+"/../package.json"); | ||||
|  | ||||
| exports.index = function(req, res) { | ||||
|   res.render('index', { | ||||
|     packagename: package.name, | ||||
|     packageversion: package.version | ||||
|   }); | ||||
| }; | ||||
| EOF | ||||
| to --condition AX_USE_NODEJS nodejs/sockets/index.js <<EOF | ||||
| module.exports = function(io, authentication) { | ||||
|  | ||||
|   var module={}; | ||||
|    | ||||
|   function broadcast(signal, data) { | ||||
|     console.log("<= signal: "+signal); | ||||
|     io.sockets.emit(signal, data); | ||||
|   } | ||||
|    | ||||
|   function fail(txt, data) { | ||||
|     console.log("** "+txt, data); | ||||
|   } | ||||
|  | ||||
|   function connection(socket, userdata) { | ||||
|      | ||||
|     console.log("=> new connection from "+userdata.username); | ||||
|  | ||||
|     function emit(signal, data, info) { | ||||
|       if (typeof data == 'string' && !data.match("\n")) { | ||||
|         console.log("<- signal: "+signal+"("+data+")"); | ||||
|       } else { | ||||
|         console.log("<- signal: "+signal); | ||||
|       } | ||||
|       if (info) console.log(info); | ||||
|       socket.emit(signal, data); | ||||
|     } | ||||
|  | ||||
|     function fail(txt, data) { | ||||
|       console.log("** "+txt, data); | ||||
|       emit("fail", txt); | ||||
|     } | ||||
|  | ||||
|     /* | ||||
|     socket | ||||
|       .on("xxx", xxx) | ||||
|       .on("yyy", yyy; | ||||
|     */ | ||||
|  | ||||
|   } | ||||
|    | ||||
|   // Handle Connection | ||||
|   require('socketio-auth')(io, { | ||||
|     authenticate: function (socket, data, callback) { | ||||
|       console.log("=> authenticate: ", data.username); | ||||
|       //get credentials sent by the client | ||||
|       var username = data.username; | ||||
|       var password = data.password; | ||||
|       authentication(data.username, data.password, | ||||
|                      function() { | ||||
|                        console.log("####LOGIN-SUCESS####"); | ||||
|                        callback(null, true) | ||||
|                      }, | ||||
|                      function() { | ||||
|                        console.log("####LOGIN-FAIL####"); | ||||
|                        callback(new Error("wrong credentials")) | ||||
|                      }); | ||||
|     }, | ||||
|     postAuthenticate: connection, | ||||
|     timeout: "none" | ||||
|   }); | ||||
|  | ||||
|   return module; | ||||
| } | ||||
| EOF | ||||
| to --condition AX_USE_NODEJS nodejs/views/index.ejs <<EOF | ||||
| <!DOCTYPE html> | ||||
| <html> | ||||
|   <head> | ||||
|     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> | ||||
|     <meta name="viewport" content="width=device-width initial-scale=1" /> | ||||
|     <link href="stylesheets/style.css" rel="stylesheet" type="text/css" /> | ||||
|     <script type="text/javascript" src="/socket.io/socket.io.js"></script> | ||||
|     <script type="text/javascript" src="javascripts/${PACKAGE_NAME}.js"></script> | ||||
|     <title>$(head -1 README)</title> | ||||
|   </head> | ||||
|  | ||||
|   <body> | ||||
|     <h1>$(head -1 README)</h1> | ||||
|     <p>generated by bootstrap, please edit</p> | ||||
|   </body> | ||||
| </html> | ||||
|  | ||||
| EOF | ||||
| to --condition AX_USE_NODEJS nodejs/views/layout.ejs <<EOF | ||||
| <%- body %> | ||||
| EOF | ||||
| echo "${HEADER}MAINTAINERCLEANFILES = makefile.in" | to --condition 'AX_USE_DOXYGEN|AX_USE_PERLDOC' doc/makefile.am | ||||
| if testtag AX_BUILD_TEST; then | ||||
|     to test/runtests.sh < ${0%/*}/test/runtests.sh | ||||
| @@ -1102,7 +1465,7 @@ if testtag AX_USE_DEBIAN_PACKAGING; then | ||||
|  | ||||
|  -- @PACKAGER@  @BUILD_DATE@ | ||||
| EOF | ||||
|     BUILD_DEPENDS="debhelper, ${VCSDEPENDS} pkg-config, automake, libtool, autotools-dev, pandoc, lsb-release, fakeroot, $(if testtag AX_USE_DOXYGEN; then echo -n ", doxygen, graphviz, mscgen"; fi; if testtag AX_USE_PERLDOC; then echo -n ", libpod-tree-perl"; fi; if testtag AX_USE_PLANTUML; then echo -n ", default-jre-headless|default-jre"; fi; if testtag AX_USE_CPPUNIT; then echo -n ", libcppunit-dev"; fi; if testtag AX_CXX_QT || testtag AX_CHECK_QT AX_REQUIRE_QT; then echo -n ", qt5-default | libqt4-core | libqtcore4, qt5-qmake | qt4-qmake, qtbase5-dev | libqt4-dev, qtbase5-dev-tools | qt4-dev-tools, qttools5-dev-tools | qt4-dev-tools, qttools5-dev-tools | qt4-dev-tools"; fi)" | ||||
|     BUILD_DEPENDS="debhelper, fakeroot, ${VCSDEPENDS_DEB} pkg-config, automake, libtool, autotools-dev, pandoc, lsb-release $(if testtag AX_USE_DOXYGEN; then echo -n ", doxygen, graphviz, mscgen, default-jre-headless|default-jre"; fi; if testtag AX_USE_PERLDOC; then echo -n ", libpod-tree-perl"; fi; if testtag AX_USE_CPPUNIT; then echo -n ", libcppunit-dev"; fi; if testtag AX_CXX_QT || testtag AX_CHECK_QT AX_REQUIRE_QT; then echo -n ", qt5-default | libqt4-core | libqtcore4, qt5-qmake | qt4-qmake, qtbase5-dev | libqt4-dev, qtbase5-dev-tools | qt4-dev-tools, qttools5-dev-tools | qt4-dev-tools, qttools5-dev-tools | qt4-dev-tools"; fi)" | ||||
|     to debian/control.in <<EOF | ||||
| Source: @PACKAGE_NAME@ | ||||
| Priority: extra | ||||
| @@ -1173,25 +1536,45 @@ else | ||||
| fi) | ||||
| Source0: %{name}-%{version}.tar.gz | ||||
| BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root | ||||
| BuildRequires: gnupg, ${VCSDEPENDS} make, automake, autoconf, rpm-build$( | ||||
| BuildRequires: gnupg, ${VCSDEPENDS_RPM} make, automake, autoconf, rpm-build$( | ||||
|     if testtag AX_USE_CXX; then | ||||
|       echo -n ", binutils-devel, gcc-c++" | ||||
|     fi | ||||
|     if testtag AX_USE_LIBTOOL; then | ||||
|       echo -n ", libtool"; | ||||
|     fi | ||||
|     if testtag AX_USE_DOXYGEN; then | ||||
|       echo -n ", doxygen"; | ||||
|       echo -n ", doxygen, java-openjdk"; | ||||
|     fi | ||||
|     if testtag AX_USE_PERLDOC; then | ||||
|       echo -n ", libpod-tree-perl"; | ||||
|     fi | ||||
|     if testtag AX_USE_PLANTUML; then | ||||
|       echo -n ", default-jre-headless"; | ||||
|     fi | ||||
| ) | ||||
| %if 0%{?fedora} != 20 | ||||
| $(if testtag AX_USE_DOXYGEN; then echo -n "BuildRequires: graphviz"; fi) | ||||
| %endif | ||||
| %if 0%{?fedora} || 0%{?rhel} || 0%{?rhl} || 0%{?centos} || 0%{?centos_ver} || 0%{?centos_version} | ||||
| BuildRequires: pkgconfig, redhat-lsb$( | ||||
|     if testtag AX_USE_CPPUNIT; then | ||||
|       echo -n ", cppunit-devel"; | ||||
|     fi) | ||||
| %if 0%{?fedora} || 0%{?rhel} || 0%{?rhl} || 0%{?centos} || 0%{?centos_ver} || 0%{?centos_version} || 0%{?mageia} | ||||
| BuildRequires: which, pkgconfig$( | ||||
|     if testtag AX_USE_LIBTOOL; then | ||||
|       echo -n ", cppunit-devel" | ||||
|     fi | ||||
| ) | ||||
| %if 0%{?rhel} > 6 || 0%{?rhl} > 6 || 0%{?centos} > 6 || 0%{?fedora} || 0%{?mageia} | ||||
| BuildRequires: rpm-sign | ||||
| %endif | ||||
| %if 0%{?mageia} | ||||
| BuildRequires: gnupg, lsb-release$( | ||||
|     if testtag AX_USE_LIBTOOL; then | ||||
|       echo -n ", libltdl-devel" | ||||
|     fi | ||||
| ) | ||||
| %else | ||||
| BuildRequires: gpg, redhat-lsb$( | ||||
|     if testtag AX_USE_LIBTOOL; then | ||||
|       echo -n ", libtool-ltdl-devel" | ||||
|     fi | ||||
| ) | ||||
| %endif | ||||
| %if ! ( 0%{?centos} || 0%{?centos_ver} || 0%{?centos_version} ) | ||||
| $(if testtag AX_USE_DOXYGEN; then echo -n "BuildRequires: mscgen"; fi) | ||||
| $(if testtag AX_REQUIRE_QT || testtag AX_CHECK_QT AX_REQUIRE_QT; then echo -n "BuildRequires: qt5-qtbase-devel, qt5-qttools, qt5-qtwebkit-devel"; fi) | ||||
| @@ -1217,7 +1600,9 @@ echo | ||||
| echo This package contains only the shared libraries required at runtime. | ||||
| fi) | ||||
|  | ||||
|  | ||||
| $(if ! testtag 'AX_USE_LIBTOOL|AX_USE_CXX'; then | ||||
|   echo '%global debug_package %{nil}' | ||||
| fi) | ||||
| %prep | ||||
| %setup -q | ||||
| ./configure --prefix=/usr \\ | ||||
| @@ -1242,6 +1627,7 @@ else | ||||
| echo '/usr/bin/*' | ||||
| echo '/usr/share/applications/*' | ||||
| fi) | ||||
| /usr/share/@PACKAGE_NAME@ | ||||
| %doc | ||||
| $(if testtag AX_USE_LIBTOOL; then | ||||
|   cat <<EOF2 | ||||
| @@ -1253,7 +1639,7 @@ $(if testtag AX_USE_LIBTOOL; then | ||||
| /usr/share/doc/packages/@PACKAGE_NAME@/README | ||||
| EOF2 | ||||
| else | ||||
|   echo '/usr/share/*' | ||||
|   echo '/usr/share/doc/packages/@PACKAGE_NAME@' | ||||
| fi) | ||||
|  | ||||
| $(if testtag AX_USE_LIBTOOL; then | ||||
| @@ -1310,7 +1696,7 @@ for d in src test scripts doc examples html; do | ||||
| done | ||||
| to --mode "u=rwx,g=rwx,o=rx" autogen.sh <<EOF | ||||
| #!/bin/bash -e | ||||
| if test -n "$VCS" -a -d .$VCS -a -e -x $(which ${VCS}2cl); then | ||||
| if test -n "$VCS" -a -d ".$VCS" -a -e -x "\$(which ${VCS}2cl)"; then | ||||
| $(case "$VCS" in | ||||
|   (svn) echo "    ${VCS}2cl";; | ||||
|   (git) echo "    ${VCS}2cl > ChangeLog";; | ||||
| @@ -1352,10 +1738,15 @@ Cflags: -I\${includedir} @CPPFLAGS@ | ||||
| Requires: @PKG_REQUIREMENTS@ | ||||
| EOF | ||||
| to build-in-docker.conf <<EOF | ||||
| repos+=("Debian|Ubuntu-precise::::::universe") | ||||
| repos+=("Ubuntu-precise:::'deb http://archive.ubuntu.com/ubuntu precise universe'") | ||||
| envs+=("-e 'HOME=\${HOME}'") | ||||
| dirs+=("-v \${HOME}/.gnupg:\${HOME}/.gnupg:ro") | ||||
| ${HEADER}# Use Ubuntu Universe Repository | ||||
| repos+=("Ubuntu:::universe") | ||||
|  | ||||
| # Use Marc Wäckselin's Repository, see https://dev.marc.waeckerlin.org | ||||
| repos+=("Debian|Ubuntu:::https://dev.marc.waeckerlin.org/repository") | ||||
| repos+=("openSUSE:::https://dev.marc.waeckerlin.org/repository/opensuse/marc-waeckerlin.repo") | ||||
| repos+=("Fedora:::https://dev.marc.waeckerlin.org/repository/fedora/marc-waeckerlin.repo") | ||||
| repos+=("CentOS:::https://dev.marc.waeckerlin.org/repository/centos/marc-waeckerlin.repo") | ||||
| keys+=("https://dev.marc.waeckerlin.org/repository/PublicKey") | ||||
| EOF | ||||
|  | ||||
| #### Cleanup If Makefile Exists #### | ||||
|   | ||||
| @@ -1,4 +1,19 @@ | ||||
| repos+=("Debian|Ubuntu-precise::::::universe") | ||||
| repos+=("Ubuntu-precise:::'deb http://archive.ubuntu.com/ubuntu precise universe'") | ||||
| envs+=("-e 'HOME=${HOME}'") | ||||
| dirs+=("-v ${HOME}/.gnupg:${HOME}/.gnupg:ro") | ||||
| ## @id $Id$ | ||||
| ## | ||||
| ## This file has been added: | ||||
| ##  - by bootstrap.sh | ||||
| ##  -  on Sat, 07 January 2017 13:34:24 +0100 | ||||
| ## Feel free to change it or even remove and rebuild it, up to your needs | ||||
| ## | ||||
| ##       1         2         3         4         5         6         7         8 | ||||
| ## 45678901234567890123456789012345678901234567890123456789012345678901234567890 | ||||
|  | ||||
| # Use Ubuntu Universe Repository | ||||
| repos+=("Ubuntu:::universe") | ||||
|  | ||||
| # Use Marc Wäckselin's Repository, see https://dev.marc.waeckerlin.org | ||||
| repos+=("Debian|Ubuntu:::https://dev.marc.waeckerlin.org/repository") | ||||
| repos+=("openSUSE:::https://dev.marc.waeckerlin.org/repository/opensuse/marc-waeckerlin.repo") | ||||
| repos+=("Fedora:::https://dev.marc.waeckerlin.org/repository/fedora/marc-waeckerlin.repo") | ||||
| repos+=("CentOS:::https://dev.marc.waeckerlin.org/repository/centos/marc-waeckerlin.repo") | ||||
| keys+=("https://dev.marc.waeckerlin.org/repository/PublicKey") | ||||
|   | ||||
| @@ -2,21 +2,29 @@ | ||||
| set -o errtrace | ||||
|  | ||||
| # build and test everything in a fresh docker installation | ||||
| mode="apt" | ||||
| myarch=$(dpkg --print-architecture) | ||||
| if test "${arch}" = "amd64"; then | ||||
|     myarch="amd64|i386" | ||||
| fi | ||||
| mode="deb" | ||||
| img="ubuntu:latest" | ||||
| repos=() | ||||
| keys=() | ||||
| envs=() | ||||
| dirs=("-v $(pwd):/workdir") | ||||
| envs=("-e LANG=${LANG}" "-e HOME=${HOME}" "-e TERM=xterm" "-e DEBIAN_FRONTEND=noninteractive" "-e DEBCONF_NONINTERACTIVE_SEEN=true") | ||||
| dirs=("-v $(pwd):/workdir" "-v ${HOME}/.gnupg:${HOME}/.gnupg") | ||||
| packages=() | ||||
| targets="all check distcheck" | ||||
| commands=() | ||||
| arch=$((which dpkg > /dev/null 2> /dev/null && dpkg --print-architecture) || echo amd64) | ||||
| host= | ||||
| flags=() | ||||
| 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 | ||||
|     source ./build-in-docker.conf | ||||
| fi | ||||
|  | ||||
| while test $# -gt 0; do | ||||
|     case "$1" in | ||||
|         (-h|--help) | ||||
| @@ -25,9 +33,12 @@ while test $# -gt 0; do | ||||
|             echo "OPTIONS:" | ||||
|             echo | ||||
|             echo "  -h, --help            show this help" | ||||
|             echo "  -m, --mode <type>     mode: apt or yum, default: ${mode}" | ||||
|             echo "  -m, --mode <type>     mode: deb, rpm, win, default: ${mode}" | ||||
|             echo "  -i, --image <image>   use given docker image instead of ${img}" | ||||
|             echo "  -a, --arch <arch>     build for given hardware architecture" | ||||
|             echo "  -t, --targets targets specify build targets, default: ${targets}" | ||||
|             echo "  --host <target-arch>  host for cross compiling, e.g. i686-w64-mingw32" | ||||
|             echo "  -f, --flag <flag>     add flag to ./bootstrap.sh or ./configure" | ||||
|             echo "  -r, --repo <url>      add given apt repository" | ||||
|             echo "  -k, --key <url>       add public key from url" | ||||
|             echo "  -e, --env <var>=<val> set environment variable in docker" | ||||
| @@ -37,6 +48,10 @@ while test $# -gt 0; do | ||||
|             echo "  -w, --wait            on error keep docker container and wait for enter" | ||||
|             echo | ||||
|             echo "  The option -i must be after -m, because mode sets a new default image" | ||||
|             echo "  The option -m must be after -t, because mode may be auto detected from targets" | ||||
|             echo "  The option -m must be after -h, because mode may set a host" | ||||
|             echo "  If target is either deb or rpm, mode is set to the same value" | ||||
|             echo "  If target is win, host is set to i686-w64-mingw32" | ||||
|             echo | ||||
|             echo "  The options -r -k -e -d -p -c can be repeated several times." | ||||
|             echo | ||||
| @@ -67,8 +82,11 @@ while test $# -gt 0; do | ||||
|         (-m|--mode) shift; | ||||
|             mode="$1" | ||||
|             case "$mode" in | ||||
|                 (apt) img="ubuntu:latest";; | ||||
|                 (deb|apt) img="ubuntu:latest";; | ||||
|                 (rpm|zypper) img="opensuse:latest";; | ||||
|                 (yum) img="centos:latest";; | ||||
|                 (dnf) img="fedora:latest";; | ||||
|                 (win) img="ubuntu:latest"; host="${host:---host=i686-w64-mingw32}";; | ||||
|                 (*) | ||||
|                     echo "**** ERROR: unknown mode '$1', try --help" 1>&2 | ||||
|                     exit 1 | ||||
| @@ -78,10 +96,25 @@ while test $# -gt 0; do | ||||
|         (-i|--image) shift; | ||||
|             img="$1" | ||||
|             ;; | ||||
|         (-a|--arch) shift; | ||||
|             arch="$1" | ||||
|             ;; | ||||
|         (-t|--targets) shift; | ||||
|             targets="$1" | ||||
|             if test "$1" = "deb" -o "$1" = "rpm"; then | ||||
|                 # set mode to same value | ||||
|                 set -- "-m" "$@" | ||||
|                 continue | ||||
|             fi | ||||
|             ;; | ||||
|         (--host) shift; | ||||
|             host="--host=$1" | ||||
|             ;; | ||||
|         (-f|--flag) shift; | ||||
|             flags+=("$1") | ||||
|             ;; | ||||
|         (-r|--repo) shift; | ||||
|             echo "OPTION: $1" | ||||
|             repos+=("$1") | ||||
|             ;; | ||||
|         (-k|--key) shift; | ||||
| @@ -140,7 +173,8 @@ function traperror() { | ||||
|                 read | ||||
|             fi | ||||
|             echo -n "   ... cleanup docker: " | ||||
|             docker rm -f "${DOCKER_ID}" | ||||
|             docker stop "${DOCKER_ID}" || true | ||||
|             docker rm "${DOCKER_ID}" | ||||
|             echo "returning status: $e" | ||||
|             echo "--->" | ||||
|             exit $e | ||||
| @@ -167,14 +201,14 @@ function ifthenelse() { | ||||
|         os="${arg%%:::*}" | ||||
|         thenpart="${arg#*:::}" | ||||
|         if test "${thenpart/:::/}" = "${thenpart}"; then | ||||
|             docker exec ${DOCKER_ID} bash -c 'os="'$os'"; if [[ "$(lsb_release -is)-$(lsb_release -cs)-$(dpkg --print-architecture)" =~ ${os} ]]; then '"${cmd//ARG/${thenpart}}"'; fi' | ||||
|             docker exec ${DOCKER_ID} bash -c 'os="'$os'"; if [[ "$(lsb_release -is)-$(lsb_release -cs)-$((which dpkg > /dev/null 2> /dev/null && dpkg --print-architecture) || echo amd64)" =~ ${os} ]]; then '"${cmd//ARG/${thenpart}}"'; fi' | ||||
|         else | ||||
|             elsepart="${thenpart##*:::}" | ||||
|             thenpart="${thenpart%:::*}" | ||||
|             if test -n "${thenpart}"; then | ||||
|                 docker exec ${DOCKER_ID} bash -c 'os="'$os'"; if [[ "$(lsb_release -is)-$(lsb_release -cs)-$(dpkg --print-architecture)" =~ ${os} ]]; then '"${cmd//ARG/${thenpart}}"'; else '"${cmd//ARG/${elsepart}}"'; fi' | ||||
|                 docker exec ${DOCKER_ID} bash -c 'os="'$os'"; if [[ "$(lsb_release -is)-$(lsb_release -cs)-$((which dpkg > /dev/null 2> /dev/null && dpkg --print-architecture) || echo amd64)" =~ ${os} ]]; then '"${cmd//ARG/${thenpart}}"'; else '"${cmd//ARG/${elsepart}}"'; fi' | ||||
|             else | ||||
|                 docker exec ${DOCKER_ID} bash -c 'os="'$os'"; if [[ "$(lsb_release -is)-$(lsb_release -cs)-$(dpkg --print-architecture)" =~ ${os} ]]; then true; else '"${cmd//ARG/${elsepart}}"'; fi' | ||||
|                 docker exec ${DOCKER_ID} bash -c 'os="'$os'"; if [[ "$(lsb_release -is)-$(lsb_release -cs)-$((which dpkg > /dev/null 2> /dev/null && dpkg --print-architecture) || echo amd64)" =~ ${os} ]]; then true; else '"${cmd//ARG/${elsepart}}"'; fi' | ||||
|             fi     | ||||
|         fi | ||||
|     fi | ||||
| @@ -183,10 +217,25 @@ function ifthenelse() { | ||||
| set -x | ||||
|  | ||||
| docker pull $img | ||||
| DOCKER_ID=$(docker run -d ${dirs[@]} ${envs[@]} -e HOME="${HOME}" -w /workdir $img sleep infinity) | ||||
| DOCKER_ID=$(docker create ${dirs[@]} ${envs[@]} -w /workdir $img sleep infinity) | ||||
| trap 'traperror '"${DOCKER_ID}"' "$? ${PIPESTATUS[@]}" $LINENO $BASH_LINENO "$BASH_COMMAND" "${FUNCNAME[@]}" "${FUNCTION}"' SIGINT INT TERM EXIT | ||||
| if ! [[ $arch =~ $myarch ]]; then | ||||
|     docker cp "/usr/bin/qemu-${arch}-static" "${DOCKER_ID}:/usr/bin/qemu-${arch}-static" | ||||
| fi | ||||
| docker start "${DOCKER_ID}" | ||||
| if ! docker exec ${DOCKER_ID} getent group $(id -g) > /dev/null 2>&1; then | ||||
|     docker exec ${DOCKER_ID} groupadd -g $(id -g) $(id -gn) | ||||
| fi | ||||
| if ! docker exec ${DOCKER_ID} getent passwd $(id -u) > /dev/null 2>&1; then | ||||
|     docker exec ${DOCKER_ID} useradd -m -u $(id -u) -g $(id -g) -d"${HOME}" $(id -un) | ||||
| fi | ||||
| docker exec ${DOCKER_ID} chown $(id -u):$(id -g) "${HOME}" | ||||
| case $mode in | ||||
|     (apt) | ||||
|     (deb|apt) | ||||
|         if [[ "${img}" =~ "ubuntu" ]]; then | ||||
|             docker exec ${DOCKER_ID} locale-gen ${LANG} | ||||
|             docker exec ${DOCKER_ID} update-locale LANG=${LANG} | ||||
|         fi | ||||
|         OPTIONS='-o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confnew -y --force-yes --no-install-suggests --no-install-recommends' | ||||
|         for f in 'libpam-systemd:amd64' 'policykit*' 'colord'; do | ||||
|             docker exec ${DOCKER_ID} bash -c "echo 'Package: $f' >> /etc/apt/preferences" | ||||
| @@ -199,7 +248,7 @@ case $mode in | ||||
|             docker exec ${DOCKER_ID} apt-get install ${OPTIONS} software-properties-common apt-transport-https dpkg-dev lsb-release || \ | ||||
|             docker exec ${DOCKER_ID} apt-get install ${OPTIONS} python-software-properties apt-transport-https dpkg-dev lsb-release; | ||||
|         for repo in "${repos[@]}"; do | ||||
|             ifthenelse "${repo}" "apt-add-repository ARG" | ||||
|             ifthenelse "${repo}" "apt-add-repository 'ARG'" | ||||
|         done | ||||
|         for key in "${keys[@]}"; do | ||||
|             wget -O- "$key" \ | ||||
| @@ -214,8 +263,7 @@ case $mode in | ||||
|         done | ||||
|         docker exec ${DOCKER_ID} ./resolve-debbuilddeps.sh | ||||
|         ;; | ||||
|     (yum) | ||||
|         ./bootstrap.sh -t dist | ||||
|     (rpm|yum|dnf|zypper|urpmi) | ||||
|         if [[ "$img" =~ "centos" ]]; then | ||||
|             docker exec ${DOCKER_ID} yum install -y redhat-lsb | ||||
|             docker exec -i ${DOCKER_ID} bash -c 'cat > /etc/yum.repos.d/wandisco-svn.repo' <<EOF | ||||
| @@ -228,10 +276,29 @@ enabled=1 | ||||
| gpgcheck=0 | ||||
| EOF | ||||
|         fi | ||||
|         docker exec ${DOCKER_ID} yum install -y rpm-build  | ||||
|         docker exec ${DOCKER_ID} groupadd -g $(id -g) build | ||||
|         docker exec ${DOCKER_ID} useradd -g $(id -g) -u $(id -u) build | ||||
|         docker exec ${DOCKER_ID} ./resolve-rpmbuilddeps.sh || true | ||||
|         INSTALL_TOOL=$((docker exec ${DOCKER_ID} test -x /usr/bin/zypper && echo zypper install -y) ||  (docker exec ${DOCKER_ID} test -x /usr/bin/dnf && echo dnf install -y) || (docker exec ${DOCKER_ID} test -x /usr/bin/yum && echo yum install -y) || (docker exec ${DOCKER_ID} test -x /usr/sbin/urpmi && echo urpmi --auto)) | ||||
|         docker exec ${DOCKER_ID} ${INSTALL_TOOL} rpm-build automake libtool subversion gcc-c++ pkgconfig wget /usr/bin/lsb_release | ||||
|         i=0 | ||||
|         for key in "${keys[@]}"; do | ||||
|             wget -Orpm-key "$key" | ||||
|             docker exec -i ${DOCKER_ID} rpm --import rpm-key | ||||
|             rm rpm-key | ||||
|         done | ||||
|         for repo in "${repos[@]}"; do | ||||
|             INSTALL_REPO=$((docker exec ${DOCKER_ID} test -x /usr/bin/zypper && echo zypper ar) || (docker exec ${DOCKER_ID} test -x /usr/bin/dnf && echo dnf config-manager --add-repo) || (docker exec ${DOCKER_ID} test -x /usr/bin/yum && echo wget -O/etc/yum.repos.d/additional$i.repo) || (docker exec ${DOCKER_ID} test -x /usr/sbin/urpmi && echo true)) | ||||
|             ifthenelse "${repo}" "${INSTALL_REPO} 'ARG'" | ||||
|             ((++i)) | ||||
|         done | ||||
|         docker exec ${DOCKER_ID} ./resolve-rpmbuilddeps.sh | ||||
|         ;; | ||||
|     (win) | ||||
|         if [[ "${img}" =~ "ubuntu" ]]; then | ||||
|             docker exec ${DOCKER_ID} locale-gen ${LANG} | ||||
|             docker exec ${DOCKER_ID} update-locale LANG=${LANG} | ||||
|         fi | ||||
|         docker exec ${DOCKER_ID} apt-get update ${OPTIONS} | ||||
|         docker exec ${DOCKER_ID} apt-get install -y mingw-w64 | ||||
|         docker exec ${DOCKER_ID} ./resolve-debbuilddeps.sh | ||||
|         ;; | ||||
| esac | ||||
| docker exec -u $(id -u):$(id -g) ${DOCKER_ID} ./bootstrap.sh -t "${targets}" | ||||
| docker exec -u $(id -u):$(id -g) ${DOCKER_ID} ./bootstrap.sh -t "${targets}" ${host} ${flags[@]} | ||||
|   | ||||
							
								
								
									
										4
									
								
								debian/control.in
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								debian/control.in
									
									
									
									
										vendored
									
									
								
							| @@ -1,10 +1,10 @@ | ||||
| Source: @PACKAGE_NAME@ | ||||
| Priority: extra | ||||
| Maintainer: @PACKAGER@ | ||||
| Build-Depends: debhelper, svn2cl, subversion, subversion-tools, pkg-config, automake, libtool, autotools-dev, pandoc, lsb-release, fakeroot, , doxygen, graphviz, mscgen, default-jre-headless|default-jre | ||||
| Build-Depends: debhelper, fakeroot, svn2cl, subversion, subversion-tools, pkg-config, automake, libtool, autotools-dev, pandoc, lsb-release , doxygen, graphviz, mscgen, default-jre-headless|default-jre | ||||
|  | ||||
| Package: @PACKAGE_NAME@ | ||||
| Section: development | ||||
| Section:  | ||||
| Architecture: any | ||||
| Depends: ${shlibs:Depends}, ${misc:Depends} | ||||
| Description: @DESCRIPTION@ | ||||
|   | ||||
| @@ -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} apt-cache policy ${f} 2>&1 | grep -q 'N: Unable to locate package')" && ! ${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 | ||||
|   | ||||
| @@ -10,35 +10,34 @@ | ||||
| ##       1         2         3         4         5         6         7         8 | ||||
| ## 45678901234567890123456789012345678901234567890123456789012345678901234567890 | ||||
|  | ||||
| INSTALL_TOOL=${INSTALL_TOOL:-$((test -x /usr/bin/zypper && echo zypper install -y) ||  (test -x /usr/bin/dnf && echo dnf install -y) || (test -x /usr/bin/yum && echo yum install -y) || (test -x /usr/sbin/urpmi && echo urpmi --auto))} | ||||
| SCHROOTNAME="$1" | ||||
| PACKAGE_NAME=$(sed -n 's/^ *m4_define(x_package_name, \(.*\)).*/\1/p' configure.ac) | ||||
| PKGCONFIGS="${2:-epel-release}" # packages to configure yum | ||||
|  | ||||
| TRAP_CMD= | ||||
| if test -e ${PACKAGE_NAME}.spec.in -a ! -e ${PACKAGE_NAME}.spec; then | ||||
|     TRAP_CMD+="rm ${PACKAGE_NAME}.spec;" | ||||
|     trap "${TRAP_CMD}" INT TERM EXIT | ||||
|     sed 's,@RPM_DEPEND_IFEXISTS@,,g' ${PACKAGE_NAME}.spec.in | \ | ||||
|         sed 's,@[^@]*@, dummytext,g' > ${PACKAGE_NAME}.spec | ||||
| fi | ||||
|  | ||||
| TGZFILE=$(sed -n '/^Name: */{s///;h};/^Version: */{s///;H;x;s/\n/-/;s/$/.tar.gz/;p}' ${PACKAGE_NAME}.spec) | ||||
| if ! test -e $TGZFILE; then | ||||
|     TRAP_CMD+="rm ${TGZFILE};" | ||||
|     trap "${TRAP_CMD}" INT TERM EXIT | ||||
|     touch $TGZFILE | ||||
| fi | ||||
|  | ||||
| if test -n "${SCHROOTNAME}"; then | ||||
|     FILES=$(LANG= schroot -c ${SCHROOTNAME} -- rpmbuild -bb --clean --nobuild --define "_topdir ." --define "_sourcedir ." ${PACKAGE_NAME}.spec  2>&1 | sed -n 's, is needed by.*,,p') | ||||
|     if test -n "${FILES}"; then | ||||
|         FIRST=$(echo "${FILES}" | egrep -o "${PKGCONFIGS// /|}") | ||||
|         if test -n "${FIRST}"; then | ||||
|             schroot -c ${SCHROOTNAME} -u root -- yum install -y ${FIRST} || \ | ||||
|                 schroot -c ${SCHROOTNAME} -u root -- zypper install -y ${FIRST} || \ | ||||
|                 schroot -c ${SCHROOTNAME} -u root -- dnf install -y ${FIRST} | ||||
|         fi | ||||
|         schroot -c ${SCHROOTNAME} -u root -- yum install -y ${FILES} || \ | ||||
|             schroot -c ${SCHROOTNAME} -u root -- zypper install -y ${FILES} || \ | ||||
|             schroot -c ${SCHROOTNAME} -u root -- dnf install -y ${FILES} | ||||
|         schroot -c ${SCHROOTNAME} -u root -- ${INSTALL_TOOL}  ${FILES} | ||||
|     fi | ||||
| else | ||||
|     FILES=$(LANG= rpmbuild -bb --clean --nobuild --define "_topdir ." --define "_sourcedir ." ${PACKAGE_NAME}.spec 2>&1 | sed -n 's, is needed by.*,,p') | ||||
|     if test -n "${FILES}"; then | ||||
|         FIRST=$(echo "${FILES}" | egrep -o "${PKGCONFIGS// /|}") | ||||
|         if test -n "${FIRST}"; then | ||||
|             yum install -y ${FIRST} || \ | ||||
|                 zypper install -y ${FIRST} || \ | ||||
|                 dnf install -y ${FIRST} | ||||
|         fi | ||||
|         yum install -y ${FILES} || \ | ||||
|             zypper install -y ${FILES} || \ | ||||
|             dnf install -y ${FILES} | ||||
|         ${INSTALL_TOOL} ${FILES} | ||||
|     fi | ||||
| fi | ||||
|  | ||||
|   | ||||
| @@ -36,13 +36,16 @@ if test -z "$archs"; then | ||||
|         fi | ||||
|     done | ||||
| fi | ||||
| excludes="precise-armhf" | ||||
| no_universe="jessie sid wheezy" | ||||
|  | ||||
| ubuntu_qt5="yakkety xenial wily vivid trusty" | ||||
| ubuntu_qt5="zesty yakkety xenial wily vivid trusty" | ||||
| ubuntu_qt4="precise" | ||||
| debian_qt5="jessie sid" | ||||
| debian_qt4="" | ||||
| debian_qt4="wheezy" | ||||
| # not yet successfully installable: debian stretch and buster | ||||
|  | ||||
| ubuntu=("${ubuntu_qt5}") | ||||
| ubuntu=("${ubuntu_qt5}" "${ubuntu_qt4}") | ||||
| debian=("${debian_qt5}" "${debian_qt4}") | ||||
| distros=(${distros:-"${ubuntu[@]}" "${debian[@]}"}) | ||||
|  | ||||
| @@ -52,9 +55,14 @@ packages_qt4="libqt4-core libqt4-designer libqt4-dev libqt4-webkit qt4-dev-tools | ||||
| packages_base="apt-transport-https automake autotools-dev binutils-dev debhelper default-jdk-headless doxygen dpkg-dev g++ git graphviz libboost-thread-dev libcppunit-dev liblog4cxx-dev libpcsclite-dev libpkcs11-helper1-dev libproxy-dev libssl-dev libtool libz-dev lsb-release mscgen nodejs pandoc pkg-config software-properties-common subversion subversion-tools texinfo xvfb" | ||||
| #package_not_in_yakkety="default-jdk-headless" | ||||
| package_not_in_wily="default-jdk-headless" | ||||
| package_not_in_vivid="default-jdk-headless liblog4cxx-dev" | ||||
| package_not_in_trusty="default-jdk-headless liblog4cxx-dev" | ||||
| package_not_in_jessie="default-jdk-headless liblog4cxx-dev" | ||||
| package_not_in_precise="default-jdk-headless liblog4cxx-dev" | ||||
| package_not_in_wheezy="default-jdk-headless liblog4cxx-dev nodejs" | ||||
|  | ||||
| if test -z "${packages[@]}"; then | ||||
|     packages=("${packages_base} ${packages_qt5}" "${packages_base} ${packages_qt5}" "${packages_base} ${packages_qt4}") | ||||
|     packages=("${packages_base} ${packages_qt5}" "${packages_base} ${packages_qt4}" "${packages_base} ${packages_qt5}" "${packages_base} ${packages_qt4}") | ||||
| fi | ||||
| if test -z "${index}" -a "${#distros[@]}" -ne "${#packages[@]}"; then | ||||
|     echo "**** ERROR: number of distribution lists doesn't match package lists" 1>&2 | ||||
| @@ -65,10 +73,12 @@ fi | ||||
|  | ||||
| fastmode=0; | ||||
| limit= | ||||
| arch= | ||||
| while [ $# -gt 0 ]; do | ||||
|     case "$1" in | ||||
|         (-f|--fastmode) fastmode=1;; | ||||
|         (-l|--limit) shift; limit=$1;; | ||||
|         (-a|--arch) shift; arch=$1;; | ||||
|         (*) | ||||
|             echo "**** ERROR: unknown option $1" 1>&2 | ||||
|             exit 1;; | ||||
| @@ -108,7 +118,10 @@ for ((i=0; i<${#distros[@]}; ++i)); do | ||||
|         else | ||||
|             type="debian" | ||||
|         fi | ||||
|         for arch in ${archs}; do | ||||
|         for arch in ${arch:-$archs}; do | ||||
|             if [[ "${distro}-${arch}" = "$excludes" ]]; then | ||||
|                 continue; | ||||
|             fi | ||||
|             trap 'error "${LINENO}" "${tmpdir}" "${disto}" "${arch}"' ERR SIGINT | ||||
|             echo "******** process $type $distro $arch ********" 1>&2 | ||||
|             if test -d "${tmpdir}/${distro}-${arch}"; then | ||||
| @@ -135,9 +148,9 @@ for ((i=0; i<${#distros[@]}; ++i)); do | ||||
|                     echo " ----    install on $qemu ${tmpdir}/${distro}-${arch}" 1>&2 | ||||
|                     sudo debootstrap --foreign --arch="$arch" "$distro" "${tmpdir}/${distro}-${arch}" | ||||
|                     sudo cp /usr/bin/qemu-${qemu}-static "${tmpdir}/${distro}-${arch}/usr/bin/qemu-${qemu}-static" | ||||
|                     sudo DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true LC_ALL=C LANGUAGE=C LANG=C chroot "${tmpdir}/${distro}-${arch}" /debootstrap/debootstrap --second-stage || \ | ||||
|                         sudo chroot "${tmpdir}/${distro}-${arch}" apt-get -o Acquire::ForceIPv4=true -y -f install && \ | ||||
|                             sudo DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true LC_ALL=C LANGUAGE=C LANG=C chroot "${tmpdir}/${distro}-${arch}" /debootstrap/debootstrap --second-stage | ||||
|                     if test -f "${tmpdir}/${distro}-${arch}"/debootstrap/debootstrap; then | ||||
|                         ls -l "${tmpdir}/${distro}-${arch}"/debootstrap/debootstrap | ||||
|                     fi | ||||
|                     sudo DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true LC_ALL=C LANGUAGE=C LANG=C chroot "${tmpdir}/${distro}-${arch}" dpkg --configure -a | ||||
|                 fi | ||||
|             fi | ||||
| @@ -183,10 +196,10 @@ EOF1 | ||||
|             sudo chroot "${tmpdir}/${distro}-${arch}" apt-get -o Acquire::ForceIPv4=true -y upgrade | ||||
|             sudo chroot "${tmpdir}/${distro}-${arch}" apt-get -o Acquire::ForceIPv4=true install -y python-software-properties software-properties-common || \ | ||||
|                 sudo chroot "${tmpdir}/${distro}-${arch}" apt-get -o Acquire::ForceIPv4=true install -y software-properties-common | ||||
|             if test "${distro}" != "jessie" -a "${distro}" != "sid"; then | ||||
|             if [[ "${distro}" = "${no_universe}" ]]; then | ||||
|                 sudo chroot "${tmpdir}/${distro}-${arch}" add-apt-repository universe || \ | ||||
|                     ( test "$type" != "debian" && \ | ||||
|                       sudo chroot "${tmpdir}/${distro}-${arch}" add-apt-repository "deb http://archive.ubuntu.com/ubuntu ${distro} universe" ) | ||||
|                             sudo chroot "${tmpdir}/${distro}-${arch}" add-apt-repository "deb http://archive.ubuntu.com/ubuntu ${distro} universe" ) | ||||
|             fi | ||||
|             sudo chroot "${tmpdir}/${distro}-${arch}" apt-get -o Acquire::ForceIPv4=true update | ||||
|             sudo chroot "${tmpdir}/${distro}-${arch}" apt-get -o Acquire::ForceIPv4=true -y dist-upgrade | ||||
|   | ||||
		Reference in New Issue
	
	Block a user