diff --git a/COPYING b/COPYING index caeca07..88798ab 120000 --- a/COPYING +++ b/COPYING @@ -1 +1 @@ -/usr/share/automake-1.14/COPYING \ No newline at end of file +/usr/share/automake-1.15/COPYING \ No newline at end of file diff --git a/ChangeLog b/ChangeLog index e69de29..308feac 100644 --- a/ChangeLog +++ b/ChangeLog @@ -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 - again; + refs #26 + +2013-06-13 11:59 marc + + * src/pcsc.hxx: work-around with pcsc::shared_ptr::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 + diff --git a/INSTALL b/INSTALL index f812f5a..ddcdb76 120000 --- a/INSTALL +++ b/INSTALL @@ -1 +1 @@ -/usr/share/automake-1.14/INSTALL \ No newline at end of file +/usr/share/automake-1.15/INSTALL \ No newline at end of file diff --git a/autogen.sh b/autogen.sh new file mode 100755 index 0000000..1f13870 --- /dev/null +++ b/autogen.sh @@ -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 diff --git a/ax_cxx_compile_stdcxx_11.m4 b/ax_cxx_compile_stdcxx_11.m4 index af37acd..4c831e0 100644 --- a/ax_cxx_compile_stdcxx_11.m4 +++ b/ax_cxx_compile_stdcxx_11.m4 @@ -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 +]) diff --git a/ax_init_standard_project.m4 b/ax_init_standard_project.m4 index a7e207d..97f246f 100644 --- a/ax_init_standard_project.m4 +++ b/ax_init_standard_project.m4 @@ -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; - fi - done - echo $ECHO_N $(($SVN_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; - fi - done - # Mac does not support LEAST > 255 - echo $ECHO_N $(($SVN_REVISION%256)) -]))) +# 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 $(($VCS_REVISION)) + ]), 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 $(($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) - README=$(tail -n +3 README) + 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,\\\(.\),\\\\\1,g;s/\n/\\n/g;s,",\\",g;s, ,\ \ ,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=$(.*,\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) @@ -210,6 +272,25 @@ AC_DEFUN([AX_INIT_STANDARD_PROJECT], [ else 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]) @@ -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 <> examples/makefile.in <> makefile.in <> doc/makefile.in <> doc/makefile.in <Perl Documentation

Perl Documentation

    " > perldoc/index.html + for p in \${PERL_SOURCES:%=perldoc/%}; do \ + echo '
  • '"\$\${p#perldoc/}"'
  • ' >> perldoc/index.html; \ + done + echo "
