1
<!DOCTYPE node PUBLIC
2
"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
3
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd" [
4
  <!ENTITY ERROR_GENERAL "org.freedesktop.PackageKit.Denied">
5
]>
6
<node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
7
  <interface name="org.freedesktop.PackageKit.Transaction">
8
    <doc:doc>
9
      <doc:description>
10
        <doc:para>
11
          The transaction interface is used for interacting with individual transactions.
12
        </doc:para>
13
      </doc:description>
14
    </doc:doc>
15
16
    <!--*****************************************************************************************-->
17
    <property name="Role" type="s" access="read">
18
      <doc:doc>
19
        <doc:description>
20
          <doc:para>
21
            The transaction role, e.g. <doc:tt>update-system</doc:tt>.
22
          </doc:para>
23
        </doc:description>
24
      </doc:doc>
25
    </property>
26
    <property name="Status" type="s" access="read">
27
      <doc:doc>
28
        <doc:description>
29
          <doc:para>
30
            The transaction status, e.g. <doc:tt>downloading</doc:tt>.
31
          </doc:para>
32
        </doc:description>
33
      </doc:doc>
34
    </property>
35
    <property name="LastPackage" type="s" access="read">
36
      <doc:doc>
37
        <doc:description>
38
          <doc:para>
39
            The last package_id that was processed, e.g. <doc:tt>hal;0.1.2;i386;fedora</doc:tt>.
40
          </doc:para>
41
        </doc:description>
42
      </doc:doc>
43
    </property>
44
    <property name="Uid" type="u" access="read">
45
      <doc:doc>
46
        <doc:description>
47
          <doc:para>
48
            The uid of the user that started the transaction.
49
          </doc:para>
50
        </doc:description>
51
      </doc:doc>
52
    </property>
53
    <property name="Percentage" type="u" access="read">
54
      <doc:doc>
55
        <doc:description>
56
          <doc:para>
57
            The percentage complete of the transaction.
58
          </doc:para>
59
          <doc:para>
60
            Backends should set this value to 101 if the amount complete cannot be calculated.
61
          </doc:para>
62
        </doc:description>
63
      </doc:doc>
64
    </property>
65
    <property name="Subpercentage" type="u" access="read">
66
      <doc:doc>
67
        <doc:description>
68
          <doc:para>
69
            The sub-percentage complete of the transaction.
70
          </doc:para>
71
          <doc:para>
72
            Backends should set this value to 101 if the amount complete cannot be calculated.
73
          </doc:para>
74
        </doc:description>
75
      </doc:doc>
76
    </property>
77
    <property name="AllowCancel" type="b" access="read">
78
      <doc:doc>
79
        <doc:description>
80
          <doc:para>
81
            If the transaction can be cancelled.
82
          </doc:para>
83
        </doc:description>
84
      </doc:doc>
85
    </property>
86
    <property name="CallerActive" type="b" access="read">
87
      <doc:doc>
88
        <doc:description>
89
          <doc:para>
90
            If the original caller of the method is still connected to the system bus.
91
            This is usually an indication that the client can handle it's own error handling and
92
            EULA callbacks rather than another program taking over.
93
          </doc:para>
94
        </doc:description>
95
      </doc:doc>
96
    </property>
97
    <property name="ElapsedTime" type="u" access="read">
98
      <doc:doc>
99
        <doc:description>
100
          <doc:para>
101
            The amount of time elapsed during the transaction in seconds.
102
          </doc:para>
103
        </doc:description>
104
      </doc:doc>
105
    </property>
106
    <property name="RemainingTime" type="u" access="read">
107
      <doc:doc>
108
        <doc:description>
109
          <doc:para>
110
            The estimated time remaining of the transaction in seconds, or 0 if not known.
111
          </doc:para>
112
        </doc:description>
113
      </doc:doc>
114
    </property>
115
    <property name="Speed" type="u" access="read">
116
      <doc:doc>
117
        <doc:description>
118
          <doc:para>
119
            The estimated speed of the transaction (copying, downloading, etc.) in bits per second, or 0 if not known.
120
          </doc:para>
121
        </doc:description>
122
      </doc:doc>
123
    </property>
124
125
    <!--*****************************************************************************************-->
126
    <method name="SetHints">
127
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
128
      <doc:doc>
129
        <doc:description>
130
          <doc:para>
131
            This method allows the calling session to set transaction hints for
132
            the package manager which can change as the transaction runs.
133
          </doc:para>
134
          <doc:para>
135
            This method can be sent before the transaction has been run or
136
            whilst it is running. There is no limit to the number of times this
137
            method can be sent, although some backends may only use the values
138
            that were set before the transaction was started.
139
          </doc:para>
140
          <doc:para>
141
            Each parameter value is optional.
142
          </doc:para>
143
        </doc:description>
144
      </doc:doc>
145
      <arg type="as" name="hints" direction="in">
146
        <doc:doc>
147
          <doc:summary>
148
            <doc:para>
149
              The values as an array of strings, for example
150
              <doc:tt>['locale=en_GB.utf8','idle=true','interactive=false','cache-age=3600']</doc:tt>.
151
            </doc:para>
152
            <doc:para>
153
              The following parameter values are understood:
154
            </doc:para>
155
            <doc:list>
156
              <doc:item>
157
                <doc:term>locale</doc:term>
158
                <doc:definition>
159
                  The locale code, for example <doc:tt>en_GB</doc:tt>.
160
                </doc:definition>
161
              </doc:item>
162
              <doc:item>
163
                <doc:term>background</doc:term>
164
                <doc:definition>
165
                  If the method should be executed as a background task, valid
166
                  values are <doc:tt>true</doc:tt> and <doc:tt>false</doc:tt>,
167
                  and other values will result in an error.
168
                  Background tasks are normally treated with a low priority than
169
                  regular tasks, and normally only use idle CPU and network.
170
                </doc:definition>
171
              </doc:item>
172
              <doc:item>
173
                <doc:term>interactive</doc:term>
174
                <doc:definition>
175
                  If the method can ask interactive questions whilst running,
176
                  valid values are <doc:tt>true</doc:tt> and <doc:tt>false</doc:tt>,
177
                  and other values will result in an error.
178
                </doc:definition>
179
              </doc:item>
180
              <doc:item>
181
                <doc:term>cache-age</doc:term>
182
                <doc:definition>
183
                  This allows the frontend to set how fresh it needs the
184
                  metadata used in the transaction.
185
                  This allows fine control of the age of the returned results,
186
                  but means the frontend probably has to query the updates
187
                  check value and pass it this value for <doc:tt>GetUpdates</doc:tt>,
188
                  and choose something sane otherwise.
189
                  Most interactive clients will set this to <doc:tt>intmax</doc:tt>doc:tt>
190
                  which means "never download new metadata, unless required to return results".
191
                  Most transactions will not have this value set.
192
                </doc:definition>
193
              </doc:item>
194
            </doc:list>
195
            <doc:para>
196
              Other values will cause a verbose warning in the daemon, but will
197
              not cause the method to fail. This will preserve forward and
198
              backwards compatibility for future API versions.
199
            </doc:para>
200
          </doc:summary>
201
        </doc:doc>
202
      </arg>
203
    </method>
204
205
    <!--*****************************************************************************************-->
206
    <method name="AcceptEula">
207
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
208
      <doc:doc>
209
        <doc:description>
210
          <doc:para>
211
            This method allows the user to accept a end user licence agreement.
212
          </doc:para>
213
        </doc:description>
214
        <doc:permission>Callers need the org.freedesktop.packagekit.accept-eula</doc:permission>
215
      </doc:doc>
216
      <arg type="s" name="eula_id" direction="in">
217
        <doc:doc>
218
          <doc:summary>
219
            <doc:para>
220
              A valid EULA ID
221
            </doc:para>
222
          </doc:summary>
223
        </doc:doc>
224
      </arg>
225
    </method>
226
227
    <!--*****************************************************************************************-->
228
    <method name="Cancel">
229
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
230
      <doc:doc>
231
        <doc:description>
232
          <doc:para>
233
            This method cancels a transaction that is already running
234
          </doc:para>
235
        </doc:description>
236
      </doc:doc>
237
    </method>
238
239
    <!--*****************************************************************************************-->
240
    <method name="DownloadPackages">
241
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
242
      <doc:doc>
243
        <doc:description>
244
          <doc:para>
245
            This method downloads packages into a temporary directory.
246
          </doc:para>
247
          <doc:para>
248
            This method should emit one
249
            <doc:tt>Files</doc:tt> signal for each package that is downloaded,
250
            with the file list set as the name of the complete downloaded file
251
            and directory, so for example:
252
          </doc:para>
253
          <doc:para>
254
            <doc:tt>DownloadPackages('hal;0.1.2;i386;fedora','hal-info;2009-09-07;no-arch;updates')</doc:tt>
255
            should send two signals, e.g.
256
            <doc:tt>Files('hal;0.1.2;i386;fedora', '/tmp/hal-0.1.2.i386.rpm')</doc:tt>
257
            and
258
            <doc:tt>Files('hal-info;2009-09-07;no-arch;updates', '/tmp/hal-info-2009-09-07.noarch.rpm')</doc:tt>.
259
          </doc:para>
260
        </doc:description>
261
      </doc:doc>
262
      <arg type="b" name="store_in_cache" direction="in">
263
        <doc:doc>
264
          <doc:summary>
265
            <doc:para>
266
              If the downloaded files should be stored in the system
267
              package cache rather than copied into a newly created
268
              directory.
269
            </doc:para>
270
            <doc:para>
271
              See <doc:ulink url="http://packagekit.org/gtk-doc/introduction-ideas-transactions.html">
272
              the developer docs</doc:ulink> for more details on how
273
              this is supposed to work.
274
            </doc:para>
275
          </doc:summary>
276
        </doc:doc>
277
      </arg>
278
      <arg type="as" name="package_ids" direction="in">
279
        <doc:doc>
280
          <doc:summary>
281
            <doc:para>
282
              An array of package IDs.
283
            </doc:para>
284
          </doc:summary>
285
        </doc:doc>
286
      </arg>
287
    </method>
288
289
    <!--*****************************************************************************************-->
290
    <method name="GetCategories">
291
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
292
      <doc:doc>
293
        <doc:description>
294
          <doc:para>
295
            This method return the collection categories
296
          </doc:para>
297
        </doc:description>
298
          <doc:para>
299
            This method typically emits
300
            <doc:tt>Categories</doc:tt> and <doc:tt>Error</doc:tt>.
301
          </doc:para>
302
          <doc:para>
303
            Note: Categories can be returned that represent groups of
304
            packages in a specific repository.
305
            These will have a category prefix of <doc:tt>repo:</doc:tt>
306
            which should be understood by <doc:tt>SearchGroups</doc:tt>
307
            if this feature is used.
308
          </doc:para>
309
      </doc:doc>
310
    </method>
311
312
    <!--*****************************************************************************************-->
313
    <method name="GetDepends">
314
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
315
      <doc:doc>
316
        <doc:description>
317
          <doc:para>
318
            This method returns packages that this package depends on.
319
          </doc:para>
320
          <doc:para>
321
            This method typically emits
322
            <doc:tt>Progress</doc:tt>,
323
            <doc:tt>Status</doc:tt> and
324
            <doc:tt>Error</doc:tt> and
325
            <doc:tt>Package</doc:tt>.
326
          </doc:para>
327
          <doc:para>
328
            <doc:tt>Package</doc:tt> enumerated types should be
329
            <doc:tt>available</doc:tt> or <doc:tt>installed</doc:tt>.
330
          </doc:para>
331
        </doc:description>
332
      </doc:doc>
333
      <arg type="s" name="filter" direction="in">
334
        <doc:doc>
335
          <doc:summary>
336
            <doc:para>
337
              A correct filter, e.g. <doc:tt>none</doc:tt> or <doc:tt>installed;~devel</doc:tt>
338
            </doc:para>
339
          </doc:summary>
340
        </doc:doc>
341
      </arg>
342
      <arg type="as" name="package_ids" direction="in">
343
        <doc:doc>
344
          <doc:summary>
345
            <doc:para>
