PolicyKit: Branch 'master'

David Zeuthen david at kemper.freedesktop.org
Mon Feb 9 14:11:19 PST 2009


 configure.ac                               |    8 ++++-
 docs/TODO                                  |   39 ++---------------------------
 src/nullbackend/Makefile.am                |    1 
 src/polkit/polkitactiondescription.h       |    4 ++
 src/polkit/polkitauthority.h               |    4 ++
 src/polkit/polkitauthoritymanager.c        |    5 ++-
 src/polkit/polkitauthoritymanager.h        |    8 +++++
 src/polkit/polkitauthorization.c           |    4 ++
 src/polkit/polkitauthorization.h           |    8 +++++
 src/polkit/polkitauthorizationresult.h     |    4 ++
 src/polkit/polkitcheckauthorizationflags.h |    4 ++
 src/polkit/polkiterror.h                   |    4 ++
 src/polkit/polkitidentity.h                |    4 ++
 src/polkit/polkitimplicitauthorization.h   |    4 ++
 src/polkit/polkitsubject.h                 |    4 ++
 src/polkit/polkitsystembusname.h           |    4 ++
 src/polkit/polkitunixgroup.h               |    4 ++
 src/polkit/polkitunixprocess.h             |    4 ++
 src/polkit/polkitunixsession.h             |    4 ++
 src/polkit/polkitunixuser.h                |    4 ++
 src/polkitagent/Makefile.am                |   19 +++++++++++---
 src/polkitagent/polkitagent.h              |    6 ++--
 src/polkitagent/polkitagentlistener.h      |    2 -
 src/polkitagent/polkitagentsession.h       |    2 -
 src/polkitagent/polkitagenttypes.h         |    2 -
 src/polkitbackend/Makefile.am              |    1 
 src/polkitbackend/polkitbackend.h          |    4 ++
 src/polkitd/Makefile.am                    |    2 -
 src/programs/polkit.c                      |    1 
 29 files changed, 115 insertions(+), 49 deletions(-)

New commits:
commit 8c71e37ae4e97b9d456c465a04b6d75ec44b896e
Author: David Zeuthen <davidz at redhat.com>
Date:   Mon Feb 9 17:08:53 2009 -0500

    prune TODO list and fix up single-header-file / API guard checks

diff --git a/configure.ac b/configure.ac
index a235ab8..c21a6e0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -467,7 +467,11 @@ echo "
 
 "
 
-echo "NOTE: The directory ${localstatedir}/lib/polkit-1 must be owned by root"
-echo "      and have mode 700"
+echo "NOTE: The directory ${localstatedir}/lib/polkit-1 must be owned"
+echo "      by root and have mode 700"
+echo
+
+echo "NOTE: The file ${libexecdir}/polkit-agent-helper-1 must be owned"
+echo "      by root and have mode 4755 (setuid root binary)"
 echo
 
diff --git a/docs/TODO b/docs/TODO
index 48c1200..aa27f12 100644
--- a/docs/TODO
+++ b/docs/TODO
@@ -1,12 +1,6 @@
 Core TODO items
 ---------------
 
- - document the D-Bus interfaces
-   - should be done in eggdbus; e.g.
-     - D-Bus XML --(eggdbus-binding-tool)--> DocBook --(gtk-doc)--> HTML
-
- - properly document the GObject API
-
  - maybe rename .policy to .action for policy XML files
 
  - provide a polkit-validate-action-file-1 tool to check/validate
@@ -18,14 +12,6 @@ Core TODO items
 
  - write a PolicyKit 0.9.x -> polkit 1.0 porting guide
 
- - provide a public ObtainAuthorization() method
-
- - separate core API (e.g. CheckAuthorization()) from the administration API
-   (e.g. AddAuthorization()) both in the D-Bus interface and in the GObject
-   client libraries
-
- - guard off administration API with I_KNOW_THIS_API_IS_SUBJECT_TO_CHANGE_ETC
-
  - guard off backend API with I_KNOW_THIS_API_IS_SUBJECT_TO_CHANGE_ETC
 
  - provide a way to tweak the defaults for actions (or maybe not)
@@ -36,34 +22,21 @@ Core TODO items
  - make sure simple operations work when no system bus is present
    - e.g. %post RPM scripts adding/removing authorizations to identities
 