" >> 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 diff --git a/bootstrap.sh b/bootstrap.sh index 39e31b7..7a23efd 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -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 same as -b, but specify target instead of distcheck --overwrite, -o overwrite all basic files (bootstrap.sh, m4-macros) --rebuild, -r force rebuild of generated files, even if modified --rebuild-file, -f rebild specific file (can be added multiple times) + --no-vcs, -n do not automatically add files to version control + --exclude-vcs, -x 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() { + mode="u=rw,g=rw,o=r" while test $# -gt 0; do - mode="u=rw,g=rw,o=r" 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,10 +416,14 @@ 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" - run svn propset svn:keywords "Id" "$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,10 +441,17 @@ 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" - run svn propset svn:keywords "Id" "$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 } @@ -413,10 +477,33 @@ 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 "$(LANG= svn info | sed -n 's,Relative URL: *,,p')" = "^/"; then - svn mkdir trunk branches tags - cd trunk +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: @@ -424,6 +511,7 @@ 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 < #include @@ -596,7 +710,8 @@ class ${PackageName}: public QMainWindow, protected Ui::${PackageName} { #endif EOF - to --condition AX_USE_CXX src/${PACKAGE_NAME}.ui < ${PackageName} @@ -678,7 +793,7 @@ EOF to --condition AX_USE_CXX src/version.cxx < +#include +#include +#include +#include +#include + +/// @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: "< + + + + + + +\$projectname: \$title +\$title + + + +\$treeview +\$search +\$mathjax + +\$extrastylesheet + + +
+ +
+
+ +
\$projectname \$projectnumber
+
\$projectbrief
+
+ +
+EOF +to --condition AX_USE_DOXYGEN doc/footer.html.in < + +
+ + +EOF +to --condition AX_USE_DOXYGEN doc/style.css <@AUTHOR_NAME@\\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=@AUTHOR_NAME@"' + 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 < ChangeLog";; +esac) +fi +aclocal +$(if testtag AX_USE_LIBTOOL; then echo libtoolize --force; fi) +automake -a +autoconf +EOF to makefile.am< mode: apt or yum, default: ${mode}" echo " -i, --image use given docker image instead of ${img}" echo " -t, --targets targets specify build targets, default: ${targets}" echo " -r, --repo add given apt repository" @@ -31,6 +34,9 @@ while test $# -gt 0; do echo " -d, --dir access given directory read only" echo " -p, --package install extra debian packages" echo " -c, --cmd 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,27 +183,55 @@ 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; -for repo in "${repos[@]}"; do - ifthenelse "${repo}" "apt-add-repository ARG" -done -for key in "${keys[@]}"; do - wget -O- "$key" \ - | docker exec -i ${DOCKER_ID} apt-key add - -done -docker exec ${DOCKER_ID} apt-get update -for package in "${packages[@]}"; do - ifthenelse "${package}" "apt-get install -y --force-yes 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}" +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 + for key in "${keys[@]}"; do + wget -O- "$key" \ + | docker exec -i ${DOCKER_ID} apt-key add - + done + docker exec ${DOCKER_ID} apt-get update ${OPTIONS} + for package in "${packages[@]}"; do + ifthenelse "${package}" "apt-get install ${OPTIONS} ARG" + done + for command in "${commands[@]}"; do + ifthenelse "${command}" "ARG" + done + docker exec ${DOCKER_ID} ./resolve-debbuilddeps.sh + ;; + (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' <> /etc/yum.repos.d/wandisco-svn.repo' + docker exec -i ${DOCKER_ID} bash -c 'cat >> /etc/yum.repos.d/wandisco-svn.repo' < + + + + diff --git a/doc/header.html.in b/doc/header.html.in new file mode 100644 index 0000000..311876f --- /dev/null +++ b/doc/header.html.in @@ -0,0 +1,33 @@ + + + + + + + +$projectname: $title +$title + + + +$treeview +$search +$mathjax + +$extrastylesheet + + +
+ +
+
+ +
$projectname $projectnumber
+
$projectbrief
+
+ +
diff --git a/doc/plantuml.jar b/doc/plantuml.jar new file mode 100644 index 0000000..9502c23 Binary files /dev/null and b/doc/plantuml.jar differ diff --git a/doc/style.css b/doc/style.css new file mode 100644 index 0000000..303c151 --- /dev/null +++ b/doc/style.css @@ -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 + } +} diff --git a/mac-create-app-bundle.sh b/mac-create-app-bundle.sh index 6ced200..d1f41a6 100755 --- a/mac-create-app-bundle.sh +++ b/mac-create-app-bundle.sh @@ -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/ @@ -100,4 +100,4 @@ else EOF -fi \ No newline at end of file +fi diff --git a/makefile_test.inc.am b/makefile_test.inc.am new file mode 100644 index 0000000..baf81c4 --- /dev/null +++ b/makefile_test.inc.am @@ -0,0 +1,9 @@ +## @id $Id$ + +## 1 2 3 4 5 6 7 8 +## 45678901234567890123456789012345678901234567890123456789012345678901234567890 + +%.gcda: % + gcov $< + +CLEANFILES += ${CLEANFILES} ${TEST:%=%.gcno} ${TEST:%=%.gcda} *.gcov diff --git a/resolve-debbuilddeps.sh b/resolve-debbuilddeps.sh index ecd5522..5ce3dd5 100755 --- a/resolve-debbuilddeps.sh +++ b/resolve-debbuilddeps.sh @@ -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" diff --git a/resolve-rpmbuilddeps.sh b/resolve-rpmbuilddeps.sh index f36a875..5ddd1b2 100755 --- a/resolve-rpmbuilddeps.sh +++ b/resolve-rpmbuilddeps.sh @@ -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} + 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} diff --git a/sql-to-dot.sed b/sql-to-dot.sed index 07b2989..e4e99b3 100755 --- a/sql-to-dot.sed +++ b/sql-to-dot.sed @@ -11,6 +11,11 @@ H;$!d;$x # remove all single-line comment lines s/\n--[^\n]*//g +# encode html entities +s/&/\&##SEMICOLON##/g +s//\>##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 \n |ig +s|CREATE[ \n]\+TABLE[ \n]\+\(IF[ \n]\+NOT[ \n]\+EXISTS[ \n]\+\)\?`\?\(\w\+\)`\?| \2\n [shape=none, margin=0, label=<\n
\2
\n |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 |gi -s|[(,][ \n]*`\?\(\w\+\)`\?[ \n]\+\(\w\+\(([^)]\+)\)\?\)[ \n]*\([^,)]*\)|\n |g +s|[(,][ \n]*`\?\(\w\+\)`\?[ \n]\+\(\w\+\(([^)]\+)\)\?\)[ \n]*\([^,)]*\)|\n |g +# extract comment +s|\([^<]*\)COMMENT[ \n]\+["']\([^"']*\)["']\([^<]*\)|\1\4|g # add line breaks for long lines s|\(]*>[^<]\{30,40\}\)[ \n]\+\([^<]\{20,\}\)|\1
\2|g
\2
\1\2\4\5
\1\2\4
\1\2\4
\3