73
68
gtk_dialog_add_buttons(GTK_DIALOG(dialog),
75
70
GTK_RESPONSE_REJECT,
76
_("Start package manager"),
81
74
gtk_dialog_set_default_response (GTK_DIALOG(dialog), RES_DIST_UPGRADER);
84
title = _("Addon volume detected");
85
markup = _("<span weight=\"bold\" size=\"larger\">"
86
"An addon volume with software applications has "
87
"been detected.</span>\n\n"
88
"Would you like to view/install the content? ");
89
gtk_dialog_add_buttons(GTK_DIALOG(dialog),
92
_("Start package manager"),
94
_("Start addon installer"),
97
gtk_dialog_set_default_response (GTK_DIALOG(dialog), RES_ADDON_CD);
76
#if 0 // we don't have aptoncd support currently, g-a-i is not
77
// in the archive anymore
100
78
case CD_WITH_APTONCD:
101
79
title = _("APTonCD volume detected");
102
80
markup = _("<span weight=\"bold\" size=\"larger\">"
121
100
gtk_message_dialog_set_markup(GTK_MESSAGE_DIALOG(dialog), markup);
123
102
int res = gtk_dialog_run (GTK_DIALOG (dialog));
127
105
case RES_START_PM:
128
cmd = g_strdup_printf("synaptic --add-cdrom '%s'",mount_point);
129
invoke_with_gksu(cmd, "/usr/share/applications/synaptic.desktop", FALSE);
106
argv[0] = "/usr/lib/update-notifier/backend_helper.py";
107
argv[1] = "add_cdrom";
108
argv[2] = (gchar *)mount_point;
110
g_spawn_async (NULL, argv, NULL, 0, NULL, NULL, NULL, NULL);
131
112
case RES_DIST_UPGRADER:
132
argv[0] = "/usr/lib/update-notifier/cddistupgrader";
133
argv[1] = (gchar *)mount_point;
113
argv[0] = "/usr/bin/pkexec";
114
argv[1] = "/usr/lib/update-notifier/cddistupgrader";
115
argv[2] = (gchar *)mount_point;
135
117
g_spawn_async (NULL, argv, NULL, 0, NULL, NULL, NULL, NULL);
138
cmd = g_strdup_printf("gnome-app-install --addon-cd='%s'", mount_point);
139
invoke_with_gksu(cmd, "/usr/share/applications/gnome-app-install.desktop", FALSE);
146
123
gtk_widget_destroy (dialog);
150
up_check_mount_point_for_packages (const char *mount_point, gpointer data)
155
char *ubuntu_dir = g_strdup_printf("%s/ubuntu",mount_point);
156
char *aptoncd_file = g_strdup_printf("%s/aptoncd.info",mount_point);
157
if(! (g_file_test (ubuntu_dir, G_FILE_TEST_IS_SYMLINK) ||
158
g_file_test (aptoncd_file, G_FILE_TEST_IS_REGULAR) )) {
160
g_free(aptoncd_file);
164
g_free(aptoncd_file);
166
/* this looks like a ubuntu CD, run the checker script to verify
167
* this. We expect the following return codes:
169
# 1 - CD with packages
170
# 2 - dist-upgrader CD
173
* (see data/apt-cdrom-check)
175
//g_print("this looks like a ubuntu-cdrom\n");
176
char *cmd = g_strdup_printf(CDROM_CHECKER" '%s'",mount_point);
178
g_spawn_command_line_sync(cmd, NULL, NULL, &retval, NULL);
180
//g_print("retval: %i \n", WEXITSTATUS(retval));
181
int cdtype = WEXITSTATUS(retval);
183
distro_cd_detected(data, cdtype, mount_point);
190
up_device_changed (GduPool *pool, GduDevice *device, gpointer data)
192
//g_print("up_device_changed %s\n", gdu_device_get_device_file (device));
194
// check if that is a removable device
195
if (!gdu_device_is_removable(device))
198
// we only care about the first mount point
199
const gchar *p = gdu_device_get_mount_path (device);
200
//g_print("checking mount point %s\n", p);
201
up_check_mount_point_for_packages (p, data);
206
up_check_mounted_devices (GduPool *pool, gpointer data)
208
GList *devices = gdu_pool_get_devices (pool);
210
while(devices != NULL) {
211
up_device_changed (pool, devices->data, data);
212
devices = g_list_next(devices);
214
g_list_free(devices);
218
up_do_hal_init (UpgradeNotifier *un)
220
GduPool *pool = gdu_pool_new ();
224
g_signal_connect (pool, "device_changed", (GCallback)up_device_changed, un);
225
// now check what devices we have
226
up_check_mounted_devices(pool, un);
235
#include "update-notifier.h"
238
up_do_hal_init (UpgradeNotifier *un)
240
g_warning("Detection and monitoring of CD-ROMs disabled.");
127
main (int argc, char **argv)
129
bindtextdomain(GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
130
bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
131
textdomain(GETTEXT_PACKAGE);
135
printf("usage: %s cdtype mountpoint", argv[0]);
140
int cdtype = atoi(argv[1]);
141
char *mount_point = argv[2];
143
gtk_init (&argc, &argv);
144
distro_cd_detected(cdtype, mount_point);