- - rework the classes in the PolkitAgent* library so the API is easier to
-   work with
-
  - for administrator authentication, make it possible to use 'wheel' group
    sudo-style authentication (e.g. select one or more identities that the
    user can choose to authenticate as)
 
- - provide a way to cancel a CheckAuthorization() call
-
  - maybe use file monitors on /var/lib/polkit-1 directories and
    emit the Changed() signal
 
  - PolkitAuthority probably needs locking around its singleton for
-   multithreaded backends
-
- - rewrite the PolkitAgentAuthenticationSession class to use signals
-   instead of callbacks, maybe do the same for PolkitAgentAuthenticationAgent
-
- - support authorization for identities other than Unix users in
-   PolkitAgentAuthenticationSessiono
+   multithreaded backends.
 
- - consider adding POLKIT_AUTHORIZATION_RESULT_FAILED_CHALLENGE
+ - symbol visibility in shared libraries
 
 Backend TODO items
 ------------------
 
- - use a GIO extension point to decide what authority backend to use
-
  - check / validate all incoming arguments
    - and other security/paranoia stuff
 
@@ -81,13 +54,9 @@ Backend TODO items
  - allow backends to extend the syntax for subjects and identities, e.g.
    have something like ipa-user:...
 
- - rate-limit file monitoring in PolkitBackendActionPool
-
  - avoid watching all name owner changes in PolkitBackendAuthority and
    PolkitBackendServer
 
- - get the right UID for Unix process subjects
-
  - cache user information for dbus connections
 
 polkit-gnome TODO items
@@ -96,8 +65,8 @@ polkit-gnome TODO items
  - show a notification icon when the session/user has temporary authorizations
    - along with an option to give these up
 
- - make the AuthenticationAgent process (which runs for the lifetime of the
-   session) spawn a process to display the authentication dialog
+ - maybe make the AuthenticationAgent process (which runs for the lifetime of
+   the session) spawn a process to display the authentication dialog
    - to make it lighter on resource usage
    - to work around Metacity focus stealing prevention bugs
 
diff --git a/src/nullbackend/Makefile.am b/src/nullbackend/Makefile.am
index 7ffee19..7461b5f 100644
--- a/src/nullbackend/Makefile.am
+++ b/src/nullbackend/Makefile.am
@@ -26,6 +26,7 @@ libpolkit_nullbackend_la_SOURCES = 					\
 	$(NULL)
 
 libpolkit_nullbackend_la_CFLAGS =                             		\
+	-DPOLKIT_BACKEND_I_KNOW_API_IS_SUBJECT_TO_CHANGE		\
 	-DG_LOG_DOMAIN=\"PolkitNullBackend\"				\
 	$(GLIB_CFLAGS)							\
 	$(NULL)
diff --git a/src/polkit/polkitactiondescription.h b/src/polkit/polkitactiondescription.h
index 948d0c1..57734af 100644
--- a/src/polkit/polkitactiondescription.h
+++ b/src/polkit/polkitactiondescription.h
@@ -19,6 +19,10 @@
  * Author: David Zeuthen <davidz at redhat.com>
  */
 
+#if !defined (_POLKIT_COMPILATION) && !defined(_POLKIT_INSIDE_POLKIT_H)
+#error "Only <polkit/polkit.h> can be included directly, this file may disappear or change contents."
+#endif
+
 #ifndef __POLKIT_ACTION_DESCRIPTION_H
 #define __POLKIT_ACTION_DESCRIPTION_H
 
diff --git a/src/polkit/polkitauthority.h b/src/polkit/polkitauthority.h
index 1337d48..15cf3cb 100644
--- a/src/polkit/polkitauthority.h
+++ b/src/polkit/polkitauthority.h
@@ -19,6 +19,10 @@
  * Author: David Zeuthen <davidz at redhat.com>
  */
 
+#if !defined (_POLKIT_COMPILATION) && !defined(_POLKIT_INSIDE_POLKIT_H)
+#error "Only <polkit/polkit.h> can be included directly, this file may disappear or change contents."
+#endif
+
 #ifndef __POLKIT_AUTHORITY_H
 #define __POLKIT_AUTHORITY_H
 
