fixed build for rpm and deb

master
Marc Wäckerlin 7 years ago
parent 5516fb2e1f
commit 2954903078
  1. 2
      COPYING
  2. 79
      ChangeLog
  3. 2
      INSTALL
  4. 60
      ax_check_qt.m4
  5. 255
      ax_init_standard_project.m4
  6. 44
      bootstrap-build-environment.spec.in
  7. 295
      bootstrap.sh
  8. 79
      build-in-docker.sh
  9. 19
      configure.ac
  10. 6
      debian/control.in
  11. 2
      debian/rules
  12. 24
      doc/doxyfile.in
  13. 2
      doc/makefile.am
  14. 11
      makefile.am
  15. 65
      resolve-debbuilddeps.sh
  16. 86
      resolve-rpmbuilddeps.sh
  17. 14
      rpmsign.exp
  18. 6
      scripts/ax_check_qt.m4
  19. 2
      scripts/ax_init_standard_project.m4
  20. 23
      scripts/bootstrap.sh

@ -1 +1 @@
/usr/share/automake-1.14/COPYING
/usr/share/automake-1.13/COPYING

@ -1,3 +1,82 @@
2017-06-14 16:05
* [r147] scripts/ax_init_standard_project.m4, scripts/bootstrap.sh,
scripts/build-in-docker.sh, scripts/resolve-debbuilddeps.sh,
scripts/resolve-rpmbuilddeps.sh:
fix rpm i.e. fedora / centos build
2017-06-09 14:57
* [r146] scripts/ax_check_qt.m4,
scripts/ax_init_standard_project.m4,
scripts/resolve-debbuilddeps.sh, scripts/resolve-rpmbuilddeps.sh:
improvements for deb and rpm docker builds
2017-06-02 11:56
* [r145] scripts/bootstrap.sh, scripts/build-in-docker.sh:
fixed rpm build
2017-05-30 13:23
* [r144] scripts/ax_init_standard_project.m4, scripts/bootstrap.sh,
scripts/resolve-rpmbuilddeps.sh:
rpm builds improved and fixed
2017-05-24 11:39
* [r143] scripts/bootstrap.sh:
fixed rpm build
2017-05-23 13:11
* [r142] scripts/bootstrap.sh:
fixed typo
2017-05-19 14:53
* [r141] scripts/ax_init_standard_project.m4, scripts/bootstrap.sh,
scripts/build-in-docker.sh:
improvement of rpm generation
2017-05-03 14:55
* [r140] scripts/ax_check_qt.m4,
scripts/ax_init_standard_project.m4, scripts/bootstrap.sh,
scripts/resolve-rpmbuilddeps.sh:
fixes if project dir is a subdir in a repository (multiple
projects in one repository)
2017-03-20 12:06
* [r139] scripts/ax_init_standard_project.m4, scripts/bootstrap.sh,
scripts/build-in-docker.sh, scripts/resolve-debbuilddeps.sh,
scripts/resolve-rpmbuilddeps.sh, scripts/rpmsign.exp[ADD]:
allow package definitions for all (deb and rpm),or deb or rpm;
fixed rpmsign for fedora
2017-03-17 15:43
* [r138] scripts/build-in-docker.sh:
add default parameter for windoze build
2017-03-16 07:10
* [r137] scripts/ax_init_standard_project.m4, scripts/bootstrap.sh:
new tag AX_BUILD_HTML_NPM
2017-03-03 14:52
* [r136] scripts/ax_init_standard_project.m4, scripts/bootstrap.sh:
added AX_USE_ETC to handle configuration files
2017-02-06 22:55
* [r135] COPYING, ChangeLog, INSTALL, ax_init_standard_project.m4,
bootstrap.sh, resolve-debbuilddeps.sh,
scripts/ax_init_standard_project.m4, scripts/bootstrap.sh:
fixed debian dependencies
2017-02-06 10:14
* [r134] scripts/resolve-debbuilddeps.sh:

@ -1 +1 @@
/usr/share/automake-1.14/INSTALL
/usr/share/automake-1.13/INSTALL

