update buildsystem

master
Marc Wäckerlin 8 years ago
parent 6cef0756f7
commit f1d70efbab
  1. 2
      COPYING
  2. 1781
      ChangeLog
  3. 2
      INSTALL
  4. 8
      autogen.sh
  5. 100
      ax_cxx_compile_stdcxx_11.m4
  6. 285
      ax_init_standard_project.m4
  7. 369
      bootstrap.sh
  8. 82
      build-in-docker.sh
  9. 1
      configure.ac
  10. 8
      doc/footer.html.in
  11. 33
      doc/header.html.in
  12. BIN
      doc/plantuml.jar
  13. 38
      doc/style.css
  14. 2
      mac-create-app-bundle.sh
  15. 9
      makefile_test.inc.am
  16. 2
      resolve-debbuilddeps.sh
  17. 15
      resolve-rpmbuilddeps.sh
  18. 16
      sql-to-dot.sed

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

@ -0,0 +1,1781 @@
2016-06-08 10:56
* src/cardos.hxx: added APDU info
2016-04-04 08:53
* ChangeLog: after migration to new svn server
2015-12-18 16:04 marc
* build-in-docker.conf: added dependency for sid
2015-12-17 12:33 marc
* ChangeLog, ax_init_standard_project.m4, bootstrap.sh,
build-in-docker.conf, build-in-docker.sh, libpcscxx.desktop.in,
resolve-debbuilddeps.sh, sql-to-dot.sed: use ./build-in-docker.sh
on build server
2015-11-16 12:38 marc
* doc/doxyfile.in: SVG must not be interactive for embedding in
redmine
2015-11-09 11:22 marc
* ChangeLog, ax_init_standard_project.m4, bootstrap.sh,
debian/control.in, resolve-debbuilddeps.sh: fixed build
dependencies
2015-11-07 10:47 marc
* bootstrap.sh: there is no qt4-default
2015-11-07 09:23 marc
* bootstrap.sh, debian/control.in: there is no qt4-default
2015-11-06 23:58 marc
* debian/control.in: fixed dependencies
2015-11-05 09:53 marc
* ChangeLog, ax_init_standard_project.m4, bootstrap.sh,
build-in-docker.sh, resolve-debbuilddeps.sh: updated build system
2015-11-05 08:44 marc
* doc/doxyfile.in: doxygen should not build search engine, it's
awful in embedded redmine
2015-11-03 21:48 marc
* debian/control.in: updated dependencies
2015-11-03 11:45 marc
* ChangeLog, ax_check_qt.m4, bootstrap.sh, resolve-debbuilddeps.sh:
prepared for build in a docker instance on jenkins
2015-11-01 23:53 marc
* AUTHORS, ChangeLog, ax_init_standard_project.m4, bootstrap.sh,
resolve-debbuilddeps.sh: new author url
2015-09-22 11:36 marc
* ax_init_standard_project.m4: fixed little type in build that
affected only mac osx build
2015-09-22 11:12 marc
* ax_init_standard_project.m4: fixed little type in build that
affected only mac osx build - strange
2015-09-22 07:42 marc
* ax_check_qt.m4, ax_init_standard_project.m4, configure.ac,
src/cryptoki.cxx, src/cryptoki.hxx, src/pcsc.hxx: don't throw
exception in destructur when card has been removed
2015-09-14 09:01 marc
* ax_check_qt.m4, ax_init_standard_project.m4, bootstrap.sh,
build-resource-file.sh, debian/control.in,
debian/libpcscxx-dev.install, resolve-debbuilddeps.sh,
resolve-rpmbuilddeps.sh: added resolve-rpmbuilddeps.sh
2015-09-01 12:28 marc
* debian/control.in: install qtX-default so that it fits for all
distributions
2015-09-01 12:26 marc
* debian/control.in: don't install qtX-default
2015-09-01 12:18 marc
* debian/control.in: install qtX-default
2015-09-01 12:14 marc
* resolve-debbuilddeps.sh: new script to resolve debian build
dependencies
2015-09-01 12:13 marc
* resolve-debbuilddeps.sh: new script to resolve debian build
dependencies
2015-09-01 12:00 marc
* ax_check_qt.m4, ax_init_standard_project.m4, bootstrap.sh,
resolve-debbuilddeps.sh: new script to resolve debian build
dependencies
2015-08-17 14:52 marc
* src/cryptaux.hxx: fix ambiguity
2015-08-17 14:47 marc
* src/cryptaux.hxx: fix ambiguity
2015-08-17 14:02 marc
* ax_init_standard_project.m4, bootstrap.sh: Debian sid is more
restrictive in time format
2015-07-31 14:18 marc
* libpcscxx.spec.in: stupid fedora/centos does not handle
/path/to/dir correctly
2015-07-31 11:47 marc
* libpcscxx.spec.in: graphviz must not be used in fedora-20,
otherise it never terminates
2015-07-31 10:44 marc
* ChangeLog, ax_init_standard_project.m4, bootstrap.sh,
configure.ac: fixed version number
2015-07-30 14:13 marc
* ax_check_qt.m4: qt4 in centos
2015-07-30 13:59 marc
* libpcscxx.spec.in: qt4 in centos and p11 in suse11
2015-07-30 13:56 marc
* ax_check_qt.m4, bootstrap.sh, libpcscxx.spec.in: qt4 in centos
and p11 in suse11
2015-07-30 13:49 marc
* libpcscxx.spec.in: packages
2015-07-30 13:32 marc
* libpcscxx.spec.in: packages for opensuse 11.4
2015-07-30 13:27 marc
* libpcscxx.spec.in: packages for centos
2015-07-30 13:12 marc
* libpcscxx.spec.in: packages for centos
2015-07-30 12:55 marc
* libpcscxx.spec.in: package bin
2015-07-30 12:40 marc
* ax_check_qt.m4: qt-tools are named tool-qt5 in suse :p
2015-07-30 12:39 marc
* libpcscxx.spec.in: fedora packages ...
2015-07-30 12:33 marc
* ax_check_qt.m4, bootstrap.sh: qt-tools are named tool-qt5 in suse
:p
2015-07-30 12:15 marc
* libpcscxx.spec.in: fixed qt dependencies
2015-07-30 11:44 marc
* libpcscxx.spec.in: fixed qt dependencies
2015-07-30 10:21 marc
* configure.ac, libpcscxx.spec.in: fixed rpm dependency
2015-07-30 09:55 marc
* libpcscxx.spec.in: fixed rpm dependency
2015-07-30 09:38 marc
* libpcscxx.spec.in: fixed qt detection
2015-07-30 09:33 marc
* ax_check_qt.m4, ax_init_standard_project.m4, bootstrap.sh,
libpcscxx.spec.in: fixed qt detection
2015-07-30 08:39 marc
* libpcscxx.spec.in: ready for rpm
2015-07-30 08:26 marc
* makefile.am: ready for rpm
2015-07-30 08:13 marc
* ChangeLog, ax_init_standard_project.m4, bootstrap.sh,
libpcscxx.spec.in: enable rpm build
2015-07-27 08:35 marc
* ChangeLog, ax_check_qt.m4, ax_init_standard_project.m4,
bootstrap.sh: better check for header
2015-07-27 06:33 marc
* configure.ac: remove test output
2015-07-22 10:09 marc
* ChangeLog, ax_init_standard_project.m4, bootstrap.sh, libpcscxx:
buildsystem updated
2015-07-22 10:04 marc
* ax_init_standard_project.m4, configure.ac: mingw/windows-build
works
2015-07-21 08:42 marc
* ax_check_qt.m4, ax_init_standard_project.m4, bootstrap.sh,
configure.ac, debian/control.in, mac-create-app-bundle.sh:
pcsclite does not exist on windows
2015-07-13 16:50 marc
* configure.ac: libpkcs11-helper-1 is even worse...
2015-07-13 14:51 marc
* configure.ac: prefere libpkcs11-helper-1
2015-07-13 12:29 marc
* bootstrap.sh, doc, doc/doxyfile.in, doc/makefile.am: updated docu
2015-07-13 08:39 marc
* ChangeLog, ax_check_qt.m4, ax_init_standard_project.m4,
bootstrap.sh: upgrade to newest bootstrap-build
2015-06-24 09:26 marc
* ChangeLog, ax_init_standard_project.m4: even more support for
weird and sloppy packages
2015-06-23 09:02 marc
* ax_init_standard_project.m4, configure.ac: even more improved way
to find the necessary include path
2015-06-23 08:48 marc
* ax_init_standard_project.m4: even more improved way to find the
necessary include path
2015-06-23 08:06 marc
* ChangeLog, ax_init_standard_project.m4: improved way to find the
necessary include path, even if module writers did a sloppy job
2015-06-19 07:18 marc
* ChangeLog, ax_init_standard_project.m4: don't scan subpathes of
/usr/include for include files
2015-06-18 14:34 marc
* ChangeLog, configure.ac: build fails with GNU TLS, because pcsc.h
there is something completely different
2015-05-22 08:45 marc
* configure.ac: fixed package name for mac ports
2015-05-20 12:12 marc
* ChangeLog, debian/libpcscxx-dev.install: fix in debian build
2015-05-18 09:40 marc
* examples/makefile.am, src/makefile.am: cleanup build files
2015-05-18 09:21 marc
* ChangeLog, ax_init_standard_project.m4: fix build on mac, fix
wrong AX_PKG_CHECK
2015-05-13 13:35 marc
* ax_init_standard_project.m4: fixed some build issues, i.e. wrong
library version number
2015-05-12 13:32 marc
* ax_check_qt.m4, ax_init_standard_project.m4, configure.ac:
QtNetwork depends on QT >= 5.2
2015-05-12 08:57 marc
* ChangeLog, ax_init_standard_project.m4, bootstrap.sh,
src/makefile.am: fixed build
2015-05-11 13:45 marc
* src/makefile.am: don't miss build of cert2text
2015-05-09 22:35 marc
* ax_init_standard_project.m4: strange build error:
'configure:18658: error: possibly undefined macro: m4_default'
2015-05-09 16:51 marc
* ax_init_standard_project.m4, bootstrap.sh, src/libpcscxx.pc.in:
corrected link command
2015-05-09 09:33 marc
* ax_check_qt.m4, ax_init_standard_project.m4, bootstrap.sh,
src/libpcscxx.pc.in: fixed pkg-config requirements
2015-05-08 23:38 marc
* ax_init_standard_project.m4, bootstrap.sh: fixed the mac bug
again, because last change was incompatible with debian changelog
format
2015-05-08 23:12 marc
* ChangeLog, ax_init_standard_project.m4, bootstrap.sh,
configure.ac: build system fixed
2015-05-07 14:37 marc
* ax_check_qt.m4, ax_init_standard_project.m4, bootstrap.sh,
src/version.hxx: fixed mac issues
2015-05-05 20:32 marc
* debian/control.in: dependencies imprved
2015-05-04 09:30 marc
* ax_init_standard_project.m4, configure.ac: much more flexible and
stable package dependency checks
2015-05-04 06:56 marc
* src/cert2text.cxx: forgoten to add new file
2015-04-30 14:28 marc
* ChangeLog, configure.ac, src/makefile.am: new tool cert2text to
show certificates
2015-03-24 08:02 marc
* ax_init_standard_project.m4: add test maintainr-clean
2015-03-15 20:08 marc
* src/libpcscxx.pc.in: linking needs crypto ssl and pcsclite
2015-03-15 19:29 marc
* ax_init_standard_project.m4, src/libpcscxx.pc.in: linking needs
crypto
2015-03-15 16:52 marc
* configure.ac: no qt keywords
2015-03-15 16:21 marc
* ax_check_qt.m4, ax_init_standard_project.m4, bootstrap.sh,
configure.ac: better build + no qt keywords
2015-03-14 14:25 marc
* examples/makefile.am, src/cardgui.hxx, src/makefile.am,
src/password.hxx: build fixed
2015-03-14 14:05 marc
* ChangeLog, ax_check_qt.m4, ax_init_standard_project.m4,
bootstrap.sh, configure.ac, src/libpcscxx.pc.in: wrong pkg-config
prefix
2015-03-14 09:51 marc
* ax_init_standard_project.m4, bootstrap.sh: missreading: doxygen
-w html does not compile html onlx ...
2015-03-14 09:31 marc
* ChangeLog, ax_init_standard_project.m4, bootstrap.sh,
src/libpcscxx.pc.in: add compile dependencies
2015-03-13 16:30 marc
* ax_check_qt.m4, ax_init_standard_project.m4, bootstrap.sh,
debian/compat, debian/copyright, debian/dirs,
debian/libpcscxx.doc-base.EX, debian/shlibs.local.ex,
debian/watch.ex: improved bootstrapping
2015-03-12 09:16 marc
* ChangeLog, ax_init_standard_project.m4: bugfix new buildsystem:
makefile.in is in top_srcdir
2015-03-11 16:00 marc
* ax_check_qt.m4, ax_cxx_compile_stdcxx_11.m4,
ax_init_standard_project.m4, bootstrap.sh, configure.ac,
debian/changelog.in, doc/doxyfile.in, doc/examples,
doc/makefile.am, examples, m4, makefile.am, src/makefile.am:
completely new, megacool build system step 1
2015-03-05 14:48 marc
* debian/control.in: uic is required if qt is used
2015-03-05 14:05 marc
* ChangeLog, m4/ax_check_qt.m4: don't stop if qt is not found; more
elegant way for adding qt rules
2015-03-05 13:44 marc
* m4/ax_check_qt.m4: don't stop if qt is not found; more elegant
way for adding qt rules
2015-03-05 13:27 marc
* m4/ax_check_qt.m4: don't stop if qt is not found; more elegant
way for adding qt rules
2015-03-05 13:21 marc
* m4/ax_check_qt.m4, src/makefile.am: don't stop if qt is not
found; more elegant way for adding qt rules
2015-03-05 12:02 marc
* ChangeLog, m4/ax_check_qt.m4: qt tools are optional
2015-03-05 09:05 marc
* configure.ac: support Qt4 which has no QWidgets - but Qt5 needs
it
2015-03-05 08:34 marc
* configure.ac: support Qt4 which has no QWidgets
2015-03-04 14:59 marc
* debian/control.in, doc/doxyfile.in: strange error «sh: 1:
/usr/bindot: not found; on squeeze, there's no qt5»
2015-03-04 14:44 marc
* configure.ac: fix «HAVE_QTNETWORK does not appear in
AM_CONDITIONAL» when there is no qt
2015-03-04 14:40 marc
* configure.ac, m4/ax_check_qt.m4: fix «HAVE_QTNETWORK does not
appear in AM_CONDITIONAL» when there is no qt
2015-03-04 13:28 marc
* m4/ax_check_qt.m4: try to fix «HAVE_QTNETWORK does not appear in
AM_CONDITIONAL» when there is no qt
2015-03-03 18:37 marc
* ChangeLog, README, configure.ac, debian/control.in: now also
depends on qt
2015-03-03 15:56 marc
* AUTHORS, ChangeLog, configure.ac, debian/changelog.in,
debian/control, debian/control.in, debian/rules, doc/doxyfile.in,
doc/makefile.am, libpcscxx.spec.in, makefile.am,
src/libpcscxx.pc.in, src/version.cxx: ported to new build system
2014-12-11 10:00 marc
* src/suisseid.hxx: another work around the mac 10.10 yosemite PCSC
bug, this time fix cryptoki; refs #34
2014-12-11 09:57 marc
* src/suisseid.hxx: another work around the mac 10.10 yosemite PCSC
bug, this time fix cryptoki; refs #34
2014-12-11 09:06 marc
* m4/ax_check_qt.m4, src/suisseid.hxx: another work around the mac
10.10 yosemite PCSC bug, this time fix cryptoki; refs #34
2014-12-01 11:27 marc
* src/suisseid.hxx: Apple Bug morte log; refs #34
2014-12-01 11:13 marc
* src/suisseid.hxx: Apple Bug morte log; refs #34
2014-12-01 10:27 marc
* src/pcsc.hxx: Apple Bug probably resolved with retry to reconnect
with SCARD_LEAVE_CARD; refs #34
2014-12-01 10:08 marc
* src/pcsc.hxx: Apple Bug not resolved, retry to reconnect with
SCARD_LEAVE_CARD more than once (up to 100 times); refs #34
2014-12-01 09:08 marc
* src/pcsc.hxx: Apple Bug not resolved, retry more than once (up to
100 times); refs #34
2014-11-12 07:54 marc
* src/pcsc.hxx: more log; refs #34
2014-11-11 16:02 marc
* src/cryptoki.cxx: more log; refs #34
2014-11-11 16:00 marc
* src/cryptoki.cxx: more log; refs #34
2014-11-11 15:57 marc
* src/cryptoki.cxx: more log; refs #34
2014-11-11 14:09 marc
* src/pcsc.hxx: workaround Mac OS X 10.10 PCSC bug; refs #34
2014-11-11 14:04 marc
* src/pcsc.hxx: workaround Mac OS X 10.10 PCSC bug; refs #34
2014-11-11 13:56 marc
* src/pcsc.hxx: workaround Mac OS X 10.10 PCSC bug; refs #34
2014-11-04 09:56 marc
* configure.ac, m4/ax_check_qt.m4: some rearrangements; refs #33
2014-11-04 08:53 marc
* ax_check_qt.m4, ax_cxx_compile_stdcxx_11.m4, configure.ac,
configure.in, m4, m4/ax_check_qt.m4,
m4/ax_cxx_compile_stdcxx_11.m4: some rearrangements; refs #33
2014-10-27 09:22 marc
* ax_check_qt.m4, configure.in, doc/examples/makefile.am,
src/makefile.am: Missing -fPIC error in build of cardgui; refs
#33
2014-10-08 08:51 marc
* ax_check_qt.m4: added qmake test; refs #33
2014-09-22 11:08 marc
* configure.in: Somehow options disappear, i.e. -fPIC; refs #33
2014-09-19 09:04 marc
* ax_check_qt.m4: need variables; refs #33
2014-09-19 08:23 marc
* COPYING, INSTALL, ax_check_qt.m4, configure.in: much better qt
tests; refs #33
2014-09-16 08:32 marc
* configure.in: corrected C++11-detection; refs #33
2014-09-16 08:24 marc
* configure.in: better Qt detection; refs #33
2014-09-16 08:01 marc
* src/pcsc.hxx: changed all long to DWORD, now corrected former
unsigned long; refs #33
2014-09-16 07:47 marc
* src/cryptoki.hxx, src/pcsc.hxx: smaller bugfixes and type
adaptions; refs #33
2014-09-15 06:54 marc
* src/openssl.hxx: forgotten return value; refs #33
2014-06-03 07:21 marc
* src/cardos.hxx:
https://dev.swisssign.com/projects/swissstick/ticket/1137 forget
PIN/password feature incorrectly reports an error; refs #32
2014-05-20 12:27 marc
* src/openssl.hxx, src/pcsc.hxx: openssl version info to be
desplayed in about (some nerves are blank after heartbleed); refs
#30
2014-05-19 11:39 marc
* libpcscxx.spec.in: add PKCS11 include path to RPM spec; refs #30
2014-05-16 12:36 marc
* debian/control: replace libp11-kit-dev by libpkcs11-helper1-dev
beacause it's missing on lucid; refs #30
2014-05-16 12:24 marc
* debian/control, debian/rules: replace libp11-kit-dev by
libpkcs11-helper1-dev beacause it's missing on lucid; refs #30
2014-05-16 12:07 marc
* debian/control, debian/rules: replace libp11-kit-dev
libgnutls-dev beacause it's missing on lucid; refs #30
2014-05-16 11:03 marc
* configure.in, debian/rules: set MOC to /usr/bin/moc for debian,
because on lucid it would be /usr/bin/moc-qt4, but there is no
/usr/bin/rcc-qt4, only /usr/bin/rcc; refs #30
2014-05-12 07:35 marc
* libpcscxx.spec.in: fix rpm build; refs #30
2014-05-09 11:21 marc
* src/cardos.hxx, src/suisseid.hxx: puk-unlock forgotten - added;
refs #30
2014-05-07 12:31 marc
* debian/control: build dependencies; refs #30
2014-05-07 12:09 marc
* debian/control: restore debian build; refs #30
2014-05-07 11:51 marc
* debian/control, debian/rules: restore debian build; refs #30
2014-05-07 09:13 marc
* src/cryptoki.hxx: give better exception; refs #30
2014-05-06 16:19 marc
* configure.in: hack to be undone later - check for headers later;
refs #30
2014-05-06 16:17 marc
* configure.in: hack to be undone later; refs #30
2014-05-06 16:14 marc
* src/pcsc.hxx: fixed issue with invalid devices; refs #30
2014-05-06 15:48 marc
* debian/rules: configure location of pkcs11.h; refs #30
2014-05-06 15:42 marc
* configure.in, src/cryptoki.hxx: configure location of pkcs11.h;
refs #30
2014-05-05 11:44 marc
* src/makefile.am, src/pkcs11: no own pkcs11; refs #30
2014-05-05 08:15 marc
* configure.in, doc/examples/makefile.am, src/cardos.hxx,
src/makefile.am, src/suisseid.hxx: Correctly decode values; refs
#31
2014-04-29 08:31 marc
* src/cryptoki.hxx: conversions for 64 bit mingw; refs #30
2014-04-29 08:17 marc
* doc/examples/makefile.am: mingw linking; refs #30
2014-04-28 11:49 marc
* doc/examples/makefile.am: mingw libs changed; refs #30
2014-04-28 11:47 marc
* configure.in: first check Qt5 and allow to pass UIC/MOC
explicitely; refs #30
2014-04-28 09:27 marc
* src/makefile.am: mingw libs changed; refs #30
2014-04-28 09:12 marc
* src/pcsc.hxx: winscard.h in lowercase is part of mingw; refs #30
2014-04-28 09:07 marc
* src/pcsc.hxx: Windows not properly detected; refs #30
2014-04-04 11:27 marc
* src/cryptoki.hxx, src/suisseid.hxx: fixed wrong calculation of
max pin len; refs #28
2014-04-04 06:52 marc
* libpcscxx.spec.in: package cardgui for deb and rpm; refs #28
2014-04-03 15:00 marc
* configure.in, src/makefile.am: detect moc and uic; refs #28
2014-04-03 14:14 marc
* src/suisseid.hxx: Certificate has now label and id; refs #28
2014-04-03 12:33 marc
* debian/libpcscxx.install, libpcscxx.spec.in: package cardgui for
deb and rpm; refs #28
2014-04-03 11:21 marc
* doc/examples/cardos-demo.cxx, doc/examples/create-files-demo.cxx,
doc/examples/suisse-id-demo.hxx, src/cardos.hxx,
src/cryptoki.cxx, src/cryptoki.hxx, src/pcsc.hxx,
src/suisseid.hxx: replaced mrw::Shared by std::shared_ptr; refs
#28
2014-04-02 13:20 marc
* configure.in: removed DISTCHECK_CONFIGURE_FLAGS; refs #28
2014-04-02 12:42 marc
* configure.in: setup DISTCHECK_CONFIGURE_FLAGS; refs #28
2014-04-02 12:39 marc
* configure.in: setup DISTCHECK_CONFIGURE_FLAGS; refs #28
2014-04-02 12:04 marc
* configure.in: setup DISTCHECK_CONFIG_FLAGS; refs #28
2014-04-02 11:46 marc
* configure.in: setup DISTCHECK_CONFIG_FLAGS; refs #28
2014-04-02 11:01 marc
* src/makefile.am: fix distribution - make distcheck works now;
refs #28
2014-04-02 09:03 marc
* src/makefile.am: fix winscard-link on mingw; refs #28
2014-04-02 08:49 marc
* src/makefile.am: fix winscard-link on mingw; refs #28
2014-04-02 08:07 marc
* src/makefile.am: fix PCSC-framework-link on mac; refs #28
2014-04-02 06:57 marc
* src/cryptoki.hxx: fix for non C++11-compilers (mac); refs #28
2014-04-02 06:57 marc
* configure.in: fix for non C++11-compilers (mac); refs #28
2014-04-02 06:31 marc
* src/cryptoki.hxx: fix for non C++11-compilers (mac); refs #28
2014-04-01 13:10 marc
* doc/examples/cardos-demo.cxx, doc/examples/create-files-demo.cxx,
doc/examples/cryptoki-demo.cxx,
doc/examples/cryptoki-sign-demo.cxx, src/cardos.hxx,
src/cryptaux.hxx, src/cryptoki.cxx, src/cryptoki.hxx,
src/openssl-engine.hxx, src/openssl.hxx, src/overview.doc,
src/pcsc.hxx, src/suisseid.hxx: fixed tons of warnings; refs #28
2014-03-31 13:26 marc
* configure.in: fixed qt build; refs #28
2014-03-31 11:10 marc
* src/suisseid.hxx: some minor changes accorfing o what's really
needed/supported; refs #28
2014-03-31 09:41 marc
* src/cardgui.cxx, src/cardos.hxx, src/suisseid.hxx: some minor
changes accorfing o what's really needed/supported; refs #28
2014-03-28 13:54 marc
* configure.in, doc/examples/makefile.am, src/makefile.am:
compile-fix: support Qt4 - cleanup of connection management, new
major version number 3, use static connection methods; refs #26,
refs #28, refs #29
2014-03-26 15:32 marc
* src/cardgui.hxx: compile-fix: support Qt4 - cleanup of connection
management, new major version number 3, use static connection
methods; refs #26, refs #28, refs #29
2014-03-26 15:30 marc
* configure.in: compile-fix - cleanup of connection management, new
major version number 3, use static connection methods; refs #26,
refs #28, refs #29
2014-03-26 15:07 marc
* configure.in, doc/examples/cardos-demo.cxx,
doc/examples/create-files-demo.cxx, doc/examples/makefile.am,
doc/examples/moc_cardgui-model.cxx, doc/examples/pcsc-demo.cxx,
src/cardgui-model.hxx, src/cardgui.cxx, src/cardgui.hxx,
src/cardgui.ui, src/cardos.hxx, src/cryptaux.hxx,
src/makefile.am, src/openssl-engine.cxx, src/openssl-engine.hxx,
src/openssl.hxx, src/password.hxx, src/password.ui, src/pcsc.hxx,
src/suisseid.hxx: cleanup of connection management, new major
version number 3, use static connection methods; refs #26, refs
#28, refs #29
2014-03-24 09:23 marc
* doc/examples/create-files-demo.cxx, src/cardos.hxx,
src/cryptaux.hxx, src/openssl-engine.cxx, src/openssl-engine.hxx,
src/openssl.hxx: more unsuccessful tests; refs #28
2014-03-21 12:09 marc
* src/pcsc.hxx: fix check; refs #29
2014-03-18 11:48 marc
* src/pcsc.hxx: new method reset for pcsc connections; refs #29
2014-03-10 08:10 marc
* doc/examples/create-files-demo.cxx: preparations for writing a
file - forgotten new file; refs #28
2014-03-07 15:53 marc
* doc/examples/cardos-demo.cxx, doc/examples/makefile.am,
doc/examples/suisse-id-demo.cxx, src/cardos.hxx,
src/cryptaux.hxx, src/suisseid.hxx: preparations for writing a
file; refs #28
2014-03-05 14:56 marc
* src/suisseid.hxx: locking needs reader; refs #28
2014-03-05 14:23 marc
* makefile.am, src/cardos.hxx: bug in initialization from transport
state; refs #28
2014-03-04 12:11 marc
* src/cardos.hxx: bug in initialization from transport state; refs
#28
2014-03-04 09:50 marc
* src/cryptoki.hxx: fixed for QT4/5: Compile problem; refs #28
2014-03-04 08:51 marc
* src/cryptoki.hxx: fixed for QT4/5: Compile problem; refs #28
2014-03-04 07:51 marc
* src/cryptoki.hxx: fixed for QT4/5: Compile problem; refs #28
2014-03-03 09:55 marc
* doc/examples/suisse-id-demo.cxx: fixed for QT4/5: refs #28
2014-02-27 12:57 marc
* doc/doxyfile.in, doc/examples/cryptoki-demo.cxx,
doc/examples/cryptoki-sign-demo.cxx,
doc/examples/suisse-id-demo.cxx, src/cryptaux.hxx,
src/cryptoki.hxx, src/suisseid.hxx: more documentation; refs #28
2014-01-31 13:32 marc
* doc/doxyfile.in, doc/examples/suisse-id-demo.cxx,
doc/examples/suisse-id-demo.hxx, src/cardos.hxx,
src/cryptaux.hxx, src/cryptoki.hxx, src/openssl.hxx,
src/overview.doc, src/pcsc.hxx, src/suisseid.hxx: documentation;
refs #27
2014-01-28 07:58 marc
* src/suisseid.hxx: backward-compatible (non C++11) constants; refs
#27
2014-01-27 13:48 marc
* doc/examples/suisse-id-demo.cxx, src/suisseid.hxx: added methods
to get specific certificates; refs #27
2014-01-23 13:32 marc
* src/cryptoki.hxx: forgotten inline declaratin; refs #27
2014-01-22 15:17 marc
* doc/examples/suisse-id-demo.cxx: better interface to get binary
certificates; refs #28
2014-01-22 15:14 marc
* doc/examples/suisse-id-demo.cxx, src/cryptoki.hxx,
src/suisseid.hxx: better interface to get binary certificates;
refs #28
2014-01-21 08:20 marc
* src/cryptoki.hxx: copy constructor requires explicit default
constructor; refs #28
2014-01-20 13:05 marc
* src/cryptoki.hxx: moved copy-initialization to copy constructor;
refs #28
2014-01-13 10:41 marc
* src/cryptoki.hxx: add methods to convert slot and token info from
C-structure; refs #28
2013-12-12 13:40 marc
* COPYING, INSTALL, configure.in, doc/examples/makefile.am,
doc/examples/suisse-id-demo.cxx: add example for using
QSslCertificate; refs #28
2013-11-12 15:40 marc
* src/pcsc.hxx: resolve problem with very old compiler and Mac
10.5; refs #28
2013-11-12 15:06 marc
* src/cryptoki.hxx, src/openssl-engine.hxx: resolve problem with
very old compiler (gcc 4.0); refs #28
2013-11-11 11:49 marc
* src/cardos.hxx, src/cryptaux.hxx, src/cryptoki.hxx,
src/openssl.hxx, src/pcsc.hxx: bug fixes and reference counters
(prevents hanging); refs #28
2013-11-07 10:03 marc
* src/makefile.am: removed left over certimport; refs #28
2013-11-06 14:21 marc
* configure.in, debian/changelog.in: Flexible package signature;
refs #28
2013-11-06 12:24 marc
* configure.in, debian/control, debian/rules,
doc/examples/cryptoki-sign-demo.cxx, doc/examples/makefile.am,
doc/examples/openssl-engine-demo.cxx,
doc/examples/suisse-id-demo.cxx, doc/examples/suisse-id-demo.hxx,
src/cardos.hxx, src/cryptaux.hxx, src/cryptoki.cxx,
src/cryptoki.hxx, src/makefile.am, src/openssl-engine.hxx,
src/openssl.hxx, src/pcsc.hxx, src/suisseid.hxx: Added all
SuisseID Functionality except certificate import from server,
which shall remain closed; refs #28
2013-10-23 13:33 marc
* src/suisseid.hxx: documentation for card status check and
iniialization; refs #28
2013-10-21 13:49 marc
* configure.in: compile with -stc=c++11 if availabel; refs #28
2013-10-21 13:42 marc
* ax_cxx_compile_stdcxx_11.m4, configure.in: compile with
-stc=c++11 if availabel; refs #28
2013-10-21 12:13 marc
* doc/examples/suisse-id-demo.cxx, src/cryptoki.hxx: default
arguments; refs #28
2013-10-21 07:10 marc
* doc/doxyfile.in, doc/examples/cardos-demo.cxx,
doc/examples/cryptoki-sign-demo.cxx, doc/examples/makefile.am,
doc/examples/suisse-id-demo.cxx, src/cardos.hxx,
src/cryptaux.hxx, src/makefile.am, src/pcsc.hxx,
src/suisseid.hxx: added basic suisse id functions; refs #28
2013-10-15 11:57 marc
* configure.in, doc/examples/cryptoki-demo.cxx,
doc/examples/cryptoki-sign-demo.cxx, doc/examples/pcsc-demo.cxx,
doc/examples/suisse-id-demo.cxx, src/cryptoki.cxx,
src/cryptoki.hxx, src/pcsc.hxx: added draft lib for suisseid - by
now: detect Post SuisseID; refs #28
2013-10-11 13:51 marc
* doc/examples/makefile.am, doc/examples/suisse-id-demo.cxx,
src/pcsc.hxx: erste suisseid demo; refs #28
2013-10-10 12:23 marc
* src/cryptoki.cxx, src/openssl.hxx, src/pcsc.hxx: typos; refs #28
2013-10-10 09:13 marc
* src/cryptoki.cxx, src/cryptoki.hxx, src/pcsc.hxx: functions to
scan specific cards; refs #28
2013-10-03 06:33 marc
* doc/examples/cryptoki-sign-demo.cxx: typos; refs #27
2013-10-02 14:00 marc
* doc/examples/cryptoki-sign-demo.cxx: typos; refs #27
2013-10-02 13:57 marc
* doc/examples/cryptoki-sign-demo.cxx: typos; refs #27
2013-09-27 14:36 marc
* doc/examples/cryptoki-sign-demo.cxx: try to also support C++ <
201103; refs #27
2013-09-24 12:55 marc
* doc/examples/makefile.am: only in gcc 4.7 and newer: -std=c++11;
refs #27
2013-09-24 12:05 marc
* doc/examples/cryptoki-sign-demo.cxx, doc/examples/makefile.am:
add example for signing; refs #27
2013-06-13 13:39 marc
* debian/rules: fixed: make deb; refs #26
2013-06-13 12:38 marc
* src/pcsc.hxx: work-around with pcsc::shared_ptr<T>::t - again;
refs #26
2013-06-13 11:59 marc
* src/pcsc.hxx: work-around with pcsc::shared_ptr<T>::t; refs #26
2013-06-13 10:37 marc
* src/pcsc.hxx: added compiler warning; refs #26
2013-06-13 09:30 marc
* src/pcsc.hxx: fallback for old compilers - use: -DNO_CXX2011;
refs #26
2013-06-13 09:24 marc
* src/pcsc.hxx: fallback for old compilers; refs #26
2013-06-13 09:16 marc
* src/pcsc.hxx: fallback for old compilers; refs #26
2013-06-13 09:13 marc
* debian/rules, libpcscxx.spec.in: add CPPFLAGS=-std=c++0x for
debian and rpm package builds ; refs #26
2013-06-13 09:07 marc
* NEWS, libpcscxx.spec.in, src/pcsc.hxx: shared pointer is now from
std C++/11; refs #26
2013-04-03 09:14 marc
* src/openssl-engine.hxx: Problem was not here but in swissbrowser;
closes #25
2013-04-02 14:31 marc
* src/openssl-engine.hxx: still nothing, undo and more log; refs
#25
2013-04-02 12:54 marc
* src/openssl-engine.hxx: still nothing, more log; refs #25
2013-04-02 12:07 marc
* src/openssl-engine.hxx: next try, don't call ENGINE_free; refs
#25
2013-04-02 08:36 marc
* debian/control: added dependency on libssl-dev for the
dev-package; closes #19
2013-04-02 08:32 marc
* src/openssl-engine.hxx: removed ENGINE_set_destroy_function; refs
#25
2013-01-25 14:36 marc
* libpcscxx.spec.in, src/pcsc.hxx: fix fedora-18 bug; closes #24
2012-12-12 09:24 jenkins
* README: added README contents; refs #23
2012-12-12 08:30 marc
* README: added README contents; refs #23
2012-11-20 10:37 marc
* src/pcsc.hxx: try to use the e-health hack only for windoze; refs
#22
2012-11-16 14:24 marc
* src/pcsc.hxx: requested by Laurent Pages: Indeed the smartcard
detection on Windows does not work properly; refs #22
2012-09-19 07:08 marc
* libpcscxx.spec.in: other dependency for fedora; refs #21
2012-09-18 13:36 marc
* libpcscxx.spec.in: other dependency for fedora; refs #21
2012-06-15 12:30 marc
* doc/examples/makefile.am: missing include path in example
makefile; refs #20
2012-06-15 12:23 marc
* doc/examples/makefile.am: missing include path in example
makefile; refs #20
2012-06-11 09:58 marc
* debian/rules: allow OpenSSL 0.8 in debian build for old
debian/ubuntu versions; refs #20
2012-06-11 06:25 marc
* src/openssl.hxx: disallow old SSL versions; refs #20
2012-06-08 09:38 marc
* src/openssl.hxx: remove const; refs #20
2012-06-08 09:07 marc
* src/openssl.hxx: remove const; refs #20
2012-06-08 08:31 marc
* doc/examples/makefile.am, src/openssl.hxx: remove const; refs #20
2012-03-14 09:54 marc
* src/pcsc.hxx: added method control; refs #18
2011-12-20 11:30 marc
* libpcscxx.spec.in: replaced lib with %_lib; refs #17
2011-11-10 13:28 marc
* src/openssl-engine.hxx, src/pcsc.hxx: conflict in #define; closes
#1
2011-11-10 10:31 marc
* configure.in, doc/examples/makefile.am, doc/makefile.am,
libpcscxx.spec.in, makefile.am, src/makefile.am: new make target
rpm; builds versionnumber; closes #1
2011-10-31 15:36 marc
* src/makefile.am: remove ls *.doc; closes #16
2011-10-26 10:31 marc
* src/makefile.am: add libraries for natty; refs #15
2011-10-26 09:43 marc
* src/makefile.am: add libraries; refs #15
2011-09-08 08:56 marc
* src/openssl.hxx: fixed DATADIR; closes #14
2011-09-05 08:35 marc
* src/openssl.hxx: some bugs fixed; closes #13
2011-06-21 07:32 marc
* src/cryptoki.hxx: closes #12
2011-05-03 11:57 marc
* doc/examples/openssl-engine-demo.cxx, src/openssl-engine.hxx:
template for engine registry; refs #11
2011-05-03 11:11 marc
* src/openssl-engine.hxx: more robust implementation and better
interface to engine registrator; refs #11
2011-04-26 12:43 marc
* src/openssl.hxx: more debug log; refs #11
2011-04-21 09:50 marc
* src/cryptoki.hxx, src/makefile.am, src/openssl-engine.hxx,
src/pkcs11, src/pkcs11/apiclient.h, src/pkcs11/pkcs11.h,
src/pkcs11/pkcs11types.h: partial undo of changeset [92] because
Mac has no opensc; closes #11
2011-04-21 06:30 marc
* src/cryptoki.hxx, src/openssl-engine.hxx, src/openssl.hxx: done
in first release; closes #11
2011-04-15 09:42 marc
* src/cryptoki.hxx, src/makefile.am, src/pcsc.hxx, src/pkcs11:
better handling of empty reader list; refs #11
2011-04-15 06:52 marc
* doc/examples/openssl-engine-demo.cxx: better logging in PCSC and
first engine release; refs #11
2011-04-15 06:50 marc
* doc/examples/makefile.am, src/cryptoki.cxx, src/makefile.am,
src/openssl-engine.cxx, src/openssl-engine.hxx, src/pcsc.hxx:
better logging in PCSC and first engine release; refs #11
2011-03-29 12:54 marc
* install-64-and-32-bit-linux.sh, src/cryptoki.cxx,
src/cryptoki.hxx, src/pcsc.hxx: checked-in too much, undo; refs
#10
2011-03-29 12:52 marc
* doc/examples/cryptoki-demo.cxx, doc/examples/pcsc-demo.cxx:
checked-in too much, undo; refs #10
2011-03-29 12:50 marc
* doc/examples/makefile.am, install-64-and-32-bit-linux.sh,
src/cryptoki.cxx, src/cryptoki.hxx, src/pcsc.hxx: added -lcrypto
to examples; refs #10
2010-10-07 12:04 marc
* src/makefile.am: removed -lssl; refs #9
2010-09-27 06:53 marc
* src/makefile.am, src/pcsc.cxx, src/pcsc.hxx: Removed
SCardCancelTransaction completely; Added neesting counter; refs
#8
2010-09-24 07:12 marc
* src/pcsc.hxx: hangs on mac, try to end transaction after cancel;
refs #8
2010-09-23 15:20 marc
* src/pcsc.hxx: commit instead of cancel for win; closes #8
2010-09-17 08:59 marc
* COPYING, INSTALL, configure.in, src/cryptoki.hxx, test: now it
compiles again; refs #7
2010-09-17 07:44 marc
* src/cryptoki.hxx, src/pcsc.hxx: bug in session managing,
redesign: removed smart resources, don't allow to copy sessions;
refs #7
2010-08-27 13:10 marc
* COPYING, INSTALL, doc/examples/makefile.am, src/makefile.am,
test/makefile.am: compiles on mac; refs #6
2010-08-27 12:51 marc
* src/makefile.am, src/openssl.hxx, src/versiontest.cxx: version
checker and changes for openssl 1.0.0; refs #6
2010-08-27 12:28 marc
* src/makefile.am: wrong path on mac; refs #6
2010-08-27 11:15 marc
* src/openssl.hxx: first part: const or not const that is the
question; refs #6
2010-08-27 09:43 marc
* src/openssl.hxx: first part: const or not const that is the
question; refs #6
2010-08-26 14:06 marc
* src/openssl.hxx: compile problems on mac; refs #5
2010-08-26 13:36 marc
* doc/examples/makefile.am: better build flags, out of the box
lin,mac,win; refs #5
2010-08-26 13:24 marc
* doc/examples/makefile.am: better build flags, out of the box
lin,mac,win; refs #5
2010-08-26 13:19 marc
* doc/examples/makefile.am: better build flags, out of the box
lin,mac,win; refs #5
2010-08-26 13:13 marc
* doc/examples/makefile.am, src/pkcs11/pkcs11.h: better build
flags, out of the box lin,mac,win; refs #5
2010-08-26 12:24 marc
* configure.in, doc/examples/makefile.am, src/cryptoki.hxx,
src/makefile.am: better build flags, out of the box lin,mac,win;
refs #5
2010-08-03 13:48 marc
* configure.in, doc/examples/cryptoki-demo.cxx,
doc/examples/makefile.am, doc/examples/openssl-ssl-demo.cxx,
doc/examples/openssl-tcp-demo.cxx, doc/examples/pcsc-demo.cxx,
install-64-and-32-bit-linux.sh, src/cryptoki.hxx,
src/makefile.am, src/openssl.hxx, src/pcsc.hxx, src/version.cxx:
added version info, refs #4
2010-06-08 10:28 marc
* doc/examples/makefile.am, test/makefile.am: more dependencies on
64bit lucid, see #1
2010-06-01 13:38 marc
* doc/examples/makefile.am, install-32-bit-lin-win.sh: 32bit-build
added, refs #1
2010-05-12 08:16 marc
* makefile.am: Back to chroot builds, see #1
2010-05-12 08:15 marc
* debian/changelog.in: Maintainer E-Mail changed, see #1
2010-05-12 08:08 marc
* debian/changelog.in: Maintainer E-Mail changed, see #1
2010-05-12 07:46 marc
* debian/control: Maintainer E-Mail changed, see #1
2010-04-26 06:43 marc
* configure.in: vesion increased, see #3
2010-04-16 11:49 marc
* makefile.am: build debian for all architectures, see #1
2010-04-15 14:27 marc
* src/openssl.hxx: closes #2
2010-04-15 13:16 marc
* configure.in, debian/rules, src/libpcscxx.pc.in: bugfixes for
debian, see #1
2010-04-08 12:41 marc
* configure.in, debian, debian/changelog.in, debian/compat,
debian/control, debian/copyright, debian/dirs, debian/docs,
debian/libpcscxx-dev.dirs, debian/libpcscxx-dev.install,
debian/libpcscxx.dirs, debian/libpcscxx.doc-base.EX,
debian/libpcscxx.install, debian/rules, debian/shlibs.local.ex,
debian/watch.ex, makefile.am, src/libpcscxx.pc.in,
src/makefile.am: new target make deb to create debian package,
refs #1
2010-03-03 15:37 marc
* doc/examples/makefile.am, doc/examples/openssl-ssl-demo.cxx,
doc/examples/openssl-tcp-demo.cxx, src/openssl.hxx: TCP- and
SSL-Connection Examples
2010-02-10 13:21 marc
* install-64-and-32-bit-linux.sh, src/cryptoki.cxx,
src/cryptoki.hxx: some details: user opensc-pkcs11.so by default;
catch all exceptions on load
2009-12-09 11:13 marc
* install-64-and-32-bit-linux.sh, src/cryptoki.cxx,
src/cryptoki.hxx: new method Init.reset() - try whether we can
find newly added slots
2009-11-24 12:10 marc
* COPYING, INSTALL, src/cryptoki.hxx: first successful encrypt
2009-11-17 15:56 marc
* COPYING, INSTALL, src/cryptoki.cxx, src/cryptoki.hxx,
src/openssl.hxx: compiled on mac
2009-11-02 14:44 marc
* COPYING, INSTALL, src/openssl.hxx: bin ich blöd oder was?
2009-10-26 12:40 marc
* src/openssl.hxx: pkcs7
2009-10-23 14:57 marc
* src/cryptoki.cxx, src/cryptoki.hxx, src/makefile.am: works for
certimporter on win
2009-10-21 08:52 marc
* configure.in, doc/examples/makefile.am,
install-64-and-32-bit-linux.sh, src/cryptoki.cxx,
src/cryptoki.hxx, src/makefile.am, src/pcsc.hxx,
test/makefile.am: compiles for windoze
2009-10-14 13:31 marc
* src/cryptaux.hxx, src/cryptoki.cxx, src/cryptoki.hxx,
src/openssl.hxx, src/pcsc.hxx: now secure channel enabled
2009-10-07 07:22 marc
* doc/examples/pcsc-demo.cxx, src/pcsc.hxx: transmit now sets up
message
2009-10-01 19:14 marc
* src/cryptoki.cxx, src/cryptoki.hxx, src/openssl.hxx,
test/makefile.am, test/sharedpointer_test.cxx: create and delete
with certificate and key
2009-09-29 07:24 marc
* src/cryptoki.cxx, src/cryptoki.hxx, src/pcsc.hxx: destroy object
2009-09-22 13:25 marc
* src/cryptoki.cxx, src/cryptoki.hxx, src/openssl.hxx: new creation
attributes
2009-09-22 11:21 marc
* src/cryptoki.cxx, src/cryptoki.hxx: pass label on creation
2009-09-22 07:58 marc
* src/makefile.am: linkable again
2009-09-22 07:40 marc
* doc/examples/makefile.am, src/makefile.am, src/openssl.hxx:
compilable again
2009-09-22 07:04 marc
* src/cryptoki.cxx, src/openssl.hxx: mor get methods in certificate
2009-09-21 14:52 marc
* src/openssl.hxx: new certificate attribute get methods
2009-09-21 07:43 marc
* doc/examples/cryptoki-demo.cxx, src/cryptaux.hxx,
src/cryptoki.cxx, src/cryptoki.hxx, src/makefile.am,
src/openssl.hxx, src/pcsc.hxx: auxiliaries are now in
cryptaux.hxx; some get methods for openssl::X509
2009-09-18 13:57 marc
* src/openssl.hxx: X509 subject to DER
2009-09-18 13:31 marc
* src/openssl.hxx: ssl connection first try
2009-09-18 11:41 marc
* doc/makefile.am, src/cryptoki.hxx, src/openssl.hxx,
src/overview.doc, src/pcsc.hxx: improved doxygen
2009-09-18 08:24 marc
* src/openssl.hxx: openssl fixed
2009-09-17 14:57 marc
* src/makefile.am, src/openssl.hxx: now with openssl wrapper
2009-09-16 14:52 marc
* src/cryptoki.cxx, src/cryptoki.hxx: first try to create
2009-09-10 12:13 marc
* src/cryptoki.hxx: login
2009-09-09 16:14 marc
* src/cryptoki.hxx: ulong to string conversion
2009-09-09 12:12 marc
* src/cryptoki.hxx: mark hex with 0x
2009-09-09 06:59 marc
* src/cryptoki.hxx: more texts and no prefix in text
2009-09-08 14:45 marc
* src/cryptoki.hxx: texts changed
2009-09-03 07:46 marc
* src/cryptoki.hxx: get single attribute also with access operator
2009-09-02 13:57 marc
* doc/examples/cryptoki-demo.cxx, src/cryptoki.hxx: attributes read
2009-09-02 08:45 marc
* doc/examples/cryptoki-demo.cxx, src/cryptoki.hxx: read attributes
- in test
2009-09-01 16:15 marc
* doc/examples/cryptoki-demo.cxx, doc/examples/makefile.am,
src/cryptoki.hxx: We can read objects :-)
2009-09-01 13:12 marc
* src/cryptoki.hxx, src/makefile.am, src/pkcs11/apiclient.h,
src/pkcs11/cryptoki.h, src/pkcs11/pkcs11.h, src/pkcs11/pkcs11f.h,
src/pkcs11/pkcs11t.h, src/pkcs11/pkcs11types.h: no more crash (on
linux)
2009-09-01 10:01 marc
* src/pcsc.hxx: compiles on mac
2009-09-01 09:11 marc
* src/cryptoki.cxx, src/cryptoki.hxx: find objects
2009-08-31 14:53 marc
* doc/examples/makefile.am, src/cryptoki.hxx, src/makefile.am,
src/pkcs11, src/pkcs11/cryptoki.h, src/pkcs11/pkcs11.h,
src/pkcs11/pkcs11f.h, src/pkcs11/pkcs11t.h: own pkcs11 header
from rsa
2009-08-31 13:59 marc
* doc/examples/cryptoki-demo.cxx, src/cryptoki.hxx, src/pcsc.hxx:
better error messages
2009-08-31 11:28 marc
* doc/examples/cryptoki-demo.cxx, src/cryptoki.hxx: attributes are
on the way
2009-08-28 14:57 marc
* doc/examples/cryptoki-demo.cxx, src/cryptoki.hxx: even more
2009-08-28 06:56 marc
* configure.in, doc/examples/cryptoki-demo.cpp,
doc/examples/cryptoki-demo.cxx, doc/examples/makefile.am,
doc/examples/pcsc-demo.cpp, doc/examples/pcsc-demo.cxx,
doc/makefile.am, src/cryptoki.hxx, src/makefile.am: many new but
completely untested methods
2009-08-27 14:46 marc
* doc/examples/cryptoki-demo.cpp, doc/examples/pcsc-demo.cpp,
src/cryptoki.cxx, src/cryptoki.hxx, src/makefile.am: first test
with cryptoki
2009-08-25 14:05 marc
* src/pcsc.hxx: resolved problem with proprietary KOBIL windoze
driver
2009-08-19 13:42 marc
* src/pcsc.hxx: corrections
2009-08-11 13:55 marc
* src/pcsc.hxx: same error to text for all OSes (had unknown error
on Mac)
2009-07-24 11:13 marc
* src/pcsc.hxx: add also hex reader name (in case we get non
printing chars)
2009-07-16 07:23 marc
* doc/examples/pcsc-demo.cpp, src/pcsc.hxx: Bug in SCardTransmit
parameter
2009-07-14 11:48 marc
* src/pcsc.hxx: win: even more error details when unknown
2009-07-14 09:16 marc
* src/pcsc.hxx: all: pass context to check; win: even more error
messages
2009-07-13 13:51 marc
* src/pcsc.hxx: error strings also for windoof
2009-07-10 10:02 marc
* src/pcsc.hxx: mac: other types
2009-07-09 12:28 marc
* COPYING, INSTALL, doc/makefile.am, src/makefile.am, src/pcsc.hxx:
compilable and usable
2009-06-17 12:30 marc
* doc/examples, doc/examples/pcsc-demo.cpp, src/pcsc.hxx: imported
pcsc.hxx
2009-06-17 12:24 marc
* AUTHORS, ChangeLog, NEWS, README, bootstrap.sh, configure.in,
doc, doc/doxyfile.in, doc/makefile.am, makefile.am, src,
src/main.cxx, src/makefile.am, test, test/makefile.am: new
project structure
2009-06-17 11:53 marc
* .: start

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

