pre-inst should install 'installer' group rather than the hardcoded plover-gtkui
2 * Copyright (C) 2014, 2016 J. Ali Harlow <ali@juiblex.co.uk>
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License along
15 * with this program; if not, write to the Free Software Foundation, Inc.,
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
26 #include <plover/plover.h>
27 #include <plover/transaction.h>
28 #include <plover/packageset.h>
29 #include <plover-gtk/transactionhelper.h>
30 #include "app-manager.h"
33 gboolean update(const char *base)
35 gchar *s,*database_uri;
38 static PloverTransactionHelper *helper=NULL;
41 helper=plover_transaction_helper_new(ui);
42 plover_transaction_helper_set_base(helper,base);
43 prefix=plover_transaction_helper_get_prefix(helper,&error);
45 g_clear_error(&error);
48 s=g_strconcat(prefix?prefix:"","/var/log/update",NULL);
52 plover_transaction_helper_set_check_vendor(helper,TRUE);
53 g_signal_connect(helper,"close",G_CALLBACK(gtk_main_quit),NULL);
55 if (!plover_transaction_helper_get_visible(helper))
57 if (!plover_transaction_helper_update(helper,&error))
59 if (g_error_matches(error,PLOVER_GENERAL_ERROR,
60 PLOVER_GENERAL_ERROR_NO_WORK))
63 error=g_error_new_literal(PLOVER_GENERAL_ERROR,
64 PLOVER_GENERAL_ERROR_NO_WORK,
65 "All relevant updates already applied");
66 plover_transaction_helper_set_error(helper,error,
69 else if (g_error_matches(error,PLOVER_GENERAL_ERROR,
70 PLOVER_GENERAL_ERROR_REQUIREMENTS_NOT_MET))
73 error=g_error_new_literal(PLOVER_GENERAL_ERROR,
74 PLOVER_GENERAL_ERROR_REQUIREMENTS_NOT_MET,
75 "Updates cannot be applied because some earlier updates are "
76 "missing. Installing updates in sequence should resolve this "
78 plover_transaction_helper_set_error(helper,error,
79 "Software update failed");
82 plover_transaction_helper_set_error(helper,error,
83 "Software update failed");
87 plover_transaction_helper_present(helper);