diff --git a/Makefile-daemon.am b/Makefile-daemon.am deleted file mode 100644 index aab7e408..00000000 --- a/Makefile-daemon.am +++ /dev/null @@ -1,28 +0,0 @@ -# Makefile for C source code -# -# Copyright (C) 2011 Colin Walters -# -# This library 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 of the License, or (at your option) any later version. -# -# This library 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 library; if not, write to the -# Free Software Foundation, Inc., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. - -libexec_PROGRAMS += ostreed - -ostreed_SOURCES = src/daemon/ostreed.c \ - src/daemon/ot-daemon.h \ - src/daemon/ot-daemon.c \ - $(NULL) - -ostreed_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/src/libgsystem -I$(srcdir)/src/libotutil -I$(srcdir)/src/libostree -I$(srcdir)/src/daemon -DLOCALEDIR=\"$(datadir)/locale\" $(OT_INTERNAL_GIO_UNIX_CFLAGS) -ostreed_LDADD = libotutil.la libostree.la $(OT_INTERNAL_GIO_UNIX_LIBS) diff --git a/Makefile.am b/Makefile.am index ac4bf5ff..b87ecb3b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -78,7 +78,6 @@ libgsystem_cflags = $(OT_INTERNAL_GIO_UNIX_CFLAGS) -I$(srcdir)/src/libgsystem libgsystem_libs = $(OT_INTERNAL_GIO_UNIX_LIBS) include src/libgsystem/Makefile-libgsystem.am noinst_LTLIBRARIES += libgsystem.la -include Makefile-daemon.am include Makefile-otutil.am include Makefile-libostree.am include Makefile-ostree.am diff --git a/src/daemon/ostreed.c b/src/daemon/ostreed.c deleted file mode 100644 index d68cfbc1..00000000 --- a/src/daemon/ostreed.c +++ /dev/null @@ -1,72 +0,0 @@ -/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- - * - * Copyright (C) 2011 Colin Walters - * - * This library 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 of the License, or (at your option) any later version. - * - * This library 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 library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Colin Walters - */ - -#include "config.h" - -#include "ostree.h" -#include "ot-daemon.h" - -#include -#include -#include - -static OstreeDaemonConfig config; - -static GOptionEntry entries[] = { - { - "dummy-test-path", 0, 0, G_OPTION_ARG_FILENAME, &config.dummy_test_path, "Run against the given tree on the session bus", "path"}, - { NULL } -}; - -int -main (int argc, - char **argv) -{ - OstreeDaemon *daemon = NULL; - GError *error = NULL; - GOptionContext *context = NULL; - - g_type_init (); - - context = g_option_context_new ("- OSTree system daemon"); - g_option_context_add_main_entries (context, entries, NULL); - - if (!g_option_context_parse (context, &argc, &argv, &error)) - goto out; - - daemon = ostree_daemon_new (); - - if (!ostree_daemon_config (daemon, &config, &error)) - goto out; - - g_main_loop_run (daemon->loop); - - out: - ostree_daemon_free (daemon); - if (error) - { - g_printerr ("%s\n", error->message); - g_clear_error (&error); - exit (1); - } - return 0; -} diff --git a/src/daemon/ot-daemon.c b/src/daemon/ot-daemon.c deleted file mode 100644 index c3f2c800..00000000 --- a/src/daemon/ot-daemon.c +++ /dev/null @@ -1,165 +0,0 @@ -/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- - * - * Copyright (C) 2011 Colin Walters - * - * This library 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 of the License, or (at your option) any later version. - * - * This library 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 library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Colin Walters - */ - -#include "config.h" - -#include -#include - -#include -#include - -#include "ostree.h" -#include "ot-daemon.h" - -static GDBusNodeInfo *introspection_data = NULL; - -static const gchar introspection_xml[] = - "" - " " - " " - ""; - -static void -handle_method_call (GDBusConnection *connection, - const gchar *sender, - const gchar *object_path, - const gchar *interface_name, - const gchar *method_name, - GVariant *parameters, - GDBusMethodInvocation *invocation, - gpointer user_data) -{ -} - -static const GDBusInterfaceVTable interface_vtable = -{ - handle_method_call, - NULL, - NULL -}; - -static void -on_bus_acquired (GDBusConnection *connection, - const gchar *name, - gpointer user_data) -{ - OstreeDaemon *self = user_data; - guint id; - - self->bus = g_object_ref (connection); - - if (introspection_data == NULL) - introspection_data = g_dbus_node_info_new_for_xml (introspection_xml, NULL); - - id = g_dbus_connection_register_object (connection, - OSTREE_DAEMON_PATH, - introspection_data->interfaces[0], - &interface_vtable, - NULL, /* user_data */ - NULL, /* user_data_free_func */ - NULL); /* GError** */ - g_assert (id > 0); -} - -static void -on_name_acquired (GDBusConnection *connection, - const gchar *name, - gpointer user_data) -{ - OstreeDaemon *self = user_data; - GError *error = NULL; - GFile *repo_file = NULL; - - repo_file = g_file_get_child (self->prefix, "repo"); - self->repo = ostree_repo_new (repo_file); - g_clear_object (&repo_file); - if (!ostree_repo_check (self->repo, &error)) - { - g_printerr ("%s\n", error->message); - g_clear_error (&error); - exit (1); - } -} - -static void -on_name_lost (GDBusConnection *connection, - const gchar *name, - gpointer user_data) -{ - exit (1); -} - -OstreeDaemon * -ostree_daemon_new (void) -{ - OstreeDaemon *self = g_new0 (OstreeDaemon, 1); - - self->loop = g_main_loop_new (NULL, TRUE); - self->ops = g_hash_table_new_full (g_int_hash, g_int_equal, NULL, NULL); - - return self; -} - -void -ostree_daemon_free (OstreeDaemon *self) -{ - g_main_loop_unref (self->loop); - g_hash_table_unref (self->ops); - g_free (self); -} - -gboolean -ostree_daemon_config (OstreeDaemon *self, - OstreeDaemonConfig *config, - GError **error) -{ - gboolean ret = FALSE; - gboolean is_dummy = config->dummy_test_path != NULL; - - if (!is_dummy) - { - if (getuid () != 0) - { - g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, - "This program must be run as root"); - goto out; - } - } - - if (is_dummy) - self->prefix = g_file_new_for_path (config->dummy_test_path); - else - self->prefix = g_file_new_for_path ("/sysroot/ostree"); - - self->name_id = g_bus_own_name (is_dummy ? G_BUS_TYPE_SESSION : G_BUS_TYPE_SYSTEM, - OSTREE_DAEMON_NAME, - G_BUS_NAME_OWNER_FLAGS_NONE, - on_bus_acquired, - on_name_acquired, - on_name_lost, - self, - NULL); - ret = TRUE; - out: - return ret; -} diff --git a/src/daemon/ot-daemon.h b/src/daemon/ot-daemon.h deleted file mode 100644 index 5319670e..00000000 --- a/src/daemon/ot-daemon.h +++ /dev/null @@ -1,70 +0,0 @@ -/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- - * - * Copyright (C) 2011 Colin Walters - * - * This library 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 of the License, or (at your option) any later version. - * - * This library 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 library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Colin Walters - */ - -#ifndef __OSTREE_DAEMON__ -#define __OSTREE_DAEMON__ - -#include - -#define OSTREE_DAEMON_NAME "org.gnome.OSTree" -#define OSTREE_DAEMON_PATH "/org/gnome/OSTree" -#define OSTREE_DAEMON_IFACE "org.gnome.OSTree" - -G_BEGIN_DECLS - -typedef struct { - char *dummy_test_path; -} OstreeDaemonConfig; - -typedef struct { - GMainLoop *loop; - GFile *prefix; - - OstreeRepo *repo; - - GDBusConnection *bus; - - int name_id; - - guint32 op_id; - - GHashTable *ops; -} OstreeDaemon; - -typedef struct { - guint32 id; - OstreeDaemon *daemon; - char *requestor_dbus_name; - GCancellable *cancellable; -} OstreeDaemonOperation; - -OstreeDaemon *ostree_daemon_new (void); - -void ostree_daemon_free (OstreeDaemon *self); - -gboolean ostree_daemon_config (OstreeDaemon *self, - OstreeDaemonConfig *config, - GError **error); - -G_END_DECLS - -#endif