summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am2
-rw-r--r--Makefile.in2
-rw-r--r--dists/rpm/gsignond-suse.spec109
-rw-r--r--dists/rpm/gsignond-tizen.changes5
-rw-r--r--dists/rpm/gsignond-tizen.spec93
-rw-r--r--gsignond-uninstalled.pc.in4
-rw-r--r--gsignond.pc.in2
-rw-r--r--packaging/gsignond.changes6
-rw-r--r--packaging/gsignond.spec8
-rw-r--r--src/daemon/dbus/Makefile.am12
-rw-r--r--src/daemon/dbus/Makefile.in30
-rw-r--r--src/daemon/dbus/gsignond-dbus-signonui-adapter.c265
-rw-r--r--src/daemon/dbus/gsignond-dbus.h8
-rwxr-xr-xtools/archive.sh (renamed from packaging/archive.sh)0
-rwxr-xr-xtools/prepare-tizen.sh22
-rwxr-xr-xtools/run-tests.sh16
-rwxr-xr-xtools/setup-and-start-daemon.sh54
17 files changed, 491 insertions, 147 deletions
diff --git a/Makefile.am b/Makefile.am
index 05f8163..22f236b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -11,7 +11,7 @@ pkgconfig_DATA = gsignond.pc
SUBDIRS = src test
-EXTRA_DIST = packaging
+EXTRA_DIST = dists tools
valgrind:
cd test; make valgrind
diff --git a/Makefile.in b/Makefile.in
index 988a9f1..4475fd5 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -301,7 +301,7 @@ AM_DISTCHECK_CONFIGURE_FLAGS = \
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = gsignond.pc
SUBDIRS = src test
-EXTRA_DIST = packaging
+EXTRA_DIST = dists tools
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
diff --git a/dists/rpm/gsignond-suse.spec b/dists/rpm/gsignond-suse.spec
new file mode 100644
index 0000000..84f7321
--- /dev/null
+++ b/dists/rpm/gsignond-suse.spec
@@ -0,0 +1,109 @@
+# define used dbus type [p2p, session, system]
+%define dbus_type session
+# enable debug features such as control environment variables
+# WARNING! do not use for production builds as it will break security
+%define debug_build 0
+
+Name: gsignond
+Summary: GLib based Single Sign-On daemon
+Version: 0.0.1
+Release: 9
+Group: System/Daemons
+License: LGPL
+Source: %{name}-%{version}.tar.gz
+Requires: dbus-1
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+BuildRequires: pkgconfig(dbus-1)
+BuildRequires: pkgconfig(gtk-doc)
+BuildRequires: pkgconfig(glib-2.0) >= 2.30
+BuildRequires: pkgconfig(gobject-2.0)
+BuildRequires: pkgconfig(gio-2.0)
+BuildRequires: pkgconfig(gio-unix-2.0)
+BuildRequires: pkgconfig(gmodule-2.0)
+BuildRequires: pkgconfig(sqlite3)
+
+
+%description
+%{summary}.
+
+
+%package devel
+Summary: Development files for %{name}
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description devel
+%{summary}.
+
+
+%prep
+%setup -q -n %{name}-%{version}
+#gtkdocize
+# for repository snapshot packages
+#aclocal
+#autoheader
+#libtoolize --copy --force
+#autoconf
+#automake --add-missing --copy
+#autoreconf --install --force
+# fore release source packages
+autoreconf -f -i
+
+
+%build
+%if %{debug_build} == 1
+%configure --enable-dbus-type=%{dbus_type} --enable-debug
+%else
+%configure --enable-dbus-type=%{dbus_type}
+%endif
+
+make %{?_smp_mflags}
+
+
+%install
+rm -rf %{buildroot}
+%make_install
+
+
+%post
+/sbin/ldconfig
+chmod u+s %{_bindir}/%{name}
+
+
+%postun -p /sbin/ldconfig
+
+
+%files
+%defattr(-,root,root,-)
+%doc AUTHORS COPYING.LIB INSTALL NEWS README
+%{_bindir}/%{name}
+%{_bindir}/%{name}-plugind
+%{_libdir}/lib%{name}-*.so.*
+%{_libdir}/%{name}/extensions/*.so*
+%{_libdir}/%{name}/plugins/*.so*
+%if %{dbus_type} != "p2p"
+%{_datadir}/dbus-1/services/*SingleSignOn*.service
+%endif
+%exclude %{_libdir}/gsignond/extensions/*.la
+%exclude %{_libdir}/gsignond/plugins/*.la
+
+
+%files devel
+%defattr(-,root,root,-)
+%{_includedir}/%{name}/*.h
+%{_libdir}/lib%{name}-*.so
+%{_libdir}/lib%{name}-*.la
+%{_libdir}/pkgconfig/%{name}.pc
+%if %{dbus_type} != "p2p"
+%{_datadir}/dbus-1/interfaces/*SSO*.xml
+%endif
+
+
+%changelog
+* Wed Jun 12 2013 Jussi Laako <jussi.laako@linux.intel.com>
+- Prepare for first release
+
+* Thu Feb 08 2013 Jussi Laako <jussi.laako@linux.intel.com>
+- Initial RPM packaging
+
diff --git a/dists/rpm/gsignond-tizen.changes b/dists/rpm/gsignond-tizen.changes
new file mode 100644
index 0000000..8de2263
--- /dev/null
+++ b/dists/rpm/gsignond-tizen.changes
@@ -0,0 +1,5 @@
+* Wed Jun 12 2013 Jussi Laako <jussi.laako@linux.intel.com>
+- Prepare for first release
+
+* Thu Feb 08 2013 Jussi Laako <jussi.laako@linux.intel.com>
+- Initial RPM packaging
diff --git a/dists/rpm/gsignond-tizen.spec b/dists/rpm/gsignond-tizen.spec
new file mode 100644
index 0000000..d87723e
--- /dev/null
+++ b/dists/rpm/gsignond-tizen.spec
@@ -0,0 +1,93 @@
+# define used dbus type [p2p, session, system]
+%define dbus_type session
+# enable debug features such as control environment variables
+# WARNING! do not use for production builds as it will break security
+%define debug_build 0
+
+Name: gsignond
+Summary: GLib based Single Sign-On daemon
+Version: 0.0.1
+Release: 9
+Group: System/Daemons
+License: LGPL
+Source: %{name}-%{version}.tar.gz
+Requires: dbus-1
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+BuildRequires: pkgconfig(dbus-1)
+BuildRequires: pkgconfig(glib-2.0) >= 2.30
+BuildRequires: pkgconfig(gobject-2.0)
+BuildRequires: pkgconfig(gio-2.0)
+BuildRequires: pkgconfig(gio-unix-2.0)
+BuildRequires: pkgconfig(gmodule-2.0)
+BuildRequires: pkgconfig(sqlite3)
+
+
+%description
+%{summary}.
+
+
+%package devel
+Summary: Development files for %{name}
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description devel
+%{summary}.
+
+
+%prep
+%setup -q -n %{name}-%{version}
+if [ -f = "gtk-doc.make" ]
+then
+rm gtk-doc.make
+fi
+touch gtk-doc.make
+autoreconf -f -i
+
+
+%build
+%if %{debug_build} == 1
+%configure --enable-dbus-type=%{dbus_type} --enable-debug
+%else
+%configure --enable-dbus-type=%{dbus_type}
+%endif
+
+make %{?_smp_mflags}
+
+
+%install
+rm -rf %{buildroot}
+%make_install
+
+
+%post
+/sbin/ldconfig
+chmod u+s %{_bindir}/%{name}
+
+
+%postun -p /sbin/ldconfig
+
+
+%files
+%defattr(-,root,root,-)
+%doc AUTHORS COPYING.LIB INSTALL NEWS README
+%{_bindir}/%{name}
+%{_bindir}/%{name}-plugind
+%{_libdir}/lib%{name}-*.so.*
+%{_libdir}/%{name}/extensions/*.so*
+%{_libdir}/%{name}/plugins/*.so*
+%if %{dbus_type} != "p2p"
+%{_datadir}/dbus-1/services/*SingleSignOn*.service
+%endif
+
+
+%files devel
+%defattr(-,root,root,-)
+%{_includedir}/%{name}/*.h
+%{_libdir}/lib%{name}-*.so
+%{_libdir}/pkgconfig/%{name}.pc
+%if %{dbus_type} != "p2p"
+%{_datadir}/dbus-1/interfaces/*SSO*.xml
+%endif
+
diff --git a/gsignond-uninstalled.pc.in b/gsignond-uninstalled.pc.in
index 6158941..c17bca5 100644
--- a/gsignond-uninstalled.pc.in
+++ b/gsignond-uninstalled.pc.in
@@ -14,5 +14,5 @@ Description: Single-sign-on daemon and libraries, not installed
Version: @PACKAGE_VERSION@
URL: @PACKAGE_URL@
Requires: glib-2.0 >= 2.30 gio-2.0 gio-unix-2.0 gmodule-2.0 sqlite3
-Libs: @abs_top_builddir@/src/common/libgsignond-common.la @abs_top_builddir@/src/common/db/libgsignond-common-db.la
-Cflags: -I${includedir} \ No newline at end of file
+Libs: @abs_top_builddir@/src/common/libgsignond-common.la
+Cflags: -I${includedir}
diff --git a/gsignond.pc.in b/gsignond.pc.in
index 7ccc602..ae81423 100644
--- a/gsignond.pc.in
+++ b/gsignond.pc.in
@@ -11,6 +11,6 @@ Description: Single-sign-on daemon and libraries
Version: @PACKAGE_VERSION@
URL: @PACKAGE_URL@
Requires: glib-2.0 >= 2.30 gio-2.0 gio-unix-2.0 gmodule-2.0 sqlite3
-Libs: -L${libdir} -lgsignond-common -lgsignond-common-db
+Libs: -L${libdir} -lgsignond-common
Cflags: -I${includedir}
diff --git a/packaging/gsignond.changes b/packaging/gsignond.changes
index 077efc4..8de2263 100644
--- a/packaging/gsignond.changes
+++ b/packaging/gsignond.changes
@@ -1,3 +1,5 @@
-* Fri Jun 14 2013 Imran Zaman <imran.zaman@intel.com> submit/trunk/20130614.152516@f60ae3e
-- gsignond first release 0.0.1
+* Wed Jun 12 2013 Jussi Laako <jussi.laako@linux.intel.com>
+- Prepare for first release
+* Thu Feb 08 2013 Jussi Laako <jussi.laako@linux.intel.com>
+- Initial RPM packaging
diff --git a/packaging/gsignond.spec b/packaging/gsignond.spec
index 94dc799..d87723e 100644
--- a/packaging/gsignond.spec
+++ b/packaging/gsignond.spec
@@ -91,11 +91,3 @@ chmod u+s %{_bindir}/%{name}
%{_datadir}/dbus-1/interfaces/*SSO*.xml
%endif
-
-%changelog
-* Wed Jun 12 2013 Jussi Laako <jussi.laako@linux.intel.com>
-- Prepare for first release
-
-* Thu Feb 08 2013 Jussi Laako <jussi.laako@linux.intel.com>
-- Initial RPM packaging
-
diff --git a/src/daemon/dbus/Makefile.am b/src/daemon/dbus/Makefile.am
index a5f9596..f98ec6f 100644
--- a/src/daemon/dbus/Makefile.am
+++ b/src/daemon/dbus/Makefile.am
@@ -8,8 +8,6 @@ DBUS_BUILT_SOURCES = \
gsignond-dbus-auth-session-gen.h \
gsignond-dbus-identity-gen.c \
gsignond-dbus-identity-gen.h \
- gsignond-dbus-signonui-gen.c \
- gsignond-dbus-signonui-gen.h \
gsignond-dbus-remote-plugin-gen.c \
gsignond-dbus-remote-plugin-gen.h \
$(NULL)
@@ -18,7 +16,6 @@ DBUS_BUILT_DOCS = \
gsignond-dbus-auth-service-doc-gen-com.google.code.AccountsSSO.gSingleSignOn.AuthService.xml \
gsignond-dbus-auth-session-doc-gen-com.google.code.AccountsSSO.gSingleSignOn.AuthSession.xml \
gsignond-dbus-identity-doc-gen-com.google.code.AccountsSSO.gSingleSignOn.Identity.xml \
- gsignond-dbus-signonui-doc-gen-org.tizen.SSO.singlesignonui.xml \
gsignond-dbus-remote-plugin-doc-gen-com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.xml \
$(NULL)
@@ -47,14 +44,6 @@ gsignond-dbus-identity-gen.c gsignond-dbus-identity-gen.h : $(INTERFACES_DIR)/co
--generate-docbook gsignond-dbus-identity-doc-gen \
$<
-gsignond-dbus-signonui-gen.c gsignond-dbus-signonui-gen.h : $(INTERFACES_DIR)/org.tizen.SSO.singlesignonui.xml
- gdbus-codegen \
- --interface-prefix org.tizen.SSO \
- --c-namespace GSignondDbus \
- --generate-c-code gsignond-dbus-signonui-gen \
- --generate-docbook gsignond-dbus-signonui-doc-gen\
- $<
-
gsignond-dbus-remote-plugin-gen.c gsignond-dbus-remote-plugin-gen.h : $(INTERFACES_DIR)/com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.xml
gdbus-codegen \
--interface-prefix $(DBUS_INTERFACE_PREFIX) \
@@ -117,7 +106,6 @@ dbusinterfaces_DATA = \
$(INTERFACES_DIR)/com.google.code.AccountsSSO.gSingleSignOn.AuthService.xml \
$(INTERFACES_DIR)/com.google.code.AccountsSSO.gSingleSignOn.AuthSession.xml \
$(INTERFACES_DIR)/com.google.code.AccountsSSO.gSingleSignOn.Identity.xml \
- $(INTERFACES_DIR)/org.tizen.SSO.singlesignonui.xml \
$(INTERFACES_DIR)/com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.xml
EXTRA_DIST = interfaces
diff --git a/src/daemon/dbus/Makefile.in b/src/daemon/dbus/Makefile.in
index 649178f..9668bce 100644
--- a/src/daemon/dbus/Makefile.in
+++ b/src/daemon/dbus/Makefile.in
@@ -87,7 +87,6 @@ am__objects_2 = \
libgsignond_dbus_glue_la-gsignond-dbus-auth-service-gen.lo \
libgsignond_dbus_glue_la-gsignond-dbus-auth-session-gen.lo \
libgsignond_dbus_glue_la-gsignond-dbus-identity-gen.lo \
- libgsignond_dbus_glue_la-gsignond-dbus-signonui-gen.lo \
libgsignond_dbus_glue_la-gsignond-dbus-remote-plugin-gen.lo \
$(am__objects_1)
am_libgsignond_dbus_glue_la_OBJECTS = $(am__objects_2)
@@ -101,7 +100,6 @@ libgsignond_dbus_la_DEPENDENCIES = libgsignond-dbus-glue.la \
am__objects_3 = libgsignond_dbus_la-gsignond-dbus-auth-service-gen.lo \
libgsignond_dbus_la-gsignond-dbus-auth-session-gen.lo \
libgsignond_dbus_la-gsignond-dbus-identity-gen.lo \
- libgsignond_dbus_la-gsignond-dbus-signonui-gen.lo \
libgsignond_dbus_la-gsignond-dbus-remote-plugin-gen.lo \
$(am__objects_1)
am_libgsignond_dbus_la_OBJECTS = $(am__objects_3) \
@@ -295,8 +293,6 @@ DBUS_BUILT_SOURCES = \
gsignond-dbus-auth-session-gen.h \
gsignond-dbus-identity-gen.c \
gsignond-dbus-identity-gen.h \
- gsignond-dbus-signonui-gen.c \
- gsignond-dbus-signonui-gen.h \
gsignond-dbus-remote-plugin-gen.c \
gsignond-dbus-remote-plugin-gen.h \
$(NULL)
@@ -305,7 +301,6 @@ DBUS_BUILT_DOCS = \
gsignond-dbus-auth-service-doc-gen-com.google.code.AccountsSSO.gSingleSignOn.AuthService.xml \
gsignond-dbus-auth-session-doc-gen-com.google.code.AccountsSSO.gSingleSignOn.AuthSession.xml \
gsignond-dbus-identity-doc-gen-com.google.code.AccountsSSO.gSingleSignOn.Identity.xml \
- gsignond-dbus-signonui-doc-gen-org.tizen.SSO.singlesignonui.xml \
gsignond-dbus-remote-plugin-doc-gen-com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.xml \
$(NULL)
@@ -361,7 +356,6 @@ dbusinterfaces_DATA = \
$(INTERFACES_DIR)/com.google.code.AccountsSSO.gSingleSignOn.AuthService.xml \
$(INTERFACES_DIR)/com.google.code.AccountsSSO.gSingleSignOn.AuthSession.xml \
$(INTERFACES_DIR)/com.google.code.AccountsSSO.gSingleSignOn.Identity.xml \
- $(INTERFACES_DIR)/org.tizen.SSO.singlesignonui.xml \
$(INTERFACES_DIR)/com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.xml
EXTRA_DIST = interfaces
@@ -445,7 +439,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsignond_dbus_glue_la-gsignond-dbus-auth-session-gen.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsignond_dbus_glue_la-gsignond-dbus-identity-gen.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsignond_dbus_glue_la-gsignond-dbus-remote-plugin-gen.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsignond_dbus_glue_la-gsignond-dbus-signonui-gen.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-auth-service-adapter.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-auth-service-gen.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-auth-session-adapter.Plo@am__quote@
@@ -455,7 +448,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-remote-plugin-gen.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-server.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-signonui-adapter.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-signonui-gen.Plo@am__quote@
.c.o:
@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@@ -502,13 +494,6 @@ libgsignond_dbus_glue_la-gsignond-dbus-identity-gen.lo: gsignond-dbus-identity-g
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_dbus_glue_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libgsignond_dbus_glue_la-gsignond-dbus-identity-gen.lo `test -f 'gsignond-dbus-identity-gen.c' || echo '$(srcdir)/'`gsignond-dbus-identity-gen.c
-libgsignond_dbus_glue_la-gsignond-dbus-signonui-gen.lo: gsignond-dbus-signonui-gen.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_dbus_glue_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libgsignond_dbus_glue_la-gsignond-dbus-signonui-gen.lo -MD -MP -MF $(DEPDIR)/libgsignond_dbus_glue_la-gsignond-dbus-signonui-gen.Tpo -c -o libgsignond_dbus_glue_la-gsignond-dbus-signonui-gen.lo `test -f 'gsignond-dbus-signonui-gen.c' || echo '$(srcdir)/'`gsignond-dbus-signonui-gen.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsignond_dbus_glue_la-gsignond-dbus-signonui-gen.Tpo $(DEPDIR)/libgsignond_dbus_glue_la-gsignond-dbus-signonui-gen.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsignond-dbus-signonui-gen.c' object='libgsignond_dbus_glue_la-gsignond-dbus-signonui-gen.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_dbus_glue_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libgsignond_dbus_glue_la-gsignond-dbus-signonui-gen.lo `test -f 'gsignond-dbus-signonui-gen.c' || echo '$(srcdir)/'`gsignond-dbus-signonui-gen.c
-
libgsignond_dbus_glue_la-gsignond-dbus-remote-plugin-gen.lo: gsignond-dbus-remote-plugin-gen.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_dbus_glue_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libgsignond_dbus_glue_la-gsignond-dbus-remote-plugin-gen.lo -MD -MP -MF $(DEPDIR)/libgsignond_dbus_glue_la-gsignond-dbus-remote-plugin-gen.Tpo -c -o libgsignond_dbus_glue_la-gsignond-dbus-remote-plugin-gen.lo `test -f 'gsignond-dbus-remote-plugin-gen.c' || echo '$(srcdir)/'`gsignond-dbus-remote-plugin-gen.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsignond_dbus_glue_la-gsignond-dbus-remote-plugin-gen.Tpo $(DEPDIR)/libgsignond_dbus_glue_la-gsignond-dbus-remote-plugin-gen.Plo
@@ -537,13 +522,6 @@ libgsignond_dbus_la-gsignond-dbus-identity-gen.lo: gsignond-dbus-identity-gen.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_dbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libgsignond_dbus_la-gsignond-dbus-identity-gen.lo `test -f 'gsignond-dbus-identity-gen.c' || echo '$(srcdir)/'`gsignond-dbus-identity-gen.c
-libgsignond_dbus_la-gsignond-dbus-signonui-gen.lo: gsignond-dbus-signonui-gen.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_dbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libgsignond_dbus_la-gsignond-dbus-signonui-gen.lo -MD -MP -MF $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-signonui-gen.Tpo -c -o libgsignond_dbus_la-gsignond-dbus-signonui-gen.lo `test -f 'gsignond-dbus-signonui-gen.c' || echo '$(srcdir)/'`gsignond-dbus-signonui-gen.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-signonui-gen.Tpo $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-signonui-gen.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsignond-dbus-signonui-gen.c' object='libgsignond_dbus_la-gsignond-dbus-signonui-gen.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_dbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libgsignond_dbus_la-gsignond-dbus-signonui-gen.lo `test -f 'gsignond-dbus-signonui-gen.c' || echo '$(srcdir)/'`gsignond-dbus-signonui-gen.c
-
libgsignond_dbus_la-gsignond-dbus-remote-plugin-gen.lo: gsignond-dbus-remote-plugin-gen.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgsignond_dbus_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libgsignond_dbus_la-gsignond-dbus-remote-plugin-gen.lo -MD -MP -MF $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-remote-plugin-gen.Tpo -c -o libgsignond_dbus_la-gsignond-dbus-remote-plugin-gen.lo `test -f 'gsignond-dbus-remote-plugin-gen.c' || echo '$(srcdir)/'`gsignond-dbus-remote-plugin-gen.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-remote-plugin-gen.Tpo $(DEPDIR)/libgsignond_dbus_la-gsignond-dbus-remote-plugin-gen.Plo
@@ -882,14 +860,6 @@ gsignond-dbus-identity-gen.c gsignond-dbus-identity-gen.h : $(INTERFACES_DIR)/co
--generate-docbook gsignond-dbus-identity-doc-gen \
$<
-gsignond-dbus-signonui-gen.c gsignond-dbus-signonui-gen.h : $(INTERFACES_DIR)/org.tizen.SSO.singlesignonui.xml
- gdbus-codegen \
- --interface-prefix org.tizen.SSO \
- --c-namespace GSignondDbus \
- --generate-c-code gsignond-dbus-signonui-gen \
- --generate-docbook gsignond-dbus-signonui-doc-gen\
- $<
-
gsignond-dbus-remote-plugin-gen.c gsignond-dbus-remote-plugin-gen.h : $(INTERFACES_DIR)/com.google.code.AccountsSSO.gSingleSignOn.RemotePlugin.xml
gdbus-codegen \
--interface-prefix $(DBUS_INTERFACE_PREFIX) \
diff --git a/src/daemon/dbus/gsignond-dbus-signonui-adapter.c b/src/daemon/dbus/gsignond-dbus-signonui-adapter.c
index db3398f..155348c 100644
--- a/src/daemon/dbus/gsignond-dbus-signonui-adapter.c
+++ b/src/daemon/dbus/gsignond-dbus-signonui-adapter.c
@@ -24,14 +24,14 @@
*/
#include "gsignond-dbus-signonui-adapter.h"
-#include "gsignond-dbus-signonui-gen.h"
#include "gsignond/gsignond-log.h"
#include "gsignond-dbus.h"
struct _GSignondDbusSignonuiAdapterPrivate
{
GDBusConnection *connection;
- GSignondDbusSinglesignonui *proxy;
+ GDBusProxy *proxy;
+ gulong connection_close_signal_id;
};
G_DEFINE_TYPE (GSignondDbusSignonuiAdapter, gsignond_dbus_signonui_adapter, G_TYPE_OBJECT)
@@ -58,6 +58,11 @@ _dispose (GObject *object)
{
GSignondDbusSignonuiAdapter *self = GSIGNOND_DBUS_SIGNONUI_ADAPTER (object);
+ if (self->priv->connection_close_signal_id) {
+ g_signal_handler_disconnect (self->priv->connection, self->priv->connection_close_signal_id);
+ self->priv->connection_close_signal_id = 0;
+ }
+
if (self->priv->connection) {
g_object_unref (self->priv->connection);
self->priv->connection = NULL;
@@ -104,32 +109,139 @@ gsignond_dbus_signonui_adapter_init (GSignondDbusSignonuiAdapter *self)
self->priv = GSIGNOND_DBUS_SIGNONUI_ADAPTER_GET_PRIV(self);
self->priv->connection = 0;
self->priv->proxy = 0;
+ self->priv->connection_close_signal_id = 0;
+}
+
+static void
+_on_proxy_signal (GSignondDbusSignonuiAdapter *adapter,
+ gchar *sender_name,
+ gchar *signal_name,
+ GVariant *params,
+ gpointer user_data)
+{
+ gchar *request_id = NULL;
+
+ g_return_if_fail (adapter && signal_name && params);
+
+ /* Ignore other than 'refresh' signal */
+ if (g_strcmp0(signal_name, "refresh") != 0) return ;
+
+ if (!g_variant_is_of_type (params, G_VARIANT_TYPE_TUPLE)) {
+ WARN ("Expected 'tuple' type but got '%s' type",
+ g_variant_get_type_string (params));
+ return ;
+ }
+
+ g_variant_get (params, "(s)", &request_id);
+
+ if (request_id) {
+ g_signal_emit (adapter, _signals[SIG_REFRESH], 0, request_id);
+ g_free (request_id);
+ }
+}
+
+static void
+_on_connection_closed (GSignondDbusSignonuiAdapter *adapter,
+ gboolean remote_peer_vanished,
+ GError *error,
+ gpointer user_data)
+{
+ g_return_if_fail (adapter);
+
+ DBG("UI Connection closed...");
+
+ g_signal_handler_disconnect (adapter->priv->connection, adapter->priv->connection_close_signal_id);
+ adapter->priv->connection_close_signal_id = 0;
+
+ g_clear_object (&adapter->priv->connection);
+ g_clear_object (&adapter->priv->proxy);
+}
+
+static gboolean
+_setup_ui_connection (GSignondDbusSignonuiAdapter *adapter)
+{
+ GError *err = NULL;
+ GVariant *reply = NULL;
+ gchar *ui_server_address = NULL;
+ GDBusConnection *session_bus = NULL;
+
+ g_return_val_if_fail (adapter, FALSE);
+
+ if (adapter->priv->connection) return TRUE;
+
+ session_bus = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &err);
+ if (err) {
+ WARN ("Error getting session bus :%s", err->message);
+ goto fail;
+ }
+
+ reply = g_dbus_connection_call_sync (session_bus, SIGNONUI_SERVICE, SIGNONUI_OBJECTPATH,
+ SIGNONUI_IFACE, "getBusAddress", g_variant_new ("()"),
+ G_VARIANT_TYPE_TUPLE, G_DBUS_CALL_FLAGS_NONE, -1, NULL, &err);
+ if (!reply) {
+ WARN ("Failed to get signon ui bus address : %s", err->message);
+ goto fail;
+ }
+
+ g_variant_get(reply, "(s)", &ui_server_address);
+
+ DBG ("Connecting to UI Server at : %s", ui_server_address);
+
+ adapter->priv->connection = g_dbus_connection_new_for_address_sync (ui_server_address,
+ G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT, NULL, NULL, &err);
+ g_free (ui_server_address);
+ if (err) {
+ WARN ("Failed to connect UI server at address '%s' : %s", ui_server_address,
+ err->message);
+ goto fail;
+ }
+
+ adapter->priv->connection_close_signal_id =
+ g_signal_connect_swapped (adapter->priv->connection,
+ "closed", G_CALLBACK(_on_connection_closed), adapter);
+
+ adapter->priv->proxy = g_dbus_proxy_new_sync (adapter->priv->connection,
+ G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES,
+ NULL,
+ NULL,
+ SIGNONUI_DIALOG_OBJECTPATH,
+ SIGNONUI_DIALOG_IFACE,
+ NULL,
+ &err);
+ if (err) {
+ WARN ("failed to get ui object : %s", err->message);
+ goto fail;
+ }
+
+ g_signal_connect_swapped (adapter->priv->proxy, "g-signal", G_CALLBACK (_on_proxy_signal), adapter);
+
+ return TRUE;
+fail:
+ if (err) g_error_free (err);
+ return FALSE;
}
static void
_on_query_dialog_ready (GObject *proxy, GAsyncResult *res, gpointer user_data)
{
GError *error = NULL;
- GVariant *out_params = NULL;
+ GVariant *reply = NULL;
_SignonuiDbusInfo *info = (_SignonuiDbusInfo *)user_data;
- gsignond_dbus_singlesignonui_call_query_dialog_finish (
- GSIGNOND_DBUS_SINGLESIGNONUI (proxy), &out_params, res, &error);
+ reply = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, &error);
- if (!info) {
- ERR ("Memory curropted");
- return;
- }
-
- if (info->cb) {
- ((GSignondDbusSignonuiQueryDialogCb)info->cb) (out_params, error, info->data);
+ if (info) {
+ if (info->cb) {
+ GVariant *out_params = NULL; g_variant_get (reply, "(@a{sv})", &out_params);
+ ((GSignondDbusSignonuiQueryDialogCb)info->cb) (out_params, error, info->data);
+ g_variant_unref (out_params);
+ }
g_object_unref (info->adapter);
- g_free (info);
- }
- else {
- if (error) g_error_free (error);
- if (out_params) g_variant_unref (out_params);
+ g_slice_free (_SignonuiDbusInfo, info);
}
+
+ if (error) g_error_free (error);
+ if (reply) g_variant_unref (reply);
}
gboolean
@@ -142,13 +254,19 @@ gsignond_dbus_signonui_adapter_query_dialog (GSignondDbusSignonuiAdapter *adapte
WARN ("assert (!adapter ||!GSIGNOND_IS_DBUS_SIGNONUI_ADAPTER (adapter)) failed");
return FALSE;
}
- _SignonuiDbusInfo *info = g_new0 (_SignonuiDbusInfo, 1);
+ if (!adapter->priv->proxy && !_setup_ui_connection(adapter)) {
+ WARN ("Failed to setup ui connection");
+ return FALSE;
+ }
+ _SignonuiDbusInfo *info = g_slice_new0 (_SignonuiDbusInfo);
info->adapter = g_object_ref (adapter);
info->cb = callback;
info->data = user_data;
- gsignond_dbus_singlesignonui_call_query_dialog (adapter->priv->proxy, params, NULL,
- _on_query_dialog_ready, (gpointer)info);
+
+ g_dbus_proxy_call (adapter->priv->proxy, "queryDialog",
+ g_variant_new ("(a{sv})", params), G_DBUS_CALL_FLAGS_NONE, -1, NULL,
+ _on_query_dialog_ready, (gpointer)info);
return TRUE;
}
@@ -157,23 +275,20 @@ static void
_on_refresh_dialog_ready (GObject *proxy, GAsyncResult *res, gpointer user_data)
{
GError *error = NULL;
+ GVariant *reply = NULL;
_SignonuiDbusInfo *info = (_SignonuiDbusInfo *)user_data;
- gsignond_dbus_singlesignonui_call_refresh_dialog_finish (
- GSIGNOND_DBUS_SINGLESIGNONUI (proxy), res, &error);
-
- if (!info) {
- ERR ("Memory curropted");
- g_error_free (error);
- return;
- }
+ reply = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, &error);
- if (info->cb) {
- ((GSignondDbusSignonuiRefreshDialogCb)info->cb) (error, info->data);
+ if (info) {
+ if (info->cb)
+ ((GSignondDbusSignonuiRefreshDialogCb)info->cb) (error, info->data);
g_object_unref (info->adapter);
- g_free (info);
+ g_slice_free (_SignonuiDbusInfo, info);
}
- else if (error) g_error_free (error);
+
+ if (reply) g_variant_unref (reply);
+ if (error) g_error_free (error);
}
gboolean
@@ -186,13 +301,20 @@ gsignond_dbus_signonui_adapter_refresh_dialog (GSignondDbusSignonuiAdapter *adap
WARN ("assert (!adapter ||!GSIGNOND_IS_DBUS_SIGNONUI_ADAPTER (adapter)) failed");
return FALSE;
}
- _SignonuiDbusInfo *info = g_new0 (_SignonuiDbusInfo, 1);
+ if (!adapter->priv->proxy && !_setup_ui_connection(adapter)) {
+ WARN ("Failed to setup ui connection");
+ return FALSE;
+ }
+
+ _SignonuiDbusInfo *info = g_slice_new0 (_SignonuiDbusInfo);
info->adapter = g_object_ref (adapter);
info->cb = callback;
info->data = user_data;
- gsignond_dbus_singlesignonui_call_refresh_dialog (adapter->priv->proxy, params, NULL,
- _on_refresh_dialog_ready, (gpointer)info);
+
+ g_dbus_proxy_call (adapter->priv->proxy, "refreshDialog",
+ g_variant_new ("(a{sv})", params), G_DBUS_CALL_FLAGS_NONE, -1, NULL,
+ _on_refresh_dialog_ready, (gpointer)info);
return TRUE;
}
@@ -201,23 +323,20 @@ static void
_on_cancel_request_ready (GObject *proxy, GAsyncResult *res, gpointer user_data)
{
GError *error = NULL;
+ GVariant *reply = NULL;
_SignonuiDbusInfo *info = (_SignonuiDbusInfo *)user_data;
- gsignond_dbus_singlesignonui_call_cancel_ui_request_finish (
- GSIGNOND_DBUS_SINGLESIGNONUI (proxy), res, &error);
-
- if (!info) {
- ERR ("Memory curropted");
- g_error_free (error);
- return;
- }
+ reply = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, &error);
- if (info->cb) {
- ((GSignondDbusSignonuiCancelRequestCb)info->cb) (error, info->data);
+ if (info) {
+ if (info->cb)
+ ((GSignondDbusSignonuiCancelRequestCb)info->cb) (error, info->data);
g_object_unref (info->adapter);
- g_free (info);
+ g_slice_free (_SignonuiDbusInfo, info);
}
- else if (error) g_error_free (error);
+
+ if (reply) g_variant_unref (reply);
+ if (error) g_error_free (error);
}
gboolean
@@ -230,28 +349,21 @@ gsignond_dbus_signonui_adapter_cancel_request (GSignondDbusSignonuiAdapter *adap
WARN ("assert (!adapter ||!GSIGNOND_IS_DBUS_SIGNONUI_ADAPTER (adapter)) failed");
return FALSE;
}
- _SignonuiDbusInfo *info = g_new0 (_SignonuiDbusInfo, 1);
+ if (!adapter->priv->proxy && !_setup_ui_connection(adapter)) {
+ WARN ("Failed to setup ui connection");
+ return FALSE;
+ }
+ _SignonuiDbusInfo *info = g_slice_new0 (_SignonuiDbusInfo);
info->adapter = g_object_ref (adapter);
info->cb = callback;
info->data = user_data;
- gsignond_dbus_singlesignonui_call_cancel_ui_request (adapter->priv->proxy, request_id, NULL,
- _on_cancel_request_ready, (gpointer)info);
- return TRUE;
-}
-
-static void
-_on_refresh_request (GSignondDbusSignonuiAdapter *proxy, gchar *request_id, gpointer userdata)
-{
- GSignondDbusSignonuiAdapter *adapter = GSIGNOND_DBUS_SIGNONUI_ADAPTER (userdata);
-
- if (!adapter) {
- ERR ("DBus-Error: memroy curroption");
- return;
- }
+ g_dbus_proxy_call (adapter->priv->proxy, "cancelUiRequest",
+ g_variant_new ("(s)", request_id), G_DBUS_CALL_FLAGS_NONE, -1, NULL,
+ _on_cancel_request_ready, (gpointer)info);
- g_signal_emit (adapter, _signals[SIG_REFRESH], 0, request_id);
+ return TRUE;
}
/**
@@ -264,34 +376,13 @@ _on_refresh_request (GSignondDbusSignonuiAdapter *proxy, gchar *request_id, gpoi
GSignondDbusSignonuiAdapter *
gsignond_dbus_signonui_adapter_new ()
{
- GError *err = NULL;
GSignondDbusSignonuiAdapter *adapter = GSIGNOND_DBUS_SIGNONUI_ADAPTER (
g_object_new (GSIGNOND_TYPE_DBUS_SIGNONUI_ADAPTER, NULL));
-
- adapter->priv->connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &err);
- if (err) {
- ERR ("Error getting session bus :%s", err->message);
- goto fail;
- }
- adapter->priv->proxy = gsignond_dbus_singlesignonui_proxy_new_sync (adapter->priv->connection,
- G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES,
- SIGNONUI_SERVICE,
- SIGNONUI_OBJECTPATH,
- NULL,
- &err);
- if (err) {
- WARN ("failed to get ui object : %s", err->message);
- goto fail;
+ if (!_setup_ui_connection (adapter)) {
+ g_object_unref (adapter);
+ return NULL;
}
- g_signal_connect (adapter->priv->proxy, "refresh", G_CALLBACK (_on_refresh_request), adapter);
-
return adapter;
-
-fail:
- if (err) g_error_free (err);
- g_object_unref (adapter);
- return NULL;
}
-
diff --git a/src/daemon/dbus/gsignond-dbus.h b/src/daemon/dbus/gsignond-dbus.h
index 82fb529..8da81ce 100644
--- a/src/daemon/dbus/gsignond-dbus.h
+++ b/src/daemon/dbus/gsignond-dbus.h
@@ -38,8 +38,10 @@
#define GSIGNOND_AUTH_SESSION_INTERFACE GSIGNOND_SERVICE_PREFIX ".AuthSession"
#define GSIGNOND_PLUGIN_OBJECTPATH GSIGNOND_DAEMON_OBJECTPATH "/Plugin"
-#define SIGNONUI_SERVICE "org.tizen.SSO"
-#define SIGNONUI_OBJECTPATH "/org/tizen/SSO/SignonUi"
-#define SIGNONUI_INTERFACE "org.tizen.SSO.singlesignonui"
+#define SIGNONUI_SERVICE "com.google.code.AccountsSSO.gSingleSignOn.UI"
+#define SIGNONUI_OBJECTPATH "/"
+#define SIGNONUI_IFACE "com.google.code.AccountsSSO.gSingleSignOn.UI"
+#define SIGNONUI_DIALOG_IFACE "com.google.code.AccountsSSO.gSingleSignOn.UI.Dialog"
+#define SIGNONUI_DIALOG_OBJECTPATH "/Dialog"
#endif /* __GSIGNOND_DBUS_H_ */
diff --git a/packaging/archive.sh b/tools/archive.sh
index b28d24f..b28d24f 100755
--- a/packaging/archive.sh
+++ b/tools/archive.sh
diff --git a/tools/prepare-tizen.sh b/tools/prepare-tizen.sh
new file mode 100755
index 0000000..d4329b2
--- /dev/null
+++ b/tools/prepare-tizen.sh
@@ -0,0 +1,22 @@
+# $1 corresponds to gsignond-<ver>.tar.gz
+# $2 is the destination folder
+# NOTE: all the files will be extracted under destination folder (instead of destfolder/gsignond-<version>)
+
+if [ $# -ne 2 -o -z "$1" -o -z "$2" ]; then
+ echo "Invalid arguments supplied"
+ echo "Usage: ./prepare-tizen.sh gsignond-<version>.tar.gz destfolder"
+ echo "NOTE: All the files will be extracted under destfolder (instead of destfolder/gsignond-<version>)"
+ exit
+fi
+
+currdir = `pwd`;
+echo "CURR dir = $currdir"
+
+mkdir -p $2 && \
+tar -xzvf $1 -C $2 --strip-components 1 && \
+cd $2 && \
+mkdir -p packaging && \
+cd packaging && \
+cp -f ../dists/rpm/gsignond-tizen.spec gsignond.spec &&
+cp -f ../dists/rpm/gsignond-tizen.changes gsignond.changes;
+
diff --git a/tools/run-tests.sh b/tools/run-tests.sh
new file mode 100755
index 0000000..0d271d4
--- /dev/null
+++ b/tools/run-tests.sh
@@ -0,0 +1,16 @@
+#Environment variables for the tests
+export G_MESSAGES_DEBUG=all
+export SSO_STORAGE_PATH=/tmp/gsignond
+export SSO_SECRET_PATH=/tmp/gsignond
+
+rm -rf "$SSO_STORAGE_PATH"
+
+make distclean;
+autoreconf -fi;
+./configure --enable-dbus-type=session --enable-debug && \
+make -j4 && make check && make distclean && \
+./configure --enable-dbus-type=system --enable-debug && \
+make -j4 && make check && make distclean && \
+./configure --enable-dbus-type=p2p --enable-debug && \
+make -j4 && make check && make distclean;
+
diff --git a/tools/setup-and-start-daemon.sh b/tools/setup-and-start-daemon.sh
new file mode 100755
index 0000000..a7ecd8b
--- /dev/null
+++ b/tools/setup-and-start-daemon.sh
@@ -0,0 +1,54 @@
+SRC_HOME="."
+with_duma=0
+with_gdb=0
+
+if test $# -ge 1 ; then
+ if test "$1" == "--with-duma" ; then
+ with_duma=1
+ with_gdb=1
+ else
+ with_duma=0
+ if test "$1" == "--with-gdb" ; then
+ with_gdb=1
+ fi
+ fi
+fi
+
+killall gsignond
+
+export SSO_SECRET_PATH="/tmp/gsignond"
+export SSO_STORAGE_PATH="/tmp/gsignond"
+if [ -f "$SRC_HOME/test/daemon/.libs/lt-daemontest" ] ; then
+export SSO_KEYCHAIN_SYSCTX="$SRC_HOME/test/daemon/.libs/lt-daemontest"
+else
+export SSO_KEYCHAIN_SYSCTX="$SRC_HOME/test/daemon/.libs/daemontest"
+fi
+export SSO_BIN_DIR=$SRC_HOME/src/daemon/.libs
+export SSO_PLUGINS_DIR=$SRC_HOME/src/plugins/.libs
+export LD_LIBRARY_PATH="$SRC_HOME/src/daemon/plugins/plugind/.libs:$SRC_HOME/src/daemon/plugins/.libs"
+export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$SRC_HOME/src/common/.libs:$SRC_HOME/src/common/db/.libs:$SRC_HOME/src/daemon/.libs:$SRC_HOME/src/daemon/db/.libs:$SRC_HOME/src/daemon/dbus/.libs"
+export G_MESSAGES_DEBUG="all"
+
+# Clean db
+rm -rf /tmp/gsignond
+
+echo "--------------------------"
+echo "with_duma: $with_duma"
+echo "with_gdb: $with_gdb"
+echo "--------------------------"
+if test $with_duma -eq 1 ; then
+ export G_SLICE="always-malloc"
+ export DUMA_PROTECT_FREE=1
+ export DUMA_PROTECT_BELOW=1
+
+ LD_PRELOAD="libduma.so" $SRC_HOME/src/daemon/.libs/gsignond &
+
+ if test $with_gdb -eq 1 ; then
+ sudo gdb --pid=`pidof gsignond`
+ fi
+elif test $with_gdb -eq 1 ; then
+ gdb $SRC_HOME/src/daemon/.libs/gsignond
+else
+ $SRC_HOME/src/daemon/.libs/gsignond
+fi
+