diff --git a/ChangeLog b/ChangeLog index 82e6505..2db1bb4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2015-07-13 18:48 marc + + * configure.ac: pcsclite fails in precise + +2015-07-13 18:14 marc + + * debian/control.in: needs pcsclite to build + +2015-07-13 17:25 marc + + * ChangeLog, configure.ac: needs pkcs11 + 2015-05-10 16:30 marc * ChangeLog, ax_check_qt.m4, ax_init_standard_project.m4, diff --git a/ax_check_qt.m4 b/ax_check_qt.m4 index 61724b6..d211212 100644 --- a/ax_check_qt.m4 +++ b/ax_check_qt.m4 @@ -1,16 +1,16 @@ # SYNOPSIS # # Check if a module exists: -# AX_CXX_CHECK_QT([qt_prefix], [list-of-qt-modules], [optional-modules]) +# AX_CHECK_QT([qt_prefix], [list-of-qt-modules], [optional-modules]) # # Abort if a module does not exist: -# AX_CXX_REQUIRE_QT([qt_prefix], [list-of-qt-modules], [optional-modules]) +# AX_REQUIRE_QT([qt_prefix], [list-of-qt-modules], [optional-modules]) # # DESCRIPTIONS # # qt_prefix # -# Each call to AX_CXX_CHECK_QT should have a different prefix +# Each call to AX_CHECK_QT should have a different prefix # value (with a few exceptions discussed later on). This value, # usually provided in uppercase, is used as prefix to the # variables holding the compiler flags and libraries reported by @@ -38,24 +38,31 @@ AC_DEFUN([AX_CXX_QT_TOOL], [ + PKG_PROG_PKG_CONFIG 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} - $1=${$1:-$(pkg-config --variable=$2_location QtCore)} - $1=${$1:-$(pkg-config --variable=host_bins QtCore)/$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" > /dev/null; then + if which "$2-qt5" > /dev/null; then + $1=$2-qt5 + elif which "$2" > /dev/null; then $1=$2 + elif which "$2-qt4" > /dev/null; then + $1=$2-qt4 else HAVE_$1=0 $1="" fi fi AC_SUBST($1) - AM_CONDITIONAL(HAVE_$1, test $HAVE_$1 -eq 1) + AM_CONDITIONAL(HAVE_$1, test $HAVE_[$1] -eq 1) if test $HAVE_$1 -eq 1; then AC_MSG_RESULT([$$1]) else @@ -73,24 +80,6 @@ AC_DEFUN([AX_CXX_QT_TOOLS], [ AX_CXX_QT_TOOL(LRELEASE, lrelease) ]) -AC_DEFUN([AX_CHECK_VALID_FLAG], [ - AC_MSG_CHECKING([m4_default([$2], [for valid flag in "$1"])]) - save_cxxflags="$CXXFLAGS" - newflag="no" - for test_flag in $1; do - CXXFLAGS+=" ${test_flag}" - AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [ - newflag="$test_flag" - AM_CXXFLAGS+=" ${test_flag}" - CXXFLAGS="$save_cxxflags" - break; - ]) - CXXFLAGS="$save_cxxflags" - done - AC_SUBST(AM_CXXFLAGS) - AC_MSG_RESULT([$newflag]) -]) - AC_DEFUN([AX_CHECK_QT], [ qt_modules="$2" qt_modules_optional="$3" @@ -100,28 +89,20 @@ AC_DEFUN([AX_CHECK_QT], [ PKG_CHECK_MODULES([$1]5, [${qt_modules//Qt/Qt5}], [ HAVE_$1=1 AC_DEFINE([HAVE_$1]) - AM_CPPFLAGS+=" ${[$1]5_CFLAGS}" + QTDIR=$(${PKG_CONFIG} --variable=prefix Qt5Core) + QT_PLUGIN_PATH=${QTDIR}/share/qt5/plugins + CPPFLAGS+=" ${[$1]5_CFLAGS}" MOC_FLAGS+=" -DHAVE_$1=1 ${[$1]5_CFLAGS}" - AM_CXXFLAGS+=" ${[$1]5_CFLAGS}" + CXXFLAGS+=" ${[$1]5_CFLAGS}" LIBS+=" ${[$1]5_LIBS}" - modules=${qt_modules//Qt/Qt5} - if test -z "$PKG_REQUIREMENTS"; then - PKG_REQUIREMENTS="${modules// /, }" - else - PKG_REQUIREMENTS="${PKG_REQUIREMENTS}, ${modules// /, }" - fi + PKG_REQUIREMENTS+=" ${qt_modules//Qt/Qt5}" if test -n "${qt_modules_optional}"; then PKG_CHECK_MODULES([$1]5_OPTIONAL, [${qt_modules_optional//Qt/Qt5}], [ - AM_CPPFLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}" + CPPFLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}" MOC_FLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}" - AM_CXXFLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}" + CXXFLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}" LIBS+=" ${[$1]5_OPTIONAL_LIBS}" - modules=${qt_modules_optional//Qt/Qt5} - if test -z "$PKG_REQUIREMENTS"; then - PKG_REQUIREMENTS="${modules// /, }" - else - PKG_REQUIREMENTS="${PKG_REQUIREMENTS}, ${modules// /, }" - fi + PKG_REQUIREMENTS+=" ${qt_modules_optional//Qt/Qt5}" ], [ AC_MSG_NOTICE([Not found: ${qt_modules_optional//Qt/Qt5}]) ]) @@ -130,41 +111,41 @@ AC_DEFUN([AX_CHECK_QT], [ PKG_CHECK_MODULES([$1], [${qt_modules}], [ HAVE_$1=1 AC_DEFINE([HAVE_$1]) - AM_CPPFLAGS+=" ${$1_CFLAGS}" + QTDIR=$(${PKG_CONFIG} --variable=prefix QtCore) + QT_PLUGIN_PATH=${QTDIR}/share/qt/plugins + CPPFLAGS+=" ${$1_CFLAGS}" MOC_FLAGS+=" -DHAVE_$1=1 ${$1_CFLAGS}" - AM_CXXFLAGS+=" ${$1_CFLAGS}" + CXXFLAGS+=" ${$1_CFLAGS}" LIBS+=" ${$1_LIBS}" - modules=${qt_modules} - if test -z "$PKG_REQUIREMENTS"; then - PKG_REQUIREMENTS="${modules// /, }" - else - PKG_REQUIREMENTS="${PKG_REQUIREMENTS}, ${modules// /, }" - fi + PKG_REQUIREMENTS+=" ${qt_modules}" if test -n "$3"; then PKG_CHECK_MODULES($1_OPTIONAL, [${qt_modules_optional}], [ - AM_CPPFLAGS+=" ${$1_OPTIONAL_CFLAGS}" + CPPFLAGS+=" ${$1_OPTIONAL_CFLAGS}" MOC_FLAGS+=" ${$1_OPTIONAL_CFLAGS}" - AM_CXXFLAGS+=" ${$1_OPTIONAL_CFLAGS}" + CXXFLAGS+=" ${$1_OPTIONAL_CFLAGS}" LIBS+=" ${$1_OPTIONAL_LIBS}" - modules=${qt_modules_optional} - if test -z "$PKG_REQUIREMENTS"; then - PKG_REQUIREMENTS="${modules// /, }" - else - PKG_REQUIREMENTS="${PKG_REQUIREMENTS}, ${modules// /, }" - fi + PKG_REQUIREMENTS+=" ${qt_modules_optional}" ], [ AC_MSG_NOTICE([Not found: ${qt_modules_optional}]) ]) fi ], [HAVE_$1=0]) ]) - AM_CONDITIONAL(HAVE_$1, test $HAVE_$1 -eq 1) - AX_CHECK_VALID_FLAG([-fPIC -fPIE], [position independent code flag]) - AC_SUBST(AM_CPPFLAGS) + AM_CONDITIONAL(HAVE_$1, test $HAVE_[$1] -eq 1) + AX_CHECK_VALID_CXX_FLAG([-fPIC -fPIE], [position independent code flag]) + if test "${MINGW}" != "no"; then + AX_CHECK_VALID_CXX_FLAG([-Wl,-subsystem,windows], [windows console flag]) + fi + AC_SUBST(QTDIR) + AC_SUBST(QT_PLUGIN_PATH) + AC_SUBST(CPPFLAGS) AC_SUBST(MOC_FLAGS) - AC_SUBST(AM_CXXFLAGS) + AC_SUBST(CXXFLAGS) AC_SUBST(PKG_REQUIREMENTS) AX_ADDITIONAL_QT_RULES_HACK=' + +LANGUAGE_FILE_BASE ?= translations + ui_%.hxx: %.ui $(UIC) -o [$][@] $< @@ -172,19 +153,31 @@ moc_%.cxx: %.hxx $(MOC) $(MOC_FLAGS) -o [$][@] $< qrc_%.cxx: %.qrc - $(RCC) -o [$][@] $<' + $(RCC) -o [$][@] -name ${<:%.qrc=%} $< AC_SUBST(AX_ADDITIONAL_QT_RULES_HACK) -]) + +#%.qrc: % +# cwd=$$(pwd) && cd $< && $(RCC) -project -o $${cwd}/[$][@] + +%.qm: %.ts + ${LRELEASE} $< -qm [$][@] + +#%.ts: ${LANGUAGE_FILES} +# ${LUPDATE} -no-obsolete \ +# -target-language ${@:${LANGUAGE_FILE_BASE}_%.ts=%} \ +# -ts [$][@] $< + +']) # SYNOPSIS # -# AX_CXX_CHECK_QT([qt_prefix], [list-of-qt-modules], [optional-modules]) +# AX_CHECK_QT([qt_prefix], [list-of-qt-modules], [optional-modules]) # # DESCRIPTIONS # # qt_prefix # -# Each call to AX_CXX_CHECK_QT should have a different prefix +# Each call to AX_CHECK_QT should have a different prefix # value (with a few exceptions discussed later on). This value, # usually provided in uppercase, is used as prefix to the # variables holding the compiler flags and libraries reported by @@ -222,5 +215,5 @@ AC_DEFUN([AX_REQUIRE_QT], [ # AX_QT_NO_KEYWORDS AC_DEFUN([AX_QT_NO_KEYWORDS], [ - AM_CPPFLAGS+=" -DQT_NO_KEYWORDS" + CPPFLAGS+=" -DQT_NO_KEYWORDS" ]) diff --git a/ax_init_standard_project.m4 b/ax_init_standard_project.m4 index ece87b2..2ad3639 100644 --- a/ax_init_standard_project.m4 +++ b/ax_init_standard_project.m4 @@ -3,45 +3,44 @@ ## 1 2 3 4 5 6 7 8 ## 45678901234567890123456789012345678901234567890123456789012345678901234567890 +# m4_esyscmd_s does not exist on centos 5 and 6 +m4_define([mrw_esyscmd_s], [m4_normalize(m4_esyscmd([$1]))]) + # define least version number from subversion's revision number: # it is taken modulo 256 due to a bug on Apple's MacOSX -m4_define(x_least, m4_esyscmd_s( +m4_define(x_least, mrw_esyscmd_s([ SVN_REVISION="ERROR-UNDEFINED-REVISION-to-be-built-in-subdirectory-of-svn-checkout" for path in . .. ../..; do if svn info $path 2>&1 > /dev/null; then SVN_REVISION=$(LANG= svn info $path | sed -n 's/Last Changed Rev: //p') - (cd $path && svn2cl) break; fi done # Mac does not support LEAST > 255 echo $ECHO_N $(($SVN_REVISION%256)) -)) +])) # define version number from subversion's revision number: # it is taken modulo 256 due to a bug on Apple's MacOSX # add to x_minor if revision number is > 256 -m4_define(x_minor_fixed, m4_esyscmd_s( +m4_define(x_minor_diff, mrw_esyscmd_s([ SVN_REVISION="ERROR-UNDEFINED-REVISION-to-be-built-in-subdirectory-of-svn-checkout" for path in . .. ../..; do if svn info $path 2>&1 > /dev/null; then SVN_REVISION=$(LANG= svn info $path | sed -n 's/Last Changed Rev: //p') - (cd $path && svn2cl) break; - fi + fi; done # Mac does not support LEAST > 255 - echo $ECHO_N $((x_minor+$SVN_REVISION/256)) -)) + echo $ECHO_N $(($SVN_REVISION/256)) +])) # setup version number -m4_define(x_version, m4_esyscmd_s( - echo $ECHO_N x_major.x_minor_fixed.x_least -)) +m4_define(x_version, [x_major.m4_eval(x_minor+x_minor_diff).x_least]) ## bugreport mail address is taken from in first line of AUTHORS -m4_define(x_bugreport, m4_esyscmd_s( +m4_define(x_bugreport, mrw_esyscmd_s([ head -1 AUTHORS | \ sed -n 's,.*<\([-_.a-z0-9A-Z]*@[-_.a-z0-9A-Z]*\)>.*,\1,gp' -)) +])) m4_include(ax_check_qt.m4) @@ -68,7 +67,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 ':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 @@ -84,7 +83,7 @@ AC_DEFUN([AX_ADD_MAKEFILE_TARGET_DEP], [ # $1 = variable name AC_DEFUN([AX_SUBST], [ AC_SUBST([$1]) - tmp_var=$(echo "${$1}" | awk 1 ORS='\\n') + tmp_var=$(echo "${$1}" | awk 1 ORS='\\n' | sed 's,\\n$,,') tmp_var=${tmp_var//\"/\\\"} tmp_var=${tmp_var//\'/\'\"\'\"\'} tmp_var=${tmp_var//#/\\#} @@ -108,7 +107,15 @@ AC_DEFUN([AX_SUBST], [ # # configures the basic environment AC_DEFUN([AX_INIT_STANDARD_PROJECT], [ - AM_CPPFLAGS+=" '-DMAKE_STRING(X)=\#X' '-DNAMESPACE=${PACKAGE_NAME}'" + MINGW=no + MAC=no + case $host in + *mingw*) MINGW=yes;; + *darwin* | *rhapsody* | *macosx*) MAC=yes;; + esac + AM_CONDITIONAL(MINGW, test "$MINGW" = "yes") + AM_CONDITIONAL(MAC, test "$MAC" = "yes") + AM_CPPFLAGS+=" '-DMAKE_STRING(X)=\#X' '-DNAMESPACE=${PACKAGE_TARNAME//[^a-zA-Z0-9]/_}'" AX_SUBST(NUMBERS) AX_SUBST(HOME) README=$(tail -n +3 README) @@ -124,7 +131,7 @@ AC_DEFUN([AX_INIT_STANDARD_PROJECT], [ AX_SUBST(DISTRO) BUILD_NUMBER=${BUILD_NUMBER:-1} AX_SUBST(BUILD_NUMBER) - BUILD_DATE=$(LANG= date +"%a, %d %B %Y %H:%M:%S %z") + BUILD_DATE=$(LANG= date +"%a, %d %b %Y %H:%M:%S %z") AX_SUBST(BUILD_DATE) if test -f "${PROJECT_NAME}-logo.png"; then PROJECT_LOGO="${PROJECT_NAME}-logo.png" @@ -134,14 +141,29 @@ AC_DEFUN([AX_INIT_STANDARD_PROJECT], [ PROJECT_ICON="${PROJECT_NAME}-icon.png" fi AX_SUBST(PROJECT_ICON) + + AC_ARG_ENABLE(pedantic, + [AS_HELP_STRING([--enable-pedantic], + [enable all warnings and checks, abort on warnings])], + [have_pedantic="$enableval"; test "$enableval" = "yes" && \ + AM_CXXFLAGS="${AM_CXXFLAGS:-} -pedantic-errors -Wall -W -Wfloat-equal -Wundef -Wendif-labels -Wpointer-arith -Wcast-align -Wwrite-strings -Wconversion -Wsign-compare -Wmissing-format-attribute -Wno-multichar -Wpacked -Wredundant-decls -Werror -Wshadow -Wcast-qual -Wno-ctor-dtor-privacy"]) + dnl problem in libs: -Wshadow -Wcast-qual + dnl auto.hpp: -Wno-ctor-dtor-privacy (removed) + AM_CONDITIONAL(PEDANTIC, test "$enableval" = "yes") + if test "$have_pedantic" == "yes"; then + AC_MSG_NOTICE([Pedantic compile mode enabled! + - all warnings for GNU g++ are enabled + - all warnings result in an error + - doxygen warnings are treated as error too]); fi + AC_CONFIG_FILES([makefile]) AX_ADD_MAKEFILE_TARGET_DEP([clean-am], [clean-standard-project-targets], [makefile.in]) AX_ADD_MAKEFILE_TARGET_DEP([distclean-am], [distclean-standard-project-targets], [makefile.in]) AX_ADD_MAKEFILE_TARGET_DEP([maintainer-clean-am], [maintainer-clean-standard-project-targets], [makefile.in]) + test -f makefile.in && sed -i '1iEXTRA_DIST = ' makefile.in test -f makefile.in && cat >> makefile.in <> src/makefile.in <> html/makefile.in <> makefile.in < /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 + CPPFLAGS+=" ${$1_CFLAGS}" + CXXFLAGS+=" ${$1_CFLAGS}" + LIBS+=" ${$1_LIBS}" ]) # check if a specific package exists @@ -472,8 +491,8 @@ AC_DEFUN([AX_PKG_CHECK], [ PKG_PROG_PKG_CONFIG PKG_CHECK_MODULES([$1], [m4_default([$2], [$1])], [ HAVE_$1=1 - AM_CPPFLAGS+=" ${$1_CFLAGS}" - AM_CXXFLAGS+=" ${$1_CFLAGS}" + CPPFLAGS+=" ${$1_CFLAGS}" + CXXFLAGS+=" ${$1_CFLAGS}" LIBS+=" ${$1_LIBS}" if test -z "$PKG_REQUIREMENTS"; then PKG_REQUIREMENTS="m4_default([$2], [$1])" @@ -483,9 +502,126 @@ AC_DEFUN([AX_PKG_CHECK], [ ], [ HAVE_$1=0 ]) - AM_CONDITIONAL(HAVE_$1, test $HAVE_$1 -eq 1) + AM_CONDITIONAL(HAVE_$1, test $HAVE_[$1] -eq 1) AC_SUBST(HAVE_$1) - AC_SUBST(AM_CPPFLAGS) - AC_SUBST(AM_CXXFLAGS) + AC_SUBST(CPPFLAGS) + AC_SUBST(CXXFLAGS) AC_SUBST(PKG_REQUIREMENTS) ]) + +# make sure, a specific header exists +# - parameter: +# $1 = header name +AC_DEFUN([AX_REQUIRE_HEADER], [ + AC_CHECK_HEADER($1, [], [ + if test -n "$2"; then + found=0 + for d in $2; do + if test -f "${d}/$1"; then + AC_MSG_NOTICE([found file ${d}/$1]) + CPPFLAGS+=" -I${d}" + found=1 + break; + else + AC_MSG_NOTICE([not found file ${d}/$1]) + fi + done + fi + if test $found -eq 0; then + AC_MSG_ERROR([Header $1 not found]) + fi + ], []) + ], []) +]) + +# Check within a list of CPP-Flags for the first that is usable and +# configure it +# - parameter: +# $1 = white-space separated list of alternative flags +# $2 = module name (optional, if different from id) +AC_DEFUN([AX_CHECK_VALID_CPP_FLAG], [ + AC_MSG_CHECKING([m4_default([$2], [for valid flag in "$1"])]) + save_cppflags="$CPPFLAGS" + newflag="no" + for test_flag in $1; do + CPPFLAGS+=" ${test_flag}" + AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [ + newflag="$test_flag" + CPPFLAGS="$save_cppflags" + CPPFLAGS+=" ${test_flag}" + break; + ]) + CPPFLAGS="$save_cppflags" + done + AC_SUBST(CPPFLAGS) + AC_MSG_RESULT([$newflag in $CPPFLAGS]) +]) + +# Check within a list of CXX-Flags for the first that is usable and +# configure it +# - parameter: +# $1 = white-space separated list of alternative flags +# $2 = module name (optional, if different from id) +AC_DEFUN([AX_CHECK_VALID_CXX_FLAG], [ + AC_MSG_CHECKING([m4_default([$2], [for valid flag in "$1"])]) + save_cxxflags="$CXXFLAGS" + newflag="no" + for test_flag in $1; do + CXXFLAGS+=" ${test_flag}" + AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [ + newflag="$test_flag" + CXXFLAGS="$save_cxxflags" + CXXFLAGS+=" ${test_flag}" + break; + ]) + CXXFLAGS="$save_cxxflags" + done + AC_SUBST(CXXFLAGS) + AC_MSG_RESULT([$newflag in $CXXFLAGS]) +]) + +# Check within a list of C-Flags for the first that is usable and +# configure it +# - parameter: +# $1 = white-space separated list of alternative flags +# $2 = module name (optional, if different from id) +AC_DEFUN([AX_CHECK_VALID_C_FLAG], [ + AC_MSG_CHECKING([m4_default([$2], [for valid flag in "$1"])]) + save_cflags="$CFLAGS" + newflag="no" + for test_flag in $1; do + CFLAGS+=" ${test_flag}" + AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [ + newflag="$test_flag" + CFLAGS="$save_cflags" + CFLAGS+=" ${test_flag}" + break; + ]) + CFLAGS="$save_cflags" + done + AC_SUBST(CFLAGS) + AC_MSG_RESULT([$newflag in $CFLAGS]) +]) + +# Check within a list of LD-Flags for the first that is usable and +# configure it +# - parameter: +# $1 = white-space separated list of alternative flags +# $2 = module name (optional, if different from id) +AC_DEFUN([AX_CHECK_VALID_LD_FLAG], [ + AC_MSG_CHECKING([m4_default([$2], [for valid flag in "$1"])]) + save_ldflags="$LDFLAGS" + newflag="no" + for test_flag in $1; do + LDFLAGS+=" ${test_flag}" + AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [ + newflag="$test_flag" + LDFLAGS="$save_ldflags" + LDFLAGS+=" ${test_flag}" + break; + ]) + LDFLAGS="$save_ldflags" + done + AC_SUBST(LDFLAGS) + AC_MSG_RESULT([$newflag in $LDFLAGS]) +]) diff --git a/bootstrap.sh b/bootstrap.sh index 80805c8..3a1e50d 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -17,16 +17,17 @@ MY_NAME=${0##*/} PROJECT_PATH=$(pwd) DEFAULT_PROJECT_NAME=${PROJECT_PATH##*/} - configure=0 build=0 +buildtarget="distcheck" overwrite=0 rebuild=0 rebuildfiles=() while test $# -gt 0; do case "$1" in (--configure|-c) configure=1;; - (--build|-b) configure=1; build=1;; + (--build|-b) configure=1; build=1;; + (--target|-t) shift; configure=1; build=1; buildtarget="$1";; (--overwrite|-o) overwrite=1;; (--rebuild|-r) rebuild=1;; (--rebuild-file|-f) shift; rebuildfiles+=("$1");; @@ -41,7 +42,8 @@ SYNOPSIS OPTIONS --configure, -c call ./configure after initialization - --build, -c build, also call ./configure && make + --build, -b build, also call ./configure && make distcheck + --target, -t same as -b, but specify target instead of distcheck --overwrite, -o overwrite all basic files (bootstrap.sh, m4-macros) --rebuild, -r force rebuild of generated files, even if modified --rebuild-file, -f rebild specific file (can be added multiple times) @@ -101,12 +103,17 @@ GENERATED FILES * ax_init_standard_project.m4 - auxiliary macro definition file * ax_cxx_compile_stdcxx_11.m4 - auxiliary macro definition file * ax_check_qt.m4 - auxiliary macro definition file + * resolve-debbuilddeps.sh - script to install debian package dependencies + * mac-create-app-bundle.sh - script to create apple mac os-x app-bundle * AUTHORS - replace your name in AUTHORS before first run + * NEWS - empty file add your project's news + * README - add project description (first line is header, followed by an empty line) * configure.ac - global configuration file template * makefile.am - global makefile template * 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 * scripts/makefile.in - if you enabled AX_USE_SCRIPTS * doc/makefile.am - if you enabled AX_USE_DOXYGEN * doc/doxyfile.in - if you enabled AX_USE_DOXYGEN @@ -121,6 +128,7 @@ GENERATED FILES * debian/${DEFAULT_PROJECT_NAME}-dev.dirs - if you enabled AX_USE_DEBIAN_PACKAGING * debian/rules - if you enabled AX_USE_DEBIAN_PACKAGING * debian/compat - if you enabled AX_USE_DEBIAN_PACKAGING + * ${DEFAULT_PROJECT_NAME}.spec.in - if you enable AX_USE_RPM_PACKAGING * src/${DEFAULT_PROJECT_NAME}.pc.in - if you enabled AX_USE_LIBTOOL REBUILDING FILES @@ -144,9 +152,11 @@ FILES TO EDIT The following files normally require editing: * AUTHORS + * NEWS * README * configure.ac * src/makefile.am + * html/makefile.am * test/makefile.am * examples/makefile.am @@ -156,19 +166,23 @@ FILE DEPENDENCIES configuration a dependent, i.e.: * test/makefile.am depends on AX_USE_LIBTOOL + * html/makefile.am depends on AX_BUILD_HTML * doc/doxyfile.in depends on AX_BUILD_EXAMPLES * debian/control.in depends on AX_USE_DOXYGEN, AX_USE_CPPUNIT, - AX_CXX_QT, AX_CXX_CHECK_QT, AX_USE_LIBTOOL + AX_CXX_QT, AX_CHECK_QT, AX_REQUIRE_QT, AX_USE_LIBTOOL * debian/${DEFAULT_PROJECT_NAME}.install depends on AX_USE_LIBTOOL * debian/${DEFAULT_PROJECT_NAME}.dirs depends on AX_USE_LIBTOOL * debian/${DEFAULT_PROJECT_NAME}-dev.install depends on AX_USE_LIBTOOL * debian/${DEFAULT_PROJECT_NAME}-dev.dirs depends on AX_USE_LIBTOOL + * ${DEFAULT_PROJECT_NAME}.spec.in depends on AX_USE_RPM_PACKAGING, + AX_USE_LIBTOOL, AX_CHECK_QT, AX_REQUIRE_QT, AX_CXX_QT, AX_USE_CPPUNIT FILES * AUTHORS: First line is the main author and used in Debian and RPM packaging, so there must be a GPG key that matches to this line. + * NEWS: File to add project news. * README: First line is a short description of your project, then an empty line must follow. All remaining lines are a long description of your project. this information @@ -189,12 +203,12 @@ FILES * Enable Scripts: AX_USE_SCRIPTS * Enable Doxygen documentation generation: AX_USE_DOXYGEN * Enable Debian packaging by calling "make deb": AX_USE_DEBIAN_PACKAGING - * Not yet implemented: AX_USE_RPM_PACKAGING + * Enable RPM packaging by calling "make rpm": AX_USE_RPM_PACKAGING * Enable C++ testing using CppUnit: AX_USE_CPPUNIT * Enable C++ examples, i.e. for libraries: AX_BUILD_EXAMPLES * Check for C++11 support: AX_CXX_COMPILE_STDCXX_11 (see ax_cxx_compile_stdcxx_11.m4) * Require a QT module: AX_REQUIRE_QT (see ax_check_qt.m4) - * Optionally use a QT module: AX_CHECK_QT (see ax_check_qt.m4) + * Optionally use a QT module: AX_CHECK_QT (see ax_check_qt.m4) * Require a module: AX_PKG_REQUIRE (see ax_init_standard_project.m4) * Check for an optional module: AX_PKG_CHECK (see ax_init_standard_project.m4) @@ -266,7 +280,8 @@ run() { } testtag() { - egrep -q '^ *'"$1" configure.ac + local IFS="|" + egrep -q '^ *'"($*)" configure.ac } contains() { @@ -295,7 +310,7 @@ to() { mode="u=rw,g=rw,o=r" case "$1" in (--condition) shift # test for a tag, abort if not set - if ! testtag "$1" configure.ac; then + if ! testtag "$1"; then return fi;; (--mode) shift # test for a tag, abort if not set @@ -304,7 +319,7 @@ to() { esac shift; done - if checkfile "$1" && test $rebuild -eq 0 \ + if checkfile "$1" && test $rebuild -eq 0 -o "$1" = "configure.ac" \ && ! contains "$1" "${rebuildfiles[@]}"; then # file already exists and must not be rebuilt return 1 @@ -371,6 +386,8 @@ copy ${MY_NAME} copy ax_init_standard_project.m4 copy ax_cxx_compile_stdcxx_11.m4 copy ax_check_qt.m4 +copy resolve-debbuilddeps.sh +copy mac-create-app-bundle.sh AUTHOR=$(gpg -K | sed -n 's,uid *,,p' | sort | head -1) if test -z "${AUTHOR}"; then AUTHOR="FIRSTNAME LASTNAME (URL) " @@ -378,13 +395,21 @@ fi to AUTHORS < on -Wed, 07 Apr 2010 10:23:02 +0200. - -It was downloaded from https://dev.swisssign.com/projects/swisssurfer -It was downloaded from https://dev.swisssign.com/projects/swisssurfer - -Upstream Author(s): - - Marc Wäckerlin (SwissSign AG) - -Copyright: - - Marc Wäckerlin (SwissSign AG) - -License: - - LGPL version 3 - -The Debian packaging is: - - Copyright (C) 2010 Marc Wäckerlin (SwissSign AG) - -and is licensed under the GPL version 3, -see `/usr/share/common-licenses/GPL-3'. - -# Please also look if there are files or directories which have a -# different copyright/license attached and list them here. diff --git a/debian/cron.d.ex b/debian/cron.d.ex deleted file mode 100644 index 211a129..0000000 --- a/debian/cron.d.ex +++ /dev/null @@ -1,4 +0,0 @@ -# -# Regular cron jobs for the init package -# -0 4 * * * root [ -x /usr/bin/init_maintenance ] && /usr/bin/init_maintenance diff --git a/debian/dirs b/debian/dirs deleted file mode 100644 index e69de29..0000000 diff --git a/debian/emacsen-install.ex b/debian/emacsen-install.ex deleted file mode 100644 index 270ae54..0000000 --- a/debian/emacsen-install.ex +++ /dev/null @@ -1,45 +0,0 @@ -#! /bin/sh -e -# /usr/lib/emacsen-common/packages/install/init - -# Written by Jim Van Zandt , borrowing heavily -# from the install scripts for gettext by Santiago Vila -# and octave by Dirk Eddelbuettel . - -FLAVOR=$1 -PACKAGE=init - -if [ ${FLAVOR} = emacs ]; then exit 0; fi - -echo install/${PACKAGE}: Handling install for emacsen flavor ${FLAVOR} - -#FLAVORTEST=`echo $FLAVOR | cut -c-6` -#if [ ${FLAVORTEST} = xemacs ] ; then -# SITEFLAG="-no-site-file" -#else -# SITEFLAG="--no-site-file" -#fi -FLAGS="${SITEFLAG} -q -batch -l path.el -f batch-byte-compile" - -ELDIR=/usr/share/emacs/site-lisp/${PACKAGE} -ELCDIR=/usr/share/${FLAVOR}/site-lisp/${PACKAGE} - -# Install-info-altdir does not actually exist. -# Maybe somebody will write it. -if test -x /usr/sbin/install-info-altdir; then - echo install/${PACKAGE}: install Info links for ${FLAVOR} - install-info-altdir --quiet --section "" "" --dirname=${FLAVOR} /usr/share/info/${PACKAGE}.info.gz -fi - -install -m 755 -d ${ELCDIR} -cd ${ELDIR} -FILES=`echo *.el` -cp ${FILES} ${ELCDIR} -cd ${ELCDIR} - -cat << EOF > path.el -(setq load-path (cons "." load-path) byte-compile-warnings nil) -EOF -${FLAVOR} ${FLAGS} ${FILES} -rm -f *.el path.el - -exit 0 diff --git a/debian/emacsen-remove.ex b/debian/emacsen-remove.ex deleted file mode 100644 index 53656c9..0000000 --- a/debian/emacsen-remove.ex +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -e -# /usr/lib/emacsen-common/packages/remove/init - -FLAVOR=$1 -PACKAGE=init - -if [ ${FLAVOR} != emacs ]; then - if test -x /usr/sbin/install-info-altdir; then - echo remove/${PACKAGE}: removing Info links for ${FLAVOR} - install-info-altdir --quiet --remove --dirname=${FLAVOR} /usr/share/info/init.info.gz - fi - - echo remove/${PACKAGE}: purging byte-compiled files for ${FLAVOR} - rm -rf /usr/share/${FLAVOR}/site-lisp/${PACKAGE} -fi diff --git a/debian/emacsen-startup.ex b/debian/emacsen-startup.ex deleted file mode 100644 index 58c1fae..0000000 --- a/debian/emacsen-startup.ex +++ /dev/null @@ -1,25 +0,0 @@ -;; -*-emacs-lisp-*- -;; -;; Emacs startup file, e.g. /etc/emacs/site-start.d/50init.el -;; for the Debian init package -;; -;; Originally contributed by Nils Naumann -;; Modified by Dirk Eddelbuettel -;; Adapted for dh-make by Jim Van Zandt - -;; The init package follows the Debian/GNU Linux 'emacsen' policy and -;; byte-compiles its elisp files for each 'emacs flavor' (emacs19, -;; xemacs19, emacs20, xemacs20...). The compiled code is then -;; installed in a subdirectory of the respective site-lisp directory. -;; We have to add this to the load-path: -(let ((package-dir (concat "/usr/share/" - (symbol-name flavor) - "/site-lisp/init"))) -;; If package-dir does not exist, the init package must have -;; removed but not purged, and we should skip the setup. - (when (file-directory-p package-dir) - (setq load-path (cons package-dir load-path)) - (autoload 'init-mode "init-mode" - "Major mode for editing init files." t) - (add-to-list 'auto-mode-alist '("\\.init$" . init-mode)))) - diff --git a/debian/manpage.1.ex b/debian/manpage.1.ex deleted file mode 100644 index a74da1f..0000000 --- a/debian/manpage.1.ex +++ /dev/null @@ -1,59 +0,0 @@ -.\" Hey, EMACS: -*- nroff -*- -.\" First parameter, NAME, should be all caps -.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection -.\" other parameters are allowed: see man(7), man(1) -.TH INIT SECTION "April 8, 2010" -.\" Please adjust this date whenever revising the manpage. -.\" -.\" Some roff macros, for reference: -.\" .nh disable hyphenation -.\" .hy enable hyphenation -.\" .ad l left justify -.\" .ad b justify to both left and right margins -.\" .nf disable filling -.\" .fi enable filling -.\" .br insert line break -.\" .sp insert n+1 empty lines -.\" for manpage-specific macros, see man(7) -.SH NAME -init \- program to do something -.SH SYNOPSIS -.B init -.RI [ options ] " files" ... -.br -.B bar -.RI [ options ] " files" ... -.SH DESCRIPTION -This manual page documents briefly the -.B init -and -.B bar -commands. -.PP -.\" TeX users may be more comfortable with the \fB\fP and -.\" \fI\fP escape sequences to invode bold face and italics, -.\" respectively. -\fBinit\fP is a program that... -.SH OPTIONS -These programs follow the usual GNU command line syntax, with long -options starting with two dashes (`-'). -A summary of options is included below. -For a complete description, see the Info files. -.TP -.B \-h, \-\-help -Show summary of options. -.TP -.B \-v, \-\-version -Show version of program. -.SH SEE ALSO -.BR bar (1), -.BR baz (1). -.br -The programs are documented fully by -.IR "The Rise and Fall of a Fooish Bar" , -available via the Info system. -.SH AUTHOR -init was written by . -.PP -This manual page was written by Marc Wäckerlin (SwissSign AG) , -for the Debian project (and may be used by others). diff --git a/debian/manpage.sgml.ex b/debian/manpage.sgml.ex deleted file mode 100644 index b7ee501..0000000 --- a/debian/manpage.sgml.ex +++ /dev/null @@ -1,154 +0,0 @@ - manpage.1'. You may view - the manual page with: `docbook-to-man manpage.sgml | nroff -man | - less'. A typical entry in a Makefile or Makefile.am is: - -manpage.1: manpage.sgml - docbook-to-man $< > $@ - - - The docbook-to-man binary is found in the docbook-to-man package. - Please remember that if you create the nroff version in one of the - debian/rules file targets (such as build), you will need to include - docbook-to-man in your Build-Depends control field. - - --> - - - FIRSTNAME"> - SURNAME"> - - April 8, 2010"> - - SECTION"> - marc.waeckerlin@tech.swisssign.com"> - - INIT"> - - - Debian"> - GNU"> - GPL"> -]> - - - -
- &dhemail; -
- - &dhfirstname; - &dhsurname; - - - 2003 - &dhusername; - - &dhdate; -
- - &dhucpackage; - - &dhsection; - - - &dhpackage; - - program to do something - - - - &dhpackage; - - - - - - - - DESCRIPTION - - This manual page documents briefly the - &dhpackage; and bar - commands. - - This manual page was written for the &debian; distribution - because the original program does not have a manual page. - Instead, it has documentation in the &gnu; - Info format; see below. - - &dhpackage; is a program that... - - - - OPTIONS - - These programs follow the usual &gnu; command line syntax, - with long options starting with two dashes (`-'). A summary of - options is included below. For a complete description, see the - Info files. - - - - - - - - Show summary of options. - - - - - - - - Show version of program. - - - - - - SEE ALSO - - bar (1), baz (1). - - The programs are documented fully by The Rise and - Fall of a Fooish Bar available via the - Info system. - - - AUTHOR - - This manual page was written by &dhusername; &dhemail; for - the &debian; system (and may be used by others). Permission is - granted to copy, distribute and/or modify this document under - the terms of the &gnu; General Public License, Version 2 any - later version published by the Free Software Foundation. - - - On Debian systems, the complete text of the GNU General Public - License can be found in /usr/share/common-licenses/GPL. - - - -
- - diff --git a/debian/manpage.xml.ex b/debian/manpage.xml.ex deleted file mode 100644 index 23b0a5f..0000000 --- a/debian/manpage.xml.ex +++ /dev/null @@ -1,291 +0,0 @@ - -.
will be generated. You may view the -manual page with: nroff -man .
| less'. A typical entry -in a Makefile or Makefile.am is: - -DB2MAN = /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/manpages/docbook.xsl -XP = xsltproc -''-nonet -''-param man.charmap.use.subset "0" - -manpage.1: manpage.xml - $(XP) $(DB2MAN) $< - -The xsltproc binary is found in the xsltproc package. The XSL files are in -docbook-xsl. A description of the parameters you can use can be found in the -docbook-xsl-doc-* packages. Please remember that if you create the nroff -version in one of the debian/rules file targets (such as build), you will need -to include xsltproc and docbook-xsl in your Build-Depends control field. -Alternatively use the xmlto command/package. That will also automatically -pull in xsltproc and docbook-xsl. - -Notes for using docbook2x: docbook2x-man does not automatically create the -AUTHOR(S) and COPYRIGHT sections. In this case, please add them manually as - ... . - -To disable the automatic creation of the AUTHOR(S) and COPYRIGHT sections -read /usr/share/doc/docbook-xsl/doc/manpages/authors.html. This file can be -found in the docbook-xsl-doc-html package. - -Validation can be done using: `xmllint -''-noout -''-valid manpage.xml` - -General documentation about man-pages and man-page-formatting: -man(1), man(7), http://www.tldp.org/HOWTO/Man-Page/ - ---> - - - - - - - - - - - - - -]> - - - - &dhtitle; - &dhpackage; - - - &dhfirstname; - &dhsurname; - Wrote this manpage for the Debian system. -
- &dhemail; -
-
-
- - 2007 - &dhusername; - - - This manual page was written for the Debian system - (and may be used by others). - Permission is granted to copy, distribute and/or modify this - document under the terms of the GNU General Public License, - Version 2 or (at your option) any later version published by - the Free Software Foundation. - On Debian systems, the complete text of the GNU General Public - License can be found in - /usr/share/common-licenses/GPL. - -
- - &dhucpackage; - &dhsection; - - - &dhpackage; - program to do something - - - - &dhpackage; - - - - - - - - - this - - - - - - - - this - that - - - - - &dhpackage; - - - - - - - - - - - - - - - - - - - DESCRIPTION - This manual page documents briefly the - &dhpackage; and bar - commands. - This manual page was written for the Debian distribution - because the original program does not have a manual page. - Instead, it has documentation in the GNU - info - 1 - format; see below. - &dhpackage; is a program that... - - - OPTIONS - The program follows the usual GNU command line syntax, - with long options starting with two dashes (`-'). A summary of - options is included below. For a complete description, see the - - info - 1 - files. - - - - - - - Does this and that. - - - - - - - Show summary of options. - - - - - - - Show version of program. - - - - - - FILES - - - /etc/foo.conf - - The system-wide configuration file to control the - behaviour of &dhpackage;. See - - foo.conf - 5 - for further details. - - - - ${HOME}/.foo.conf - - The per-user configuration file to control the - behaviour of &dhpackage;. See - - foo.conf - 5 - for further details. - - - - - - ENVIONMENT - - - FOO_CONF - - If used, the defined file is used as configuration - file (see also ). - - - - - - DIAGNOSTICS - The following diagnostics may be issued - on stderr: - - - Bad configuration file. Exiting. - - The configuration file seems to contain a broken configuration - line. Use the option, to get more info. - - - - - &dhpackage; provides some return codes, that can - be used in scripts: - - Code - Diagnostic - - 0 - Program exited successfully. - - - 1 - The configuration file seems to be broken. - - - - - - BUGS - The program is currently limited to only work - with the foobar library. - The upstreams BTS can be found - at . - - - SEE ALSO - - - bar - 1 - , - baz - 1 - , - foo.conf - 5 - - The programs are documented fully by The Rise and - Fall of a Fooish Bar available via the - info - 1 - system. - -
- diff --git a/debian/menu b/debian/menu deleted file mode 100644 index b9ab4fc..0000000 --- a/debian/menu +++ /dev/null @@ -1,13 +0,0 @@ -?package(swisssurfer):\ -?package(swisssurfer):\ - needs="X11"\ - hints="Lightweight,Fast,Small,Security,SSL,Cryptoki,Certificate"\ - section="Applications/Network/Web Browsing"\ - title="SwissSurfer"\ - title="SwissSurfer"\ - longtitle="SwissSurfer Internet Browser"\ - longtitle="SwissSurfer Internet Browser"\ - command="/usr/bin/swisssurfer"\ - command="/usr/bin/swisssurfer"\ - icon="/usr/share/swisssurfer/swisssurfer.xpm" - icon="/usr/share/swisssurfer/swisssurfer.xpm" diff --git a/debian/menu.ex b/debian/menu.ex deleted file mode 100644 index 3f387e8..0000000 --- a/debian/menu.ex +++ /dev/null @@ -1,2 +0,0 @@ -?package(init):needs="X11|text|vc|wm" section="Applications/see-menu-manual"\ - title="init" command="/usr/bin/init" diff --git a/debian/postinst.ex b/debian/postinst.ex deleted file mode 100644 index 2a7188b..0000000 --- a/debian/postinst.ex +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/sh -# postinst script for init -# -# see: dh_installdeb(1) - -set -e - -# summary of how this script can be called: -# * `configure' -# * `abort-upgrade' -# * `abort-remove' `in-favour' -# -# * `abort-remove' -# * `abort-deconfigure' `in-favour' -# `removing' -# -# for details, see http://www.debian.org/doc/debian-policy/ or -# the debian-policy package - - -case "$1" in - configure) - ;; - - abort-upgrade|abort-remove|abort-deconfigure) - ;; - - *) - echo "postinst called with unknown argument \`$1'" >&2 - exit 1 - ;; -esac - -# dh_installdeb will replace this with shell code automatically -# generated by other debhelper scripts. - -#DEBHELPER# - -exit 0 diff --git a/debian/postrm.ex b/debian/postrm.ex deleted file mode 100644 index 0850e9b..0000000 --- a/debian/postrm.ex +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/sh -# postrm script for init -# -# see: dh_installdeb(1) - -set -e - -# summary of how this script can be called: -# * `remove' -# * `purge' -# * `upgrade' -# * `failed-upgrade' -# * `abort-install' -# * `abort-install' -# * `abort-upgrade' -# * `disappear' -# -# for details, see http://www.debian.org/doc/debian-policy/ or -# the debian-policy package - - -case "$1" in - purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) - ;; - - *) - echo "postrm called with unknown argument \`$1'" >&2 - exit 1 - ;; -esac - -# dh_installdeb will replace this with shell code automatically -# generated by other debhelper scripts. - -#DEBHELPER# - -exit 0 diff --git a/debian/preinst.ex b/debian/preinst.ex deleted file mode 100644 index 70b142e..0000000 --- a/debian/preinst.ex +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/sh -# preinst script for init -# -# see: dh_installdeb(1) - -set -e - -# summary of how this script can be called: -# * `install' -# * `install' -# * `upgrade' -# * `abort-upgrade' -# for details, see http://www.debian.org/doc/debian-policy/ or -# the debian-policy package - - -case "$1" in - install|upgrade) - ;; - - abort-upgrade) - ;; - - *) - echo "preinst called with unknown argument \`$1'" >&2 - exit 1 - ;; -esac - -# dh_installdeb will replace this with shell code automatically -# generated by other debhelper scripts. - -#DEBHELPER# - -exit 0 diff --git a/debian/prerm.ex b/debian/prerm.ex deleted file mode 100644 index aac0e70..0000000 --- a/debian/prerm.ex +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh -# prerm script for init -# -# see: dh_installdeb(1) - -set -e - -# summary of how this script can be called: -# * `remove' -# * `upgrade' -# * `failed-upgrade' -# * `remove' `in-favour' -# * `deconfigure' `in-favour' -# `removing' -# -# for details, see http://www.debian.org/doc/debian-policy/ or -# the debian-policy package - - -case "$1" in - remove|upgrade|deconfigure) - ;; - - failed-upgrade) - ;; - - *) - echo "prerm called with unknown argument \`$1'" >&2 - exit 1 - ;; -esac - -# dh_installdeb will replace this with shell code automatically -# generated by other debhelper scripts. - -#DEBHELPER# - -exit 0 diff --git a/debian/rules b/debian/rules index 1b11f89..5c4e227 100644 --- a/debian/rules +++ b/debian/rules @@ -1,6 +1,6 @@ ## @id $Id$ # -# This file has been added by bootstrap.sh on Sat, 09 May 2015 08:50:06 +0200 +# This file has been added by bootstrap.sh on Wed, 09 September 2015 10:12:16 +0200 # Feel free to change it or even remove and rebuild it, up to your needs # ## 1 2 3 4 5 6 7 8 diff --git a/debian/shlibs.local.ex b/debian/shlibs.local.ex deleted file mode 100644 index 2566e8d..0000000 --- a/debian/shlibs.local.ex +++ /dev/null @@ -1 +0,0 @@ -libproxyface 1.0.34 proxyface (>> 1.0.34-0), proxyface (<< 1.0.34-99) diff --git a/debian/swisssurfer-dev.dirs b/debian/swisssurfer-dev.dirs deleted file mode 100644 index 995e528..0000000 --- a/debian/swisssurfer-dev.dirs +++ /dev/null @@ -1,3 +0,0 @@ -usr/lib -usr/include -usr/share diff --git a/debian/swisssurfer-dev.install b/debian/swisssurfer-dev.install index c16184e..de001d4 100644 --- a/debian/swisssurfer-dev.install +++ b/debian/swisssurfer-dev.install @@ -3,4 +3,5 @@ usr/lib/lib*.a usr/lib/lib*.so usr/lib/pkgconfig/* usr/lib/*.la +usr/share/swisssurfer usr/share/doc/swisssurfer/html diff --git a/debian/swisssurfer.dirs b/debian/swisssurfer.dirs deleted file mode 100644 index 79c81dd..0000000 --- a/debian/swisssurfer.dirs +++ /dev/null @@ -1,3 +0,0 @@ -usr/lib -usr/bin -usr/share diff --git a/debian/swisssurfer.doc-base.EX b/debian/swisssurfer.doc-base.EX deleted file mode 100644 index 0d3840a..0000000 --- a/debian/swisssurfer.doc-base.EX +++ /dev/null @@ -1,23 +0,0 @@ -Document: swisssurfer -Document: swisssurfer -Title: Debian swisssurfer Manual -Title: Debian swisssurfer Manual -Author: -Abstract: This manual describes what swisssurfer is -Abstract: This manual describes what swisssurfer is - and how it can be used to - manage online manuals on Debian systems. -Section: unknown - -Format: debiandoc-sgml -Files: /usr/share/doc/proxyface/proxyface.sgml.gz - -Format: postscript -Files: /usr/share/doc/proxyface/proxyface.ps.gz - -Format: text -Files: /usr/share/doc/proxyface/proxyface.text.gz - -Format: HTML -Index: /usr/share/doc/proxyface/html/index.html -Files: /usr/share/doc/proxyface/html/*.html diff --git a/debian/watch.ex b/debian/watch.ex deleted file mode 100644 index 9e3713b..0000000 --- a/debian/watch.ex +++ /dev/null @@ -1,23 +0,0 @@ -# Example watch control file for uscan -# Rename this file to "watch" and then you can run the "uscan" command -# to check for upstream updates and more. -# See uscan(1) for format - -# Compulsory line, this is a version 3 file -version=3 - -# Uncomment to examine a Webpage -# -#http://www.example.com/downloads.php proxyface-(.*)\.tar\.gz - -# Uncomment to examine a Webserver directory -#http://www.example.com/pub/proxyface-(.*)\.tar\.gz - -# Uncommment to examine a FTP server -#ftp://ftp.example.com/pub/proxyface-(.*)\.tar\.gz debian uupdate - -# Uncomment to find new files on sourceforge, for devscripts >= 2.9 -# http://sf.net/proxyface/proxyface-(.*)\.tar\.gz - -# Uncomment to find new files on GooglePages -# http://example.googlepages.com/foo.html proxyface-(.*)\.tar\.gz diff --git a/examples/makefile.am b/examples/makefile.am index 99ea485..154fae0 100644 --- a/examples/makefile.am +++ b/examples/makefile.am @@ -6,12 +6,15 @@ ## 1 2 3 4 5 6 7 8 ## 45678901234567890123456789012345678901234567890123456789012345678901234567890 -noinst_PROGRAM = filewatch +AM_CPPFLAGS = -I@top_srcdir@/src -I_srcdir@/src/qbrowserlib -filewatch_SOURCES = filewatch.cxx filewatch.hxx +noinst_PROGRAMS = filewatch -AM_CPPFLAGS = -I@top_srcdir@/src -I_srcdir@/src/qbrowserlib -AM_LDFLAGS = -L@top_builddir@/src/.libs -LDADD = -lswisssurfer +filewatch_MOCFILES = moc_filewatch.cxx +filewatch_SOURCES = filewatch.cxx ${filewatch_MOCFILES} +filewatch_LDADD = @top_builddir@/src/qbrowserlib/libqbrowserlib.la + +BUILT_SOURCES = ${filewatch_MOCFILES} +EXTRA_DIST = filewatch.hxx MAINTAINERCLEANFILES = makefile.in diff --git a/mac-create-app-bundle.sh b/mac-create-app-bundle.sh new file mode 100755 index 0000000..6ced200 --- /dev/null +++ b/mac-create-app-bundle.sh @@ -0,0 +1,103 @@ +#!/bin/bash -ex + +## @id $Id$ +## +## Create Mac OS-X App Bundle from built file +## +## Parameters: +## $1: name of the app-target +## $2: name of the project +## $3: installation source +## +## 1 2 3 4 5 6 7 8 +## 45678901234567890123456789012345678901234567890123456789012345678901234567890 + +if test "$(uname -s)" != "Darwin"; then + echo "**** ERROR: run on Mac OS-X: $0" + exit 1 +fi +test -n "$1" +test -n "$2" +test -d "$3" +target="$(pwd)/${1}/Contents/MacOS" + +# Step 1: create and fill app directory structure +mkdir -p ${1}/Contents/{Resources,MacOS} +! test -d ${3}/bin || \ + find ${3}/bin -mindepth 1 -maxdepth 1 -exec mv {} ${1}/Contents/MacOS/ \; +executablefile=$(ls -1 ${1}/Contents/MacOS/ | head -1) +! test -d ${3}/lib || \ + find ${3}/lib -mindepth 1 -maxdepth 1 -exec mv {} ${1}/Contents/MacOS/ \; +! test -d ${3}/share/${2} || \ + find ${3}/share/${2} -mindepth 1 -maxdepth 1 -exec mv {} ${1}/Contents/Resources/ \; +! test -d ${3}/share/${2} || rmdir ${3}/share/${2} +! test -d ${3}/share || \ + find ${3}/share -mindepth 1 -maxdepth 1 -exec mv {} ${1}/Contents/Resources/ \; +! test -d ${3}/bin || rmdir ${3}/bin +! test -d ${3}/lib || rmdir ${3}/lib +! test -d ${3}/share || rmdir ${3}/share +! test -d ${3} || \ + find ${3} -mindepth 1 -maxdepth 1 -exec mv {} ${1}/Contents/Resources/ \; +! test -d ${3} || rmdir ${3} +! test -d ${1}/tmp || rm -r ${1}/tmp + +# Step 2: copy qt plugins, if necessary +for f in ${QT_PLUGINS}; do + test -d ${target}/${f} \ + || cp -r ${QT_PLUGIN_PATH}/${f} ${target}/${f} \ + || exit 1 +done + +# Step 3: resolve all library dependencies +found=1 +oldpath="$(pwd)" +while [ $found -ne 0 ]; do + found=0 + cd "${target}" + for file in $(find . -type f); do + for lib in $(otool -L ${file} | tail -n +2 \ + | egrep '/opt/local/|'"${HOME}" \ + | grep -v $file | awk '{print $1}'); do + found=1 + test -f ${lib##*/} \ + || ( \ + cp ${lib} . \ + && chmod u+w ${lib##*/} \ + ) \ + || exit 1 + install_name_tool -change ${lib} \ + @executable_path/${lib##*/} ${file} \ + || exit 1 + done + done +done +cd ${oldpath} + +# Step 4: if necessary, install qt_menu.nib +if test -n "${QTDIR}"; then + MENU_NIB=$(find ${QTDIR} -name .svn -prune -o -name qt_menu.nib -print \ + | head -1) + if test -e "${MENU_NIB}"; then + rsync -r "${MENU_NIB}" ${1}/Contents/Resources/ + test -d ${1}/Contents/Resources/qt_menu.nib + fi +fi + +# Step 5: copy or create info.plist +infoplist=$(find ${1}/Contents/Resources -name Info.plist) +if test -f "${infoplist}"; then + mv "${infoplist}" ${1}/Contents/Info.plist +else + cat > ${1}/Contents/Info.plist < + + + + CFBundleIdentifier + ${2} + CFBundleExecutable + ${executablefile##/} + + +EOF +fi \ No newline at end of file diff --git a/resolve-debbuilddeps.sh b/resolve-debbuilddeps.sh new file mode 100755 index 0000000..f0f2496 --- /dev/null +++ b/resolve-debbuilddeps.sh @@ -0,0 +1,44 @@ +#! /bin/bash -ex + +## @id $Id$ + +## Resolve Debian Build Dependencies +## Installs all the required packages +## Call: ./resolve-builddeps 'name of build schroot' +## e.g. call: ./resolve-builddeps trusty_amd64 + +## 1 2 3 4 5 6 7 8 +## 45678901234567890123456789012345678901234567890123456789012345678901234567890 + +SCHROOTNAME="$1" + +sed 's,@[^@]*@, dummytext,g' debian/control.in > debian/control + +if test -n "${SCHROOTNAME}"; then + DEPS=$(schroot -c "${SCHROOTNAME}" -- dpkg-checkbuilddeps 2>&1 || true) +else + DEPS=$(dpkg-checkbuilddeps 2>&1 || true) +fi +DEPS=$(echo "$DEPS" | sed -n '/Unmet build dependencies/ { s,.*Unmet build dependencies: ,,g; s, ([^)]*),,g; s, *| *,|,g; p}') + +for pa in ${DEPS}; do + success=0 + for p in $(echo "${pa}" | sed 's,|, ,g'); do + if test -n "${SCHROOTNAME}"; then + if schroot -c "${SCHROOTNAME}" -u root -d / -- apt-get -y install ${p}; then + success=1 + break; + fi + else + if sudo apt-get -y install ${p}; then + success=1 + break; + fi + fi + done + if test ${success} -eq 0; then + echo "**** Error: Installation Failed: ${pa}" + fi +done + +echo "**** Success: All Dependencies Resolved" diff --git a/src/makefile.am b/src/makefile.am index 800d671..70f3b59 100644 --- a/src/makefile.am +++ b/src/makefile.am @@ -6,7 +6,7 @@ ## 1 2 3 4 5 6 7 8 ## 45678901234567890123456789012345678901234567890123456789012345678901234567890 -SUBDIRS = qbrowserlib designer +SUBDIRS = qbrowserlib #designer bin_PROGRAMS = swisssurfer swisssurfer_MOCFILES = moc_authentication.cxx moc_certificate.cxx \ diff --git a/src/qbrowserlib/swisswebview.hxx b/src/qbrowserlib/swisswebview.hxx index 96f3c37..125d3e4 100644 --- a/src/qbrowserlib/swisswebview.hxx +++ b/src/qbrowserlib/swisswebview.hxx @@ -12,7 +12,6 @@ #include #include -#include #include diff --git a/swisssurfer.spec.in b/swisssurfer.spec.in index 4cb2d95..fd30319 100644 --- a/swisssurfer.spec.in +++ b/swisssurfer.spec.in @@ -1,64 +1,69 @@ -Summary: @PACKAGE_NAME@ PKCS#11 aware WebKit Browser +Summary: @DESCRIPTION@ Name: @PACKAGE_NAME@ Version: @VERSION@ -Release: 1 +Release: @BUILD_NUMBER@%{?dist} License: LGPL -Group: Applications/Internet -URL: https://dev.swisssign.com/projects/@PACKAGE_NAME@ +Group: Development/Libraries/C++ Source0: %{name}-%{version}.tar.gz -BuildRequires: subversion gcc-c++ doxygen graphviz texlive automake autoconf libtool make BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root -Conflicts: swisssurfer -Provides: swisssurfer -Obsoletes: swisssurfer -%if 0%{?fedora} || 0%{?rhel_version} || 0%{?centos_version} -BuildRequires: cppunit-devel qt-devel +BuildRequires: gnupg, subversion, automake, autoconf, doxygen +%if 0%{?fedora} != 20 +BuildRequires: graphviz +%endif +%if 0%{?fedora} || 0%{?rhel} || 0%{?rhl} || 0%{?centos} || 0%{?centos_ver} || 0%{?centos_version} +BuildRequires: pkgconfig, redhat-lsb +%if ! ( 0%{?centos} || 0%{?centos_ver} || 0%{?centos_version} ) +BuildRequires: mscgen +BuildRequires: qt5-qtbase-devel, qt5-qttools, qt5-qtwebkit-devel +%else +BuildRequires: qt-devel +%endif %else%if 0%{?suse_version} || 0%{?sles_version} -BuildRequires: libcppunit-devel libqt4-devel +BuildRequires: pkg-config, lsb-release +%if 0%{?suse_version} < 1200 || 0%{?sles_version} < 1200 +BuildRequires: libqt4-devel, qt4-x11-tools, libQtWebKit-devel +%else +BuildRequires: libqt5-qtbase-devel, libqt5-qttools, libQt5WebKit5-devel +%endif %endif%endif %description @README@ -This package contains the program and shared libraries required at runtime. +This package contains only the shared libraries required at runtime. + %prep %setup -q -CPPFLAGS="-std=c++0x -I/usr/include/pkcs11-helper-1.0" \ - ./configure --prefix=/usr \ +./configure --prefix=/usr \ + --sysconfdir=/etc \ --docdir=/usr/share/doc/packages/@PACKAGE_NAME@ \ - --libdir=/usr/%_lib \ - --with-qt-install-plugins=/usr/share/qt4/plugins/designer + --libdir=/usr/%_lib %build make %install DESTDIR=$RPM_BUILD_ROOT make install -rm -rf $RPM_BUILD_ROOT/usr/share/doc/packages/@PACKAGE_NAME@/html -rm $RPM_BUILD_ROOT/usr/share/doc/packages/@PACKAGE_NAME@/COPYING -rm $RPM_BUILD_ROOT/usr/share/doc/packages/@PACKAGE_NAME@/INSTALL -rm $RPM_BUILD_ROOT/usr/share/doc/packages/swisssurfer/swisssurfer.spec %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root,-) -/usr/bin/@PACKAGE_NAME@ -/usr/share/applications/@PACKAGE_NAME@.desktop -/usr/share/swisssurfer/swisssurfer.png -/usr/share/swisssurfer/swisssurfer.xpm -/usr/%_lib/lib*.so.* +/usr/%_lib/@PACKAGE_NAME@.so.* %doc /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 %package devel -Summary: @PACKAGE_NAME@ PKCS#11 aware WebKit Browser (development files) +Summary: @DESCRIPTION@ Group: Development/Libraries/C++ +Requires: @PACKAGE_NAME@ = @VERSION@ %description devel @README@ @@ -67,8 +72,14 @@ This Package contains all files required for developement. %files devel %defattr(-,root,root,-) -/usr/share/qt4 -/usr/%_lib/lib*.so -/usr/include +/usr/%_lib/@PACKAGE_NAME@.so +/usr/%_lib/@PACKAGE_NAME@.a +/usr/%_lib/@PACKAGE_NAME@.la +/usr/%_lib/pkgconfig +/usr/include/* +%doc +/usr/share/@PACKAGE_NAME@ +/usr/share/doc/packages/@PACKAGE_NAME@/html %changelog +