346
              An array of package IDs.
347
            </doc:para>
348
          </doc:summary>
349
        </doc:doc>
350
      </arg>
351
      <arg type="b" name="recursive" direction="in">
352
        <doc:doc>
353
          <doc:summary>
354
            <doc:para>
355
              Either <doc:tt>true</doc:tt> or <doc:tt>false</doc:tt>. If yes then the requirements should be
356
              returned for all packages returned.
357
              This means if gnome-power-manager depends on NetworkManager
358
              and NetworkManager depends on HAL, then GetDepends on
359
              gnome-power-manager should return both HAL and NetworkManager.
360
            </doc:para>
361
          </doc:summary>
362
        </doc:doc>
363
      </arg>
364
    </method>
365
366
    <!--*****************************************************************************************-->
367
    <method name="GetDetails">
368
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
369
      <doc:doc>
370
        <doc:description>
371
          <doc:para>
372
            This method should return all the details about a specific
373
            <doc:tt>package_id</doc:tt>.
374
          </doc:para>
375
          <doc:para>
376
            This method typically emits
377
            <doc:tt>Progress</doc:tt>,
378
            <doc:tt>Status</doc:tt> and
379
            <doc:tt>Error</doc:tt> and
380
            <doc:tt>Details</doc:tt>.
381
          </doc:para>
382
        </doc:description>
383
      </doc:doc>
384
      <arg type="as" name="package_ids" direction="in">
385
        <doc:doc>
386
          <doc:summary>
387
            <doc:para>
388
              An array of package IDs.
389
            </doc:para>
390
          </doc:summary>
391
        </doc:doc>
392
      </arg>
393
    </method>
394
395
    <!--*****************************************************************************************-->
396
    <method name="GetFiles">
397
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
398
      <doc:doc>
399
        <doc:description>
400
          <doc:para>
401
            This method should return the file list of the <doc:tt>package_id</doc:tt>.
402
          </doc:para>
403
          <doc:para>
404
            This method typically emits
405
            <doc:tt>Progress</doc:tt>,
406
            <doc:tt>Status</doc:tt> and
407
            <doc:tt>Error</doc:tt> and
408
            <doc:tt>Files</doc:tt>.
409
          </doc:para>
410
        </doc:description>
411
      </doc:doc>
412
      <arg type="as" name="package_ids" direction="in">
413
        <doc:doc>
414
          <doc:summary>
415
            <doc:para>
416
              An array of package IDs.
417
            </doc:para>
418
          </doc:summary>
419
        </doc:doc>
420
      </arg>
421
    </method>
422
423
    <!--*****************************************************************************************-->
424
    <method name="GetOldTransactions">
425
      <doc:doc>
426
        <doc:description>
427
          <doc:para>
428
            This method allows a client to view details for old transactions.
429
          </doc:para>
430
        </doc:description>
431
      </doc:doc>
432
      <arg type="u" name="number" direction="in">
433
        <doc:doc>
434
          <doc:summary>
435
            <doc:para>
436
              The number of past transactions, or 0 for all known transactions.
437
            </doc:para>
438
          </doc:summary>
439
        </doc:doc>
440
      </arg>
441
    </method>
442
443
    <!--*****************************************************************************************-->
444
    <method name="GetPackages">
445
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
446
      <doc:doc>
447
        <doc:description>
448
          <doc:para>
449
            This method returns all the packages without a search term.
450
          </doc:para>
451
          <doc:para>
452
            This method typically emits
453
            <doc:tt>Progress</doc:tt>,
454
            <doc:tt>Error</doc:tt> and
455
            <doc:tt>Package</doc:tt>.
456
          </doc:para>
457
          <doc:para>
458
            <doc:tt>Package</doc:tt> enumerated types should be
459
            <doc:tt>available</doc:tt> or <doc:tt>installed</doc:tt>.
460
          </doc:para>
461
        </doc:description>
462
      </doc:doc>
463
      <arg type="s" name="filter" direction="in">
464
        <doc:doc>
465
          <doc:summary>
466
            <doc:para>
467
              A correct filter, e.g. <doc:tt>none</doc:tt> or <doc:tt>installed;~devel</doc:tt>
468
            </doc:para>
469
          </doc:summary>
470
        </doc:doc>
471
      </arg>
472
    </method>
473
474
    <!--*****************************************************************************************-->
475
    <method name="GetRepoList">
476
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
477
      <doc:doc>
478
        <doc:description>
479
          <doc:para>
480
            This method returns the list of repositories used in the system.
481
          </doc:para>
482
          <doc:para>
483
            This method should emit <doc:tt>RepoDetail</doc:tt>.
484
          </doc:para>
485
        </doc:description>
486
      </doc:doc>
487
      <arg type="s" name="filter" direction="in">
488
        <doc:doc>
489
          <doc:summary>
490
            <doc:para>
491
              A correct filter, e.g. <doc:tt>none</doc:tt> or <doc:tt>installed;~devel</doc:tt>
492
            </doc:para>
493
          </doc:summary>
494
        </doc:doc>
495
      </arg>
496
    </method>
497
498
    <!--*****************************************************************************************-->
499
    <method name="GetRequires">
500
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
501
      <doc:doc>
502
        <doc:description>
503
          <doc:para>
504
            This method returns packages that depend on this package.
505
            This is useful to know, as if <doc:tt>package_id</doc:tt> is being
506
            removed, we can warn the user what else would be removed.
507
          </doc:para>
508
          <doc:para>
509
            This method typically emits
510
            <doc:tt>Progress</doc:tt>,
511
            <doc:tt>Status</doc:tt> and
512
            <doc:tt>Error</doc:tt> and
513
            <doc:tt>Package</doc:tt>.
514
          </doc:para>
515
          <doc:para>
516
            <doc:tt>Package</doc:tt> enumerated types should be
517
            <doc:tt>available</doc:tt> or <doc:tt>installed</doc:tt>.
518
          </doc:para>
519
        </doc:description>
520
      </doc:doc>
521
      <arg type="s" name="filter" direction="in">
522
        <doc:doc>
523
          <doc:summary>
524
            <doc:para>
525
              A correct filter, e.g. <doc:tt>none</doc:tt> or <doc:tt>installed;~devel</doc:tt>
526
            </doc:para>
527
          </doc:summary>
528
        </doc:doc>
529
      </arg>
530
      <arg type="as" name="package_ids" direction="in">
531
        <doc:doc>
532
          <doc:summary>
533
            <doc:para>
534
              An array of package IDs.
535
            </doc:para>
536
          </doc:summary>
537
        </doc:doc>
538
      </arg>
539
      <arg type="b" name="recursive" direction="in">
540
        <doc:doc>
541
          <doc:summary>
542
            <doc:para>
543
              Either <doc:tt>true</doc:tt> or <doc:tt>false</doc:tt>. If yes then the requirements should be
544
              returned for all packages returned.
545
              This means if gnome-power-manager depends on NetworkManager
546
              and NetworkManager depends on HAL, then GetRequires on
547
              HAL should return both gnome-power-manager and NetworkManager.
548
            </doc:para>
549
          </doc:summary>
550
        </doc:doc>
551
      </arg>
552
    </method>
553
554
    <!--*****************************************************************************************-->
555
    <method name="GetUpdateDetail">
556
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
557
      <doc:doc>
558
        <doc:description>
559
          <doc:para>
560
            This method returns details about a specific update.
561
          </doc:para>
562
          <doc:para>
563
            This method typically emits
564
            <doc:tt>UpdateDetail</doc:tt> and
565
            <doc:tt>Error</doc:tt>
566
          </doc:para>
567
        </doc:description>
568
      </doc:doc>
569
      <arg type="as" name="package_ids" direction="in">
570
        <doc:doc>
571
          <doc:summary>
572
            <doc:para>
573
              An array of package IDs.
574
            </doc:para>
575
          </doc:summary>
576
        </doc:doc>
577
      </arg>
578
    </method>
579
580
    <!--*****************************************************************************************-->
581
    <method name="GetUpdates">
582
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
583
      <doc:doc>
584
        <doc:description>
585
          <doc:para>
586
            This method should return a list of packages that are installed and are upgradable.
587
            It should only return the newest update for each installed package.
588
          </doc:para>
589
          <doc:para>
590
            This method typically emits
591
            <doc:tt>Progress</doc:tt>,
592
            <doc:tt>Error</doc:tt> and
593
            <doc:tt>Package</doc:tt>.
594
          </doc:para>
595
          <doc:para>
596
            <doc:tt>Package</doc:tt> enumerated types should be
597
            <doc:tt>blocked</doc:tt>,
598
            <doc:tt>low</doc:tt>,
599
            <doc:tt>normal</doc:tt>,
600
            <doc:tt>important</doc:tt> or
601
            <doc:tt>security</doc:tt>.
602
          </doc:para>
603
          <doc:para>
604
            The status <doc:tt>blocked</doc:tt> signifies the package cannot be
605
            updated, probably due to other dependencies not being met.
606
            This type allows the GUI tools to show to the user that an update
607
            exists, but cannot be installed.
608
            The reason for it not being installed should be put into the update
609
            description when doing GetUpdateDetail.
610
          </doc:para>
611
          <doc:para>
612
            A filter such as <doc:tt>basename</doc:tt> or <doc:tt>gui</doc:tt>
613
            is also useful if you want to do filtering on the method to only show
614
            the main packages rather than the complete list.
615
            The complete list is available but specifying <doc:tt>none</doc:tt>
616
            as the filter.
617
            Using no filter which may be useful in advanced tools or when using
618
            libpackagekit and searching for an update of a specific name.
619
            Other filter types may be present, but can be safely ignored of the
620
            backend does not support them.
621
          </doc:para>
622
        </doc:description>
623
      </doc:doc>
624
      <arg type="s" name="filter" direction="in">
625
        <doc:doc>
626
          <doc:summary>
627
            <doc:para>
628
              A correct filter, e.g. <doc:tt>none</doc:tt> or <doc:tt>installed;~devel</doc:tt>
629
            </doc:para>
630
          </doc:summary>
631
        </doc:doc>
632
      </arg>
633
    </method>
634
635
    <!--*****************************************************************************************-->
636
    <method name="GetDistroUpgrades">
637
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
638
      <doc:doc>
639
        <doc:description>
640
          <doc:para>
641
            This method should return a list of distribution upgrades that are
642
            available.
643
            It should not return updates, only major upgrades.
644
          </doc:para>
645
          <doc:para>
646
            This method typically emits
647
            <doc:tt>DistroUpgrade</doc:tt>,
648
            <doc:tt>Error</doc:tt> and
649
          </doc:para>
650
        </doc:description>
651
      </doc:doc>
652
    </method>
653
654
    <!--*****************************************************************************************-->
655
    <method name="InstallFiles">
656
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
657
      <doc:doc>
658
        <doc:description>
659
          <doc:para>
660
            This method installs local package files onto the local system.
661
          </doc:para>
662
          <doc:para>
663
            The installer should always install extra dependant packages automatically.
664
          </doc:para>
665
          <doc:para>
666
            This method typically emits
667
            <doc:tt>Progress</doc:tt>,
668
            <doc:tt>Status</doc:tt> and
669
            <doc:tt>Error</doc:tt> and
670
            <doc:tt>Package</doc:tt>.
671
          </doc:para>
672
          <doc:para>
673
            <doc:tt>Package</doc:tt> enumerated types should be
674
            <doc:tt>downloading</doc:tt>,
675
            <doc:tt>updating</doc:tt>,
676
            <doc:tt>installing</doc:tt> or
677
            <doc:tt>removing</doc:tt>.
678
          </doc:para>
679
        </doc:description>
680
        <doc:permission>Callers need the org.freedesktop.packagekit.localinstall-untrusted</doc:permission>
681
      </doc:doc>
682
      <arg type="b" name="only_trusted" direction="in">
683
        <doc:doc>
684
          <doc:summary>
685
            <doc:para>
686
              If the transaction is only allowed to install trusted files.
687
              Unsigned files should not be installed if this parameter is <doc:tt>TRUE</doc:tt>.
688
            </doc:para>
689
            <doc:para>
690
              If this method is can only install trusted files, and the files are unsigned, then
691
              the backend will send a <doc:tt>ErrorCode(missing-gpg-signature)</doc:tt>.
692
              On recieving this error, the client may choose to retry with only_trusted <doc:tt>FALSE</doc:tt>
693
              after gaining further authentication.
694
            </doc:para>
695
          </doc:summary>
696
        </doc:doc>
697
      </arg>
698
      <arg type="as" name="full_paths" direction="in">
699
        <doc:doc>
700
          <doc:summary>
701
            <doc:para>
702
              An array of full path and filenames to packages.
703
            </doc:para>
704
          </doc:summary>
705
        </doc:doc>
706
      </arg>
707
    </method>
708
709
    <!--*****************************************************************************************-->
710
    <method name="InstallPackages">
711
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
712
      <doc:doc>
713
        <doc:description>
714
          <doc:para>
715
            This method installs new packages on the local system.
716
          </doc:para>
717
          <doc:para>
718
            The installer should always install extra packages automatically
719
            as the use could call GetDepends prior to the install if a confirmation
720
            is required in the UI.
721
          </doc:para>
722
          <doc:para>
723
            This method typically emits
724
            <doc:tt>Progress</doc:tt>,
725
            <doc:tt>Status</doc:tt> and
726
            <doc:tt>Error</doc:tt> and
727
            <doc:tt>Package</doc:tt>.
728
          </doc:para>
729
          <doc:para>
730
            <doc:tt>Package</doc:tt> enumerated types should be
731
            <doc:tt>downloading</doc:tt>,
732
            <doc:tt>updating</doc:tt>,
733
            <doc:tt>installing</doc:tt> or
734
            <doc:tt>removing</doc:tt>.
735
          </doc:para>
736
        </doc:description>
737
        <doc:permission>Callers need the org.freedesktop.packagekit.install-untrusted</doc:permission>
738
      </doc:doc>
739
      <arg type="b" name="only_trusted" direction="in">
740
        <doc:doc>
741
          <doc:summary>
742
            <doc:para>
743
              If the transaction is only allowed to install trusted packages.
744
              Unsigned packages should not be installed if this parameter is <doc:tt>TRUE</doc:tt>.
745
            </doc:para>
746
            <doc:para>
747
              If this method is can only install trusted packages, and the packages are unsigned, then
748
              the backend will send a <doc:tt>ErrorCode(missing-gpg-signature)</doc:tt>.
749
              On recieving this error, the client may choose to retry with only_trusted <doc:tt>FALSE</doc:tt>
750
              after gaining further authentication.
751
            </doc:para>
752
          </doc:summary>
753
        </doc:doc>
754
      </arg>
755
      <arg type="as" name="package_ids" direction="in">
756
        <doc:doc>
757
          <doc:summary>
758
            <doc:para>
759
              An array of package IDs.
760
            </doc:para>
761
          </doc:summary>
762
        </doc:doc>
763
      </arg>
764
    </method>
765
766
    <!--*****************************************************************************************-->
767
    <method name="InstallSignature">
768
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
769
      <doc:doc>
770
        <doc:description>
771
          <doc:para>
772
            This method allows us to install new security keys.
773
          </doc:para>
774
        </doc:description>
775
        <doc:permission>Callers need the org.freedesktop.packagekit.install-signature</doc:permission>
776
      </doc:doc>
777
      <arg type="s" name="sig_type" direction="in">
778
        <doc:doc>
779
          <doc:summary>
780
            <doc:para>
781
              A key type, e.g. <doc:tt>gpg</doc:tt>
782
            </doc:para>
783
          </doc:summary>
784
        </doc:doc>
785
      </arg>
786
      <arg type="s" name="key_id" direction="in">
787
        <doc:doc>
788
          <doc:summary>
789
            <doc:para>
790
              A key ID, e.g. <doc:tt>BB7576AC</doc:tt>
791
            </doc:para>
792
          </doc:summary>
793
        </doc:doc>
794
      </arg>
795
      <arg type="s" name="package_id" direction="in">
796
        <doc:doc>
797
          <doc:summary>
798
            <doc:para>
799
              A PackageID for the package that the user is trying to install
800
            </doc:para>
801
          </doc:summary>
802
        </doc:doc>
803
      </arg>
804
    </method>
805
806
    <!--*****************************************************************************************-->
807
    <method name="RefreshCache">
808
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
809
      <doc:doc>
810
        <doc:description>
811
          <doc:para>
812
            This method should fetch updated meta-data for all enabled repositories.
813
            This operation should be only scheduled when the computer is idle as
814
            the network connection will be very active, and will the computer will
815
            have have non-trivial levels of hard disk and processor activity.
816
            For these reasons, it should not be done automatically when on battery
817
            power.
818
          </doc:para>
819
          <doc:para>
820
            When fetching each software source, ensure to emit RepoDetail for the
821
            current source to give the user interface some extra details. Be sure to
822
            have the "enabled" field set to true, otherwise you wouldn't be fetching
823
            that source.
824
          </doc:para>
825
          <doc:para>
826
            This method typically emits
827
            <doc:tt>Progress</doc:tt>,
828
            <doc:tt>Error</doc:tt> and
829
            <doc:tt>RepoDetail</doc:tt>.
830
          </doc:para>
831
        </doc:description>
832
        <doc:permission>Callers need the org.freedesktop.packagekit.refresh-cache</doc:permission>
833
      </doc:doc>
834
      <arg type="b" name="force" direction="in">
835
        <doc:doc>
836
          <doc:summary>
837
            <doc:para>
838
              If the caches should be cleaned and reloaded even if there is valid, up to date data.
839
            </doc:para>
840
          </doc:summary>
841
        </doc:doc>
842
      </arg>
843
    </method>
844
845
    <!--*****************************************************************************************-->
846
    <method name="RemovePackages">
847
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
848
      <doc:doc>
849
        <doc:description>
850
          <doc:para>
851
            This method removes packages from the local system.
852
          </doc:para>
853
          <doc:para>
854
            This method typically emits
855
            <doc:tt>Progress</doc:tt>,
856
            <doc:tt>Status</doc:tt> and
857
            <doc:tt>Error</doc:tt> and
858
            <doc:tt>Package</doc:tt>.
859
          </doc:para>
860
          <doc:para>
861
            <doc:tt>Package</doc:tt> enumerated types should be
862
            <doc:tt>downloading</doc:tt>,
863
            <doc:tt>updating</doc:tt>,
864
            <doc:tt>installing</doc:tt> or
865
            <doc:tt>removing</doc:tt>.
866
          </doc:para>
867
        </doc:description>
868
        <doc:permission>Callers need the org.freedesktop.packagekit.remove</doc:permission>
869
      </doc:doc>
870
      <arg type="as" name="package_ids" direction="in">
871
        <doc:doc>
872
          <doc:summary>
873
            <doc:para>
874
              An array of package IDs.
875
            </doc:para>
876
          </doc:summary>
877
        </doc:doc>
878
      </arg>
879
      <arg type="b" name="allow_deps" direction="in">
880
        <doc:doc>
881
          <doc:summary>
882
            <doc:para>
883
              Either <doc:tt>true</doc:tt> or <doc:tt>false</doc:tt>.
884
              If <doc:tt>true</doc:tt> allow other packages to be removed with the package,
885
              but <doc:tt>false</doc:tt> should cause the script to abort if other packages
886
              are dependant on the package.
887
            </doc:para>
888
          </doc:summary>
889
        </doc:doc>
890
      </arg>
891
      <arg type="b" name="autoremove" direction="in">
892
        <doc:doc>
893
          <doc:summary>
894
            <doc:para>
895
              Either <doc:tt>true</doc:tt> or <doc:tt>false</doc:tt>.
896
              This option is only really interesting on embedded devices with a limited amount of
897
              flash storage.
898
              It suggests to the packagekit backend that dependencies installed at the same time as
899
              the package should also be removed if they are not required by anything else.
900
              For instance, if you install OpenOffice, it might download libneon as a dependency.
901
              When <doc:tt>auto_remove</doc:tt> is set to true, and you remove OpenOffice then
902
              libneon will also get removed automatically.
903
            </doc:para>
904
          </doc:summary>
905
        </doc:doc>
906
      </arg>
907
    </method>
908
909
    <!--*****************************************************************************************-->
910
    <method name="RepoEnable">
911
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
912
      <doc:doc>
913
        <doc:description>
914
          <doc:para>
915
            This method enables the repository specified.
916
          </doc:para>
917
        </doc:description>
918
        <doc:permission>Callers need the org.freedesktop.packagekit.repo-change</doc:permission>
919
      </doc:doc>
920
      <arg type="s" name="repo_id" direction="in">
921
        <doc:doc>
922
          <doc:summary>
923
            <doc:para>
924
              A repository identifier, e.g. <doc:tt>fedora-development-debuginfo</doc:tt>
925
            </doc:para>
926
          </doc:summary>
927
        </doc:doc>
928
      </arg>
929
      <arg type="b" name="enabled" direction="in">
930
        <doc:doc>
931
          <doc:summary>
932
            <doc:para>
933
              <doc:tt>true</doc:tt> if enabled, <doc:tt>false</doc:tt> if disabled.
934
            </doc:para>
935
          </doc:summary>
936
        </doc:doc>
937
      </arg>
938
    </method>
939
940
    <!--*****************************************************************************************-->
941
    <method name="RepoSetData">
942
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
943
      <doc:doc>
944
        <doc:description>
945
          <doc:para>
946
            This method allows arbitary data to be passed to the repository handler.
947
          </doc:para>
948
        </doc:description>
949
        <doc:permission>Callers need the org.freedesktop.packagekit.repo-change</doc:permission>
950
      </doc:doc>
951
      <arg type="s" name="repo_id" direction="in">
952
        <doc:doc>
953
          <doc:summary>
954
            <doc:para>
955
              A repository identifier, e.g. <doc:tt>fedora-development-debuginfo</doc:tt>
956
            </doc:para>
957
          </doc:summary>
958
        </doc:doc>
959
      </arg>
960
      <arg type="s" name="parameter" direction="in">
961
        <doc:doc>
962
          <doc:summary>
963
            <doc:para>
964
              The backend specific value, e.g. <doc:tt>set-download-url</doc:tt>.
965
            </doc:para>
966
          </doc:summary>
967
        </doc:doc>
968
      </arg>
969
      <arg type="s" name="value" direction="in">
970
        <doc:doc>
971
          <doc:summary>
972
            <doc:para>
973
              The backend specific value, e.g. <doc:tt>http://foo.bar.org/baz</doc:tt>.
974
            </doc:para>
975
          </doc:summary>
976
        </doc:doc>
977
      </arg>
978
    </method>
979
980
    <!--*****************************************************************************************-->
981
    <method name="Resolve">
982
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
983
      <doc:doc>
984
        <doc:description>
985
          <doc:para>
986
            This method turns a single package name into a package_id suitable for the
987
            other methods.
988
          </doc:para>
989
          <doc:para>
990
            If the package is a fully formed package_id, then this should be treated
991
            as an exact package match. This is useful to find the summary or installed
992
            status of a package_id returned from other methods.
993
          </doc:para>
994
          <doc:para>
995
            This method typically emits
996
            <doc:tt>Error</doc:tt> and
997
            <doc:tt>Package</doc:tt>.
998
          </doc:para>
999
          <doc:para>
1000
            <doc:tt>Package</doc:tt> enumerated types should be
1001
            <doc:tt>available</doc:tt> or <doc:tt>installed</doc:tt>.
1002
          </doc:para>
1003
        </doc:description>
1004
      </doc:doc>
1005
      <arg type="s" name="filter" direction="in">
1006
        <doc:doc>
1007
          <doc:summary>
1008
            <doc:para>
1009
              A correct filter, e.g. <doc:tt>none</doc:tt> or <doc:tt>installed;~devel</doc:tt>
1010
            </doc:para>
1011
          </doc:summary>
1012
        </doc:doc>
1013
      </arg>
1014
      <arg type="as" name="packages" direction="in">
1015
        <doc:doc>
1016
          <doc:summary>
1017
            <doc:para>
1018
              An array of package names, e.g. <doc:tt>scribus-clipart</doc:tt>.
1019
            </doc:para>
1020
            <doc:para>
1021
              The package names are case sensitive, so for instance:
1022
              <doc:tt>Resolve('Packagekit')</doc:tt> would not match <doc:tt>PackageKit</doc:tt>.
1023
            </doc:para>
1024
            <doc:para>
1025
              As a special case, if <doc:tt>Resolve()</doc:tt>doc:tt> is called
1026
              with a name prefixed with <doc:tt>@</doc:tt> then
1027
              this should be treated as a category, for example:
1028
              <doc:tt>@web-development</doc:tt>.
1029
              In this instance, a meta-package should be emitted, for example:
1030
              <doc:tt>web-development;;;meta</doc:tt> with the correct
1031
              installed status and summary for the category.
1032
            </doc:para>
1033
          </doc:summary>
1034
        </doc:doc>
1035
      </arg>
1036
    </method>
1037
1038
    <!--*****************************************************************************************-->
1039
    <method name="Rollback">
1040
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
1041
      <doc:doc>
1042
        <doc:description>
1043
          <doc:para>
1044
            This method rolls back the package database to a previous transaction.
1045
          </doc:para>
1046
        </doc:description>
1047
        <doc:permission>Callers need the org.freedesktop.packagekit.rollback</doc:permission>
1048
      </doc:doc>
1049
      <arg type="s" name="transaction_id" direction="in">
1050
        <doc:doc>
1051
          <doc:summary>
1052
            <doc:para>
1053
              A valid transaction ID.
1054
            </doc:para>
1055
          </doc:summary>
1056
        </doc:doc>
1057
      </arg>
1058
    </method>
1059
1060
    <!--*****************************************************************************************-->
1061
    <method name="SearchDetails">
1062
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
1063
      <doc:doc>
1064
        <doc:description>
1065
          <doc:para>
1066
            This method allows deeper searching than SearchName().
1067
          </doc:para>
1068
          <doc:para>
1069
            Do not refresh the package cache. This should be fast.
1070
            This is very similar to search-name.
1071
            This should search as much data as possible, including, if possible
1072
            repo names, package summaries, descriptions, licenses and URLs.
1073
          </doc:para>
1074
          <doc:para>
1075
            Try to emit <doc:tt>installed</doc:tt> before
1076
            <doc:tt>available</doc:tt> packages first, as it allows the client
1077
            program to perform the GUI filtering and matching whilst the daemon is
1078
            running the transaction.
1079
          </doc:para>
1080
          <doc:para>
1081
            If the backend includes <doc:tt>installed</doc:tt> and
1082
            <doc:tt>available</doc:tt> versions of the same package when searching
1083
            then the <doc:tt>available</doc:tt> version will have to be filtered
1084
            in the backend.
1085
          </doc:para>
1086
          <doc:para>
1087
            This method typically emits
1088
            <doc:tt>Progress</doc:tt>,
1089
            <doc:tt>Error</doc:tt> and
1090
            <doc:tt>Package</doc:tt>.
1091
          </doc:para>
1092
          <doc:para>
1093
            <doc:tt>Package</doc:tt> enumerated types should be
1094
            <doc:tt>available</doc:tt> or <doc:tt>installed</doc:tt>.
1095
          </doc:para>
1096
        </doc:description>
1097
      </doc:doc>
1098
      <arg type="s" name="filter" direction="in">
1099
        <doc:doc>
1100
          <doc:summary>
1101
            <doc:para>
1102
              A correct filter, e.g. <doc:tt>none</doc:tt> or <doc:tt>installed;~devel</doc:tt>
1103
            </doc:para>
1104
          </doc:summary>
1105
        </doc:doc>
1106
      </arg>
1107
      <arg type="as" name="values" direction="in">
1108
        <doc:doc>
1109
          <doc:summary>
1110
            <doc:para>
1111
              A single word search term with no wildcard chars. The search can
1112
              contain many words separated by spaces. In this case, the
1113
              search operator is <doc:tt>AND</doc:tt> and the words can be found
1114
              in any details section/field. For example, search of
1115
              <doc:tt>GPL games</doc:tt> should returns every games with a GPL
1116
              license.
1117
            </doc:para>
1118
            <doc:para>
1119
              The search should not be treated as case sensitive.
1120
            </doc:para>
1121
          </doc:summary>
1122
        </doc:doc>
1123
      </arg>
1124
    </method>
1125
1126
    <!--*****************************************************************************************-->
1127
    <method name="SearchFiles">
1128
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
1129
      <doc:doc>
1130
        <doc:description>
1131
          <doc:para>
1132
            This method searches for files on the local system and files in available packages.
1133
          </doc:para>
1134
          <doc:para>
1135
            This should search for files.
1136
            This should allow an application to find out what package owns
1137
            a file on the system.
1138
          </doc:para>
1139
          <doc:para>
1140
            This method typically emits
1141
            <doc:tt>Progress</doc:tt>,
1142
            <doc:tt>Error</doc:tt> and
1143
            <doc:tt>Package</doc:tt>.
1144
          </doc:para>
1145
          <doc:para>
1146
            <doc:tt>Package</doc:tt> enumerated types should be
1147
            <doc:tt>available</doc:tt> or <doc:tt>installed</doc:tt>.
1148
          </doc:para>
1149
        </doc:description>
1150
      </doc:doc>
1151
      <arg type="s" name="filter" direction="in">
1152
        <doc:doc>
1153
          <doc:summary>
1154
            <doc:para>
1155
              A correct filter, e.g. <doc:tt>none</doc:tt> or <doc:tt>installed;~devel</doc:tt>
1156
            </doc:para>
1157
          </doc:summary>
1158
        </doc:doc>
1159
      </arg>
1160
      <arg type="as" name="values" direction="in">
1161
        <doc:doc>
1162
          <doc:summary>
1163
            <doc:para>
1164
              A filename or fully qualified path and filename on the system.
1165
              If the search term begins with a <doc:tt>/</doc:tt> it will be assumed the entire path has been given and only packages that contain this exact path and filename will be returned.
1166
              If the search term does not start with <doc:tt>/</doc:tt> then it should be treated as a single filename, which can be in any directory.
1167
            </doc:para>
1168
            <doc:para>
1169
              The search is case sensitive, and should not be escaped or surrounded in quotes.
1170
            </doc:para>
1171
          </doc:summary>
1172
        </doc:doc>
1173
      </arg>
1174
    </method>
1175
1176
    <!--*****************************************************************************************-->
1177
    <method name="SearchGroups">
1178
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
1179
      <doc:doc>
1180
        <doc:description>
1181
          <doc:para>
1182
            This method returns packages from a given group enumerated type.
1183
          </doc:para>
1184
          <doc:para>
1185
            Do not refresh the package cache. This should be fast.
1186
          </doc:para>
1187
          <doc:para>
1188
            Try to emit <doc:tt>installed</doc:tt> before
1189
            <doc:tt>available</doc:tt> packages first, as it allows the client
1190
            program to perform the GUI filtering and matching whilst the daemon is
1191
            running the transaction.
1192
          </doc:para>
1193
          <doc:para>
1194
            If the backend includes <doc:tt>installed</doc:tt> and
1195
            <doc:tt>available</doc:tt> versions of the same package when searching
1196
            then the <doc:tt>available</doc:tt> version will have to be filtered
1197
            in the backend.
1198
          </doc:para>
1199
          <doc:para>
1200
            This method typically emits
1201
            <doc:tt>Progress</doc:tt>,
1202
            <doc:tt>Error</doc:tt> and
1203
            <doc:tt>Package</doc:tt>.
1204
          </doc:para>
1205
          <doc:para>
1206
            <doc:tt>Package</doc:tt> enumerated types should be
1207
            <doc:tt>available</doc:tt> or <doc:tt>installed</doc:tt>.
1208
          </doc:para>
1209
        </doc:description>
1210
      </doc:doc>
1211
      <arg type="s" name="filter" direction="in">
1212
        <doc:doc>
1213
          <doc:summary>
1214
            <doc:para>
1215
              A correct filter, e.g. <doc:tt>none</doc:tt> or <doc:tt>installed;~devel</doc:tt>
1216
            </doc:para>
1217
          </doc:summary>
1218
        </doc:doc>
1219
      </arg>
1220
      <arg type="as" name="values" direction="in">
1221
        <doc:doc>
1222
          <doc:summary>
1223
            <doc:para>
1224
              An enumerated group type, or <doc:tt>unknown</doc:tt>. The search
1225
              cannot contain spaces.
1226
              The following recommendations are made below:
1227
            </doc:para>
1228
            <doc:para>
1229
              If the values strings are prefixed with <doc:tt>category:</doc:tt> then
1230
              the request is treated as a 'category search', for example:
1231
              <doc:tt>category:web-development</doc:tt>.
1232
              Note: the old nomenclature for a 'category search' suggested
1233
              using a <doc:tt>@</doc:tt> prefix for the values options.
1234
              This is still supported, and backends should continue to support
1235
              category searches like <doc:tt>@web-development</doc:tt>.
1236
            </doc:para>
1237
            <doc:para>
1238
              If the values strings are prefixed with <doc:tt>repo:</doc:tt> then
1239
              the request is treated as a 'repository search', for example:
1240
              <doc:tt>repo:fedora-debuginfo</doc:tt>.
1241
              In this instance all packages that were either installed
1242
              from, or can be installed from the <doc:tt>fedora-debuginfo</doc:tt>
1243
              source would be returned.
1244
            </doc:para>
1245
          </doc:summary>
1246
        </doc:doc>
1247
      </arg>
1248
    </method>
1249
1250
    <!--*****************************************************************************************-->
1251
    <method name="SearchNames">
1252
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
1253
      <doc:doc>
1254
        <doc:description>
1255
          <doc:para>
1256
            This method searches the package database by package name.
1257
          </doc:para>
1258
          <doc:para>
1259
            Do not refresh the package cache. This should be fast.
1260
          </doc:para>
1261
          <doc:para>
1262
            Try to emit <doc:tt>installed</doc:tt> before
1263
            <doc:tt>available</doc:tt> packages first, as it allows the client
1264
            program to perform the GUI filtering and matching whilst the daemon is
1265
            running the transaction.
1266
          </doc:para>
1267
          <doc:para>
1268
            If the backend includes <doc:tt>installed</doc:tt> and
1269
            <doc:tt>available</doc:tt> versions of the same package when searching
1270
            then the <doc:tt>available</doc:tt> version will have to be filtered
1271
            in the backend.
1272
          </doc:para>
1273
          <doc:para>
1274
            The search methods should return all results in all repositories.
1275
            This may mean that multiple versions of package are returned.
1276
            If this is not what is wanted by the client program, then the
1277
            <doc:tt>newest</doc:tt> filter should be used.
1278
          </doc:para>
1279
          <doc:para>
1280
            This method typically emits
1281
            <doc:tt>Progress</doc:tt>,
1282
            <doc:tt>Error</doc:tt> and
1283
            <doc:tt>Package</doc:tt>.
1284
          </doc:para>
1285
          <doc:para>
1286
            <doc:tt>Package</doc:tt> enumerated types should be
1287
            <doc:tt>available</doc:tt> or <doc:tt>installed</doc:tt>.
1288
          </doc:para>
1289
        </doc:description>
1290
      </doc:doc>
1291
      <arg type="s" name="filter" direction="in">
1292
        <doc:doc>
1293
          <doc:summary>
1294
            <doc:para>
1295
              A correct filter, e.g. <doc:tt>none</doc:tt> or <doc:tt>installed;~devel</doc:tt>
1296
            </doc:para>
1297
          </doc:summary>
1298
        </doc:doc>
1299
      </arg>
1300
      <arg type="as" name="values" direction="in">
1301
        <doc:doc>
1302
          <doc:summary>
1303
            <doc:para>
1304
              A single word search term with no wildcard chars. The search term
1305
              can contain many words separated by spaces. In this case, the
1306
              search operator is <doc:tt>AND</doc:tt>. For example, search of
1307
              <doc:tt>gnome power</doc:tt> should returns
1308
              <doc:tt>gnome-power-manager</doc:tt> but not
1309
              <doc:tt>gnomesword</doc:tt> or <doc:tt>powertop</doc:tt>.
1310
            </doc:para>
1311
            <doc:para>
1312
              The search should not be treated as case sensitive.
1313
            </doc:para>
1314
          </doc:summary>
1315
        </doc:doc>
1316
      </arg>
1317
    </method>
1318
1319
    <!--*****************************************************************************************-->
1320
    <method name="SimulateInstallFiles">
1321
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
1322
      <doc:doc>
1323
        <doc:description>
1324
          <doc:para>
1325
            This method simulates a package file instalation emitting packages required to be
1326
            installed, removed, updated, reinstalled, downgraded, obsoleted or untrusted.
1327
            The latter is used to present the user untrusted packages that are about to be installed.
1328
          </doc:para>
1329
          <doc:para>
1330
            This method typically emits
1331
            <doc:tt>Error</doc:tt> and
1332
            <doc:tt>Package</doc:tt>.
1333
          </doc:para>
1334
        </doc:description>
1335
      </doc:doc>
1336
      <arg type="as" name="full_paths" direction="in">
1337
        <doc:doc>
1338
          <doc:summary>
1339
            <doc:para>
1340
              An array of full path and filenames to packages.
1341
            </doc:para>
1342
          </doc:summary>
1343
        </doc:doc>
1344
      </arg>
1345
    </method>
1346
1347
    <!--*****************************************************************************************-->
1348
    <method name="SimulateInstallPackages">
1349
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
1350
      <doc:doc>
1351
        <doc:description>
1352
          <doc:para>
1353
            This method simulates a package instalation emitting packages required to be
1354
            installed, removed, updated, reinstalled, downgraded, obsoleted or untrusted.
1355
            The latter is used to present the user untrusted packages that are about to be installed.
1356
          </doc:para>
1357
          <doc:para>
1358
            This method typically emits
1359
            <doc:tt>Error</doc:tt> and
1360
            <doc:tt>Package</doc:tt>.
1361
          </doc:para>
1362
        </doc:description>
1363
      </doc:doc>
1364
      <arg type="as" name="package_ids" direction="in">
1365
        <doc:doc>
1366
          <doc:summary>
1367
            <doc:para>
1368
              An array of package IDs.
1369
            </doc:para>
1370
          </doc:summary>
1371
        </doc:doc>
1372
      </arg>
1373
    </method>
1374
1375
    <!--*****************************************************************************************-->
1376
    <method name="SimulateRemovePackages">
1377
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
1378
      <doc:doc>
1379
        <doc:description>
1380
          <doc:para>
1381
            This method simulates a package removal emitting packages required to be
1382
            installed, removed, updated, reinstalled, downgraded, obsoleted or untrusted.
1383
            The latter is used to present the user untrusted packages that are about to be installed.
1384
          </doc:para>
1385
          <doc:para>
1386
            This method typically emits
1387
            <doc:tt>Error</doc:tt> and
1388
            <doc:tt>Package</doc:tt>.
1389
          </doc:para>
1390
        </doc:description>
1391
      </doc:doc>
1392
      <arg type="as" name="package_ids" direction="in">
1393
        <doc:doc>
1394
          <doc:summary>
1395
            <doc:para>
1396
              An array of package IDs.
1397
            </doc:para>
1398
          </doc:summary>
1399
        </doc:doc>
1400
      </arg>
1401
      <arg type="b" name="autoremove" direction="in">
1402
        <doc:doc>
1403
          <doc:summary>
1404
            <doc:para>
1405
              Either <doc:tt>true</doc:tt> or <doc:tt>false</doc:tt>.
1406
              This option is only really interesting on embedded devices with a limited amount of
1407
              flash storage.
1408
              It suggests to the packagekit backend that dependencies installed at the same time as
1409
              the package should also be removed if they are not required by anything else.
1410
              For instance, if you install OpenOffice, it might download libneon as a dependency.
1411
              When <doc:tt>auto_remove</doc:tt> is set to true, and you remove OpenOffice then
1412
              libneon will also get removed automatically.
1413
            </doc:para>
1414
          </doc:summary>
1415
        </doc:doc>
1416
      </arg>
1417
    </method>
1418
1419
    <!--*****************************************************************************************-->
1420
    <method name="SimulateUpdatePackages">
1421
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
1422
      <doc:doc>
1423
        <doc:description>
1424
          <doc:para>
1425
            This method simulates a package update emitting packages required to be
1426
            installed, removed, updated, reinstalled, downgraded, obsoleted or untrusted.
1427
            The latter is used to present the user untrusted packages that are about to be installed.
1428
          </doc:para>
1429
          <doc:para>
1430
            This method typically emits
1431
            <doc:tt>Error</doc:tt> and
1432
            <doc:tt>Package</doc:tt>.
1433
          </doc:para>
1434
        </doc:description>
1435
      </doc:doc>
1436
      <arg type="as" name="package_ids" direction="in">
1437
        <doc:doc>
1438
          <doc:summary>
1439
            <doc:para>
1440
              An array of package IDs.
1441
            </doc:para>
1442
          </doc:summary>
1443
        </doc:doc>
1444
      </arg>
1445
    </method>
1446
1447
    <!--*****************************************************************************************-->
1448
    <method name="UpdatePackages">
1449
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
1450
      <doc:doc>
1451
        <doc:description>
1452
          <doc:para>
1453
            This method updates existing packages on the local system.
1454
          </doc:para>
1455
          <doc:para>
1456
            The installer should always update extra packages automatically to fulfil dependencies.
1457
          </doc:para>
1458
          <doc:para>
1459
            This should allow an application to find out what package owns a file on the system.
1460
          </doc:para>
1461
          <doc:para>
1462
            This method typically emits
1463
            <doc:tt>Progress</doc:tt>,
1464
            <doc:tt>Status</doc:tt> and
1465
            <doc:tt>Error</doc:tt> and
1466
            <doc:tt>Package</doc:tt>.
1467
          </doc:para>
1468
        </doc:description>
1469
        <doc:permission>Callers need the org.freedesktop.packagekit.update-package</doc:permission>
1470
      </doc:doc>
1471
      <arg type="b" name="only_trusted" direction="in">
1472
        <doc:doc>
1473
          <doc:summary>
1474
            <doc:para>
1475
              If the transaction is only allowed to update to trusted packages.
1476
              Unsigned packages should not be installed if this parameter is <doc:tt>TRUE</doc:tt>.
1477
            </doc:para>
1478
            <doc:para>
1479
              If this method is can only update trusted packages, and the packages are unsigned, then
1480
              the backend will send a <doc:tt>ErrorCode(missing-gpg-signature)</doc:tt>.
1481
              On recieving this error, the client may choose to retry with only_trusted <doc:tt>FALSE</doc:tt>
1482
              after gaining further authentication.
1483
            </doc:para>
1484
          </doc:summary>
1485
        </doc:doc>
1486
      </arg>
1487
      <arg type="as" name="package_ids" direction="in">
1488
        <doc:doc>
1489
          <doc:summary>
1490
            <doc:para>
1491
              An array of package IDs.
1492
            </doc:para>
1493
          </doc:summary>
1494
        </doc:doc>
1495
      </arg>
1496
    </method>
1497
1498
    <!--*****************************************************************************************-->
1499
    <method name="UpdateSystem">
1500
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
1501
      <doc:doc>
1502
        <doc:description>
1503
          <doc:para>
1504
            This method updates all packages on the system to thier newest versions.
1505
          </doc:para>
1506
          <doc:para>
1507
            The installer should update all the updateable packages on the system,
1508
            including automatically installing any new packages that are needed for
1509
            dependancies.
1510
          </doc:para>
1511
        </doc:description>
1512
          <doc:para>
1513
            This method typically emits
1514
            <doc:tt>Progress</doc:tt>,
1515
            <doc:tt>Error</doc:tt> and
1516
            <doc:tt>RequireRestart</doc:tt> and
1517
            <doc:tt>Package</doc:tt>.
1518
          </doc:para>
1519
          <doc:para>
1520
            <doc:tt>Package</doc:tt> enumerated types should be
1521
            <doc:tt>downloading</doc:tt>,
1522
            <doc:tt>updating</doc:tt>,
1523
            <doc:tt>installing</doc:tt> or
1524
            <doc:tt>removing</doc:tt>.
1525
          </doc:para>
1526
        <doc:permission>Callers need the org.freedesktop.packagekit.update-system</doc:permission>
1527
      </doc:doc>
1528
      <arg type="b" name="only_trusted" direction="in">
1529
        <doc:doc>
1530
          <doc:summary>
1531
            <doc:para>
1532
              If the transaction is only allowed to update to trusted packages.
1533
              Unsigned packages should not be installed if this parameter is <doc:tt>TRUE</doc:tt>.
1534
            </doc:para>
1535
            <doc:para>
1536
              If this method is can only update trusted packages, and the packages are unsigned, then
1537
              the backend will send a <doc:tt>ErrorCode(missing-gpg-signature)</doc:tt>.
1538
              On recieving this error, the client may choose to retry with only_trusted <doc:tt>FALSE</doc:tt>
1539
              after gaining further authentication.
1540
            </doc:para>
1541
          </doc:summary>
1542
        </doc:doc>
1543
      </arg>
1544
    </method>
1545
1546
    <!--*****************************************************************************************-->
1547
    <method name="WhatProvides">
1548
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
1549
      <doc:doc>
1550
        <doc:description>
1551
          <doc:para>
1552
            This method returns packages that provide the supplied attributes.
1553
            This method is useful for finding out what package(s) provide a modalias
1554
            or GStreamer codec string.
1555
          </doc:para>
1556
          <doc:para>
1557
            This method typically emits
1558
            <doc:tt>Progress</doc:tt>,
1559
            <doc:tt>Status</doc:tt> and
1560
            <doc:tt>Error</doc:tt> and
1561
            <doc:tt>Package</doc:tt>.
1562
          </doc:para>
1563
          <doc:para>
1564
            <doc:tt>Package</doc:tt> enumerated types should be
1565
            <doc:tt>available</doc:tt> or <doc:tt>installed</doc:tt>.
1566
          </doc:para>
1567
        </doc:description>
1568
      </doc:doc>
1569
      <arg type="s" name="filter" direction="in">
1570
        <doc:doc>
1571
          <doc:summary>
1572
            <doc:para>
1573
              A correct filter, e.g. <doc:tt>none</doc:tt> or <doc:tt>installed;~devel</doc:tt>
1574
            </doc:para>
1575
          </doc:summary>
1576
        </doc:doc>
1577
      </arg>
1578
      <arg type="s" name="type" direction="in">
1579
        <doc:doc>
1580
          <doc:summary>
1581
            <doc:para>
1582
              A PkProvideType, e.g. <doc:tt>PK_PROVIDES_ENUM_CODEC</doc:tt>.
1583
            </doc:para>
1584
          </doc:summary>
1585
        </doc:doc>
1586
      </arg>
1587
      <arg type="as" name="values" direction="in">
1588
        <doc:doc>
1589
          <doc:summary>
1590
            <doc:para>
1591
              The data to send to the backend to get the packages.
1592
              Note: This is backend specific.
1593
            </doc:para>
1594
          </doc:summary>
1595
        </doc:doc>
1596
      </arg>
1597
    </method>
1598
1599
    <!--*****************************************************************************************-->
1600
    <method name="UpgradeSystem">
1601
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
1602
      <doc:doc>
1603
        <doc:description>
1604
          <doc:para>
1605
            This method perfoms a distribution upgrade to the specified
1606
            version.
1607
          </doc:para>
1608
          <doc:para>
1609
            This method typically emits
1610
            <doc:tt>Progress</doc:tt>,
1611
            <doc:tt>Status</doc:tt> and
1612
            <doc:tt>Error</doc:tt> and
1613
            <doc:tt>Package</doc:tt>.
1614
          </doc:para>
1615
        </doc:description>
1616
      </doc:doc>
1617
      <arg type="s" name="distro_id" direction="in">
1618
        <doc:doc>
1619
          <doc:summary>
1620
            <doc:para>
1621
              The distribution ID to upgrade to, e.g. <doc:tt>fedora-14</doc:tt>.
1622
            </doc:para>
1623
          </doc:summary>
1624
        </doc:doc>
1625
      </arg>
1626
      <arg type="s" name="upgrade_kind" direction="in">
1627
        <doc:doc>
1628
          <doc:summary>
1629
            <doc:para>
1630
              The type of upgrade, e.g. <doc:tt>minimal</doc:tt>, <doc:tt>default</doc:tt> or <doc:tt>complete</doc:tt>.
1631
              Minimal upgrades will download the smallest amount of data
1632
              before launching a installer.
1633
              The default is to download enough data to launch a full
1634
              graphical installer, but a complete upgrade will be
1635
              required if there is no internet access during install time.
1636
            </doc:para>
1637
          </doc:summary>
1638
        </doc:doc>
1639
      </arg>
1640
    </method>
1641
1642
    <!--*****************************************************************************************-->
1643
    <method name="SimulateRepairSystem">
1644
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
1645
      <doc:doc>
1646
        <doc:description>
1647
          <doc:para>
1648
            This method simulates recovering the package management system from e.g.
1649
            unsatisfied dependencies of installed packages emitting packages required to be
1650
            installed, removed, updated, reinstalled, downgraded, obsoleted or untrusted.
1651
            The latter is used to present the user untrusted packages that are about to be installed.
1652
          </doc:para>
1653
          <doc:para>
1654
            This method typically emits
1655
            <doc:tt>Progress</doc:tt>,
1656
            <doc:tt>Status</doc:tt> and
1657
            <doc:tt>Error</doc:tt> and
1658
            <doc:tt>Package</doc:tt>.
1659
          </doc:para>
1660
        </doc:description>
1661
      </doc:doc>
1662
    </method>
1663
1664
    <!--*****************************************************************************************-->
1665
    <method name="RepairSystem">
1666
      <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
1667
      <doc:doc>
1668
        <doc:description>
1669
          <doc:para>
1670
            This method recovers the package management system from e.g.
1671
            unsatisfied dependencies of installed packages.
1672
          </doc:para>
1673
          <doc:para>
1674
            This method typically emits
1675
            <doc:tt>Progress</doc:tt>,
1676
            <doc:tt>Status</doc:tt> and
1677
            <doc:tt>Error</doc:tt> and
1678
            <doc:tt>Package</doc:tt>.
1679
          </doc:para>
1680
        </doc:description>
1681
      </doc:doc>
1682
      <arg type="b" name="only_trusted" direction="in">
1683
        <doc:doc>
1684
          <doc:summary>
1685
            <doc:para>
1686
              If the transaction is only allowed to install trusted packages.
1687
              Unsigned packages should not be installed if this parameter is <doc:tt>TRUE</doc:tt>.
1688
            </doc:para>
1689
            <doc:para>
1690
              If this method is can only install trusted packages, and the packages are unsigned, then
1691
              the backend will send a <doc:tt>ErrorCode(missing-gpg-signature)</doc:tt>.
1692
              On recieving this error, the client may choose to retry with only_trusted <doc:tt>FALSE</doc:tt>
1693
              after gaining further authentication.
1694
            </doc:para>
1695
          </doc:summary>
1696
        </doc:doc>
1697
      </arg>
1698
    </method>
1699
1700
    <!--*****************************************************************************************-->
1701
    <signal name="Category">
1702
      <doc:doc>
1703
        <doc:description>
1704
          <doc:para>
1705
            This signal send information about a collection category
1706
          </doc:para>
1707
        </doc:description>
1708
      </doc:doc>
1709
      <arg type="s" name="parent_id" direction="out">
1710
        <doc:doc>
1711
          <doc:summary>
1712
            <doc:para>
1713
              The parent identifier, e.g. <doc:tt>applications</doc:tt>.
1714
              If the category is a root entry, use a blank parent.
1715
            </doc:para>
1716
          </doc:summary>
1717
        </doc:doc>
1718
      </arg>
1719
      <arg type="s" name="cat_id" direction="out">
1720
        <doc:doc>
1721
          <doc:summary>
1722
            <doc:para>
1723
              The category identifier, e.g. <doc:tt>applications;system-tools</doc:tt>.
1724
              The identifier does not have to be related to the <doc:tt>parent_id</doc:tt>
1725
              in any way.
1726
              A menu tree is made from multiple Category signals.
1727
              The tree does not have any depth or bredth limits, although it should be kept
1728
              to less than about 100 entries as this will be shown to the user in a menu.
1729
            </doc:para>
1730
            <doc:para>
1731
              The <doc:tt>cat_id</doc:tt> will be sent as a parameter to <doc:tt>SearchGroup</doc:tt>
1732
              so you may have to prefix or otherwise identify the ID to not confuse the search method.
1733
            </doc:para>
1734
          </doc:summary>
1735
        </doc:doc>
1736
      </arg>
1737
      <arg type="s" name="name" direction="out">
1738
        <doc:doc>
1739
          <doc:summary>
1740
            <doc:para>
1741
              The localised name of the category, e.g. <doc:tt>System Tools</doc:tt>.
1742
            </doc:para>
1743
          </doc:summary>
1744
        </doc:doc>
1745
      </arg>
1746
      <arg type="s" name="summary" direction="out">
1747
        <doc:doc>
1748
          <doc:summary>
1749
            <doc:para>
1750
              The localised category summary, e.g. <doc:tt>Tools for mangaing system state</doc:tt>.
1751
              This is not normally shown in the menus, but may be shown in helper popups.
1752
            </doc:para>
1753
          </doc:summary>
1754
        </doc:doc>
1755
      </arg>
1756
      <arg type="s" name="icon" direction="out">
1757
        <doc:doc>
1758
          <doc:summary>
1759
            <doc:para>
1760
              The icon name for the category, e.g. <doc:tt>server-cfg</doc:tt>.
1761
              If the icon is not known, then it should be set to <doc:tt>image-missing</doc:tt>.
1762
            </doc:para>
1763
          </doc:summary>
1764
        </doc:doc>
1765
      </arg>
1766
    </signal>
1767
1768
    <!--*****************************************************************************************-->
1769
    <signal name="Details">
1770
      <doc:doc>
1771
        <doc:description>
1772
          <doc:para>
1773
            This signal allows the backend to convey more details about the package.
1774
          </doc:para>
1775
        </doc:description>
1776
      </doc:doc>
1777
      <arg type="s" name="package_id" direction="out">
1778
        <doc:doc>
1779
          <doc:summary>
1780
            <doc:para>
1781
              The package ID
1782
            </doc:para>
1783
          </doc:summary>
1784
        </doc:doc>
1785
      </arg>
1786
      <arg type="s" name="license" direction="out">
1787
        <doc:doc>
1788
          <doc:summary>
1789
            <doc:para>
1790
              The license string, e.g. <doc:tt>GPLv2+</doc:tt> or <doc:tt>BSD and (MPLv1.1 or GPLv2+)</doc:tt>.
1791
            </doc:para>
1792
            <doc:para>
1793
              More details about the correct way to format licensing strings can be found on the
1794
              <doc:ulink url="http://fedoraproject.org/wiki/Packaging/LicensingGuidelines">Fedora packaging wiki</doc:ulink>.
1795
            </doc:para>
1796
          </doc:summary>
1797
        </doc:doc>
1798
      </arg>
1799
      <arg type="s" name="group" direction="out">
1800
        <doc:doc>
1801
          <doc:summary>
1802
            <doc:para>
1803
              The enumerated package group description
1804
            </doc:para>
1805
          </doc:summary>
1806
        </doc:doc>
1807
      </arg>
1808
      <arg type="s" name="detail" direction="out">
1809
        <doc:doc>
1810
          <doc:summary>
1811
            <doc:para>
1812
              The multi-line package description.
1813
            </doc:para>
1814
            <doc:para>
1815
              If formatting is required, then markdown syntax should be used,
1816
              e.g. <doc:tt>This is **critically** important</doc:tt>
1817
            </doc:para>
1818
          </doc:summary>
1819
        </doc:doc>
1820
      </arg>
1821
      <arg type="s" name="url" direction="out">
1822
        <doc:doc>
1823
          <doc:summary>
1824
            <doc:para>
1825
              The upstream project homepage
1826
            </doc:para>
1827
          </doc:summary>
1828
        </doc:doc>
1829
      </arg>
1830
      <arg type="t" name="size" direction="out">
1831
        <doc:doc>
1832
          <doc:summary>
1833
            <doc:para>
1834
              The size of the package in bytes. This should be the size of the entire package file,
1835
              not the size of the files installed on the system.
1836
              If the package is not installed, and already downloaded and
1837
              present in the package manager cache, then this value should be set to zero.
1838
            </doc:para>
1839
          </doc:summary>
1840
        </doc:doc>
1841
      </arg>
1842
    </signal>
1843
1844
    <!--*****************************************************************************************-->
1845
    <signal name="ErrorCode">
1846
      <doc:doc>
1847
        <doc:description>
1848
          <doc:para>
1849
            This signal is used to report errors back to the session program.
1850
          </doc:para>
1851
          <doc:para>
1852
            Errors should only be send on fatal abort.
1853
          </doc:para>
1854
        </doc:description>
1855
      </doc:doc>
1856
      <arg type="s" name="code" direction="out">
1857
        <doc:doc>
1858
          <doc:summary>
1859
            <doc:para>
1860
              Enumerated type, e.g. <doc:tt>no-network</doc:tt>.
1861
            </doc:para>
1862
          </doc:summary>
1863
        </doc:doc>
1864
      </arg>
1865
      <arg type="s" name="details" direction="out">
1866
        <doc:doc>
1867
          <doc:summary>
1868
            <doc:para>
1869
              Long description or error, e.g. <doc:tt>failed to connect to mytry.xml</doc:tt>
1870
            </doc:para>
1871
          </doc:summary>
1872
        </doc:doc>
1873
      </arg>
1874
    </signal>
1875
1876
    <!--*****************************************************************************************-->
1877
    <signal name="Files">
1878
      <doc:doc>
1879
        <doc:description>
1880
          <doc:para>
1881
            This signal is used to push file lists from the backend to the session.
1882
          </doc:para>
1883
        </doc:description>
1884
      </doc:doc>
1885
      <arg type="s" name="package_id" direction="out">
1886
        <doc:doc>
1887
          <doc:summary>
1888
            <doc:para>
1889
              The Package ID that called the method.
1890
            </doc:para>
1891
          </doc:summary>
1892
        </doc:doc>
1893
      </arg>
1894
      <arg type="s" name="file_list" direction="out">
1895
        <doc:doc>
1896
          <doc:summary>
1897
            <doc:para>
1898
              The file list, with each file seporated with <doc:tt>;</doc:tt>.
1899
            </doc:para>
1900
          </doc:summary>
1901
        </doc:doc>
1902
      </arg>
1903
    </signal>
1904
1905
    <!--*****************************************************************************************-->
1906
    <signal name="Finished">
1907
      <doc:doc>
1908
        <doc:description>
1909
          <doc:para>
1910
            This signal is used to signal that the transaction has finished.
1911
          </doc:para>
1912
        </doc:description>
1913
      </doc:doc>
1914
      <arg type="s" name="exit" direction="out">
1915
        <doc:doc>
1916
          <doc:summary>
1917
            <doc:para>
1918
              The PkExitEnum describing the exit status of the transaction.
1919
            </doc:para>
1920
          </doc:summary>
1921
        </doc:doc>
1922
      </arg>
1923
      <arg type="u" name="runtime" direction="out">
1924
        <doc:doc>
1925
          <doc:summary>
1926
            <doc:para>
1927
              The amount of time in milliseconds that the transaction ran for.
1928
            </doc:para>
1929
          </doc:summary>
1930
        </doc:doc>
1931
      </arg>
1932
    </signal>
1933
1934
    <!--*****************************************************************************************-->
1935
    <signal name="Message">
1936
      <doc:doc>
1937
        <doc:description>
1938
          <doc:para>
1939
            This signal is sent when the backend wants to send a message to the session.
1940
          </doc:para>
