Merge lp:~mterry/deja-dup/no-python2 into lp:deja-dup/34

Proposed by Michael Terry on 2015-11-06
Status: Merged
Approved by: Michael Terry on 2015-11-29
Approved revision: 1554
Merged at revision: 1548
Proposed branch: lp:~mterry/deja-dup/no-python2
Merge into: lp:deja-dup/34
Diff against target: 1839 lines (+1538/-44)
9 files modified
CMakeLists.txt (+4/-0)
debian/control (+2/-1)
deja-dup/preferences/CMakeLists.txt (+5/-4)
deja-dup/preferences/Preferences.vala (+117/-22)
deja-dup/preferences/PreferencesPanel.c (+12/-7)
deja-dup/preferences/preferences-main.vala (+5/-7)
deja-dup/widgets/ConfigLabelDescription.vala (+18/-2)
libdeja/AsyncCommand.vala (+4/-1)
vapi/packagekit-glib2.vapi (+1371/-0)
To merge this branch: bzr merge lp:~mterry/deja-dup/no-python2
Reviewer Review Type Date Requested Status
Didier Roche (community) Approve on 2015-11-26
Ken VanDine 2015-11-06 Pending
Déjà Dup Developers 2015-11-06 Pending
Review via email: mp+276875@code.launchpad.net

Description of the change

Use packagekit to install duplicity on the fly if needed, removing any dependency on python2 by deja-dup directly.

To post a comment you must log in.
lp:~mterry/deja-dup/no-python2 updated on 2015-11-20
1552. By Michael Terry on 2015-11-20

Add missing function declaration

Didier Roche (didrocks) wrote :

Hey Michael! Some review before some general thoughts :)

Code-wise:
I didn't spot anything horrible here at least. Everything should be working fine. It builds as well and seems to work on my existing install (even removing duplicity).

Tests:
I couldn't get the tests passing on sbuild (wily or xenial). The failing tests are here:
60% tests passed, 37 tests failed out of 93

Total Test time (real) = 82.80 sec

The following tests FAILED:
Errors while running CTest
  48 - permission.test (OTHER_FAULT)
  50 - no-space.test (OTHER_FAULT)
  51 - threshold-full.test (OTHER_FAULT)
  52 - delete-never.test (OTHER_FAULT)
  53 - clean-cache.test (OTHER_FAULT)
  54 - excludes.test (OTHER_FAULT)
  55 - symlink-direct.test (OTHER_FAULT)
  56 - symlink-trickshot.test (OTHER_FAULT)
  57 - stop.test (OTHER_FAULT)
  58 - mkdir.test (OTHER_FAULT)
  59 - disk-small.test (OTHER_FAULT)
  60 - bad-volume.test (OTHER_FAULT)
  61 - symlink-exclude2.test (OTHER_FAULT)
  62 - encrypt-ask.test (OTHER_FAULT)
  63 - threshold-inc.test (OTHER_FAULT)
  64 - instance-error.test (OTHER_FAULT)
  65 - symlink-recursive.test (OTHER_FAULT)
  66 - read-error.test (OTHER_FAULT)
  67 - disk-full.test (OTHER_FAULT)
  68 - symlink-follow2.test (OTHER_FAULT)
  70 - delete-too-old.test (OTHER_FAULT)
  71 - symlink-subdir.test (OTHER_FAULT)
  72 - cancel.test (OTHER_FAULT)
  73 - encrypt-detect.test (OTHER_FAULT)
  75 - bad-hostname.test (OTHER_FAULT)
  76 - delete-just-right.test (OTHER_FAULT)
  77 - special-chars.test (OTHER_FAULT)
  79 - delete-too-few.test (OTHER_FAULT)
  80 - nag.test (OTHER_FAULT)
  83 - disk-full2.test (OTHER_FAULT)
  84 - verify.test (OTHER_FAULT)
  86 - clean-tempdir.test (OTHER_FAULT)
  87 - symlink-exclude.test (OTHER_FAULT)
  88 - symlink-follow.test (OTHER_FAULT)
  89 - cancel-noop.test (OTHER_FAULT)
  91 - symlink-loop.test (OTHER_FAULT)
  92 - clean-incomplete.test (OTHER_FAULT)

In general:
I feel quite uncomfortable about this change claiming "dropping python support" by installing duplicity on the fly (and so, dropping it as a recommend).
First, I guess that duplicity will need to go to universe so that it's not pulled when we build the iso. Does it means that duplicity isn't supported officially anymore?
Secondly (and that's my main point), from the code and my understanding, duplicity is the only supported backend, right? Meaning, deja-dup is useless without it? That means that we will ship useless software by default and anyone who wants to do backups will then have to install duplicity, assuming it's supported by default as it's coming from an application which is supported. I feel this is just ticking up a box "no python2 on the install" where it's lying to ourself: most of users will still have python2 installed if we apply the same semantic to multiple projects. That's the reason I don't feel that this change is fully right.

Of course, if déjà-dup works well without duplicity for other form of backups, I withdraw that comment :)

review: Needs Fixing
Michael Terry (mterry) wrote :

@didier, thanks for looking at this!

re: tests, guh! LP doesn't see the failures and I don't see the failures. I don't know what you and Ken have going on. (timezones? locale? -- I will look for something along those lines that could fail the tests).

Regarding your broader point about this approach:

- Yes, duplicity is the only supported backend.

- We don't plan to demote duplicity, we'll leave it in main. It will still be supported. This is just a step on the path to python3-only-in-main. Eventually we will have to port it. (to keep it off the image, we'll move it to a Suggests for deja-dup -- and let the other derivatives know that they need to seed duplicity if they want to keep shipping it on their own images)

- Landscape is a precedent for shipping a hook for functionality that then installs the rest.

- I wasn't going to be able to commit the time necessary to port duplicity to python3 for 16.04. So it's either this or dropping deja-dup unless a volunteer does it -- patches welcome... ;) And I think keeping a user interaction point to nudge people towards backups is better than dropping it from the image.

- We aren't lying to ourselves so much as iterating and reducing the scope of python2 installs. It's still in main. We're working on that over time. And maybe if duplicity remains python2, we'll eventually drop deja-dup. But for 16.04, we're shooting for the base install not having python2 anymore (which is not nothing -- CVEs & bugs affecting python2 will no longer affect every single Ubuntu user; only some of them).

- Note that this MP itself doesn't actually change anything in Ubuntu. This debian/ packaging is just for the upstream PPA (and doesn't even drop duplicity to a Suggests). Your broader concerns are really about the planned followup MP for the deja-dup packaging that updates to this code and then will drop duplicity to a Suggests for Ubuntu. But talking about them here is fine and good. But maybe shouldn't be a blocker for *this* change.

Didier Roche (didrocks) wrote :

I'm happy with your answers, even if I still think that brings to "we ditched python2 from the default installed, woooww" at the price of lost functionality that will never be properly fixed. This as well shift the focus on fixing the real issue bringing less pressure to it (and so, will probably never be done) but as you told, it's more a personal opinion than something on this MP itself which is more for upstream déjà-dup.

On the tests, using default sbuild, it shouldn't have any timezone/locale specific issue. I'm building on amd64. Can you reproduce the issue this way?
$ bzr bd -S; cd ..
$ sudo sbuild-launchpad-chroot create -n xenial -s xenial -a amd64
$ sbuild --dist=xenial --arch=amd64 -c xenial deja-dup_0.dsc

(I'm building without -proposed, I can try with it if that's the issue? Note that I tried as well with a wily chroot)

lp:~mterry/deja-dup/no-python2 updated on 2015-11-24
1553. By Michael Terry on 2015-11-24

Merge from trunk

Michael Terry (mterry) wrote :

@didrocks, fixed the build in sbuild. So I think this branch should be good? (if tests pass for you)

As discussed on IRC, I think you are also reluctantly on board with landing this change + duplicity-as-Suggests in Ubuntu?

Didier Roche (didrocks) wrote :

I did another run on xenial or wily sbuild and still got one error that I can reproduce reliably:
      Start 66: read-error.test
66/93 Test #66: read-error.test ..........................***Exception: Other 6.90 sec
/scripts/read-error: DUPLICITY: WARNING 10 '/blarg'

DUPLICITY: WARNING 10 '/sbuild-nonexistent/1'

DUPLICITY: WARNING 10 '/sbuild-nonexistent/2'

** (./test-runner:29958): WARNING **: runner.vala:287: Detail didn't match; expected Could not back up the following files. Please make sure you are able to open them.

/sbuild-nonexistent/1
/sbuild-nonexistent/2, got (null)

      Start 67: disk-full.test

All the other tests are fixed, nice work! Do not hesitate to ask if you want more debug info if you can't reproduce this one.

