summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xRepository.mk1
-rw-r--r--offapi/UnoApi_offapi.mk6
-rw-r--r--offapi/org/freedesktop/PackageKit/XModify.idl104
-rw-r--r--offapi/org/freedesktop/PackageKit/XQuery.idl48
-rw-r--r--offapi/org/freedesktop/PackageKit/XSyncDbusSessionHelper.idl31
-rw-r--r--postprocess/packcomponents/makefile.mk1
-rw-r--r--scp2/source/ooo/file_library_ooo.scp1
-rw-r--r--scp2/source/ooo/module_hidden_ooo.scp1
-rw-r--r--shell/Library_losessioninstall.mk41
-rw-r--r--shell/Module_shell.mk1
-rw-r--r--shell/source/sessioninstall/SyncDbusSessionHelper.cxx113
-rw-r--r--shell/source/sessioninstall/SyncDbusSessionHelper.hxx60
-rw-r--r--shell/source/sessioninstall/losessioninstall.component15
-rw-r--r--shell/source/sessioninstall/services.cxx31
14 files changed, 454 insertions, 0 deletions
diff --git a/Repository.mk b/Repository.mk
index f4b6985b871c..657e8418f73a 100755
--- a/Repository.mk
+++ b/Repository.mk
@@ -558,6 +558,7 @@ $(eval $(call gb_Helper_register_libraries,UNOLIBS_OOO, \
ldapbe2 \
localebe1 \
lomenubar \
+ losessioninstall \
macbe1 \
migrationoo2 \
migrationoo3 \
diff --git a/offapi/UnoApi_offapi.mk b/offapi/UnoApi_offapi.mk
index d8129272bc7b..0f154828a4f7 100644
--- a/offapi/UnoApi_offapi.mk
+++ b/offapi/UnoApi_offapi.mk
@@ -4292,4 +4292,10 @@ $(eval $(call gb_UnoApi_add_idlfiles,offapi,offapi/com/sun/star/xsd,\
XDataType \
))
+$(eval $(call gb_UnoApi_add_idlfiles,offapi,offapi/org/freedesktop/PackageKit,\
+ XSyncDbusSessionHelper \
+ XModify \
+ XQuery \
+))
+
# vim: set noet sw=4 ts=4:
diff --git a/offapi/org/freedesktop/PackageKit/XModify.idl b/offapi/org/freedesktop/PackageKit/XModify.idl
new file mode 100644
index 000000000000..79e2f79cd2a4
--- /dev/null
+++ b/offapi/org/freedesktop/PackageKit/XModify.idl
@@ -0,0 +1,104 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#ifndef org_freedesktop_PackageKit_XModify_idl
+#define org_freedesktop_PackageKit_XModify_idl
+
+#include <com/sun/star/uno/XInterface.idl>
+
+module org
+{
+module freedesktop
+{
+module PackageKit
+{
+/**
+ * The interface used for modifying the package database.
+ */
+interface XModify : com::sun::star::uno::XInterface
+{
+ /**
+ * Installs local package sequence< string > files or service packs.
+ * @since LibreOffice 3.7
+ */
+
+ void InstallPackageFiles( [in] unsigned long xid, [in] sequence< string > files, [in] string interaction);
+
+ /**
+ * Installs sequence< string > packages to provide sequence< string > files.
+ * @since LibreOffice 3.7
+ */
+
+ void InstallProvideFiles( [in] unsigned long xid, [in] sequence< string > files, [in] string interaction);
+
+ /**
+ * Installs sequence< string > packages to provide sequence< string > files.
+ * @since LibreOffice 3.7
+ */
+
+ void InstallCatalogs( [in] unsigned long xid, [in] sequence< string > files, [in] string interaction);
+
+ /**
+ * Installs sequence< string > packages from a configured software source.
+ * @since LibreOffice 3.7
+ */
+
+ void InstallPackageNames( [in] unsigned long xid, [in] sequence< string > packages, [in] string interaction);
+
+ /**
+ * Installs mimetype handlers from a configured software source.
+ * @since LibreOffice 3.7
+ */
+
+ void InstallMimeTypes( [in] unsigned long xid, [in] sequence< string > mime_types, [in] string interaction);
+
+ /**
+ * Installs fontconfig resources ( [in] usually fonts) from a configured software source.
+ * @since LibreOffice 3.7
+ */
+
+ void InstallFontconfigRessources( [in] unsigned long xid, [in] sequence< string > resources, [in] string interaction);
+
+ /**
+ * Installs GStreamer resources ( [in] usually codecs) from a configured software source.
+ * @since LibreOffice 3.7
+ */
+
+ void InstalliGStreamerRessources( [in] unsigned long xid, [in] sequence< string > resources, [in] string interaction);
+
+ /**
+ * Installs resources of a given type from a configured software source.
+ * @since LibreOffice 3.7
+ */
+
+ void InstallRessources( [in] unsigned long xid, [in] sequence< string > types, [in] sequence< string > resources, [in] string interaction);
+
+ /**
+ * Removes sequence< string > packages that provide the given local sequence< string > files.
+ * @since LibreOffice 3.7
+ */
+
+ void RemovePackageByFiles( [in] unsigned long xid, [in] sequence< string > files, [in] string interaction);
+
+ /**
+ * Installs printer drivers from a configured software source.
+ * @since LibreOffice 3.7
+ */
+
+ void InstallPrinterDrivers( [in] unsigned long xid, [in] sequence< string > files, [in] string interaction);
+};
+
+} ; // PackageKit
+} ; // freedesktop
+} ; // org
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/org/freedesktop/PackageKit/XQuery.idl b/offapi/org/freedesktop/PackageKit/XQuery.idl
new file mode 100644
index 000000000000..9eb4483a85c7
--- /dev/null
+++ b/offapi/org/freedesktop/PackageKit/XQuery.idl
@@ -0,0 +1,48 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+#ifndef org_freedesktop_PakageKit_XQuery_idl
+#define org_freedesktop_PakageKit_XQuery_idl
+
+#include <com/sun/star/uno/XInterface.idl>
+
+module org
+{
+module freedesktop
+{
+module PackageKit
+{
+/**
+ * The interface used for quering the package database.
+ */
+interface XQuery : com::sun::star::uno::XInterface
+{
+ /**
+ * Installs local package files or service packs.
+ * @since LibreOffice 3.7
+ */
+
+ void IsInstalled([in] string package_name, [in] string interaction, [out] boolean installed);
+
+ /**
+ * Installs packages to provide files.
+ * @since LibreOffice 3.7
+ */
+
+ void SearchFile([in] string file_name, [in] string interaction, [out] boolean installed, [out] string package_name);
+
+};
+
+} ; // PackageKit
+} ; // freedesktop
+} ; // org
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/org/freedesktop/PackageKit/XSyncDbusSessionHelper.idl b/offapi/org/freedesktop/PackageKit/XSyncDbusSessionHelper.idl
new file mode 100644
index 000000000000..bc19f776fc11
--- /dev/null
+++ b/offapi/org/freedesktop/PackageKit/XSyncDbusSessionHelper.idl
@@ -0,0 +1,31 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+#ifndef org_freedesktop_PackageKit_XSyncDbusSessionHelper_idl
+#define org_freedesktop_PackageKit_XSyncDbusSessionHelper_idl
+
+#include <org/freedesktop/PackageKit/XModify.idl>
+#include <org/freedesktop/PackageKit/XQuery.idl>
+
+module org {
+module freedesktop {
+module PackageKit {
+
+interface XSyncDbusSessionHelper
+{
+ interface XModify;
+ interface XQuery;
+};
+
+} ; // PackageKit
+} ; // freedesktop
+} ; // org
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/postprocess/packcomponents/makefile.mk b/postprocess/packcomponents/makefile.mk
index 269bf5863f8a..27447e2961b9 100644
--- a/postprocess/packcomponents/makefile.mk
+++ b/postprocess/packcomponents/makefile.mk
@@ -93,6 +93,7 @@ my_components = \
component/sot/util/sot \
component/starmath/util/sm \
component/starmath/util/smd \
+ component/shell/source/sessioninstall/losessioninstall \
component/svl/source/fsstor/fsstorage \
component/svl/source/passwordcontainer/passwordcontainer \
component/svl/util/svl \
diff --git a/scp2/source/ooo/file_library_ooo.scp b/scp2/source/ooo/file_library_ooo.scp
index d3c08f3dc921..27c5b2b9d9d5 100644
--- a/scp2/source/ooo/file_library_ooo.scp
+++ b/scp2/source/ooo/file_library_ooo.scp
@@ -94,6 +94,7 @@ End
#endif
SPECIAL_COMPONENT_LIB_FILE(gid_File_Lib_Configmgr, configmgr.uno)
+SPECIAL_COMPONENT_LIB_FILE(gid_File_Lib_Losessioninstall, losessioninstall.uno )
File gid_File_Lib_Ldapbe2
LIB_FILE_BODY;
diff --git a/scp2/source/ooo/module_hidden_ooo.scp b/scp2/source/ooo/module_hidden_ooo.scp
index 435b157d26fb..671264880469 100644
--- a/scp2/source/ooo/module_hidden_ooo.scp
+++ b/scp2/source/ooo/module_hidden_ooo.scp
@@ -312,6 +312,7 @@ Module gid_Module_Root_Files_5
gid_File_Lib_Textconv_Dict,
gid_File_Lib_Basprov,
gid_File_Lib_Configmgr,
+ gid_File_Lib_Losessioninstall,
gid_File_Lib_Crypto,
gid_File_Lib_Dlgprov,
gid_File_Lib_Stringresource,
diff --git a/shell/Library_losessioninstall.mk b/shell/Library_losessioninstall.mk
new file mode 100644
index 000000000000..eb5f1232e384
--- /dev/null
+++ b/shell/Library_losessioninstall.mk
@@ -0,0 +1,41 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_Library_Library,losessioninstall))
+
+$(eval $(call gb_Library_set_componentfile,losessioninstall,shell/source/sessioninstall/losessioninstall))
+
+$(eval $(call gb_Library_use_api,losessioninstall,\
+ offapi \
+ udkapi \
+))
+
+$(eval $(call gb_Library_use_libraries,losessioninstall,\
+ comphelper \
+ cppu \
+ cppuhelper \
+ sal \
+ $(gb_STDLIBS) \
+))
+
+ifeq ($(RTL_OS),Linux)
+ifeq ($(ENABLE_GIO),TRUE)
+$(eval $(call gb_Library_use_externals,losessioninstall,\
+ dbus \
+ gio \
+))
+
+$(eval $(call gb_Library_add_exception_objects,losessioninstall,\
+ shell/source/sessioninstall/SyncDbusSessionHelper \
+ shell/source/sessioninstall/services \
+))
+endif
+endif
+
+# vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/shell/Module_shell.mk b/shell/Module_shell.mk
index f520aea372a7..50687acc4e4c 100644
--- a/shell/Module_shell.mk
+++ b/shell/Module_shell.mk
@@ -30,6 +30,7 @@ $(eval $(call gb_Module_Module,shell))
$(eval $(call gb_Module_add_targets,shell,\
Library_desktopbe \
Library_localebe \
+ Library_losessioninstall \
))
ifeq ($(ENABLE_GCONF),TRUE)
diff --git a/shell/source/sessioninstall/SyncDbusSessionHelper.cxx b/shell/source/sessioninstall/SyncDbusSessionHelper.cxx
new file mode 100644
index 000000000000..1653cb3f8603
--- /dev/null
+++ b/shell/source/sessioninstall/SyncDbusSessionHelper.cxx
@@ -0,0 +1,113 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <SyncDbusSessionHelper.hxx>
+
+#include <comphelper/stlunosequence.hxx>
+#include <gio/gio.h>
+#include <vector>
+#include <boost/shared_ptr.hpp>
+
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::uno;
+using namespace ::comphelper;
+using namespace ::std;;
+using namespace ::rtl;;
+
+namespace
+{
+ struct GVariantDeleter { void operator()(GVariant* pV) { g_variant_unref(pV); } };
+ struct GVariantBuilderDeleter { void operator()(GVariantBuilder* pVB) { g_variant_builder_unref(pVB); } };
+ template <typename T> struct GObjectDeleter { void operator()(T* pO) { g_object_unref(pO); } };
+ class GErrorWrapper
+ {
+ GError* m_pError;
+ public:
+ GErrorWrapper(GError* pError) : m_pError(pError) {};
+ ~GErrorWrapper()
+ {
+ if(!m_pError)
+ return;
+ OUString sMsg = OUString::createFromAscii(m_pError->message);
+ g_error_free(m_pError);
+ throw RuntimeException(sMsg, NULL);
+ }
+ GError** getRef() { return &m_pError; }
+ };
+ static inline GDBusProxy* lcl_GetPackageKitProxy(const OUString sInterface)
+ {
+ const OString sFullInterface = rtl::OUStringToOString("org.freedesktop.PackageKit." + sInterface, RTL_TEXTENCODING_ASCII_US);
+ GErrorWrapper error(NULL);
+ GDBusProxy* proxy = NULL;
+ proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION,
+ G_DBUS_PROXY_FLAGS_NONE, NULL,
+ "org.freedesktop.PackageKit",
+ "/org/freedesktop/PackageKit",
+ reinterpret_cast<const gchar*>(sFullInterface.getStr()),
+ NULL,
+ error.getRef());
+ if(!proxy)
+ throw RuntimeException(OUString("couldnt get a proxy!"),NULL);
+ return proxy;
+ };
+}
+
+namespace shell { namespace sessioninstall
+{
+ SyncDbusSessionHelper::SyncDbusSessionHelper(Reference<XComponentContext> const&)
+ {
+ g_type_init ();
+ }
+ void SAL_CALL SyncDbusSessionHelper::InstallPackageNames( const ::sal_uInt32 nXid, const Sequence< OUString >& vPackages, const OUString& sInteraction ) throw (RuntimeException)
+ {
+ vector< OString > vPackagesOString;
+ vPackagesOString.reserve(vPackages.getLength());
+ boost::shared_ptr<GVariantBuilder> pBuilder(g_variant_builder_new(G_VARIANT_TYPE ("as")), GVariantBuilderDeleter());
+ for( const OUString* pPackage = stl_begin(vPackages); pPackage != stl_end(vPackages); ++pPackage)
+ {
+ vPackagesOString.push_back(rtl::OUStringToOString(*pPackage, RTL_TEXTENCODING_ASCII_US));
+ g_variant_builder_add(pBuilder.get(), "s", vPackagesOString.back().getStr());
+ }
+
+ const OString sInteractionAscii = OUStringToOString(sInteraction, RTL_TEXTENCODING_ASCII_US);
+ boost::shared_ptr<GDBusProxy> proxy(lcl_GetPackageKitProxy("Modify"), GObjectDeleter<GDBusProxy>());
+ GErrorWrapper error(NULL);
+ g_dbus_proxy_call_sync (proxy.get(),
+ "InstallPackageNames",
+ g_variant_new ("(uass)",
+ sal::static_int_cast<guint32>(nXid),
+ pBuilder.get(),
+ sInteractionAscii.getStr()),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1, /* timeout */
+ NULL, /* cancellable */
+ error.getRef());
+ }
+
+ void SAL_CALL SyncDbusSessionHelper::IsInstalled( const OUString& sPackagename, const OUString& sInteraction, ::sal_Bool& o_isInstalled ) throw (RuntimeException)
+ {
+ const OString sPackagenameAscii = OUStringToOString(sPackagename, RTL_TEXTENCODING_ASCII_US);
+ const OString sInteractionAscii = OUStringToOString(sInteraction, RTL_TEXTENCODING_ASCII_US);
+ boost::shared_ptr<GDBusProxy> proxy(lcl_GetPackageKitProxy("Query"), GObjectDeleter<GDBusProxy>());
+ GErrorWrapper error(NULL);
+ boost::shared_ptr<GVariant> result(g_dbus_proxy_call_sync (proxy.get(),
+ "IsInstalled",
+ g_variant_new ("(ss)",
+ sPackagenameAscii.getStr(),
+ sInteractionAscii.getStr()),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1, /* timeout */
+ NULL, /* cancellable */
+ error.getRef()),GVariantDeleter());
+ if(result.get())
+ o_isInstalled = g_variant_get_boolean(g_variant_get_child_value(result.get(),0)) ? sal_True : sal_False;
+ }
+}}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/shell/source/sessioninstall/SyncDbusSessionHelper.hxx b/shell/source/sessioninstall/SyncDbusSessionHelper.hxx
new file mode 100644
index 000000000000..bbb1201246fb
--- /dev/null
+++ b/shell/source/sessioninstall/SyncDbusSessionHelper.hxx
@@ -0,0 +1,60 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#ifndef SHELL_SESSIONINSTALL_SYNCDBUSSESSIONHELPER_HXX
+#define SHELL_SESSIONINSTALL_SYNCDBUSSESSIONHELPER_HXX
+
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/uno/XComponentContext.hpp>
+#include <org/freedesktop/PackageKit/XSyncDbusSessionHelper.hpp>
+#include <cppuhelper/implbase1.hxx>
+
+namespace shell { namespace sessioninstall
+{
+ class SyncDbusSessionHelper : public ::cppu::WeakImplHelper1< ::org::freedesktop::PackageKit::XSyncDbusSessionHelper >
+ {
+ public:
+ SyncDbusSessionHelper(::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext> const&);
+ virtual ~SyncDbusSessionHelper() {};
+ // XModify Methods
+ virtual void SAL_CALL InstallPackageNames( ::sal_uInt32 xid, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& packages, const ::rtl::OUString& interaction ) throw (::com::sun::star::uno::RuntimeException);
+
+ virtual void SAL_CALL InstallPackageFiles( ::sal_uInt32 xid, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& files, const ::rtl::OUString& interaction ) throw (::com::sun::star::uno::RuntimeException)
+ { throw ::com::sun::star::uno::RuntimeException(); }; // not implemented
+ virtual void SAL_CALL InstallProvideFiles( ::sal_uInt32 xid, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& files, const ::rtl::OUString& interaction ) throw (::com::sun::star::uno::RuntimeException)
+ { throw ::com::sun::star::uno::RuntimeException(); }; // not implemented
+ virtual void SAL_CALL InstallCatalogs( ::sal_uInt32 xid, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& files, const ::rtl::OUString& interaction ) throw (::com::sun::star::uno::RuntimeException)
+ { throw ::com::sun::star::uno::RuntimeException(); }; // not implemented
+ virtual void SAL_CALL InstallMimeTypes( ::sal_uInt32 xid, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& mime_types, const ::rtl::OUString& interaction ) throw (::com::sun::star::uno::RuntimeException)
+ { throw ::com::sun::star::uno::RuntimeException(); }; // not implemented
+ virtual void SAL_CALL InstallFontconfigRessources( ::sal_uInt32 xid, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& resources, const ::rtl::OUString& interaction ) throw (::com::sun::star::uno::RuntimeException)
+ { throw ::com::sun::star::uno::RuntimeException(); }; // not implemented
+ virtual void SAL_CALL InstalliGStreamerRessources( ::sal_uInt32 xid, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& resources, const ::rtl::OUString& interaction ) throw (::com::sun::star::uno::RuntimeException)
+ { throw ::com::sun::star::uno::RuntimeException(); }; // not implemented
+ virtual void SAL_CALL InstallRessources( ::sal_uInt32 xid, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& types, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& resources, const ::rtl::OUString& interaction ) throw (::com::sun::star::uno::RuntimeException)
+ { throw ::com::sun::star::uno::RuntimeException(); }; // not implemented
+ virtual void SAL_CALL RemovePackageByFiles( ::sal_uInt32 xid, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& files, const ::rtl::OUString& interaction ) throw (::com::sun::star::uno::RuntimeException)
+ { throw ::com::sun::star::uno::RuntimeException(); }; // not implemented
+ virtual void SAL_CALL InstallPrinterDrivers( ::sal_uInt32 xid, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& files, const ::rtl::OUString& interaction ) throw (::com::sun::star::uno::RuntimeException)
+ { throw ::com::sun::star::uno::RuntimeException(); }; // not implemented
+ // XQuery Methods
+ virtual void SAL_CALL IsInstalled( const ::rtl::OUString& package_name, const ::rtl::OUString& interaction, ::sal_Bool& installed ) throw (::com::sun::star::uno::RuntimeException);
+
+ virtual void SAL_CALL SearchFile( const ::rtl::OUString& file_name, const ::rtl::OUString& interaction, ::sal_Bool& installed, ::rtl::OUString& package_name ) throw (::com::sun::star::uno::RuntimeException)
+ { throw ::com::sun::star::uno::RuntimeException(); }; // not implemented
+
+ private:
+ SyncDbusSessionHelper(); // never implemented
+ SyncDbusSessionHelper( const SyncDbusSessionHelper& ); // never implemented
+ SyncDbusSessionHelper& operator=( const SyncDbusSessionHelper& ); // never implemented
+ };
+}}
+
+#endif // SHELL_SESSIONINSTALL_SYNCDBUSSESSIONHELPER_HXX
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/shell/source/sessioninstall/losessioninstall.component b/shell/source/sessioninstall/losessioninstall.component
new file mode 100644
index 000000000000..d01c357ef6cb
--- /dev/null
+++ b/shell/source/sessioninstall/losessioninstall.component
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+-->
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="org.libreoffice.comp.shell.sessioninstall.SyncDbusSessionHelper">
+ <service name="org.freedesktop.PackageKit.SyncDbusSessionHelper"/>
+ </implementation>
+</component>
diff --git a/shell/source/sessioninstall/services.cxx b/shell/source/sessioninstall/services.cxx
new file mode 100644
index 000000000000..caf332197a96
--- /dev/null
+++ b/shell/source/sessioninstall/services.cxx
@@ -0,0 +1,31 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <SyncDbusSessionHelper.hxx>
+#include <comphelper/servicedecl.hxx>
+#include <uno/environment.h>
+
+namespace sdecl = ::comphelper::service_decl;
+
+sdecl::class_< ::shell::sessioninstall::SyncDbusSessionHelper> SyncDbusSessionHelperServiceImpl;
+
+const sdecl::ServiceDecl SyncDbusSessionHelperServiceDecl(
+ SyncDbusSessionHelperServiceImpl,
+ "org.libreoffice.comp.shell.sessioninstall.SyncDbusSessionHelper",
+ "org.freedesktop.PackageKit.SyncDbusSessionHelper");
+
+COMPHELPER_SERVICEDECL_EXPORTS1(losessioninstall, SyncDbusSessionHelperServiceDecl);
+extern "C"
+{
+ SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory( sal_Char const* pImplName, ::com::sun::star::lang::XMultiServiceFactory* pServiceManager, ::com::sun::star::registry::XRegistryKey* pRegistryKey )
+ { return losessioninstall_component_getFactory(pImplName, pServiceManager, pRegistryKey); }
+}
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */