diff --git a/COPYING b/COPYING index 88798ab..caeca07 120000 --- a/COPYING +++ b/COPYING @@ -1 +1 @@ -/usr/share/automake-1.15/COPYING \ No newline at end of file +/usr/share/automake-1.14/COPYING \ No newline at end of file diff --git a/ChangeLog b/ChangeLog index f4f5662..d848fb1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,19 @@ +2017-03-17 07:05 + + * [r110] nodejs/public/javascripts/safechat.js, + nodejs/sockets/index.js, nodejs/views/index.ejs: + logging for tests + +2017-03-16 07:10 + + * [r109] ChangeLog, ax_init_standard_project.m4, bootstrap.sh, + build-in-docker.conf, configure.ac, debian, + debian/changelog.in[ADD], debian/compat[ADD], + debian/control.in[ADD], debian/docs[ADD], debian/rules[ADD], + nodejs/routes/index.js, nodejs/views/index.ejs, + resolve-debbuilddeps.sh: + updated build system + 2017-03-03 14:09 * [r108] ChangeLog, nodejs/makefile.am: diff --git a/INSTALL b/INSTALL index ddcdb76..f812f5a 120000 --- a/INSTALL +++ b/INSTALL @@ -1 +1 @@ -/usr/share/automake-1.15/INSTALL \ No newline at end of file +/usr/share/automake-1.14/INSTALL \ No newline at end of file diff --git a/ax_check_qt.m4 b/ax_check_qt.m4 index af3a238..7ba286f 100644 --- a/ax_check_qt.m4 +++ b/ax_check_qt.m4 @@ -51,18 +51,33 @@ AC_DEFUN([AX_CXX_QT_TOOL], [ PKG_PROG_PKG_CONFIG - if test -z "$HAVE_$1"; then + if test -z "${HAVE_$1}"; then HAVE_$1=1 AC_MSG_CHECKING([for $2]) AC_ARG_VAR([$1], [path to Qt tool $2]) - $1=${$1:-$(${PKG_CONFIG} --variable=$2_location Qt5Core)} - $1=${$1:-$(${PKG_CONFIG} --variable=host_bins Qt5Core)/$2-qt5} - $1=${$1:-$(${PKG_CONFIG} --variable=host_bins Qt5Core)/$2} - $1=${$1:-$(${PKG_CONFIG} --variable=$2_location QtCore)} - $1=${$1:-$(${PKG_CONFIG} --variable=host_bins QtCore)/$2} - $1=${$1:-$(${PKG_CONFIG} --variable=host_bins QtCore)/$2-qt4} - if ! which "${$1%% *}" > /dev/null; then - if which "$2-qt5" > /dev/null; then + for package in Qt5Core QtCore; do + if test -x "${$1}"; then + break + fi + tool=$(${PKG_CONFIG} --variable=$2_location $package 2> /dev/null) + if test -x "${tool}"; then + $1="${tool}" + break + fi + tool=$(${PKG_CONFIG} --variable=host_bins $package 2> /dev/null) + if test -n "$tool"; then + for name in $2 $2-qt5 $2-qt4; do + if test -x "${tool}/${name}"; then + $1="${tool}/${name}" + break + fi + done + fi + done + if ! test -x "${$1}"; then + if which "$2" > /dev/null; then + $1=$2 + elif which "$2-qt5" > /dev/null; then $1=$2-qt5 elif which "$2" > /dev/null; then $1=$2 @@ -70,15 +85,15 @@ AC_DEFUN([AX_CXX_QT_TOOL], [ $1=$2-qt4 else HAVE_$1=0 - $1="" + unset $1 fi fi AC_SUBST($1) AM_CONDITIONAL(HAVE_$1, test $HAVE_[$1] -eq 1) if test $HAVE_$1 -eq 1; then - AC_MSG_RESULT([$$1]) + AC_MSG_RESULT([$$1]) else - AC_MSG_RESULT([not found]) + AC_MSG_RESULT([not found]) fi fi ]) diff --git a/ax_init_standard_project.m4 b/ax_init_standard_project.m4 index ebe8831..8235bf6 100644 --- a/ax_init_standard_project.m4 +++ b/ax_init_standard_project.m4 @@ -13,12 +13,12 @@ m4_define(x_least, m4_ifdef([x_least_fix], [x_least_fix], mrw_esyscmd_s([ VCS_REVISION="ERROR-UNDEFINED-REVISION-to-be-built-in-subdirectory-of-checkout" for path in . .. ../.. ../../..; do - if test -d .svn; then - svn upgrade 1>&2 > /dev/null || true + if test -d ${path}/.svn; then + (cd $path; svn upgrade 1>&2 > /dev/null || true) VCS_REVISION=$(LANG= svn info $path | sed -n 's/Last Changed Rev: //p') if test -n "${VCS_REVISION}"; then break; fi - elif test -d .git; then - VCS_REVISION=$(git rev-list --all --count) + elif test -d ${path}/.git; then + VCS_REVISION=$(cd ${path} > /dev/null 2/dev/null; git rev-list --all --count) if test -n "${VCS_REVISION}"; then break; fi fi done @@ -26,12 +26,12 @@ m4_define(x_least, m4_ifdef([x_least_fix], [x_least_fix], ]), mrw_esyscmd_s([ VCS_REVISION="ERROR-UNDEFINED-REVISION-to-be-built-in-subdirectory-of-checkout" for path in . .. ../.. ../../..; do - if test -d .svn; then - svn upgrade 1>&2 > /dev/null || true + if test -d ${path}/.svn; then + (cd $path; svn upgrade 1>&2 > /dev/null || true) VCS_REVISION=$(LANG= svn info $path | sed -n 's/Last Changed Rev: //p') if test -n "${VCS_REVISION}"; then break; fi - elif test -d .git; then - VCS_REVISION=$(git rev-list --all --count) + elif test -d ${path}/.git; then + VCS_REVISION=$(cd ${path} > /dev/null 2/dev/null; git rev-list --all --count) if test -n "${VCS_REVISION}"; then break; fi fi done @@ -44,12 +44,12 @@ m4_define(x_least, m4_ifdef([x_least_fix], [x_least_fix], m4_define(x_minor_diff, m4_ifdef([x_least_fix], 0, mrw_esyscmd_s([ VCS_REVISION="ERROR-UNDEFINED-REVISION-to-be-built-in-subdirectory-of-checkout" for path in . .. ../.. ../../..; do - if test -d .svn; then - svn upgrade 1>&2 > /dev/null || true + if test -d ${path}/.svn; then + (cd $path; svn upgrade 1>&2 > /dev/null || true) VCS_REVISION=$(LANG= svn info $path | sed -n 's/Last Changed Rev: //p') if test -n "${VCS_REVISION}"; then break; fi - elif test -d .git; then - VCS_REVISION=$(git rev-list --all --count) + elif test -d ${path}/.git; then + VCS_REVISION=$(cd ${path} > /dev/null 2/dev/null; git rev-list --all --count) if test -n "${VCS_REVISION}"; then break; fi fi; done @@ -570,7 +570,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 + ./rpmsign.exp "\${PACKAGER}" "\{PASSWORD}" RPMS/*/*.rpm SRPMS/*.rpm clean-rpm-targets: -rm -rf BUILD BUILDROOT RPMS SPECS SRPMS distclean-rpm-targets: @@ -802,6 +802,120 @@ AC_DEFUN([AX_PKG_REQUIRE], [ AC_MSG_ERROR([Feature $1 not found please install module $secondpar]) fi fi + AX_DEB_DEPEND([${$1_found}]) + AX_RPM_DEPEND([${$1_found}]) + [$1]_CPPFLAGS="${$1_CFLAGS}" + [$1]_CXXFLAGS="${$1_CFLAGS}" + AC_SUBST([$1]_CPPFLAGS) + AC_SUBST([$1]_CXXFLAGS) + if test "${optional_flags/manualflags/}" = "${optional_flags}"; then + CPPFLAGS+=" ${$1_CPPFLAGS}" + CXXFLAGS+=" ${$1_CXXFLAGS}" + LIBS+=" ${$1_LIBS}" + AC_MSG_NOTICE([Adding flags for $1]) + else + AC_MSG_NOTICE([To enable $1, add $1_CPPFLAGS, $1_CXXFLAGS and $1_LIBS]) + fi +]) + +# require a specific development package, with fallback: test for a header +# - parameter: +# $1 = unique id (no special characters) +# $2 = module name (optional, if different from id) +# $3 = a header file to find (optional) +# $4 = alternative module names (space separated, optional) +# $5 = optional flags: +# manualflags if CXXFLAGS, CPPFLAGS, LIBS should remain unchanged +# +# uses PKG_CHECK_MODULES to test for a module +# then, if given, looks for the header file +# if header file is not found, searches in alternative modules +# sets all flags, so that the module can be used everywhere +# fails if not found +AC_DEFUN([AX_PKG_REQUIRE_DEV], [ + PKG_PROG_PKG_CONFIG + optional_flags="$5" + $1_found=no + secondpar="m4_default([$2], [$1])" + PKG_CHECK_MODULES([$1], [m4_default([$2], [$1])], [ + $1_found=$secondpar + PKG_REQUIREMENTS+=" $secondpar" + ], [ + if test -n "$4"; then + AC_MSG_WARN([Recommended package $secondpar for feature $1 not installed, trying $4]) + for pkg in $4; do + PKG_CHECK_MODULES([$1], [$pkg], [ + PKG_REQUIREMENTS+=" $pkg" + $1_found=$pkg + break; + ], [ + AC_MSG_WARN([Recommended package $pkg for feature $1 not installed]) + ]) + done + fi + ]) + AC_SUBST(CPPFLAGS) + AC_SUBST(CXXFLAGS) + AC_SUBST(PKG_REQUIREMENTS) + if test -n "$3"; then + if test "${$1_found}" = "no"; then + tmp_package="yes" + else + tmp_package=${$1_found} + fi + $1_found=no + old_CPPFLAGS=${CPPFLAGS} + CPPFLAGS=" ${$1_CFLAGS} ${CPPFLAGS}" + AC_CHECK_HEADER([$3], [ + $1_found=${tmp_package} + ], [ + for x in ${$1_CFLAGS}; do + AC_MSG_NOTICE([search for $3 in ${x[#]-I}]) + for f in $(find ${x[#]-I} -name "$3" 2> /dev/null); do + if test -f "$f"; then + $1_found=${tmp_package} + $1_CFLAGS+=" -I${f%/*}" + AC_MSG_NOTICE([added path ${f%/*}]) + break; + fi + done + if test "${$1_found}" != "no"; then + break; + fi + done + if test "${$1_found}" = "no"; then + tmp_includedir=$(${PKG_CONFIG} --variable=includedir $tmp_package) + for x in ${tmp_includedir}; do + AC_MSG_NOTICE([search for $3 in $x]) + for f in $(find ${x} -name "$3" 2> /dev/null); do + if test -f "$f"; then + $1_found=${tmp_package} + $1_CFLAGS+=" -I${f%/*}" + AC_MSG_NOTICE([added path ${f%/*}]) + break; + fi + done + if test "${$1_found}" != "no"; then + break; + fi + done + fi + ]) + CPPFLAGS=${old_CPPFLAGS} + fi + if test "${$1_found}" = "no"; then + if test -n "$3"; then + if test -n "$4"; then + AC_MSG_ERROR([Feature $1 not found, need header $3 in modules $secondpar or $4]) + else + AC_MSG_ERROR([Feature $1 not found, need header $3 in module $secondpar]) + fi + else + AC_MSG_ERROR([Feature $1 not found please install module $secondpar]) + fi + fi + AX_DEB_BUILD_DEPEND([${$1_found}-dev]) + AX_RPM_BUILD_DEPEND([${$1_found}-devel]) [$1]_CPPFLAGS="${$1_CFLAGS}" [$1]_CXXFLAGS="${$1_CFLAGS}" AC_SUBST([$1]_CPPFLAGS) @@ -851,6 +965,52 @@ AC_DEFUN([AX_PKG_CHECK], [ ], [ HAVE_$1=0 ]) + AX_DEB_BUILD_DEPEND(m4_default([$2], [$1])) + AX_RPM_BUILD_DEPEND(m4_default([$2], [$1])) + AM_CONDITIONAL(HAVE_$1, test $HAVE_[$1] -eq 1) + AC_SUBST(HAVE_$1) + AC_SUBST(CPPFLAGS) + AC_SUBST(CXXFLAGS) + AC_SUBST(PKG_REQUIREMENTS) +]) + +# check if a specific development package exists +# - parameter: +# $1 = unique id (no special characters) +# $2 = module name (optional, if different from id) +# $3 = optional flags: +# manualflags if CXXFLAGS, CPPFLAGS, LIBS should remain unchanged +# +# uses PKG_CHECK_MODULES to test for a module +# sets automake conditional HAVE_$1 to 0 (not found) or 1 (found) +# sets all flags, so that the module can be used everywhere +AC_DEFUN([AX_PKG_CHECK_DEV], [ + optional_flags="$3" + PKG_PROG_PKG_CONFIG + PKG_CHECK_MODULES([$1], [m4_default([$2], [$1])], [ + HAVE_$1=1 + [$1]_CPPFLAGS="${$1_CFLAGS}" + [$1]_CXXFLAGS="${$1_CFLAGS}" + AC_SUBST([$1]_CPPFLAGS) + AC_SUBST([$1]_CXXFLAGS) + if test "${optional_flags/manualflags/}" = "${optional_flags}"; then + CPPFLAGS+=" ${$1_CPPFLAGS}" + CXXFLAGS+=" ${$1_CXXFLAGS}" + LIBS+=" ${$1_LIBS}" + AC_MSG_NOTICE([Adding flags for $1]) + else + AC_MSG_NOTICE([To enable $1, add $1_CPPFLAGS, $1_CXXFLAGS and $1_LIBS]) + fi + if test -z "$PKG_REQUIREMENTS"; then + PKG_REQUIREMENTS="m4_default([$2], [$1])" + else + PKG_REQUIREMENTS="${PKG_REQUIREMENTS}, m4_default([$2], [$1])" + fi + ], [ + HAVE_$1=0 + ]) + AX_DEB_BUILD_DEPEND(m4_default([$2], [$1])-dev) + AX_RPM_BUILD_DEPEND(m4_default([$2], [$1])-devel) AM_CONDITIONAL(HAVE_$1, test $HAVE_[$1] -eq 1) AC_SUBST(HAVE_$1) AC_SUBST(CPPFLAGS) @@ -1018,3 +1178,125 @@ AC_DEFUN([AX_DEB_RESOLVE], [ AC_SUBST(DEB_SECTION) AC_SUBST(DEB_DEPEND_IFEXISTS) ]) + +# Check if a package exists in the current distribution, if yes, require it +# in .spec.in append @RPM_DEPEND_IFEXISTS@ to Build-Depends +# - parameter: +# $1 = package name +AC_DEFUN([AX_RPM_DEPEND_IFEXISTS], [ + pkg="$1" + + if (test -x /usr/bin/zypper && zypper search -x "$pkg" 1>&2 > /dev/null) || \ + (test -x /usr/bin/dnf && dnf list -q "$pkg" 1>&2 > /dev/null) || \ + (test -x /usr/bin/yum && yum list -q "$pkg" 1>&2 > /dev/null) || \ + (test -x /usr/sbin/urpmq && urpmq "$pkg" 1>&2 > /dev/null); then + RPM_DEPEND_IFEXISTS="${RPM_DEPEND_IFEXISTS}, ${pkg}" + fi +]) + +# require package in .spec.in append @RPM_BUILD_DEPEND@ to Build-Depends +# - parameter: +# $1 = package name +AC_DEFUN([AX_RPM_BUILD_DEPEND], [ + pkg="$1" + RPM_BUILD_DEPEND="${RPM_BUILD_DEPEND}, ${pkg}" +]) + +# require package in .spec.in append @RPM_DEPEND@ to Depends +# - parameter: +# $1 = package name +AC_DEFUN([AX_RPM_DEPEND], [ + pkg="$1" + if test -z "${RPM_DEPEND}"; then + RPM_DEPEND="${pkg}" + else + RPM_DEPEND="${RPM_DEPEND}, ${pkg}" + fi +]) + +# require package in debian/control.in append @DEB_DEPEND@ to Depends +# - parameter: +# $1 = package name +AC_DEFUN([AX_RPM_GROUP], [ + pkg="$1" + RPM_GROUP="${pkg}" +]) + +# call after setting rpmian dependencies +AC_DEFUN([AX_RPM_RESOLVE], [ + AC_SUBST(RPM_BUILD_DEPEND) + AC_SUBST(RPM_DEPEND) + AC_SUBST(RPM_GROUP) + AC_SUBST(RPM_DEPEND_IFEXISTS) +]) + +# Check if a package exists in the current distribution, if yes, require it +# in .spec.in append @ALL_DEPEND_IFEXISTS@ to Build-Depends +# - parameter: +# $1 = package name +AC_DEFUN([AX_ALL_DEPEND_IFEXISTS], [ + pkg="$1" + if test -n "$(apt-cache policy -q ${pkg} 2> /dev/null)"; then + DEB_DEPEND_IFEXISTS="${DEB_DEPEND_IFEXISTS}, ${pkg}" + fi + if (test -x /usr/bin/zypper && zypper search -x "$pkg" 1>&2 > /dev/null) || \ + (test -x /usr/bin/dnf && dnf list -q "$pkg" 1>&2 > /dev/null) || \ + (test -x /usr/bin/yum && yum list -q "$pkg" 1>&2 > /dev/null) || \ + (test -x /usr/sbin/urpmq && urpmq "$pkg" 1>&2 > /dev/null); then + RPM_DEPEND_IFEXISTS="${RPM_DEPEND_IFEXISTS}, ${pkg}" + fi +]) + +# Check if a package exists in the current distribution, if yes, require it +# in .spec.in append @ALL_DEPEND_IFEXISTS@ to Build-Depends +# - parameter: +# $1 = package name +AC_DEFUN([AX_ALL_DEPEND_IFEXISTS_DEV], [ + pkg="$1" + if test -n "$(apt-cache policy -q ${pkg}-dev 2> /dev/null)"; then + DEB_DEPEND_IFEXISTS="${DEB_DEPEND_IFEXISTS}, ${pkg}-dev" + fi + if (test -x /usr/bin/zypper && zypper search -x "$pkg"-devel 1>&2 > /dev/null) || \ + (test -x /usr/bin/dnf && dnf list -q "$pkg"-devel 1>&2 > /dev/null) || \ + (test -x /usr/bin/yum && yum list -q "$pkg"-devel 1>&2 > /dev/null) || \ + (test -x /usr/sbin/urpmq && urpmq "$pkg"-devel 1>&2 > /dev/null); then + RPM_DEPEND_IFEXISTS="${RPM_DEPEND_IFEXISTS}, ${pkg}-devel" + fi +]) + +# require package in .spec.in append @ALL_BUILD_DEPEND@ to Build-Depends +# - parameter: +# $1 = package name +AC_DEFUN([AX_ALL_BUILD_DEPEND], [ + pkg="$1" + DEB_BUILD_DEPEND="${DEB_BUILD_DEPEND}, ${pkg}" + RPM_BUILD_DEPEND="${RPM_BUILD_DEPEND}, ${pkg}" +]) + +# require package in .spec.in append @ALL_BUILD_DEPEND@ to Build-Depends +# - parameter: +# $1 = package name +AC_DEFUN([AX_ALL_BUILD_DEPEND_DEV], [ + pkg="$1" + DEB_BUILD_DEPEND="${DEB_BUILD_DEPEND}, ${pkg}-dev" + RPM_BUILD_DEPEND="${RPM_BUILD_DEPEND}, ${pkg}-devel" +]) + +# require package in .spec.in append @ALL_DEPEND@ to Depends +# - parameter: +# $1 = package name +AC_DEFUN([AX_ALL_DEPEND], [ + pkg="$1" + DEB_DEPEND="${DEB_DEPEND}, ${pkg}" + if test -z "${RPM_DEPEND}"; then + RPM_DEPEND="${pkg}" + else + RPM_DEPEND="${RPM_DEPEND}, ${pkg}" + fi +]) + +AC_DEFUN([AX_OUTPUT], [ + AX_DEB_RESOLVE + AX_RPM_RESOLVE + AC_OUTPUT +]) diff --git a/bootstrap.sh b/bootstrap.sh index 4f6ca02..d3ed892 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -134,6 +134,7 @@ GENERATED FILES * resolve-rpmbuilddeps.sh - script to install RPM package dependencies * build-in-docker.sh - script to build the project encapsulated in a docker container * build-in-docker.conf - additional configuration for build-in-docker.sh + * rpmsign.exp - script for signing rpms unattended * build-resource-file.sh - build resource.qrc file from a resource directory * sql-to-dot.sed - script to convert SQL schema files to graphviz dot in doxygen * mac-create-app-bundle.sh - script to create apple mac os-x app-bundle @@ -302,17 +303,22 @@ done echo -en "\e[1m-> checking:\e[0m for version control system ..." VCS="" VCSDEPENDS="" -if test -d .svn; then - VCS="svn" - 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_DEB="git2cl, git," - VCSDEPENDS_RPM="git," - echo -e " \e[32msuccess\e[0m detected ${VCS}" -else +for path in . .. ../.. ../../..; do + if test -d ${path}/.svn; then + VCS="svn" + VCSDEPENDS_DEB="svn2cl, subversion, subversion-tools," + VCSDEPENDS_RPM="subversion," + echo -e " \e[32msuccess\e[0m detected ${VCS}" + break + elif test -d ${path}/.git; then + VCS="git" + VCSDEPENDS_DEB="git2cl, git," + VCSDEPENDS_RPM="git," + echo -e " \e[32msuccess\e[0m detected ${VCS}" + break + fi +done +if test -z "$VCS"; then echo -e " \e[33mignored\e[0m" fi @@ -375,7 +381,7 @@ run() { testtag() { local IFS="|" - egrep -q '^ *'"($*)" configure.ac + egrep -q '^ *'"($*)"' *(\(.*)? *$' configure.ac } contains() { @@ -539,6 +545,7 @@ copy makefile_test.inc.am copy resolve-debbuilddeps.sh copy resolve-rpmbuilddeps.sh copy build-in-docker.sh +copy rpmsign.exp copy build-resource-file.sh copy sql-to-dot.sed copy mac-create-app-bundle.sh @@ -592,7 +599,7 @@ AX_INIT_STANDARD_PROJECT #AX_QT_NO_KEYWORDS # create output -AC_OUTPUT +AX_OUTPUT EOF PACKAGE_NAME=$(sed -n 's/.*m4_define *( *x_package_name *, *\([^ ]*\) *).*/\1/p' configure.ac) @@ -632,7 +639,7 @@ LANGUAGE_FILE_BASE = ${PACKAGE_NAME} QT_PLUGINS = iconengines imageformats platforms #### enable if you deliver a KDE/Gnome desktop file -#applicationsdir = ${datarootdir}/applications +#applicationsdir = \${datarootdir}/applications #dist_applications_DATA = ${PACKAGE_NAME}.desktop #### enable (ev. instead of bin_PROGRAMS) if you build a library @@ -669,25 +676,26 @@ ${PACKAGE_NAME//-/_}_TR_FILES = main.cxx version.cxx ${PACKAGE_NAME//-/_}_SOURCES = \${${PACKAGE_NAME//-/_}_TR_FILES} \${BUILT_SOURCES} ## automatic assembly, no need to change -BUILT_SOURCES = \${${PACKAGE_NAME//-/_}_MOCFILES} \ - \${${PACKAGE_NAME//-/_}_UIFILES} \ - \${${PACKAGE_NAME//-/_}_TRANSLATIONS} \ +BUILT_SOURCES = \${${PACKAGE_NAME//-/_}_MOCFILES} \\ + \${${PACKAGE_NAME//-/_}_UIFILES} \\ + \${${PACKAGE_NAME//-/_}_TRANSLATIONS} \\ \${${PACKAGE_NAME//-/_}_RESOURCES} ## automatic assembly, no need to change -EXTRA_DIST_TR = \${${PACKAGE_NAME//-/_}_MOCFILES:moc_%.cxx=%.hxx} \ +EXTRA_DIST_TR = \${${PACKAGE_NAME//-/_}_MOCFILES:moc_%.cxx=%.hxx} \\ \${${PACKAGE_NAME//-/_}_UIFILES:ui_%.hxx=%.ui} ## automatic assembly, no need to change ## except: adapt the pre-delivered qt_%.qm list (language files you copy from qt -EXTRA_DIST = \${EXTRA_DIST_TR} \ - \${${PACKAGE_NAME//-/_}_RESOURCES:qrc_%.cxx:%.qrc} \ - \${${PACKAGE_NAME//-/_}_TRANSLATIONS:%.qm=%.ts} \ +EXTRA_DIST = \${EXTRA_DIST_TR} \\ + \${${PACKAGE_NAME//-/_}_RESOURCES:qrc_%.cxx=%.qrc} \\ + \${${PACKAGE_NAME//-/_}_TRANSLATIONS:%.qm=%.ts} \\ qt_de.qm qt_fr.qm ## automatic assembly, no need to change LANGUAGE_FILES = \${EXTRA_DIST_TR} \${${PACKAGE_NAME//-/_}_TR_FILES} +CLEANFILES = \${${PACKAGE_NAME//-/_}_RESOURCES} MAINTAINERCLEANFILES = makefile.in EOF to --condition AX_USE_CXX src/main.cxx <&2 exit 1 @@ -231,7 +236,7 @@ if ! docker exec ${DOCKER_ID} getent passwd $(id -u) > /dev/null 2>&1; then fi docker exec ${DOCKER_ID} chown $(id -u):$(id -g) "${HOME}" case $mode in - (deb|apt) + (deb|apt|win) if [[ "${img}" =~ "ubuntu" ]]; then docker exec ${DOCKER_ID} locale-gen ${LANG} docker exec ${DOCKER_ID} update-locale LANG=${LANG} @@ -277,7 +282,12 @@ gpgcheck=0 EOF fi 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 + if test "$INSTALL_TOOL" = "urpmi --auto"; then + LSB_RELEASE=lsb-release + else + LSB_RELEASE=/usr/bin/lsb_release + fi + docker exec ${DOCKER_ID} ${INSTALL_TOOL} rpm-build automake libtool subversion gcc-c++ pkgconfig wget $LSB_RELEASE i=0 for key in "${keys[@]}"; do wget -Orpm-key "$key" @@ -291,14 +301,10 @@ EOF 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}" ${host} ${flags[@]} +FLAGS=() +for f in "${flags[@]}"; do + FLAGS+=($(ifthenelse "$f" "echo 'ARG'")) +done + +docker exec -u $(id -u):$(id -g) ${DOCKER_ID} ./bootstrap.sh -t "${targets}" ${host} "${FLAGS[@]}" diff --git a/configure.ac b/configure.ac index 80e74d4..745380e 100644 --- a/configure.ac +++ b/configure.ac @@ -21,7 +21,7 @@ SOURCE_DOWNLOAD="https://dev.marc.waeckerlin.org/repository/sources/safechat/" # requirements, uncomment, what you need: #AX_USE_CXX #AX_USE_LIBTOOL -AX_USE_SCRIPTS +#AX_USE_SCRIPTS AX_USE_DOXYGEN AX_USE_DEBIAN_PACKAGING #AX_BUILD_HTML diff --git a/doc/doxyfile.in b/doc/doxyfile.in index 0e40330..225a479 100644 --- a/doc/doxyfile.in +++ b/doc/doxyfile.in @@ -1,4 +1,4 @@ -# Doxyfile 1.8.11 +# Doxyfile 1.8.6 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. @@ -46,10 +46,10 @@ PROJECT_NUMBER = @PACKAGE_VERSION@ PROJECT_BRIEF = @DESCRIPTION@ -# With the PROJECT_LOGO tag one can specify a logo or an icon that is included -# in the documentation. The maximum height of the logo should not exceed 55 -# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy -# the logo to the output directory. +# With the PROJECT_LOGO tag one can specify an logo or icon that is included in +# the documentation. The maximum height of the logo should not exceed 55 pixels +# and the maximum width should not exceed 200 pixels. Doxygen will copy the logo +# to the output directory. PROJECT_LOGO = @top_srcdir@/@PACKAGE_LOGO@ @@ -60,7 +60,7 @@ PROJECT_LOGO = @top_srcdir@/@PACKAGE_LOGO@ OUTPUT_DIRECTORY = -# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub- # directories (in 2 levels) under the output directory of each output format and # will distribute the generated files over these directories. Enabling this # option can be useful when feeding doxygen a huge amount of source files, where @@ -70,14 +70,6 @@ OUTPUT_DIRECTORY = CREATE_SUBDIRS = NO -# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII -# characters to appear in the names of generated files. If set to NO, non-ASCII -# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode -# U+3044. -# The default value is: NO. - -ALLOW_UNICODE_NAMES = NO - # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. @@ -93,14 +85,14 @@ ALLOW_UNICODE_NAMES = NO OUTPUT_LANGUAGE = English -# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member +# If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member # descriptions after the members that are listed in the file and class # documentation (similar to Javadoc). Set to NO to disable this. # The default value is: YES. BRIEF_MEMBER_DESC = YES -# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief +# If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief # description of a member or function before the detailed description # # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the @@ -135,7 +127,7 @@ ALWAYS_DETAILED_SEC = NO INLINE_INHERITED_MEMB = YES -# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path +# If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path # before files name in the file list and in the header files. If set to NO the # shortest path that makes the file name unique will be used # The default value is: YES. @@ -205,9 +197,9 @@ MULTILINE_CPP_IS_BRIEF = YES INHERIT_DOCS = YES -# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new -# page for each member. If set to NO, the documentation of a member will be part -# of the file/class/namespace that contains it. +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a +# new page for each member. If set to NO, the documentation of a member will be +# part of the file/class/namespace that contains it. # The default value is: NO. SEPARATE_MEMBER_PAGES = NO @@ -278,14 +270,11 @@ OPTIMIZE_OUTPUT_VHDL = NO # extension. Doxygen has a built-in mapping, but you can override or extend it # using this tag. The format is ext=language, where ext is a file extension, and # language is one of the parsers supported by doxygen: IDL, Java, Javascript, -# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: -# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: -# Fortran. In the later case the parser tries to guess whether the code is fixed -# or free formatted code, this is the default for Fortran type files), VHDL. For -# instance to make doxygen treat .inc files as Fortran files (default is PHP), -# and .f files as C (default is Fortran), use: inc=Fortran f=C. +# C#, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL. For instance to make +# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C +# (default is Fortran), use: inc=Fortran f=C. # -# Note: For files without extension you can use no_extension as a placeholder. +# Note For files without extension you can use no_extension as a placeholder. # # Note that for custom extensions you also need to set FILE_PATTERNS otherwise # the files are not read by doxygen. @@ -304,8 +293,8 @@ MARKDOWN_SUPPORT = YES # When enabled doxygen tries to link words that correspond to documented # classes, or namespaces to their corresponding documentation. Such a link can -# be prevented in individual cases by putting a % sign in front of the word or -# globally by setting AUTOLINK_SUPPORT to NO. +# be prevented in individual cases by by putting a % sign in front of the word +# or globally by setting AUTOLINK_SUPPORT to NO. # The default value is: YES. AUTOLINK_SUPPORT = YES @@ -345,20 +334,13 @@ SIP_SUPPORT = NO IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES then doxygen will reuse the documentation of the first +# tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. # The default value is: NO. DISTRIBUTE_GROUP_DOC = YES -# If one adds a struct or class to a group and this option is enabled, then also -# any nested class or struct is added to the same group. By default this option -# is disabled and one has to add nested compounds explicitly via \ingroup. -# The default value is: NO. - -GROUP_NESTED_COMPOUNDS = NO - # Set the SUBGROUPING tag to YES to allow class member groups of the same type # (for instance a group of public functions) to be put as a subgroup of that # type (e.g. under the Public Functions section). Set it to NO to prevent @@ -417,7 +399,7 @@ LOOKUP_CACHE_SIZE = 0 # Build related configuration options #--------------------------------------------------------------------------- -# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. Private # class members and static file members will be hidden unless the # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. @@ -427,35 +409,35 @@ LOOKUP_CACHE_SIZE = 0 EXTRACT_ALL = YES -# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class will # be included in the documentation. # The default value is: NO. EXTRACT_PRIVATE = YES -# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal +# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal # scope will be included in the documentation. # The default value is: NO. EXTRACT_PACKAGE = YES -# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be +# If the EXTRACT_STATIC tag is set to YES all static members of a file will be # included in the documentation. # The default value is: NO. EXTRACT_STATIC = YES -# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined -# locally in source files will be included in the documentation. If set to NO, +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined +# locally in source files will be included in the documentation. If set to NO # only classes defined in header files are included. Does not have any effect # for Java sources. # The default value is: YES. EXTRACT_LOCAL_CLASSES = YES -# This flag is only useful for Objective-C code. If set to YES, local methods, +# This flag is only useful for Objective-C code. When set to YES local methods, # which are defined in the implementation section but not in the interface are -# included in the documentation. If set to NO, only methods in the interface are +# included in the documentation. If set to NO only methods in the interface are # included. # The default value is: NO. @@ -480,21 +462,21 @@ HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. If set -# to NO, these classes will be included in the various overviews. This option -# has no effect if EXTRACT_ALL is enabled. +# to NO these classes will be included in the various overviews. This option has +# no effect if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend -# (class|struct|union) declarations. If set to NO, these declarations will be +# (class|struct|union) declarations. If set to NO these declarations will be # included in the documentation. # The default value is: NO. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any -# documentation blocks found inside the body of a function. If set to NO, these +# documentation blocks found inside the body of a function. If set to NO these # blocks will be appended to the function's detailed documentation block. # The default value is: NO. @@ -508,7 +490,7 @@ HIDE_IN_BODY_DOCS = NO INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file -# names in lower-case letters. If set to YES, upper-case letters are also +# names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. @@ -517,19 +499,12 @@ INTERNAL_DOCS = NO CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with -# their full class and namespace scopes in the documentation. If set to YES, the +# their full class and namespace scopes in the documentation. If set to YES the # scope will be hidden. # The default value is: NO. HIDE_SCOPE_NAMES = NO -# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will -# append additional text to a page's title, such as Class Reference. If set to -# YES the compound reference will be hidden. -# The default value is: NO. - -HIDE_COMPOUND_REFERENCE= NO - # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of # the files that are included by a file in the documentation of that file. # The default value is: YES. @@ -557,14 +532,14 @@ INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the # (detailed) documentation of file and class members alphabetically by member -# name. If set to NO, the members will appear in declaration order. +# name. If set to NO the members will appear in declaration order. # The default value is: YES. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief # descriptions of file, namespace and class members alphabetically by member -# name. If set to NO, the members will appear in declaration order. Note that +# name. If set to NO the members will appear in declaration order. Note that # this will also influence the order of the classes in the class list. # The default value is: NO. @@ -609,25 +584,27 @@ SORT_BY_SCOPE_NAME = NO STRICT_PROTO_MATCHING = NO -# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo -# list. This list is created by putting \todo commands in the documentation. +# The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the +# todo list. This list is created by putting \todo commands in the +# documentation. # The default value is: YES. GENERATE_TODOLIST = YES -# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test -# list. This list is created by putting \test commands in the documentation. +# The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the +# test list. This list is created by putting \test commands in the +# documentation. # The default value is: YES. GENERATE_TESTLIST = YES -# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug +# The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug # list. This list is created by putting \bug commands in the documentation. # The default value is: YES. GENERATE_BUGLIST = YES -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) +# The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO) # the deprecated list. This list is created by putting \deprecated commands in # the documentation. # The default value is: YES. @@ -652,8 +629,8 @@ ENABLED_SECTIONS = MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated at -# the bottom of the documentation of classes and structs. If set to YES, the -# list will mention the files that were used to generate the documentation. +# the bottom of the documentation of classes and structs. If set to YES the list +# will mention the files that were used to generate the documentation. # The default value is: YES. SHOW_USED_FILES = YES @@ -701,7 +678,8 @@ LAYOUT_FILE = # to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. # For LaTeX the style of the bibliography can be controlled using # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the -# search path. See also \cite for info how to create references. +# search path. Do not use file names with spaces, bibtex cannot handle them. See +# also \cite for info how to create references. CITE_BIB_FILES = @@ -717,7 +695,7 @@ CITE_BIB_FILES = QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are -# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES +# generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES # this implies that the warnings are on. # # Tip: Turn warnings on while writing the documentation. @@ -725,7 +703,7 @@ QUIET = NO WARNINGS = YES -# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate +# If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag # will automatically be disabled. # The default value is: YES. @@ -742,18 +720,12 @@ WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that # are documented, but have no documentation for their parameters or return -# value. If set to NO, doxygen will only warn about wrong or incomplete -# parameter documentation, but not about the absence of documentation. +# value. If set to NO doxygen will only warn about wrong or incomplete parameter +# documentation, but not about the absence of documentation. # The default value is: NO. WARN_NO_PARAMDOC = NO -# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when -# a warning is encountered. -# The default value is: NO. - -WARN_AS_ERROR = NO - # The WARN_FORMAT tag determines the format of the warning messages that doxygen # can produce. The string should contain the $file, $line, and $text tags, which # will be replaced by the file and line number from which the warning originated @@ -777,13 +749,12 @@ WARN_LOGFILE = doxygen.errors # The INPUT tag is used to specify the files and/or directories that contain # documented source files. You may enter file names like myfile.cpp or # directories like /usr/src/myproject. Separate the files or directories with -# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING +# spaces. # Note: If this tag is empty the current directory is searched. INPUT = @top_srcdir@/src INPUT += @top_srcdir@/nodejs INPUT += @top_srcdir@/test -INPUT += @top_srcdir@/scripts # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses @@ -796,17 +767,12 @@ INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and -# *.h) to filter out the source-files in the directories. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# read by doxygen. -# -# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, -# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, -# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, -# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f, *.for, *.tcl, -# *.vhd, *.vhdl, *.ucf, *.qsf, *.as and *.js. +# *.h) to filter out the source-files in the directories. If left blank the +# following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii, +# *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, +# *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, +# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, +# *.qsf, *.as and *.js. FILE_PATTERNS = *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.idl *.ddl *.odl *.h *.hh *.hxx *.hpp *.h++ *.cs *.d *.php *.php4 *.php5 *.phtml *.inc *.m *.markdown *.md *.mm *.dox *.py *.f90 *.f *.for *.tcl *.vhd *.vhdl *.ucf *.qsf *.as *.js *.wt *.sql @@ -894,10 +860,6 @@ IMAGE_PATH = # Note that the filter must not add or remove lines; it is applied before the # code is scanned, but not when the output code is generated. If lines are added # or removed, the anchors will not be placed correctly. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. INPUT_FILTER = @@ -907,15 +869,11 @@ INPUT_FILTER = # (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how # filters are used. If the FILTER_PATTERNS tag is empty or if none of the # patterns match the file name, INPUT_FILTER is applied. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. FILTER_PATTERNS = *.wt=doxygen-webtester.sed *.sql=@top_srcdir@/sql-to-dot.sed # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will also be used to filter the input files that are used for +# INPUT_FILTER ) will also be used to filter the input files that are used for # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). # The default value is: NO. @@ -975,7 +933,7 @@ REFERENCED_BY_RELATION = NO REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set -# to YES then the hyperlinks from functions in REFERENCES_RELATION and +# to YES, then the hyperlinks from functions in REFERENCES_RELATION and # REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will # link to the documentation. # The default value is: YES. @@ -1022,25 +980,6 @@ USE_HTAGS = NO VERBATIM_HEADERS = YES -# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the -# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the -# cost of reduced performance. This can be particularly helpful with template -# rich C++ code for which doxygen's built-in parser lacks the necessary type -# information. -# Note: The availability of this option depends on whether or not doxygen was -# generated with the -Duse-libclang=ON option for CMake. -# The default value is: NO. - -CLANG_ASSISTED_PARSING = NO - -# If clang assisted parsing is enabled you can provide the compiler with command -# line options that you would normally use when invoking the compiler. Note that -# the include paths will already be set by doxygen for the files and directories -# specified with INPUT and INCLUDE_PATH. -# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. - -CLANG_OPTIONS = - #--------------------------------------------------------------------------- # Configuration options related to the alphabetical class index #--------------------------------------------------------------------------- @@ -1071,7 +1010,7 @@ IGNORE_PREFIX = # Configuration options related to the HTML output #--------------------------------------------------------------------------- -# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output +# If the GENERATE_HTML tag is set to YES doxygen will generate HTML output # The default value is: YES. GENERATE_HTML = YES @@ -1133,15 +1072,13 @@ HTML_FOOTER = footer.html HTML_STYLESHEET = -# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined -# cascading style sheets that are included after the standard style sheets +# The HTML_EXTRA_STYLESHEET tag can be used to specify an additional user- +# defined cascading style sheet that is included after the standard style sheets # created by doxygen. Using this option one can overrule certain style aspects. # This is preferred over using HTML_STYLESHEET since it does not replace the -# standard style sheet and is therefore more robust against future updates. -# Doxygen will copy the style sheet files to the output directory. -# Note: The order of the extra style sheet files is of importance (e.g. the last -# style sheet in the list overrules the setting of the previous ones in the -# list). For an example see the documentation. +# standard style sheet and is therefor more robust against future updates. +# Doxygen will copy the style sheet file to the output directory. For an example +# see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_STYLESHEET = style.css @@ -1157,7 +1094,7 @@ HTML_EXTRA_STYLESHEET = style.css HTML_EXTRA_FILES = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen -# will adjust the colors in the style sheet and background images according to +# will adjust the colors in the stylesheet and background images according to # this color. Hue is specified as an angle on a colorwheel, see # http://en.wikipedia.org/wiki/Hue for more information. For instance the value # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 @@ -1188,12 +1125,11 @@ HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting this -# to YES can help to show when doxygen was last run and thus if the -# documentation is up to date. -# The default value is: NO. +# to NO can help when comparing the output of multiple runs. +# The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_TIMESTAMP = NO +HTML_TIMESTAMP = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the @@ -1286,29 +1222,28 @@ GENERATE_HTMLHELP = NO CHM_FILE = # The HHC_LOCATION tag can be used to specify the location (absolute path -# including file name) of the HTML help compiler (hhc.exe). If non-empty, +# including file name) of the HTML help compiler ( hhc.exe). If non-empty # doxygen will try to run the HTML help compiler on the generated index.hhp. # The file has to be specified with full path. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. HHC_LOCATION = -# The GENERATE_CHI flag controls if a separate .chi index file is generated -# (YES) or that it should be included in the master .chm file (NO). +# The GENERATE_CHI flag controls if a separate .chi index file is generated ( +# YES) or that it should be included in the master .chm file ( NO). # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. GENERATE_CHI = NO -# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) +# The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc) # and project file content. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_INDEX_ENCODING = -# The BINARY_TOC flag controls whether a binary table of contents is generated -# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it -# enables the Previous and Next buttons. +# The BINARY_TOC flag controls whether a binary table of contents is generated ( +# YES) or a normal table of contents ( NO) in the .chm file. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. @@ -1421,7 +1356,7 @@ DISABLE_INDEX = NO # index structure (just like the one that is generated for HTML Help). For this # to work a browser that supports JavaScript, DHTML, CSS and frames is required # (i.e. any modern browser). Windows users are probably better off using the -# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can +# HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can # further fine-tune the look of the index. As an example, the default style # sheet generated by doxygen has an example that shows how to put an image at # the root of the tree instead of the PROJECT_NAME. Since the tree basically has @@ -1449,7 +1384,7 @@ ENUM_VALUES_PER_LINE = 4 TREEVIEW_WIDTH = 250 -# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to +# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to # external symbols imported via tag files in a separate window. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. @@ -1478,7 +1413,7 @@ FORMULA_TRANSPARENT = YES # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see # http://www.mathjax.org) which uses client side Javascript for the rendering -# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX +# instead of using prerendered bitmaps. Use this if you do not have LaTeX # installed or if you want to formulas look prettier in the HTML output. When # enabled you may also need to install MathJax separately and configure the path # to it using the MATHJAX_RELPATH option. @@ -1548,11 +1483,11 @@ SEARCHENGINE = NO # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a web server instead of a web client using Javascript. There -# are two flavors of web server based searching depending on the EXTERNAL_SEARCH -# setting. When disabled, doxygen will generate a PHP script for searching and -# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing -# and searching needs to be provided by external tools. See the section -# "External Indexing and Searching" for details. +# are two flavours of web server based searching depending on the +# EXTERNAL_SEARCH setting. When disabled, doxygen will generate a PHP script for +# searching and an index file used by the script. When EXTERNAL_SEARCH is +# enabled the indexing and searching needs to be provided by external tools. See +# the section "External Indexing and Searching" for details. # The default value is: NO. # This tag requires that the tag SEARCHENGINE is set to YES. @@ -1564,7 +1499,7 @@ SERVER_BASED_SEARCH = NO # external search engine pointed to by the SEARCHENGINE_URL option to obtain the # search results. # -# Doxygen ships with an example indexer (doxyindexer) and search engine +# Doxygen ships with an example indexer ( doxyindexer) and search engine # (doxysearch.cgi) which are based on the open source search engine library # Xapian (see: http://xapian.org/). # @@ -1577,7 +1512,7 @@ EXTERNAL_SEARCH = NO # The SEARCHENGINE_URL should point to a search engine hosted by a web server # which will return the search results when EXTERNAL_SEARCH is enabled. # -# Doxygen ships with an example indexer (doxyindexer) and search engine +# Doxygen ships with an example indexer ( doxyindexer) and search engine # (doxysearch.cgi) which are based on the open source search engine library # Xapian (see: http://xapian.org/). See the section "External Indexing and # Searching" for details. @@ -1615,7 +1550,7 @@ EXTRA_SEARCH_MAPPINGS = # Configuration options related to the LaTeX output #--------------------------------------------------------------------------- -# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output. +# If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX output. # The default value is: YES. GENERATE_LATEX = NO @@ -1646,7 +1581,7 @@ LATEX_CMD_NAME = latex MAKEINDEX_CMD_NAME = makeindex -# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX +# If the COMPACT_LATEX tag is set to YES doxygen generates more compact LaTeX # documents. This may be useful for small projects and may help to save some # trees in general. # The default value is: NO. @@ -1664,12 +1599,9 @@ COMPACT_LATEX = NO PAPER_TYPE = a4 # The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names -# that should be included in the LaTeX output. The package can be specified just -# by its name or with the correct syntax as to be used with the LaTeX -# \usepackage command. To get the times font for instance you can specify : -# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times} -# To use the option intlimits with the amsmath package you can specify: -# EXTRA_PACKAGES=[intlimits]{amsmath} +# that should be included in the LaTeX output. To get the times font for +# instance you can specify +# EXTRA_PACKAGES=times # If left blank no extra packages will be included. # This tag requires that the tag GENERATE_LATEX is set to YES. @@ -1683,36 +1615,23 @@ EXTRA_PACKAGES = # # Note: Only use a user-defined header if you know what you are doing! The # following commands have a special meaning inside the header: $title, -# $datetime, $date, $doxygenversion, $projectname, $projectnumber, -# $projectbrief, $projectlogo. Doxygen will replace $title with the empty -# string, for the replacement values of the other commands the user is referred -# to HTML_HEADER. +# $datetime, $date, $doxygenversion, $projectname, $projectnumber. Doxygen will +# replace them by respectively the title of the page, the current date and time, +# only the current date, the version number of doxygen, the project name (see +# PROJECT_NAME), or the project number (see PROJECT_NUMBER). # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_HEADER = # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the # generated LaTeX document. The footer should contain everything after the last -# chapter. If it is left blank doxygen will generate a standard footer. See -# LATEX_HEADER for more information on how to generate a default footer and what -# special commands can be used inside the footer. +# chapter. If it is left blank doxygen will generate a standard footer. # # Note: Only use a user-defined footer if you know what you are doing! # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_FOOTER = -# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined -# LaTeX style sheets that are included after the standard style sheets created -# by doxygen. Using this option one can overrule certain style aspects. Doxygen -# will copy the style sheet files to the output directory. -# Note: The order of the extra style sheet files is of importance (e.g. the last -# style sheet in the list overrules the setting of the previous ones in the -# list). -# This tag requires that the tag GENERATE_LATEX is set to YES. - -LATEX_EXTRA_STYLESHEET = - # The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the LATEX_OUTPUT output # directory. Note that the files will be copied as-is; there are no commands or @@ -1730,8 +1649,8 @@ LATEX_EXTRA_FILES = PDF_HYPERLINKS = YES -# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate -# the PDF file directly from the LaTeX files. Set this option to YES, to get a +# If the LATEX_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate +# the PDF file directly from the LaTeX files. Set this option to YES to get a # higher quality PDF documentation. # The default value is: YES. # This tag requires that the tag GENERATE_LATEX is set to YES. @@ -1772,19 +1691,11 @@ LATEX_SOURCE_CODE = NO LATEX_BIB_STYLE = plain -# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated -# page will contain the date and time when the page was generated. Setting this -# to NO can help when comparing the output of multiple runs. -# The default value is: NO. -# This tag requires that the tag GENERATE_LATEX is set to YES. - -LATEX_TIMESTAMP = NO - #--------------------------------------------------------------------------- # Configuration options related to the RTF output #--------------------------------------------------------------------------- -# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The +# If the GENERATE_RTF tag is set to YES doxygen will generate RTF output. The # RTF output is optimized for Word 97 and may not look too pretty with other RTF # readers/editors. # The default value is: NO. @@ -1799,7 +1710,7 @@ GENERATE_RTF = NO RTF_OUTPUT = rtf -# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF +# If the COMPACT_RTF tag is set to YES doxygen generates more compact RTF # documents. This may be useful for small projects and may help to save some # trees in general. # The default value is: NO. @@ -1836,21 +1747,11 @@ RTF_STYLESHEET_FILE = RTF_EXTENSIONS_FILE = -# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code -# with syntax highlighting in the RTF output. -# -# Note that which sources are shown also depends on other settings such as -# SOURCE_BROWSER. -# The default value is: NO. -# This tag requires that the tag GENERATE_RTF is set to YES. - -RTF_SOURCE_CODE = NO - #--------------------------------------------------------------------------- # Configuration options related to the man page output #--------------------------------------------------------------------------- -# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for +# If the GENERATE_MAN tag is set to YES doxygen will generate man pages for # classes and files. # The default value is: NO. @@ -1874,13 +1775,6 @@ MAN_OUTPUT = man MAN_EXTENSION = .3 -# The MAN_SUBDIR tag determines the name of the directory created within -# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by -# MAN_EXTENSION with the initial . removed. -# This tag requires that the tag GENERATE_MAN is set to YES. - -MAN_SUBDIR = - # If the MAN_LINKS tag is set to YES and doxygen generates man output, then it # will generate one additional man file for each entity documented in the real # man page(s). These additional files only source the real man page, but without @@ -1894,7 +1788,7 @@ MAN_LINKS = NO # Configuration options related to the XML output #--------------------------------------------------------------------------- -# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that +# If the GENERATE_XML tag is set to YES doxygen will generate an XML file that # captures the structure of the code including all documentation. # The default value is: NO. @@ -1908,7 +1802,19 @@ GENERATE_XML = NO XML_OUTPUT = xml -# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program +# The XML_SCHEMA tag can be used to specify a XML schema, which can be used by a +# validating XML parser to check the syntax of the XML files. +# This tag requires that the tag GENERATE_XML is set to YES. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify a XML DTD, which can be used by a +# validating XML parser to check the syntax of the XML files. +# This tag requires that the tag GENERATE_XML is set to YES. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program # listings (including syntax highlighting and cross-referencing information) to # the XML output. Note that enabling this will significantly increase the size # of the XML output. @@ -1921,7 +1827,7 @@ XML_PROGRAMLISTING = YES # Configuration options related to the DOCBOOK output #--------------------------------------------------------------------------- -# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files +# If the GENERATE_DOCBOOK tag is set to YES doxygen will generate Docbook files # that can be used to generate PDF. # The default value is: NO. @@ -1935,23 +1841,14 @@ GENERATE_DOCBOOK = NO DOCBOOK_OUTPUT = docbook -# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the -# program listings (including syntax highlighting and cross-referencing -# information) to the DOCBOOK output. Note that enabling this will significantly -# increase the size of the DOCBOOK output. -# The default value is: NO. -# This tag requires that the tag GENERATE_DOCBOOK is set to YES. - -DOCBOOK_PROGRAMLISTING = NO - #--------------------------------------------------------------------------- # Configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- -# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an -# AutoGen Definitions (see http://autogen.sf.net) file that captures the -# structure of the code including all documentation. Note that this feature is -# still experimental and incomplete at the moment. +# If the GENERATE_AUTOGEN_DEF tag is set to YES doxygen will generate an AutoGen +# Definitions (see http://autogen.sf.net) file that captures the structure of +# the code including all documentation. Note that this feature is still +# experimental and incomplete at the moment. # The default value is: NO. GENERATE_AUTOGEN_DEF = NO @@ -1960,7 +1857,7 @@ GENERATE_AUTOGEN_DEF = NO # Configuration options related to the Perl module output #--------------------------------------------------------------------------- -# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module +# If the GENERATE_PERLMOD tag is set to YES doxygen will generate a Perl module # file that captures the structure of the code including all documentation. # # Note that this feature is still experimental and incomplete at the moment. @@ -1968,7 +1865,7 @@ GENERATE_AUTOGEN_DEF = NO GENERATE_PERLMOD = NO -# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary +# If the PERLMOD_LATEX tag is set to YES doxygen will generate the necessary # Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI # output from the Perl module output. # The default value is: NO. @@ -1976,9 +1873,9 @@ GENERATE_PERLMOD = NO PERLMOD_LATEX = NO -# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be nicely # formatted so it can be parsed by a human reader. This is useful if you want to -# understand what is going on. On the other hand, if this tag is set to NO, the +# understand what is going on. On the other hand, if this tag is set to NO the # size of the Perl module output will be much smaller and Perl will parse it # just the same. # The default value is: YES. @@ -1998,14 +1895,14 @@ PERLMOD_MAKEVAR_PREFIX = # Configuration options related to the preprocessor #--------------------------------------------------------------------------- -# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all +# If the ENABLE_PREPROCESSING tag is set to YES doxygen will evaluate all # C-preprocessor directives found in the sources and include files. # The default value is: YES. ENABLE_PREPROCESSING = YES -# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names -# in the source code. If set to NO, only conditional compilation will be +# If the MACRO_EXPANSION tag is set to YES doxygen will expand all macro names +# in the source code. If set to NO only conditional compilation will be # performed. Macro expansion can be done in a controlled way by setting # EXPAND_ONLY_PREDEF to YES. # The default value is: NO. @@ -2021,7 +1918,7 @@ MACRO_EXPANSION = YES EXPAND_ONLY_PREDEF = NO -# If the SEARCH_INCLUDES tag is set to YES, the include files in the +# If the SEARCH_INCLUDES tag is set to YES the includes files in the # INCLUDE_PATH will be searched if a #include is found. # The default value is: YES. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. @@ -2064,9 +1961,9 @@ PREDEFINED += "NAMESPACE=@PACKAGE_NAME@" EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will -# remove all references to function-like macros that are alone on a line, have -# an all uppercase name, and do not end with a semicolon. Such function macros -# are typically used for boiler-plate code, and will confuse the parser if not +# remove all refrences to function-like macros that are alone on a line, have an +# all uppercase name, and do not end with a semicolon. Such function macros are +# typically used for boiler-plate code, and will confuse the parser if not # removed. # The default value is: YES. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. @@ -2086,7 +1983,7 @@ SKIP_FUNCTION_MACROS = YES # where loc1 and loc2 can be relative or absolute paths or URLs. See the # section "Linking to external documentation" for more information about the use # of tag files. -# Note: Each tag file must have a unique name (where the name does NOT include +# Note: Each tag file must have an unique name (where the name does NOT include # the path). If a tag file is not located in the directory in which doxygen is # run, you must also specify the path to the tagfile here. @@ -2098,21 +1995,20 @@ TAGFILES = GENERATE_TAGFILE = @PACKAGE_NAME@.doxytag -# If the ALLEXTERNALS tag is set to YES, all external class will be listed in -# the class index. If set to NO, only the inherited external classes will be -# listed. +# If the ALLEXTERNALS tag is set to YES all external class will be listed in the +# class index. If set to NO only the inherited external classes will be listed. # The default value is: NO. ALLEXTERNALS = NO -# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed -# in the modules index. If set to NO, only the current project's groups will be +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed in +# the modules index. If set to NO, only the current project's groups will be # listed. # The default value is: YES. EXTERNAL_GROUPS = YES -# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in +# If the EXTERNAL_PAGES tag is set to YES all external pages will be listed in # the related pages index. If set to NO, only the current project's pages will # be listed. # The default value is: YES. @@ -2129,7 +2025,7 @@ PERL_PATH = /usr/bin/perl # Configuration options related to the dot tool #--------------------------------------------------------------------------- -# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram +# If the CLASS_DIAGRAMS tag is set to YES doxygen will generate a class diagram # (in HTML and LaTeX) for classes with base or super classes. Setting the tag to # NO turns the diagrams off. Note that this option also works with HAVE_DOT # disabled, but it is recommended to install and use dot, since it yields more @@ -2154,7 +2050,7 @@ MSCGEN_PATH = DIA_PATH = -# If set to YES the inheritance and collaboration graphs will hide inheritance +# If set to YES, the inheritance and collaboration graphs will hide inheritance # and usage relations if the target is undocumented or is not a class. # The default value is: YES. @@ -2165,7 +2061,7 @@ HIDE_UNDOC_RELATIONS = NO # http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent # Bell Labs. The other options in this section have no effect if this option is # set to NO -# The default value is: YES. +# The default value is: NO. HAVE_DOT = YES @@ -2179,7 +2075,7 @@ HAVE_DOT = YES DOT_NUM_THREADS = 0 -# When you want a differently looking font in the dot files that doxygen +# When you want a differently looking font n the dot files that doxygen # generates you can specify the font name using DOT_FONTNAME. You need to make # sure dot is able to find the font, which can be done by putting it in a # standard location or by setting the DOTFONTPATH environment variable or by @@ -2227,7 +2123,7 @@ COLLABORATION_GRAPH = YES GROUP_GRAPHS = YES -# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. # The default value is: NO. @@ -2279,8 +2175,7 @@ INCLUDED_BY_GRAPH = YES # # Note that enabling this option will significantly increase the time of a run. # So in most cases it will be better to enable call graphs for selected -# functions only using the \callgraph command. Disabling a call graph can be -# accomplished by means of the command \hidecallgraph. +# functions only using the \callgraph command. # The default value is: NO. # This tag requires that the tag HAVE_DOT is set to YES. @@ -2291,8 +2186,7 @@ CALL_GRAPH = NO # # Note that enabling this option will significantly increase the time of a run. # So in most cases it will be better to enable caller graphs for selected -# functions only using the \callergraph command. Disabling a caller graph can be -# accomplished by means of the command \hidecallergraph. +# functions only using the \callergraph command. # The default value is: NO. # This tag requires that the tag HAVE_DOT is set to YES. @@ -2315,17 +2209,11 @@ GRAPHICAL_HIERARCHY = YES DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images -# generated by dot. For an explanation of the image formats see the section -# output formats in the documentation of the dot tool (Graphviz (see: -# http://www.graphviz.org/)). +# generated by dot. # Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order # to make the SVG files visible in IE 9+ (other browsers do not have this # requirement). -# Possible values are: png, png:cairo, png:cairo:cairo, png:cairo:gd, png:gd, -# png:gd:gd, jpg, jpg:cairo, jpg:cairo:gd, jpg:gd, jpg:gd:gd, gif, gif:cairo, -# gif:cairo:gd, gif:gd, gif:gd:gd, svg, png:gd, png:gd:gd, png:cairo, -# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and -# png:gdiplus:gdiplus. +# Possible values are: png, jpg, gif and svg. # The default value is: png. # This tag requires that the tag HAVE_DOT is set to YES. @@ -2368,19 +2256,6 @@ MSCFILE_DIRS = DIAFILE_DIRS = -# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the -# path where java can find the plantuml.jar file. If left blank, it is assumed -# PlantUML is not used or called during a preprocessing step. Doxygen will -# generate a warning when it encounters a \startuml command in this case and -# will not generate output for the diagram. - -PLANTUML_JAR_PATH = "@top_srcdir@/doc/plantuml.jar" - -# When using plantuml, the specified paths are searched for files specified by -# the !include statement in a plantuml block. - -PLANTUML_INCLUDE_PATH = - # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes # that will be shown in the graph. If the number of nodes in a graph becomes # larger than this value, doxygen will truncate the graph, which is visualized @@ -2417,14 +2292,14 @@ MAX_DOT_GRAPH_DEPTH = 0 DOT_TRANSPARENT = YES -# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) support # this, this feature is disabled by default. # The default value is: NO. # This tag requires that the tag HAVE_DOT is set to YES. -DOT_MULTI_TARGETS = NO +DOT_MULTI_TARGETS = YES # If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page # explaining the meaning of the various boxes and arrows in the dot generated @@ -2434,7 +2309,7 @@ DOT_MULTI_TARGETS = NO GENERATE_LEGEND = YES -# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot +# If the DOT_CLEANUP tag is set to YES doxygen will remove the intermediate dot # files that are used to generate the various graphs. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. diff --git a/doc/makefile.am b/doc/makefile.am index ef158b4..48296b7 100644 --- a/doc/makefile.am +++ b/doc/makefile.am @@ -1,8 +1,10 @@ ## @id $Id$ -# -# This file has been added by bootstrap.sh on Wed, 15 July 2015 10:02:57 +0200 -# Feel free to change it or even remove and rebuild it, up to your needs -# +## +## This file has been added: +## - by bootstrap.sh +## - on Wed, 10 May 2017 11:06:09 +0200 +## Feel free to change it or even remove and rebuild it, up to your needs +## ## 1 2 3 4 5 6 7 8 ## 45678901234567890123456789012345678901234567890123456789012345678901234567890 diff --git a/makefile.am b/makefile.am index f623d48..80d16c4 100644 --- a/makefile.am +++ b/makefile.am @@ -6,7 +6,7 @@ ## 1 2 3 4 5 6 7 8 ## 45678901234567890123456789012345678901234567890123456789012345678901234567890 -SUBDIRS = scripts doc nodejs cordova test +SUBDIRS = doc nodejs cordova test EXTRA_DIST = build-in-docker.conf diff --git a/nodejs/client/safechat.js b/nodejs/client/safechat.js new file mode 100755 index 0000000..9304f1b --- /dev/null +++ b/nodejs/client/safechat.js @@ -0,0 +1,128 @@ +#!/usr/bin/env nodejs + +var safechat = function(keyserver) { + var hkp = new openpgp.HKP(keyserver) + return { + client: { + user: null, + createUser: function(name, host, password, success, fail) { + openpgp.generateKey({ + numBits: 4096, + userIds: [{name: name, email: name+'@'+host}], + passphrase: password + }).then(function(keyPair) { + user = { + name: name, + email: name+'@'+host, + numBits: 4096, + key: { + pub: keyPair.publicKeyArmored, + priv: keyPair.privateKeyArmored + } + } + hkp.upload(user.key.pub).then(function() { + success(user) + }).catch(function(e) { + fail('upload key failed', e) + }) + }).catch(function(e) { + fail('generating key pairs failed', e) + }) + }, + setUser: function() { + + } + }, + server: { + } + } +} + +try { + + var package = require(__dirname+'/../package.json') + var config = require(package.path.config) + var io = require('socket.io-client') + var program = require('commander') + var openpgp = require('openpgp') + var fs = require('fs'); + + program + .version(package.version) + .description('command line client for SafeChat, see https://safechat.ch') + .option('-u, --url ', 'url to safechat server [http://localhost:8888]', 'http://localhost:8888') + .option('-n, --name ', 'username [test]', 'test') + .option('-H, --host ', 'user\'s SafeChat host, mail is @ [safechat.ch]', 'safechat.ch') + .option('-K, --keyserver ', 'pgp key server [https://safechat.ch]', 'https://safechat.ch') + .option('-p, --password ', 'password [ert456]', 'ert456') + .option('-k, --key ', 'pgp key file [key.pgp]', 'key.pgp') + .parse(process.argv) + + openpgp.initWorker() + openpgp.config.aead_protect = true + var client = safechat(program.keyserver).client; + + fs.stat(program.key, function(err, stats) { + if (err) { + console.log('generate keys') + client.createUser(program.name, program.host, program.password, + function(user) { + fs.writeFileSync(program.key, JSON.stringify(user)) + console.log('new user credentials created') + }, + function(msg, e) { + console.log("**** ERRROR:", msg, e) + }) + } else if (stats.isFile()) { + client.user = JSON.parse(fs.readFileSync(program.key)) + console.log("user:", client.user.name) + } else { + console.log('**** ERROR: cannot read file', program.key) + } + }) + + /* + console.log('connecting to:', program.url) + + var socket = io(program.url) + socket + .on('connect', function() { + console.log('connect') + socket.emit('login', {name: 'test', }) + }) + .on("login", function() { + console.log('loggedin') + }) + .on("fail", function() { + console.log('fail') + }) + .on("user", function() { + console.log('user') + }) + .on("users", function() { + console.log('users') + }) + .on("message", function() { + console.log('message') + }) + .on("messages", function() { + console.log('messages') + }) + .io + .on("connect", function() { + console.log('io.connect') + }) + .on("reconnect", function() { + console.log('io.reconnect') + }) + .on("disconnect", function() { + console.log('io.disconnect') + }) + .on("error", function() { + console.log('io.disconnect') + }) + */ + +} catch (e) { + console.log('**** ERROR:', e.stack) +} diff --git a/nodejs/package.json.in b/nodejs/package.json.in index b3802d7..472794d 100644 --- a/nodejs/package.json.in +++ b/nodejs/package.json.in @@ -4,6 +4,7 @@ "documentation": "https://dev.marc.waeckerlin.org/doc/safechat/", "private": true, "dependencies": { + "commander": "^2.9.0", "ejs": "~2.5.2", "express": "2.5.8", "jquery": "~3.1.0", @@ -17,8 +18,12 @@ "main": "@PACKAGE_NAME@.js", "devDependencies": {}, "scripts": { + "start": "@PACKAGE_NAME@.js", "test": "echo \"Error: no test specified\" && exit 1" }, + "bin": { + "safechat": "client/safechat.js" + }, "author": "@AUTHOR@", "license": "@LICENSE@", "path": { diff --git a/nodejs/sockets/index.js b/nodejs/sockets/index.js index b00a43a..8143b15 100644 --- a/nodejs/sockets/index.js +++ b/nodejs/sockets/index.js @@ -21,6 +21,13 @@ module.exports = function(sql) { socket.broadcast.emit(signal, data); } + socket + .on('login', function() {}) + .on('', function() {}) + .on('', function() {}) + .on('', function() {}) + .on('', function() {}) +/* socket.on("message", function(msg) { console.log("-> signal: message"); if (!msg || !msg.user || !msg.content) return emit("fail", "wrong message format"); @@ -111,7 +118,7 @@ module.exports = function(sql) { if (!err && res && res.length) emit('users', res); }); }); - +*/ }; return module; diff --git a/resolve-debbuilddeps.sh b/resolve-debbuilddeps.sh index 30b0a5d..4358e29 100755 --- a/resolve-debbuilddeps.sh +++ b/resolve-debbuilddeps.sh @@ -35,16 +35,24 @@ TO_INSTALL= DEPS= 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 + for f in $(sed -n 's, *AX_\(DEB\|ALL\)_DEPEND_IFEXISTS(\([^)]*\)).*,\2,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 DEPS+=" ${f}" fi done - for f in $(sed -n 's, *AX_DEB_BUILD_DEPEND(\([^)]*\)).*,\1,p' configure.ac); do + for f in $(sed -n 's, *AX_\(DEB\|ALL\)_DEPEND_IFEXISTS_DEV(\([^)]*\)).*,\2,p' configure.ac); do + if test -n "$(${DO} apt-cache policy -q ${f}-dev)" && ((! $(${DO} apt-cache policy ${f}-dev 2>&1 | grep -q 'N: Unable to locate package')) && (! ${DO} dpkg -l "${f}-dev")); then + DEPS+=" ${f}-dev" + fi + done + for f in $(sed -n 's, *AX_\(DEB\|ALL\)\(_BUILD\)\?_DEPEND(\([^)]*\)).*,\3,p' configure.ac); do DEPS+=" ${f}" done + for f in $(sed -n 's, *AX_\(DEB\|ALL\)\(_BUILD\)\?_DEPEND_DEV(\([^)]*\)).*,\3,p' configure.ac); do + DEPS+=" ${f}-dev" + done trap "rm debian/control" INT TERM EXIT - sed 's,@\(DEB_DEPEND_IFEXISTS\|DEB_BUILD_DEPEND\|DEB_DEPEND\)@,,g' debian/control.in | \ + sed 's,@\(\(ALL\|DEB\)_DEPEND_IFEXISTS\|\(ALL\|DEB\)_BUILD_DEPEND\|\(ALL\|DEB\)_DEPEND\)@,,g' debian/control.in | \ sed 's,@[^@]*@, dummytext,g' > debian/control fi diff --git a/resolve-rpmbuilddeps.sh b/resolve-rpmbuilddeps.sh index 1ed2408..dd565a6 100755 --- a/resolve-rpmbuilddeps.sh +++ b/resolve-rpmbuilddeps.sh @@ -15,10 +15,39 @@ SCHROOTNAME="$1" PACKAGE_NAME=$(sed -n 's/^ *m4_define(x_package_name, \(.*\)).*/\1/p' configure.ac) TRAP_CMD= +DEPS= +for f in BUILD BUILDROOT RPMS SPECS SRPMS; do + if ! test -d $f; then + TRAP_CMD+="rm -rf $f;" + mkdir $f + fi +done if test -e ${PACKAGE_NAME}.spec.in -a ! -e ${PACKAGE_NAME}.spec; then + for f in $(sed -n 's, *AX_\(RPM\|ALL\)_DEPEND_IFEXISTS(\([^)]*\)).*,\2,p' configure.ac); do + if (test -x /usr/bin/zypper && zypper search -x "$f" 1>&2 > /dev/null) || \ + (test -x /usr/bin/dnf && dnf list -q "$f" 1>&2 > /dev/null) || \ + (test -x /usr/bin/yum && yum list -q "$f" 1>&2 > /dev/null) || \ + (test -x /usr/sbin/urpmq && urpmq "$f" 1>&2 > /dev/null); then + DEPS+=" ${f}" + fi + done + for f in $(sed -n 's, *AX_\(RPM\|ALL\)_DEPEND_IFEXISTS_DEV(\([^)]*\)).*,\2,p' configure.ac); do + if (test -x /usr/bin/zypper && zypper search -x "$f"-devel 1>&2 > /dev/null) || \ + (test -x /usr/bin/dnf && dnf list -q "$f"-devel 1>&2 > /dev/null) || \ + (test -x /usr/bin/yum && yum list -q "$f"-devel 1>&2 > /dev/null) || \ + (test -x /usr/sbin/urpmq && urpmq "$f"-devel 1>&2 > /dev/null); then + DEPS+=" ${f}-devel" + fi + done + for f in $(sed -n 's, *AX_\(RPM\|ALL\)\(_BUILD\)\?_DEPEND(\([^)]*\)).*,\3,p' configure.ac); do + DEPS+=" ${f}" + done + for f in $(sed -n 's, *AX_\(RPM\|ALL\)\(_BUILD\)\?_DEPEND_DEV(\([^)]*\)).*,\3,p' configure.ac); do + DEPS+=" ${f}-devel" + done TRAP_CMD+="rm ${PACKAGE_NAME}.spec;" trap "${TRAP_CMD}" INT TERM EXIT - sed 's,@RPM_DEPEND_IFEXISTS@,,g' ${PACKAGE_NAME}.spec.in | \ + sed 's,@\(\(ALL\|RPM\)_DEPEND_IFEXISTS\|\(ALL\|RPM\)_BUILD_DEPEND\|\(ALL\|RPM\)_DEPEND\)@,,g' ${PACKAGE_NAME}.spec.in | \ sed 's,@[^@]*@, dummytext,g' > ${PACKAGE_NAME}.spec fi @@ -32,13 +61,14 @@ 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 - schroot -c ${SCHROOTNAME} -u root -- ${INSTALL_TOOL} ${FILES} + schroot -c ${SCHROOTNAME} -u root -- ${INSTALL_TOOL} ${FILES} ${DEPS} 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 - ${INSTALL_TOOL} ${FILES} + ${INSTALL_TOOL} ${FILES} ${DEPS} fi fi + echo "**** Success: All Dependencies Resolved" diff --git a/rpmsign.exp b/rpmsign.exp new file mode 100755 index 0000000..dc29d94 --- /dev/null +++ b/rpmsign.exp @@ -0,0 +1,14 @@ +#!/usr/bin/expect -f + +set key [lindex $argv 0] +set password [lindex $argv 1] +set files [lrange $argv 2 end] + +### rpm-sign.exp -- Sign RPMs by sending the passphrase. +spawn rpmsign --define "_gpg_name $key" --addsign {*}$files +expect { + "Enter pass phrase: " { + send -- "$password\r" + exp_continue + } eof +} diff --git a/scripts/makefile.am b/scripts/makefile.am deleted file mode 100644 index 4c2ccb3..0000000 --- a/scripts/makefile.am +++ /dev/null @@ -1,11 +0,0 @@ -## @id $Id$ -# -# This file has been added by bootstrap.sh on Sun, 11 October 2015 12:15:12 +0200 -# Feel free to change it or even remove and rebuild it, up to your needs -# -## 1 2 3 4 5 6 7 8 -## 45678901234567890123456789012345678901234567890123456789012345678901234567890 - -dist_sbin_SCRIPTS = safechat-install.sh - -MAINTAINERCLEANFILES = makefile.in diff --git a/scripts/safechat-install.sh b/scripts/safechat-install.sh deleted file mode 100755 index 5c6489f..0000000 --- a/scripts/safechat-install.sh +++ /dev/null @@ -1,34 +0,0 @@ -#! /bin/bash - -APACHE_USER=${1:-www-data} -KEYLENGTH=${2:-4096} -SAFECHAT_NAME=${3:-Safe Chat} -SAFECHAT_COMMENT=${4:-https://safechat.ch} -SAFECHAT_EMAIL=${5:-server@safechat.ch} -PASSWORD=${PASSWORD:-${6:-$(pwgen 80 1)}} - -if sudo -u ${APACHE_USER} gpg2 -K "${SAFECHAT_NAME}"; then - FINGERPRINT=$(LANG= sudo -u ${APACHE_USER} gpg2 --fingerprint "${SAFECHAT_NAME}" \ - | sed -n 's, ,,g;s,.*Keyfingerprint=,,p') - echo "deleting key ${SAFECHAT_NAME} with fingerprint ${FINGERPRINT}" - sudo -u ${APACHE_USER} gpg2 --batch --delete-secret-and-public-key "${FINGERPRINT}" -fi -if sudo -u ${APACHE_USER} gpg2 -K "${SAFECHAT_NAME}"; then - echo "**** error: key exists and cannot be deleted" 1>&2 - exit 1 -fi - -sudo -u ${APACHE_USER} gpg -v -v --gen-key --batch <