"Reluctant" is the word ;) for the reasons we discussed on IRC (shifting the focus, claiming that we removed python3 from the CD which isn't really the truth if you want to use all features that we ship by default), but I understand the constraints and anyway, from a pure upstream perspective, the change is fine.

lp:~mterry/deja-dup/no-python2 updated on 2015-11-25
1554. By Michael Terry on 2015-11-25

Merge from trunk

Michael Terry (mterry) wrote :

Guh, stupid HOME tests. I ctrl+c'd the tests once I saw they were passing. Wanted to save myself a whole minute, but I would have seen this failure if I waited. :)

Fixed now. They all pass for me in sbuild.

Didier Roche (didrocks) wrote :

Yeah, it's passing now, +1 then :)

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'CMakeLists.txt'
--- CMakeLists.txt 2015-11-04 21:35:23 +0000
+++ CMakeLists.txt 2015-11-25 14:11:44 +0000
@@ -35,8 +35,12 @@
35deja_check_modules(GTK REQUIRED gtk+-3.0>=3.6)35deja_check_modules(GTK REQUIRED gtk+-3.0>=3.6)
36deja_check_modules(NOTIFY REQUIRED libnotify>=0.7)36deja_check_modules(NOTIFY REQUIRED libnotify>=0.7)
37deja_check_modules(PEAS REQUIRED libpeas-1.0)37deja_check_modules(PEAS REQUIRED libpeas-1.0)
38deja_check_modules(PK REQUIRED packagekit-glib2)
38deja_check_modules(SECRET REQUIRED libsecret-1)39deja_check_modules(SECRET REQUIRED libsecret-1)
3940
41# This is obnoxious.
42set(PK_CFLAGS "${PK_CFLAGS} -DI_KNOW_THE_PACKAGEKIT_GLIB2_API_IS_SUBJECT_TO_CHANGE")
43
40deja_enable_option(NAUTILUS libnautilus-extension)44deja_enable_option(NAUTILUS libnautilus-extension)
41if(ENABLE_NAUTILUS)45if(ENABLE_NAUTILUS)
42 execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=extensiondir libnautilus-extension46 execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=extensiondir libnautilus-extension
4347
=== modified file 'debian/control'
--- debian/control 2015-11-20 20:08:03 +0000
+++ debian/control 2015-11-25 14:11:44 +0000
@@ -13,6 +13,7 @@
13 libgtk-3-dev (>= 3.6),13 libgtk-3-dev (>= 3.6),
14 libnautilus-extension-dev (>= 3.0),14 libnautilus-extension-dev (>= 3.0),
15 libnotify-dev (>= 0.7),15 libnotify-dev (>= 0.7),
16 libpackagekit-glib2-dev,
16 libpeas-dev,17 libpeas-dev,
17 libsecret-1-dev,18 libsecret-1-dev,
18 libunity-control-center-dev,19 libunity-control-center-dev,
@@ -28,9 +29,9 @@
28Pre-Depends: ${misc:Pre-Depends},29Pre-Depends: ${misc:Pre-Depends},
29Depends: ${misc:Depends},30Depends: ${misc:Depends},
30 ${shlibs:Depends},31 ${shlibs:Depends},
31 duplicity (>= 0.6.23),
32 gnome-icon-theme-symbolic,32 gnome-icon-theme-symbolic,
33Recommends: deja-dup-backend-gvfs,33Recommends: deja-dup-backend-gvfs,
34 duplicity (>= 0.6.23),
34 policykit-1,35 policykit-1,
35Suggests: deja-dup-backend-cloudfiles,36Suggests: deja-dup-backend-cloudfiles,
36 deja-dup-backend-s3,37 deja-dup-backend-s3,
3738
=== modified file 'deja-dup/preferences/CMakeLists.txt'
--- deja-dup/preferences/CMakeLists.txt 2015-11-04 21:35:23 +0000
+++ deja-dup/preferences/CMakeLists.txt 2015-11-25 14:11:44 +0000
@@ -27,24 +27,25 @@
27 CUSTOM_VAPIS ${CMAKE_BINARY_DIR}/libdeja/deja.vapi27 CUSTOM_VAPIS ${CMAKE_BINARY_DIR}/libdeja/deja.vapi
28 ${CMAKE_BINARY_DIR}/deja-dup/widgets/widgets.vapi28 ${CMAKE_BINARY_DIR}/deja-dup/widgets/widgets.vapi
29 ${CMAKE_SOURCE_DIR}/vapi/config.vapi29 ${CMAKE_SOURCE_DIR}/vapi/config.vapi
30 ${CMAKE_SOURCE_DIR}/vapi/packagekit-glib2.vapi
30 OPTIONS ${COMMON_VFLAGS})31 OPTIONS ${COMMON_VFLAGS})
31add_executable(deja-dup-preferences ${VALA_C})32add_executable(deja-dup-preferences ${VALA_C})
32target_link_libraries(deja-dup-preferences deja widgets ${GTK_LDFLAGS} ${NOTIFY_LDFLAGS} ${PEAS_LDFLAGS} ${SECRET_LDFLAGS})33target_link_libraries(deja-dup-preferences deja widgets ${GTK_LDFLAGS} ${NOTIFY_LDFLAGS} ${PEAS_LDFLAGS} ${PK_LDFLAGS} ${SECRET_LDFLAGS})
33set_target_properties(deja-dup-preferences PROPERTIES34set_target_properties(deja-dup-preferences PROPERTIES
34 INCLUDE_DIRECTORIES "${CMAKE_BINARY_DIR}/libdeja;${CMAKE_BINARY_DIR}/deja-dup/widgets"35 INCLUDE_DIRECTORIES "${CMAKE_BINARY_DIR}/libdeja;${CMAKE_BINARY_DIR}/deja-dup/widgets"
35 COMPILE_FLAGS "${GTK_CFLAGS} ${PEAS_CFLAGS} ${SECRET_CFLAGS} ${COMMON_CFLAGS}")36 COMPILE_FLAGS "${GTK_CFLAGS} ${PEAS_CFLAGS} ${PK_CFLAGS} ${SECRET_CFLAGS} ${COMMON_CFLAGS}")
36install(TARGETS deja-dup-preferences DESTINATION bin)37install(TARGETS deja-dup-preferences DESTINATION bin)
3738
38deja_merge_po(desktop deja-dup-preferences.desktop "${CMAKE_INSTALL_FULL_DATADIR}/applications")39deja_merge_po(desktop deja-dup-preferences.desktop "${CMAKE_INSTALL_FULL_DATADIR}/applications")
3940
40if(ENABLE_UNITY_CCPANEL)41if(ENABLE_UNITY_CCPANEL)
41add_library(deja-dup-unity-ccpanel MODULE Preferences.c PreferencesPanel.c)42add_library(deja-dup-unity-ccpanel MODULE Preferences.c PreferencesPanel.c)
42target_link_libraries(deja-dup-unity-ccpanel deja widgets ${UNITY_CCPANEL_LDFLAGS} ${GTK_LDFLAGS} ${PEAS_LDFLAGS} ${SECRET_LDFLAGS})43target_link_libraries(deja-dup-unity-ccpanel deja widgets ${UNITY_CCPANEL_LDFLAGS} ${GTK_LDFLAGS} ${PEAS_LDFLAGS} ${PK_LDFLAGS} ${SECRET_LDFLAGS})
43set_target_properties(deja-dup-unity-ccpanel PROPERTIES44set_target_properties(deja-dup-unity-ccpanel PROPERTIES
44 OUTPUT_NAME deja-dup45 OUTPUT_NAME deja-dup
45 LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/unity-ccpanel"46 LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/unity-ccpanel"
46 INCLUDE_DIRECTORIES "${CMAKE_BINARY_DIR}/libdeja;${CMAKE_BINARY_DIR}/deja-dup/widgets"47 INCLUDE_DIRECTORIES "${CMAKE_BINARY_DIR}/libdeja;${CMAKE_BINARY_DIR}/deja-dup/widgets"
47 COMPILE_FLAGS "-DUSE_UNITY ${UNITY_CCPANEL_CFLAGS} ${GTK_CFLAGS} ${PEAS_CFLAGS} ${SECRET_CFLAGS} ${COMMON_CFLAGS}")48 COMPILE_FLAGS "-DUSE_UNITY ${UNITY_CCPANEL_CFLAGS} ${GTK_CFLAGS} ${PEAS_CFLAGS} ${PK_CFLAGS} ${SECRET_CFLAGS} ${COMMON_CFLAGS}")
48install(TARGETS deja-dup-unity-ccpanel DESTINATION "${UNITY_CCPANEL_EXTENSIONDIR}")49install(TARGETS deja-dup-unity-ccpanel DESTINATION "${UNITY_CCPANEL_EXTENSIONDIR}")
4950
50deja_merge_po(desktop unity-deja-dup-panel.desktop "${CMAKE_INSTALL_FULL_DATADIR}/applications")51deja_merge_po(desktop unity-deja-dup-panel.desktop "${CMAKE_INSTALL_FULL_DATADIR}/applications")
5152
=== modified file 'deja-dup/preferences/Preferences.vala'
--- deja-dup/preferences/Preferences.vala 2013-10-27 16:41:23 +0000
+++ deja-dup/preferences/Preferences.vala 2015-11-25 14:11:44 +0000
@@ -33,17 +33,26 @@
3333
34public class Preferences : Gtk.Grid34public class Preferences : Gtk.Grid
35{35{
36 public bool show_auto_switch {get; construct;}36 public DejaDup.PreferencesPeriodicSwitch auto_switch {get; set; default = null;}
37 public bool duplicity_installed {get; private set; default = false;}
3738
38 Gtk.Widget backup_button;39 DejaDup.ConfigLabelDescription backup_desc;
39 Gtk.Widget restore_button;40 Gtk.Button backup_button;
41 Gtk.ProgressBar backup_progress;
42 DejaDup.ConfigLabelDescription restore_desc;
43 Gtk.Button restore_button;
44 Gtk.ProgressBar restore_progress;
40 uint bus_watch_id = 0;45 uint bus_watch_id = 0;
41 static const int PAGE_HMARGIN = 24;46 static const int PAGE_HMARGIN = 24;
42 static const int PAGE_VMARGIN = 12;47 static const int PAGE_VMARGIN = 12;
4348
44 public Preferences(bool show_auto_switch)49 public Preferences(DejaDup.PreferencesPeriodicSwitch? auto_switch)
45 {50 {
46 Object(show_auto_switch: show_auto_switch);51 Object(auto_switch: auto_switch);
52
53 // Set initial switch sensitivity, but for some odd reason we can't set
54 // this earlier. Even if at the end of the constructor, it gets reset...
55 auto_switch.sensitive = duplicity_installed;
47 }56 }
4857
49 ~Preferences() {58 ~Preferences() {
@@ -53,6 +62,64 @@
53 }62 }
54 }63 }
5564
65 async void install_duplicity()
66 {
67 backup_button.sensitive = false;
68 restore_button.sensitive = false;
69
70 try {
71 var task = new Pk.Task();
72 var results = yield task.resolve_async(Pk.Filter.NOT_INSTALLED, {"duplicity"}, null, () => {});
73 if (results != null && results.get_error_code () == null) {
74
75 // Convert from List to array (I don't know why the API couldn't be friendlier...)
76 var package_array = results.get_package_array();
77 var package_ids = new string[package_array.length + 1];
78 package_ids[package_array.length] = null;
79 for (var i = 0; i < package_array.length; i++) {
80 package_ids[i] = package_array.data[i].get_id();
81 }
82
83 yield task.install_packages_async(package_ids, null, (p, t) => {
84 backup_progress.fraction = p.percentage / 100.0;
85 restore_progress.fraction = p.percentage / 100.0;
86 });
87
88 duplicity_installed = Environment.find_program_in_path("duplicity") != null;
89 if (duplicity_installed) {
90 backup_desc.everything_installed = true;
91 backup_button.label = _("_Back Up Now…");
92 restore_desc.everything_installed = true;
93 restore_button.label = _("_Restore…");
94 auto_switch.sensitive = true;
95 }
96 }
97 }
98 catch (Error e) {
99 // We don't want to show authorization errors -- either the user clicked
100 // cancel or already entered password several times. Don't need to warn them.
101 // Oddly enough, I couldn't get error matching to work for this. Maybe the
102 // policykit bindings I copied are incomplete.
103 if (e.message.contains("org.freedesktop.PolicyKit.Error.NotAuthorized")) {
104 warning("%s\n", e.message);
105 } else {
106 Gtk.MessageDialog dlg = new Gtk.MessageDialog (get_toplevel() as Gtk.Window,
107 Gtk.DialogFlags.DESTROY_WITH_PARENT | Gtk.DialogFlags.MODAL,
108 Gtk.MessageType.ERROR,
109 Gtk.ButtonsType.OK,
110 "%s", _("Could not install"));
111 dlg.format_secondary_text("%s", e.message);
112 dlg.run();
113 destroy_widget(dlg);
114 }
115 }
116
117 backup_progress.visible = false;
118 restore_progress.visible = false;
119 backup_button.sensitive = true;
120 restore_button.sensitive = true;
121 }
122
56 Gtk.Widget make_settings_page()123 Gtk.Widget make_settings_page()
57 {124 {
58 var settings_page = new Gtk.Grid();125 var settings_page = new Gtk.Grid();
@@ -117,24 +184,38 @@
117 w = new DejaDup.ConfigLabelBackupDate(DejaDup.ConfigLabelBackupDate.Kind.LAST);184 w = new DejaDup.ConfigLabelBackupDate(DejaDup.ConfigLabelBackupDate.Kind.LAST);
118 w.halign = Gtk.Align.START;185 w.halign = Gtk.Align.START;
119 w.valign = Gtk.Align.START;186 w.valign = Gtk.Align.START;
120 table.attach(w, 1, row, 1, 1);187 table.attach(w, 1, row, 2, 1);
121 ++row;188 ++row;
122189
123 w = new DejaDup.ConfigLabelDescription(DejaDup.ConfigLabelDescription.Kind.RESTORE);190 w = new DejaDup.ConfigLabelDescription(DejaDup.ConfigLabelDescription.Kind.RESTORE, duplicity_installed);
124 w.halign = Gtk.Align.START;191 w.halign = Gtk.Align.START;
125 w.valign = Gtk.Align.START;192 w.valign = Gtk.Align.START;
126 table.attach(w, 1, row, 1, 1);193 restore_desc = w as DejaDup.ConfigLabelDescription;
194 table.attach(w, 1, row, 2, 1);
127 ++row;195 ++row;
128196
129 w = new Gtk.Button.with_mnemonic(_("_Restore…"));197 w = new Gtk.Button.with_mnemonic(duplicity_installed ? _("_Restore…") : _("_Install…"));
130 w.margin_top = 6;198 w.margin_top = 6;
131 w.halign = Gtk.Align.START;199 w.halign = Gtk.Align.START;
200 w.expand = false;
132 (w as Gtk.Button).clicked.connect((b) => {201 (w as Gtk.Button).clicked.connect((b) => {
133 run_deja_dup("--restore", b.get_display().get_app_launch_context());202 if (duplicity_installed) {
203 run_deja_dup("--restore", b.get_display().get_app_launch_context());
204 } else {
205 restore_progress.visible = true;
206 install_duplicity.begin();
207 }
134 });208 });
135 restore_button = w;209 restore_button = w as Gtk.Button;
136 label_sizes.add_widget(w);210 label_sizes.add_widget(w);
137 table.attach(w, 1, row, 1, 1);211 table.attach(w, 1, row, 1, 1);
212 w = new Gtk.ProgressBar();
213 w.halign = Gtk.Align.START;
214 w.valign = Gtk.Align.CENTER;
215 w.hexpand = true;
216 w.no_show_all = true;
217 restore_progress = w as Gtk.ProgressBar;
218 table.attach(w, 2, row, 1, 1);
138 ++row;219 ++row;
139220
140 w = new Gtk.Grid(); // spacer221 w = new Gtk.Grid(); // spacer
@@ -149,24 +230,38 @@
149 w = new DejaDup.ConfigLabelBackupDate(DejaDup.ConfigLabelBackupDate.Kind.NEXT);230 w = new DejaDup.ConfigLabelBackupDate(DejaDup.ConfigLabelBackupDate.Kind.NEXT);
150 w.halign = Gtk.Align.START;231 w.halign = Gtk.Align.START;
151 w.valign = Gtk.Align.START;232 w.valign = Gtk.Align.START;
152 table.attach(w, 1, row, 1, 1);233 table.attach(w, 1, row, 2, 1);
153 ++row;234 ++row;
154235
155 w = new DejaDup.ConfigLabelDescription(DejaDup.ConfigLabelDescription.Kind.BACKUP);236 w = new DejaDup.ConfigLabelDescription(DejaDup.ConfigLabelDescription.Kind.BACKUP, duplicity_installed);
156 w.halign = Gtk.Align.START;237 w.halign = Gtk.Align.START;
157 w.valign = Gtk.Align.START;238 w.valign = Gtk.Align.START;
158 table.attach(w, 1, row, 1, 1);239 backup_desc = w as DejaDup.ConfigLabelDescription;
240 table.attach(w, 1, row, 2, 1);
159 ++row;241 ++row;
160242
161 w = new Gtk.Button.with_mnemonic(_("_Back Up Now…"));243 w = new Gtk.Button.with_mnemonic(duplicity_installed ? _("_Back Up Now…") : _("Install…"));
162 w.margin_top = 6;244 w.margin_top = 6;
163 w.halign = Gtk.Align.START;245 w.halign = Gtk.Align.START;
246 w.expand = false;
164 (w as Gtk.Button).clicked.connect((b) => {247 (w as Gtk.Button).clicked.connect((b) => {
165 run_deja_dup("--backup", b.get_display().get_app_launch_context());248 if (duplicity_installed) {
249 run_deja_dup("--backup", b.get_display().get_app_launch_context());
250 } else {
251 backup_progress.visible = true;
252 install_duplicity.begin();
253 }
166 });254 });
167 backup_button = w;255 backup_button = w as Gtk.Button;
168 label_sizes.add_widget(w);256 label_sizes.add_widget(w);
169 table.attach(w, 1, row, 1, 1);257 table.attach(w, 1, row, 1, 1);
258 w = new Gtk.ProgressBar();
259 w.halign = Gtk.Align.START;
260 w.valign = Gtk.Align.CENTER;
261 w.hexpand = true;
262 w.no_show_all = true;
263 backup_progress = w as Gtk.ProgressBar;
264 table.attach(w, 2, row, 1, 1);
170 ++row;265 ++row;
171266
172 bus_watch_id = Bus.watch_name(BusType.SESSION, "org.gnome.DejaDup.Operation",267 bus_watch_id = Bus.watch_name(BusType.SESSION, "org.gnome.DejaDup.Operation",
@@ -247,13 +342,12 @@
247 table.halign = Gtk.Align.CENTER;342 table.halign = Gtk.Align.CENTER;
248 row = 0;343 row = 0;
249344
250 if (show_auto_switch) {345 if (auto_switch == null) {
251 var align = new Gtk.Alignment(0.0f, 0.5f, 0.0f, 0.0f);346 var align = new Gtk.Alignment(0.0f, 0.5f, 0.0f, 0.0f);
252 var @switch = new Gtk.Switch();347 auto_switch = new DejaDup.PreferencesPeriodicSwitch();
253 settings.bind(DejaDup.PERIODIC_KEY, @switch, "active", SettingsBindFlags.DEFAULT);348 align.add(auto_switch);
254 align.add(@switch);
255 label = new Gtk.Label.with_mnemonic(_("_Automatic backup"));349 label = new Gtk.Label.with_mnemonic(_("_Automatic backup"));
256 label.mnemonic_widget = @switch;350 label.mnemonic_widget = auto_switch;
257 label.xalign = 1.0f;351 label.xalign = 1.0f;
258 table.attach(label, 0, row, 1, 1);352 table.attach(label, 0, row, 1, 1);
259 table.attach(align, 1, row, 1, 1);353 table.attach(align, 1, row, 1, 1);
@@ -318,6 +412,7 @@
318 }412 }
319413
320 construct {414 construct {
415 duplicity_installed = Environment.find_program_in_path("duplicity") != null;
321 add(make_settings_page());416 add(make_settings_page());
322 set_size_request(-1, 400);417 set_size_request(-1, 400);
323 }418 }
324419
=== modified file 'deja-dup/preferences/PreferencesPanel.c'
--- deja-dup/preferences/PreferencesPanel.c 2015-11-04 21:35:23 +0000
+++ deja-dup/preferences/PreferencesPanel.c 2015-11-25 14:11:44 +0000
@@ -25,16 +25,16 @@
25#include <libunity-control-center/cc-panel.h>25#include <libunity-control-center/cc-panel.h>
26#include "widgets.h"26#include "widgets.h"
2727
28extern void* deja_dup_preferences_new (gboolean show_auto_switch);
29
30#define DEJA_DUP_TYPE_PREFERENCES_PANEL deja_dup_preferences_panel_get_type()28#define DEJA_DUP_TYPE_PREFERENCES_PANEL deja_dup_preferences_panel_get_type()
3129
32typedef struct _DejaDupPreferencesPanel DejaDupPreferencesPanel;30typedef struct _DejaDupPreferencesPanel DejaDupPreferencesPanel;
33typedef struct _DejaDupPreferencesPanelClass DejaDupPreferencesPanelClass;31typedef struct _DejaDupPreferencesPanelClass DejaDupPreferencesPanelClass;
32typedef struct _DejaDupPreferencesPeriodicSwitch DejaDupPreferencesPeriodicSwitch;
3433
35struct _DejaDupPreferencesPanel34struct _DejaDupPreferencesPanel
36{35{
37 CcPanel parent;36 CcPanel parent;
37 DejaDupPreferencesPeriodicSwitch *auto_switch;
38};38};
3939
40struct _DejaDupPreferencesPanelClass40struct _DejaDupPreferencesPanelClass
@@ -44,6 +44,9 @@
4444
45G_DEFINE_DYNAMIC_TYPE (DejaDupPreferencesPanel, deja_dup_preferences_panel, CC_TYPE_PANEL)45G_DEFINE_DYNAMIC_TYPE (DejaDupPreferencesPanel, deja_dup_preferences_panel, CC_TYPE_PANEL)
4646
47extern void* deja_dup_preferences_new (DejaDupPreferencesPeriodicSwitch *auto_switch);
48extern DejaDupPreferencesPeriodicSwitch* deja_dup_preferences_periodic_switch_new (void);
49
47static void50static void
48deja_dup_preferences_panel_class_finalize (DejaDupPreferencesPanelClass *klass)51deja_dup_preferences_panel_class_finalize (DejaDupPreferencesPanelClass *klass)
49{52{
@@ -53,13 +56,11 @@
53deja_dup_preferences_panel_constructed (GObject *object)56deja_dup_preferences_panel_constructed (GObject *object)
54{57{
55 CcPanel *panel = CC_PANEL (object);58 CcPanel *panel = CC_PANEL (object);
59 DejaDupPreferencesPanel *self = (DejaDupPreferencesPanel*)object;
5660
57 G_OBJECT_CLASS (deja_dup_preferences_panel_parent_class)->constructed (object);61 G_OBJECT_CLASS (deja_dup_preferences_panel_parent_class)->constructed (object);
5862
59 GtkWidget *switcher = GTK_WIDGET (deja_dup_preferences_periodic_switch_new ());63 cc_shell_embed_widget_in_header (cc_panel_get_shell (panel), GTK_WIDGET (self->auto_switch));
60 gtk_widget_set_valign (switcher, GTK_ALIGN_CENTER);
61 gtk_widget_show_all (switcher);
62 cc_shell_embed_widget_in_header (cc_panel_get_shell (panel), switcher);
63}64}
6465
65static const char *66static const char *
@@ -81,7 +82,11 @@
81static void82static void
82deja_dup_preferences_panel_init (DejaDupPreferencesPanel *self)83deja_dup_preferences_panel_init (DejaDupPreferencesPanel *self)
83{84{
84 GtkWidget *widget = GTK_WIDGET (deja_dup_preferences_new (FALSE));85 self->auto_switch = deja_dup_preferences_periodic_switch_new ();
86 gtk_widget_set_valign (GTK_WIDGET (self->auto_switch), GTK_ALIGN_CENTER);
87 gtk_widget_show_all (GTK_WIDGET (self->auto_switch));
88
89 GtkWidget *widget = GTK_WIDGET (deja_dup_preferences_new (self->auto_switch));
85 gtk_container_set_border_width (GTK_CONTAINER (widget), 6); // g-c-c adds 690 gtk_container_set_border_width (GTK_CONTAINER (widget), 6); // g-c-c adds 6
86 gtk_widget_show_all (widget);91 gtk_widget_show_all (widget);
87 gtk_container_add (GTK_CONTAINER (self), widget);92 gtk_container_add (GTK_CONTAINER (self), widget);
8893
=== modified file 'deja-dup/preferences/preferences-main.vala'
--- deja-dup/preferences/preferences-main.vala 2013-10-16 05:34:37 +0000
+++ deja-dup/preferences/preferences-main.vala 2015-11-25 14:11:44 +0000
@@ -36,26 +36,24 @@
36 list.data.present_with_time(Gtk.get_current_event_time());36 list.data.present_with_time(Gtk.get_current_event_time());
37 else {37 else {
38 // We're first instance. Yay!38 // We're first instance. Yay!
39 bool show_auto_switch = true;
4039
41 var dlg = new Gtk.ApplicationWindow(this);40 var dlg = new Gtk.ApplicationWindow(this);
42 // Translators: "Backups" is a noun41 // Translators: "Backups" is a noun
43 dlg.title = _("Backups");42 dlg.title = _("Backups");
44 dlg.resizable = false;43 dlg.resizable = false;
4544
45 DejaDup.PreferencesPeriodicSwitch auto_switch = null;
46#if HAVE_GTK_3_1046#if HAVE_GTK_3_10
47 show_auto_switch = false;
48
49 var header = new Gtk.HeaderBar();47 var header = new Gtk.HeaderBar();
50 header.show_close_button = true;48 header.show_close_button = true;
51 dlg.set_titlebar(header);49 dlg.set_titlebar(header);
5250
53 var switcher = new DejaDup.PreferencesPeriodicSwitch();51 auto_switch = new DejaDup.PreferencesPeriodicSwitch();
54 switcher.valign = Gtk.Align.CENTER;52 auto_switch.valign = Gtk.Align.CENTER;
55 header.pack_end(switcher);53 header.pack_end(auto_switch);
56#endif54#endif
5755
58 var prefs = new DejaDup.Preferences(show_auto_switch);56 var prefs = new DejaDup.Preferences(auto_switch);
59 prefs.border_width = 12;57 prefs.border_width = 12;
60 dlg.add(prefs);58 dlg.add(prefs);
61 dlg.set_application(this);59 dlg.set_application(this);
6260
=== modified file 'deja-dup/widgets/ConfigLabelDescription.vala'
--- deja-dup/widgets/ConfigLabelDescription.vala 2014-01-10 23:06:26 +0000
+++ deja-dup/widgets/ConfigLabelDescription.vala 2015-11-25 14:11:44 +0000
@@ -25,10 +25,11 @@
25{25{
26 public enum Kind {BACKUP, RESTORE}26 public enum Kind {BACKUP, RESTORE}
27 public Kind kind {get; construct;}27 public Kind kind {get; construct;}
28 public bool everything_installed {get; set;}
2829
29 public ConfigLabelDescription(Kind kind)30 public ConfigLabelDescription(Kind kind, bool everything_installed)
30 {31 {
31 Object(kind: kind);32 Object(kind: kind, everything_installed: everything_installed);
32 }33 }
3334
34 construct {35 construct {
@@ -37,6 +38,9 @@
37 watch_key(DejaDup.PERIODIC_KEY);38 watch_key(DejaDup.PERIODIC_KEY);
38 watch_key(DejaDup.PERIODIC_PERIOD_KEY);39 watch_key(DejaDup.PERIODIC_PERIOD_KEY);
39 }40 }
41 notify["everything-installed"].connect((s, p) => {
42 set_from_config.begin();
43 });
40 }44 }
4145
42 protected override void fill_box()46 protected override void fill_box()
@@ -51,6 +55,12 @@
5155
52 void set_from_config_restore()56 void set_from_config_restore()
53 {57 {
58 if (!everything_installed) {
59 var button_name = "<b>%s</b>".printf(_("Install…"));
60 label.label = _("You can restore existing backups after you first install some necessary software by clicking the %s button.").printf(button_name);
61 return;
62 }
63
54 var val = DejaDup.last_run_date(DejaDup.TimestampType.BACKUP);64 var val = DejaDup.last_run_date(DejaDup.TimestampType.BACKUP);
5565
56 // This here encodes a lot of outside GUI information in this widget,66 // This here encodes a lot of outside GUI information in this widget,
@@ -67,6 +77,12 @@
6777
68 void set_from_config_backup()78 void set_from_config_backup()
69 {79 {
80 if (!everything_installed) {
81 var button_name = "<b>%s</b>".printf(_("Install…"));
82 label.label = _("You can create a backup after you first install some necessary software by clicking the %s button.").printf(button_name);
83 return;
84 }
85
70 var next = DejaDup.next_run_date();86 var next = DejaDup.next_run_date();
71 if (next == null) {87 if (next == null) {
72 var button_name = "<b>%s</b>".printf(_("Back Up Now…"));88 var button_name = "<b>%s</b>".printf(_("Back Up Now…"));
7389
=== modified file 'libdeja/AsyncCommand.vala'
--- libdeja/AsyncCommand.vala 2011-06-28 15:48:17 +0000
+++ libdeja/AsyncCommand.vala 2015-11-25 14:11:44 +0000
@@ -53,12 +53,15 @@
53 SpawnFlags.STDERR_TO_DEV_NULL |53 SpawnFlags.STDERR_TO_DEV_NULL |
54 SpawnFlags.DO_NOT_REAP_CHILD |54 SpawnFlags.DO_NOT_REAP_CHILD |
55 SpawnFlags.SEARCH_PATH,55 SpawnFlags.SEARCH_PATH,
56 null, out pid))56 null, out pid)) {
57 done(false);57 done(false);
58 return;
59 }
58 }60 }
59 catch (Error e) {61 catch (Error e) {
60 warning("%s\n", e.message);62 warning("%s\n", e.message);
61 done(false);63 done(false);
64 return;
62 }65 }
6366
64 watch = ChildWatch.add(pid, handle_done);67 watch = ChildWatch.add(pid, handle_done);
6568
=== added file 'vapi/packagekit-glib2.vapi'
--- vapi/packagekit-glib2.vapi 1970-01-01 00:00:00 +0000
+++ vapi/packagekit-glib2.vapi 2015-11-25 14:11:44 +0000
@@ -0,0 +1,1371 @@
1/* packagekit-glib2.vapi generated by vapigen-0.28, do not modify. */
2
3[CCode (cprefix = "Pk", gir_namespace = "PackageKitGlib", gir_version = "1.0", lower_case_cprefix = "pk_")]
4namespace Pk {
5 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", type_id = "pk_category_get_type ()")]
6 public class Category : Pk.Source {
7 [CCode (has_construct_function = false)]
8 public Category ();
9 public unowned string get_icon ();
10 public unowned string get_id ();
11 public unowned string get_name ();
12 public unowned string get_parent_id ();
13 public unowned string get_summary ();
14 public void set_icon (string icon);
15 public void set_id (string cat_id);
16 public void set_name (string name);
17 public void set_parent_id (string parent_id);
18 public void set_summary (string summary);
19 [NoAccessorMethod]
20 public string cat_id { owned get; set; }
21 public string icon { get; set; }
22 public string name { get; set; }
23 public string parent_id { get; set; }
24 public string summary { get; set; }
25 }
26 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", type_id = "pk_client_get_type ()")]
27 public class Client : GLib.Object {
28 [CCode (has_construct_function = false)]
29 public Client ();
30 public Pk.Results accept_eula (string eula_id, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
31 [CCode (finish_name = "pk_client_generic_finish")]
32 public async Pk.Results accept_eula_async (string eula_id, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
33 public Pk.Results adopt (string transaction_id, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
34 [CCode (finish_name = "pk_client_generic_finish")]
35 public async Pk.Results adopt_async (string transaction_id, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
36 [NoWrapper]
37 public virtual void changed ();
38 public Pk.Results depends_on (Pk.Bitfield filters, [CCode (array_length = false, array_null_terminated = true)] string[] package_ids, bool recursive, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
39 [CCode (finish_name = "pk_client_generic_finish")]
40 public async Pk.Results depends_on_async (Pk.Bitfield filters, [CCode (array_length = false, array_null_terminated = true)] string[] package_ids, bool recursive, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
41 public Pk.Results download_packages ([CCode (array_length = false, array_null_terminated = true)] string[] package_ids, string directory, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
42 [CCode (finish_name = "pk_client_generic_finish")]
43 public async Pk.Results download_packages_async ([CCode (array_length = false, array_null_terminated = true)] string[] package_ids, string directory, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
44 public bool get_background ();
45 public uint get_cache_age ();
46 public Pk.Results get_categories (GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
47 [CCode (finish_name = "pk_client_generic_finish")]
48 public async Pk.Results get_categories_async (GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
49 public Pk.Results get_details ([CCode (array_length = false, array_null_terminated = true)] string[] package_ids, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
50 [CCode (finish_name = "pk_client_generic_finish")]
51 public async Pk.Results get_details_async ([CCode (array_length = false, array_null_terminated = true)] string[] package_ids, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
52 public Pk.Results get_details_local ([CCode (array_length = false, array_null_terminated = true)] string[] files, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
53 [CCode (finish_name = "pk_client_generic_finish")]
54 public async Pk.Results get_details_local_async ([CCode (array_length = false, array_null_terminated = true)] string[] files, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
55 public Pk.Results get_distro_upgrades (GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
56 [CCode (finish_name = "pk_client_generic_finish")]
57 public async Pk.Results get_distro_upgrades_async (GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
58 public Pk.Results get_files ([CCode (array_length = false, array_null_terminated = true)] string[] package_ids, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
59 [CCode (finish_name = "pk_client_generic_finish")]
60 public async Pk.Results get_files_async ([CCode (array_length = false, array_null_terminated = true)] string[] package_ids, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
61 public Pk.Results get_files_local ([CCode (array_length = false, array_null_terminated = true)] string[] files, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
62 [CCode (finish_name = "pk_client_generic_finish")]
63 public async Pk.Results get_files_local_async ([CCode (array_length = false, array_null_terminated = true)] string[] files, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
64 public bool get_idle ();
65 public bool get_interactive ();
66 public unowned string get_locale ();
67 public Pk.Results get_old_transactions (uint number, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
68 [CCode (finish_name = "pk_client_generic_finish")]
69 public async Pk.Results get_old_transactions_async (uint number, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
70 public Pk.Results get_packages (Pk.Bitfield filters, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
71 [CCode (finish_name = "pk_client_generic_finish")]
72 public async Pk.Results get_packages_async (Pk.Bitfield filters, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
73 public Pk.Progress get_progress (string transaction_id, GLib.Cancellable? cancellable = null) throws GLib.Error;
74 public async Pk.Progress get_progress_async (string transaction_id, GLib.Cancellable? cancellable) throws GLib.Error;
75 public Pk.Results get_repo_list (Pk.Bitfield filters, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
76 [CCode (finish_name = "pk_client_generic_finish")]
77 public async Pk.Results get_repo_list_async (Pk.Bitfield filters, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
78 public Pk.Results get_update_detail ([CCode (array_length = false, array_null_terminated = true)] string[] package_ids, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
79 [CCode (finish_name = "pk_client_generic_finish")]
80 public async Pk.Results get_update_detail_async ([CCode (array_length = false, array_null_terminated = true)] string[] package_ids, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
81 public Pk.Results get_updates (Pk.Bitfield filters, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
82 [CCode (finish_name = "pk_client_generic_finish")]
83 public async Pk.Results get_updates_async (Pk.Bitfield filters, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
84 public Pk.Results install_files (Pk.Bitfield transaction_flags, [CCode (array_length = false, array_null_terminated = true)] string[] files, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
85 [CCode (finish_name = "pk_client_generic_finish")]
86 public async Pk.Results install_files_async (Pk.Bitfield transaction_flags, [CCode (array_length = false, array_null_terminated = true)] string[] files, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
87 public Pk.Results install_packages (Pk.Bitfield transaction_flags, [CCode (array_length = false, array_null_terminated = true)] string[] package_ids, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
88 [CCode (finish_name = "pk_client_generic_finish")]
89 public async Pk.Results install_packages_async (Pk.Bitfield transaction_flags, [CCode (array_length = false, array_null_terminated = true)] string[] package_ids, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
90 public Pk.Results install_signature (Pk.SigType type, string key_id, string package_id, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
91 [CCode (finish_name = "pk_client_generic_finish")]
92 public async Pk.Results install_signature_async (Pk.SigType type, string key_id, string package_id, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
93 public Pk.Results refresh_cache (bool force, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
94 [CCode (finish_name = "pk_client_generic_finish")]
95 public async Pk.Results refresh_cache_async (bool force, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
96 public Pk.Results remove_packages (Pk.Bitfield transaction_flags, [CCode (array_length = false, array_null_terminated = true)] string[] package_ids, bool allow_deps, bool autoremove, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
97 [CCode (finish_name = "pk_client_generic_finish")]
98 public async Pk.Results remove_packages_async (Pk.Bitfield transaction_flags, [CCode (array_length = false, array_null_terminated = true)] string[] package_ids, bool allow_deps, bool autoremove, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
99 public Pk.Results repair_system (Pk.Bitfield transaction_flags, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
100 [CCode (finish_name = "pk_client_generic_finish")]
101 public async Pk.Results repair_system_async (Pk.Bitfield transaction_flags, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
102 public Pk.Results repo_enable (string repo_id, bool enabled, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
103 [CCode (finish_name = "pk_client_generic_finish")]
104 public async Pk.Results repo_enable_async (string repo_id, bool enabled, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
105 public Pk.Results repo_remove (Pk.Bitfield transaction_flags, string repo_id, bool autoremove, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
106 [CCode (finish_name = "pk_client_generic_finish")]
107 public async Pk.Results repo_remove_async (Pk.Bitfield transaction_flags, string repo_id, bool autoremove, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
108 public Pk.Results repo_set_data (string repo_id, string parameter, string value, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
109 [CCode (finish_name = "pk_client_generic_finish")]
110 public async Pk.Results repo_set_data_async (string repo_id, string parameter, string value, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
111 public Pk.Results required_by (Pk.Bitfield filters, [CCode (array_length = false, array_null_terminated = true)] string[] package_ids, bool recursive, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
112 [CCode (finish_name = "pk_client_generic_finish")]
113 public async Pk.Results required_by_async (Pk.Bitfield filters, [CCode (array_length = false, array_null_terminated = true)] string[] package_ids, bool recursive, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
114 public Pk.Results resolve (Pk.Bitfield filters, [CCode (array_length = false, array_null_terminated = true)] string[] packages, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
115 [CCode (finish_name = "pk_client_generic_finish")]
116 public async Pk.Results resolve_async (Pk.Bitfield filters, [CCode (array_length = false, array_null_terminated = true)] string[] packages, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
117 public Pk.Results search_details (Pk.Bitfield filters, [CCode (array_length = false, array_null_terminated = true)] string[] values, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
118 [CCode (finish_name = "pk_client_generic_finish")]
119 public async Pk.Results search_details_async (Pk.Bitfield filters, [CCode (array_length = false, array_null_terminated = true)] string[] values, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
120 public Pk.Results search_files (Pk.Bitfield filters, [CCode (array_length = false, array_null_terminated = true)] string[] values, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
121 [CCode (finish_name = "pk_client_generic_finish")]
122 public async Pk.Results search_files_async (Pk.Bitfield filters, [CCode (array_length = false, array_null_terminated = true)] string[] values, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
123 public Pk.Results search_groups (Pk.Bitfield filters, [CCode (array_length = false, array_null_terminated = true)] string[] values, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
124 [CCode (finish_name = "pk_client_generic_finish")]
125 public async Pk.Results search_groups_async (Pk.Bitfield filters, [CCode (array_length = false, array_null_terminated = true)] string[] values, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
126 public Pk.Results search_names (Pk.Bitfield filters, [CCode (array_length = false, array_null_terminated = true)] string[] values, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
127 [CCode (finish_name = "pk_client_generic_finish")]
128 public async Pk.Results search_names_async (Pk.Bitfield filters, [CCode (array_length = false, array_null_terminated = true)] string[] values, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
129 public void set_background (bool background);
130 public void set_cache_age (uint cache_age);
131 public void set_interactive (bool interactive);
132 public void set_locale (string locale);
133 public static void test (void* user_data);
134 public Pk.Results update_packages (Pk.Bitfield transaction_flags, [CCode (array_length = false, array_null_terminated = true)] string[] package_ids, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
135 [CCode (finish_name = "pk_client_generic_finish")]
136 public async Pk.Results update_packages_async (Pk.Bitfield transaction_flags, [CCode (array_length = false, array_null_terminated = true)] string[] package_ids, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
137 public Pk.Results what_provides (Pk.Bitfield filters, [CCode (array_length = false, array_null_terminated = true)] string[] values, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
138 [CCode (finish_name = "pk_client_generic_finish")]
139 public async Pk.Results what_provides_async (Pk.Bitfield filters, [CCode (array_length = false, array_null_terminated = true)] string[] values, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
140 public bool background { get; set; }
141 public uint cache_age { get; set; }
142 public bool idle { get; }
143 public bool interactive { get; set; }
144 public string locale { get; set; }
145 }
146 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", type_id = "pk_client_helper_get_type ()")]
147 public class ClientHelper : GLib.Object {
148 [CCode (has_construct_function = false)]
149 public ClientHelper ();
150 public bool start (string socket_filename, string argv, string envp) throws GLib.Error;
151 public bool stop () throws GLib.Error;
152 }
153 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", type_id = "pk_control_get_type ()")]
154 public class Control : GLib.Object {
155 [CCode (has_construct_function = false)]
156 public Control ();
157 public async Pk.Authorize can_authorize_async (string action_id, GLib.Cancellable? cancellable) throws GLib.Error;
158 [NoWrapper]
159 public virtual void connection_changed (bool connected);
160 public async string get_daemon_state_async (GLib.Cancellable? cancellable) throws GLib.Error;
161 public bool get_properties (GLib.Cancellable? cancellable = null) throws GLib.Error;
162 public async bool get_properties_async (GLib.Cancellable? cancellable) throws GLib.Error;
163 public async string get_tid_async (GLib.Cancellable? cancellable) throws GLib.Error;
164 public async uint get_time_since_action_async (Pk.Role role, GLib.Cancellable? cancellable) throws GLib.Error;
165 [CCode (array_length = false, array_null_terminated = true)]
166 public string[] get_transaction_list (GLib.Cancellable? cancellable = null) throws GLib.Error;
167 [CCode (array_length = false, array_null_terminated = true)]
168 public async string[] get_transaction_list_async (GLib.Cancellable? cancellable) throws GLib.Error;
169 [NoWrapper]
170 public virtual void network_state_changed ();
171 public bool set_proxy (string proxy_http, string proxy_ftp, GLib.Cancellable? cancellable = null) throws GLib.Error;
172 public bool set_proxy2 (string proxy_http, string proxy_https, string proxy_ftp, string proxy_socks, string no_proxy, string pac, GLib.Cancellable? cancellable = null) throws GLib.Error;
173 public async void set_proxy2_async (string proxy_http, string proxy_https, string proxy_ftp, string proxy_socks, string no_proxy, string pac, GLib.Cancellable? cancellable);
174 public async bool set_proxy_async (string proxy_http, string proxy_ftp, GLib.Cancellable? cancellable) throws GLib.Error;
175 public bool suggest_daemon_quit (GLib.Cancellable? cancellable = null) throws GLib.Error;
176 public async bool suggest_daemon_quit_async (GLib.Cancellable? cancellable) throws GLib.Error;
177 public static void test (void* user_data);
178 [NoAccessorMethod]
179 public string backend_author { owned get; set; }
180 [NoAccessorMethod]
181 public string backend_description { owned get; set; }
182 [NoAccessorMethod]
183 public string backend_name { owned get; set; }
184 [NoAccessorMethod]
185 public bool connected { get; set; }
186 [NoAccessorMethod]
187 public string distro_id { owned get; set; }
188 [NoAccessorMethod]
189 public uint64 filters { get; set; }
190 [NoAccessorMethod]
191 public uint64 groups { get; set; }
192 [NoAccessorMethod]
193 public virtual bool locked { get; set; }
194 [CCode (array_length = false, array_null_terminated = true)]
195 [NoAccessorMethod]
196 public string[] mime_types { owned get; set; }
197 [NoAccessorMethod]
198 public Pk.Network network_state { get; set; }
199 [NoAccessorMethod]
200 public uint64 provides { get; set; }
201 [NoAccessorMethod]
202 public uint64 roles { get; set; }
203 [NoAccessorMethod]
204 public uint version_major { get; }
205 [NoAccessorMethod]
206 public uint version_micro { get; }
207 [NoAccessorMethod]
208 public uint version_minor { get; }
209 public virtual signal void repo_list_changed ();
210 public virtual signal void restart_schedule ();
211 public virtual signal void transaction_list_changed ([CCode (array_length = false, array_null_terminated = true)] string[] transaction_ids);
212 public virtual signal void updates_changed ();
213 }
214 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", type_id = "pk_desktop_get_type ()")]
215 public class Desktop : GLib.Object {
216 [CCode (has_construct_function = false)]
217 public Desktop ();
218 public GLib.GenericArray<weak string> get_files_for_package (string package) throws GLib.Error;
219 public string get_package_for_file (string filename) throws GLib.Error;
220 public GLib.GenericArray<weak string> get_shown_for_package (string package) throws GLib.Error;
221 public bool open_database () throws GLib.Error;
222 public static void test (void* user_data);
223 }
224 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", type_id = "pk_details_get_type ()")]
225 public class Details : Pk.Source {
226 [CCode (has_construct_function = false)]
227 public Details ();
228 public unowned string get_description ();
229 public Pk.Group get_group ();
230 public unowned string get_license ();
231 public unowned string get_package_id ();
232 public uint64 get_size ();
233 public unowned string get_summary ();
234 public unowned string get_url ();
235 [NoAccessorMethod]
236 public string description { owned get; set; }
237 [NoAccessorMethod]
238 public Pk.Group group { get; set; }
239 [NoAccessorMethod]
240 public string license { owned get; set; }
241 [NoAccessorMethod]
242 public string package_id { owned get; set; }
243 [NoAccessorMethod]
244 public uint64 size { get; set; }
245 [NoAccessorMethod]
246 public string summary { owned get; set; }
247 [NoAccessorMethod]
248 public string url { owned get; set; }
249 }
250 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", type_id = "pk_distro_upgrade_get_type ()")]
251 public class DistroUpgrade : Pk.Source {
252 [CCode (has_construct_function = false)]
253 public DistroUpgrade ();
254 public unowned string get_id ();
255 public Pk.DistroUpgradeEnum get_state ();
256 public unowned string get_summary ();
257 [NoAccessorMethod]
258 public string name { owned get; set; }
259 [NoAccessorMethod]
260 public Pk.DistroUpgradeEnum state { get; set; }
261 [NoAccessorMethod]
262 public string summary { owned get; set; }
263 }
264 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", type_id = "pk_error_get_type ()")]
265 public class Error : Pk.Source {
266 [CCode (has_construct_function = false)]
267 public Error ();
268 public Pk.ErrorEnum get_code ();
269 public unowned string get_details ();
270 [NoAccessorMethod]
271 public Pk.ErrorEnum code { get; set; }
272 [NoAccessorMethod]
273 public string details { owned get; set; }
274 }
275 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", type_id = "pk_eula_required_get_type ()")]
276 public class EulaRequired : Pk.Source {
277 [CCode (has_construct_function = false)]
278 public EulaRequired ();
279 [NoAccessorMethod]
280 public string eula_id { owned get; set; }
281 [NoAccessorMethod]
282 public string license_agreement { owned get; set; }
283 [NoAccessorMethod]
284 public string package_id { owned get; set; }
285 [NoAccessorMethod]
286 public string vendor_name { owned get; set; }
287 }
288 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", type_id = "pk_files_get_type ()")]
289 public class Files : Pk.Source {
290 [CCode (has_construct_function = false)]
291 public Files ();
292 [CCode (array_length = false, array_null_terminated = true)]
293 public unowned string[] get_files ();
294 public unowned string get_package_id ();
295 [CCode (array_length = false, array_null_terminated = true)]
296 [NoAccessorMethod]
297 public string[] files { owned get; set; }
298 [NoAccessorMethod]
299 public string package_id { owned get; set; }
300 }
301 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", type_id = "pk_item_progress_get_type ()")]
302 public class ItemProgress : Pk.Source {
303 [CCode (has_construct_function = false)]
304 public ItemProgress ();
305 public unowned string get_package_id ();
306 public uint get_percentage ();
307 public Pk.Status get_status ();
308 [NoAccessorMethod]
309 public string package_id { owned get; set; }
310 [NoAccessorMethod]
311 public uint percentage { get; set; }
312 [NoAccessorMethod]
313 public uint status { get; set; }
314 }
315 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", type_id = "pk_media_change_required_get_type ()")]
316 public class MediaChangeRequired : Pk.Source {
317 [CCode (has_construct_function = false)]
318 public MediaChangeRequired ();
319 [NoAccessorMethod]
320 public string media_id { owned get; set; }
321 [NoAccessorMethod]
322 public string media_text { owned get; set; }
323 [NoAccessorMethod]
324 public Pk.MediaType media_type { get; set; }
325 }
326 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", type_id = "pk_package_get_type ()")]
327 public class Package : Pk.Source {
328 [CCode (has_construct_function = false)]
329 public Package ();
330 public bool equal (Pk.Package package2);
331 public bool equal_id (Pk.Package package2);
332 public unowned string get_arch ();
333 public unowned string get_data ();
334 public unowned string get_id ();
335 public Pk.Info get_info ();
336 public unowned string get_name ();
337 public unowned string get_summary ();
338 public unowned string get_version ();
339 public static string id_build (string name, string version, string arch, string data);
340 public static bool id_check (string package_id);
341 public static bool id_equal_fuzzy_arch (string package_id1, string package_id2);
342 [CCode (array_length = false, array_null_terminated = true)]
343 public static string[] id_split (string package_id);
344 public static void id_test (void* user_data);
345 public static string id_to_printable (string package_id);
346 [CCode (array_length = false, array_null_terminated = true)]
347 public static string[] ids_add_id (string package_ids, string package_id);
348 [CCode (array_length = false, array_null_terminated = true)]
349 public static string[] ids_add_ids (string package_ids, string package_ids_new);
350 public static bool ids_check (string package_ids);
351 [CCode (array_length = false, array_null_terminated = true)]
352 public static string[] ids_from_id (string package_id);
353 [CCode (array_length = false, array_null_terminated = true)]
354 public static string[] ids_from_string (string package_id);
355 public static bool ids_present_id (string package_ids, string package_id);
356 [CCode (array_length = false, array_null_terminated = true)]
357 public static string[] ids_remove_id (string package_ids, string package_id);
358 public static void ids_test (void* user_data);
359 public static string ids_to_string (string package_ids);
360 public bool parse (string data) throws GLib.Error;
361 public void print ();
362 public bool set_id (string package_id) throws GLib.Error;
363 public void set_info (Pk.Info info);
364 public void set_summary (string summary);
365 public static void test (void* user_data);
366 [NoAccessorMethod]
367 public string description { owned get; set; }
368 [NoAccessorMethod]
369 public Pk.Group group { get; set; }
370 public Pk.Info info { get; set; }
371 [NoAccessorMethod]
372 public string license { owned get; set; }
373 [NoAccessorMethod]
374 public string package_id { owned get; }
375 [NoAccessorMethod]
376 public uint64 size { get; set; }
377 public string summary { get; set; }
378 [CCode (array_length = false, array_null_terminated = true)]
379 [NoAccessorMethod]
380 public string[] update_bugzilla_urls { owned get; set; }
381 [NoAccessorMethod]
382 public string update_changelog { owned get; set; }
383 [CCode (array_length = false, array_null_terminated = true)]
384 [NoAccessorMethod]
385 public string[] update_cve_urls { owned get; set; }
386 [NoAccessorMethod]
387 public string update_issued { owned get; set; }
388 [NoAccessorMethod]
389 public string update_obsoletes { owned get; set; }
390 [NoAccessorMethod]
391 public Pk.Restart update_restart { get; set; }
392 [NoAccessorMethod]
393 public Pk.UpdateState update_state { get; set; }
394 [NoAccessorMethod]
395 public string update_text { owned get; set; }
396 [NoAccessorMethod]
397 public string update_updated { owned get; set; }
398 [NoAccessorMethod]
399 public string update_updates { owned get; set; }
400 [CCode (array_length = false, array_null_terminated = true)]
401 [NoAccessorMethod]
402 public string[] update_vendor_urls { owned get; set; }
403 [NoAccessorMethod]
404 public string url { owned get; set; }
405 public virtual signal void changed ();
406 }
407 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", type_id = "pk_package_sack_get_type ()")]
408 public class PackageSack : GLib.Object {
409 [CCode (has_construct_function = false)]
410 public PackageSack ();
411 public bool add_package (Pk.Package package);
412 public bool add_package_by_id (string package_id) throws GLib.Error;
413 public bool add_packages_from_file (GLib.File file) throws GLib.Error;
414 [NoWrapper]
415 public virtual void changed ();
416 public void clear ();
417 public Pk.PackageSack filter (Pk.PackageSackFilterFunc filter_cb);
418 public Pk.PackageSack filter_by_info (Pk.Info info);
419 public Pk.Package find_by_id (string package_id);
420 public Pk.Package find_by_id_name_arch (string package_id);
421 public GLib.GenericArray<weak Pk.Package> get_array ();
422 public bool get_details (GLib.Cancellable? cancellable = null) throws GLib.Error;
423 [CCode (finish_name = "pk_package_sack_merge_generic_finish")]
424 public async bool get_details_async (GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
425 [CCode (array_length = false, array_null_terminated = true)]
426 public string[] get_ids ();
427 public uint get_size ();
428 public uint64 get_total_bytes ();
429 public bool get_update_detail (GLib.Cancellable? cancellable = null) throws GLib.Error;
430 [CCode (finish_name = "pk_package_sack_merge_generic_finish")]
431 public async bool get_update_detail_async (GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
432 public bool remove_by_filter (Pk.PackageSackFilterFunc filter_cb);
433 public bool remove_package (Pk.Package package);
434 public bool remove_package_by_id (string package_id);
435 public bool resolve (GLib.Cancellable? cancellable = null) throws GLib.Error;
436 [CCode (finish_name = "pk_package_sack_merge_generic_finish")]
437 public async bool resolve_async (GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
438 public void sort (Pk.PackageSackSortType type);
439 public static void test (void* user_data);
440 public bool to_file (GLib.File file) throws GLib.Error;
441 }
442 [CCode (cheader_filename = "packagekit-glib2/packagekit.h")]
443 [Compact]
444 public class PackageSackResults {
445 }
446 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", type_id = "pk_progress_get_type ()")]
447 public class Progress : GLib.Object {
448 [CCode (has_construct_function = false)]
449 public Progress ();
450 public bool set_allow_cancel (bool allow_cancel);
451 public bool set_caller_active (bool caller_active);
452 public bool set_download_size_remaining (uint64 download_size_remaining);
453 public bool set_elapsed_time (uint elapsed_time);
454 public bool set_item_progress (Pk.ItemProgress item_progress);
455 public bool set_package (Pk.Package package);
456 public bool set_package_id (string package_id);
457 public bool set_percentage (int percentage);
458 public bool set_remaining_time (uint remaining_time);
459 public bool set_role (Pk.Role role);
460 public bool set_speed (uint speed);
461 public bool set_status (Pk.Status status);
462 public bool set_transaction_flags (uint64 transaction_flags);
463 public bool set_transaction_id (string package_id);
464 public bool set_uid (uint uid);
465 public static void test (void* user_data);
466 [NoAccessorMethod]
467 public bool allow_cancel { get; set; }
468 [NoAccessorMethod]
469 public bool caller_active { get; set; }
470 [NoAccessorMethod]
471 public uint download_size_remaining { get; set; }
472 [NoAccessorMethod]
473 public uint elapsed_time { get; set; }
474 [NoAccessorMethod]
475 public Pk.ItemProgress item_progress { owned get; set; }
476 [NoAccessorMethod]
477 public Pk.Package package { owned get; set; }
478 [NoAccessorMethod]
479 public string package_id { owned get; set; }
480 [NoAccessorMethod]
481 public int percentage { get; set; }
482 [NoAccessorMethod]
483 public uint remaining_time { get; set; }
484 [NoAccessorMethod]
485 public uint role { get; set; }
486 [NoAccessorMethod]
487 public uint speed { get; set; }
488 [NoAccessorMethod]
489 public uint status { get; set; }
490 [NoAccessorMethod]
491 public uint64 transaction_flags { get; set; }
492 [NoAccessorMethod]
493 public string transaction_id { owned get; set; }
494 [NoAccessorMethod]
495 public uint uid { get; set; }
496 }
497 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", type_id = "pk_repo_detail_get_type ()")]
498 public class RepoDetail : Pk.Source {
499 [CCode (has_construct_function = false)]
500 public RepoDetail ();
501 public unowned string get_description ();
502 public bool get_enabled ();
503 public unowned string get_id ();
504 [NoAccessorMethod]
505 public string description { owned get; set; }
506 [NoAccessorMethod]
507 public bool enabled { get; set; }
508 [NoAccessorMethod]
509 public string repo_id { owned get; set; }
510 }
511 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", type_id = "pk_repo_signature_required_get_type ()")]
512 public class RepoSignatureRequired : Pk.Source {
513 [CCode (has_construct_function = false)]
514 public RepoSignatureRequired ();
515 [NoAccessorMethod]
516 public string key_fingerprint { owned get; set; }
517 [NoAccessorMethod]
518 public string key_id { owned get; set; }
519 [NoAccessorMethod]
520 public string key_timestamp { owned get; set; }
521 [NoAccessorMethod]
522 public string key_url { owned get; set; }
523 [NoAccessorMethod]
524 public string key_userid { owned get; set; }
525 [NoAccessorMethod]
526 public string package_id { owned get; set; }
527 [NoAccessorMethod]
528 public string repository_name { owned get; set; }
529 [NoAccessorMethod]
530 public Pk.SigType type { get; set; }
531 }
532 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", type_id = "pk_require_restart_get_type ()")]
533 public class RequireRestart : Pk.Source {
534 [CCode (has_construct_function = false)]
535 public RequireRestart ();
536 [NoAccessorMethod]
537 public string package_id { owned get; set; }
538 [NoAccessorMethod]
539 public Pk.Restart restart { get; set; }
540 }
541 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", type_id = "pk_results_get_type ()")]
542 public class Results : GLib.Object {
543 [CCode (has_construct_function = false)]
544 public Results ();
545 public bool add_category (Pk.Category item);
546 public bool add_details (Pk.Details item);
547 public bool add_distro_upgrade (Pk.DistroUpgrade item);
548 public bool add_eula_required (Pk.EulaRequired item);
549 public bool add_files (Pk.Files item);
550 public bool add_media_change_required (Pk.MediaChangeRequired item);
551 public bool add_package (Pk.Package item);
552 public bool add_repo_detail (Pk.RepoDetail item);
553 public bool add_repo_signature_required (Pk.RepoSignatureRequired item);
554 public bool add_require_restart (Pk.RequireRestart item);
555 public bool add_transaction (Pk.TransactionPast item);
556 public bool add_update_detail (Pk.UpdateDetail item);
557 public GLib.GenericArray<weak Pk.Category> get_category_array ();
558 public GLib.GenericArray<weak Pk.Details> get_details_array ();
559 public GLib.GenericArray<weak Pk.DistroUpgrade> get_distro_upgrade_array ();
560 public Pk.Error get_error_code ();
561 public GLib.GenericArray<weak Pk.EulaRequired> get_eula_required_array ();
562 public Pk.Exit get_exit_code ();
563 public GLib.GenericArray<weak Pk.Files> get_files_array ();
564 public GLib.GenericArray<weak Pk.MediaChangeRequired> get_media_change_required_array ();
565 public GLib.GenericArray<weak Pk.Package> get_package_array ();
566 public Pk.PackageSack get_package_sack ();
567 public GLib.GenericArray<weak Pk.RepoDetail> get_repo_detail_array ();
568 public GLib.GenericArray<weak Pk.RepoSignatureRequired> get_repo_signature_required_array ();
569 public GLib.GenericArray<weak Pk.RequireRestart> get_require_restart_array ();
570 public Pk.Restart get_require_restart_worst ();
571 public Pk.Role get_role ();
572 public GLib.GenericArray<weak Pk.TransactionPast> get_transaction_array ();
573 public Pk.Bitfield get_transaction_flags ();
574 public GLib.GenericArray<weak Pk.UpdateDetail> get_update_detail_array ();
575 public bool set_error_code (Pk.Error item);
576 public bool set_exit_code (Pk.Exit exit_enum);
577 public static void test (void* user_data);
578 [NoAccessorMethod]
579 public uint inputs { get; set; }
580 [NoAccessorMethod]
581 public Pk.Progress progress { owned get; set; }
582 [NoAccessorMethod]
583 public Pk.Role role { get; set; }
584 [NoAccessorMethod]
585 public uint64 transaction_flags { get; set; }
586 }
587 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", type_id = "pk_source_get_type ()")]
588 public class Source : GLib.Object {
589 [CCode (has_construct_function = false)]
590 public Source ();
591 [NoAccessorMethod]
592 public Pk.Role role { get; set; }
593 [NoAccessorMethod]
594 public string transaction_id { owned get; set; }
595 }
596 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", type_id = "pk_task_get_type ()")]
597 public class Task : Pk.Client {
598 [CCode (has_construct_function = false)]
599 public Task ();
600 [CCode (finish_name = "pk_task_generic_finish")]
601 public async Pk.Results depends_on_async (Pk.Bitfield filters, [CCode (array_length = false, array_null_terminated = true)] string[] package_ids, bool recursive, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
602 public Pk.Results depends_on_sync (Pk.Bitfield filters, [CCode (array_length = false, array_null_terminated = true)] string[] package_ids, bool recursive, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
603 [CCode (finish_name = "pk_task_generic_finish")]
604 public async Pk.Results download_packages_async ([CCode (array_length = false, array_null_terminated = true)] string[] package_ids, string directory, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
605 public Pk.Results download_packages_sync ([CCode (array_length = false, array_null_terminated = true)] string[] package_ids, string directory, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
606 [NoWrapper]
607 public virtual void eula_question (uint request, Pk.Results results);
608 public bool get_allow_downgrade ();
609 public bool get_allow_reinstall ();
610 [CCode (finish_name = "pk_task_generic_finish")]
611 public async Pk.Results get_categories_async (GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
612 public Pk.Results get_categories_sync (GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
613 [CCode (finish_name = "pk_task_generic_finish")]
614 public async Pk.Results get_details_async ([CCode (array_length = false, array_null_terminated = true)] string[] package_ids, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
615 public Pk.Results get_details_sync ([CCode (array_length = false, array_null_terminated = true)] string[] package_ids, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
616 [CCode (finish_name = "pk_task_generic_finish")]
617 public async Pk.Results get_files_async ([CCode (array_length = false, array_null_terminated = true)] string[] package_ids, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
618 public Pk.Results get_files_sync ([CCode (array_length = false, array_null_terminated = true)] string[] package_ids, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
619 public bool get_interactive ();
620 public bool get_only_download ();
621 public bool get_only_trusted ();
622 [CCode (finish_name = "pk_task_generic_finish")]
623 public async Pk.Results get_packages_async (Pk.Bitfield filters, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
624 public Pk.Results get_packages_sync (Pk.Bitfield filters, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
625 [CCode (finish_name = "pk_task_generic_finish")]
626 public async Pk.Results get_repo_list_async (Pk.Bitfield filters, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
627 public Pk.Results get_repo_list_sync (Pk.Bitfield filters, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
628 public bool get_simulate ();
629 [CCode (finish_name = "pk_task_generic_finish")]
630 public async Pk.Results get_update_detail_async ([CCode (array_length = false, array_null_terminated = true)] string[] package_ids, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
631 public Pk.Results get_update_detail_sync ([CCode (array_length = false, array_null_terminated = true)] string[] package_ids, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
632 [CCode (finish_name = "pk_task_generic_finish")]
633 public async Pk.Results get_updates_async (Pk.Bitfield filters, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
634 public Pk.Results get_updates_sync (Pk.Bitfield filters, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
635 [CCode (finish_name = "pk_task_generic_finish")]
636 public async Pk.Results install_files_async ([CCode (array_length = false, array_null_terminated = true)] string[] files, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
637 public Pk.Results install_files_sync ([CCode (array_length = false, array_null_terminated = true)] string[] files, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
638 [CCode (finish_name = "pk_task_generic_finish")]
639 public async Pk.Results install_packages_async ([CCode (array_length = false, array_null_terminated = true)] string[] package_ids, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
640 public Pk.Results install_packages_sync ([CCode (array_length = false, array_null_terminated = true)] string[] package_ids, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
641 [NoWrapper]
642 public virtual void key_question (uint request, Pk.Results results);
643 [NoWrapper]
644 public virtual void media_change_question (uint request, Pk.Results results);
645 [CCode (finish_name = "pk_task_generic_finish")]
646 public async Pk.Results refresh_cache_async (bool force, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
647 public Pk.Results refresh_cache_sync (bool force, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
648 [CCode (finish_name = "pk_task_generic_finish")]
649 public async Pk.Results remove_packages_async ([CCode (array_length = false, array_null_terminated = true)] string[] package_ids, bool allow_deps, bool autoremove, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
650 public Pk.Results remove_packages_sync ([CCode (array_length = false, array_null_terminated = true)] string[] package_ids, bool allow_deps, bool autoremove, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
651 [NoWrapper]
652 public virtual void repair_question (uint request, Pk.Results results);
653 [CCode (finish_name = "pk_task_generic_finish")]
654 public async Pk.Results repair_system_async (GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
655 public Pk.Results repair_system_sync (GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
656 [CCode (finish_name = "pk_task_generic_finish")]
657 public async Pk.Results repo_enable_async (string repo_id, bool enabled, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
658 public Pk.Results repo_enable_sync (string repo_id, bool enabled, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
659 [CCode (finish_name = "pk_task_generic_finish")]
660 public async Pk.Results required_by_async (Pk.Bitfield filters, [CCode (array_length = false, array_null_terminated = true)] string[] package_ids, bool recursive, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
661 public Pk.Results required_by_sync (Pk.Bitfield filters, [CCode (array_length = false, array_null_terminated = true)] string[] package_ids, bool recursive, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
662 [CCode (finish_name = "pk_task_generic_finish")]
663 public async Pk.Results resolve_async (Pk.Bitfield filters, [CCode (array_length = false, array_null_terminated = true)] string[] packages, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
664 public Pk.Results resolve_sync (Pk.Bitfield filters, [CCode (array_length = false, array_null_terminated = true)] string[] packages, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
665 [CCode (finish_name = "pk_task_generic_finish")]
666 public async Pk.Results search_details_async (Pk.Bitfield filters, [CCode (array_length = false, array_null_terminated = true)] string[] values, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
667 public Pk.Results search_details_sync (Pk.Bitfield filters, [CCode (array_length = false, array_null_terminated = true)] string[] values, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
668 [CCode (finish_name = "pk_task_generic_finish")]
669 public async Pk.Results search_files_async (Pk.Bitfield filters, [CCode (array_length = false, array_null_terminated = true)] string[] values, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
670 public Pk.Results search_files_sync (Pk.Bitfield filters, [CCode (array_length = false, array_null_terminated = true)] string[] values, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
671 [CCode (finish_name = "pk_task_generic_finish")]
672 public async Pk.Results search_groups_async (Pk.Bitfield filters, [CCode (array_length = false, array_null_terminated = true)] string[] values, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
673 public Pk.Results search_groups_sync (Pk.Bitfield filters, [CCode (array_length = false, array_null_terminated = true)] string[] values, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
674 [CCode (finish_name = "pk_task_generic_finish")]
675 public async Pk.Results search_names_async (Pk.Bitfield filters, [CCode (array_length = false, array_null_terminated = true)] string[] values, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
676 public Pk.Results search_names_sync (Pk.Bitfield filters, [CCode (array_length = false, array_null_terminated = true)] string[] values, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
677 public void set_allow_downgrade (bool allow_downgrade);
678 public void set_allow_reinstall (bool allow_reinstall);
679 public void set_interactive (bool interactive);
680 public void set_only_download (bool only_download);
681 public void set_only_trusted (bool only_trusted);
682 public void set_simulate (bool simulate);
683 [NoWrapper]
684 public virtual void simulate_question (uint request, Pk.Results results);
685 public static void test (void* user_data);
686 [NoWrapper]
687 public virtual void untrusted_question (uint request, Pk.Results results);
688 [CCode (finish_name = "pk_task_generic_finish")]
689 public async Pk.Results update_packages_async ([CCode (array_length = false, array_null_terminated = true)] string[] package_ids, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
690 public Pk.Results update_packages_sync ([CCode (array_length = false, array_null_terminated = true)] string[] package_ids, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
691 public bool user_accepted (uint request);
692 public bool user_declined (uint request);
693 [CCode (finish_name = "pk_task_generic_finish")]
694 public async Pk.Results what_provides_async (Pk.Bitfield filters, [CCode (array_length = false, array_null_terminated = true)] string[] values, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
695 public Pk.Results what_provides_sync (Pk.Bitfield filters, [CCode (array_length = false, array_null_terminated = true)] string[] values, GLib.Cancellable? cancellable, Pk.ProgressCallback progress_callback) throws GLib.Error;
696 public bool allow_downgrade { get; set; }
697 public bool allow_reinstall { get; set; }
698 public bool only_download { get; set; }
699 public bool only_trusted { get; set; }
700 public bool simulate { get; set; }
701 }
702 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", type_id = "pk_transaction_list_get_type ()")]
703 public class TransactionList : GLib.Object {
704 [CCode (has_construct_function = false)]
705 public TransactionList ();
706 [CCode (array_length = false, array_null_terminated = true)]
707 public string[] get_ids ();
708 public static void test (void* user_data);
709 public virtual signal void added (string tid);
710 public virtual signal void removed (string tid);
711 }
712 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", type_id = "pk_transaction_past_get_type ()")]
713 public class TransactionPast : Pk.Source {
714 [CCode (has_construct_function = false)]
715 public TransactionPast ();
716 public unowned string get_cmdline ();
717 public unowned string get_data ();
718 public GLib.DateTime get_datetime ();
719 public uint get_duration ();
720 public unowned string get_id ();
721 public Pk.Role get_role ();
722 public bool get_succeeded ();
723 public unowned string get_timespec ();
724 public int64 get_timestamp ();
725 public uint get_uid ();
726 [NoAccessorMethod]
727 public string cmdline { owned get; set; }
728 [NoAccessorMethod]
729 public string data { owned get; set; }
730 [NoAccessorMethod]
731 public uint duration { get; set; }
732 [NoAccessorMethod]
733 public Pk.Role role { get; set; }
734 [NoAccessorMethod]
735 public bool succeeded { get; set; }
736 [NoAccessorMethod]
737 public string tid { owned get; set; }
738 [NoAccessorMethod]
739 public string timespec { owned get; set; }
740 [NoAccessorMethod]
741 public uint uid { get; set; }
742 }
743 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", type_id = "pk_update_detail_get_type ()")]
744 public class UpdateDetail : Pk.Source {
745 [CCode (has_construct_function = false)]
746 public UpdateDetail ();
747 [CCode (array_length = false, array_null_terminated = true)]
748 public unowned string[] get_bugzilla_urls ();
749 public unowned string get_changelog ();
750 [CCode (array_length = false, array_null_terminated = true)]
751 public unowned string[] get_cve_urls ();
752 public unowned string get_issued ();
753 [CCode (array_length = false, array_null_terminated = true)]
754 public unowned string[] get_obsoletes ();
755 public unowned string get_package_id ();
756 public Pk.Restart get_restart ();
757 public Pk.UpdateState get_state ();
758 public unowned string get_update_text ();
759 public unowned string get_updated ();
760 [CCode (array_length = false, array_null_terminated = true)]
761 public unowned string[] get_updates ();
762 [CCode (array_length = false, array_null_terminated = true)]
763 public unowned string[] get_vendor_urls ();
764 [CCode (array_length = false, array_null_terminated = true)]
765 [NoAccessorMethod]
766 public string[] bugzilla_urls { owned get; set; }
767 [NoAccessorMethod]
768 public string changelog { owned get; set; }
769 [CCode (array_length = false, array_null_terminated = true)]
770 [NoAccessorMethod]
771 public string[] cve_urls { owned get; set; }
772 [NoAccessorMethod]
773 public string issued { owned get; set; }
774 [CCode (array_length = false, array_null_terminated = true)]
775 [NoAccessorMethod]
776 public string[] obsoletes { owned get; set; }
777 [NoAccessorMethod]
778 public string package_id { owned get; set; }
779 [NoAccessorMethod]
780 public Pk.Restart restart { get; set; }
781 [NoAccessorMethod]
782 public Pk.UpdateState state { get; set; }
783 [NoAccessorMethod]
784 public string update_text { owned get; set; }
785 [NoAccessorMethod]
786 public string updated { owned get; set; }
787 [CCode (array_length = false, array_null_terminated = true)]
788 [NoAccessorMethod]
789 public string[] updates { owned get; set; }
790 [CCode (array_length = false, array_null_terminated = true)]
791 [NoAccessorMethod]
792 public string[] vendor_urls { owned get; set; }
793 }
794 [CCode (cheader_filename = "packagekit-glib2/packagekit.h")]
795 [SimpleType]
796 public struct Bitfield : uint64 {
797 public static void test (void* user_data);
798 }
799 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", has_type_id = false)]
800 public struct EnumMatch {
801 public uint value;
802 public weak global::string string;
803 }
804 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cname = "PkAuthorizeEnum", cprefix = "PK_AUTHORIZE_ENUM_", type_id = "pk_authorize_enum_get_type ()")]
805 [GIR (name = "AuthorizeEnum")]
806 public enum Authorize {
807 UNKNOWN,
808 YES,
809 NO,
810 INTERACTIVE,
811 LAST;
812 public static Pk.Authorize type_enum_from_string (string authorize_type);
813 public static unowned string type_enum_to_string (Pk.Authorize authorize_type);
814 }
815 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cprefix = "PK_DISTRO_UPGRADE_ENUM_", type_id = "pk_distro_upgrade_enum_get_type ()")]
816 public enum DistroUpgradeEnum {
817 UNKNOWN,
818 STABLE,
819 UNSTABLE,
820 LAST;
821 public static Pk.DistroUpgradeEnum from_string (string upgrade);
822 public static unowned string to_string (Pk.DistroUpgradeEnum upgrade);
823 }
824 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cprefix = "PK_ERROR_ENUM_", type_id = "pk_error_enum_get_type ()")]
825 public enum ErrorEnum {
826 UNKNOWN,
827 OOM,
828 NO_NETWORK,
829 NOT_SUPPORTED,
830 INTERNAL_ERROR,
831 GPG_FAILURE,
832 PACKAGE_ID_INVALID,
833 PACKAGE_NOT_INSTALLED,
834 PACKAGE_NOT_FOUND,
835 PACKAGE_ALREADY_INSTALLED,
836 PACKAGE_DOWNLOAD_FAILED,
837 GROUP_NOT_FOUND,
838 GROUP_LIST_INVALID,
839 DEP_RESOLUTION_FAILED,
840 FILTER_INVALID,
841 CREATE_THREAD_FAILED,
842 TRANSACTION_ERROR,
843 TRANSACTION_CANCELLED,
844 NO_CACHE,
845 REPO_NOT_FOUND,
846 CANNOT_REMOVE_SYSTEM_PACKAGE,
847 PROCESS_KILL,
848 FAILED_INITIALIZATION,
849 FAILED_FINALISE,
850 FAILED_CONFIG_PARSING,
851 CANNOT_CANCEL,
852 CANNOT_GET_LOCK,
853 NO_PACKAGES_TO_UPDATE,
854 CANNOT_WRITE_REPO_CONFIG,
855 LOCAL_INSTALL_FAILED,
856 BAD_GPG_SIGNATURE,
857 MISSING_GPG_SIGNATURE,
858 CANNOT_INSTALL_SOURCE_PACKAGE,
859 REPO_CONFIGURATION_ERROR,
860 NO_LICENSE_AGREEMENT,
861 FILE_CONFLICTS,
862 PACKAGE_CONFLICTS,
863 REPO_NOT_AVAILABLE,
864 INVALID_PACKAGE_FILE,
865 PACKAGE_INSTALL_BLOCKED,
866 PACKAGE_CORRUPT,
867 ALL_PACKAGES_ALREADY_INSTALLED,
868 FILE_NOT_FOUND,
869 NO_MORE_MIRRORS_TO_TRY,
870 NO_DISTRO_UPGRADE_DATA,
871 INCOMPATIBLE_ARCHITECTURE,
872 NO_SPACE_ON_DEVICE,
873 MEDIA_CHANGE_REQUIRED,
874 NOT_AUTHORIZED,
875 UPDATE_NOT_FOUND,
876 CANNOT_INSTALL_REPO_UNSIGNED,
877 CANNOT_UPDATE_REPO_UNSIGNED,
878 CANNOT_GET_FILELIST,
879 CANNOT_GET_REQUIRES,
880 CANNOT_DISABLE_REPOSITORY,
881 RESTRICTED_DOWNLOAD,
882 PACKAGE_FAILED_TO_CONFIGURE,
883 PACKAGE_FAILED_TO_BUILD,
884 PACKAGE_FAILED_TO_INSTALL,
885 PACKAGE_FAILED_TO_REMOVE,
886 UPDATE_FAILED_DUE_TO_RUNNING_PROCESS,
887 PACKAGE_DATABASE_CHANGED,
888 PROVIDE_TYPE_NOT_SUPPORTED,
889 INSTALL_ROOT_INVALID,
890 CANNOT_FETCH_SOURCES,
891 CANCELLED_PRIORITY,
892 UNFINISHED_TRANSACTION,
893 LOCK_REQUIRED,
894 LAST;
895 public static Pk.ErrorEnum from_string (string code);
896 public static unowned string to_string (Pk.ErrorEnum code);
897 }
898 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cname = "PkExitEnum", cprefix = "PK_EXIT_ENUM_", type_id = "pk_exit_enum_get_type ()")]
899 [GIR (name = "ExitEnum")]
900 public enum Exit {
901 UNKNOWN,
902 SUCCESS,
903 FAILED,
904 CANCELLED,
905 KEY_REQUIRED,
906 EULA_REQUIRED,
907 KILLED,
908 MEDIA_CHANGE_REQUIRED,
909 NEED_UNTRUSTED,
910 CANCELLED_PRIORITY,
911 SKIP_TRANSACTION,
912 REPAIR_REQUIRED,
913 LAST;
914 public static Pk.Exit enum_from_string (string exit);
915 public static unowned string enum_to_string (Pk.Exit exit);
916 }
917 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cname = "PkFilterEnum", cprefix = "PK_FILTER_ENUM_", type_id = "pk_filter_enum_get_type ()")]
918 [GIR (name = "FilterEnum")]
919 public enum Filter {
920 UNKNOWN,
921 NONE,
922 INSTALLED,
923 NOT_INSTALLED,
924 DEVELOPMENT,
925 NOT_DEVELOPMENT,
926 GUI,
927 NOT_GUI,
928 FREE,
929 NOT_FREE,
930 VISIBLE,
931 NOT_VISIBLE,
932 SUPPORTED,
933 NOT_SUPPORTED,
934 BASENAME,
935 NOT_BASENAME,
936 NEWEST,
937 NOT_NEWEST,
938 ARCH,
939 NOT_ARCH,
940 SOURCE,
941 NOT_SOURCE,
942 COLLECTIONS,
943 NOT_COLLECTIONS,
944 APPLICATION,
945 NOT_APPLICATION,
946 DOWNLOADED,
947 NOT_DOWNLOADED,
948 LAST;
949 public static Pk.Bitfield bitfield_from_string (string filters);
950 public static string bitfield_to_string (Pk.Bitfield filters);
951 public static Pk.Filter enum_from_string (string filter);
952 public static unowned string enum_to_string (Pk.Filter filter);
953 }
954 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cname = "PkGroupEnum", cprefix = "PK_GROUP_ENUM_", type_id = "pk_group_enum_get_type ()")]
955 [GIR (name = "GroupEnum")]
956 public enum Group {
957 UNKNOWN,
958 ACCESSIBILITY,
959 ACCESSORIES,
960 ADMIN_TOOLS,
961 COMMUNICATION,
962 DESKTOP_GNOME,
963 DESKTOP_KDE,
964 DESKTOP_OTHER,
965 DESKTOP_XFCE,
966 EDUCATION,
967 FONTS,
968 GAMES,
969 GRAPHICS,
970 INTERNET,
971 LEGACY,
972 LOCALIZATION,
973 MAPS,
974 MULTIMEDIA,
975 NETWORK,
976 OFFICE,
977 OTHER,
978 POWER_MANAGEMENT,
979 PROGRAMMING,
980 PUBLISHING,
981 REPOS,
982 SECURITY,
983 SERVERS,
984 SYSTEM,
985 VIRTUALIZATION,
986 SCIENCE,
987 DOCUMENTATION,
988 ELECTRONICS,
989 COLLECTIONS,
990 VENDOR,
991 NEWEST,
992 LAST;
993 public static Pk.Bitfield bitfield_from_string (string groups);
994 public static string bitfield_to_string (Pk.Bitfield groups);
995 public static Pk.Group enum_from_string (string group);
996 public static unowned string enum_to_string (Pk.Group group);
997 }
998 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cname = "PkInfoEnum", cprefix = "PK_INFO_ENUM_", type_id = "pk_info_enum_get_type ()")]
999 [GIR (name = "InfoEnum")]
1000 public enum Info {
1001 UNKNOWN,
1002 INSTALLED,
1003 AVAILABLE,
1004 LOW,
1005 ENHANCEMENT,
1006 NORMAL,
1007 BUGFIX,
1008 IMPORTANT,
1009 SECURITY,
1010 BLOCKED,
1011 DOWNLOADING,
1012 UPDATING,
1013 INSTALLING,
1014 REMOVING,
1015 CLEANUP,
1016 OBSOLETING,
1017 COLLECTION_INSTALLED,
1018 COLLECTION_AVAILABLE,
1019 FINISHED,
1020 REINSTALLING,
1021 DOWNGRADING,
1022 PREPARING,
1023 DECOMPRESSING,
1024 UNTRUSTED,
1025 TRUSTED,
1026 UNAVAILABLE,
1027 LAST;
1028 public static Pk.Info enum_from_string (string info);
1029 public static unowned string enum_to_localised_past (Pk.Info info);
1030 public static unowned string enum_to_localised_present (Pk.Info info);
1031 public static unowned string enum_to_string (Pk.Info info);
1032 }
1033 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cname = "PkMediaTypeEnum", cprefix = "PK_MEDIA_TYPE_ENUM_", type_id = "pk_media_type_enum_get_type ()")]
1034 [GIR (name = "MediaTypeEnum")]
1035 public enum MediaType {
1036 UNKNOWN,
1037 CD,
1038 DVD,
1039 DISC,
1040 LAST;
1041 public static Pk.MediaType enum_from_string (string media_type);
1042 public static unowned string enum_to_string (Pk.MediaType media_type);
1043 }
1044 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cname = "PkNetworkEnum", cprefix = "PK_NETWORK_ENUM_", type_id = "pk_network_enum_get_type ()")]
1045 [GIR (name = "NetworkEnum")]
1046 public enum Network {
1047 UNKNOWN,
1048 OFFLINE,
1049 ONLINE,
1050 WIRED,
1051 WIFI,
1052 MOBILE,
1053 LAST;
1054 public static Pk.Network enum_from_string (string network);
1055 public static unowned string enum_to_string (Pk.Network network);
1056 }
1057 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cprefix = "PK_OFFLINE_ACTION_", type_id = "pk_offline_action_get_type ()")]
1058 public enum OfflineAction {
1059 UNKNOWN,
1060 REBOOT,
1061 POWER_OFF,
1062 UNSET,
1063 LAST;
1064 public static Pk.OfflineAction from_string (string action);
1065 public static unowned string to_string (Pk.OfflineAction action);
1066 }
1067 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cprefix = "PK_PACKAGE_SACK_SORT_TYPE_", type_id = "pk_package_sack_sort_type_get_type ()")]
1068 public enum PackageSackSortType {
1069 NAME,
1070 INFO,
1071 PACKAGE_ID,
1072 SUMMARY,
1073 LAST
1074 }
1075 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cprefix = "PK_PROGRESS_TYPE_", type_id = "pk_progress_type_get_type ()")]
1076 public enum ProgressType {
1077 PACKAGE_ID,
1078 TRANSACTION_ID,
1079 PERCENTAGE,
1080 ALLOW_CANCEL,
1081 STATUS,
1082 ROLE,
1083 CALLER_ACTIVE,
1084 ELAPSED_TIME,
1085 REMAINING_TIME,
1086 SPEED,
1087 DOWNLOAD_SIZE_REMAINING,
1088 UID,
1089 PACKAGE,
1090 ITEM_PROGRESS,
1091 TRANSACTION_FLAGS,
1092 INVALID
1093 }
1094 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cname = "PkRestartEnum", cprefix = "PK_RESTART_ENUM_", type_id = "pk_restart_enum_get_type ()")]
1095 [GIR (name = "RestartEnum")]
1096 public enum Restart {
1097 UNKNOWN,
1098 NONE,
1099 APPLICATION,
1100 SESSION,
1101 SYSTEM,
1102 SECURITY_SESSION,
1103 SECURITY_SYSTEM,
1104 LAST;
1105 public static Pk.Restart enum_from_string (string restart);
1106 public static unowned string enum_to_string (Pk.Restart restart);
1107 }
1108 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cname = "PkRoleEnum", cprefix = "PK_ROLE_ENUM_", type_id = "pk_role_enum_get_type ()")]
1109 [GIR (name = "RoleEnum")]
1110 public enum Role {
1111 UNKNOWN,
1112 CANCEL,
1113 DEPENDS_ON,
1114 GET_DETAILS,
1115 GET_FILES,
1116 GET_PACKAGES,
1117 GET_REPO_LIST,
1118 REQUIRED_BY,
1119 GET_UPDATE_DETAIL,
1120 GET_UPDATES,
1121 INSTALL_FILES,
1122 INSTALL_PACKAGES,
1123 INSTALL_SIGNATURE,
1124 REFRESH_CACHE,
1125 REMOVE_PACKAGES,
1126 REPO_ENABLE,
1127 REPO_SET_DATA,
1128 RESOLVE,
1129 SEARCH_DETAILS,
1130 SEARCH_FILE,
1131 SEARCH_GROUP,
1132 SEARCH_NAME,
1133 UPDATE_PACKAGES,
1134 WHAT_PROVIDES,
1135 ACCEPT_EULA,
1136 DOWNLOAD_PACKAGES,
1137 GET_DISTRO_UPGRADES,
1138 GET_CATEGORIES,
1139 GET_OLD_TRANSACTIONS,
1140 REPAIR_SYSTEM,
1141 GET_DETAILS_LOCAL,
1142 GET_FILES_LOCAL,
1143 REPO_REMOVE,
1144 LAST;
1145 public static Pk.Bitfield bitfield_from_string (string roles);
1146 public static string bitfield_to_string (Pk.Bitfield roles);
1147 public static Pk.Role enum_from_string (string role);
1148 public static unowned string enum_to_localised_present (Pk.Role role);
1149 public static unowned string enum_to_string (Pk.Role role);
1150 }
1151 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cname = "PkSigTypeEnum", cprefix = "PK_SIGTYPE_ENUM_", type_id = "pk_sig_type_enum_get_type ()")]
1152 [GIR (name = "SigTypeEnum")]
1153 public enum SigType {
1154 UNKNOWN,
1155 GPG,
1156 LAST;
1157 public static Pk.SigType enum_from_string (string sig_type);
1158 public static unowned string enum_to_string (Pk.SigType sig_type);
1159 }
1160 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cname = "PkStatusEnum", cprefix = "PK_STATUS_ENUM_", type_id = "pk_status_enum_get_type ()")]
1161 [GIR (name = "StatusEnum")]
1162 public enum Status {
1163 UNKNOWN,
1164 WAIT,
1165 SETUP,
1166 RUNNING,
1167 QUERY,
1168 INFO,
1169 REMOVE,
1170 REFRESH_CACHE,
1171 DOWNLOAD,
1172 INSTALL,
1173 UPDATE,
1174 CLEANUP,
1175 OBSOLETE,
1176 DEP_RESOLVE,
1177 SIG_CHECK,
1178 TEST_COMMIT,
1179 COMMIT,
1180 REQUEST,
1181 FINISHED,
1182 CANCEL,
1183 DOWNLOAD_REPOSITORY,
1184 DOWNLOAD_PACKAGELIST,
1185 DOWNLOAD_FILELIST,
1186 DOWNLOAD_CHANGELOG,
1187 DOWNLOAD_GROUP,
1188 DOWNLOAD_UPDATEINFO,
1189 REPACKAGING,
1190 LOADING_CACHE,
1191 SCAN_APPLICATIONS,
1192 GENERATE_PACKAGE_LIST,
1193 WAITING_FOR_LOCK,
1194 WAITING_FOR_AUTH,
1195 SCAN_PROCESS_LIST,
1196 CHECK_EXECUTABLE_FILES,
1197 CHECK_LIBRARIES,
1198 COPY_FILES,
1199 LAST;
1200 public static Pk.Status enum_from_string (string status);
1201 public static unowned string enum_to_localised_text (Pk.Status status);
1202 public static unowned string enum_to_string (Pk.Status status);
1203 }
1204 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cname = "PkTransactionFlagEnum", cprefix = "PK_TRANSACTION_FLAG_ENUM_", type_id = "pk_transaction_flag_enum_get_type ()")]
1205 [GIR (name = "TransactionFlagEnum")]
1206 public enum TransactionFlag {
1207 NONE,
1208 ONLY_TRUSTED,
1209 SIMULATE,
1210 ONLY_DOWNLOAD,
1211 ALLOW_REINSTALL,
1212 JUST_REINSTALL,
1213 ALLOW_DOWNGRADE,
1214 LAST;
1215 public static Pk.Bitfield bitfield_from_string (string transaction_flags);
1216 public static string bitfield_to_string (Pk.Bitfield transaction_flags);
1217 public static Pk.TransactionFlag enum_from_string (string transaction_flag);
1218 public static unowned string enum_to_string (Pk.TransactionFlag transaction_flag);
1219 }
1220 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cname = "PkUpdateStateEnum", cprefix = "PK_UPDATE_STATE_ENUM_", type_id = "pk_update_state_enum_get_type ()")]
1221 [GIR (name = "UpdateStateEnum")]
1222 public enum UpdateState {
1223 UNKNOWN,
1224 STABLE,
1225 UNSTABLE,
1226 TESTING,
1227 LAST;
1228 public static Pk.UpdateState enum_from_string (string update_state);
1229 public static unowned string enum_to_string (Pk.UpdateState update_state);
1230 }
1231 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cname = "PkUpgradeKindEnum", cprefix = "PK_UPGRADE_KIND_ENUM_", type_id = "pk_upgrade_kind_enum_get_type ()")]
1232 [GIR (name = "UpgradeKindEnum")]
1233 public enum UpgradeKind {
1234 UNKNOWN,
1235 MINIMAL,
1236 DEFAULT,
1237 COMPLETE,
1238 LAST;
1239 public static Pk.UpgradeKind enum_from_string (string upgrade_kind);
1240 public static unowned string enum_to_string (Pk.UpgradeKind upgrade_kind);
1241 }
1242 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cprefix = "PK_CLIENT_ERROR_")]
1243 public errordomain ClientError {
1244 FAILED,
1245 FAILED_AUTH,
1246 NO_TID,
1247 ALREADY_TID,
1248 ROLE_UNKNOWN,
1249 CANNOT_START_DAEMON,
1250 INVALID_INPUT,
1251 INVALID_FILE,
1252 NOT_SUPPORTED,
1253 DECLINED_SIMULATION,
1254 LAST;
1255 public static GLib.Quark quark ();
1256 }
1257 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cprefix = "PK_CONTROL_ERROR_")]
1258 public errordomain ControlError {
1259 FAILED,
1260 CANNOT_START_DAEMON;
1261 public static GLib.Quark quark ();
1262 }
1263 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cprefix = "PK_OFFLINE_ERROR_")]
1264 public errordomain OfflineError {
1265 FAILED,
1266 INVALID_VALUE,
1267 NO_DATA,
1268 LAST;
1269 public static GLib.Quark quark ();
1270 }
1271 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", instance_pos = 1.9)]
1272 public delegate bool PackageSackFilterFunc (Pk.Package package);
1273 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", instance_pos = 2.9)]
1274 public delegate void ProgressCallback (Pk.Progress progress, Pk.ProgressType type);
1275 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cname = "PK_DBUS_INTERFACE")]
1276 public const string DBUS_INTERFACE;
1277 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cname = "PK_DBUS_INTERFACE_OFFLINE")]
1278 public const string DBUS_INTERFACE_OFFLINE;
1279 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cname = "PK_DBUS_INTERFACE_TRANSACTION")]
1280 public const string DBUS_INTERFACE_TRANSACTION;
1281 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cname = "PK_DBUS_PATH")]
1282 public const string DBUS_PATH;
1283 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cname = "PK_DBUS_SERVICE")]
1284 public const string DBUS_SERVICE;
1285 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cname = "PK_DESKTOP_DEFAULT_APPLICATION_DIR")]
1286 public const string DESKTOP_DEFAULT_APPLICATION_DIR;
1287 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cname = "PK_MAJOR_VERSION")]
1288 public const int MAJOR_VERSION;
1289 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cname = "PK_MICRO_VERSION")]
1290 public const int MICRO_VERSION;
1291 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cname = "PK_MINOR_VERSION")]
1292 public const int MINOR_VERSION;
1293 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cname = "PK_OFFLINE_DESTDIR")]
1294 public const string OFFLINE_DESTDIR;
1295 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cname = "PK_OFFLINE_RESULTS_GROUP")]
1296 public const string OFFLINE_RESULTS_GROUP;
1297 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cname = "PK_PACKAGE_IDS_DELIM")]
1298 public const string PACKAGE_IDS_DELIM;
1299 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cname = "PK_PACKAGE_ID_ARCH")]
1300 public const int PACKAGE_ID_ARCH;
1301 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cname = "PK_PACKAGE_ID_DATA")]
1302 public const int PACKAGE_ID_DATA;
1303 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cname = "PK_PACKAGE_ID_NAME")]
1304 public const int PACKAGE_ID_NAME;
1305 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cname = "PK_PACKAGE_ID_VERSION")]
1306 public const int PACKAGE_ID_VERSION;
1307 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cname = "PK_SYSTEM_PACKAGE_CACHE_FILENAME")]
1308 public const string SYSTEM_PACKAGE_CACHE_FILENAME;
1309 [CCode (cheader_filename = "packagekit-glib2/packagekit.h", cname = "PK_SYSTEM_PACKAGE_LIST_FILENAME")]
1310 public const string SYSTEM_PACKAGE_LIST_FILENAME;
1311 [CCode (cheader_filename = "packagekit-glib2/packagekit.h")]
1312 public static void common_test (void* user_data);
1313 [CCode (cheader_filename = "packagekit-glib2/packagekit.h")]
1314 public static void debug_add_log_domain (string log_domain);
1315 [CCode (cheader_filename = "packagekit-glib2/packagekit.h")]
1316 public static bool debug_is_verbose ();
1317 [CCode (cheader_filename = "packagekit-glib2/packagekit.h")]
1318 public static void debug_set_verbose (bool verbose);
1319 [CCode (cheader_filename = "packagekit-glib2/packagekit.h")]
1320 public static unowned string enum_find_string (Pk.EnumMatch table, uint value);
1321 [CCode (cheader_filename = "packagekit-glib2/packagekit.h")]
1322 public static uint enum_find_value (Pk.EnumMatch table, string string);
1323 [CCode (cheader_filename = "packagekit-glib2/packagekit.h")]
1324 public static void enum_test (void* user_data);
1325 [CCode (cheader_filename = "packagekit-glib2/packagekit.h")]
1326 public static string get_distro_id ();
1327 [CCode (cheader_filename = "packagekit-glib2/packagekit.h")]
1328 public static string iso8601_from_date (GLib.Date date);
1329 [CCode (cheader_filename = "packagekit-glib2/packagekit.h")]
1330 public static string iso8601_present ();
1331 [CCode (cheader_filename = "packagekit-glib2/packagekit.h")]
1332 public static bool offline_auth_cancel () throws GLib.Error;
1333 [CCode (cheader_filename = "packagekit-glib2/packagekit.h")]
1334 public static bool offline_auth_clear_results () throws GLib.Error;
1335 [CCode (cheader_filename = "packagekit-glib2/packagekit.h")]
1336 public static bool offline_auth_invalidate () throws GLib.Error;
1337 [CCode (cheader_filename = "packagekit-glib2/packagekit.h")]
1338 public static bool offline_auth_set_action (Pk.OfflineAction action) throws GLib.Error;
1339 [CCode (cheader_filename = "packagekit-glib2/packagekit.h")]
1340 public static bool offline_auth_set_prepared_ids (string package_ids) throws GLib.Error;
1341 [CCode (cheader_filename = "packagekit-glib2/packagekit.h")]
1342 public static bool offline_auth_set_results (Pk.Results results) throws GLib.Error;
1343 [CCode (cheader_filename = "packagekit-glib2/packagekit.h")]
1344 public static bool offline_auth_trigger (Pk.OfflineAction action) throws GLib.Error;
1345 [CCode (cheader_filename = "packagekit-glib2/packagekit.h")]
1346 public static bool offline_cancel (GLib.Cancellable? cancellable = null) throws GLib.Error;
1347 [CCode (cheader_filename = "packagekit-glib2/packagekit.h")]
1348 public static bool offline_clear_results (GLib.Cancellable? cancellable = null) throws GLib.Error;
1349 [CCode (cheader_filename = "packagekit-glib2/packagekit.h")]
1350 public static Pk.OfflineAction offline_get_action () throws GLib.Error;
1351 [CCode (cheader_filename = "packagekit-glib2/packagekit.h")]
1352 public static GLib.FileMonitor offline_get_action_monitor (GLib.Cancellable? cancellable = null) throws GLib.Error;
1353 [CCode (array_length = false, array_null_terminated = true, cheader_filename = "packagekit-glib2/packagekit.h")]
1354 public static string[] offline_get_prepared_ids () throws GLib.Error;
1355 [CCode (cheader_filename = "packagekit-glib2/packagekit.h")]
1356 public static GLib.FileMonitor offline_get_prepared_monitor (GLib.Cancellable? cancellable = null) throws GLib.Error;
1357 [CCode (cheader_filename = "packagekit-glib2/packagekit.h")]
1358 public static Pk.PackageSack offline_get_prepared_sack () throws GLib.Error;
1359 [CCode (cheader_filename = "packagekit-glib2/packagekit.h")]
1360 public static Pk.Results offline_get_results () throws GLib.Error;
1361 [CCode (cheader_filename = "packagekit-glib2/packagekit.h")]
1362 public static uint64 offline_get_results_mtime () throws GLib.Error;
1363 [CCode (cheader_filename = "packagekit-glib2/packagekit.h")]
1364 public static bool offline_trigger (Pk.OfflineAction action, GLib.Cancellable? cancellable = null) throws GLib.Error;
1365 [CCode (cheader_filename = "packagekit-glib2/packagekit.h")]
1366 public static void polkit_agent_close ();
1367 [CCode (cheader_filename = "packagekit-glib2/packagekit.h")]
1368 public static int polkit_agent_open ();
1369 [CCode (array_length = false, array_null_terminated = true, cheader_filename = "packagekit-glib2/packagekit.h")]
1370 public static string[] ptr_array_to_strv (GLib.GenericArray<string> array);
1371}

Subscribers

People subscribed via source and target branches