/** * pk_backend_initialize: * This should only be run once per backend load, i.e. not every transaction */ void pk_backend_initialize (GKeyFile *conf, PkBackend *backend) { gboolean ret; GFile *file = NULL; GError *error = NULL; GKeyFile *key_file = NULL; gchar *config_file = NULL; GList *mounts; /* use logging */ pk_debug_add_log_domain (G_LOG_DOMAIN); pk_debug_add_log_domain ("Yum"); /* create private area */ priv = g_new0 (PkBackendYumPrivate, 1); g_debug ("backend: initialize"); priv->spawn = pk_backend_spawn_new (conf); pk_backend_spawn_set_filter_stderr (priv->spawn, pk_backend_stderr_cb); pk_backend_spawn_set_filter_stdout (priv->spawn, pk_backend_stdout_cb); pk_backend_spawn_set_name (priv->spawn, "yum"); pk_backend_spawn_set_allow_sigkill (priv->spawn, FALSE); /* coldplug the mounts */ priv->volume_monitor = g_volume_monitor_get (); mounts = g_volume_monitor_get_mounts (priv->volume_monitor); g_list_foreach (mounts, (GFunc) pk_backend_mount_add, NULL); g_list_foreach (mounts, (GFunc) g_object_unref, NULL); g_list_free (mounts); /* setup a file monitor on the repos directory */ file = g_file_new_for_path (YUM_REPOS_DIRECTORY); priv->monitor = g_file_monitor_directory (file, G_FILE_MONITOR_NONE, NULL, &error); if (priv->monitor != NULL) { g_signal_connect (priv->monitor, "changed", G_CALLBACK (pk_backend_yum_repos_changed_cb), backend); } else { g_warning ("failed to setup monitor: %s", error->message); g_error_free (error); } /* read the config file */ key_file = g_key_file_new (); config_file = g_build_filename (SYSCONFDIR, "PackageKit", "Yum.conf", NULL); g_debug ("loading configuration from %s", config_file); ret = g_key_file_load_from_file (key_file, config_file, G_KEY_FILE_NONE, &error); if (!ret) { g_warning ("failed to load Yum.conf: %s", error->message); g_error_free (error); goto out; } out: g_free (config_file); if (key_file != NULL) g_key_file_free (key_file); if (file != NULL) g_object_unref (file); }
/** * pk_backend_initialize: * This should only be run once per backend load, i.e. not every transaction */ void pk_backend_initialize (GKeyFile *conf, PkBackend *backend) { g_debug ("backend: initialize"); spawn = pk_backend_spawn_new (conf); pk_backend_spawn_set_name (spawn, "pacman"); pk_backend_spawn_set_allow_sigkill (spawn, TRUE); }
/** * backend_initialize: * This should only be run once per backend load, i.e. not every transaction */ static void backend_initialize (PkBackend *backend) { g_debug ("backend: initialize"); spawn = pk_backend_spawn_new (); pk_backend_spawn_set_name (spawn, "ports"); /* allowing sigkill as long as no one complain */ pk_backend_spawn_set_allow_sigkill (spawn, TRUE); }
/** * pk_backend_initialize: * This should only be run once per backend load, i.e. not every transaction */ void pk_backend_initialize (GKeyFile *conf, PkBackend *backend) { g_debug ("backend: initialize"); spawn = pk_backend_spawn_new (conf); pk_backend_spawn_set_name (spawn, "portage"); /* allowing sigkill as long as no one complain */ pk_backend_spawn_set_allow_sigkill (spawn, TRUE); }
/** * pk_backend_initialize: * This should only be run once per backend load, i.e. not every transaction */ void pk_backend_initialize (PkBackend *backend) { g_debug ("backend: initialize"); /* BACKEND MAINTAINER: feel free to remove this when you've * added support for ONLY_DOWNLOAD and merged the simulate * methods as specified in backends/PORTING.txt */ g_error ("Backend needs to be ported to 0.8.x -- " "see backends/PORTING.txt for details"); spawn = pk_backend_spawn_new (); pk_backend_spawn_set_name (spawn, "entropy"); /* allowing sigkill as long as no one complain */ pk_backend_spawn_set_allow_sigkill (spawn, TRUE); }