diff --git a/src/polkit/polkitauthoritymanager.c b/src/polkit/polkitauthoritymanager.c
index 0984bda..a07156f 100644
--- a/src/polkit/polkitauthoritymanager.c
+++ b/src/polkit/polkitauthoritymanager.c
@@ -33,7 +33,10 @@
  * @short_description: Authority Manager
  * @stability: Unstable
  *
- * Checking claims.
+ * Manage authorizations.
+ *
+ * To use this unstable API you need to define the symbol
+ * <literal>POLKIT_I_KNOW_AUTHORITY_MANAGER_API_IS_SUBJECT_TO_CHANGE</literal>.
  */
 
 struct _PolkitAuthorityManager
diff --git a/src/polkit/polkitauthoritymanager.h b/src/polkit/polkitauthoritymanager.h
index 36ff1cf..d68e2a2 100644
--- a/src/polkit/polkitauthoritymanager.h
+++ b/src/polkit/polkitauthoritymanager.h
@@ -19,6 +19,10 @@
  * Author: David Zeuthen <davidz at redhat.com>
  */
 
+#if !defined (_POLKIT_COMPILATION) && !defined(_POLKIT_INSIDE_POLKIT_H)
+#error "Only <polkit/polkit.h> can be included directly, this file may disappear or change contents."
+#endif
+
 #ifndef __POLKIT_AUTHORITY_MANAGER_H
 #define __POLKIT_AUTHORITY_MANAGER_H
 
@@ -26,6 +30,8 @@
 #include <gio/gio.h>
 #include <polkit/polkittypes.h>
 
+#if defined (POLKIT_I_KNOW_AUTHORITY_MANAGER_API_IS_SUBJECT_TO_CHANGE) || defined (_POLKIT_COMPILATION)
+
 G_BEGIN_DECLS
 
 #define POLKIT_TYPE_AUTHORITY_MANAGER          (polkit_authority_manager_get_type())
@@ -128,4 +134,6 @@ gboolean                   polkit_authority_manager_remove_authorization_finish
 
 G_END_DECLS
 
+#endif /* API hiding */
+
 #endif /* __POLKIT_AUTHORITY_MANAGER_H */
diff --git a/src/polkit/polkitauthorization.c b/src/polkit/polkitauthorization.c
index 8f67d3f..a87c3e8 100644
--- a/src/polkit/polkitauthorization.c
+++ b/src/polkit/polkitauthorization.c
@@ -30,8 +30,12 @@
  * SECTION:polkitauthorization
  * @title: PolkitAuthorization
  * @short_description: Authorization
+ * @stability: Unstable
  *
  * This class represents an explicit authorization.
+ *
+ * To use this unstable API you need to define the symbol
+ * <literal>POLKIT_I_KNOW_AUTHORITY_MANAGER_API_IS_SUBJECT_TO_CHANGE</literal>.
  */
 
 struct _PolkitAuthorization
diff --git a/src/polkit/polkitauthorization.h b/src/polkit/polkitauthorization.h
index 02228c1..53ba1a3 100644
--- a/src/polkit/polkitauthorization.h
+++ b/src/polkit/polkitauthorization.h
@@ -19,6 +19,10 @@
  * Author: David Zeuthen <davidz at redhat.com>
  */
 
+#if !defined (_POLKIT_COMPILATION) && !defined(_POLKIT_INSIDE_POLKIT_H)
+#error "Only <polkit/polkit.h> can be included directly, this file may disappear or change contents."
+#endif
+
 #ifndef __POLKIT_AUTHORIZATION_H
 #define __POLKIT_AUTHORIZATION_H
 
@@ -26,6 +30,8 @@
 #include <gio/gio.h>
 #include <polkit/polkittypes.h>
 
+#if defined (POLKIT_I_KNOW_AUTHORITY_MANAGER_API_IS_SUBJECT_TO_CHANGE) || defined (_POLKIT_COMPILATION)
+
 G_BEGIN_DECLS
 
 #define POLKIT_TYPE_AUTHORIZATION          (polkit_authorization_get_type())