1941
          <doc:para>
1942
            This allows the backend to queue up a message to be shown after the transaction has
1943
            completed.
1944
          </doc:para>
1945
        </doc:description>
1946
      </doc:doc>
1947
      <arg type="s" name="type" direction="out">
1948
        <doc:doc>
1949
          <doc:summary>
1950
            <doc:para>
1951
              One of <doc:tt>warning</doc:tt>, <doc:tt>notice</doc:tt>, or
1952
              <doc:tt>daemon</doc:tt>.
1953
            </doc:para>
1954
          </doc:summary>
1955
        </doc:doc>
1956
      </arg>
1957
      <arg type="s" name="details" direction="out">
1958
        <doc:doc>
1959
          <doc:summary>
1960
            <doc:para>
1961
              Required details about the message, non-localised.
1962
            </doc:para>
1963
          </doc:summary>
1964
        </doc:doc>
1965
      </arg>
1966
    </signal>
1967
1968
    <!--*****************************************************************************************-->
1969
    <signal name="Package">
1970
      <doc:doc>
1971
        <doc:description>
1972
          <doc:para>
1973
            This signal allows the backend to communicate packages to the session.
1974
          </doc:para>
1975
          <doc:para>
1976
            If updating, as packages are updated then emit them to the screen.
1977
            This allows a summary to be presented after the transaction.
1978
          </doc:para>
1979
          <doc:para>
1980
            When returning results from a search always return
1981
            <doc:tt>installed</doc:tt> before <doc:tt>available</doc:tt> for
1982
            the same package name.
1983
          </doc:para>
1984
        </doc:description>
1985
      </doc:doc>
1986
      <arg type="s" name="info" direction="out">
1987
        <doc:doc>
1988
          <doc:summary>
1989
            <doc:para>
1990
              A valid <doc:tt>info</doc:tt> string enumerated type
1991
            </doc:para>
1992
          </doc:summary>
1993
        </doc:doc>
1994
      </arg>
1995
      <arg type="s" name="package_id" direction="out">
1996
        <doc:doc>
1997
          <doc:summary>
1998
            <doc:para>
1999
              This identifier is of the form <doc:tt>name;version;arch;data</doc:tt>
2000
              in a single string and is meant to represent a single package
2001
              unique across all local and remote data stores.
2002
            </doc:para>
2003
            <doc:para>
2004
              For a remote, not-installed package the data field should
2005
              be set as the repository identifier or repository name.
2006
            </doc:para>
2007
            <doc:para>
2008
              The data field for an installed package must be prefixed
2009
              with <doc:tt>installed</doc:tt> as this is used to identify
2010
              which packages are installable or installed in the client
2011
              tools.
2012
            </doc:para>
2013
            <doc:para>
2014
              As a special extension, if the package manager is able to
2015
              track which repository a package was originally installed
2016
              from, then the data field can be set to
2017
              <doc:tt>installed:REPO-NAME</doc:tt> which allows the
2018
              frontend client to advise the user of the package origin.
2019
            </doc:para>
2020
            <doc:para>
2021
              The data field for a non-installed local package must be
2022
              <doc:tt>local</doc:tt> as this signifies a repository name is
2023
              not available and that package resides locally on the
2024
              client system rather than in any specific repository.
2025
            </doc:para>
2026
          </doc:summary>
2027
        </doc:doc>
2028
      </arg>
2029
      <arg type="s" name="summary" direction="out">
2030
        <doc:doc>
2031
          <doc:summary>
2032
            <doc:para>
2033
              The one line package summary, e.g. Clipart for OpenOffice
2034
            </doc:para>
2035
          </doc:summary>
2036
        </doc:doc>
2037
      </arg>
2038
    </signal>
2039
2040
    <!--*****************************************************************************************-->
2041
    <signal name="RepoDetail">
2042
      <doc:doc>
2043
        <doc:description>
2044
          <doc:para>
2045
            This signal describes a repository on the system.
2046
          </doc:para>
2047
        </doc:description>
2048
      </doc:doc>
2049
      <arg type="s" name="repo_id" direction="out">
2050
        <doc:doc>
2051
          <doc:summary>
2052
            <doc:para>
2053
              The repository ID.
2054
            </doc:para>
2055
          </doc:summary>
2056
        </doc:doc>
2057
      </arg>
2058
      <arg type="s" name="description" direction="out">
2059
        <doc:doc>
2060
          <doc:summary>
2061
            <doc:para>
2062
              A description of the repository.
2063
            </doc:para>
2064
          </doc:summary>
2065
        </doc:doc>
2066
      </arg>
2067
      <arg type="b" name="enabled" direction="out">
2068
        <doc:doc>
2069
          <doc:summary>
2070
            <doc:para>
2071
              If the repository is enabled and in use.
2072
            </doc:para>
2073
          </doc:summary>
2074
        </doc:doc>
2075
      </arg>
2076
    </signal>
2077
2078
    <!--*****************************************************************************************-->
2079
    <signal name="RepoSignatureRequired">
2080
      <doc:doc>
2081
        <doc:description>
2082
          <doc:para>
2083
            This signal is emitted when a transaction is not possible due to a missing security
2084
            certificate.
2085
          </doc:para>
2086
          <doc:para>
2087
            Some backends support repositories which use a cryptographic
2088
            signature, such as GPG. If a package cannot be installed
2089
            because it is signed with a key that has not been verified,
2090
            this signal is generated so the user can choose to accept or
2091
            decline the key.
2092
          </doc:para>
2093
          <doc:para>
2094
            This signal includes information that can be used to verify
2095
            that the key should be trusted, such as a URL for the company
2096
            or person who owns the key, the key's ID, the userid of
2097
            the key creator, and the date the key was generated.
2098
          </doc:para>
2099
        </doc:description>
2100
      </doc:doc>
2101
      <arg type="s" name="package_id" direction="out">
2102
        <doc:doc>
2103
          <doc:summary>
2104
            <doc:para>
2105
              A package ID for the package that is trying to be installed
2106
            </doc:para>
2107
          </doc:summary>
2108
        </doc:doc>
2109
      </arg>
2110
      <arg type="s" name="repository_name" direction="out">
2111
        <doc:doc>
2112
          <doc:summary>
2113
            <doc:para>
2114
              The name of the repository associated with the provided key.
2115
            </doc:para>
2116
          </doc:summary>
2117
        </doc:doc>
2118
      </arg>
2119
      <arg type="s" name="key_url" direction="out">
2120
        <doc:doc>
2121
          <doc:summary>
2122
            <doc:para>
2123
              The URL provided with the key.
2124
            </doc:para>
2125
          </doc:summary>
2126
        </doc:doc>
2127
      </arg>
2128
      <arg type="s" name="key_userid" direction="out">
2129
        <doc:doc>
2130
          <doc:summary>
2131
            <doc:para>
2132
              The user id associated with the key.
2133
            </doc:para>
2134
          </doc:summary>
2135
        </doc:doc>
2136
      </arg>
2137
      <arg type="s" name="key_id" direction="out">
2138
        <doc:doc>
2139
          <doc:summary>
2140
            <doc:para>
2141
              A unique identifier for the key.
2142
            </doc:para>
2143
          </doc:summary>
2144
        </doc:doc>
2145
      </arg>
2146
      <arg type="s" name="key_fingerprint" direction="out">
2147
        <doc:doc>
2148
          <doc:summary>
2149
            <doc:para>
2150
              The hashed fingerprint of the key.
2151
            </doc:para>
2152
          </doc:summary>
2153
        </doc:doc>
2154
      </arg>
2155
      <arg type="s" name="key_timestamp" direction="out">
2156
        <doc:doc>
2157
          <doc:summary>
2158
            <doc:para>
2159
              The date the key was created.
2160
            </doc:para>
2161
          </doc:summary>
2162
        </doc:doc>
2163
      </arg>
2164
      <arg type="s" name="type" direction="out">
2165
        <doc:doc>
2166
          <doc:summary>
2167
            <doc:para>
2168
              The type of signature used. <doc:tt>gpg</doc:tt>, for example.
2169
            </doc:para>
2170
          </doc:summary>
2171
        </doc:doc>
2172
      </arg>
2173
    </signal>
2174
2175
    <!--*****************************************************************************************-->
2176
    <signal name="EulaRequired">
2177
      <doc:doc>
2178
        <doc:description>
2179
          <doc:para>
2180
            This signal is emitted when a transaction is not possible due to a EULA that needs to
2181
            be agreed to at install time.
2182
          </doc:para>
2183
          <doc:para>
2184
            Some backends support EULAs, which have to be agreed to before the install can proceed.
2185
          </doc:para>
2186
        </doc:description>
2187
      </doc:doc>
2188
      <arg type="s" name="eula_id" direction="out">
2189
        <doc:doc>
2190
          <doc:summary>
2191
            <doc:para>
2192
              The <doc:tt>eula_id</doc:tt> which identifies the EULA - this is provided
2193
              so that if a specific EULA has previously agreed to a EULA from Acme Corp it is
2194
              not asked again.
2195
              An example <doc:tt>eula_id</doc:tt>'s is <doc:tt>vmware5_single_user</doc:tt>.
2196
            </doc:para>
2197
          </doc:summary>
2198
        </doc:doc>
2199
      </arg>
2200
      <arg type="s" name="package_id" direction="out">
2201
        <doc:doc>
2202
          <doc:summary>
2203
            <doc:para>
2204
              A package ID for the package that is trying to be installed.
2205
            </doc:para>
2206
          </doc:summary>
2207
        </doc:doc>
2208
      </arg>
2209
      <arg type="s" name="vendor_name" direction="out">
2210
        <doc:doc>
2211
          <doc:summary>
2212
            <doc:para>
2213
              The vendor that is providing the EULA.
2214
            </doc:para>
2215
          </doc:summary>
2216
        </doc:doc>
2217
      </arg>
2218
      <arg type="s" name="license_agreement" direction="out">
2219
        <doc:doc>
2220
          <doc:summary>
2221
            <doc:para>
2222
              The full text EULA.
2223
            </doc:para>
2224
          </doc:summary>
2225
        </doc:doc>
2226
      </arg>
2227
    </signal>
2228
2229
    <!--*****************************************************************************************-->
2230
    <signal name="MediaChangeRequired">
2231
      <doc:doc>
2232
        <doc:description>
2233
          <doc:para>
2234
            This signal is emitted when a transaction needsneeds a different media
2235
            to grab the packages.
2236
          </doc:para>
2237
          <doc:para>
2238
            Some backends support Media changing, which will fail the transaction each time it needs
2239
            a new media.
2240
          </doc:para>
2241
        </doc:description>
2242
      </doc:doc>
2243
      <arg type="s" name="media_type" direction="out">
2244
        <doc:doc>
2245
          <doc:summary>
2246
            <doc:para>
2247
              Enumerated type, e.g. <doc:tt>dvd</doc:tt>.
2248
            </doc:para>
2249
          </doc:summary>
2250
        </doc:doc>
2251
      </arg>
2252
      <arg type="s" name="media_id" direction="out">
2253
        <doc:doc>
2254
          <doc:summary>
2255
            <doc:para>
2256
              The <doc:tt>media_id</doc:tt> which identifies the Media - this is provided
2257
              so that if DeviceKit or another program is able to identify the right media
2258
              before continuing, note however that it's not the DeviceKit oblication to
2259
              check the media when the transaction is re-scheduled this is the backend task.
2260
              An example <doc:tt>media_id</doc:tt>'s is <doc:tt>Debian testing amd64 Bin-1</doc:tt>.
2261
            </doc:para>
2262
          </doc:summary>
2263
        </doc:doc>
2264
      </arg>
2265
      <arg type="s" name="media_text" direction="out">
2266
        <doc:doc>
2267
          <doc:summary>
2268
            <doc:para>
2269
              Might be used for the disk label too, something like <doc:tt>Fedora Disk 1</doc:tt>
2270
            </doc:para>
2271
          </doc:summary>
2272
        </doc:doc>
2273
      </arg>
2274
    </signal>
2275
2276
    <!--*****************************************************************************************-->
2277
    <signal name="RequireRestart">