@ -0,0 +1,8 @@
#!/bin/bash -e
if test -n "svn" -a -d .svn -a -e -x /usr/bin/svn2cl; then
svn2cl
fi
aclocal
libtoolize --force
automake -a
autoconf

@ -4,12 +4,16 @@
#
# SYNOPSIS
#
# AX_REQUIRE_STDCXX_11
# AX_REQUIRE_STDCXX_14
# AX_CXX_COMPILE_STDCXX_11([ext|noext],[mandatory|optional])
# AX_CXX_COMPILE_STDCXX_14([ext|noext],[mandatory|optional])
#
# DESCRIPTION
#
# Check for baseline language coverage in the compiler for the C++11
# standard; if necessary, add switches to CXXFLAGS to enable support.
# or C++14 standard; if necessary, add switches to CXXFLAGS to
# enable support.
#
# The first argument, if specified, indicates whether you insist on an
# extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g.
@ -131,3 +135,97 @@ AC_DEFUN([AX_CXX_COMPILE_STDCXX_11], [dnl
AC_SUBST(HAVE_CXX11)
fi
])
AC_DEFUN([AX_CXX_COMPILE_STDCXX_14], [dnl
m4_if([$1], [], [],
[$1], [ext], [],
[$1], [noext], [],
[m4_fatal([invalid argument `$1' to AX_CXX_COMPILE_STDCXX_14])])dnl
m4_if([$2], [], [ax_cxx_compile_cxx14_required=true],
[$2], [mandatory], [ax_cxx_compile_cxx14_required=true],
[$2], [optional], [ax_cxx_compile_cxx14_required=false],
[m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX_14])])dnl
AC_LANG_PUSH([C++])dnl
ac_success=no
AC_CACHE_CHECK(whether $CXX supports C++14 features by default,
ax_cv_cxx_compile_cxx14,
[AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])],
[ax_cv_cxx_compile_cxx14=yes],
[ax_cv_cxx_compile_cxx14=no])])
if test x$ax_cv_cxx_compile_cxx14 = xyes; then
ac_success=yes
fi
m4_if([$1], [noext], [], [dnl
if test x$ac_success = xno; then
for switch in -std=gnu++14 -std=gnu++0y; do
cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx14_$switch])
AC_CACHE_CHECK(whether $CXX supports C++14 features with $switch,
$cachevar,
[ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS="$CXXFLAGS $switch"
AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])],
[eval $cachevar=yes],
[eval $cachevar=no])
CXXFLAGS="$ac_save_CXXFLAGS"])
if eval test x\$$cachevar = xyes; then
CXXFLAGS="$CXXFLAGS $switch"
ac_success=yes
break
fi
done
fi])
m4_if([$1], [ext], [], [dnl
if test x$ac_success = xno; then
for switch in -std=c++14 -std=c++0y; do
cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx14_$switch])
AC_CACHE_CHECK(whether $CXX supports C++14 features with $switch,
$cachevar,
[ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS="$CXXFLAGS $switch"
AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])],
[eval $cachevar=yes],
[eval $cachevar=no])
CXXFLAGS="$ac_save_CXXFLAGS"])
if eval test x\$$cachevar = xyes; then
CXXFLAGS="$CXXFLAGS $switch"
ac_success=yes
break
fi
done
fi])
AC_LANG_POP([C++])
if test x$ax_cxx_compile_cxx14_required = xtrue; then
if test x$ac_success = xno; then
AC_MSG_ERROR([*** A compiler with support for C++14 language features is required.])
fi
else
if test x$ac_success = xno; then
HAVE_CXX14=0
AC_MSG_NOTICE([No compiler with C++14 support was found])
AX_CXX_COMPILE_STDCXX_11([$1], [optional])
else
HAVE_CXX11=1
HAVE_CXX14=1
AC_DEFINE(HAVE_CXX14,1,
[define if the compiler supports basic C++14 syntax])
AC_DEFINE(HAVE_CXX11,1,
[define if the compiler supports basic C++14 syntax])
fi
AC_SUBST(HAVE_CXX11)
AC_SUBST(HAVE_CXX14)
fi
])
AC_DEFUN([AX_REQUIRE_STDCXX_11], [
if test x${HAVE_CXX11} != x1; then
AC_MSG_ERROR([*** A compiler with support for C++11 language features is required.])
fi
])
AC_DEFUN([AX_REQUIRE_STDCXX_14], [
if test x${HAVE_CXX14} != x1; then
AC_MSG_ERROR([*** A compiler with support for C++14 language features is required.])
fi
])

@ -7,44 +7,58 @@
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_ifdef([x_least_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')
if test -z "${SVN_REVISION}"; then SVN_REVISION=0; fi
break;
# it is taken modulo 256 due to a bug on Apple's SX
m4_define(x_least, m4_ifdef([x_least_fix], [x_least_fix],
m4_ifdef([x_least_diff],
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
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)
if test -n "${VCS_REVISION}"; then break; fi
fi
done
echo $ECHO_N $(($SVN_REVISION))
echo $ECHO_N $(($VCS_REVISION))
]), 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')
if test -z "${SVN_REVISION}"; then SVN_REVISION=0; fi
break;
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
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)
if test -n "${VCS_REVISION}"; then break; fi
fi
done
# Mac does not support LEAST > 255
echo $ECHO_N $(($SVN_REVISION%256))
])))
echo $ECHO_N $(($VCS_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_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')
if test -z "${SVN_REVISION}"; then SVN_REVISION=0; fi
break;
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
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)
if test -n "${VCS_REVISION}"; then break; fi
fi;
done
# Mac does not support LEAST > 255
echo $ECHO_N $(($SVN_REVISION/256))
]))
echo $ECHO_N $(($VCS_REVISION/256))
])))
# setup version number
m4_define(x_version, [x_major.m4_ifdef([x_least_diff], x_minor, m4_eval(x_minor+x_minor_diff)).m4_eval(m4_ifdef([x_least_diff], [x_least-x_least_diff], [x_least]))])
@ -115,13 +129,23 @@ AC_DEFUN([AX_SUBST], [
# m4_define(x_minor, MINOR_NUMBER) # 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])
# AM_INIT_AUTOMAKE([1.9 tar-pax parallel-tests color-tests])
# AX_INIT_STANDARD_PROJECT
#
# you change nothing but: YOUR_PACKAGE_NAME, MAJOR_NUMBER, MINOR_NUMBER
#
# configures the basic environment
AC_DEFUN([AX_INIT_STANDARD_PROJECT], [
PREFIX=$(test "$prefix" = NONE && prefix=$ac_default_prefix; eval echo "${prefix}")
AX_SUBST(PREFIX)
SYSCONFDIR=$(test "$prefix" = NONE && prefix=$ac_default_prefix; eval echo "${sysconfdir}")
AX_SUBST(SYSCONFDIR)
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}")
AX_SUBST(PKGDATADIR)
LOCALSTATEDIR=$(test "$prefix" = NONE && prefix=$ac_default_prefix; eval echo "${localstatedir}")
AX_SUBST(LOCALSTATEDIR)
AC_MSG_CHECKING([target platfrom])
UNIX=1
MINGW=
@ -146,17 +170,49 @@ AC_DEFUN([AX_INIT_STANDARD_PROJECT], [
AM_CPPFLAGS+=" '-DMAKE_STRING(X)=\#X' '-DNAMESPACE=${PACKAGE_TARNAME//[^a-zA-Z0-9]/_}'"
AX_SUBST(NUMBERS)
AX_SUBST(HOME)
if test -f README.md; then
README=$(tail -n +3 README.md)
DESCRIPTION=$(head -1 README.md)
else
README=$(tail -n +3 README)
DESCRIPTION=$(head -1 README)
fi
README_ESCAPED=$(echo "$README" | sed ':a;N;$!ba;s/\n/\\n/g;s,",\\",g')
if which pandoc 2>&1 > /dev/null; then
README_HTML=$(echo "$README" | pandoc -f markdown_github -t html | sed ':a;N;$!ba;s,\\\(.\),\\\\<span>\1</span>,g;s/\n/\\n/g;s,",\\",g;s, ,\&nbsp;\&nbsp;,g')
else
README_HTML="${README}"
fi
AX_SUBST(README)
_AM_SUBST_NOTMAKE([README])
DESCRIPTION=$(head -1 README)
AX_SUBST(README_ESCAPED)
_AM_SUBST_NOTMAKE([README_ESCAPED])
AX_SUBST(README_HTML)
_AM_SUBST_NOTMAKE([README_HTML])
AX_SUBST(DESCRIPTION)
_AM_SUBST_NOTMAKE([DESCRIPTION])
LICENSE=$(echo $(head -1 COPYING))
AX_SUBST(LICENSE)
COPYING=$(<COPYING)
AX_SUBST(COPYING)
_AM_SUBST_NOTMAKE([COPYING])
AUTHOR=$(head -1 AUTHORS)
AUTHOR_NAME=$(echo $AUTHOR | sed 's, *[[<(]].*$,,')
AUTHOR_URL=$(echo $AUTHOR | sed 's,.*(\(http[[^)]]*\)).*,\1,')
AUTHOR_MAIL=$(echo $AUTHOR | sed 's,.*<\(.*@.*\)>.*,\1,')
AX_SUBST(AUTHOR)
_AM_SUBST_NOTMAKE([AUTHOR])
AX_SUBST(AUTHOR_NAME)
AX_SUBST(AUTHOR_URL)
AX_SUBST(AUTHOR_MAIL)
PROJECT_URL="${PROJECT_URL:-${AUTHOR_URL}/projects/${PACKAGE_NAME}}"
SOURCE_DOWNLOAD="${SOURCE_DOWNLOAD:-${AUTHOR_URL}/downloads/${PACKAGE_NAME}}"
AX_SUBST(PROJECT_URL)
AX_SUBST(SOURCE_DOWNLOAD)
DISTRO=$(lsb_release -sc 2>/dev/null || uname -s 2>/dev/null)
AX_SUBST(DISTRO)
ARCH=$((@<:@@<:@ $(uname -sm) =~ 64 @:>@@:>@ && echo amd64) || (@<:@@<:@ $(uname -sm) =~ 'i?86' @:>@@:>@ && echo i386 || uname -sm))
AX_SUBST(ARCH)
DISTRIBUTOR=$(lsb_release -si 2>/dev/null || uname -s 2>/dev/null)
case "${DISTRIBUTOR// /-}" in
(Ubuntu) UBUNTU=1; AX_SUBST(UBUNTU);;
@ -178,8 +234,14 @@ AC_DEFUN([AX_INIT_STANDARD_PROJECT], [
PACKAGE_LOGO="${PACKAGE_NAME}-logo.png"
fi
AX_SUBST(PACKAGE_LOGO)
if test -f "${PACKAGE_NAME}-icon.png"; then
if test -f "${PACKAGE_NAME}-icon.svg"; then
PACKAGE_ICON="${PACKAGE_NAME}-icon.svg"
elif test -f "${PACKAGE_NAME}-icon.png"; then
PACKAGE_ICON="${PACKAGE_NAME}-icon.png"
elif test -f "${PACKAGE_NAME}.svg"; then
PACKAGE_ICON="${PACKAGE_NAME}.svg"
elif test -f "${PACKAGE_NAME}.png"; then
PACKAGE_ICON="${PACKAGE_NAME}.png"
fi
AX_SUBST(PACKAGE_ICON)
@ -211,6 +273,25 @@ AC_DEFUN([AX_INIT_STANDARD_PROJECT], [
AM_CPPFLAGS="${AM_CPPFLAGS} -DQT_NO_DEBUG_OUTPUT -DQT_NO_DEBUG"
fi
AC_ARG_WITH(gcov,
[AS_HELP_STRING([--with-gcov=FILE],
[enable gcov, set gcov file (defaults to gcov)])],
[GCOV="$enableval"], [GCOV="no"])
AM_CONDITIONAL(COVERAGE, test "$GCOV" != "no")
if test "$GCOV" != "no"; then
if test "$GCOV" == "yes"; then
GCOV=gcov
fi
AC_CHECK_PROG(has_gcov, [$GCOV], [yes], [no])
if test "$has_gcov" != "yes"; then
AC_MSG_ERROR([gcov: program $GCOV not found])
fi
AC_MSG_NOTICE([Coverage tests enabled, using ${GCOV}]);
AM_CXXFLAGS="${AM_CXXFLAGS:-} -O0 --coverage -fprofile-arcs -ftest-coverage"
AM_LDFLAGS="${AM_LDFLAGS} -O0 --coverage -fprofile-arcs"
AX_SUBST(GCOV)
fi
if test -f ${PACKAGE_NAME}.desktop.in; then
AC_CONFIG_FILES([${PACKAGE_NAME}.desktop])
fi
@ -241,7 +322,7 @@ EOF
AC_DEFUN([AX_USE_CXX], [
m4_include(ax_cxx_compile_stdcxx_11.m4)
AC_LANG(C++)
AX_CXX_COMPILE_STDCXX_11(noext, optional)
AX_CXX_COMPILE_STDCXX_14(noext, optional)
AC_PROG_CXX
AC_PROG_CPP
@ -279,6 +360,43 @@ maintainer-clean-cxx-targets:
EOF
])
# use this in configure.ac to support old school C
AC_DEFUN([AX_USE_C], [
AC_LANG(C)
AC_PROG_CC
AC_PROG_CPP
AC_CONFIG_FILES([src/makefile])
AM_CPPFLAGS+=' -I ${top_srcdir}/src -I ${top_builddir}/src -I ${srcdir} -I ${builddir}'
AM_LDFLAGS+=' -L ${top_srcdir}/src -L ${top_builddir}/src'
# Get rid of those stupid -g -O2 options!
CXXFLAGS="${CXXFLAGS//-g -O2/}"
CFLAGS="${CFLAGS//-g -O2/}"
# pass compile flags to make distcheck
AM_DISTCHECK_CONFIGURE_FLAGS="CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}'"
AC_SUBST(AM_DISTCHECK_CONFIGURE_FLAGS)
AC_SUBST(AM_CFLAGS)
AC_SUBST(AM_CPPFLAGS)
AC_SUBST(AM_LDFLAGS)
AX_ADD_MAKEFILE_TARGET_DEP([maintainer-clean-am], [maintainer-clean-c-targets], [src/makefile.in])
test -f src/makefile.in && cat >> src/makefile.in <<EOF
#### Begin: Appended by $0
%.app: %
-rm -r [\$][@]
\$(MAKE) DESTDIR=[\$][\$](pwd)/[\$][@]/tmp install
\${top_builddir}/mac-create-app-bundle.sh \
[\$][@] [\$][<] [\$][\$](pwd)/[\$][@]/tmp\${prefix}
maintainer-clean-c-targets:
-rm makefile.in
#### End: $0
EOF
])
# use this in configure.ac to support tests without CppUnit
AC_DEFUN([AX_BUILD_TEST], [
AC_CONFIG_FILES([test/makefile])
@ -314,6 +432,33 @@ maintainer-clean-example-targets:
EOF
])
# use this in configure.ac to support C++ examples
AC_DEFUN([AX_USE_NODEJS], [
AC_PATH_PROG(ANDROID, [android], [0],
[${PATH}${PATH_SEPARATOR}${ANDROID_HOME}/tools])
AC_PATH_PROG(CORDOVA, [cordova], [0],
[${PATH}${PATH_SEPARATOR}$(pwd)/node_modules/cordova/bin])
if test ${CORDOVA} = 0; then
AC_MSG_WARN([cordova is missing, on ubuntu install cordova-cli from repository ppa:cordova-ubuntu/ppa])
fi
if test ${ANDROID} = 0; then
AC_MSG_WARN([android sdk is missing, set variable ANDROID_HOME after installation])
fi
AM_CONDITIONAL(HAVE_CORDOVA, [test ${CORDOVA} != 0 -a ${ANDROID} != 0])
AX_SUBST(CORDOVA)
AC_CONFIG_FILES([nodejs/package.json])
AC_CONFIG_FILES([nodejs/makefile])
AC_CONFIG_FILES([cordova/makefile])
AC_CONFIG_FILES([cordova/config.xml])
AX_ADD_MAKEFILE_TARGET_DEP([maintainer-clean-am], [maintainer-clean-example-targets], [examples/makefile.in])
test -f examples/makefile.in && cat >> examples/makefile.in <<EOF
#### Begin: Appended by $0
maintainer-clean-example-targets:
-rm makefile.in
#### End: $0
EOF
])
# use this in configure.ac to support HTML data for webservers
AC_DEFUN([AX_BUILD_HTML], [
AC_CONFIG_FILES([html/makefile])
@ -356,7 +501,11 @@ EOF
# use this in configure.ac to support debian packages
AC_DEFUN([AX_USE_DEBIAN_PACKAGING], [
if test -f README.md; then
README_DEB=$(tail -n +3 README.md | sed -e 's/^ *$/./g' -e 's/^/ /g')
else
README_DEB=$(tail -n +3 README | sed -e 's/^ *$/./g' -e 's/^/ /g')
fi
AC_SUBST(README_DEB)
_AM_SUBST_NOTMAKE([README_DEB])
AC_CONFIG_FILES([debian/changelog debian/control])
@ -379,12 +528,15 @@ EOF
AC_DEFUN([AX_USE_RPM_PACKAGING], [
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])
AX_ADD_MAKEFILE_TARGET_DEP([distclean-am], [distclean-rpm-targets], [makefile.in])
test -f makefile.in && cat >> makefile.in <<EOF
#### Begin: Appended by $0
EXTRA_DIST += \${PACKAGE_NAME}.spec.in
rpm: dist
rpmbuild -ba --define "_topdir \$\$(pwd)" --define "_sourcedir \$\$(pwd)" \${PACKAGE_NAME}.spec
clean-rpm-targets:
-rm -rf BUILD BUILDROOT RPMS SPECS SRPMS
distclean-rpm-targets:
-rm \${PACKAGE_NAME}.spec
#### End: $0
@ -401,6 +553,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))
PDF_DOC=${PACKAGE_NAME}-${PACKAGE_VERSION}.pdf
AC_SUBST(PDF_DOC)
if test "$have_doxygen" = "no"; then
@ -415,22 +568,38 @@ AC_DEFUN([AX_USE_DOXYGEN], [
AC_MSG_WARN([Missing program mscgen!
- when you rebild documentation, there are no message state charts
- there are precompiled derived files in the distribution]); fi
AC_CONFIG_FILES([doc/makefile doc/doxyfile])
AC_CONFIG_FILES([doc/makefile doc/doxyfile doc/header.html doc/footer.html])
AX_ADD_MAKEFILE_TARGET_DEP([clean-am], [clean-documentation], [doc/makefile.in])
AX_ADD_MAKEFILE_TARGET_DEP([distclean-am], [distclean-documentation], [doc/makefile.in])
AX_ADD_MAKEFILE_TARGET_DEP([maintainer-clean-am], [maintainer-clean-documentation], [doc/makefile.in])
AX_ADD_MAKEFILE_TARGET_DEP([install-data-am], [install-data-documentation], [doc/makefile.in])
AX_ADD_MAKEFILE_TARGET_DEP([uninstall-am], [uninstall-documentation], [doc/makefile.in])
AX_ADD_MAKEFILE_TARGET_DEP([all], [doc], [doc/makefile.in])
AX_ADD_MAKEFILE_TARGET_DEP([.PHONY], [pdf], [doc/makefile.in])
AX_ADD_MAKEFILE_TARGET_DEP([.PHONY], [pdf gen-uml-images], [doc/makefile.in])
test -f doc/makefile.in && cat >> doc/makefile.in <<EOF
#### Begin: Appended by $0
doc: doxyfile
doc: doxyfile @NEED_PLANTUML_TRUE@ gen-uml-images
@NEED_PLANTUML_TRUE@ doxyadd() { grep -q "\$\$[1] += \$\$[2]" doxyfile || sed -i '/^'"\$\$[1]"' *=/a'"\$\$[1]"' += '"\$\$[2]" doxyfile; }; \\
@NEED_PLANTUML_TRUE@ doxyadd ALIASES '"startuml{1}=@image html \\\\1\\\\n@image latex \\\\1\\\\n\\\\if DontIgnorePlantUMLCode"'; \\
@NEED_PLANTUML_TRUE@ doxyadd ALIASES '"enduml=\\\\endif"'; \\
@NEED_PLANTUML_TRUE@ doxyadd IMAGE_PATH '"gen-uml-images"';
doxygen doxyfile
@PEDANTIC_TRUE@ test \! -s doxygen.errors
@NEED_PLANTUML_TRUE@EXTRA_DIST = ${EXTRA_DIST} plantuml.jar
@NEED_PLANTUML_TRUE@
@NEED_PLANTUML_TRUE@gen-uml-images:
@NEED_PLANTUML_TRUE@ test -d gen-uml-images || mkdir gen-uml-images
@NEED_PLANTUML_TRUE@ eval \$\$(sed -n 's, *INPUT *\\(+\\?\\)= *\\(.*\\),INPUT\\1=" \\2",gp' doxyfile); \\
@NEED_PLANTUML_TRUE@ eval \$\$(sed -n 's, *FILE_PATTERNS *\\(+\\?\\)= *\\(.*\\),FILE_PATTERNS\\1=" \\2",gp' doxyfile); \\
@NEED_PLANTUML_TRUE@ SOURCES="**.("\$\$(echo \$\${FILE_PATTERNS} | sed 's,*.,,g;s, ,|,g')")"; \\
@NEED_PLANTUML_TRUE@ for src in \$\$INPUT; do \\
@NEED_PLANTUML_TRUE@ java -Djava.awt.headless=true -jar \${top_srcdir}/doc/plantuml.jar -v -o \$\$(pwd)/gen-uml-images "\$\$src/\$\$SOURCES"; \\
@NEED_PLANTUML_TRUE@ done
clean-documentation:
-rm doxygen.errors @PDF_DOC@
@NEED_PLANTUML_TRUE@ -rm -rf gen-uml-images doxygen_sqlite3.db
distclean-documentation:
-rm -r html
-rm @PACKAGE_NAME@.doxytag
@ -447,6 +616,55 @@ uninstall-documentation:
EOF
])
# use this in configure.ac to support Doxygen documentation generation
AC_DEFUN([AX_USE_PERLDOC], [
PERL_SOURCES="m4_default([$1], [perl])"
AX_SUBST(PERL_SOURCES)
if test -z "$PERL_SOURCES"; then
AC_MSG_ERROR([You must specify the path to per files
- use [AX]_[USE]_PERLDOC([[pathes to perldoc]])]); fi
AC_CHECK_PROG(have_perldoc, pods2html, yes, no)
if test "$have_doxygen" = "no"; then
AC_MSG_WARN([Missing program pods2html!
- you cannot rebuild the documentation
- there are precompiled derived files in the distribution
- if you need to generate documentation, install libpod-tree-perl]); fi
AC_CONFIG_FILES([doc/makefile])
AX_ADD_MAKEFILE_TARGET_DEP([distclean-am], [distclean-perldoc], [doc/makefile.in])
AX_ADD_MAKEFILE_TARGET_DEP([maintainer-clean-am], [maintainer-clean-perldoc], [doc/makefile.in])
AX_ADD_MAKEFILE_TARGET_DEP([install-data-am], [install-data-perldoc], [doc/makefile.in])
AX_ADD_MAKEFILE_TARGET_DEP([uninstall-am], [uninstall-perldoc], [doc/makefile.in])
AX_ADD_MAKEFILE_TARGET_DEP([all], [doc], [doc/makefile.in])
AX_ADD_MAKEFILE_TARGET_DEP([.PHONY], [doc], [doc/makefile.in])
test -f doc/makefile.in && cat >> doc/makefile.in <<EOF
#### Begin: Appended by $0
doc: perldoc/index.html
perldoc/index.html: \${PERL_SOURCES:%=perldoc/%}
echo "<html><head><title>Perl Documentation</title></head><body><h1>Perl Documentation</h1><ul>" > perldoc/index.html
for p in \${PERL_SOURCES:%=perldoc/%}; do \
echo '<li><a href="'"\$\${p#perldoc/}"'/index.html">'"\$\${p#perldoc/}"'</a></li>' >> perldoc/index.html; \
done
echo "</ul></body></html>" >> perldoc/index.html
perldoc/%:
pods2html --notoc --empty --index index @top_srcdir@/\${@:perldoc/%=%} \$[@]
distclean-perldoc:
-rm -r perldoc
maintainer-clean-perldoc:
-rm makefile.in
install-data-perldoc:
test -d \$(DESTDIR)\${docdir} || mkdir -p \$(DESTDIR)\${docdir}
chmod -R u+w \$(DESTDIR)\${docdir}
cp -r perldoc \$(DESTDIR)\${docdir}/
uninstall-perldoc:
-chmod -R u+w \$(DESTDIR)\${docdir}
-rm -rf \$(DESTDIR)\${docdir}/perldoc
#### End: $0
EOF
])
# require a specific package, with fallback: test for a header
# - parameter:
# $1 = unique id (no special characters)
@ -602,6 +820,7 @@ AC_DEFUN([AX_PKG_CHECK], [
# make sure, a specific header exists
# - parameter:
# $1 = header name
# $2 = pathes to search for
AC_DEFUN([AX_REQUIRE_HEADER], [
AC_CHECK_HEADER($1, [], [
if test -n "$2"; then

@ -23,17 +23,22 @@ docker=0
buildtarget=""
overwrite=0
rebuild=0
novcs=0
excludevcs=()
rebuildfiles=()
while test $# -gt 0; do
case "$1" in
(--configure|-c) configure=1;;
(--docker|-d) docker=1;;
(--build|-b) configure=1; build=1; buildtarget+=" distcheck";;
(--target|-t) shift; configure=1; build=1; buildtarget+=" $1";;
(--all|-a) shift; configure=1; build=1; buildtarget+=" all";;
(--clean) shift; configure=1; build=1; buildtarget+=" maintainer-clean";;
(--target|-t) shift; configure=1; build=1; buildtarget+=" $1";;
(--overwrite|-o) overwrite=1;;
(--rebuild|-r) rebuild=1;;
(--rebuild-file|-f) shift; rebuildfiles+=("$1");;
(--no-vcs|-n) novcs=1;;
(--exclude-vcs|-x) shift; excludevcs+=("$1");;
(--version|-v)
echo "$Id$";
exit;;
@ -47,10 +52,14 @@ OPTIONS
--configure, -c call ./configure after initialization
--docker, -d build and run tests in a docker instance
--build, -b build, also call ./configure && make distcheck
--all, -a same as -b, but make target all
--clean same as -b, but make target maintainer-clean
--target, -t <target> 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 <file> rebild specific file (can be added multiple times)
--no-vcs, -n do not automatically add files to version control
--exclude-vcs, -x <file> exclude specific file from version control
--help, -h show this help
--version, -v show version and date of this file
@ -61,7 +70,7 @@ DESCRIPTION
configure.ac. Automatically copies or creates all required template
files.
From your new and empty project's subversion path, call $0 to
From your new and empty project's subversion or git path, call $0 to
initialize your build environment.
Before you call ${MY_NAME} the very first time, edit ${0#/*}/AUTHORS
@ -80,16 +89,27 @@ DESCRIPTION
https://dev.marc.waeckerlin.org/, and the path from where you call
${MY_NAME} (which is actually ${PROJECT_PATH}) should be the path to
your newly created project. Please note that your project must be a
checked out subversion repository, since this build environment
relies on subversion.
checked out subversion or git repository, since this build
environment relies on subversion or git.
Example for an initial run, where your new projet is stored in
subversion on svn:/path/to/your/new-project:
subversion on https:/path/to/your/new-project:
cd ~/svn
svn co https://dev.marc.waeckerlin.org/svn/bootstrap-build-environment/trunk \\
bootstrap-build-environment
svn co svn:/path/to/your/new-project/trunk new-project
svn co https:/path/to/your/new-project/trunk new-project
cd new-project
../bootstrap-build-environment/bootstrap.sh
Example for an initial run, where your new projet is stored in
git on https:/path/to/your/new-project:
cd ~/svn
svn co https://dev.marc.waeckerlin.org/svn/bootstrap-build-environment/trunk \\
bootstrap-build-environment
cd ~/git
git clone https:/path/to/your/new-project
cd new-project
../bootstrap-build-environment/bootstrap.sh
@ -98,18 +118,22 @@ RUNNING
If you run ${MY_NAME}, it first generates the necessary files (see
below), then first runs make distclean if a makefile exists. After
this it calles aclocal, libtoolize, automake, autoconf and
optionally ./configure.
optionally ./configure. If necessary, files are added to version
control.
GENERATED FILES
This script copies the following files into your project environment:
* ${MY_NAME}
* autogen.sh - just the basics to initialize auto tools and create configure
* 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
* makefile_test.inc.am - makefile to be included in tests
* resolve-debbuilddeps.sh - script to install debian package dependencies
* 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
* 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
@ -125,9 +149,14 @@ GENERATED FILES
* src/version.cxx - if you enabled AX_USE_CXX
* html/makefile.am - if you enabled AX_BUILD_HTML
* scripts/makefile.am - if you enabled AX_USE_SCRIPTS
* doc/makefile.am - if you enabled AX_USE_DOXYGEN
* doc/makefile.am - if you enabled AX_USE_DOXYGEN or AX_USE_PERLDOC
* doc/doxyfile.in - if you enabled AX_USE_DOXYGEN
* test/makefile.am - if you enabled AX_BUILD_TEST or AX_USE_CPPUNIT
* doc/header.html.in - if you enabled AX_USE_DOXYGEN
* doc/footer.html.in - if you enabled AX_USE_DOXYGEN
* doc/style.css - if you enabled AX_USE_DOXYGEN
* doc/plantuml.jar - if you enable AX_USE_DOXYGEN
* test/makefile.am - if you enabled AX_USE_CPPUNIT and AX_USE_CXX
* test/${DEFAULT_PROJECT_NAME#lib}.cxx - if you enabled AX_BUILD_TEST or AX_USE_CPPUNIT
* examples/makefile.am - if you enabled AX_BUILD_EXAMPLES
* debian/changelog.in - if you enabled AX_USE_DEBIAN_PACKAGING
* debian/control.in - if you enabled AX_USE_DEBIAN_PACKAGING
@ -168,6 +197,7 @@ FILES TO EDIT
* src/makefile.am
* html/makefile.am
* test/makefile.am
* test/${DEFAULT_PROJECT_NAME}.cxx
* examples/makefile.am
FILE DEPENDENCIES
@ -178,8 +208,8 @@ FILE DEPENDENCIES
* 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_CHECK_QT, AX_REQUIRE_QT, AX_USE_LIBTOOL
* 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
* 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
@ -201,17 +231,19 @@ FILES
${DEFAULT_PROJECT_NAME}::description().
* ChangeLog: Your changelog is automatically maintained from
subversion history, using svn2cl. You don't need to
care about.
care about. It uses git2cl on git repositories.
* configure.ac: This file becomes very short and simple. You provide
the project name, the major and minor version. The
least version number is automatically taken from
subversion's revision, so every checkin
automatically increments the least version
number. The following macros are supported:
number. In git, git rev-list --all --count is used.
The following macros are supported in configure.ac:
* Enable C++: AX_USE_CXX
* Enable LibTool library creation: AX_USE_LIBTOOL
* Enable Scripts: AX_USE_SCRIPTS
* Enable Doxygen documentation generation: AX_USE_DOXYGEN
* Enable Perldoc documentation generation: AX_USE_PERLDOC
* Enable Debian packaging by calling "make deb": AX_USE_DEBIAN_PACKAGING
* Enable RPM packaging by calling "make rpm": AX_USE_RPM_PACKAGING
* Enable C++ testing using CppUnit: AX_USE_CPPUNIT
@ -247,6 +279,20 @@ EOF
shift;
done
echo -en "\e[1m-> checking:\e[0m for version control system ..."
VCS=""
VCSDEPENDS=""
if test -d .svn; then
VCS="svn"
VCSDEPENDS="subversion,"
echo -e " \e[32msuccess\e[0m detected ${VCS}"
elif test -d .git; then
VCS="git"
VCSDEPENDS="git,"
echo -e " \e[32msuccess\e[0m detected ${VCS}"
else
echo -e " \e[33mignored\e[0m"
fi
HEADER='## @id '"\$Id\$"'
##
@ -270,6 +316,7 @@ CHEADER='/** @id '"\$Id\$"'
// 1 2 3 4 5 6 7 8
// 45678901234567890123456789012345678901234567890123456789012345678901234567890
'
notice() {
@ -318,7 +365,9 @@ contains() {
checkdir() {
if ! test -d "$1"; then # create path
run mkdir -p "$1"
run svn add "$1"
if test -n "${VCS}" -a $novcs -eq 0 && ! contains "$1" "${excludevcs[@]}"; then
run ${VCS} add "$1"
fi
fi
}
@ -331,13 +380,17 @@ checkfile() {
}
to() {
while test $# -gt 0; do
mode="u=rw,g=rw,o=r"
while test $# -gt 0; do
case "$1" in
(--condition) shift # test for a tag, abort if not set
if ! testtag "$1"; then
return 0
fi;;
(--unless) shift # test for a tag, abort if set
if testtag "$1"; then
return 0
fi;;
(--mode) shift # test for a tag, abort if not set
mode="$1";;
(*) break;;
@ -363,11 +416,15 @@ to() {
else
echo -e " \e[32msuccess\e[0m"
fi
chmod $mode $1
run chmod $mode $1
if test $exists -eq 0; then
run svn add "$1"
if test -n "${VCS}" -a $novcs -eq 0 && ! contains "$1" "${excludevcs[@]}"; then
run ${VCS} add "$1"
if test "${VCS}" = "svn"; then
run svn propset svn:keywords "Id" "$1"
fi
fi
fi
return 0
}
@ -384,11 +441,18 @@ copy() {
source="${0%/*}/$1"
fi
fi
if test "${1%/*}" != "$1"; then
test -d "${1%/*}" || svn mkdir "${1%/*}"
fi
run cp "${source}" "$1"
if test $exists -eq 0; then
run svn add "$1"
if test -n "${VCS}" -a $novcs -eq 0 && ! contains "$1" "${excludevcs[@]}"; then
run ${VCS} add "$1"
if test "${VCS}" = "svn"; then
run svn propset svn:keywords "Id" "$1"
fi
fi
fi
}
doxyreplace() {
@ -413,17 +477,41 @@ doxyadd() {
fi
}
vcs2cl() {
exists=0
if test -f "ChangeLog"; then
exists=1
else
touch "ChangeLog"
fi
if test -x $(which ${VCS}2cl); then
if test "${VCS}" = "git"; then
${VCS}2cl > ChangeLog
elif test -n "${VCS}"; then
${VCS}2cl
fi
fi
if test $exists -eq 0; then
if test -n "${VCS}" -a $novcs -eq 0 && ! contains "ChangeLog" "${excludevcs[@]}"; then
run ${VCS} add ChangeLog
fi
fi
}
# Check if we are in subversion root, if so, create trunk, branches, tags:
if test "${VCS}" = "svn" -a $novcs -eq 0; then
if test "$(LANG= svn info | sed -n 's,Relative URL: *,,p')" = "^/"; then
svn mkdir trunk branches tags
cd trunk
fi
fi
# Initialize the environment:
copy ${MY_NAME}
copy ax_init_standard_project.m4
copy ax_cxx_compile_stdcxx_11.m4
copy ax_check_qt.m4
copy makefile_test.inc.am
copy resolve-debbuilddeps.sh
copy resolve-rpmbuilddeps.sh
copy build-in-docker.sh
@ -446,7 +534,11 @@ ${DEFAULT_PROJECT_NAME}
add description for ${DEFAULT_PROJECT_NAME}
EOF
to configure.ac <<EOF && notice "please edit configure.ac, then rerun $0" && exit 0
${HEADER}m4_define(x_package_name, ${DEFAULT_PROJECT_NAME}) # project's name
${HEADER}# default is generated from AUTHORS and project name
PROJECT_URL=
SOURCE_DOWNLOAD=
m4_define(x_package_name, ${DEFAULT_PROJECT_NAME}) # project's name
m4_define(x_major, 0) # project's major version
m4_define(x_minor, 0) # project's minor version
m4_include(ax_init_standard_project.m4)
@ -459,6 +551,7 @@ AX_INIT_STANDARD_PROJECT
#AX_USE_LIBTOOL
#AX_USE_SCRIPTS
#AX_USE_DOXYGEN
#AX_USE_PERLDOC
#AX_USE_DEBIAN_PACKAGING
#AX_USE_RPM_PACKAGING
#AX_USE_CPPUNIT
@ -486,6 +579,20 @@ if ! testtag AX_CHECK_QT && \
! testtag AX_REQUIRE_QT; then
echo "${HEADER}MAINTAINERCLEANFILES = makefile.in" | \
to --condition AX_USE_CXX src/makefile.am
if ! ls src/*.[ch]xx; then
to --condition AX_USE_CXX src/${PACKAGE_NAME#lib}.hxx <<EOF
${CHEADER}#ifndef ${PackageName^^}_HXX
#define ${PackageName^^}_HXX
/** @mainpage @description
@readme
*/
#endif
EOF
fi
elif ! test -e src/makefile.am; then
to --condition AX_USE_CXX src/makefile.am <<EOF
${HEADER}bin_PROGRAMS = ${PACKAGE_NAME}
@ -576,10 +683,17 @@ int main(int argc, char *argv[]) try {
return 1;
}
EOF
to --condition AX_USE_CXX src/${PACKAGE_NAME}.hxx <<EOF
if ! ls src/*.[ch]xx; then
to --condition AX_USE_CXX src/${PACKAGE_NAME#lib}.hxx <<EOF
${CHEADER}#ifndef ${PackageName^^}_HXX
#define ${PackageName^^}_HXX
/** @mainpage @description
@readme
*/
#include <QMainWindow>
#include <ui_${PACKAGE_NAME}.hxx>
@ -596,7 +710,8 @@ class ${PackageName}: public QMainWindow, protected Ui::${PackageName} {
#endif
EOF
to --condition AX_USE_CXX src/${PACKAGE_NAME}.ui <<EOF
fi
to --condition AX_USE_CXX src/${PACKAGE_NAME#lib}.ui <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>${PackageName}</class>
@ -678,7 +793,7 @@ EOF
to --condition AX_USE_CXX src/version.cxx <<EOF
/*! @file
@id $Id\$
@id \$Id\$
*/
// 1 2 3 4 5 6 7 8
// 45678901234567890123456789012345678901234567890123456789012345678901234567890
@ -722,8 +837,10 @@ ${HEADER}dist_bin_SCRIPTS =
MAINTAINERCLEANFILES = makefile.in
EOF
echo "${HEADER}MAINTAINERCLEANFILES = makefile.in" | to --condition AX_USE_DOXYGEN doc/makefile.am
to --condition AX_BUILD_TEST test/runtests.sh < ${0%/*}/test/runtests.sh
echo "${HEADER}MAINTAINERCLEANFILES = makefile.in" | to --condition 'AX_USE_DOXYGEN|AX_USE_PERLDOC' doc/makefile.am
if testtag AX_BUILD_TEST; then
to test/runtests.sh < ${0%/*}/test/runtests.sh
fi
to --condition 'AX_BUILD_TEST|AX_USE_CPPUNIT' test/makefile.am <<EOF
${HEADER}$(if testtag AX_USE_CXX; then
cat <<EOF2
@ -731,16 +848,51 @@ AM_CPPFLAGS = -I\${top_srcdir}/src -I\${top_builddir}/src
AM_LDFLAGS = -L\${abs_top_builddir}/src/.libs
$(if testtag AX_USE_LIBTOOL; then
cat <<EOF3
LDADD = -l${PACKAGE_NAME#lib}
LDADD = -lcppunit -l${PACKAGE_NAME#lib}
EOF3
fi)
EOF2
fi)
TESTS =
check_PROGRAMS = ${PACKAGE_NAME#lib}
TESTS = \${check_PROGRAMS}
${PACKAGE_NAME#lib}_SOURCES = ${PACKAGE_NAME#lib}.cxx
MAINTAINERCLEANFILES = makefile.in
EOF
to --condition AX_USE_CPPUNIT --condition AX_USE_CXX test/${PACKAGE_NAME#lib}.cxx <<EOF
${CHEADER}
#include <cppunit/TestFixture.h>
#include <cppunit/ui/text/TestRunner.h>
#include <cppunit/extensions/HelperMacros.h>
#include <cppunit/extensions/TestFactoryRegistry.h>
#include <cppunit/XmlOutputter.h>
#include <fstream>
/// @todo Rename DummyTest and DummyTest::dummy()
/// @todo Write test cases
class DummyTest: public CppUnit::TestFixture {
public:
void dummy() {
}
CPPUNIT_TEST_SUITE(DummyTest);
CPPUNIT_TEST(dummy);
CPPUNIT_TEST_SUITE_END();
};
CPPUNIT_TEST_SUITE_REGISTRATION(DummyTest);
int main(int argc, char** argv) try {
std::ofstream ofs((*argv+std::string(".xml")).c_str());
CppUnit::TextUi::TestRunner runner;
runner.setOutputter(new CppUnit::XmlOutputter(&runner.result(), ofs));
runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest());
return runner.run() ? 0 : 1;
} catch (std::exception& e) {
std::cerr<<"***Exception: "<<e.what()<<std::endl;
return 1;
}
EOF
to --condition AX_BUILD_EXAMPLES examples/makefile.am <<EOF
${HEADER}AM_CPPFLAGS = -I\${top_srcdir}/src -I\${top_builddir}/src
AM_LDFLAGS = -L\${abs_top_builddir}/src/.libs
@ -756,28 +908,124 @@ www_DATA =
MAINTAINERCLEANFILES = makefile.in
EOF
to --condition AX_USE_DOXYGEN doc/header.html.in <<EOF
<!-- HTML header for doxygen 1.8.6-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen \$doxygenversion"/>
<!--BEGIN PROJECT_NAME--><title>\$projectname: \$title</title><!--END PROJECT_NAME-->
<!--BEGIN !PROJECT_NAME--><title>\$title</title><!--END !PROJECT_NAME-->
<link href="\$relpath^tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="\$relpath^jquery.js"></script>
<script type="text/javascript" src="\$relpath^dynsections.js"></script>
\$treeview
\$search
\$mathjax
<link href="\$relpath^\$stylesheet" rel="stylesheet" type="text/css" />
\$extrastylesheet
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<div id="projecthead">
<div id="projectlogo"><img alt="" src="\$relpath^\$projectlogo"/></div>
<div id="projectname">\$projectname</span>&#160;<span id="projectnumber">\$projectnumber</div>
<div id="projectbrief">\$projectbrief</div>
</div>
<nav>
<a href="@PROJECT_URL@" target="_blank">Project Management</a>
<a href="@SOURCE_DOWNLOAD@" target="_blank">Download</a>
<div>\$searchbox</div>
</nav>
</div>
EOF
to --condition AX_USE_DOXYGEN doc/footer.html.in <<EOF
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
\$navpath
<li class="footer"><a href="@AUTHOR_URL@" target="_blank">@AUTHOR_NAME@</a></li>
</ul>
</div>
</body>
</html>
EOF
to --condition AX_USE_DOXYGEN doc/style.css <<EOF
#titlearea {
display: flex;
justify-content: space-between;
align-items: flex-begin;
}
#titlearea nav {
padding: 0;
margin: 0;
}
#titlearea nav a {
background-color: lightgray;
border: 1px solid gray;
color: black;
padding: 1ex;
margin: 0;
}
img, object {
max-width: 100% !important;
}
@media (max-width: 50em) {
#navrow1, #navrow2 {
display: block
}
#side-nav, #splitbar, .ui-resizable-handle ui-resizable-e, .ui-resizable-handle ui-resizable-s {
display: none;
}
#doc-content {
margin-left: 0 !important;
}
}
@media (min-width: 50em) {
#navrow1, #navrow2 {
display: none;
}
#side-nav, #splitbar, .ui-resizable-handle ui-resizable-e, .ui-resizable-handle ui-resizable-s {
display: block
}
}
EOF
if testtag AX_USE_DOXYGEN; then
copy doc/plantuml.jar
fi
if testtag AX_USE_DOXYGEN; then
if ! checkfile doc/doxyfile.in || \
contains doc/doxyfile.in "${rebuildfiles[@]}"; then
run doxygen -g doc/doxyfile.in
if test $exists -eq 0; then
run svn add doc/doxyfile.in
if test -n "${VCS}" -a $novcs -eq 0 && ! contains "doc/doxyfile" "${excludevcs[@]}"; then
run ${VCS} add doc/doxyfile.in
if test "${VCS}" = "svn"; then
run svn propset svn:keywords "Id" doc/doxyfile.in
fi
fi
fi
doxyreplace PROJECT_NAME "@PACKAGE_NAME@"
doxyreplace PROJECT_NUMBER "@PACKAGE_VERSION@"
doxyreplace PROJECT_BRIEF "@DESCRIPTION@"
doxyreplace PROJECT_LOGO "@top_srcdir@/@PACKACE_LOGO@"
doxyreplace PROJECT_LOGO "@top_srcdir@/@PACKAGE_LOGO@"
doxyreplace INLINE_INHERITED_MEMB YES
doxyreplace MULTILINE_CPP_IS_BRIEF YES
doxyreplace TAB_SIZE 2
doxyreplace ALIASES '"id=\\par File-ID\\n"'
doxyadd ALIASES '"copy=\\par Copyright\\n"'
doxyadd ALIASES '"copy=\\par Copyright by <a href="@AUTHOR_URL@" target="_blank">@AUTHOR_NAME@</a>\\n"'
doxyadd ALIASES '"license=\\par License\\n"'
doxyadd ALIASES '"classmutex=\\par Reentrant:\\nAccess is locked with class static mutex @c "'
doxyadd ALIASES '"instancemutex=\\par Reentrant:\\nAccess is locked with per instance mutex @c "'
doxyadd ALIASES '"mutex=\\par Reentrant:\\nAccess is locked with mutex @c "'
doxyadd ALIASES '"api=\\xrefitem api \\"API Call\\" \\"\\""'
doxyadd ALIASES '"description=@DESCRIPTION@"'
doxyadd ALIASES '"readme=@README_HTML@"'
doxyadd ALIASES '"author=<a href="@AUTHOR_URL@" target="_blank">@AUTHOR_NAME@</a>"'
doxyreplace PLANTUML_JAR_PATH '"@top_srcdir@/doc/plantuml.jar"'
doxyreplace ENABLE_PREPROCESSING YES
doxyreplace MACRO_EXPANSION YES
doxyadd PREDEFINED '"NAMESPACE=@PACKAGE_NAME@"'
@ -804,9 +1052,20 @@ if testtag AX_USE_DOXYGEN; then
if testtag AX_BUILD_TEST AX_USE_CPPUNIT; then
doxyadd INPUT "@top_srcdir@/test"
fi
if testtag AX_USE_NODEJS; then
doxyadd INPUT "@top_srcdir@/nodejs"
doxyadd EXCLUDE "@top_srcdir@/nodejs/node_modules"
doxyadd EXCLUDE "@top_srcdir@/nodejs/public/javascripts/ext"
fi
doxyreplace 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'
doxyreplace RECURSIVE YES
doxyreplace EXCLUDE_PATTERNS "moc_* uic_* qrc_*"
doxyreplace EXCLUDE_PATTERNS "moc_* uic_* qrc_* version.[ch]xx"
doxyreplace HTML_HEADER header.html
doxyreplace HTML_FOOTER footer.html
doxyreplace HTML_EXTRA_STYLESHEET style.css
doxyreplace HTML_DYNAMIC_SECTIONS YES
doxyreplace DISABLE_INDEX NO
doxyreplace GENERATE_TREEVIEW YES
if testtag AX_BUILD_EXAMPLES; then
doxyreplace EXAMPLE_PATH @top_srcdir@/examples
fi
@ -815,7 +1074,6 @@ if testtag AX_USE_DOXYGEN; then
doxyreplace SOURCE_BROWSER YES
doxyreplace INLINE_SOURCES YES
doxyreplace GENERATE_TESTLIST YES
doxyreplace GENERATE_TREEVIEW NO
doxyreplace SEARCHENGINE NO
doxyreplace GENERATE_HTML YES
doxyreplace GENERATE_LATEX NO
@ -842,7 +1100,7 @@ if testtag AX_USE_DEBIAN_PACKAGING; then
-- @AUTHOR@ @BUILD_DATE@
EOF
BUILD_DEPENDS="debhelper, subversion, pkg-config, automake, libtool, autotools-dev, lsb-release $(if testtag AX_USE_DOXYGEN; then echo -n ", doxygen, graphviz, mscgen"; fi; if testtag AX_USE_CPPUNIT; then echo -n ", libcppunit-dev"; fi; if testtag AX_CXX_QT || testtag AX_CHECK_QT AX_REQUIRE_QT; then echo -n ", qt5-default | libqt4-core | libqtcore4, qt5-qmake | qt4-qmake, qtbase5-dev | libqt4-dev, qtbase5-dev-tools | qt4-dev-tools, qttools5-dev-tools | qt4-dev-tools, qttools5-dev-tools | qt4-dev-tools"; fi)"
BUILD_DEPENDS="debhelper, ${VCSDEPENDS} pkg-config, automake, libtool, autotools-dev, pandoc, lsb-release $(if testtag AX_USE_DOXYGEN; then echo -n ", doxygen, graphviz, mscgen, default-jre-headless|default-jre"; fi; if testtag AX_USE_PERLDOC; then echo -n ", libpod-tree-perl"; fi; if testtag AX_USE_CPPUNIT; then echo -n ", libcppunit-dev"; fi; if testtag AX_CXX_QT || testtag AX_CHECK_QT AX_REQUIRE_QT; then echo -n ", qt5-default | libqt4-core | libqtcore4, qt5-qmake | qt4-qmake, qtbase5-dev | libqt4-dev, qtbase5-dev-tools | qt4-dev-tools, qttools5-dev-tools | qt4-dev-tools, qttools5-dev-tools | qt4-dev-tools"; fi)"
to debian/control.in <<EOF
Source: @PACKAGE_NAME@
Priority: extra
@ -913,10 +1171,14 @@ else
fi)
Source0: %{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
BuildRequires: gnupg, subversion, automake, autoconf$(
BuildRequires: gnupg, ${VCSDEPENDS} make, automake, autoconf, rpm-build$(
if testtag AX_USE_DOXYGEN; then
echo -n ", doxygen";
fi)
echo -n ", doxygen, default-jre-headless";
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)
%endif
@ -1027,7 +1289,7 @@ fi
if testtag AX_USE_SCRIPTS; then
SUBDIRS="${SUBDIRS} scripts"
fi
if testtag AX_USE_DOXYGEN; then
if testtag 'AX_USE_DOXYGEN|AX_USE_PERLDOC'; then
SUBDIRS="${SUBDIRS} doc"
fi
if testtag AX_BUILD_EXAMPLES; then
@ -1041,12 +1303,31 @@ for d in src test scripts doc examples html; do
SUBDIRS="${SUBDIRS} $d"
fi
done
to --mode "u=rwx,g=rwx,o=rx" autogen.sh <<EOF
#!/bin/bash -e
if test -n "$VCS" -a -d .$VCS -a -e -x $(which ${VCS}2cl); then
$(case "$VCS" in
(svn) echo " ${VCS}2cl";;
(git) echo " ${VCS}2cl > ChangeLog";;
esac)
fi
aclocal
$(if testtag AX_USE_LIBTOOL; then echo libtoolize --force; fi)
automake -a
autoconf
EOF
to makefile.am<<EOF
${HEADER}SUBDIRS =${SUBDIRS}
desktopdir = \${datadir}/applications
desktop_DATA = @PACKAGE_DESKTOP@
dist_pkgdata_DATA = @PACKAGE_ICON@
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
@ -1065,6 +1346,12 @@ Libs: -L\${libdir} -l${PACKAGE_NAME#lib} @LDFLAGS@
Cflags: -I\${includedir} @CPPFLAGS@
Requires: @PKG_REQUIREMENTS@
EOF
to build-in-docker.conf <<EOF
repos+=("Debian|Ubuntu-precise::::::universe")
repos+=("Ubuntu-precise:::'deb http://archive.ubuntu.com/ubuntu precise universe'")
envs+=("-e 'HOME=\${HOME}'")
dirs+=("-v \${HOME}/.gnupg:\${HOME}/.gnupg:ro")
EOF
#### Cleanup If Makefile Exists ####
if test -f makefile; then
@ -1072,7 +1359,7 @@ if test -f makefile; then
fi
#### Bootstrap Before Configure ####
run --no-check svn2cl
run --no-check vcs2cl
run aclocal
if testtag AX_USE_LIBTOOL; then run libtoolize --force; fi
run automake -a
@ -1080,15 +1367,15 @@ run autoconf
#### Run Configure If User Requires ####
if test "$configure" -eq 1; then
./configure $*
./configure $* || exit 1
fi
#### Run Make If User Requires ####
if test "$build" -eq 1; then
make $buildtarget
make $buildtarget || exit 1
fi
#### Build In Docker If User Requires ####
if test "$docker" -eq 1; then
./build-in-docker.sh
./build-in-docker.sh || exit 1
fi

@ -2,14 +2,16 @@
set -o errtrace
# build and test everything in a fresh docker installation
mode="apt"
img="ubuntu:latest"
repos=()
keys=()
envs=()
envs=("-e DEBIAN_FRONTEND=noninteractive" "-e DEBCONF_NONINTERACTIVE_SEEN=true")
dirs=("-v $(pwd):/workdir")
packages=()
targets="all check distcheck"
commands=()
wait=0
if test -e ./build-in-docker.conf; then
# you can preconfigure the variables in file build-in-docker.conf
# if you do so, add the file to EXTRA_DIST in makefile.am
@ -23,6 +25,7 @@ while test $# -gt 0; do
echo "OPTIONS:"
echo
echo " -h, --help show this help"
echo " -m, --mode <type> mode: apt or yum, default: ${mode}"
echo " -i, --image <image> use given docker image instead of ${img}"
echo " -t, --targets targets specify build targets, default: ${targets}"
echo " -r, --repo <url> add given apt repository"
@ -31,6 +34,9 @@ while test $# -gt 0; do
echo " -d, --dir <dir> access given directory read only"
echo " -p, --package <pkg> install extra debian packages"
echo " -c, --cmd <command> execute commands as root in docker"
echo " -w, --wait on error keep docker container and wait for enter"
echo
echo " The option -i must be after -m, because mode sets a new default image"
echo
echo " The options -r -k -e -d -p -c can be repeated several times."
echo
@ -58,6 +64,17 @@ while test $# -gt 0; do
echo
exit 0
;;
(-m|--mode) shift;
mode="$1"
case "$mode" in
(apt) img="ubuntu:latest";;
(yum) img="centos:latest";;
(*)
echo "**** ERROR: unknown mode '$1', try --help" 1>&2
exit 1
;;
esac
;;
(-i|--image) shift;
img="$1"
;;
@ -82,6 +99,9 @@ while test $# -gt 0; do
(-c|--cmd) shift;
commands+=("$1")
;;
(-w|--wait)
wait=1
;;
(*)
echo "**** ERROR: unknown option '$1', try --help" 1>&2
exit 1
@ -113,6 +133,12 @@ function traperror() {
fi
echo
fi
if [ "$wait" -eq 1 ]; then
echo " ... now you can access the docker container:"
echo " docker exec -u $(id -u) -it ${DOCKER_ID} bash"
echo -n " ... press enter to cleanup: "
read
fi
echo -n " ... cleanup docker: "
docker rm -f "${DOCKER_ID}"
echo "returning status: $e"
@ -120,6 +146,12 @@ function traperror() {
exit $e
fi
done
if [ "$wait" -eq 1 ]; then
echo " ... now you can access the docker container:"
echo " docker exec -u $(id -u) -it ${DOCKER_ID} bash"
echo -n " ... press enter to cleanup: "
read
fi
echo -n " SUCCESS ... cleanup docker: "
docker rm -f "${DOCKER_ID}"
exit 0
@ -151,13 +183,21 @@ function ifthenelse() {
set -x
docker pull $img
DOCKER_ID=$(docker run -d ${dirs[@]} ${envs[@]} -w /workdir $img sleep infinity)
DOCKER_ID=$(docker run -d ${dirs[@]} ${envs[@]} -e HOME="${HOME}" -w /workdir $img sleep infinity)
trap 'traperror '"${DOCKER_ID}"' "$? ${PIPESTATUS[@]}" $LINENO $BASH_LINENO "$BASH_COMMAND" "${FUNCNAME[@]}" "${FUNCTION}"' SIGINT INT TERM EXIT
docker exec ${DOCKER_ID} apt-get update
docker exec ${DOCKER_ID} apt-get upgrade -y
docker exec ${DOCKER_ID} apt-get install -y python-software-properties software-properties-common apt-transport-https dpkg-dev lsb-release || \
docker exec ${DOCKER_ID} apt-get install -y software-properties-common apt-transport-https dpkg-dev lsb-release || \
docker exec ${DOCKER_ID} apt-get install -y python-software-properties apt-transport-https dpkg-dev lsb-release;
case $mode in
(apt)
OPTIONS='-o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confnew -y --force-yes --no-install-suggests --no-install-recommends'
for f in 'libpam-systemd:amd64' 'policykit*' 'colord'; do
docker exec ${DOCKER_ID} bash -c "echo 'Package: $f' >> /etc/apt/preferences"
docker exec ${DOCKER_ID} bash -c "echo 'Pin-Priority: -100' >> /etc/apt/preferences"
docker exec ${DOCKER_ID} bash -c "echo >> /etc/apt/preferences"
done
docker exec ${DOCKER_ID} apt-get update ${OPTIONS}
docker exec ${DOCKER_ID} apt-get upgrade ${OPTIONS}
docker exec ${DOCKER_ID} apt-get install ${OPTIONS} python-software-properties software-properties-common apt-transport-https dpkg-dev lsb-release || \
docker exec ${DOCKER_ID} apt-get install ${OPTIONS} software-properties-common apt-transport-https dpkg-dev lsb-release || \
docker exec ${DOCKER_ID} apt-get install ${OPTIONS} python-software-properties apt-transport-https dpkg-dev lsb-release;
for repo in "${repos[@]}"; do
ifthenelse "${repo}" "apt-add-repository ARG"
done
@ -165,13 +205,33 @@ for key in "${keys[@]}"; do
wget -O- "$key" \
| docker exec -i ${DOCKER_ID} apt-key add -
done
docker exec ${DOCKER_ID} apt-get update
docker exec ${DOCKER_ID} apt-get update ${OPTIONS}
for package in "${packages[@]}"; do
ifthenelse "${package}" "apt-get install -y --force-yes ARG"
ifthenelse "${package}" "apt-get install ${OPTIONS} ARG"
done
for command in "${commands[@]}"; do
ifthenelse "${command}" "ARG"
done
docker exec ${DOCKER_ID} ./resolve-debbuilddeps.sh
docker exec -u $(id -u) ${DOCKER_ID} svn upgrade || true
docker exec -u $(id -u) ${DOCKER_ID} ./bootstrap.sh -t "${targets}"
;;
(yum)
./bootstrap.sh -t dist
if [[ "$img" =~ "centos" ]]; then
docker exec ${DOCKER_ID} yum install -y redhat-lsb
docker exec -i ${DOCKER_ID} bash -c 'cat > /etc/yum.repos.d/wandisco-svn.repo' <<EOF
[WandiscoSVN]
name=Wandisco SVN Repo
EOF
docker exec -i ${DOCKER_ID} bash -c 'echo "baseurl=http://opensource.wandisco.com/centos/$(lsb_release -sr | sed '"'"'s,[^0-9].*,,'"'"')/svn-'$(svn --version | head -1 | sed 's,[^0-9]*\([0-9]\+\.[0-9]\+\).*,\1,')'/RPMS/$(uname -i)/" >> /etc/yum.repos.d/wandisco-svn.repo'
docker exec -i ${DOCKER_ID} bash -c 'cat >> /etc/yum.repos.d/wandisco-svn.repo' <<EOF
enabled=1
gpgcheck=0
EOF
fi
docker exec ${DOCKER_ID} yum install -y rpm-build
docker exec ${DOCKER_ID} groupadd -g $(id -g) build
docker exec ${DOCKER_ID} useradd -g $(id -g) -u $(id -u) build
docker exec ${DOCKER_ID} ./resolve-rpmbuilddeps.sh || true
;;
esac
docker exec -u $(id -u):$(id -g) ${DOCKER_ID} ./bootstrap.sh -t "${targets}"

@ -43,6 +43,7 @@ if test -z "$MINGW"; then
AX_PKG_REQUIRE([pcsc], [libpcsclite], [pcsclite.h])
AX_PKG_REQUIRE([pkcs11], [p11-kit-1], [pkcs11.h], [p11-kit libpkcs11-helper-1])
AX_PKG_REQUIRE([ssl], [libssl], [openssl/crypto.h], [openssl])
AX_PKG_REQUIRE([crypto], [libcrypto], [openssl/crypto.h], [openssl])
else
LDFLAGS+=" -lwinscard -lssl -lcrypto"
fi

@ -0,0 +1,8 @@
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
$navpath
<li class="footer"><a href="@AUTHOR_URL@" target="_blank">@AUTHOR_NAME@</a></li>
</ul>
</div>
</body>
</html>

@ -0,0 +1,33 @@
<!-- HTML header for doxygen 1.8.6-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen $doxygenversion"/>
<!--BEGIN PROJECT_NAME--><title>$projectname: $title</title><!--END PROJECT_NAME-->
<!--BEGIN !PROJECT_NAME--><title>$title</title><!--END !PROJECT_NAME-->
<link href="$relpath^tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="$relpath^jquery.js"></script>
<script type="text/javascript" src="$relpath^dynsections.js"></script>
$treeview
$search
$mathjax
<link href="$relpath^$stylesheet" rel="stylesheet" type="text/css" />
$extrastylesheet
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<div id="projecthead">
<div id="projectlogo"><img alt="" src="$relpath^$projectlogo"/></div>
<div id="projectname">$projectname</span>&#160;<span id="projectnumber">$projectnumber</div>
<div id="projectbrief">$projectbrief</div>
</div>
<nav>
<a href="@PROJECT_URL@" target="_blank">Project Management</a>
<a href="@SOURCE_DOWNLOAD@" target="_blank">Download</a>
<div>$searchbox</div>
</nav>
</div>

Binary file not shown.

@ -0,0 +1,38 @@
#titlearea {
display: flex;
justify-content: space-between;
align-items: flex-begin;
}
#titlearea nav {
padding: 0;
margin: 0;
}
#titlearea nav a {
background-color: lightgray;
border: 1px solid gray;
color: black;
padding: 1ex;
margin: 0;
}
img, object {
max-width: 100% !important;
}
@media (max-width: 50em) {
#navrow1, #navrow2 {
display: block
}
#side-nav, #splitbar, .ui-resizable-handle ui-resizable-e, .ui-resizable-handle ui-resizable-s {
display: none;
}
#doc-content {
margin-left: 0 !important;
}
}
@media (min-width: 50em) {
#navrow1, #navrow2 {
display: none;
}
#side-nav, #splitbar, .ui-resizable-handle ui-resizable-e, .ui-resizable-handle ui-resizable-s {
display: block
}
}

@ -75,7 +75,7 @@ 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 \
MENU_NIB=$(find ${QTDIR} -name .svn -o -name .git -prune -o -name qt_menu.nib -print \
| head -1)
if test -e "${MENU_NIB}"; then
rsync -r "${MENU_NIB}" ${1}/Contents/Resources/

@ -0,0 +1,9 @@
## @id $Id$
## 1 2 3 4 5 6 7 8
## 45678901234567890123456789012345678901234567890123456789012345678901234567890
%.gcda: %
gcov $<
CLEANFILES += ${CLEANFILES} ${TEST:%=%.gcno} ${TEST:%=%.gcda} *.gcov

@ -16,7 +16,7 @@ if test -n "${SCHROOTNAME}"; then
SUDO="schroot -c "${SCHROOTNAME}" -u root -d / --"
else
DO=""
if grep -q '/docker/' /proc/1/cgroup; then
if grep -q '/docker' /proc/1/cgroup; then
SUDO=""
else
SUDO="sudo"

@ -12,19 +12,30 @@
SCHROOTNAME="$1"
PACKAGE_NAME=$(sed -n 's/^ *m4_define(x_package_name, \(.*\)).*/\1/p' configure.ac)
PKGCONFIGS="${2:-epel-release}" # packages to configure yum
if test -n "${SCHROOTNAME}"; then
schroot -c ${SCHROOTNAME} -- ./bootstrap.sh -t dist
FILES=$(LANG= schroot -c ${SCHROOTNAME} -- rpmbuild -bb --clean --nobuild --define "_topdir ." --define "_sourcedir ." ${PACKAGE_NAME}.spec 2>&1 | sed -n 's, is needed by.*,,p')
if test -n "${FILES}"; then
FIRST=$(echo "${FILES}" | egrep -o "${PKGCONFIGS// /|}")
if test -n "${FIRST}"; then
schroot -c ${SCHROOTNAME} -u root -- yum install -y ${FIRST} || \
schroot -c ${SCHROOTNAME} -u root -- zypper install -y ${FIRST} || \
schroot -c ${SCHROOTNAME} -u root -- dnf install -y ${FIRST}
fi
schroot -c ${SCHROOTNAME} -u root -- yum install -y ${FILES} || \
schroot -c ${SCHROOTNAME} -u root -- zypper install -y ${FILES} || \
schroot -c ${SCHROOTNAME} -u root -- dnf install -y ${FILES}
fi
else
./bootstrap.sh -t dist
FILES=$(LANG= rpmbuild -bb --clean --nobuild --define "_topdir ." --define "_sourcedir ." ${PACKAGE_NAME}.spec 2>&1 | sed -n 's, is needed by.*,,p')
if test -n "${FILES}"; then
FIRST=$(echo "${FILES}" | egrep -o "${PKGCONFIGS// /|}")
if test -n "${FIRST}"; then
yum install -y ${FIRST} || \
zypper install -y ${FIRST} || \
dnf install -y ${FIRST}
fi
yum install -y ${FILES} || \
zypper install -y ${FILES} || \
dnf install -y ${FILES}

@ -11,6 +11,11 @@ H;$!d;$x
# remove all single-line comment lines
s/\n--[^\n]*//g
# encode html entities
s/&/\&amp##SEMICOLON##/g
s/</\&lt##SEMICOLON##/g
s/>/\&gt##SEMICOLON##/g
# reduce spaces
s,\t\| \+, ,g
@ -21,7 +26,7 @@ s,\t\| \+, ,g
s,\n\+,\n,g
# remove unknown commands
s,\(;\|\n\) *\(DELIMITER\|USE\|DROP\|CREATE[ \n]\+DATABASE\)[ \n]\+[^;]*;\+,,ig
s,\(;\|\n\) *\(INSERT\|DELIMITER\|USE\|DROP\|CREATE[ \n]\+DATABASE\)[ \n]\+[^;]*;\+,,ig
# convert special characters within quotes
:a;s/^\(\([^"]*"[^",]*"\)*[^"]*"[^"]*\),\([^"]*".*\)/\1\##COMMA##\3/g;ta
@ -34,17 +39,18 @@ h
s,.*\(create[ \n]\+table[^;]*;\).*,\1,ig
# start html table node
s|CREATE[ \n]\+TABLE[ \n]\+\(if[ \n]\+not[ \n]\+exists[ \n]\+\)\?`\?\(\w\+\)`\?| \2\n [shape=none, margin=0, label=<\n <table bgcolor="#dddddd">\n <tr><td bgcolor="#ddddff" colspan="4"><b>\2</b></td></tr>|ig
s|CREATE[ \n]\+TABLE[ \n]\+\(IF[ \n]\+NOT[ \n]\+EXISTS[ \n]\+\)\?`\?\(\w\+\)`\?| \2\n [shape=none, margin=0, label=<\n <table bgcolor="#dddddd">\n <tr><td bgcolor="#ddddff" colspan="4"><b>\2</b></td></tr>|ig
# remove key definitions
s/[),][\n ]*\(PRIMARY[ \n]\+\)\?KEY[ \n]\+[^(]*([^)]*)//gi
s/[),][\n ]*\(\(UNIQUE\|PRIMARY\)[ \n]\+\)\?KEY[ \n]\+[^(]*([^)]*)//gi
# move foreign keys as relation to the end
:b;s/\(\w\+\)\([^;]*\)FOREIGN[\n ]\+KEY[ \n]*([ \n]*`\?\([a-z]\+\)`\?[ \n]*)[ \n]*REFERENCES[ \n]*`\?\([a-z]\+\)`\?[ \n]*([ \n]*`\?\([a-z]\+\)`\?[ \n]*)[ \n]*\([^,)]*\)\([,)].*\)/\1\2\7\n \1:\3 -> \4:\5 [label="\6"]##SEMICOLON##/ig;tb
# create table rows
s|[(,][ \n]*`\?\(\w\+\)`\?[ \n]\+\(\w\+\(([^)]\+)\)\?\)[ \n]*\([^,)]*\)[ \n]\+COMMENT[ \n]*["']\([^"']*\)["'][ \n]*|\n <tr><td align="left" port="\1"><b>\1</b></td><td align="left">\2</td><td align="left">\4</td><td align="left">\5</td></tr>|gi
s|[(,][ \n]*`\?\(\w\+\)`\?[ \n]\+\(\w\+\(([^)]\+)\)\?\)[ \n]*\([^,)]*\)|\n <tr><td align="left" port="\1"><b>\1</b></td><td align="left">\2</td><td align="left">\4</td></tr>|g
s|[(,][ \n]*`\?\(\w\+\)`\?[ \n]\+\(\w\+\(([^)]\+)\)\?\)[ \n]*\([^,)]*\)|\n <tr><td align="left" port="\1"><b>\1</b></td><td align="left">\2</td><td align="left">\4</td><td></td></tr>|g
# extract comment
s|\(<td\( *\w*="\w*"\)* *>[^<]*\)COMMENT[ \n]\+["']\([^"']*\)["']\([^<]*</td>\)<td></td>|\1\4<td align="left">\3</td>|g
# add line breaks for long lines
s|\(<td[^>]*>[^<]\{30,40\}\)[ \n]\+\([^<]\{20,\}</td>\)|\1<br/>\2|g

Loading…
Cancel
Save