@@ -54,4 +60,6 @@ gboolean             polkit_authorization_get_is_negative  (PolkitAuthorization
 
 G_END_DECLS
 
+#endif /* API hiding */
+
 #endif /* __POLKIT_AUTHORIZATION_H */
diff --git a/src/polkit/polkitauthorizationresult.h b/src/polkit/polkitauthorizationresult.h
index 6e6f445..8458e40 100644
--- a/src/polkit/polkitauthorizationresult.h
+++ b/src/polkit/polkitauthorizationresult.h
@@ -19,6 +19,10 @@
  * Author: David Zeuthen <davidz at redhat.com>
  */
 
+#if !defined (_POLKIT_COMPILATION) && !defined(_POLKIT_INSIDE_POLKIT_H)
+#error "Only <polkit/polkit.h> can be included directly, this file may disappear or change contents."
+#endif
+
 #ifndef __POLKIT_AUTHORIZATION_RESULT_H
 #define __POLKIT_AUTHORIZATION_RESULT_H
 
diff --git a/src/polkit/polkitcheckauthorizationflags.h b/src/polkit/polkitcheckauthorizationflags.h
index 8d284f5..e8689c6 100644
--- a/src/polkit/polkitcheckauthorizationflags.h
+++ b/src/polkit/polkitcheckauthorizationflags.h
@@ -19,6 +19,10 @@
  * Author: David Zeuthen <davidz at redhat.com>
  */
 
+#if !defined (_POLKIT_COMPILATION) && !defined(_POLKIT_INSIDE_POLKIT_H)
+#error "Only <polkit/polkit.h> can be included directly, this file may disappear or change contents."
+#endif
+
 #ifndef __POLKIT_CHECK_AUTHORIZATION_FLAGS_H
 #define __POLKIT_CHECK_AUTHORIZATION_FLAGS_H
 
diff --git a/src/polkit/polkiterror.h b/src/polkit/polkiterror.h
index 780af7f..733c9a6 100644
--- a/src/polkit/polkiterror.h
+++ b/src/polkit/polkiterror.h
@@ -19,6 +19,10 @@
  * Author: David Zeuthen <davidz at redhat.com>
  */
 
+#if !defined (_POLKIT_COMPILATION) && !defined(_POLKIT_INSIDE_POLKIT_H)
+#error "Only <polkit/polkit.h> can be included directly, this file may disappear or change contents."
+#endif
+
 #ifndef __POLKIT_ERROR_H
 #define __POLKIT_ERROR_H
 
diff --git a/src/polkit/polkitidentity.h b/src/polkit/polkitidentity.h
index 2b81008..7d955e6 100644
--- a/src/polkit/polkitidentity.h
+++ b/src/polkit/polkitidentity.h
@@ -19,6 +19,10 @@
  * Author: David Zeuthen <davidz at redhat.com>
  */
 
+#if !defined (_POLKIT_COMPILATION) && !defined(_POLKIT_INSIDE_POLKIT_H)
+#error "Only <polkit/polkit.h> can be included directly, this file may disappear or change contents."
+#endif
+
 #ifndef __POLKIT_IDENTITY_H
 #define __POLKIT_IDENTITY_H
 
diff --git a/src/polkit/polkitimplicitauthorization.h b/src/polkit/polkitimplicitauthorization.h
index 12d2880..7abd557 100644
--- a/src/polkit/polkitimplicitauthorization.h
+++ b/src/polkit/polkitimplicitauthorization.h
@@ -19,6 +19,10 @@
  * Author: David Zeuthen <davidz at redhat.com>
  */
 
+#if !defined (_POLKIT_COMPILATION) && !defined(_POLKIT_INSIDE_POLKIT_H)
+#error "Only <polkit/polkit.h> can be included directly, this file may disappear or change contents."
+#endif
+
 #ifndef __POLKIT_IMPLICIT_AUTHORIZATION_H
 #define __POLKIT_IMPLICIT_AUTHORIZATION_H
 
diff --git a/src/polkit/polkitsubject.h b/src/polkit/polkitsubject.h
index 6f95c29..0ef8812 100644
--- a/src/polkit/polkitsubject.h
+++ b/src/polkit/polkitsubject.h
@@ -19,6 +19,10 @@
  * Author: David Zeuthen <davidz at redhat.com>
  */
 
+#if !defined (_POLKIT_COMPILATION) && !defined(_POLKIT_INSIDE_POLKIT_H)
+#error "Only <polkit/polkit.h> can be included directly, this file may disappear or change contents."
+#endif
+
 #ifndef __POLKIT_SUBJECT_H
 #define __POLKIT_SUBJECT_H
 
diff --git a/src/polkit/polkitsystembusname.h b/src/polkit/polkitsystembusname.h
index 7894a1e..4c91ee6 100644
--- a/src/polkit/polkitsystembusname.h
+++ b/src/polkit/polkitsystembusname.h
@@ -19,6 +19,10 @@
  * Author: David Zeuthen <davidz at redhat.com>
  */
 
+#if !defined (_POLKIT_COMPILATION) && !defined(_POLKIT_INSIDE_POLKIT_H)
+#error "Only <polkit/polkit.h> can be included directly, this file may disappear or change contents."
+#endif
+
 #ifndef __POLKIT_SYSTEM_BUS_NAME_H
 #define __POLKIT_SYSTEM_BUS_NAME_H
 
diff --git a/src/polkit/polkitunixgroup.h b/src/polkit/polkitunixgroup.h
index 714b1b1..49e171a 100644
--- a/src/polkit/polkitunixgroup.h
+++ b/src/polkit/polkitunixgroup.h
@@ -19,6 +19,10 @@
  * Author: David Zeuthen <davidz at redhat.com>
  */
 
+#if !defined (_POLKIT_COMPILATION) && !defined(_POLKIT_INSIDE_POLKIT_H)
+#error "Only <polkit/polkit.h> can be included directly, this file may disappear or change contents."
+#endif
+
 #ifndef __POLKIT_UNIX_GROUP_H
 #define __POLKIT_UNIX_GROUP_H
 
diff --git a/src/polkit/polkitunixprocess.h b/src/polkit/polkitunixprocess.h
index b584bef..9af2710 100644
--- a/src/polkit/polkitunixprocess.h
+++ b/src/polkit/polkitunixprocess.h
@@ -19,6 +19,10 @@
  * Author: David Zeuthen <davidz at redhat.com>
  */
 
+#if !defined (_POLKIT_COMPILATION) && !defined(_POLKIT_INSIDE_POLKIT_H)
+#error "Only <polkit/polkit.h> can be included directly, this file may disappear or change contents."
+#endif
+
 #ifndef __POLKIT_UNIX_PROCESS_H
 #define __POLKIT_UNIX_PROCESS_H
 
diff --git a/src/polkit/polkitunixsession.h b/src/polkit/polkitunixsession.h
index bbf431e..949811d 100644
--- a/src/polkit/polkitunixsession.h
+++ b/src/polkit/polkitunixsession.h
@@ -19,6 +19,10 @@
  * Author: David Zeuthen <davidz at redhat.com>
  */
 
+#if !defined (_POLKIT_COMPILATION) && !defined(_POLKIT_INSIDE_POLKIT_H)
+#error "Only <polkit/polkit.h> can be included directly, this file may disappear or change contents."
+#endif
+
 #ifndef __POLKIT_UNIX_SESSION_H
 #define __POLKIT_UNIX_SESSION_H
 
diff --git a/src/polkit/polkitunixuser.h b/src/polkit/polkitunixuser.h
index 012856c..2346c8a 100644
--- a/src/polkit/polkitunixuser.h
+++ b/src/polkit/polkitunixuser.h
@@ -19,6 +19,10 @@
  * Author: David Zeuthen <davidz at redhat.com>
  */
 
+#if !defined (_POLKIT_COMPILATION) && !defined(_POLKIT_INSIDE_POLKIT_H)
+#error "Only <polkit/polkit.h> can be included directly, this file may disappear or change contents."
+#endif
+
 #ifndef __POLKIT_UNIX_USER_H
 #define __POLKIT_UNIX_USER_H
 
diff --git a/src/polkitagent/Makefile.am b/src/polkitagent/Makefile.am
index cec4c24..1ee185b 100644
--- a/src/polkitagent/Makefile.am
+++ b/src/polkitagent/Makefile.am
@@ -12,7 +12,6 @@ INCLUDES =                                                      \
         -DPACKAGE_LIB_DIR=\""$(libdir)"\"                       \
         -D_POSIX_PTHREAD_SEMANTICS                              \
         -D_REENTRANT                                            \
-	-DPOLKIT_AGENT_COMPILATION				\
 	-DEGG_DBUS_I_KNOW_API_IS_SUBJECT_TO_CHANGE		\
         $(NULL)
 
@@ -48,6 +47,8 @@ libpolkit_agent_1_la_SOURCES =                                   			\
         $(NULL)
 
 libpolkit_agent_1_la_CFLAGS =                                        	\
+        -D_POLKIT_COMPILATION                                  		\
+	-D_POLKIT_AGENT_COMPILATION					\
         $(GLIB_CFLAGS)							\
         $(EGG_DBUS_CFLAGS)						\
         $(NULL)
@@ -61,9 +62,19 @@ libpolkit_agent_1_la_LIBADD =                               		\
 
 libexec_PROGRAMS = polkit-agent-helper-1
 
-polkit_agent_helper_1_SOURCES = polkitagenthelper.c
-polkit_agent_helper_1_CFLAGS  = $(GLIB_CFLAGS)
-polkit_agent_helper_1_LDADD   = $(AUTH_LIBS) $(top_builddir)/src/polkit/libpolkit-gobject-1.la
+polkit_agent_helper_1_SOURCES = 					\
+	polkitagenthelper.c						\
+	$(NULL)
+
+polkit_agent_helper_1_CFLAGS  = 					\
+        -D_POLKIT_COMPILATION                                  		\
+	$(GLIB_CFLAGS)							\
+	$(NULL)
+
+polkit_agent_helper_1_LDADD = 						\
+	$(AUTH_LIBS)							\
+	$(top_builddir)/src/polkit/libpolkit-gobject-1.la		\
+	$(NULL)
 
 # polkit-agent-helper-1 need to be setuid root because it's used to
 # authenticate not only the invoking user, but possibly also root
diff --git a/src/polkitagent/polkitagent.h b/src/polkitagent/polkitagent.h
index d417e5d..5045d67 100644
--- a/src/polkitagent/polkitagent.h
+++ b/src/polkitagent/polkitagent.h
@@ -22,14 +22,14 @@
 #ifndef __POLKIT_AGENT_H
 #define __POLKIT_AGENT_H
 
-#if !defined (POLKIT_AGENT_I_KNOW_API_IS_SUBJECT_TO_CHANGE) && !defined (POLKIT_AGENT_COMPILATION)
+#if !defined (POLKIT_AGENT_I_KNOW_API_IS_SUBJECT_TO_CHANGE) && !defined (_POLKIT_AGENT_COMPILATION)
 #error "libpolkitagent is unstable API and subject to change. You must define POLKIT_AGENT_I_KNOW_API_IS_SUBJECT_TO_CHANGE to acknowledge this."
 #endif
 
-#define POLKIT_AGENT_INSIDE_POLKIT_AGENT_H 1
+#define _POLKIT_AGENT_INSIDE_POLKIT_AGENT_H 1
 #include <polkitagent/polkitagenttypes.h>
 #include <polkitagent/polkitagentlistener.h>
 #include <polkitagent/polkitagentsession.h>
-#undef POLKIT_AGENT_INSIDE_POLKIT_AGENT_H
+#undef _POLKIT_AGENT_INSIDE_POLKIT_AGENT_H
 
 #endif /* __POLKIT_AGENT_H */
diff --git a/src/polkitagent/polkitagentlistener.h b/src/polkitagent/polkitagentlistener.h
index dc17bc3..59a8cc8 100644
--- a/src/polkitagent/polkitagentlistener.h
+++ b/src/polkitagent/polkitagentlistener.h
@@ -19,7 +19,7 @@
  * Author: David Zeuthen <davidz at redhat.com>
  */
 
-#if !defined(POLKIT_AGENT_INSIDE_POLKIT_AGENT_H) && !defined (POLKIT_AGENT_COMPILATION)
+#if !defined(_POLKIT_AGENT_INSIDE_POLKIT_AGENT_H) && !defined (_POLKIT_AGENT_COMPILATION)
 #error "Only <polkitagent/polkitagent.h> can be included directly, this file may disappear or change contents"
 #endif
 
diff --git a/src/polkitagent/polkitagentsession.h b/src/polkitagent/polkitagentsession.h
index be01852..4123c2d 100644
--- a/src/polkitagent/polkitagentsession.h
+++ b/src/polkitagent/polkitagentsession.h
@@ -19,7 +19,7 @@
  * Author: David Zeuthen <davidz at redhat.com>
  */
 
-#if !defined(POLKIT_AGENT_INSIDE_POLKIT_AGENT_H) && !defined (POLKIT_AGENT_COMPILATION)
+#if !defined(_POLKIT_AGENT_INSIDE_POLKIT_AGENT_H) && !defined (_POLKIT_AGENT_COMPILATION)
 #error "Only <polkitagent/polkitagent.h> can be included directly, this file may disappear or change contents"
 #endif
 
diff --git a/src/polkitagent/polkitagenttypes.h b/src/polkitagent/polkitagenttypes.h
index c1143be..8847c91 100644
--- a/src/polkitagent/polkitagenttypes.h
+++ b/src/polkitagent/polkitagenttypes.h
@@ -19,7 +19,7 @@
  * Author: David Zeuthen <davidz at redhat.com>
  */
 
-#if !defined(POLKIT_AGENT_INSIDE_POLKIT_AGENT_H) && !defined (POLKIT_AGENT_COMPILATION)
+#if !defined(_POLKIT_AGENT_INSIDE_POLKIT_AGENT_H) && !defined (_POLKIT_AGENT_COMPILATION)
 #error "Only <polkitagent/polkitagent.h> can be included directly, this file may disappear or change contents"
 #endif
 
diff --git a/src/polkitbackend/Makefile.am b/src/polkitbackend/Makefile.am
index a505fa7..4714856 100644
--- a/src/polkitbackend/Makefile.am
+++ b/src/polkitbackend/Makefile.am
@@ -57,6 +57,7 @@ libpolkit_backend_1_la_SOURCES =                                   	\
         $(NULL)
 
 libpolkit_backend_1_la_CFLAGS =                                        	\
+        -D_POLKIT_COMPILATION                                  		\
         -D_POLKIT_BACKEND_COMPILATION                                  	\
         $(GLIB_CFLAGS)							\
         $(EGG_DBUS_CFLAGS)						\
diff --git a/src/polkitbackend/polkitbackend.h b/src/polkitbackend/polkitbackend.h
index 6ff0439..b6dcc1d 100644
--- a/src/polkitbackend/polkitbackend.h
+++ b/src/polkitbackend/polkitbackend.h
@@ -24,6 +24,10 @@
 
 #include <polkit/polkit.h>
 
+#if !defined (POLKIT_BACKEND_I_KNOW_API_IS_SUBJECT_TO_CHANGE) && !defined (POLKIT_BACKEND_COMPILATION)
+#error "libpolkitbackend is unstable API and subject to change. You must define POLKIT_BACKEND_I_KNOW_API_IS_SUBJECT_TO_CHANGE to acknowledge this."
+#endif
+
 #define _POLKIT_BACKEND_INSIDE_POLKIT_BACKEND_H 1
 #include <polkitbackend/polkitbackendtypes.h>
 #include <polkitbackend/polkitbackendauthority.h>
diff --git a/src/polkitd/Makefile.am b/src/polkitd/Makefile.am
index c93096d..c425d68 100644
--- a/src/polkitd/Makefile.am
+++ b/src/polkitd/Makefile.am
@@ -21,7 +21,7 @@ polkitd_1_SOURCES = 							\
 	$(NULL)
 
 polkitd_1_CFLAGS = 							\
-	-I$(top_srcdir)/src						\
+	-DPOLKIT_BACKEND_I_KNOW_API_IS_SUBJECT_TO_CHANGE		\
 	-DG_LOG_DOMAIN=\"polkitd-1\"					\
 	$(GLIB_CFLAGS)							\
 	$(NULL)
diff --git a/src/programs/polkit.c b/src/programs/polkit.c
index 1bc2579..120801d 100644
--- a/src/programs/polkit.c
+++ b/src/programs/polkit.c
@@ -24,6 +24,7 @@
 #endif
 
 #include <string.h>
+#define POLKIT_I_KNOW_AUTHORITY_MANAGER_API_IS_SUBJECT_TO_CHANGE
 #include <polkit/polkit.h>
 
 static PolkitAuthority *authority;


More information about the hal-commit mailing list