@ -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
])
@ -215,6 +230,7 @@ AC_DEFUN([AX_CHECK_QT], [
AC_SUBST(CXXFLAGS)
AC_SUBST(PKG_REQUIREMENTS)
AX_ADDITIONAL_QT_RULES_HACK='
#### Begin: Appended by $0
LANGUAGE_FILE_BASE ?= translations
@ -226,7 +242,6 @@ moc_%.cxx: %.hxx
qrc_%.cxx: %.qrc
$(RCC) -o [$][@] -name ${<:%.qrc=%} $<
AC_SUBST(AX_ADDITIONAL_QT_RULES_HACK)
#%.qrc: %
# cwd=$$(pwd) && cd $< && $(RCC) -project -o $${cwd}/[$][@]
@ -234,12 +249,15 @@ qrc_%.cxx: %.qrc
%.qm: %.ts
${LRELEASE} $< -qm [$][@]
%.ts: ${LANGUAGE_FILES:%=%}
%.ts: ${LANGUAGE_FILES}
${LUPDATE} -no-obsolete \
-target-language ${@:${LANGUAGE_FILE_BASE}_%.ts=%} \
-ts [$][@] $<
-target-language [$]{@:${LANGUAGE_FILE_BASE}_%.ts=%} \
[$][^] \
-ts [$][@]
'])
#### End: $0
'
])
AC_DEFUN([AX_REQUIRE_QT], [
AX_CHECK_QT([$1], [$2], [$3], [$4])
@ -254,3 +272,11 @@ AC_DEFUN([AX_REQUIRE_QT], [
AC_DEFUN([AX_QT_NO_KEYWORDS], [
CPPFLAGS+=" -DQT_NO_KEYWORDS"
])
AC_DEFUN([AX_INIT_QT], [
if test -n "${AX_ADDITIONAL_QT_RULES_HACK}"; then
test -f src/makefile.in && cat >> src/makefile.in <<EOF
${AX_ADDITIONAL_QT_RULES_HACK}
EOF
fi
])

@ -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
@ -90,7 +90,7 @@ dnl refers to ${prefix}. Thus we have to use `eval' twice.
# $3 = filename of makefile.in
AC_DEFUN([AX_ADD_MAKEFILE_TARGET_DEP], [
sh_add_makefile_target_dep() {
sed -i -e ':a;/^'${1}':.*\\$/{N;s/\\\n//;ta};s/^'${1}':.*$/& '${2}'/' "${srcdir}/${3}"
sed -i -e ':a;/^'${1}':.*\\$/{N;s/\\\n//;ta};s/^'"${1}"':.*$/& '"${2}"'/' "${srcdir}/${3}"
if ! egrep -q "${1}:.* ${2}" "${srcdir}/${3}"; then
echo "${1}: ${2}" >> "${srcdir}/${3}"
fi
@ -137,6 +137,8 @@ AC_DEFUN([AX_INIT_STANDARD_PROJECT], [
AX_SUBST(PREFIX)
SYSCONFDIR=$(test "$prefix" = NONE && prefix=$ac_default_prefix; eval echo "${sysconfdir}")
AX_SUBST(SYSCONFDIR)
PKGSYSCONFDIR=$(test "$prefix" = NONE && prefix=$ac_default_prefix; eval echo "${SYSCONFDIR}/${PACKAGE_NAME}")
AX_SUBST(PKGSYSCONFDIR)
DATADIR=$(test "$prefix" = NONE && prefix=$ac_default_prefix; eval echo "${datadir}")
AX_SUBST(DATADIR)
PKGDATADIR=$(test "$prefix" = NONE && prefix=$ac_default_prefix; eval echo "${DATADIR}/${PACKAGE_NAME}")
@ -223,6 +225,9 @@ AC_DEFUN([AX_INIT_STANDARD_PROJECT], [
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)
if test "${DISTRO}" = "n/a"; then
DISTRO="${VENDOR}_$(lsb_release -sr 2>/dev/null | tr ' ' '_')"
fi
AX_SUBST(DISTRO)
ARCH=$((@<:@@<:@ $(uname -sm) =~ 64 @:>@@:>@ && echo amd64) || (@<:@@<:@ $(uname -sm) =~ 'i?86' @:>@@:>@ && echo i386 || uname -sm))
AX_SUBST(ARCH)
@ -451,6 +456,12 @@ AC_DEFUN([AX_USE_NODEJS], [
[${PATH}${PATH_SEPARATOR}${ANDROID_HOME}/tools])
AC_CONFIG_FILES([nodejs/package.json])
AC_CONFIG_FILES([nodejs/makefile])
if test -z "${DEB_SECTION}"; then
AX_DEB_SECTION([web])
fi
if test -z "${RPM_GROUP}"; then
AX_RPM_GROUP([Applications/Internet])
fi
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
@ -489,6 +500,12 @@ EOF
# use this in configure.ac to support HTML data for webservers
AC_DEFUN([AX_BUILD_HTML], [
AC_CONFIG_FILES([html/makefile])
if test -z "${DEB_SECTION}"; then
AX_DEB_SECTION([web])
fi
if test -z "${RPM_GROUP}"; then
AX_RPM_GROUP([Applications/Internet])
fi
AX_ADD_MAKEFILE_TARGET_DEP([maintainer-clean-am], [maintainer-clean-html-targets], [html/makefile.in])
test -f html/makefile.in && cat >> html/makefile.in <<EOF
#### Begin: Appended by $0
@ -498,6 +515,12 @@ maintainer-clean-html-targets:
EOF
])
# use this in configure.ac to support HTML data for webservers
AC_DEFUN([AX_BUILD_HTML_NPM], [
AC_CONFIG_FILES([html/package.json])
AX_BUILD_HTML
])
# use this in configure.ac to support C++ libraries
AC_DEFUN([AX_USE_LIBTOOL], [
# libtool versioning
@ -510,6 +533,12 @@ AC_DEFUN([AX_USE_LIBTOOL], [
AC_SUBST(LIB_VERSION)
AC_PROG_LIBTOOL
AC_CONFIG_FILES([src/${PACKAGE_NAME}.pc])
if test -z "${DEB_SECTION}"; then
AX_DEB_SECTION([devel])
fi
if test -z "${RPM_GROUP}"; then
AX_RPM_GROUP([Development/Libraries])
fi
AX_ADD_MAKEFILE_TARGET_DEP([install-data-am], [install-data-libtool-pkg], [src/makefile.in])
AX_ADD_MAKEFILE_TARGET_DEP([uninstall-am], [uninstall-data-am], [src/makefile.in])
AX_ADD_MAKEFILE_TARGET_DEP([uninstall-data-am], [uninstall-data-libtool-pkg], [src/makefile.in])
@ -527,7 +556,11 @@ EOF
])
# use this in configure.ac to support debian packages
# - $1: optional debian package section
AC_DEFUN([AX_USE_DEBIAN_PACKAGING], [
if test -n "$1"; then
AX_DEB_SECTION([$1])
fi
if test -f README.md; then
README_DEB=$(tail -n +3 README.md | sed -e 's/^ *$/./g' -e 's/^/ /g')
else
@ -552,7 +585,11 @@ EOF
])
# use this in configure.ac to support RPM packages
# - $1: optional rpm package group
AC_DEFUN([AX_USE_RPM_PACKAGING], [
if test -n "$1"; then
AX_RPM_GROUP([$1])
fi
AC_CONFIG_FILES([${PACKAGE_NAME}.spec])
#AX_ADD_MAKEFILE_TARGET_DEP([clean-am], [clean-rpm-targets], [makefile.in])
AX_ADD_MAKEFILE_TARGET_DEP([clean-am], [clean-rpm-targets], [makefile.in])
@ -562,7 +599,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:
@ -571,6 +608,11 @@ distclean-rpm-targets:
EOF
])
# use this in configure.ac to support scripts, e.g. bash scripts
AC_DEFUN([AX_USE_ETC], [
AC_CONFIG_FILES([etc/makefile])
])
# use this in configure.ac to support scripts, e.g. bash scripts
AC_DEFUN([AX_USE_SCRIPTS], [
AC_CONFIG_FILES([scripts/makefile])
@ -581,7 +623,7 @@ AC_DEFUN([AX_USE_DOXYGEN], [
AC_CHECK_PROG(have_doxygen, doxygen, yes, no)
AC_CHECK_PROG(have_dot, dot, yes, no)
AC_CHECK_PROG(have_mscgen, mscgen, yes, no)
AM_CONDITIONAL(NEED_PLANTUML, test "$have_doxygen" = "yes" -a "1.8.11" != $((echo "1.8.11"; doxygen -v) | sort -V | head -1))
AM_CONDITIONAL(NEED_PLANTUML, test "$have_doxygen" = "yes" -a "1.8.11" != $((echo "1.8.11"; doxygen -v 2>/dev/null) | sort -V | head -1))
PDF_DOC=${PACKAGE_NAME}-${PACKAGE_VERSION}.pdf
AC_SUBST(PDF_DOC)
if test "$have_doxygen" = "no"; then
@ -701,6 +743,13 @@ EOF
# $4 = alternative module names (space separated, optional)
# $5 = optional flags:
# manualflags if CXXFLAGS, CPPFLAGS, LIBS should remain unchanged
# $6 = optional parameters, allowed are (evaluated in this order):
# - DEV_RPM_DIST_PKG=<name>
# special name for the RPM development package
# - DEV_DEB_DIST_PKG=<name>
# special name for the debian development package
# - DEV_DIST_PKG=<name>
# if the name of the development package is different
#
# uses PKG_CHECK_MODULES to test for a module
# then, if given, looks for the header file
@ -801,6 +850,33 @@ AC_DEFUN([AX_PKG_REQUIRE], [
else
AC_MSG_NOTICE([To enable $1, add $1_CPPFLAGS, $1_CXXFLAGS and $1_LIBS])
fi
DEV_DEB_DIST_PKG=
DEV_RPM_DIST_PKG=
DEV_DIST_PKG=
pkg=m4_default([$2], [$1])
$6
dep_pkg=${DEV_DEB_DIST_PKG:-${DEV_DIST_PKG:-${pkg}}-dev}
rpm_pkg=${DEV_RPM_DIST_PKG:-${DEV_DIST_PKG:-${pkg}}-devel}
if test -n "$4"; then
for f in $pkg $4; do
if test -n "$(apt-cache policy -q ${f}-dev 2> /dev/null)"; then
deb_pkg=${f}-dev
break
fi
done
for f in $pkg $4; 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
rpm_pkg=${f}-devel
break
fi
done
fi
AX_DEB_BUILD_DEPEND([$deb_pkg])
AX_RPM_BUILD_DEPEND([$rpm_pkg])
])
# check if a specific package exists
@ -809,6 +885,13 @@ AC_DEFUN([AX_PKG_REQUIRE], [
# $2 = module name (optional, if different from id)
# $3 = optional flags:
# manualflags if CXXFLAGS, CPPFLAGS, LIBS should remain unchanged
# $4 = optional parameters, allowed are (evaluated in this order):
# - DEV_RPM_DIST_PKG=<name>
# special name for the RPM development package
# - DEV_DEB_DIST_PKG=<name>
# special name for the debian development package
# - DEV_DIST_PKG=<name>
# if the name of the development package is different
#
# uses PKG_CHECK_MODULES to test for a module
# sets automake conditional HAVE_$1 to 0 (not found) or 1 (found)
@ -843,6 +926,24 @@ AC_DEFUN([AX_PKG_CHECK], [
AC_SUBST(CPPFLAGS)
AC_SUBST(CXXFLAGS)
AC_SUBST(PKG_REQUIREMENTS)
DEV_DEB_DIST_PKG=
DEV_RPM_DIST_PKG=
DEV_DIST_PKG=
pkg=m4_default([$2], [$1])
$4
dep_pkg=${DEV_DEB_DIST_PKG:-${DEV_DIST_PKG:-${pkg}}-dev}
rpm_pkg=${DEV_RPM_DIST_PKG:-${DEV_DIST_PKG:-${pkg}}-devel}
if test -n "$(apt-cache policy -q ${deb_pkg} 2> /dev/null)"; then
AX_DEB_BUILD_DEPEND([$deb_pkg])
fi
if (test -x /usr/bin/zypper && zypper search -x "$rpm_pkg" 1>&2 > /dev/null) || \
(test -x /usr/bin/dnf && dnf list -q "$rpm_pkg" 1>&2 > /dev/null) || \
(test -x /usr/bin/yum && yum list -q "$rpm_pkg" 1>&2 > /dev/null) || \
(test -x /usr/sbin/urpmq && urpmq "$rpm_pkg" 1>&2 > /dev/null); then
AX_RPM_BUILD_DEPEND([$rpm_pkg])
fi
)
])
# make sure, a specific header exists
@ -1005,3 +1106,127 @@ 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}-dev"
RPM_BUILD_DEPEND="${RPM_BUILD_DEPEND}, ${pkg// /-devel}-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
])
# finish configuration - to be called instead of AC_OUTPUT
AC_DEFUN([AX_OUTPUT], [
AX_DEB_RESOLVE
AX_RPM_RESOLVE
AC_OUTPUT
AX_INIT_QT
])

@ -1,43 +1,33 @@
Summary: @DESCRIPTION@
Name: @PACKAGE_NAME@
Version: @VERSION@
Release: @BUILD_NUMBER@%{?dist}
Release: @BUILD_NUMBER@.@DISTRO@
License: LGPL
Group: Applications/...
Group: @RPM_GROUP@
Source0: %{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
BuildRequires: gnupg, subversion, make, automake, autoconf, rpm-build, doxygen, java-openjdk
%if 0%{?fedora} != 20
BuildRequires: graphviz
%endif
%if 0%{?fedora} || 0%{?rhel} || 0%{?rhl} || 0%{?centos} || 0%{?centos_ver} || 0%{?centos_version} || 0%{?mageia}
BuildRequires: which, pkgconfig
%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
%else
BuildRequires: gpg, redhat-lsb
%endif
%if ! ( 0%{?centos} || 0%{?centos_ver} || 0%{?centos_version} )
BuildRequires: mscgen
BuildRequires: which, pkgconfig, gnupg, expect, subversion, make, automake, autoconf, rpm-build, doxygen, graphviz, java-openjdk @RPM_BUILD_DEPEND@ @RPM_DEPEND_IFEXISTS@
#### os dependent definitions ####
%if 0%{?suse_version} || 0%{?sles_version}
BuildRequires: lsb-release
%else
%endif
%else%if 0%{?suse_version} || 0%{?sles_version}
BuildRequires: pkg-config, lsb-release
%if 0%{?suse_version} < 1200 || 0%{?sles_version} < 1200
%if 0%{?mageia}
BuildRequires: rpm-sign, lsb-release
%else
BuildRequires: rpm-sign, redhat-lsb
%endif
%endif
%if ! 0%{?centos}
BuildRequires: mscgen
%endif
%endif%endif
%description
@README@
%global debug_package %{nil}
%prep
%setup -q
@ -57,9 +47,9 @@ rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root,-)
/usr/share/@PACKAGE_NAME@/*
/usr/share/@PACKAGE_NAME@
%doc
/usr/share/doc/packages/@PACKAGE_NAME@/*
/usr/share/doc

@ -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
@ -147,7 +148,9 @@ GENERATED FILES
* src/makefile.am - if you enabled AX_USE_CXX
* src/version.hxx - if you enabled AX_USE_CXX
* src/version.cxx - if you enabled AX_USE_CXX
* html/makefile.am - if you enabled AX_BUILD_HTML
* etc/makefile.am - if you enable AX_USE_ETC
* html/makefile.am - if you enabled AX_BUILD_HTML or AX_BUILD_HTML_NPM
* html/package.json.in - if you enabled AX_BUILD_HTML_NPM
* 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
@ -222,7 +225,7 @@ FILE DEPENDENCIES
configuration a dependent, i.e.:
* test/makefile.am depends on AX_USE_LIBTOOL
* html/makefile.am depends on AX_BUILD_HTML
* html/makefile.am depends on AX_BUILD_HTML or AX_BUILD_HTML_NPM
* doc/doxyfile.in depends on AX_BUILD_EXAMPLES
* debian/control.in depends on AX_USE_DOXYGEN, AX_USE_PERLDOC,
AX_USE_CPPUNIT AX_CXX_QT, AX_CHECK_QT, AX_REQUIRE_QT, AX_USE_LIBTOOL
@ -256,6 +259,7 @@ FILES
number. In git, git rev-list --all --count is used.
The following macros are supported in configure.ac:
* Enable C++: AX_USE_CXX
* Enable system config files in /etc: AX_USE_ETC
* Enable LibTool library creation: AX_USE_LIBTOOL
* Enable Scripts: AX_USE_SCRIPTS
* Enable NodeJS project: AX_USE_NODEJS
@ -299,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
@ -372,7 +381,7 @@ run() {
testtag() {
local IFS="|"
egrep -q '^ *'"($*)" configure.ac
egrep -q '^ *'"($*)"' *(\(.*)? *$' configure.ac
}
contains() {
@ -536,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
@ -569,6 +579,7 @@ AX_INIT_STANDARD_PROJECT
# requirements, uncomment, what you need:
#AX_USE_CXX
#AX_USE_ETC
#AX_USE_LIBTOOL
#AX_USE_SCRIPTS
#AX_USE_NODEJS
@ -580,6 +591,7 @@ AX_INIT_STANDARD_PROJECT
#AX_BUILD_TEST
#AX_BUILD_EXAMPLES
#AX_BUILD_HTML
#AX_BUILD_HTML_NPM
# qt features, uncomment, what you need:
#AX_CHECK_QT([QT], [QtCore QtGui QtNetwork], [QtWidgets])
@ -587,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)
@ -627,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
@ -664,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 <<EOF
@ -859,6 +872,13 @@ namespace NAMESPACE {
const std::string IDENT("\$Id: " PACKAGE_STRING);
}
EOF
to --condition AX_USE_ETC etc/makefile.am <<EOF
${HEADER}pkgsysconfdir = \${sysconfdir}/@PACKAGE_NAME@
dist_pkgsysconf_DATA =
MAINTAINERCLEANFILES = makefile.in
EOF
to --condition AX_USE_SCRIPTS scripts/makefile.am <<EOF
${HEADER}dist_bin_SCRIPTS =
@ -1071,7 +1091,9 @@ to --condition AX_USE_NODEJS nodejs/etc/systemd/system/${PACKAGE_NAME}.service <
Description=$(head -1 README)
[Service]
ExecStart=/usr/bin/nodejs /usr/share/${PACKAGE_NAME}/nodejs/${PACKAGE_NAME} > /var/log/${PACKAGE_NAME}.log
ExecStart=/usr/bin/nodejs /usr/share/${PACKAGE_NAME}/nodejs/${PACKAGE_NAME}
StandardOutput=journal
StandardError=journal
Restart=on-abort
[Install]
@ -1268,13 +1290,64 @@ ${HEADER}AM_CPPFLAGS = -I\${top_srcdir}/src -I\${top_builddir}/src
AM_LDFLAGS = -L\${abs_top_builddir}/src/.libs
LDADD = -l${PACKAGE_NAME#lib}
exampledir = ${docdir}/examples
example_DATA =
MAINTAINERCLEANFILES = makefile.in
EOF
to --condition AX_BUILD_HTML html/makefile.am <<EOF
${HEADER}EXTRA_DIST = \${www_DATA}
to --condition AX_BUILD_HTML_NPM html/package.json.in <<EOF
{
"name": "@PACKAGE_NAME@",
"version": "@PACKAGE_VERSION@",
"private": true,
"dependencies": {
},
"description": "@DESCRIPTION@",
"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_BUILD_HTML|AX_BUILD_HTML_NPM' html/makefile.am <<EOF
${HEADER}EXTRA_DIST = $(testtag AX_BUILD_HTML_NPM && echo "package.json.in")
wwwdir = \${pkgdatadir}/html
www_DATA =
www_DATA = $(testtag AX_BUILD_HTML_NPM && echo "package.json")
dist_www_DATA =
$(if testtag AX_BUILD_HTML_NPM; then
cat<<EOF2
all: node_modules
node_modules: package.json.in
HOME=. npm install
clean-local:
-rm -r node_modules .npm
install-data-hook:
test -d \$(DESTDIR)\${wwwdir} || mkdir -p \$(DESTDIR)\${wwwdir}
chmod -R u+w \$(DESTDIR)\${wwwdir}
cp -r . \$(DESTDIR)\${wwwdir}
uninstall-local:
-chmod -R u+w \$(DESTDIR)\${wwwdir}
-rm -rf \$(DESTDIR)\${wwwdir}
EOF2
fi)
MAINTAINERCLEANFILES = makefile.in
EOF
@ -1490,7 +1563,7 @@ $( if testtag AX_USE_LIBTOOL; then
Package: @PACKAGE_NAME@-dev
Section: libdevel
Architecture: any
Depends: @PACKAGE_NAME@ (= \${binary:Version}), ${BUILD_DEPENDS}${RUN_DEPENDS} @DEB_DEPEND@ @DEB_BUILD_DEPEND@ @DEB_DEPEND_IFEXISTS@
Depends: @PACKAGE_NAME@ (= \${binary:Version}), ${BUILD_DEPENDS}${RUN_DEPENDS} @DEB_BUILD_DEPEND@ @DEB_DEPEND_IFEXISTS@
Description: @DESCRIPTION@ - Development Package
@README_DEB@
EOF2
@ -1533,71 +1606,63 @@ to --condition AX_USE_RPM_PACKAGING ${PACKAGE_NAME}.spec.in <<EOF
Summary: @DESCRIPTION@
Name: @PACKAGE_NAME@
Version: @VERSION@
Release: @BUILD_NUMBER@%{?dist}
Release: @BUILD_NUMBER@.@DISTRO@
License: LGPL
Group: $(if testtag AX_USE_LIBTOOL; then
echo Development/Libraries/C++;
else
echo Applications/...;
echo @RPM_GROUP@;
fi)
$(if testtag AX_RPM_DEPEND; then echo "Requires: @RPM_DEPEND@"; fi)
Source0: %{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
BuildRequires: gnupg, ${VCSDEPENDS_RPM} make, automake, autoconf, rpm-build$(
BuildRequires: which, pkgconfig, gnupg, expect, ${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";
if testtag AX_USE_CPPUNIT; then
echo -n ", cppunit-devel"
fi
if testtag AX_USE_DOXYGEN; then
echo -n ", doxygen, java-openjdk";
echo -n ", doxygen, graphviz, java-openjdk";
fi
if testtag AX_USE_PERLDOC; then
echo -n ", libpod-tree-perl";
fi
)
%if 0%{?fedora} != 20
$(if testtag AX_USE_DOXYGEN; then echo -n "BuildRequires: graphviz"; fi)
) @RPM_BUILD_DEPEND@ @RPM_DEPEND_IFEXISTS@
#### os dependent definitions ####
%if 0%{?suse_version} || 0%{?sles_version}
BuildRequires: lsb-release$(
if testtag AX_REQUIRE_QT || testtag AX_CHECK_QT; then
echo -n ", libqt5-qtbase-devel, libqt5-qttools, libqt5-linguist-devel, libQt5WebKit5-devel libqt5-qtwebengine-devel libQt5WebKitWidgets-devel";
fi)
%else
$(
if testtag AX_REQUIRE_QT || testtag AX_CHECK_QT; then
echo -n "BuildRequires: qt5-qtbase-devel, qt5-qttools-devel, qt5-qtwebkit-devel";
fi)
%if 0%{?mageia}
BuildRequires: rpm-sign, lsb-release
%else
BuildRequires: rpm-sign, redhat-lsb
%endif
%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
)
$(
if testtag AX_USE_DOXYGEN; then cat <<EOS
%if ! 0%{?centos}
BuildRequires: mscgen
%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)
EOS
fi
if testtag AX_USE_LIBTOOL; then cat <<EOS
%if 0%{?mageia}
BuildRequires: libtool, libltdl-devel
%else
$(if testtag AX_REQUIRE_QT || testtag AX_CHECK_QT AX_REQUIRE_QT; then echo -n "BuildRequires: qt-devel"; fi)
BuildRequires: libtool, libtool-ltdl-devel
%endif
%else%if 0%{?suse_version} || 0%{?sles_version}
BuildRequires: pkg-config, lsb-release$(
if testtag AX_USE_CPPUNIT; then
echo -n ", libcppunit-devel";
EOS
fi)
%if 0%{?suse_version} < 1200 || 0%{?sles_version} < 1200
$(if testtag AX_REQUIRE_QT || testtag AX_CHECK_QT AX_REQUIRE_QT; then echo -n "BuildRequires: libqt4-devel, qt4-x11-tools, libQtWebKit-devel"; fi)
%else
$(if testtag AX_REQUIRE_QT || testtag AX_CHECK_QT AX_REQUIRE_QT; then echo -n "BuildRequires: libqt5-qtbase-devel, libqt5-qttools, libQt5WebKit5-devel"; fi)
%endif
%endif%endif
%description
@README@
@ -1628,32 +1693,21 @@ rm -rf \$RPM_BUILD_ROOT
%files
%defattr(-,root,root,-)
$(if testtag AX_USE_LIBTOOL; then
echo '/usr/%_lib/@PACKAGE_NAME@.so.*'
echo '/usr/%_lib/*.so.*'
else
echo '/usr/bin/*'
echo '/usr/share/applications/*'
echo '/usr/bin'
echo '/usr/share/applications'
fi)
/usr/share/@PACKAGE_NAME@
%doc
$(if testtag AX_USE_LIBTOOL; then
cat <<EOF2
/usr/share/doc/packages/@PACKAGE_NAME@/AUTHORS
/usr/share/doc/packages/@PACKAGE_NAME@/COPYING
/usr/share/doc/packages/@PACKAGE_NAME@/ChangeLog
/usr/share/doc/packages/@PACKAGE_NAME@/INSTALL
/usr/share/doc/packages/@PACKAGE_NAME@/NEWS
/usr/share/doc/packages/@PACKAGE_NAME@/README
EOF2
else
echo '/usr/share/doc/packages/@PACKAGE_NAME@'
fi)
/usr/share/doc
$(if testtag AX_USE_LIBTOOL; then
cat <<EOF2
%package devel
Summary: @DESCRIPTION@
Group: Development/Libraries/C++
Requires: @PACKAGE_NAME@ = @VERSION@
Requires: @PACKAGE_NAME@ = @VERSION@ @RPM_BUILD_DEPEND@
%description devel
@README@
@ -1662,14 +1716,18 @@ This Package contains all files required for developement.
%files devel
%defattr(-,root,root,-)
/usr/%_lib/@PACKAGE_NAME@.so
/usr/%_lib/@PACKAGE_NAME@.a
/usr/%_lib/@PACKAGE_NAME@.la
/usr/%_lib/*.so
/usr/%_lib/*.a
/usr/%_lib/*.la
/usr/%_lib/pkgconfig
/usr/include/*
%doc
/usr/share/@PACKAGE_NAME@
/usr/share/doc/packages/@PACKAGE_NAME@/html
$(if testtag AX_USE_DOXYGEN AX_USE_PERLDOC; then
echo '/usr/share/doc/packages/@PACKAGE_NAME@/html'
fi)
$(if testtag AX_BUILD_EXAMPLES; then
echo '/usr/share/doc/packages/@PACKAGE_NAME@/examples'
fi)
EOF2
fi)
@ -1680,6 +1738,9 @@ SUBDIRS=""
if testtag AX_USE_CXX; then
SUBDIRS="${SUBDIRS} src"
fi
if testtag AX_USE_ETC; then
SUBDIRS="${SUBDIRS} etc"
fi
if testtag AX_BUILD_TEST AX_USE_CPPUNIT; then
SUBDIRS="${SUBDIRS} test"
fi
@ -1745,39 +1806,41 @@ Requires: @PKG_REQUIREMENTS@
EOF
to build-in-docker.conf <<EOF
${HEADER}# Use Ubuntu Universe Repository
repos+=("Ubuntu:::universe")
repos+=("ubuntu:::universe")
# Use Marc Wäckerlin'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")
repos+=("debian|ubuntu:::https://dev.marc.waeckerlin.org/repository:::https://dev.marc.waeckerlin.org/repository/@DISTRIBUTOR@/marc-waeckerlin.repo")
keys+=("https://dev.marc.waeckerlin.org/repository/PublicKey")
# centos requires epel-release for some packages, such as Qt WebKit
packages+=("centos:::epel-release")
EOF
#### Cleanup If Makefile Exists ####
if test -f makefile; then
run --no-check make distclean
fi
#### Bootstrap Before Configure ####
run --no-check vcs2cl
run aclocal
if testtag AX_USE_LIBTOOL; then run libtoolize --force; fi
run automake -a
run autoconf
#### Run Configure If User Requires ####
if test "$configure" -eq 1; then
./configure $* || exit 1
fi
#### Run Make If User Requires ####
if test "$build" -eq 1; then
make $buildtarget || exit 1
run --no-check make maintainer-clean
fi
#### Build In Docker If User Requires ####
if test "$docker" -eq 1; then
./build-in-docker.sh || exit 1
./build-in-docker.sh $buildtarget $* || exit 1
else
#### Bootstrap Before Configure ####
run --no-check vcs2cl
run aclocal
if testtag AX_USE_LIBTOOL; then run libtoolize --force; fi
run automake -a
run autoconf
#### Run Configure If User Requires ####
if test "$configure" -eq 1; then
./configure $* || exit 1
fi
#### Run Make If User Requires ####
if test "$build" -eq 1; then
make $buildtarget || exit 1
fi
fi

@ -7,7 +7,7 @@ if test "${arch}" = "amd64"; then
myarch="amd64|i386"
fi
mode="deb"
img="ubuntu:latest"
img="mwaeckerlin/ubuntu:latest"
repos=()
keys=()
envs=("-e LANG=${LANG}" "-e HOME=${HOME}" "-e TERM=xterm" "-e DEBIAN_FRONTEND=noninteractive" "-e DEBCONF_NONINTERACTIVE_SEEN=true")
@ -82,11 +82,16 @@ while test $# -gt 0; do
(-m|--mode) shift;
mode="$1"
case "$mode" in
(deb|apt) img="ubuntu:latest";;
(deb|apt) img="mwaeckerlin/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}";;
(win)
img="mwaeckerlin/ubuntu:latest"; host="${host:---host=i686-w64-mingw32}"
targets="all install"
flags+=("--prefix=/workdir/usr")
packages+=("mingw-w64")
;;
(*)
echo "**** ERROR: unknown mode '$1', try --help" 1>&2
exit 1
@ -167,7 +172,8 @@ function traperror() {
echo
fi
if [ "$wait" -eq 1 ]; then
echo " ... now you can access the docker container:"
echo " ... now you can access the docker container as root or user:"
echo " docker exec -it ${DOCKER_ID} bash"
echo " docker exec -u $(id -u) -it ${DOCKER_ID} bash"
echo -n " ... press enter to cleanup: "
read
@ -180,13 +186,7 @@ function traperror() {
exit $e
fi
done
if [ "$wait" -eq 1 ]; then
echo " ... now you can access the docker container:"
echo " docker exec -u $(id -u) -it ${DOCKER_ID} bash"
echo -n " ... press enter to cleanup: "
read
fi
echo -n " SUCCESS ... cleanup docker: "
echo -n "SUCCESS ... cleanup docker: "
docker rm -f "${DOCKER_ID}"
exit 0
}
@ -195,21 +195,27 @@ function ifthenelse() {
arg="$1"
shift
cmd="$*"
DISTRIBUTOR=$(docker exec ${DOCKER_ID} lsb_release -si | sed 's, .*,,' | tr [:upper:] [:lower:])
CODENAME=$(docker exec ${DOCKER_ID} lsb_release -cs)
ARCH=$((docker exec ${DOCKER_ID} which dpkg > /dev/null 2> /dev/null && docker exec ${DOCKER_ID} dpkg --print-architecture) || echo amd64)
if test "${arg/:::/}" = "${arg}"; then
docker exec ${DOCKER_ID} bash -c "${cmd//ARG/${arg}}"
docker exec ${DOCKER_ID} bash -c "${cmd//ARG/${arg//@DISTRIBUTOR@/${DISTRIBUTOR}}}"
else
os="${arg%%:::*}"
thenpart="${arg#*:::}"
if test "${thenpart/:::/}" = "${thenpart}"; then
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=
if test "${thenpart/:::/}" != "${thenpart}"; then
elsepart="${thenpart##*:::}"
thenpart="${thenpart%:::*}"
thenpart="${thenpart%%:::*}"
fi
if [[ "${DISTRIBUTOR}-${CODENAME}-${ARCH}" =~ ${os} ]]; then
if test -n "${thenpart}"; then
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)-$((which dpkg > /dev/null 2> /dev/null && dpkg --print-architecture) || echo amd64)" =~ ${os} ]]; then true; else '"${cmd//ARG/${elsepart}}"'; fi'
fi
docker exec ${DOCKER_ID} bash -c "${cmd//ARG/${thenpart//@DISTRIBUTOR@/${DISTRIBUTOR}}}"
fi
else
if test -n "${elsepart}"; then
docker exec ${DOCKER_ID} bash -c "${cmd//ARG/${elsepart//@DISTRIBUTOR@/${DISTRIBUTOR}}}"
fi
fi
fi
}
@ -231,7 +237,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 +283,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"
@ -285,20 +296,22 @@ EOF
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))
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 false))
ifthenelse "${repo}" "${INSTALL_REPO} 'ARG'"
((++i))
done
for package in "${packages[@]}"; do
ifthenelse "${package}" "${INSTALL_TOOL} ARG"
done
for command in "${commands[@]}"; do
ifthenelse "${command}" "ARG"
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[@]}"

@ -10,27 +10,18 @@
m4_define(x_package_name, bootstrap-build-environment) # project's name
m4_define(x_major, 1) # project's major version
m4_define(x_minor, 0) # project's minor version
m4_define(x_minor, 1) # project's minor version
m4_define(x_least_diff, 147) # project's minor version
m4_include(ax_init_standard_project.m4)
AC_INIT(x_package_name, x_version, x_bugreport, x_package_name)
AM_INIT_AUTOMAKE([1.9 tar-pax])
AX_INIT_STANDARD_PROJECT
# requirements, uncomment, what you need:
#AX_USE_CXX
#AX_USE_LIBTOOL
AX_USE_SCRIPTS
AX_USE_DOXYGEN
AX_USE_DEBIAN_PACKAGING
AX_USE_RPM_PACKAGING
#AX_USE_CPPUNIT
#AX_BUILD_EXAMPLES
#AX_BUILD_HTML
# qt features, uncomment, what you need:
#AX_CHECK_QT([QT], [QtCore QtGui QtNetwork], [QtWidgets])
#AX_REQUIRE_QT([QT], [QtCore QtGui QtNetwork], [QtWidgets])
#AX_QT_NO_KEYWORDS
AX_USE_DEBIAN_PACKAGING([devel])
AX_USE_RPM_PACKAGING([Development/Tools])
# create output
AC_OUTPUT
AX_OUTPUT

6
debian/control.in vendored

@ -1,12 +1,12 @@
Source: @PACKAGE_NAME@
Priority: extra
Maintainer: @PACKAGER@
Build-Depends: debhelper, fakeroot, 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 @DEB_BUILD_DEPEND@ @DEB_DEPEND_IFEXISTS@
Package: @PACKAGE_NAME@
Section: development
Section: @DEB_SECTION@
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Depends: ${shlibs:Depends}, ${misc:Depends} @DEB_DEPEND@
Description: @DESCRIPTION@
@README_DEB@

2
debian/rules vendored

@ -2,7 +2,7 @@
##
## This file has been added:
## - by bootstrap.sh
## - on Tue, 03 November 2015 16:25:55 +0100
## - on Thu, 15 June 2017 11:32:17 +0200
## Feel free to change it or even remove and rebuild it, up to your needs
##
## 1 2 3 4 5 6 7 8

@ -51,7 +51,7 @@ PROJECT_BRIEF = @DESCRIPTION@
# and the maximum width should not exceed 200 pixels. Doxygen will copy the logo
# to the output directory.
PROJECT_LOGO = @PROJECT_LOGO@
PROJECT_LOGO = @top_srcdir@/@PACKAGE_LOGO@
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
# into which the generated documentation will be written. If a relative path is
@ -221,11 +221,15 @@ TAB_SIZE = 2
# newlines.
ALIASES = "id=\par File-ID\n"
ALIASES += "author=<a href="@AUTHOR_URL@" target="_blank">@AUTHOR_NAME@</a>"
ALIASES += "readme=@README_HTML@"
ALIASES += "description=@DESCRIPTION@"
ALIASES += "api=\xrefitem api \"API Call\" \"\""
ALIASES += "mutex=\par Reentrant:\nAccess is locked with mutex @c "
ALIASES += "instancemutex=\par Reentrant:\nAccess is locked with per instance mutex @c "
ALIASES += "classmutex=\par Reentrant:\nAccess is locked with class static mutex @c "
ALIASES += "license=\par License\n"
ALIASES += "copy=\par Copyright\n"
ALIASES += "copy=\par Copyright by <a href="@AUTHOR_URL@" target="_blank">@AUTHOR_NAME@</a>\n"
# This tag can be used to specify a number of word-keyword mappings (TCL only).
# A mapping has the form "name=value". For example adding "class=itcl::class"
@ -769,7 +773,7 @@ INPUT_ENCODING = UTF-8
# *.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
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
# The RECURSIVE tag can be used to specify whether or not subdirectories should
# be searched for input files as well.
@ -800,7 +804,7 @@ EXCLUDE_SYMLINKS = NO
# Note that the wildcards are matched against the file with absolute path, so to
# exclude all test directories for example use the pattern */test/*
EXCLUDE_PATTERNS = moc_* uic_* qrc_*
EXCLUDE_PATTERNS = moc_* uic_* qrc_* version.[ch]xx
# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
# (namespaces, classes, functions, etc.) that should be excluded from the
@ -863,7 +867,7 @@ INPUT_FILTER =
# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
# patterns match the file name, INPUT_FILTER is applied.
FILTER_PATTERNS = *.wt=doxygen-webtester.sed
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
@ -1041,7 +1045,7 @@ HTML_FILE_EXTENSION = .html
# of the possible markers and block names see the documentation.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_HEADER =
HTML_HEADER = header.html
# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
# generated HTML page. If the tag is left blank doxygen will generate a standard
@ -1051,7 +1055,7 @@ HTML_HEADER =
# that doxygen normally uses.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_FOOTER =
HTML_FOOTER = footer.html
# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
# sheet that is used by each HTML page. It can be used to fine-tune the look of
@ -1074,7 +1078,7 @@ HTML_STYLESHEET =
# see the documentation.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_EXTRA_STYLESHEET =
HTML_EXTRA_STYLESHEET = style.css
# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
# other source files which should be copied to the HTML output directory. Note
@ -1130,7 +1134,7 @@ HTML_TIMESTAMP = YES
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_DYNAMIC_SECTIONS = NO
HTML_DYNAMIC_SECTIONS = YES
# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
# shown in the various tree structured indices initially; the user can expand
@ -1358,7 +1362,7 @@ DISABLE_INDEX = NO
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
GENERATE_TREEVIEW = NO
GENERATE_TREEVIEW = YES
# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
# doxygen will group on one line in the generated HTML documentation.

@ -2,7 +2,7 @@
##
## This file has been added:
## - by bootstrap.sh
## - on Tue, 03 November 2015 16:20:19 +0100
## - on Thu, 15 June 2017 11:32:17 +0200
## Feel free to change it or even remove and rebuild it, up to your needs
##
## 1 2 3 4 5 6 7 8

@ -2,7 +2,7 @@
##
## This file has been added:
## - by bootstrap.sh
## - on Tue, 03 November 2015 16:13:52 +0100
## - on Thu, 15 June 2017 11:32:17 +0200
## Feel free to change it or even remove and rebuild it, up to your needs
##
## 1 2 3 4 5 6 7 8
@ -10,6 +10,13 @@
SUBDIRS = scripts doc
doc_DATA = AUTHORS NEWS README COPYING INSTALL ChangeLog
dist_pkgdata_DATA = @PACKAGE_ICON@ ax_check_qt.m4 bootstrap.sh \
resolve-rpmbuilddeps.sh autogen.sh \
ax_cxx_compile_stdcxx_11.m4 build-in-docker.sh \
build-resource-file.sh \
ax_init_standard_project.m4 \
mac-create-app-bundle.sh resolve-debbuilddeps.sh \
sql-to-dot.sed
dist_doc_DATA = AUTHORS NEWS README COPYING INSTALL ChangeLog
MAINTAINERCLEANFILES = makefile.in

@ -35,24 +35,73 @@ 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
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
function pkg_exists() {
test -n "$(${DO} apt-cache policy -q ${1})"
}
function AX_PKG_CHECK() {
local DEV_DEB_DIST_PKG=
local DEV_DIST_PKG=
local pkg=
eval $4
if test -z "$2"; then
pkg=$1
else
pkg=$2
fi
pkg=${DEV_DEB_DIST_PKG:-${DEV_DIST_PKG:-${pkg}}-dev}
if pkg_exists "${pkg}"; then
echo $pkg
fi
}
function AX_PKG_REQUIRE() {
local DEV_DEB_DIST_PKG=
local DEV_DIST_PKG=
local pkg=
eval $6
if test -z "$2"; then
pkg=$1
else
pkg=$2
fi
if test -n "$4"; then
for f in $pkg $4; do
if pkg_exists "${f}-dev"; then
pkg=$f
break
fi
done
fi
echo ${DEV_DEB_DIST_PKG:-${DEV_DIST_PKG:-${pkg}}-dev}
}
DEPS+=" $(eval $(sed -n '/^ *AX_PKG_REQUIRE/{s,^ *\(AX_PKG_REQUIRE\) *(\(.*\)).*,\1 \2,;s.\[\([^]]*\)\],\?."\1".g;s,$,;,g;p}' configure.ac))"
DEPS+=" $(eval $(sed -n '/^ *AX_PKG_CHECK/{s,^ *\(AX_PKG_CHECK\) *(\(.*\)).*,\1 \2,;s.\[\([^]]*\)\],\?."\1".g;s,$,;,g;p}' configure.ac))"
for f in $(sed -n 's, *AX_\(DEB\|ALL\)_DEPEND_IFEXISTS(\([^)]*\)).*,\2,p' configure.ac); do
if pkg_exists "${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 pkg_exists "${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
install dpkg-dev
DEPS+=" $(LANG= ${DO} dpkg-checkbuilddeps 2>&1 | sed -n '/Unmet build dependencies/ { s,.*Unmet build dependencies: ,,g; s, ([^)]*),,g; s, *| *,|,g; p}')"
for pa in ${DEPS}; do
if test ${pa//|/} = ${pa}; then
if test "${pa//|/}" = "${pa}"; then
TO_INSTALL+=" ${pa}"
continue;
fi
@ -75,4 +124,10 @@ if test -n "${TO_INSTALL}" && ! install ${TO_INSTALL}; then
exit 1
fi
FILES="$(LANG= ${DO} dpkg-checkbuilddeps 2>&1 | sed -n '/Unmet build dependencies/ { s,.*Unmet build dependencies: ,,g; s, ([^)]*),,g; s, *| *,|,g; p}')"
if test -n "${FILES}"; then
echo "**** ERROR: Cannot install: " $FILES
exit 1
fi
echo "**** Success: All Dependencies Resolved"

@ -14,12 +14,78 @@ INSTALL_TOOL=${INSTALL_TOOL:-$((test -x /usr/bin/zypper && echo zypper install -
SCHROOTNAME="$1"
PACKAGE_NAME=$(sed -n 's/^ *m4_define(x_package_name, \(.*\)).*/\1/p' configure.ac)
TRAP_CMD=
TRAP_CMD="sleep ${SLEEP:-0};"
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
function pkg_exists() {
(test -x /usr/bin/zypper && zypper search -x "$1" 1>&2 > /dev/null) || \
(test -x /usr/bin/dnf && dnf list -q "$1" 1>&2 > /dev/null) || \
(test -x /usr/bin/yum && yum list -q "$1" 1>&2 > /dev/null) || \
(test -x /usr/sbin/urpmq && urpmq "$1" 1>&2 > /dev/null)
}
function AX_PKG_CHECK() {
local DEV_RPM_DIST_PKG=
local DEV_DIST_PKG=
local pkg=
eval $4
if test -z "$2"; then
pkg=$1
else
pkg=$2
fi
pkg=${DEV_RPM_DIST_PKG:-${DEV_DIST_PKG:-${pkg}}-devel}
if pkg_exists "${pkg}"; then
echo ${pkg}
fi
}
function AX_PKG_REQUIRE() {
local DEV_RPM_DIST_PKG=
local DEV_DIST_PKG=
local pkg=
eval $6
if test -z "$2"; then
pkg=$1
else
pkg=$2
fi
if test -n "$4"; then
for f in $pkg $4; do
if pkg_exists "${f}-devel"; then
pkg=$f
break
fi
done
fi
echo ${DEV_RPM_DIST_PKG:-${DEV_DIST_PKG:-${pkg}}-devel}
}
DEPS+=" $(eval $(sed -n '/^ *AX_PKG_REQUIRE/{s,^ *\(AX_PKG_REQUIRE\) *(\(.*\)).*,\1 \2,;s.\[\([^]]*\)\],\?."\1".g;s,$,;,g;p}' configure.ac))"
DEPS+=" $(eval $(sed -n '/^ *AX_PKG_CHECK/{s,^ *\(AX_PKG_CHECK\) *(\(.*\)).*,\1 \2,;s.\[\([^]]*\)\],\?."\1".g;s,$,;,g;p}' configure.ac))"
for f in $(sed -n 's, *AX_\(RPM\|ALL\)_DEPEND_IFEXISTS(\([^)]*\)).*,\2,p' configure.ac); do
if pkg_exists "${f}"; then
DEPS+=" ${f}"
fi
done
for f in $(sed -n 's, *AX_\(RPM\|ALL\)_DEPEND_IFEXISTS_DEV(\([^)]*\)).*,\2,p' configure.ac); do
if pkg_exists "${f}-devel"; 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,@[^@]*@, dummytext,g' > ${PACKAGE_NAME}.spec
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
TGZFILE=$(sed -n '/^Name: */{s///;h};/^Version: */{s///;H;x;s/\n/-/;s/$/.tar.gz/;p}' ${PACKAGE_NAME}.spec)
@ -32,13 +98,23 @@ 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
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')
else
FILES=$(LANG= rpmbuild -bb --clean --nobuild --define "_topdir ." --define "_sourcedir ." ${PACKAGE_NAME}.spec 2>&1 | sed -n 's, is needed by.*,,p')
fi
if test -n "${FILES}"; then
echo "**** ERROR: Cannot install: " $FILES
exit 1
fi
echo "**** Success: All Dependencies Resolved"

@ -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
}

@ -274,9 +274,9 @@ AC_DEFUN([AX_QT_NO_KEYWORDS], [
])
AC_DEFUN([AX_INIT_QT], [
test -f src/makefile.in && cat >> src/makefile.in <<EOF
#### HERE
if test -n "${AX_ADDITIONAL_QT_RULES_HACK}"; then
test -f src/makefile.in && cat >> src/makefile.in <<EOF
${AX_ADDITIONAL_QT_RULES_HACK}
#### WE ARE
EOF
fi
])

@ -90,7 +90,7 @@ dnl refers to ${prefix}. Thus we have to use `eval' twice.
# $3 = filename of makefile.in
AC_DEFUN([AX_ADD_MAKEFILE_TARGET_DEP], [
sh_add_makefile_target_dep() {
sed -i -e ':a;/^'${1}':.*\\$/{N;s/\\\n//;ta};s/^'${1}':.*$/& '${2}'/' "${srcdir}/${3}"
sed -i -e ':a;/^'${1}':.*\\$/{N;s/\\\n//;ta};s/^'"${1}"':.*$/& '"${2}"'/' "${srcdir}/${3}"
if ! egrep -q "${1}:.* ${2}" "${srcdir}/${3}"; then
echo "${1}: ${2}" >> "${srcdir}/${3}"
fi

@ -1635,7 +1635,7 @@ BuildRequires: which, pkgconfig, gnupg, expect, ${VCSDEPENDS_RPM}make, automake,
%if 0%{?suse_version} || 0%{?sles_version}
BuildRequires: lsb-release$(
if testtag AX_REQUIRE_QT || testtag AX_CHECK_QT; then
echo -n ", libqt5-qtbase-devel, libqt5-qttools, libQt5WebKit5-devel libqt5-qtwebengine-devel libQt5WebKitWidgets-devel";
echo -n ", libqt5-qtbase-devel, libqt5-qttools, libqt5-linguist-devel, libQt5WebKit5-devel libqt5-qtwebengine-devel libQt5WebKitWidgets-devel";
fi)
%else
$(
@ -1695,25 +1695,12 @@ rm -rf \$RPM_BUILD_ROOT
$(if testtag AX_USE_LIBTOOL; then
echo '/usr/%_lib/*.so.*'
else
echo '/usr/bin/*'
echo '/usr/share/applications/*'
fi)
$(if testtag AX_USE_NODEJS AX_BUILD_HTML AX_BUILD_HTML_NPM; then
echo '/usr/share/@PACKAGE_NAME@'
echo '/usr/bin'
echo '/usr/share/applications'
fi)
/usr/share/@PACKAGE_NAME@
%doc
$(if testtag AX_USE_LIBTOOL; then
cat <<EOF2
/usr/share/doc/packages/@PACKAGE_NAME@/AUTHORS
/usr/share/doc/packages/@PACKAGE_NAME@/COPYING
/usr/share/doc/packages/@PACKAGE_NAME@/ChangeLog
/usr/share/doc/packages/@PACKAGE_NAME@/INSTALL
/usr/share/doc/packages/@PACKAGE_NAME@/NEWS
/usr/share/doc/packages/@PACKAGE_NAME@/README
EOF2
else
echo '/usr/share'
fi)
/usr/share/doc
$(if testtag AX_USE_LIBTOOL; then
cat <<EOF2

Loading…
Cancel
Save