2278
      <doc:doc>
2279
        <doc:description>
2280
          <doc:para>
2281
            This signal is sent when the session program should notify the user that a restart is
2282
            required.
2283
          </doc:para>
2284
          <doc:para>
2285
            This is optional, but highly recommended.
2286
          </doc:para>
2287
          <doc:para>
2288
            This can be sent as many times as needed by the backend script.
2289
            PackageKit will always choose the 'worst' method in the UI notification.
2290
          </doc:para>
2291
        </doc:description>
2292
      </doc:doc>
2293
      <arg type="s" name="type" direction="out">
2294
        <doc:doc>
2295
          <doc:summary>
2296
            <doc:para>
2297
              One of <doc:tt>system</doc:tt>, <doc:tt>application</doc:tt> or
2298
              <doc:tt>session</doc:tt>.
2299
            </doc:para>
2300
          </doc:summary>
2301
        </doc:doc>
2302
      </arg>
2303
      <arg type="s" name="package_id" direction="out">
2304
        <doc:doc>
2305
          <doc:summary>
2306
            <doc:para>
2307
              The package ID that caused the restart notifier.
2308
            </doc:para>
2309
          </doc:summary>
2310
        </doc:doc>
2311
      </arg>
2312
    </signal>
2313
2314
    <!--*****************************************************************************************-->
2315
    <signal name="Transaction">
2316
      <doc:doc>
2317
        <doc:description>
2318
          <doc:para>
2319
            This signal is sent when more details are required about a specific transaction.
2320
          </doc:para>
2321
        </doc:description>
2322
      </doc:doc>
2323
      <arg type="s" name="old_tid" direction="out">
2324
        <doc:doc>
2325
          <doc:summary>
2326
            <doc:para>
2327
              The transaction ID of the old transaction.
2328
            </doc:para>
2329
          </doc:summary>
2330
        </doc:doc>
2331
      </arg>
2332
      <arg type="s" name="timespec" direction="out">
2333
        <doc:doc>
2334
          <doc:summary>
2335
            <doc:para>
2336
              The timespec of the old transaction in ISO8601 format.
2337
            </doc:para>
2338
          </doc:summary>
2339
        </doc:doc>
2340
      </arg>
2341
      <arg type="b" name="succeeded" direction="out">
2342
        <doc:doc>
2343
          <doc:summary>
2344
            <doc:para>
2345
              If the transaction succeeded.
2346
            </doc:para>
2347
          </doc:summary>
2348
        </doc:doc>
2349
      </arg>
2350
      <arg type="s" name="role" direction="out">
2351
        <doc:doc>
2352
          <doc:summary>
2353
            <doc:para>
2354
              The role enumerated type.
2355
            </doc:para>
2356
          </doc:summary>
2357
        </doc:doc>
2358
      </arg>
2359
      <arg type="u" name="duration" direction="out">
2360
        <doc:doc>
2361
          <doc:summary>
2362
            <doc:para>
2363
              The duration of the transaction in milliseconds.
2364
            </doc:para>
2365
          </doc:summary>
2366
        </doc:doc>
2367
      </arg>
2368
      <arg type="s" name="data" direction="out">
2369
        <doc:doc>
2370
          <doc:summary>
2371
            <doc:para>
2372
              Any data associated with the transaction.
2373
            </doc:para>
2374
          </doc:summary>
2375
        </doc:doc>
2376
      </arg>
2377
      <arg type="u" name="uid" direction="out">
2378
        <doc:doc>
2379
          <doc:summary>
2380
            <doc:para>
2381
              The user ID of the user that scheduled the action.
2382
            </doc:para>
2383
          </doc:summary>
2384
        </doc:doc>
2385
      </arg>
2386
      <arg type="s" name="cmdline" direction="out">
2387
        <doc:doc>
2388
          <doc:summary>
2389
            <doc:para>
2390
              The command line of the tool that scheduled the action, e.g.
2391
              <doc:tt>/usr/bin/gpk-application</doc:tt>.
2392
            </doc:para>
2393
          </doc:summary>
2394
        </doc:doc>
2395
      </arg>
2396
    </signal>
2397
2398
    <!--*****************************************************************************************-->
2399
    <signal name="UpdateDetail">
2400
      <doc:doc>
2401
        <doc:description>
2402
          <doc:para>
2403
            This signal is sent when more details are required about a specific update.
2404
          </doc:para>
2405
        </doc:description>
2406
      </doc:doc>
2407
      <arg type="s" name="package_id" direction="out">
2408
        <doc:doc>
2409
          <doc:summary>
2410
            <doc:para>
2411
              The package ID
2412
            </doc:para>
2413
          </doc:summary>
2414
        </doc:doc>
2415
      </arg>
2416
      <arg type="s" name="updates" direction="out">
2417
        <doc:doc>
2418
          <doc:summary>
2419
            <doc:para>
2420
              A list of package_id's that are to be updated, seporated by <doc:tt>&amp;</doc:tt>.
2421
              This odd delimited was chosen as <doc:tt>\t</doc:tt> is already being used in the
2422
              spawned backends, and <doc:tt>&amp;</doc:tt> is a banned character in a package_id.
2423
            </doc:para>
2424
          </doc:summary>
2425
        </doc:doc>
2426
      </arg>
2427
      <arg type="s" name="obsoletes" direction="out">
2428
        <doc:doc>
2429
          <doc:summary>
2430
            <doc:para>
2431
              A list of package_id's that are to be obsoleted, separated by <doc:tt>&amp;</doc:tt>
2432
            </doc:para>
2433
          </doc:summary>
2434
        </doc:doc>
2435
      </arg>
2436
      <arg type="s" name="vendor_url" direction="out">
2437
        <doc:doc>
2438
          <doc:summary>
2439
            <doc:para>
2440
              A URL with more details on the update, e.g. a page with more
2441
              information on the update.
2442
              The format of this command should be
2443
              <doc:tt>http://www.foo.org/page.html?4567;Update to SELinux</doc:tt>
2444
            </doc:para>
2445
          </doc:summary>
2446
        </doc:doc>
2447
      </arg>
2448
      <arg type="s" name="bugzilla_url" direction="out">
2449
        <doc:doc>
2450
          <doc:summary>
2451
            <doc:para>
2452
              A bugzilla URL with more details on the update.
2453
              If no URL is available then this field should be left empty.
2454
            </doc:para>
2455
          </doc:summary>
2456
        </doc:doc>
2457
      </arg>
2458
      <arg type="s" name="cve_url" direction="out">
2459
        <doc:doc>
2460
          <doc:summary>
2461
            <doc:para>
2462
              A CVE URL with more details on the security advisory.
2463
            </doc:para>
2464
          </doc:summary>
2465
        </doc:doc>
2466
      </arg>
2467
      <arg type="s" name="restart" direction="out">
2468
        <doc:doc>
2469
          <doc:summary>
2470
            <doc:para>
2471
              A valid restart type, e.g. <doc:tt>system</doc:tt>.
2472
            </doc:para>
2473
          </doc:summary>
2474
        </doc:doc>
2475
      </arg>
2476
      <arg type="s" name="update_text" direction="out">
2477
        <doc:doc>
2478
          <doc:summary>
2479
            <doc:para>
2480
              The update text describing the update.
2481
            </doc:para>
2482
            <doc:para>
2483
              If formatting is required, then markdown syntax should be used,
2484
              e.g. <doc:tt>This is **critically** important</doc:tt>
2485
            </doc:para>
2486
          </doc:summary>
2487
        </doc:doc>
2488
      </arg>
2489
      <arg type="s" name="changelog" direction="out">
2490
        <doc:doc>
2491
          <doc:summary>
2492
            <doc:para>
2493
              The ChangeLog text describing the changes since the last version.
2494
            </doc:para>
2495
          </doc:summary>
2496
        </doc:doc>
2497
      </arg>
2498
      <arg type="s" name="state" direction="out">
2499
        <doc:doc>
2500
          <doc:summary>
2501
            <doc:para>
2502
              The state of the update, e.g. <doc:tt>stable</doc:tt> or
2503
              <doc:tt>testing</doc:tt>.
2504
            </doc:para>
2505
          </doc:summary>
2506
        </doc:doc>
2507
      </arg>
2508
      <arg type="s" name="issued" direction="out">
2509
        <doc:doc>
2510
          <doc:summary>
2511
            <doc:para>
2512
              The ISO8601 encoded date that the update was issued.
2513
            </doc:para>
2514
          </doc:summary>
2515
        </doc:doc>
2516
      </arg>
2517
      <arg type="s" name="updated" direction="out">
2518
        <doc:doc>
2519
          <doc:summary>
2520
            <doc:para>
2521
              The ISO8601 encoded date that the update was updated.
2522
            </doc:para>
2523
          </doc:summary>
2524
        </doc:doc>
2525
      </arg>
2526
    </signal>
2527
2528
    <!--*****************************************************************************************-->
2529
    <signal name="DistroUpgrade">
2530
      <doc:doc>
2531
        <doc:description>
2532
          <doc:para>
2533
            This signal allows the backend to communicate distribution
2534
            upgrades to the session.
2535
          </doc:para>
2536
        </doc:description>
2537
      </doc:doc>
2538
      <arg type="s" name="type" direction="out">
2539
        <doc:doc>
2540
          <doc:summary>
2541
            <doc:para>
2542
              A valid upgrade string enumerated type, e.g. <doc:tt>stable</doc:tt>
2543
              or <doc:tt>unstable</doc:tt>
2544
            </doc:para>
2545
          </doc:summary>
2546
        </doc:doc>
2547
      </arg>
2548
      <arg type="s" name="name" direction="out">
2549
        <doc:doc>
2550
          <doc:summary>
2551
            <doc:para>
2552
              The short name of the distribution, e.g. <doc:tt>Fedora Core 10 RC1</doc:tt>
2553
            </doc:para>
2554
          </doc:summary>
2555
        </doc:doc>
2556
      </arg>
2557
      <arg type="s" name="summary" direction="out">
2558
        <doc:doc>
2559
          <doc:summary>
2560
            <doc:para>
2561
              The multi-line description of the release.
2562
            </doc:para>
2563
          </doc:summary>
2564
        </doc:doc>
2565
      </arg>
2566
    </signal>
2567
2568
    <!--*****************************************************************************************-->
2569
    <signal name="ItemProgress">
2570
      <doc:doc>
2571
        <doc:description>
2572
          <doc:para>
2573
            This signal allows the backend to send infomation about
2574
            package or repository progress when using Simultanous mode.
2575
          </doc:para>
2576
        </doc:description>
2577
      </doc:doc>
2578
      <arg type="s" name="id" direction="out">
2579
        <doc:doc>
2580
          <doc:summary>
2581
            <doc:para>
2582
              A valid package_id, e.g. <doc:tt>hal;0.1.0;i386;fedora</doc:tt>
2583
              or a repo_id.
2584
            </doc:para>
2585
            <doc:para>
2586
              A repo_id may only be used when running RefreshCache.
2587
            </doc:para>
2588
          </doc:summary>
2589
        </doc:doc>
2590
      </arg>
2591
      <arg type="u" name="percentage" direction="out">
2592
        <doc:doc>
2593
          <doc:summary>
2594
            <doc:para>
2595
              The percentage of this package action is completed.
2596
            </doc:para>
2597
          </doc:summary>
2598
        </doc:doc>
2599
      </arg>
2600
    </signal>
2601
2602
    <!--*****************************************************************************************-->
2603
    <signal name="Changed">
2604
      <doc:doc>
2605
        <doc:description>
2606
          <doc:para>
2607
            This signal is emitted when a property on the interface changes.
2608
          </doc:para>
2609
        </doc:description>
2610
      </doc:doc>
2611
    </signal>
2612
2613
    <!--*****************************************************************************************-->
2614
    <signal name="Destroy">
2615
      <doc:doc>
2616
        <doc:description>
2617
          <doc:para>
2618
            This signal is sent when the transaction has been destroyed and is
2619
            no longer available for use.
2620
          </doc:para>
2621
        </doc:description>
2622
      </doc:doc>
2623
    </signal>
2624
2625
  </interface>
2626
</node>