diff options
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | configure.ac | 16 | ||||
-rw-r--r-- | docs/reference/gck/gck-docs.sgml | 1 | ||||
-rw-r--r-- | docs/reference/gck/gck-sections.txt | 9 | ||||
-rw-r--r-- | docs/reference/gcr/gcr-docs.sgml | 1 | ||||
-rw-r--r-- | docs/reference/gcr/gcr-sections.txt | 11 | ||||
-rw-r--r-- | gck/Makefile.am | 5 | ||||
-rw-r--r-- | gck/gck-misc.c | 48 | ||||
-rw-r--r-- | gck/gck-version.h.in | 46 | ||||
-rw-r--r-- | gck/gck.h | 1 | ||||
-rw-r--r-- | gcr/Makefile.am | 7 | ||||
-rw-r--r-- | gcr/gcr-base.h | 1 | ||||
-rw-r--r-- | gcr/gcr-library.c | 50 | ||||
-rw-r--r-- | gcr/gcr-version.h.in | 46 |
14 files changed, 235 insertions, 9 deletions
@@ -81,6 +81,7 @@ stamp-* /gck/*.pc /gck/gck-enum-types* /gck/gck-marshal.* +/gck/gck-version.h /gck/gck-*.deps /gck/gck-*.vapi @@ -89,6 +90,7 @@ stamp-* /gcr/gcr-enum-types* /gcr/gcr-oids.* /gcr/gcr-marshal.* +/gcr/gcr-version.h /gcr/gcr-*.deps /gcr/gcr-*.vapi diff --git a/configure.ac b/configure.ac index 7a1aae9..52b4f4e 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,10 @@ + +m4_define([gcr_major], [3]) +m4_define([gcr_minor], [11]) +m4_define([gcr_micro], [4]) + AC_PREREQ([2.63]) -AC_INIT([gcr], [3.11.4], +AC_INIT([gcr], [gcr_major.gcr_minor.gcr_micro], [http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-keyring&component=gcr], [gcr]) @@ -30,9 +35,9 @@ GCK_REVISION=0 GCK_AGE=0 # GCR package versioning -GCR_MAJOR=3 -GCR_MINOR=0 -GCR_MICRO=0 +GCR_MAJOR=gcr_major +GCR_MINOR=gcr_minor +GCR_MICRO=gcr_micro # GCR libtool versioning GCR_CURRENT=1 @@ -371,6 +376,7 @@ AC_SUBST(GCR_CURRENT) AC_SUBST(GCR_LT_RELEASE) AC_SUBST(GCR_MAJOR) AC_SUBST(GCR_MINOR) +AC_SUBST(GCR_MICRO) AC_OUTPUT([ Makefile @@ -384,9 +390,11 @@ docs/reference/gcr/version.xml egg/Makefile egg/tests/Makefile gck/gck.pc +gck/gck-version.h gck/Makefile gck/tests/Makefile gcr/gcr-base.pc +gcr/gcr-version.h gcr/Makefile gcr/tests/Makefile po/Makefile.in diff --git a/docs/reference/gck/gck-docs.sgml b/docs/reference/gck/gck-docs.sgml index b89be0b..7e8beec 100644 --- a/docs/reference/gck/gck-docs.sgml +++ b/docs/reference/gck/gck-docs.sgml @@ -26,6 +26,7 @@ <xi:include href="xml/gck-modules.xml"/> <xi:include href="xml/gck-error.xml"/> <xi:include href="xml/gck-uri.xml"/> + <xi:include href="xml/gck-library.xml"/> <xi:include href="xml/gck-misc.xml"/> </chapter> diff --git a/docs/reference/gck/gck-sections.txt b/docs/reference/gck/gck-sections.txt index e9a03db..3d30245 100644 --- a/docs/reference/gck/gck-sections.txt +++ b/docs/reference/gck/gck-sections.txt @@ -1,4 +1,13 @@ <SECTION> +<TITLE>Library Utilities</TITLE> +<FILE>gck-library</FILE> +GCK_CHECK_VERSION +GCK_MAJOR_VERSION +GCK_MICRO_VERSION +GCK_MINOR_VERSION +</SECTION> + +<SECTION> <FILE>gck-attribute</FILE> GckAttribute gck_attribute_is_invalid diff --git a/docs/reference/gcr/gcr-docs.sgml b/docs/reference/gcr/gcr-docs.sgml index d9c4c86..799d574 100644 --- a/docs/reference/gcr/gcr-docs.sgml +++ b/docs/reference/gcr/gcr-docs.sgml @@ -67,6 +67,7 @@ <part id="misc"> <title>Miscellaneous</title> <xi:include href="xml/gcr-library.xml"/> + <xi:include href="xml/gcr-pkcs11.xml"/> <xi:include href="xml/gcr-fingerprint.xml"/> <xi:include href="xml/gcr-secret-exchange.xml"/> <xi:include href="xml/gcr-secure-memory.xml"/> diff --git a/docs/reference/gcr/gcr-sections.txt b/docs/reference/gcr/gcr-sections.txt index 7962dfd..7e3db2b 100644 --- a/docs/reference/gcr/gcr-sections.txt +++ b/docs/reference/gcr/gcr-sections.txt @@ -1,4 +1,13 @@ <SECTION> +<TITLE>Library Utilities</TITLE> +<FILE>gcr-library</FILE> +GCR_CHECK_VERSION +GCR_MAJOR_VERSION +GCR_MICRO_VERSION +GCR_MINOR_VERSION +</SECTION> + +<SECTION> <FILE>gcr-parser</FILE> <TITLE>GcrParser</TITLE> GCR_DATA_ERROR @@ -238,7 +247,7 @@ gcr_trust_remove_pinned_certificate_finish </SECTION> <SECTION> -<FILE>gcr-library</FILE> +<FILE>gcr-pkcs11</FILE> gcr_pkcs11_initialize gcr_pkcs11_initialize_async gcr_pkcs11_initialize_finish diff --git a/gck/Makefile.am b/gck/Makefile.am index 6c44a0e..201b71a 100644 --- a/gck/Makefile.am +++ b/gck/Makefile.am @@ -11,6 +11,7 @@ HEADER_FILES = \ inc_HEADERS = \ $(HEADER_FILES) \ gck-enum-types.h \ + gck-version.h \ pkcs11.h \ pkcs11n.h \ pkcs11x.h @@ -47,7 +48,8 @@ PUBLIC_FILES = \ gck-password.c \ gck-session.c \ gck-slot.c \ - gck-uri.c + gck-uri.c \ + gck-version.h INTERNAL_FILES = \ gck-call.c \ @@ -103,6 +105,7 @@ gck-enum-types.c: $(ENUM_TEMPLATE_C) $(HEADER_FILES) EXTRA_DIST = \ gck.pc.in \ gck-marshal.list \ + gck-version.h \ gck.symbols \ pkcs11-trust-assertions.h \ pkcs11i.h diff --git a/gck/gck-misc.c b/gck/gck-misc.c index 9471404..e21ccba 100644 --- a/gck/gck-misc.c +++ b/gck/gck-misc.c @@ -35,6 +35,54 @@ EGG_SECURE_DEFINE_GLIB_GLOBALS (); /** + * SECTION:gck-library + * @title: Library Utilities + * @short_description: Library utilities such as version checks + * + * Basic library utilities such as version checks. + */ + +/** + * GCK_CHECK_VERSION: + * @major: the major version to check for + * @minor: the minor version to check for + * @micro: the micro version to check for + * + * Checks the version of the Gck libarry that is being compiled + * against. + * + * <example> + * <title>Checking the version of the Gck library</title> + * <programlisting> + * #if !GCK_CHECK_VERSION (3, 0, 0) + * #warning Old Gck version, disabling functionality + * #endif + * </programlisting> + * </example> + * + * Returns: %TRUE if the version of the GLib header files + * is the same as or newer than the passed-in version. + */ + +/** + * GCK_MAJOR_VERSION: + * + * The major version number of the Gck library. + */ + +/** + * GCK_MINOR_VERSION: + * + * The minor version number of the Gck library. + */ + +/** + * GCK_MICRO_VERSION: + * + * The micro version number of the Gck library. + */ + +/** * SECTION:gck-error * @title: Errors * @short_description: Gck Errors and error codes. diff --git a/gck/gck-version.h.in b/gck/gck-version.h.in new file mode 100644 index 0000000..ed3ef86 --- /dev/null +++ b/gck/gck-version.h.in @@ -0,0 +1,46 @@ +/* + * gnome-keyring + * + * Copyright (C) 2013 Stef Walter + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Author: Stef Walter <stefw@gnome.org> + */ + +#ifndef __GCK_VERSION_H__ +#define __GCK_VERSION_H__ + +#if !defined (__GCK_INSIDE_HEADER__) && !defined (GCK_COMPILATION) +#error "Only <gck.h> can be included directly." +#endif + +/* compile time version + */ +#define GCK_MAJOR_VERSION (@GCR_MAJOR@) +#define GCK_MINOR_VERSION (@GCR_MINOR@) +#define GCK_MICRO_VERSION (@GCR_MICRO@) + +/* check whether a Gcr version equal to or greater than + * major.minor.micro. + */ +#define GCK_CHECK_VERSION(major,minor,micro) \ + (GCK_MAJOR_VERSION > (major) || \ + (GCK_MAJOR_VERSION == (major) && GCK_MINOR_VERSION > (minor)) || \ + (GCK_MAJOR_VERSION == (major) && GCK_MINOR_VERSION == (minor) && \ + GCK_MICRO_VERSION >= (micro))) + +#endif /* __GCK_VERSION_H__ */ @@ -33,6 +33,7 @@ #define __GCK_INSIDE_HEADER__ #include <gck/gck-enum-types.h> +#include <gck/gck-version.h> G_BEGIN_DECLS diff --git a/gcr/Makefile.am b/gcr/Makefile.am index 97de672..8db78bd 100644 --- a/gcr/Makefile.am +++ b/gcr/Makefile.am @@ -47,7 +47,8 @@ HEADER_FILES = \ gcr-trust.h \ gcr-types.h \ gcr-union-collection.h \ - gcr-unlock-options.h + gcr-unlock-options.h \ + gcr-version.h inc_HEADERS = \ $(HEADER_FILES) \ @@ -93,6 +94,7 @@ PUBLIC_FILES = \ gcr-types.h \ gcr-union-collection.c gcr-union-collection.h \ gcr-unlock-options.h \ + gcr-version.h \ $(NULL) PRIVATE_FILES = \ @@ -194,7 +196,8 @@ EXTRA_DIST = \ gcr-mkoids \ $(DBUS_XML_DEFINITIONS) \ gcr-base.symbols \ - $(service_in_files) + $(service_in_files) \ + gcr-version.h.in CLEANFILES = \ $(BUILT_SOURCES) \ diff --git a/gcr/gcr-base.h b/gcr/gcr-base.h index b388e1d..fab99ec 100644 --- a/gcr/gcr-base.h +++ b/gcr/gcr-base.h @@ -59,6 +59,7 @@ #include <gcr/gcr-trust.h> #include <gcr/gcr-union-collection.h> #include <gcr/gcr-unlock-options.h> +#include <gcr/gcr-version.h> #undef __GCR_INSIDE_HEADER__ diff --git a/gcr/gcr-library.c b/gcr/gcr-library.c index c2b4644..585bd87 100644 --- a/gcr/gcr-library.c +++ b/gcr/gcr-library.c @@ -42,7 +42,55 @@ /** * SECTION:gcr-library - * @title: Library Settings + * @title: Library Utilities + * @short_description: Library utilities such as version checks + * + * Basic library utilities such as version checks. + */ + +/** + * GCR_CHECK_VERSION: + * @major: the major version to check for + * @minor: the minor version to check for + * @micro: the micro version to check for + * + * Checks the version of the Gcr libarry that is being compiled + * against. + * + * <example> + * <title>Checking the version of the Gcr library</title> + * <programlisting> + * #if !GCR_CHECK_VERSION (3, 0, 0) + * #warning Old Gcr version, disabling functionality + * #endif + * </programlisting> + * </example> + * + * Returns: %TRUE if the version of the Gcr header files + * is the same as or newer than the passed-in version. + */ + +/** + * GCR_MAJOR_VERSION: + * + * The major version number of the Gcr library. + */ + +/** + * GCR_MINOR_VERSION: + * + * The minor version number of the Gcr library. + */ + +/** + * GCR_MICRO_VERSION: + * + * The micro version number of the Gcr library. + */ + +/** + * SECTION:gcr-pkcs11 + * @title: Library PKCS#11 * @short_description: functions for manipulating GCR library global settings. * * Manage or lookup various global aspesct and settings of the library. diff --git a/gcr/gcr-version.h.in b/gcr/gcr-version.h.in new file mode 100644 index 0000000..1a3e261 --- /dev/null +++ b/gcr/gcr-version.h.in @@ -0,0 +1,46 @@ +/* + * gnome-keyring + * + * Copyright (C) 2013 Stef Walter + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + * 02111-1307, USA. + * + * Author: Stef Walter <stefw@gnome.org> + */ + +#ifndef __GCR_VERSION_H__ +#define __GCR_VERSION_H__ + +#if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION) +#error "Only <gcr/gcr.h> or <gcr/gcr-base.h> can be included directly." +#endif + +/* compile time version + */ +#define GCR_MAJOR_VERSION (@GCR_MAJOR@) +#define GCR_MINOR_VERSION (@GCR_MINOR@) +#define GCR_MICRO_VERSION (@GCR_MICRO@) + +/* check whether a Gcr version equal to or greater than + * major.minor.micro. + */ +#define GCR_CHECK_VERSION(major,minor,micro) \ + (GCR_MAJOR_VERSION > (major) || \ + (GCR_MAJOR_VERSION == (major) && GCR_MINOR_VERSION > (minor)) || \ + (GCR_MAJOR_VERSION == (major) && GCR_MINOR_VERSION == (minor) && \ + GCR_MICRO_VERSION >= (micro))) + +#endif /* __GCR_VERSION_H__ */ |