[PackageKit-commit] packagekit: Branch 'main' - 46 commits

Matthias Klumpp mak at kemper.freedesktop.org
Sat Aug 26 21:55:58 UTC 2023


 .cirrus.yml                                       |   20 
 .tx/config                                        |   10 
 CONTRIBUTING                                      |    1 
 HACKING                                           |   38 
 NEWS                                              |   47 
 PackageKit.doap                                   |    3 
 RELEASE                                           |   22 
 backends/alpm/groups.list                         |    2 
 backends/apt/apt-job.cpp                          |   60 
 backends/apt/apt-sourceslist.cpp                  |   19 
 backends/apt/meson.build                          |    3 
 backends/dnf/meson.build                          |   40 
 backends/dnf/notify_packagekit.py                 |   45 
 backends/dnf/pk-backend-dnf-common.c              |  110 
 backends/dnf/pk-backend-dnf-common.h              |   37 
 backends/dnf/pk-backend-dnf-refresh.c             |  170 +
 backends/dnf/pk-backend-dnf.c                     |  203 -
 backends/nix/meson.build                          |    1 
 backends/slack/meson.build                        |    1 
 backends/slack/tests/meson.build                  |    1 
 backends/zypp/meson.build                         |    1 
 backends/zypp/pk-backend-zypp.cpp                 |   14 
 client/pk-console.c                               |    4 
 client/pkcon.xml                                  |    2 
 client/pkmon.xml                                  |    2 
 contrib/PackageKit.spec.in                        |    3 
 data/meson.build                                  |    2 
 data/tests/pk-client-helper-test.py               |    2 
 data/tests/pk-spawn-dispatcher.py                 |    2 
 data/tests/pk-spawn-test-sigquit.py               |    2 
 docs/api/spec/pk-concepts.xml                     |    4 
 docs/html/pk-faq.html                             |   12 
 docs/html/pk-reference.html                       |    2 
 docs/html/pk-users.html                           |   14 
 etc/Vendor.conf                                   |    4 
 lib/packagekit-glib2/pk-category.c                |   10 
 lib/packagekit-glib2/pk-client.c                  |   90 
 lib/packagekit-glib2/pk-client.h                  |    3 
 lib/packagekit-glib2/pk-control.c                 |   30 
 lib/packagekit-glib2/pk-details.c                 |   16 
 lib/packagekit-glib2/pk-distro-upgrade.c          |    6 
 lib/packagekit-glib2/pk-enum.c                    |    1 
 lib/packagekit-glib2/pk-enum.h                    |    2 
 lib/packagekit-glib2/pk-error.c                   |    4 
 lib/packagekit-glib2/pk-eula-required.c           |    8 
 lib/packagekit-glib2/pk-files.c                   |    4 
 lib/packagekit-glib2/pk-item-progress.c           |    8 
 lib/packagekit-glib2/pk-media-change-required.c   |    6 
 lib/packagekit-glib2/pk-package.c                 |   40 
 lib/packagekit-glib2/pk-progress.c                |   33 
 lib/packagekit-glib2/pk-repo-detail.c             |    6 
 lib/packagekit-glib2/pk-repo-signature-required.c |   16 
 lib/packagekit-glib2/pk-require-restart.c         |    4 
 lib/packagekit-glib2/pk-results.c                 |    8 
 lib/packagekit-glib2/pk-source.c                  |    4 
 lib/packagekit-glib2/pk-task.c                    |   10 
 lib/packagekit-glib2/pk-transaction-past.c        |   16 
 lib/packagekit-glib2/pk-update-detail.c           |   24 
 meson.build                                       |    4 
 po/af.po                                          |    2 
 po/ar.po                                          | 1828 ----------------
 po/as.po                                          |    2 
 po/ast.po                                         |    2 
 po/bg.po                                          |    2 
 po/bn_IN.po                                       |    2 
 po/ca.po                                          |    2 
 po/cs.po                                          |   21 
 po/da.po                                          |   23 
 po/de.po                                          |   16 
 po/el.po                                          |    2 
 po/en_GB.po                                       |   23 
 po/eo.po                                          |    2 
 po/es.po                                          |   43 
 po/eu.po                                          |    2 
 po/fi.po                                          |   25 
 po/fr.po                                          |    2 
 po/fur.po                                         |    2 
 po/gl.po                                          |    2 
 po/gu.po                                          |    2 
 po/he.po                                          |    4 
 po/hi.po                                          |    2 
 po/hr.po                                          |   21 
 po/hu.po                                          |   21 
 po/ia.po                                          |    2 
 po/id.po                                          |    2 
 po/it.po                                          |    2 
 po/ja.po                                          |   23 
 po/ka.po                                          |  378 +++
 po/kk.po                                          |    2 
 po/kn.po                                          |    2 
 po/ko.po                                          |   32 
 po/lt.po                                          |   12 
 po/lv.po                                          |    2 
 po/ml.po                                          |    2 
 po/mr.po                                          |    2 
 po/nb.po                                          |    2 
 po/nl.po                                          |   14 
 po/oc.po                                          |    2 
 po/or.po                                          |    2 
 po/pa.po                                          |    2 
 po/pl.po                                          |   21 
 po/pt.po                                          |   31 
 po/pt_BR.po                                       |    2 
 po/ro.po                                          |    2 
 po/ru.po                                          |   24 
 po/si.po                                          |    2 
 po/sk.po                                          |    2 
 po/sl.po                                          |   21 
 po/sq.po                                          | 2468 ++++++++--------------
 po/sr.po                                          |    2 
 po/sr at latin.po                                    |    2 
 po/sv.po                                          |   23 
 po/ta.po                                          |    2 
 po/te.po                                          |    2 
 po/th.po                                          |    2 
 po/tr.po                                          |  244 +-
 po/uk.po                                          |   21 
 po/zh_CN.po                                       |    2 
 po/zh_TW.po                                       |    2 
 policy/org.freedesktop.packagekit.policy.in       |    2 
 src/meson.build                                   |    1 
 src/pk-backend-job.c                              |   15 
 src/pk-backend-job.h                              |    5 
 src/pk-engine.c                                   |    2 
 src/pk-main.c                                     |   18 
 src/pk-scheduler.c                                |    1 
 src/pk-spawn.c                                    |    4 
 src/pk-transaction.c                              |   28 
 tests/ci/Dockerfile-debian                        |    4 
 129 files changed, 2905 insertions(+), 3842 deletions(-)

New commits:
commit 9915e1b611e6d662f67e6c1dcd4e7fda5c31cba8
Author: Matthias Klumpp <matthias at tenstral.net>
Date:   Sat Aug 26 23:55:01 2023 +0200

    Release 1.2.7

diff --git a/NEWS b/NEWS
index 15a565434..8c25aa2b0 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,48 @@
+Version 1.2.7
+~~~~~~~~~~~~~
+Released: 2023-08-26
+
+New Features:
+ * pkclient: Add an option to count download size with dependencies (Milan Crha)
+ * pk-transaction: Add support for getting the RemainingTime property (Philip Withnall)
+
+Backends:
+ * dnf: Notify PackageKit when dnf installs or removes packages (Gordon Messmer)
+ * dnf: Run pk_backend_refresh_repo in a new process to avoid keeping libdnf memory leaks (Gordon Messmer)
+ * dnf: Calculate download size with dependencies, if requested (Milan Crha)
+ * zypp: Fix ambiguous reference to 'filesystem' class (Jonathan Kang)
+ * apt: Display more useful pretty names for repositories (Matthias Klumpp)
+ * apt: Set update urgency as urgency as well as status again (Matthias Klumpp)
+ * apt: Don't crash while resolving mimetypes, modernize mime search code (Matthias Klumpp)
+ * apt: Fix 'search-file' regexp as per BRE pattern (which is the default) (sid)
+ * alpm: add and support deepin group (Wang Zichong)
+
+Bugfixes:
+ * progress: Free the sender value on finalize (Corentin Noël)
+ * Add G_PARAM_STATIC_STRINGS to all properties (Corentin Noël)
+ * pkcon: Widen progressbar text area (Frank Dana)
+ * Use more portable shebang in Python test scripts (Gleb Popov)
+ * Make use of SYSCONFDIR definition when setting a config file watch (Gleb Popov)
+ * Shutdown daemon on idle by default again (yump)
+ * Fix use of potentially uninitialized timer ID (Gordon Messmer)
+ * pk-transaction: Return an error if property name is not known (Philip Withnall)
+ * pk-client: Signal a transaction as finished if it disappears off the bus (Philip Withnall)
+ * pk-transaction: Check that Finished signal is emitted at most once (Philip Withnall)
+ * pk-transaction: Check that Finished signal is emitted at least once (Philip Withnall)
+
+
+Miscellaneous:
+ * Add FreeBSD CI using cirrus (Alexey Yushkin)
+ * packagekitd: Use export_dynamic explicitly (Dominique Leuenberger)
+ * Use the term DDE instead of deepin (Gary Wang)
+ * packagekit-glib2: Use the correct enum for DDE (Neal Gompa)
+ * data/meson.build: Install dbus policy in /usr/share, not /etc (Gioele Barabucci)
+ * Globally pass -DPK_COMPILATION to the C++ compiler (Gleb Popov)
+ * metadata: Remove reference to defunct screenshots URL (Marcus Müller)
+ * metadata: replace defunct www.packagekit.org URL with freedesktop URL (Marcus Müller)
+ * docs: replace defunct www.packagekit.org URL with freedesktop URL (Marcus Müller)
+ * HACKING: Refresh to match current practices (Neal Gompa)
+
 Version 1.2.6
 ~~~~~~~~~~~~~
 Released: 2022-12-01
commit a2ffd4b329b8768d3ea5fd088703887a5d5922cf
Author: Matthias Klumpp <matthias at tenstral.net>
Date:   Sat Aug 26 23:54:44 2023 +0200

    trivial: Fix compiler warning

diff --git a/lib/packagekit-glib2/pk-item-progress.c b/lib/packagekit-glib2/pk-item-progress.c
index 20951b686..fa423f31f 100644
--- a/lib/packagekit-glib2/pk-item-progress.c
+++ b/lib/packagekit-glib2/pk-item-progress.c
@@ -69,7 +69,7 @@ G_DEFINE_TYPE (PkItemProgress, pk_item_progress, PK_TYPE_SOURCE)
  *
  * Return value: a #PkStatusEnum
  **/
-guint
+PkStatusEnum
 pk_item_progress_get_status (PkItemProgress *item_progress)
 {
 	return item_progress->priv->status;
commit 95dbafbda0d356fed4cd51a56d5b8ee6b7e09a46
Author: Matthias Klumpp <matthias at tenstral.net>
Date:   Sat Aug 26 22:40:15 2023 +0200

    l10n: Update

diff --git a/po/af.po b/po/af.po
index 299408a2a..806fa48ac 100644
--- a/po/af.po
+++ b/po/af.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Afrikaans (http://www.transifex.com/freedesktop/packagekit/language/af/)\n"
+"Language-Team: Afrikaans (http://app.transifex.com/freedesktop/packagekit/language/af/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/ar.po b/po/ar.po
index e23977c1f..b09df30e0 100644
--- a/po/ar.po
+++ b/po/ar.po
@@ -1,1821 +1,75 @@
 # SOME DESCRIPTIVE TITLE.
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# 
+# This file is distributed under the same license as the PackageKit package.
+#
 # Translators:
+# zayed <zayed.alsaidi at gmail.com>, 2022
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Arabic (http://www.transifex.com/projects/p/freedesktop/language/ar/)\n"
+"Language-Team: Arabic (http://app.transifex.com/freedesktop/packagekit/language/ar/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: ar\n"
 "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
 
-#. TRANSLATORS: this is an atomic transaction
-#. TRANSLATORS: the role is the point of the transaction, e.g. update-packages
-#: ../client/pk-console.c:174 ../client/pk-console.c:587
-msgid "Transaction"
-msgstr ""
-
-#. TRANSLATORS: this is the time the transaction was started in system
-#. timezone
-#: ../client/pk-console.c:176
-msgid "System time"
-msgstr ""
-
-#. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:178
-msgid "Succeeded"
-msgstr ""
-
-#: ../client/pk-console.c:178
-msgid "True"
-msgstr ""
-
-#: ../client/pk-console.c:178
-msgid "False"
-msgstr ""
-
-#. TRANSLATORS: this is the transactions role, e.g. "update-packages"
-#: ../client/pk-console.c:180
-msgid "Role"
-msgstr ""
-
-#. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:185
-msgid "Duration"
-msgstr ""
-
-#: ../client/pk-console.c:185
-msgid "(seconds)"
-msgstr ""
-
-#. TRANSLATORS: this is The command line used to do the action
-#: ../client/pk-console.c:189
-msgid "Command line"
-msgstr ""
-
-#. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:191
-msgid "User ID"
-msgstr ""
-
-#. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:198
-msgid "Username"
-msgstr ""
-
-#. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:202
-msgid "Real name"
-msgstr ""
-
-#: ../client/pk-console.c:210
-msgid "Affected packages:"
-msgstr ""
-
-#: ../client/pk-console.c:212
-msgid "Affected packages: None"
-msgstr ""
-
-#. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:247
-msgid "Distribution"
-msgstr ""
-
-#. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:249
-msgid "Type"
-msgstr ""
-
-#. TRANSLATORS: this is any summary text describing the upgrade
-#. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:251 ../client/pk-console.c:290
-msgid "Summary"
-msgstr ""
-
-#. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:279
-msgid "Category"
-msgstr ""
-
-#. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:281
-msgid "ID"
-msgstr ""
-
-#. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:284
-msgid "Parent"
-msgstr ""
-
-#. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:287
-msgid "Name"
-msgstr ""
-
-#. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:293
-msgid "Icon"
-msgstr ""
-
-#. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:340
-msgid "Details about the update:"
-msgstr ""
-
-#. TRANSLATORS: details about the update, package name and version
-#. TRANSLATORS: the package that is being processed
-#. TRANSLATORS: the package that is not signed by a known key
-#. TRANSLATORS: the package name that was trying to be installed
-#: ../client/pk-console.c:346 ../client/pk-console.c:606
-#: ../lib/packagekit-glib2/pk-task-text.c:124
-#: ../lib/packagekit-glib2/pk-task-text.c:206
-msgid "Package"
-msgstr ""
-
-#. TRANSLATORS: details about the update, any packages that this update
-#. updates
-#: ../client/pk-console.c:350
-msgid "Updates"
-msgstr ""
-
-#. TRANSLATORS: details about the update, any packages that this update
-#. obsoletes
-#: ../client/pk-console.c:356
-msgid "Obsoletes"
-msgstr ""
-
-#. TRANSLATORS: details about the update, the vendor URLs
-#. TRANSLATORS: the vendor (e.g. vmware) that is providing the EULA
-#: ../client/pk-console.c:362 ../lib/packagekit-glib2/pk-task-text.c:209
-msgid "Vendor"
-msgstr ""
-
-#. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:368
-msgid "Bugzilla"
-msgstr ""
-
-#. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:374
-msgid "CVE"
-msgstr ""
-
-#. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:379
-msgid "Restart"
-msgstr ""
-
-#. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:383
-msgid "Update text"
-msgstr ""
-
-#. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:387
-msgid "Changes"
-msgstr ""
-
-#. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:391
-msgid "State"
-msgstr ""
-
-#. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:395
-msgid "Issued"
-msgstr ""
-
-#. TRANSLATORS: details about the update, date the update was updated
-#. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:399 ../lib/packagekit-glib2/pk-enum.c:1171
-msgid "Updated"
-msgstr ""
-
-#. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:435
-msgid "Enabled"
-msgstr ""
-
-#. TRANSLATORS: if the repo is disabled
-#: ../client/pk-console.c:438
-msgid "Disabled"
-msgstr ""
-
-#. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:470
-msgid "System restart required by:"
-msgstr ""
-
-#. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:473
-msgid "Session restart required:"
-msgstr ""
-
-#. TRANSLATORS: a package requires the system to be restarted due to a
-#. security update
-#: ../client/pk-console.c:476
-msgid "System restart (security) required by:"
-msgstr ""
-
-#. TRANSLATORS: a package requires the session to be restarted due to a
-#. security update
-#: ../client/pk-console.c:479
-msgid "Session restart (security) required:"
-msgstr ""
-
-#. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:482
-msgid "Application restart required by:"
-msgstr ""
-
-#. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:517
-msgid "Package description"
-msgstr ""
-
-#. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:549
-msgid "No files"
-msgstr ""
-
-#. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:554
-msgid "Package files"
-msgstr ""
-
-#. TRANSLATORS: the percentage complete of the transaction
-#: ../client/pk-console.c:622
-msgid "Percentage"
-msgstr ""
-
-#. TRANSLATORS: the status of the transaction (e.g. downloading)
-#: ../client/pk-console.c:640
-msgid "Status"
-msgstr ""
-
-#. TRANSLATORS: the results from the transaction
-#: ../client/pk-console.c:672
-msgid "Results:"
-msgstr ""
-
-#. TRANSLATORS: we failed to get any results, which is pretty fatal in my book
-#: ../client/pk-console.c:679 ../client/pk-console.c:830
-msgid "Fatal error"
-msgstr ""
-
-#. TRANSLATORS: the user asked to update everything, but there is nothing that
-#. can be updated
-#: ../client/pk-console.c:696
-msgid "There are no packages to update."
-msgstr ""
-
-#. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../client/pk-console.c:699
-#: ../contrib/command-not-found/pk-command-not-found.c:716
-msgid "The transaction failed"
-msgstr ""
-
-#. TRANSLATORS: print a message when there are no updates
-#: ../client/pk-console.c:728
-msgid "There are no updates available at this time."
-msgstr ""
-
-#: ../client/pk-console.c:751
-msgid "There are no upgrades available at this time."
-msgstr ""
-
-#. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:813
-msgid "Please restart the computer to complete the update."
-msgstr ""
-
-#. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:816
-msgid "Please logout and login to complete the update."
-msgstr ""
-
-#. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:819
-msgid ""
-"Please restart the computer to complete the update as important security "
-"updates have been installed."
-msgstr ""
-
-#. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:822
-msgid ""
-"Please logout and login to complete the update as important security updates"
-" have been installed."
-msgstr ""
-
-#. TRANSLATORS: The user used 'pkcon install dave.rpm' rather than 'pkcon
-#. install-local dave.rpm'
-#: ../client/pk-console.c:862
-#, c-format
-msgid ""
-"Expected package name, actually got file. Try using 'pkcon install-local %s'"
-" instead."
-msgstr ""
-
-#. TRANSLATORS: There was an error getting the list of files for the package.
-#. The detailed error follows
-#: ../client/pk-console.c:875
-#, c-format
-msgid "This tool could not find any available package: %s"
-msgstr ""
-
-#. TRANSLATORS: There was an error getting the list of files for the package.
-#. The detailed error follows
-#: ../client/pk-console.c:904
-#, c-format
-msgid "This tool could not find the installed package: %s"
-msgstr ""
-
-#. TRANSLATORS: There was an error getting the list of files for the package.
-#. The detailed error follows
-#: ../client/pk-console.c:932 ../client/pk-console.c:967
-#, c-format
-msgid "This tool could not find the package: %s"
-msgstr ""
-
-#. TRANSLATORS: there are no updates, so nothing to do
-#: ../client/pk-console.c:1011
-msgid "No packages require updating to newer versions."
-msgstr ""
-
-#. TRANSLATORS: There was an error getting the list of files for the package.
-#. The detailed error follows
-#. TRANSLATORS: There was an error getting the dependencies for the package.
-#. The detailed error follows
-#. TRANSLATORS: There was an error getting the details about the package. The
-#. detailed error follows
-#. TRANSLATORS: The package name was not found in any software sources. The
-#. detailed error follows
-#: ../client/pk-console.c:1041 ../client/pk-console.c:1073
-#: ../client/pk-console.c:1101 ../client/pk-console.c:1129
-#: ../client/pk-console.c:1157
-#, c-format
-msgid "This tool could not find all the packages: %s"
-msgstr ""
-
-#. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
-#. without a paddle
-#: ../client/pk-console.c:1186
-msgid "The daemon crashed mid-transaction!"
-msgstr ""
-
-#. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1220
-msgid "PackageKit Console Interface"
-msgstr ""
-
-#. these are commands we can use with pkcon
-#: ../client/pk-console.c:1222
-msgid "Subcommands:"
-msgstr ""
-
-#. TRANSLATORS: we keep a database updated with the time that an action was
-#. last executed
-#: ../client/pk-console.c:1309
-msgid "Failed to get the time since this action was last completed"
-msgstr ""
-
-#. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1473 ../client/pk-monitor.c:354
-msgid "Show the program version and exit"
-msgstr ""
-
-#. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1476
-msgid "Set the filter, e.g. installed"
-msgstr ""
-
-#. command line argument, do we ask questions
-#: ../client/pk-console.c:1479
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
-msgid "Install the packages without asking for confirmation"
-msgstr ""
-
-#. command line argument, do we just download or apply changes
-#: ../client/pk-console.c:1482
-msgid "Prepare the transaction by downloading pakages only"
-msgstr ""
-
-#. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1485
-msgid "Run the command using idle network bandwidth and also using less power"
-msgstr ""
-
-#. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1488
-msgid ""
-"Print to screen a machine readable output, rather than using animated "
-"widgets"
-msgstr ""
-
-#. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1491
-msgid "The maximum metadata cache age. Use -1 for 'never'."
-msgstr ""
-
-#. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1523
-msgid "Failed to parse command line"
-msgstr ""
-
-#. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1534
-msgid "Failed to contact PackageKit"
-msgstr ""
-
-#. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1589
-msgid "The proxy could not be set"
-msgstr ""
-
-#. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1601
-msgid "The filter specified was invalid"
-msgstr ""
-
-#. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1623
-msgid "A search type is required, e.g. name"
-msgstr ""
-
-#. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1630 ../client/pk-console.c:1642
-#: ../client/pk-console.c:1654 ../client/pk-console.c:1666
-msgid "A search term is required"
-msgstr ""
-
-#. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1676
-msgid "Invalid search type"
-msgstr ""
-
-#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1682
-msgid "A package name to install is required"
-msgstr ""
-
-#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1691
-msgid "A filename to install is required"
-msgstr ""
-
-#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1702
-msgid "A type, key_id and package_id are required"
-msgstr ""
-
-#. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1713
-msgid "A package name to remove is required"
-msgstr ""
-
-#. TRANSLATORS: the user did not specify anything about what to download or
-#. where
-#: ../client/pk-console.c:1722
-msgid "A destination directory and the package names to download are required"
-msgstr ""
-
-#. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1729
-msgid "Directory not found"
-msgstr ""
-
-#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1738
-msgid "A licence identifier (eula-id) is required"
-msgstr ""
-
-#. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1757
-msgid "A package name to resolve is required"
-msgstr ""
-
-#. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1768 ../client/pk-console.c:1779
-msgid "A repository name is required"
-msgstr ""
-
-#. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1790
-msgid "A repo name, parameter and value are required"
-msgstr ""
-
-#. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1807
-msgid "An action, e.g. 'update-packages' is required"
-msgstr ""
-
-#. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1814
-msgid "A correct role is required"
-msgstr ""
-
-#. TRANSLATORS: The user did not provide a package name
-#: ../client/pk-console.c:1824 ../client/pk-console.c:1838
-#: ../client/pk-console.c:1847 ../client/pk-console.c:1867
-#: ../client/pk-console.c:1876
-msgid "A package name is required"
-msgstr ""
-
-#. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-
-#. decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:1856
-msgid "A package provide string is required"
-msgstr ""
-
-#. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1900
-msgid "A distribution name is required"
-msgstr ""
-
-#. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1906
-msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
-msgstr ""
-
-#. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:2003
-msgid "You need to specify a list file to create"
-msgstr ""
-
-#. TRANSLATORS: There was an error getting the list of packages. The filename
-#. follows
-#: ../client/pk-console.c:2012
-#, c-format
-msgid "File already exists: %s"
-msgstr ""
-
-#. TRANSLATORS: The user tried to use an unsupported option on the command
-#. line
-#: ../client/pk-console.c:2028
-#, c-format
-msgid "Option '%s' is not supported"
-msgstr ""
-
-#. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2038
-msgid "Command failed"
-msgstr ""
-
-#: ../client/pk-monitor.c:267
-msgid "Failed to get daemon state"
-msgstr ""
-
-#: ../client/pk-monitor.c:332
-msgid "Failed to get properties"
-msgstr ""
-
-#. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:373
-msgid "PackageKit Monitor"
-msgstr ""
-
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:422
-msgid "Getting package information..."
-msgstr ""
-
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:428
-#, c-format
-msgid "Run %s"
-msgstr ""
-
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:434
-msgid "Installed version"
-msgstr ""
-
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:442
-#, c-format
-msgid "Run version %s now"
-msgstr ""
-
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:448
-msgid "Run now"
-msgstr ""
-
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:454
-#, c-format
-msgid "Update to version %s"
-msgstr ""
-
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:460
-#, c-format
-msgid "Install %s now"
-msgstr ""
-
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:463
-msgid "Version"
-msgstr ""
-
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:468
-msgid "No packages found for your system"
-msgstr ""
-
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:473
-msgid "Installing..."
-msgstr ""
-
-#. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:442
-msgid "Downloading details about the software sources."
-msgstr ""
-
-#. TRANSLATORS: downloading file lists so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:446
-msgid "Downloading filelists (this may take some time to complete)."
-msgstr ""
-
-#. TRANSLATORS: waiting for native lock
-#: ../contrib/command-not-found/pk-command-not-found.c:450
-msgid "Waiting for package manager lock."
-msgstr ""
-
-#. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:454
-msgid "Loading list of packages."
-msgstr ""
-
-#. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:519
-msgid "Failed to search for file"
-msgstr ""
-
-#. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:532
-msgid "Getting the list of files failed"
-msgstr ""
-
-#. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:679
-msgid "Failed to launch:"
-msgstr ""
-
-#. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:707
-msgid "Failed to install packages"
-msgstr ""
-
-#. TRANSLATORS: the prefix of all the output telling the user
-#. * why it's not executing. NOTE: this is lowercase to mimic
-#. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:841
-msgid "command not found"
-msgstr ""
-
-#. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:858
-msgid "Similar command is:"
-msgstr ""
-
-#. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:871
-msgid "Run similar command:"
-msgstr ""
-
-#. TRANSLATORS: show the user a list of commands that they could have meant
-#. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:883
-#: ../contrib/command-not-found/pk-command-not-found.c:892
-msgid "Similar commands are:"
-msgstr ""
-
-#. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:899
-msgid "Please choose a command to run"
-msgstr ""
-
-#. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:918
-msgid "The package providing this file is:"
-msgstr ""
-
-#. TRANSLATORS: as the user if we want to install a package to provide the
-#. command
-#: ../contrib/command-not-found/pk-command-not-found.c:925
-#, c-format
-msgid "Install package '%s' to provide command '%s'?"
-msgstr ""
-
-#. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:948
-msgid "Packages providing this file are:"
-msgstr ""
-
-#. TRANSLATORS: Show the user a list of packages that they can install to
-#. provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:958
-msgid "Suitable packages are:"
-msgstr ""
-
-#. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:966
-msgid "Please choose a package to install"
-msgstr ""
-
-#: ../contrib/command-not-found/pk-command-not-found.c:968
-msgid "User aborted selection"
-msgstr ""
-
-#. TRANSLATORS: we are starting to install the packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:195
-msgid "Starting install"
-msgstr ""
-
-#. TRANSLATORS: we couldn't find the package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:407
-#, c-format
-msgid "Failed to find the package %s, or already installed: %s"
-msgstr ""
-
-#. command line argument, simulate what would be done, but don't actually do
-#. it
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:516
-msgid ""
-"Don't actually install any packages, only simulate what would be installed"
-msgstr ""
-
-#. command line argument, do we skip packages that depend on the ones
-#. specified
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:519
-msgid "Do not install dependencies of the core packages"
-msgstr ""
-
-#. command line argument, do we operate quietly
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:522
-msgid "Do not display information or progress"
-msgstr ""
-
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:544
-msgid "PackageKit Debuginfo Installer"
-msgstr ""
-
-#. TRANSLATORS: the use needs to specify a list of package names on the
-#. command line
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:558
-#, c-format
-msgid "ERROR: Specify package names to install."
-msgstr ""
-
-#. TRANSLATORS: we are getting the list of repositories
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:594
-#, c-format
-msgid "Getting sources list"
-msgstr ""
-
-#. TRANSLATORS: operation was not successful
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:604
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:679
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:763
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:807
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:918
-msgid "FAILED."
-msgstr ""
-
-#. TRANSLATORS: all completed 100%
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:619
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:659
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:694
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:778
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:822
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:889
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:933
-#, c-format
-msgid "OK."
-msgstr ""
-
-#. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:622
-#, c-format
-msgid "Found %i enabled and %i disabled sources."
-msgstr ""
-
-#. TRANSLATORS: we're finding repositories that match out pattern
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:629
-#, c-format
-msgid "Finding debugging sources"
-msgstr ""
-
-#. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:662
-#, c-format
-msgid "Found %i disabled debuginfo repos."
-msgstr ""
-
-#. TRANSLATORS: we're now enabling all the debug sources we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:669
-#, c-format
-msgid "Enabling debugging sources"
-msgstr ""
-
-#. TRANSLATORS: tell the user how many we enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:697
-#, c-format
-msgid "Enabled %i debugging sources."
-msgstr ""
-
-#. TRANSLATORS: we're now finding packages that match in all the repos
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:704
-#, c-format
-msgid "Finding debugging packages"
-msgstr ""
-
-#. TRANSLATORS: we couldn't find the package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
-#, c-format
-msgid "Failed to find the package %s: %s"
-msgstr ""
-
-#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:739
-#, c-format
-msgid "Failed to find the debuginfo package %s: %s"
-msgstr ""
-
-#. TRANSLATORS: no debuginfo packages could be found to be installed
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:767
-#, c-format
-msgid "Found no packages to install."
-msgstr ""
-
-#. TRANSLATORS: tell the user we found some packages, and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:781
-#, c-format
-msgid "Found %i packages:"
-msgstr ""
-
-#. TRANSLATORS: tell the user we are searching for deps
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:797
-#, c-format
-msgid "Finding packages that depend on these packages"
-msgstr ""
-
-#. TRANSLATORS: could not install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:810
-#, c-format
-msgid "Could not find dependent packages: %s"
-msgstr ""
-
-#. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:826
-#, c-format
-msgid "Found %i extra packages."
-msgstr ""
-
-#. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:830
-#, c-format
-msgid "No extra packages required."
-msgstr ""
-
-#. TRANSLATORS: tell the user we found some packages (and deps), and then list
-#. them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:839
-#, c-format
-msgid "Found %i packages to install:"
-msgstr ""
-
-#. TRANSLATORS: simulate mode is a testing mode where we quit before the
-#. action
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
-#, c-format
-msgid "Not installing packages in simulate mode"
-msgstr ""
-
-#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#. TRANSLATORS: transaction state, installing packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:864
-#: ../lib/packagekit-glib2/pk-console-shared.c:337
-#, c-format
-msgid "Installing packages"
-msgstr ""
-
-#. TRANSLATORS: could not install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:877
-#, c-format
-msgid "Could not install packages: %s"
-msgstr ""
-
-#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:909
-#, c-format
-msgid "Disabling sources previously enabled"
-msgstr ""
-
-#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed
-#. error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:921
-#, c-format
-msgid "Could not disable the debugging sources: %s"
-msgstr ""
-
-#. TRANSLATORS: we disabled all the debugging repos that we enabled before
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:936
-#, c-format
-msgid "Disabled %i debugging sources."
-msgstr ""
-
-#. TRANSLATORS: this is the message we send plymouth to
-#. * advise of the new percentage completion
-#: ../contrib/systemd-updates/pk-offline-update.c:169
-msgid "Installing Updates"
-msgstr ""
-
-#. TRANSLATORS: we've finished doing offline updates
-#: ../contrib/systemd-updates/pk-offline-update.c:213
-msgid "Rebooting after installing updates…"
-msgstr ""
-
-#. TRANSLATORS: we've started doing offline updates
-#: ../contrib/systemd-updates/pk-offline-update.c:554
-msgid "Installing updates, this could take a while…"
-msgstr ""
-
-#: ../lib/packagekit-glib2/pk-console-shared.c:67
-#, c-format
-msgid "Please enter a number from 1 to %i: "
-msgstr ""
-
-#. TRANSLATORS: more than one package could be found that matched, to follow
-#. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:235
-msgid "More than one package matches:"
-msgstr ""
-
-#. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:246
-msgid "Please choose the correct package: "
-msgstr ""
-
-#. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:305
-msgid "Unknown state"
-msgstr ""
-
-#. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:309
-msgid "Starting"
-msgstr ""
-
-#. TRANSLATORS: transaction state, the transaction is waiting for another to
-#. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:313
-msgid "Waiting in queue"
-msgstr ""
-
-#. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:317
-msgid "Running"
-msgstr ""
-
-#. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:321
-msgid "Querying"
-msgstr ""
-
-#. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:325
-msgid "Getting information"
-msgstr ""
-
-#. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:329
-msgid "Removing packages"
-msgstr ""
-
-#. TRANSLATORS: transaction state, downloading package files
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:333
-#: ../lib/packagekit-glib2/pk-enum.c:1316
-msgid "Downloading packages"
-msgstr ""
-
-#. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:341
-msgid "Refreshing software list"
-msgstr ""
-
-#. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:345
-msgid "Installing updates"
-msgstr ""
-
-#. TRANSLATORS: transaction state, removing old packages, and cleaning config
-#. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:349
-msgid "Cleaning up packages"
-msgstr ""
-
-#. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:353
-msgid "Obsoleting packages"
-msgstr ""
-
-#. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:357
-msgid "Resolving dependencies"
-msgstr ""
-
-#. TRANSLATORS: transaction state, checking if we have all the security keys
-#. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:361
-msgid "Checking signatures"
-msgstr ""
-
-#. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:365
-msgid "Testing changes"
-msgstr ""
-
-#. TRANSLATORS: transaction state, when we're writing to the system package
-#. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:369
-msgid "Committing changes"
-msgstr ""
-
-#. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:373
-msgid "Requesting data"
-msgstr ""
-
-#. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:377
-msgid "Finished"
-msgstr ""
-
-#. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:381
-msgid "Cancelling"
-msgstr ""
-
-#. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:385
-msgid "Downloading repository information"
-msgstr ""
-
-#. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:389
-msgid "Downloading list of packages"
-msgstr ""
-
-#. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:393
-msgid "Downloading file lists"
-msgstr ""
-
-#. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:397
-msgid "Downloading lists of changes"
-msgstr ""
-
-#. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:401
-msgid "Downloading groups"
-msgstr ""
-
-#. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:405
-msgid "Downloading update information"
-msgstr ""
-
-#. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:409
-msgid "Repackaging files"
-msgstr ""
-
-#. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:413
-msgid "Loading cache"
-msgstr ""
-
-#. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:417
-msgid "Scanning applications"
-msgstr ""
-
-#. TRANSLATORS: transaction state, generating a list of packages installed on
-#. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:421
-msgid "Generating package lists"
-msgstr ""
-
-#. TRANSLATORS: transaction state, when we're waiting for the native tools to
-#. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:425
-msgid "Waiting for package manager lock"
-msgstr ""
-
-#. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:429
-msgid "Waiting for authentication"
-msgstr ""
-
-#. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:433
-msgid "Updating running applications"
-msgstr ""
-
-#. TRANSLATORS: transaction state, we are checking executable files currently
-#. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:437
-msgid "Checking applications in use"
-msgstr ""
-
-#. TRANSLATORS: transaction state, we are checking for libraries currently in
-#. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:441
-msgid "Checking libraries in use"
-msgstr ""
-
-#. TRANSLATORS: transaction state, we are copying package files before or
-#. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:445
-msgid "Copying files"
-msgstr ""
-
-#. TRANSLATORS: turn on all debugging
-#: ../lib/packagekit-glib2/pk-debug.c:140
-msgid "Show debugging information for all files"
-msgstr ""
-
-#: ../lib/packagekit-glib2/pk-debug.c:208
-msgid "Debugging Options"
-msgstr ""
-
-#: ../lib/packagekit-glib2/pk-debug.c:208
-msgid "Show debugging options"
-msgstr ""
-
-#. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-enum.c:1059
-msgid "Trivial"
-msgstr ""
-
-#. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-enum.c:1063
-msgid "Normal"
-msgstr ""
-
-#. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-enum.c:1067
-msgid "Important"
-msgstr ""
-
-#. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-enum.c:1071
-msgid "Security"
-msgstr ""
-
-#. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-enum.c:1075
-msgid "Bug fix"
-msgstr ""
-
-#. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-enum.c:1079
-msgid "Enhancement"
-msgstr ""
-
-#. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-enum.c:1083
-msgid "Blocked"
-msgstr ""
-
-#. TRANSLATORS: The state of a package
-#. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-enum.c:1088
-#: ../lib/packagekit-glib2/pk-enum.c:1175
-msgid "Installed"
-msgstr ""
-
-#. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-enum.c:1093
-msgid "Available"
-msgstr ""
-
-#. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1118
-msgid "Downloading"
-msgstr ""
-
-#. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1122
-msgid "Updating"
-msgstr ""
-
-#. TRANSLATORS: The action of the package, in present tense
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1126
-#: ../lib/packagekit-glib2/pk-enum.c:1260
-msgid "Installing"
-msgstr ""
-
-#. TRANSLATORS: The action of the package, in present tense
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1130
-#: ../lib/packagekit-glib2/pk-enum.c:1256
-msgid "Removing"
-msgstr ""
-
-#. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1134
-msgid "Cleaning up"
-msgstr ""
-
-#. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1138
-msgid "Obsoleting"
-msgstr ""
-
-#. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1142
-msgid "Reinstalling"
-msgstr ""
-
-#. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-enum.c:1167
-msgid "Downloaded"
-msgstr ""
-
-#. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-enum.c:1179
-msgid "Removed"
-msgstr ""
-
-#. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-enum.c:1183
-msgid "Cleaned up"
-msgstr ""
-
-#. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-enum.c:1187
-msgid "Obsoleted"
-msgstr ""
-
-#. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-enum.c:1191
-msgid "Reinstalled"
-msgstr ""
-
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1216
-msgid "Unknown role type"
-msgstr ""
-
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1220
-msgid "Getting dependencies"
-msgstr ""
-
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1224
-msgid "Getting update details"
-msgstr ""
-
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1228
-msgid "Getting details"
-msgstr ""
-
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1232
-msgid "Getting requires"
-msgstr ""
-
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1236
-msgid "Getting updates"
-msgstr ""
-
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1240
-msgid "Searching by details"
-msgstr ""
-
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1244
-msgid "Searching by file"
-msgstr ""
-
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1248
-msgid "Searching groups"
-msgstr ""
-
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1252
-msgid "Searching by name"
-msgstr ""
-
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1264
-msgid "Installing files"
-msgstr ""
-
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1268
-msgid "Refreshing cache"
-msgstr ""
-
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1272
-msgid "Updating packages"
-msgstr ""
-
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1276
-msgid "Canceling"
-msgstr ""
-
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1280
-msgid "Getting repositories"
-msgstr ""
-
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1284
-msgid "Enabling repository"
-msgstr ""
-
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1288
-msgid "Setting data"
-msgstr ""
-
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1292
-msgid "Resolving"
-msgstr ""
-
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1296
-msgid "Getting file list"
-msgstr ""
-
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1300
-msgid "Getting provides"
-msgstr ""
-
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1304
-msgid "Installing signature"
-msgstr ""
-
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1308
-msgid "Getting packages"
-msgstr ""
-
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1312
-msgid "Accepting EULA"
-msgstr ""
-
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1320
-msgid "Getting upgrades"
-msgstr ""
-
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1324
-msgid "Getting categories"
-msgstr ""
-
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1328
-msgid "Getting transactions"
-msgstr ""
-
-#. TRANSLATORS: ask the user if they are comfortable installing insecure
-#. packages
-#: ../lib/packagekit-glib2/pk-task-text.c:67
-msgid "Do you want to allow installing of unsigned software?"
-msgstr ""
-
-#. TRANSLATORS: tell the user we've not done anything
-#: ../lib/packagekit-glib2/pk-task-text.c:72
-msgid "The unsigned software will not be installed."
-msgstr ""
-
-#. TRANSLATORS: the package repository is signed by a key that is not
-#. recognised
-#: ../lib/packagekit-glib2/pk-task-text.c:121
-msgid "Software source signature required"
-msgstr ""
-
-#. TRANSLATORS: the package repository name
-#: ../lib/packagekit-glib2/pk-task-text.c:127
-msgid "Software source name"
-msgstr ""
-
-#. TRANSLATORS: the key URL
-#: ../lib/packagekit-glib2/pk-task-text.c:130
-msgid "Key URL"
-msgstr ""
-
-#. TRANSLATORS: the username of the key
-#: ../lib/packagekit-glib2/pk-task-text.c:133
-msgid "Key user"
-msgstr ""
-
-#. TRANSLATORS: the key ID, usually a few hex digits
-#: ../lib/packagekit-glib2/pk-task-text.c:136
-msgid "Key ID"
-msgstr ""
-
-#. TRANSLATORS: the key fingerprint, again, yet more hex
-#: ../lib/packagekit-glib2/pk-task-text.c:139
-msgid "Key fingerprint"
-msgstr ""
-
-#. TRANSLATORS: the timestamp (a bit like a machine readable time)
-#: ../lib/packagekit-glib2/pk-task-text.c:142
-msgid "Key Timestamp"
-msgstr ""
-
-#. TRANSLATORS: ask the user if they want to import
-#: ../lib/packagekit-glib2/pk-task-text.c:155
-msgid "Do you accept this signature?"
-msgstr ""
-
-#. TRANSLATORS: tell the user we've not done anything
-#: ../lib/packagekit-glib2/pk-task-text.c:160
-msgid "The signature was not accepted."
-msgstr ""
-
-#. TRANSLATORS: this is another name for a software licence that has to be
-#. read before installing
-#: ../lib/packagekit-glib2/pk-task-text.c:203
-msgid "End user licence agreement required"
-msgstr ""
-
-#. TRANSLATORS: the EULA text itself (long and boring)
-#: ../lib/packagekit-glib2/pk-task-text.c:212
-msgid "Agreement"
-msgstr ""
-
-#. TRANSLATORS: ask the user if they've read and accepted the EULA
-#: ../lib/packagekit-glib2/pk-task-text.c:221
-msgid "Do you accept this agreement?"
-msgstr ""
-
-#. TRANSLATORS: tell the user we've not done anything
-#: ../lib/packagekit-glib2/pk-task-text.c:226
-msgid "The agreement was not accepted."
-msgstr ""
-
-#. TRANSLATORS: the user needs to change media inserted into the computer
-#: ../lib/packagekit-glib2/pk-task-text.c:265
-msgid "Media change required"
-msgstr ""
-
-#. TRANSLATORS: the type, e.g. DVD, CD, etc
-#: ../lib/packagekit-glib2/pk-task-text.c:268
-msgid "Media type"
-msgstr ""
-
-#. TRANSLATORS: the media label, usually like 'disk-1of3'
-#: ../lib/packagekit-glib2/pk-task-text.c:271
-msgid "Media label"
-msgstr ""
-
-#. TRANSLATORS: the media description, usually like 'Fedora 12 disk 5'
-#: ../lib/packagekit-glib2/pk-task-text.c:274
-msgid "Text"
-msgstr ""
-
-#. TRANSLATORS: ask the user to insert the media
-#: ../lib/packagekit-glib2/pk-task-text.c:280
-msgid "Please insert the correct media"
-msgstr ""
-
-#. TRANSLATORS: tell the user we've not done anything as they are lazy
-#: ../lib/packagekit-glib2/pk-task-text.c:285
-msgid "The correct media was not inserted."
-msgstr ""
-
-#. TRANSLATORS: When processing, we might have to remove other dependencies
-#: ../lib/packagekit-glib2/pk-task-text.c:300
-msgid "The following packages have to be removed:"
-msgstr ""
-
-#. TRANSLATORS: When processing, we might have to install other dependencies
-#: ../lib/packagekit-glib2/pk-task-text.c:305
-msgid "The following packages have to be installed:"
-msgstr ""
-
-#. TRANSLATORS: When processing, we might have to update other dependencies
-#: ../lib/packagekit-glib2/pk-task-text.c:310
-msgid "The following packages have to be updated:"
-msgstr ""
-
-#. TRANSLATORS: When processing, we might have to reinstall other dependencies
-#: ../lib/packagekit-glib2/pk-task-text.c:315
-msgid "The following packages have to be reinstalled:"
-msgstr ""
-
-#. TRANSLATORS: When processing, we might have to downgrade other dependencies
-#: ../lib/packagekit-glib2/pk-task-text.c:320
-msgid "The following packages have to be downgraded:"
-msgstr ""
-
-#. TRANSLATORS: When processing, untrusted and non-verified packages may be
-#. encountered
-#: ../lib/packagekit-glib2/pk-task-text.c:325
-msgid "The following packages are untrusted:"
-msgstr ""
-
-#. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:385
-msgid "Proceed with changes?"
-msgstr ""
-
-#. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:390
-msgid "The transaction did not proceed."
-msgstr ""
-
-#. SECURITY:
-#. - Normal users are allowed to cancel their own task without
-#. authentication, but a different user id needs the admin password
-#. to cancel another users task.
-#. 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
-msgid "Cancel foreign task"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
-msgid ""
-"Authentication is required to cancel a task that was not started by yourself"
-msgstr ""
-
-#. SECURITY:
-#. - Normal users do not need authentication to install signed packages
-#. from signed repositories, as this cannot exploit a system.
-#. - Paranoid users (or parents!) can change this to 'auth_admin' or
-#. 'auth_admin_keep'.
-#. 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
-msgid "Install signed package"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
-msgid "Authentication is required to install a package"
-msgstr ""
-
-#. SECURITY:
-#. - Normal users require admin authentication to install untrusted or
-#. unrecognised packages, as allowing users to do this without a
-#. password would be a massive security hole.
-#. - This is not retained as each package should be authenticated.
-#. 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
-msgid "Install untrusted local file"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:23
-msgid "Authentication is required to install an untrusted package"
-msgstr ""
-
-#. SECURITY:
-#. - Normal users require admin authentication to add signing keys.
-#. - This implies adding an explicit trust, and should not be granted
-#. without a secure authentication.
-#. - This is not kept as each package should be authenticated.
-#. 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:30
-msgid "Trust a key used for signing packages"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:31
-msgid ""
-"Authentication is required to consider a key used for signing packages as "
-"trusted"
-msgstr ""
-
-#. SECURITY:
-#. - Normal users do not require admin authentication to accept new
-#. licence agreements.
-#. - Change this to 'auth_admin' for environments where users should not
-#. be given the option to make legal decisions.
-#. 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:38
-msgid "Accept EULA"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:39
 msgid "Authentication is required to accept a EULA"
-msgstr ""
-
-#. SECURITY:
-#. - Normal users require admin authentication to remove packages as
-#. this can make the system unbootable or stop other applications from
-#. working.
-#. - Be sure to close the tool used to remove the packages after the
-#. admin authentication has been obtained, otherwise packages can still
-#. be removed. If this is not possible, change this authentication to
-#. 'auth_admin'.
-#. 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:49
-msgid "Remove package"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:50
-msgid "Authentication is required to remove packages"
-msgstr ""
-
-#. SECURITY:
-#. - Normal users do not require admin authentication to update the
-#. system as the packages will be signed, and the action is required
-#. to update the system when unattended.
-#. - Changing this to anything other than 'yes' will break unattended
-#. updates.
-#. 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:58
-msgid "Update packages"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:59
-msgid "Authentication is required to update packages"
-msgstr ""
-
-#. SECURITY:
-#. - Normal users require admin authentication to enable or disable
-#. software sources as this can be used to enable new updates or
-#. install different versions of software.
-#. 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:65
-msgid "Change software source parameters"
-msgstr ""
+msgstr "الاستيثاق مطلوب للموافقة على اتفاقية الترخيص للمستخدم النهائي"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:66
-msgid "Authentication is required to change software source parameters"
-msgstr ""
+msgid "Authentication is required to cancel a task that was not started by yourself"
+msgstr "الاستيثاق مطلوب لإلغاء مَهمة بُدأت بواسطة"
 
-#. SECURITY:
-#. - Normal users do not require admin authentication to refresh the
-#. cache, as this doesn't actually install or remove software.
-#. 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:71
-msgid "Refresh system sources"
-msgstr ""
+msgid "Authentication is required to change software repository parameters"
+msgstr "الاستيثاق مطلوب لتغير مُعامِلات مستودع البرامج"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:72
-msgid "Authentication is required to refresh the system sources"
-msgstr ""
+msgid "Authentication is required to clear the offline updates message"
+msgstr "الاستيثاق مطلوب لمسح رسائل التحديث في أثناء إقلاع النظام "
 
-#. SECURITY:
-#. - Normal users do not require admin authentication to set the proxy
-#. used for downloading packages.
-#. 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:77
-msgid "Set network proxy"
-msgstr ""
+msgid "Authentication is required to consider a key used for signing software as trusted"
+msgstr "الاستيثاق مطلوب لاعتبار مفتاح يستخدم لتوقيع البرامج على أنه موثوق به"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:78
-msgid ""
-"Authentication is required to set the network proxy used for downloading "
-"packages"
-msgstr ""
+msgid "Authentication is required to downgrade software"
+msgstr "الاستيثاق مطلوب لإعادة تثبيت برنامَج لإصدارة أقدم"
 
-#. SECURITY:
-#. - Normal users require admin authentication to rebind a driver
-#. so that it works after we install firmware.
-#. - This should not be set to 'yes' as unprivileged users could then
-#. try to rebind drivers in use, for instance security authentication
-#. devices.
-#. 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:86
-msgid "Reload a device"
-msgstr ""
+msgid "Authentication is required to install software"
+msgstr "الاستيثاق مطلوب لتثبيت برنامج"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:87
-msgid "Authentication is required to reload the device with a new driver"
-msgstr ""
+msgid "Authentication is required to install untrusted software"
+msgstr "الاستيثاق مطلوب لتثبيت برنامَج غير موثوق"
 
-#. SECURITY:
-#. - Normal users require admin authentication to upgrade the disto as
-#. this can make the system unbootable or stop other applications from
-#. working.
-#. 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:93
-msgid "Upgrade System"
-msgstr ""
+msgid "Authentication is required to refresh the system repositories"
+msgstr "الاستيثاق مطلوب لتحديث مستودعات النظام"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:94
-msgid "Authentication is required to upgrade the operating system"
-msgstr ""
+msgid "Authentication is required to reinstall software"
+msgstr "الاستيثاق مطلوب لإعادة تثبيت برنامَج"
 
-#. SECURITY:
-#. - Normal users require admin authentication to repair the system
-#. since this can make the system unbootable or stop other
-#. applications from working.
-#. 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:100
-msgid "Repair System"
-msgstr ""
+msgid "Authentication is required to remove software"
+msgstr "الاستيثاق مطلوب لإزالة برنامَج"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:101
 msgid "Authentication is required to repair the installed software"
-msgstr ""
+msgstr "الاستيثاق مطلوب لإصلاح البرامج المثبتة"
 
-#. SECURITY:
-#. - Normal users are able to ask updates to be installed at
-#. early boot time without a password.
-#. 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:106
-msgid "Trigger offline updates"
-msgstr ""
+msgid "Authentication is required to set the network proxy used for downloading software"
+msgstr "الاستيثاق مطلوب لتعيين وكيل شبكة سيستخدم لتنزيل البرامج"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:107
 msgid "Authentication is required to trigger offline updates"
-msgstr ""
-
-#. SECURITY:
-#. - Normal users are able to clear the updates message that is
-#. shown after an updates are applied at boot time.
-#. 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:112
-msgid "Clear offline update message"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:113
-msgid "Authentication is required to clear the offline updates message"
-msgstr ""
-
-#. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:188
-msgid "Packaging backend to use, e.g. dummy"
-msgstr ""
-
-#. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:191
-msgid "Disable the idle timer"
-msgstr ""
-
-#. TRANSLATORS: show version
-#: ../src/pk-main.c:194
-msgid "Show version and exit"
-msgstr ""
+msgstr "الاستيثاق مطلوب لإطلاق التحديث في أثناء إقلاع النظام "
 
-#. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:197
-msgid "Exit after a small delay"
-msgstr ""
-
-#. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:200
-msgid "Exit after the engine has loaded"
-msgstr ""
-
-#. TRANSLATORS: don't unset environment variables, used for debugging
-#: ../src/pk-main.c:203
-msgid "Don't clear environment on startup"
-msgstr ""
-
-#. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:218
-msgid "PackageKit service"
-msgstr ""
-
-#. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2921
-msgid "The software is not from a trusted source."
-msgstr ""
+msgid "Authentication is required to update software"
+msgstr "الاستيثاق مطلوب لتحديث برنامَج"
 
-#: ../src/pk-transaction.c:2929
-msgid "Do not update this package unless you are sure it is safe to do so."
-msgstr ""
+msgid "Authentication is required to upgrade the operating system"
+msgstr "الاستيثاق مطلوب لتحديث النظام التشغيلي"
 
-#: ../src/pk-transaction.c:2930
-msgid "Do not update these packages unless you are sure it is safe to do so."
-msgstr ""
+#. TRANSLATORS: this is the author of the backend
+msgid "Author"
+msgstr "المؤلف"
 
-#: ../src/pk-transaction.c:2940
-msgid "Do not install this package unless you are sure it is safe to do so."
-msgstr ""
+msgid "Automatically remove unused dependencies"
+msgstr "أزل الاعتماديات غير المستعملة بشكل آلي"
 
-#: ../src/pk-transaction.c:2941
-msgid "Do not install these packages unless you are sure it is safe to do so."
-msgstr ""
+#. TRANSLATORS: transaction state, waiting for user to type in a password
+msgid "Waiting for authentication"
+msgstr "في انتظار الاستيثاق"
diff --git a/po/as.po b/po/as.po
index 1c97a2450..976ba648a 100644
--- a/po/as.po
+++ b/po/as.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Assamese (http://www.transifex.com/freedesktop/packagekit/language/as/)\n"
+"Language-Team: Assamese (http://app.transifex.com/freedesktop/packagekit/language/as/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/ast.po b/po/ast.po
index 37e5fe045..5c822f25a 100644
--- a/po/ast.po
+++ b/po/ast.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Asturian (http://www.transifex.com/freedesktop/packagekit/language/ast/)\n"
+"Language-Team: Asturian (http://app.transifex.com/freedesktop/packagekit/language/ast/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/bg.po b/po/bg.po
index 39df1382f..f8580ffe7 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Bulgarian (http://www.transifex.com/freedesktop/packagekit/language/bg/)\n"
+"Language-Team: Bulgarian (http://app.transifex.com/freedesktop/packagekit/language/bg/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/bn_IN.po b/po/bn_IN.po
index 1433c06da..22ed56217 100644
--- a/po/bn_IN.po
+++ b/po/bn_IN.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Bengali (India) (http://www.transifex.com/freedesktop/packagekit/language/bn_IN/)\n"
+"Language-Team: Bengali (India) (http://app.transifex.com/freedesktop/packagekit/language/bn_IN/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/ca.po b/po/ca.po
index c6838267f..0825887d7 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -13,7 +13,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Catalan (http://www.transifex.com/freedesktop/packagekit/language/ca/)\n"
+"Language-Team: Catalan (http://app.transifex.com/freedesktop/packagekit/language/ca/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/cs.po b/po/cs.po
index 4316197ce..321ccb598 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -17,7 +17,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Czech (http://www.transifex.com/freedesktop/packagekit/language/cs/)\n"
+"Language-Team: Czech (http://app.transifex.com/freedesktop/packagekit/language/cs/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -311,6 +311,9 @@ msgstr "Příkaz nebyl nalezen, platné příkazy jsou:"
 msgid "Committing changes"
 msgstr "Zařazjí se změny"
 
+msgid "Config file was not found."
+msgstr "Soubor s nastavením nebyl nalezen."
+
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
 msgid "Copying files"
@@ -473,10 +476,20 @@ msgstr "Selhala instalace balíčků"
 msgid "Failed to launch:"
 msgstr "Selhalo spuštění:"
 
+#. TRANSLATORS: The placeholder is an error message
+#, c-format
+msgid "Failed to load config file: %s"
+msgstr "Selhalo načtení souboru s nastavením: %s"
+
 #. TRANSLATORS: cannot load the backend the user specified
 msgid "Failed to load the backend"
 msgstr "Selhalo načtení výkonné části"
 
+#. TRANSLATORS: cannot load the backend the user specified
+#, c-format
+msgid "Failed to load the backend: %s"
+msgstr "Selhalo načtení výkonné části: %s"
+
 #. TRANSLATORS: probably not yet installed
 msgid "Failed to load the config file"
 msgstr "Selhalo načtení souboru s nastavením"
@@ -489,6 +502,12 @@ msgstr "Selhalo zpracování argumentů"
 msgid "Failed to parse command line"
 msgstr "Selhalo zpracování příkazového řádku"
 
+#. TRANSLATORS: The placeholder is an error message.
+#. * `auto` is a potential value of the DefaultBackend= configuration key.
+#, c-format
+msgid "Failed to resolve auto: %s"
+msgstr "Selhalo vyřešení auto: %s"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
 msgid "Failed to search for file"
 msgstr "Selhalo vyhledání souboru"
diff --git a/po/da.po b/po/da.po
index e9fd0ea81..66bca2865 100644
--- a/po/da.po
+++ b/po/da.po
@@ -7,12 +7,12 @@
 # Kris Thomsen <lakristho at gmail.com>, 2009-2013
 # Richard Hughes <richard at hughsie.com>, 2011
 # scootergrisen, 2019
-# scootergrisen, 2019-2020,2022
+# scootergrisen, 2019-2020,2022-2023
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Danish (http://www.transifex.com/freedesktop/packagekit/language/da/)\n"
+"Language-Team: Danish (http://app.transifex.com/freedesktop/packagekit/language/da/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -306,6 +306,9 @@ msgstr "Kommandoen blev ikke fundet, gyldige kommandoer er:"
 msgid "Committing changes"
 msgstr "Indsender ændringer"
 
+msgid "Config file was not found."
+msgstr "Konfigurationsfil blev ikke fundet."
+
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
 msgid "Copying files"
@@ -468,10 +471,20 @@ msgstr "Kunne ikke installere pakker"
 msgid "Failed to launch:"
 msgstr "Kunne ikke starte:"
 
+#. TRANSLATORS: The placeholder is an error message
+#, c-format
+msgid "Failed to load config file: %s"
+msgstr "Kunne ikke indlæse konfigurationsfil: %s"
+
 #. TRANSLATORS: cannot load the backend the user specified
 msgid "Failed to load the backend"
 msgstr "Kunne ikke indlæse motoren"
 
+#. TRANSLATORS: cannot load the backend the user specified
+#, c-format
+msgid "Failed to load the backend: %s"
+msgstr "Kunne ikke indlæse motoren: %s"
+
 #. TRANSLATORS: probably not yet installed
 msgid "Failed to load the config file"
 msgstr "Kunne ikke indlæse konfigurationsfilen"
@@ -484,6 +497,12 @@ msgstr "Kunne ikke fortolke parametre"
 msgid "Failed to parse command line"
 msgstr "Kunne ikke fortolke kommandolinje"
 
+#. TRANSLATORS: The placeholder is an error message.
+#. * `auto` is a potential value of the DefaultBackend= configuration key.
+#, c-format
+msgid "Failed to resolve auto: %s"
+msgstr "Kunne ikke løse auto: %s"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
 msgid "Failed to search for file"
 msgstr "Kunne ikke søge efter fil"
diff --git a/po/de.po b/po/de.po
index 3ccd4a340..a4eddbed4 100644
--- a/po/de.po
+++ b/po/de.po
@@ -8,7 +8,7 @@
 # Christian <Christian.Kirbach at googlemail.com>, 2009,2011
 # Daniela Kugelmann <dkugelma at redhat.com >, 2008
 # 5527760c8f29b02a470a5ee3b26b73e8_231f8d9 <ceb449f1811ff367b2235286902d5d43_32261>, 2012-2013
-# Ettore Atalan <atalanttore at googlemail.com>, 2014-2015,2017-2018
+# Ettore Atalan <atalanttore at googlemail.com>, 2014-2015,2017-2018,2022
 # Fabian Affolter <fab at fedoraproject.org>, 2008-2009
 # hpeters <hpeters at redhat.com>, 2009
 # Holger Wansing <linux at wansing-online.de>, 2006
@@ -24,7 +24,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: German (http://www.transifex.com/freedesktop/packagekit/language/de/)\n"
+"Language-Team: German (http://app.transifex.com/freedesktop/packagekit/language/de/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -318,6 +318,9 @@ msgstr "Befehl nicht gefunden, gültige Befehle sind:"
 msgid "Committing changes"
 msgstr "Änderungen werden gespeichert"
 
+msgid "Config file was not found."
+msgstr "Konfigurationsdatei wurde nicht gefunden."
+
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
 msgid "Copying files"
@@ -1231,6 +1234,11 @@ msgstr "Das folgende Paket stellt diese Datei bereit:"
 msgid "The proxy could not be set"
 msgstr "Der Proxy konnte nicht festgelegt werden"
 
+#. TRANSLATORS: There was an error finding a package
+#. * for installation, it may already be installed.
+msgid "The selected packages may already be installed."
+msgstr "Die ausgewählten Pakete sind möglicherweise bereits installiert."
+
 #. TRANSLATORS: tell the user we've not done anything
 msgid "The signature was not accepted."
 msgstr "Diese Signatur wurde nicht akzeptiert."
@@ -1277,6 +1285,10 @@ msgstr "Derzeit sind keine Systemaktualisierungen verfügbar."
 msgid "This tool could not find all the packages: %s"
 msgstr "Dieses Werkzeug konnte nicht alle Pakete finden: %s"
 
+#. TRANSLATORS: We were unable to find a package for installation.
+msgid "This tool could not find any available package."
+msgstr "Dieses Werkzeug konnte kein verfügbares Paket finden."
+
 #. TRANSLATORS: There was an error finding a package
 #. * for installation. The detailed error follows.
 #, c-format
diff --git a/po/el.po b/po/el.po
index 71106356c..b277c937a 100644
--- a/po/el.po
+++ b/po/el.po
@@ -12,7 +12,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Greek (http://www.transifex.com/freedesktop/packagekit/language/el/)\n"
+"Language-Team: Greek (http://app.transifex.com/freedesktop/packagekit/language/el/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/en_GB.po b/po/en_GB.po
index 596469332..efdbd7417 100644
--- a/po/en_GB.po
+++ b/po/en_GB.po
@@ -3,7 +3,7 @@
 # This file is distributed under the same license as the PackageKit package.
 #
 # Translators:
-# Andi Chandler <andi at gowling.com>, 2014-2017,2022
+# Andi Chandler <andi at gowling.com>, 2014-2017,2022-2023
 # Bruce Cowan <bruce at bcowan.me.uk>, 2012-2013,2018
 # Chris  Leonard <cjl at laptop.org>, 2012
 # Richard Hughes <richard at hughsie.com>, 2011
@@ -12,7 +12,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: English (United Kingdom) (http://www.transifex.com/freedesktop/packagekit/language/en_GB/)\n"
+"Language-Team: English (United Kingdom) (http://app.transifex.com/freedesktop/packagekit/language/en_GB/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -306,6 +306,9 @@ msgstr "Command not found, valid commands are:"
 msgid "Committing changes"
 msgstr "Committing changes"
 
+msgid "Config file was not found."
+msgstr "Config file was not found."
+
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
 msgid "Copying files"
@@ -468,10 +471,20 @@ msgstr "Failed to install packages"
 msgid "Failed to launch:"
 msgstr "Failed to launch:"
 
+#. TRANSLATORS: The placeholder is an error message
+#, c-format
+msgid "Failed to load config file: %s"
+msgstr "Failed to load config file: %s"
+
 #. TRANSLATORS: cannot load the backend the user specified
 msgid "Failed to load the backend"
 msgstr "Failed to load the backend"
 
+#. TRANSLATORS: cannot load the backend the user specified
+#, c-format
+msgid "Failed to load the backend: %s"
+msgstr "Failed to load the backend: %s"
+
 #. TRANSLATORS: probably not yet installed
 msgid "Failed to load the config file"
 msgstr "Failed to load the config file"
@@ -484,6 +497,12 @@ msgstr "Failed to parse arguments"
 msgid "Failed to parse command line"
 msgstr "Failed to parse command line"
 
+#. TRANSLATORS: The placeholder is an error message.
+#. * `auto` is a potential value of the DefaultBackend= configuration key.
+#, c-format
+msgid "Failed to resolve auto: %s"
+msgstr "Failed to resolve auto: %s"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
 msgid "Failed to search for file"
 msgstr "Failed to search for file"
diff --git a/po/eo.po b/po/eo.po
index f28046470..86f756937 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Esperanto (http://www.transifex.com/freedesktop/packagekit/language/eo/)\n"
+"Language-Team: Esperanto (http://app.transifex.com/freedesktop/packagekit/language/eo/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/es.po b/po/es.po
index 4f6f9dfc0..6136dcca8 100644
--- a/po/es.po
+++ b/po/es.po
@@ -11,7 +11,7 @@
 # Daniel Cabrera <logan at fedoraproject.org>, 2011, 2012
 # 0f759dd1ea6c4c76cedc299039ca4f23_7584d04 <454cc45058db9632179dc8079c0c1af3_5311>, 2012-2013
 # Fernando Gonzalez Blanco <fgonz at fedoraproject.org>, 2009
-# Francisco Serrador, 2022
+# Francisco Serrador, 2022-2023
 # Javier Alejandro Castro <javier.alejandro.castro at gmail.com>, 2008
 # Jorge González <aloriel at gmail.com>, 2011
 # Richard Hughes <richard at hughsie.com>, 2011
@@ -19,7 +19,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Spanish (http://www.transifex.com/freedesktop/packagekit/language/es/)\n"
+"Language-Team: Spanish (http://app.transifex.com/freedesktop/packagekit/language/es/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -151,7 +151,7 @@ msgstr "Permitir la instalación de paquetes no confiables."
 #. TRANSLATORS: The user didn't
 #. * specify what action to use
 msgid "An action, e.g. 'update-packages' is required"
-msgstr "Se necesita una acción, p. ej., «update-packages»"
+msgstr "Se necesita una acción, p.ej., «update-packages»"
 
 #. TRANSLATORS: a package requires the application to be restarted
 msgid "Application restart required by:"
@@ -289,13 +289,13 @@ msgstr "Purgando"
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
 msgid "Cleaning up packages"
-msgstr "Limpiando paquetes"
+msgstr "Vaciando paquetes"
 
 #. SECURITY:
 #. - Normal users are able to clear the updates message that is
 #. shown after an updates are applied at boot time.
 msgid "Clear offline update message"
-msgstr "Limpiar el mensaje de actualización en modo desconectado"
+msgstr "Vaciar el mensaje de actualización en modo desconectado"
 
 #. TRANSLATORS: Generic failure of what they asked to do
 msgid "Command failed"
@@ -313,6 +313,9 @@ msgstr "No se encontró la orden. Las órdenes válidas son:"
 msgid "Committing changes"
 msgstr "Realizando modificaciones"
 
+msgid "Config file was not found."
+msgstr "El archivo de configuración no fue encontrado."
+
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
 msgid "Copying files"
@@ -373,7 +376,7 @@ msgstr "¿Quiere permitir la instalación de software no firmado?"
 
 #. TRANSLATORS: don't unset environment variables, used for debugging
 msgid "Don't clear environment on startup"
-msgstr "No limpiar el entorno al inicio"
+msgstr "No vaciar el entorno al inicio"
 
 #. TRANSLATORS: The action of the package, in past tense
 msgid "Downloaded"
@@ -401,7 +404,7 @@ msgstr "Descargando grupos"
 
 #. TRANSLATORS: transaction state, downloading metadata
 msgid "Downloading list of packages"
-msgstr "Descargando listados de paquetes"
+msgstr "Descargando listado de paquetes"
 
 #. TRANSLATORS: transaction state, downloading metadata
 msgid "Downloading lists of changes"
@@ -475,10 +478,20 @@ msgstr "No se pudieron instalar los paquetes"
 msgid "Failed to launch:"
 msgstr "Error al iniciar:"
 
+#. TRANSLATORS: The placeholder is an error message
+#, c-format
+msgid "Failed to load config file: %s"
+msgstr "Error al cargar el archivo de configuración: %s"
+
 #. TRANSLATORS: cannot load the backend the user specified
 msgid "Failed to load the backend"
 msgstr "Falló la carga del motor"
 
+#. TRANSLATORS: cannot load the backend the user specified
+#, c-format
+msgid "Failed to load the backend: %s"
+msgstr "Error al cargar el backend: %s"
+
 #. TRANSLATORS: probably not yet installed
 msgid "Failed to load the config file"
 msgstr "Falló la carga del archivo de configuración"
@@ -491,6 +504,12 @@ msgstr "Falló el análisis de los argumentos"
 msgid "Failed to parse command line"
 msgstr "Falló al analizar la línea de órdenes"
 
+#. TRANSLATORS: The placeholder is an error message.
+#. * `auto` is a potential value of the DefaultBackend= configuration key.
+#, c-format
+msgid "Failed to resolve auto: %s"
+msgstr "Error al auto-resolver: %s"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
 msgid "Failed to search for file"
 msgstr "No se pudo buscar el archivo"
@@ -585,7 +604,7 @@ msgstr "Obteniendo versiones nuevas"
 
 #. TRANSLATORS: this is group identifier
 msgid "ID"
-msgstr "Id."
+msgstr "Id"
 
 #. TRANSLATORS: this is preferred icon for the group
 msgid "Icon"
@@ -718,7 +737,7 @@ msgstr "Cargando caché"
 
 #. TRANSLATORS: loading package cache so we can search
 msgid "Loading list of packages."
-msgstr "Cargando listas de paquetes."
+msgstr "Cargando listado de paquetes."
 
 #. TRANSLATORS: the user needs to change media inserted into the computer
 msgid "Media change required"
@@ -906,7 +925,7 @@ msgstr "Reiniciando después de instalar las actualizaciones…"
 #. - Normal users do not require admin authentication to refresh the
 #. cache, as this doesn't actually install or remove software.
 msgid "Refresh system repositories"
-msgstr "Actualizar repositorios del sistema"
+msgstr "Recargar repositorios del sistema"
 
 #. TRANSLATORS: command description
 msgid "Refresh the cache"
@@ -942,7 +961,7 @@ msgstr "Reinstalando"
 #. 'auth_admin'.
 #. TRANSLATORS: command description
 msgid "Remove package"
-msgstr "Eliminar paquete"
+msgstr "Quitar paquete"
 
 #. TRANSLATORS: The action of the package, in past tense
 msgid "Removed"
@@ -1307,7 +1326,7 @@ msgstr "Hora origen"
 #. TRANSLATORS: the role is the point of the transaction,
 #. * e.g. update-packages
 msgid "Transaction"
-msgstr "Operación"
+msgstr "Transacción"
 
 #. SECURITY:
 #. - Normal users are able to ask updates to be installed at
diff --git a/po/eu.po b/po/eu.po
index 8a78bf4dd..aadc0d280 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Basque (http://www.transifex.com/freedesktop/packagekit/language/eu/)\n"
+"Language-Team: Basque (http://app.transifex.com/freedesktop/packagekit/language/eu/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/fi.po b/po/fi.po
index 11a519ece..e718fedc0 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -3,8 +3,8 @@
 # This file is distributed under the same license as the PackageKit package.
 #
 # Translators:
-# Jiri Grönroos <jiri.gronroos at iki.fi>, 2012-2013,2015-2018
-# Kimmo Kujansuu <mrkujansuu at gmail.com>, 2019,2022
+# Jiri Grönroos <jiri.gronroos at iki.fi>, 2012-2013,2015-2018,2022
+# Kimmo Kujansuu <mrkujansuu at gmail.com>, 2019,2022-2023
 # Richard Hughes <richard at hughsie.com>, 2011
 # Ville-Pekka Vainio <vpvainio at iki.fi>, 2011
 # Ville Skyttä <ville.skytta at iki.fi>, 2011
@@ -12,7 +12,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Finnish (http://www.transifex.com/freedesktop/packagekit/language/fi/)\n"
+"Language-Team: Finnish (http://app.transifex.com/freedesktop/packagekit/language/fi/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -306,6 +306,9 @@ msgstr "Komentoa ei löytynyt. Kelvolliset komennot ovat:"
 msgid "Committing changes"
 msgstr "Toteutetaan muutoksia"
 
+msgid "Config file was not found."
+msgstr "Asetustiedostoa ei löydy."
+
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
 msgid "Copying files"
@@ -468,10 +471,20 @@ msgstr "Pakettien asennus epäonnistui"
 msgid "Failed to launch:"
 msgstr "Käynnistys epäonnistui:"
 
+#. TRANSLATORS: The placeholder is an error message
+#, c-format
+msgid "Failed to load config file: %s"
+msgstr "Asetustiedoston lataaminen epäonnistui: %s"
+
 #. TRANSLATORS: cannot load the backend the user specified
 msgid "Failed to load the backend"
 msgstr "Taustaosan lataaminen epäonnistui"
 
+#. TRANSLATORS: cannot load the backend the user specified
+#, c-format
+msgid "Failed to load the backend: %s"
+msgstr "Taustaosan lataaminen epäonnistui: %s"
+
 #. TRANSLATORS: probably not yet installed
 msgid "Failed to load the config file"
 msgstr "Asetustiedoston lataaminen epäonnistui"
@@ -484,6 +497,12 @@ msgstr "Argumenttien jäsentäminen epäonnistui"
 msgid "Failed to parse command line"
 msgstr "Komentorivin jäsentäminen epäonnistui"
 
+#. TRANSLATORS: The placeholder is an error message.
+#. * `auto` is a potential value of the DefaultBackend= configuration key.
+#, c-format
+msgid "Failed to resolve auto: %s"
+msgstr "Automaattinen ratkaisu epäonnistui: %s"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
 msgid "Failed to search for file"
 msgstr "Tiedoston etsiminen epäonnistui"
diff --git a/po/fr.po b/po/fr.po
index c688f690f..d7f71d59f 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -16,7 +16,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: French (http://www.transifex.com/freedesktop/packagekit/language/fr/)\n"
+"Language-Team: French (http://app.transifex.com/freedesktop/packagekit/language/fr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/fur.po b/po/fur.po
index 91e34a60f..a378e9f7f 100644
--- a/po/fur.po
+++ b/po/fur.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Friulian (http://www.transifex.com/freedesktop/packagekit/language/fur/)\n"
+"Language-Team: Friulian (http://app.transifex.com/freedesktop/packagekit/language/fur/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/gl.po b/po/gl.po
index 2d74d152c..e1634a1e3 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Galician (http://www.transifex.com/freedesktop/packagekit/language/gl/)\n"
+"Language-Team: Galician (http://app.transifex.com/freedesktop/packagekit/language/gl/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/gu.po b/po/gu.po
index 470679be9..f4174c218 100644
--- a/po/gu.po
+++ b/po/gu.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Gujarati (http://www.transifex.com/freedesktop/packagekit/language/gu/)\n"
+"Language-Team: Gujarati (http://app.transifex.com/freedesktop/packagekit/language/gu/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/he.po b/po/he.po
index eb0ea8879..cf687cef7 100644
--- a/po/he.po
+++ b/po/he.po
@@ -3,14 +3,14 @@
 # This file is distributed under the same license as the PackageKit package.
 #
 # Translators:
-# Omer I.S. <omeritzicschwartz at gmail.com>, 2021
+# 63f334ffc0709ba0fc2361b80bf3c0f0_00ffd1e <ab96c93ca0ac55ba7fa06385427e60dd_878890>, 2021
 # Richard Hughes <richard at hughsie.com>, 2011
 # Yaron Shahrabani <sh.yaron at gmail.com>, 2012,2021
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Hebrew (http://www.transifex.com/freedesktop/packagekit/language/he/)\n"
+"Language-Team: Hebrew (http://app.transifex.com/freedesktop/packagekit/language/he/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/hi.po b/po/hi.po
index 7f57a98b0..3d7b9de40 100644
--- a/po/hi.po
+++ b/po/hi.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Hindi (http://www.transifex.com/freedesktop/packagekit/language/hi/)\n"
+"Language-Team: Hindi (http://app.transifex.com/freedesktop/packagekit/language/hi/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/hr.po b/po/hr.po
index 52a3d74e5..3fd4af80f 100644
--- a/po/hr.po
+++ b/po/hr.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Croatian (http://www.transifex.com/freedesktop/packagekit/language/hr/)\n"
+"Language-Team: Croatian (http://app.transifex.com/freedesktop/packagekit/language/hr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -305,6 +305,9 @@ msgstr "Naredba nije pronađena, valjane naredbe su:"
 msgid "Committing changes"
 msgstr "Primjenjivanje promjena"
 
+msgid "Config file was not found."
+msgstr "Datoteka podešavanja nije pronađena."
+
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
 msgid "Copying files"
@@ -467,10 +470,20 @@ msgstr "Neuspješna instalacija paketa"
 msgid "Failed to launch:"
 msgstr "Neuspješno pokretanje:"
 
+#. TRANSLATORS: The placeholder is an error message
+#, c-format
+msgid "Failed to load config file: %s"
+msgstr "Neuspješno učitavanje datoteke podešavanja: %s"
+
 #. TRANSLATORS: cannot load the backend the user specified
 msgid "Failed to load the backend"
 msgstr "Neuspješno učitavanje pozadinskog programa"
 
+#. TRANSLATORS: cannot load the backend the user specified
+#, c-format
+msgid "Failed to load the backend: %s"
+msgstr "Neuspješno učitavanje pozadinskog programa: %s"
+
 #. TRANSLATORS: probably not yet installed
 msgid "Failed to load the config file"
 msgstr "Neuspješno učitavanje datoteke podešavanja"
@@ -483,6 +496,12 @@ msgstr "Neuspješna obrada argumenata"
 msgid "Failed to parse command line"
 msgstr "Neuspješna obrada naredbenog redka"
 
+#. TRANSLATORS: The placeholder is an error message.
+#. * `auto` is a potential value of the DefaultBackend= configuration key.
+#, c-format
+msgid "Failed to resolve auto: %s"
+msgstr "Neuspješno rješavanje vrijednosti „auto”: %s"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
 msgid "Failed to search for file"
 msgstr "Neuspješna pretraga datoteke"
diff --git a/po/hu.po b/po/hu.po
index 48a6b1c26..1aa9a8c5b 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -15,7 +15,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Hungarian (http://www.transifex.com/freedesktop/packagekit/language/hu/)\n"
+"Language-Team: Hungarian (http://app.transifex.com/freedesktop/packagekit/language/hu/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -309,6 +309,9 @@ msgstr "Parancs nem található, az érvényes parancsok:"
 msgid "Committing changes"
 msgstr "Módosítások véglegesítése"
 
+msgid "Config file was not found."
+msgstr "A beállítófájl nem található."
+
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
 msgid "Copying files"
@@ -471,10 +474,20 @@ msgstr "Nem sikerült a csomagok telepítése"
 msgid "Failed to launch:"
 msgstr "Az indítás meghiúsult:"
 
+#. TRANSLATORS: The placeholder is an error message
+#, c-format
+msgid "Failed to load config file: %s"
+msgstr "A beállítófájl betöltése sikertelen: %s"
+
 #. TRANSLATORS: cannot load the backend the user specified
 msgid "Failed to load the backend"
 msgstr "A háttérprogram betöltése sikertelen"
 
+#. TRANSLATORS: cannot load the backend the user specified
+#, c-format
+msgid "Failed to load the backend: %s"
+msgstr "A háttérprogram betöltése sikertelen: %s"
+
 #. TRANSLATORS: probably not yet installed
 msgid "Failed to load the config file"
 msgstr "A beállítófájl betöltése sikertelen"
@@ -487,6 +500,12 @@ msgstr "Az argumentumok feldolgozása sikertelen"
 msgid "Failed to parse command line"
 msgstr "A parancssor feldolgozása sikertelen"
 
+#. TRANSLATORS: The placeholder is an error message.
+#. * `auto` is a potential value of the DefaultBackend= configuration key.
+#, c-format
+msgid "Failed to resolve auto: %s"
+msgstr "Az automata megoldása sikertelen: %s"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
 msgid "Failed to search for file"
 msgstr "A fájl keresése meghiúsult"
diff --git a/po/ia.po b/po/ia.po
index cf15b257c..f80cfbe62 100644
--- a/po/ia.po
+++ b/po/ia.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Interlingua (http://www.transifex.com/freedesktop/packagekit/language/ia/)\n"
+"Language-Team: Interlingua (http://app.transifex.com/freedesktop/packagekit/language/ia/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/id.po b/po/id.po
index 63562557e..e46d063e2 100644
--- a/po/id.po
+++ b/po/id.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Indonesian (http://www.transifex.com/freedesktop/packagekit/language/id/)\n"
+"Language-Team: Indonesian (http://app.transifex.com/freedesktop/packagekit/language/id/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/it.po b/po/it.po
index 64c56fec6..f3b20cc48 100644
--- a/po/it.po
+++ b/po/it.po
@@ -16,7 +16,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Italian (http://www.transifex.com/freedesktop/packagekit/language/it/)\n"
+"Language-Team: Italian (http://app.transifex.com/freedesktop/packagekit/language/it/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/ja.po b/po/ja.po
index 08f1a2ab4..1fa43502d 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -3,7 +3,7 @@
 # This file is distributed under the same license as the PackageKit package.
 #
 # Translators:
-# Green, 2021
+# Green <usergreen at users.osdn.me>, 2021
 # hyuugabaru <hyu_gabaru at yahoo.co.jp>, 2009
 # Kiyoto Hashida <khashida at redhat.com>, 2009
 # Nobuhiro Iwamatsu <iwamatsu at nigauri.org>, 2022
@@ -16,7 +16,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Japanese (http://www.transifex.com/freedesktop/packagekit/language/ja/)\n"
+"Language-Team: Japanese (http://app.transifex.com/freedesktop/packagekit/language/ja/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -310,6 +310,9 @@ msgstr "コマンドが見つかりません、有効なコマンドは:"
 msgid "Committing changes"
 msgstr "変更を適用中"
 
+msgid "Config file was not found."
+msgstr "設定ファイルが見つかりませんでした。"
+
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
 msgid "Copying files"
@@ -472,10 +475,20 @@ msgstr "パッケージをインストールできません"
 msgid "Failed to launch:"
 msgstr "起動に失敗:"
 
+#. TRANSLATORS: The placeholder is an error message
+#, c-format
+msgid "Failed to load config file: %s"
+msgstr "設定ファイルのロードに失敗しました: %s"
+
 #. TRANSLATORS: cannot load the backend the user specified
 msgid "Failed to load the backend"
 msgstr "バックエンドのロードに失敗しました"
 
+#. TRANSLATORS: cannot load the backend the user specified
+#, c-format
+msgid "Failed to load the backend: %s"
+msgstr "バックエンドのロードに失敗しました: %s"
+
 #. TRANSLATORS: probably not yet installed
 msgid "Failed to load the config file"
 msgstr "設定ファイルのロードに失敗しました"
@@ -488,6 +501,12 @@ msgstr "引数の解析に失敗しました"
 msgid "Failed to parse command line"
 msgstr "コマンドラインの解析に失敗しました"
 
+#. TRANSLATORS: The placeholder is an error message.
+#. * `auto` is a potential value of the DefaultBackend= configuration key.
+#, c-format
+msgid "Failed to resolve auto: %s"
+msgstr "自動解決が失敗しました:: %s"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
 msgid "Failed to search for file"
 msgstr "ファイルの探索に失敗しました"
diff --git a/po/ka.po b/po/ka.po
index fda71a81c..5808bbbe8 100644
--- a/po/ka.po
+++ b/po/ka.po
@@ -4,13 +4,14 @@
 #
 # Translators:
 # George Machitidze <giomac at gmail.com>, 2012
-# NorwayFun <temuri.doghonadze at gmail.com>, 2022
-# NorwayFun <temuri.doghonadze at gmail.com>, 2022
+# Temuri Doghonadze <temuri.doghonadze at gmail.com>, 2022
+# Temuri Doghonadze <temuri.doghonadze at gmail.com>, 2022
+# Temuri Doghonadze <temuri.doghonadze at gmail.com>, 2022
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Georgian (http://www.transifex.com/freedesktop/packagekit/language/ka/)\n"
+"Language-Team: Georgian (http://app.transifex.com/freedesktop/packagekit/language/ka/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -20,6 +21,14 @@ msgstr ""
 msgid "(seconds)"
 msgstr "(წამი)"
 
+#. TRANSLATORS: The user specified
+#. * an invalid action
+msgid "A correct role is required"
+msgstr "სწორი როლი აუცილებელია"
+
+msgid "A filename is required"
+msgstr "ფაილის სახელი აუცილებელია"
+
 #. TRANSLATORS: the user did not
 #. * specify what they wanted to install
 msgid "A filename to install is required"
@@ -40,11 +49,42 @@ msgstr "დასაყენებელი პაკეტის სახე
 msgid "A package name to remove is required"
 msgstr "წასაშლელი პაკეტის სახელი აუცილებელია"
 
+#. TRANSLATORS: each package
+#. * "provides" certain things, e.g.
+#. * mime(gstreamer-decoder-mp3),
+#. * the user didn't specify it
+msgid "A package provide string is required"
+msgstr "პაკეტს მომწოდებლის სტრიქონი აუცილებელია"
+
 #. TRANSLATORS: The user did not
 #. * specify a repository name
 msgid "A repository name is required"
 msgstr "რეპოზიტორიის სახელი აუცილებელია"
 
+#. TRANSLATORS: the user
+#. * needs to provide a search term
+#. TRANSLATORS: the user needs
+#. * to provide a search term
+msgid "A search term is required"
+msgstr "ძებნის სტრიქონი აუცილებელია"
+
+#. TRANSLATORS: a search type can
+#. * be name, details, file, etc
+msgid "A search type is required, e.g. name"
+msgstr "ძებნის ტიპი აუცილებელია. მაგ: სახელი"
+
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+msgid "Accept EULA"
+msgstr "EULA-ის დათანხმება"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Accepting EULA"
+msgstr "EULA-ზე დათანხმება"
+
 #. TRANSLATORS: these are packages touched by the transaction
 msgid "Affected packages:"
 msgstr "შეიცვლება პაკეტები:"
@@ -53,6 +93,10 @@ msgstr "შეიცვლება პაკეტები:"
 msgid "Affected packages: None"
 msgstr "შეიცვლება პაკეტები: არცერთი"
 
+#. TRANSLATORS: the EULA text itself (long and boring)
+msgid "Agreement"
+msgstr "შეთანხმება"
+
 #. TRANSLATORS: this is a command alias
 #, c-format
 msgid "Alias to %s"
@@ -74,6 +118,10 @@ msgstr "ხელმისაწვდომია"
 msgid "Blocked"
 msgstr "დაბლოკილია"
 
+#. TRANSLATORS: The type of update
+msgid "Bug fix"
+msgstr "შეცდომების გასწორება"
+
 #. TRANSLATORS: details about the update, the bugzilla URLs
 msgid "Bugzilla"
 msgstr "Bugzilla"
@@ -82,6 +130,17 @@ msgstr "Bugzilla"
 msgid "CVE"
 msgstr "CVE"
 
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+msgid "Cancel foreign task"
+msgstr "უცხო ამოცანის გაუქმება"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Canceling"
+msgstr "გაუქმება"
+
 #. TRANSLATORS: transaction state, in the process of cancelling
 msgid "Cancelling"
 msgstr "გაუქმება"
@@ -95,11 +154,29 @@ msgstr "კატეგორია"
 msgid "Changes"
 msgstr "ცვლილებები"
 
+#. TRANSLATORS: transaction state, we are checking executable files currently
+#. in use
+msgid "Checking applications in use"
+msgstr "ამჟამად გამოყენებული პროგრამების შემოწმება"
+
+#. TRANSLATORS: transaction state, we are checking for libraries currently in
+#. use
+msgid "Checking libraries in use"
+msgstr "ამჟამად გამოყენებული ბიბლიოთეკების შემოწმება"
+
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
 msgid "Checking signatures"
 msgstr "ხელმოწერების შემოწმება"
 
+#. TRANSLATORS: The action of the package, in past tense
+msgid "Cleaned up"
+msgstr "მოსუფთავებულია"
+
+#. TRANSLATORS: The action of the package, in present tense
+msgid "Cleaning up"
+msgstr "მოსუფთავება"
+
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config
 #. files
 msgid "Cleaning up packages"
@@ -121,6 +198,9 @@ msgstr "ბრძანება ვერ ვიპოვე. სწორი 
 msgid "Committing changes"
 msgstr "ცვლილებების გადაცემა"
 
+msgid "Config file was not found."
+msgstr "კონფიგურაციის ფაილი ვერ ვიპოვე."
+
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
 msgid "Copying files"
@@ -150,6 +230,18 @@ msgstr "გამოირთო"
 msgid "Distribution"
 msgstr "გავრცელება"
 
+#. TRANSLATORS: ask the user if they've read and accepted the EULA
+msgid "Do you accept this agreement?"
+msgstr "ეთანხმებით შეთანხმებას?"
+
+#. TRANSLATORS: ask the user if they want to import
+msgid "Do you accept this signature?"
+msgstr "ეთანხმებით ამ ხელმოწერას?"
+
+#. TRANSLATORS: The action of the package, in past tense
+msgid "Downloaded"
+msgstr "გადმოწერილია"
+
 #. TRANSLATORS: The action of the package, in present tense
 msgid "Downloading"
 msgstr "გადმოწერა"
@@ -203,6 +295,24 @@ msgstr "გამოსვლამდე მცირე დაყოვნე
 msgid "Exit after the engine has loaded"
 msgstr "გამოსვლა ძრავის ჩატვირთვის შემდეგ"
 
+#. TRANSLATORS: we failed to install the package
+msgid "Failed to install packages"
+msgstr "პაკეტების დაყენების შეცდომა"
+
+#. TRANSLATORS: we failed to launch the executable, the error follows
+msgid "Failed to launch:"
+msgstr "გაშვების შეცდომა:"
+
+#. TRANSLATORS: The placeholder is an error message
+#, c-format
+msgid "Failed to load config file: %s"
+msgstr "კონფიგურაციის ფაილის ჩატვირთვის შეცდომა: %s"
+
+#. TRANSLATORS: cannot load the backend the user specified
+#, c-format
+msgid "Failed to load the backend: %s"
+msgstr "უკანაბოლოს ჩატვირთვის შეცდომა: %s"
+
 #. TRANSLATORS: the user didn't read the man page
 msgid "Failed to parse arguments"
 msgstr "არგუმენტების დამუშავების შეცდომა"
@@ -219,6 +329,13 @@ msgstr "მცდარი"
 msgid "Fatal error"
 msgstr "ფატალური შეცდომა"
 
+#. TRANSLATORS: There was an error
+#. * getting the list of packages.
+#. * The filename follows
+#, c-format
+msgid "File already exists: %s"
+msgstr "ფაილი უკვე არსებობს: %s"
+
 #. TRANSLATORS: transaction state, all done!
 msgid "Finished"
 msgstr "დასრულებულია"
@@ -228,10 +345,62 @@ msgstr "დასრულებულია"
 msgid "Generating package lists"
 msgstr "პაკეტების სიის შედგენა"
 
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Getting categories"
+msgstr "კატეგორიების მიღება"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Getting dependencies"
+msgstr "დამოკიდებულებების მიღება"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Getting details"
+msgstr "დეტალების მიღება"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Getting file list"
+msgstr "ფაილების სიის მიღება"
+
 #. TRANSLATORS: transaction state, getting data from a server
 msgid "Getting information"
 msgstr "ინფორმაციის მიღება"
 
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Getting packages"
+msgstr "პაკეტების მიღება"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Getting provides"
+msgstr "მომწოდებლების მიღება"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Getting repositories"
+msgstr "რეპოზიტორიების მიღბა"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Getting requires"
+msgstr "საჭიროებების მიღება"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Getting system upgrades"
+msgstr "სისტემის განახლებების მიღება"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Getting transactions"
+msgstr "ტრანზაქციების მიღება"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Getting update details"
+msgstr "განახლების დეტალების მიღება"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Getting updates"
+msgstr "განახლებების მღება"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Getting upgrades"
+msgstr "განახლებების მიღება"
+
 #. TRANSLATORS: this is group identifier
 msgid "ID"
 msgstr "ID"
@@ -248,6 +417,26 @@ msgstr "მნიშვნელოვანი"
 msgid "Install package"
 msgstr "პაკეტის დაყენება"
 
+#. SECURITY:
+#. - Normal users need authentication to install signed packages
+#. from signed repositories, because otherwise the system is
+#. only as secure as the least-secure package available in the
+#. repositories.
+msgid "Install signed package"
+msgstr "ხელმოწერილი პაკეტის დაყენება"
+
+#. command line argument, do we ask questions
+msgid "Install the packages without asking for confirmation"
+msgstr "პაკეტების დასურის გარეშე დაყენება"
+
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+msgid "Install untrusted local file"
+msgstr "არასანდო ლოკალური ფაილის დაყენება"
+
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
 msgid "Installed"
@@ -258,10 +447,18 @@ msgstr "ჩადგმულია"
 msgid "Installing"
 msgstr "დაყენება"
 
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Installing files"
+msgstr "ფაილების დაყენება"
+
 #. TRANSLATORS: transaction state, installing packages
 msgid "Installing packages"
 msgstr "პაკეტების დაყენება"
 
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Installing signature"
+msgstr "ხელმოწერის დაყენება"
+
 #. TRANSLATORS: transaction state, installing updates
 msgid "Installing updates"
 msgstr "განახლებების დაყენება"
@@ -271,10 +468,26 @@ msgstr "განახლებების დაყენება"
 msgid "Issued"
 msgstr "გამოშვება"
 
+#. TRANSLATORS: the key ID, usually a few hex digits
+msgid "Key ID"
+msgstr "გასაღების ID"
+
+#. TRANSLATORS: the timestamp (a bit like a machine readable time)
+msgid "Key Timestamp"
+msgstr "გასაღების დროის შტამპი"
+
+#. TRANSLATORS: the key URL
+msgid "Key URL"
+msgstr "გასაღების URL"
+
 #. TRANSLATORS: the key fingerprint, again, yet more hex
 msgid "Key fingerprint"
 msgstr "გასაღებს ანაბეჭდი"
 
+#. TRANSLATORS: the username of the key
+msgid "Key user"
+msgstr "გასაღების მომხმარებელი"
+
 #. TRANSLATORS: transaction state, loading databases
 msgid "Loading cache"
 msgstr "ქეშის ჩატვირთვა"
@@ -283,6 +496,27 @@ msgstr "ქეშის ჩატვირთვა"
 msgid "Loading list of packages."
 msgstr "პაკეტების სიის ჩატვირთვა."
 
+#. TRANSLATORS: the user needs to change media inserted into the computer
+msgid "Media change required"
+msgstr "საჭიროა დისკის შეცვლა"
+
+#. TRANSLATORS: the media label, usually like 'disk-1of3'
+msgid "Media label"
+msgstr "მედიის ჭდე"
+
+#. TRANSLATORS: the type, e.g. DVD, CD, etc
+msgid "Media type"
+msgstr "მედიის ტიპი"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Modifying repository"
+msgstr "რეპოზიტორიების ჩასწორება"
+
+#. TRANSLATORS: more than one package could be found that matched,
+#. * to follow is a list of possible packages
+msgid "More than one package matches:"
+msgstr "ემთხვევა ერთზე მეტი პაკეტი:"
+
 #. TRANSLATORS: this is the name of the parent group
 #. TRANSLATORS: this is the name of the backend
 msgid "Name"
@@ -300,11 +534,19 @@ msgstr "პაკეტები ნაპოვნი არაა"
 msgid "Normal"
 msgstr "ჩვეულებრივი"
 
+#. TRANSLATORS: The action of the package, in past tense
+msgid "Obsoleted"
+msgstr "ამოღებულია"
+
 #. TRANSLATORS: details about the update, any packages that
 #. * this update obsoletes
 msgid "Obsoletes"
 msgstr "მოძველებული"
 
+#. TRANSLATORS: The action of the package, in present tense
+msgid "Obsoleting"
+msgstr "ამოღება"
+
 #. TRANSLATORS: transaction state, obsoleting old packages
 msgid "Obsoleting packages"
 msgstr "პაკეტების მოძველებულად მონიშვნა"
@@ -343,6 +585,10 @@ msgstr "PackageKit"
 msgid "PackageKit Console Interface"
 msgstr "PackageKit კონსოლური ინტერფეისი"
 
+#. TRANSLATORS: describing the service that is running
+msgid "PackageKit service"
+msgstr "PackageKit-ის სერვისი"
+
 #. TRANSLATORS: this is the parent group
 msgid "Parent"
 msgstr "მშობლიური"
@@ -351,6 +597,14 @@ msgstr "მშობლიური"
 msgid "Percentage"
 msgstr "პროცენტი"
 
+#. TRANSLATORS: ask the user to choose a file to run
+msgid "Please choose a command to run"
+msgstr "აირჩიეთ გასაშვები ბრძანება"
+
+#. TRANSLATORS: This finds out which package in the list to use
+msgid "Please choose the correct package: "
+msgstr "აირჩიეთ სწორი პაკეტი: "
+
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "შეიყვანეთ რიცხვი 1-დან %i-მდე: "
@@ -376,6 +630,12 @@ msgstr "მოთხოვნა"
 msgid "Real name"
 msgstr "ნამდვილი სახელი"
 
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+msgid "Refresh system repositories"
+msgstr "სისტემური რეპოზიტორიების განახლება"
+
 #. TRANSLATORS: command description
 msgid "Refresh the cache"
 msgstr "ქეშის განახლება"
@@ -384,10 +644,22 @@ msgstr "ქეშის განახლება"
 msgid "Refresh the cache (forced)"
 msgstr "ქეშის განახლება (ძალით)"
 
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Refreshing cache"
+msgstr "ქეშის განახლება"
+
 #. TRANSLATORS: transaction state, refreshing internal lists
 msgid "Refreshing software list"
 msgstr "პროგრამული უზრუნველყოფის სიის განახლება"
 
+#. TRANSLATORS: The action of the package, in past tense
+msgid "Reinstalled"
+msgstr "გადაყენდა"
+
+#. TRANSLATORS: The action of the package, in present tense
+msgid "Reinstalling"
+msgstr "გადაყენება"
+
 #. SECURITY:
 #. - Normal users require admin authentication to remove packages as
 #. this can make the system unbootable or stop other applications from
@@ -413,6 +685,10 @@ msgstr "წაშლა"
 msgid "Removing packages"
 msgstr "პაკეტების წაშლა"
 
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Removing repository"
+msgstr "რეპოზიტორიის წაშლა"
+
 #. TRANSLATORS: transaction state, repackaging delta files
 msgid "Repackaging files"
 msgstr "ფაილების აწყობა"
@@ -428,6 +704,10 @@ msgstr "სისტემის შეკეთება"
 msgid "Requesting data"
 msgstr "მონაცემების მოთხოვნა"
 
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Resolving"
+msgstr "ამოხსნა"
+
 #. TRANSLATORS: transaction state, checking the transaction before we do it
 msgid "Resolving dependencies"
 msgstr "ურთიერთდამოკიდებულებების ამოხსნა"
@@ -445,10 +725,23 @@ msgstr "შედეგები:"
 msgid "Role"
 msgstr "როლი"
 
+#. TRANSLATORS: Ask the user if we should run the similar command
+msgid "Run similar command:"
+msgstr "მსგავსი ბრძანების გაშვება:"
+
 #. TRANSLATORS: transaction state, just started
 msgid "Running"
 msgstr "გაშვებულია"
 
+#. TRANSLATORS: transaction state, we are running hooks before or after the
+#. transaction
+msgid "Running hooks"
+msgstr "დამხმარე პროცესების გაშვება"
+
+#. TRANSLATORS: transaction state, scanning for running processes
+msgid "Scanning applications"
+msgstr "აპლიკაციების სკაპირება"
+
 #. TRANSLATORS: command description
 msgid "Search by details"
 msgstr "დეტალებით ძებნა"
@@ -461,10 +754,22 @@ msgstr "ფაილებით ძებნა"
 msgid "Search by names"
 msgstr "სახელით ძებნა"
 
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Searching by details"
+msgstr "დეტალებით ძებნა"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Searching by file"
+msgstr "ფაილით ძებნა"
+
 #. TRANSLATORS: The role of the transaction, in present tense
 msgid "Searching by name"
 msgstr "სახელით ძებნა"
 
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Searching groups"
+msgstr "ჯგუფების ძებნა"
+
 #. TRANSLATORS: The type of update
 msgid "Security"
 msgstr "უსაფრთხოება"
@@ -488,10 +793,42 @@ msgstr "ქსელური პროქსის დაყენება"
 msgid "Set repository options"
 msgstr "რეპოზიტორიის პარამეტრების დაყენება"
 
+#. TRANSLATORS: command line argument, use a filter to narrow down results
+msgid "Set the filter, e.g. installed"
+msgstr "დააყენეთ ფილტრი. მაგალითად 'installed' (დაყენებული)"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Setting data"
+msgstr "მონაცემების დაყენება"
+
+#. TRANSLATORS: turn on all debugging
+msgid "Show debugging information for all files"
+msgstr "გამართვის ინფორმაციის ჩვენება ყველა ფაილისთვის"
+
+msgid "Show debugging options"
+msgstr "გამართვის პარამეტრების ჩვენება"
+
 #. TRANSLATORS: command line argument, just show the version string
 msgid "Show the program version and exit"
 msgstr "ვერსიის ჩვენება და გასვლა"
 
+#. TRANSLATORS: show version
+msgid "Show version and exit"
+msgstr "ვერსიის ჩვენება და გასვლა"
+
+#. TRANSLATORS: tell the user what we think the command is
+msgid "Similar command is:"
+msgstr "მსგავსი ბრძანებაა:"
+
+#. TRANSLATORS: show the user a list of commands that they could have meant
+#. TRANSLATORS: show the user a list of commands we could run
+msgid "Similar commands are:"
+msgstr "მსგავსი ბრძანებებია:"
+
+#. TRANSLATORS: the package repository name
+msgid "Software source name"
+msgstr "პროგრამის წყაროს სახელი"
+
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
 msgid "Starting"
 msgstr "გაშვება"
@@ -513,6 +850,11 @@ msgstr "ქვებრძანებები:"
 msgid "Succeeded"
 msgstr "წარმატებით"
 
+#. TRANSLATORS: Show the user a list of packages that they can install to
+#. provide this command
+msgid "Suitable packages are:"
+msgstr "შესატყვისი პაკეტებია:"
+
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
 msgid "Summary"
@@ -540,6 +882,11 @@ msgstr "ცვლილებების ტესტირება"
 msgid "Text"
 msgstr "ტექსტი"
 
+#. TRANSLATORS: The user specified
+#. * an incorrect filter
+msgid "The filter specified was invalid"
+msgstr "მითითებული ფილტრი არასწორია"
+
 #. TRANSLATORS: The network settings could not be sent
 msgid "The proxy could not be set"
 msgstr "პროქსის დაყენება შეუძლებელია"
@@ -562,12 +909,20 @@ msgstr "ამ მომენტისთვის განახლებე
 msgid "There are no upgrades available at this time."
 msgstr "ამ მომენტისთვის განახლებები არ არის."
 
+#. TRANSLATORS: this is the time since this role was used
+msgid "Time since"
+msgstr "გასული დრო"
+
 #. TRANSLATORS: this is an atomic transaction
 #. TRANSLATORS: the role is the point of the transaction,
 #. * e.g. update-packages
 msgid "Transaction"
 msgstr "ტრანზაქცია"
 
+#. TRANSLATORS: The type of update
+msgid "Trivial"
+msgstr "ტრივიალური"
+
 msgid "True"
 msgstr "ჭეშმარიტი"
 
@@ -579,6 +934,14 @@ msgstr "ტიპი"
 msgid "Unavailable"
 msgstr "მიუწვდომელია"
 
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Unknown role type"
+msgstr "უცნობი როლის ტიპი"
+
+#. TRANSLATORS: This is when the transaction status is not known
+msgid "Unknown state"
+msgstr "უცნობი მდგომარეობა"
+
 #. SECURITY:
 #. - Normal users do not require admin authentication to update the
 #. system as the packages will be signed, and the action is required
@@ -612,6 +975,10 @@ msgstr "განახლება"
 msgid "Updating packages"
 msgstr "პაკეტების განახლება"
 
+#. TRANSLATORS: transaction state, we are updating the list of processes
+msgid "Updating running applications"
+msgstr "გაშვებული პროგრამების განახლება"
+
 #. SECURITY:
 #. - Normal users require admin authentication to upgrade the disto as
 #. this can make the system unbootable or stop other applications from
@@ -641,6 +1008,11 @@ msgstr "ავთენტიკაციის მოლოდინი"
 msgid "Waiting for package manager lock"
 msgstr "პაკეტების მმართველის ბლოკის მოლოდინი"
 
+#. TRANSLATORS: transaction state, the transaction is waiting for another to
+#. complete
+msgid "Waiting in queue"
+msgstr "რიგში მოლოდინი"
+
 #. TRANSLATORS: the prefix of all the output telling the user
 #. * why it's not executing. NOTE: this is lowercase to mimic
 #. * the style of bash itself -- apologies
diff --git a/po/kk.po b/po/kk.po
index 3621d9aa7..3c93b2d87 100644
--- a/po/kk.po
+++ b/po/kk.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Kazakh (http://www.transifex.com/freedesktop/packagekit/language/kk/)\n"
+"Language-Team: Kazakh (http://app.transifex.com/freedesktop/packagekit/language/kk/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/kn.po b/po/kn.po
index 0a267534b..7b82a6b7e 100644
--- a/po/kn.po
+++ b/po/kn.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Kannada (http://www.transifex.com/freedesktop/packagekit/language/kn/)\n"
+"Language-Team: Kannada (http://app.transifex.com/freedesktop/packagekit/language/kn/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/ko.po b/po/ko.po
index a71d8fa46..0dae8b2de 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -5,13 +5,13 @@
 # Translators:
 # Seong-ho Cho <darkcircle.0426 at gmail.com>, 2013
 # Seong-ho Cho <darkcircle.0426 at gmail.com>, 2011
-# Seong-ho Cho <darkcircle.0426 at gmail.com>, 2011,2013-2017
+# Seong-ho Cho <darkcircle.0426 at gmail.com>, 2011,2013-2017,2022
 # Shinjo Park <kde at peremen.name>, 2012,2015,2018-2019
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Korean (http://www.transifex.com/freedesktop/packagekit/language/ko/)\n"
+"Language-Team: Korean (http://app.transifex.com/freedesktop/packagekit/language/ko/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -305,6 +305,9 @@ msgstr "명령이 존재하지 않습니다. 유효한 명령은 다음과 같
 msgid "Committing changes"
 msgstr "변경 사항 등록 중"
 
+msgid "Config file was not found."
+msgstr "설정 파일이 없습니다."
+
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
 msgid "Copying files"
@@ -467,10 +470,20 @@ msgstr "패키지 설치에 실패했습니다"
 msgid "Failed to launch:"
 msgstr "실행에 실패했습니다:"
 
+#. TRANSLATORS: The placeholder is an error message
+#, c-format
+msgid "Failed to load config file: %s"
+msgstr "설정 파일 불러오기 실패: %s"
+
 #. TRANSLATORS: cannot load the backend the user specified
 msgid "Failed to load the backend"
 msgstr "백엔드 불러오기에 실패했습니다"
 
+#. TRANSLATORS: cannot load the backend the user specified
+#, c-format
+msgid "Failed to load the backend: %s"
+msgstr "백엔드 불러오기 실패: %s"
+
 #. TRANSLATORS: probably not yet installed
 msgid "Failed to load the config file"
 msgstr "설정 파일 불러오기에 실패했습니다"
@@ -483,6 +496,12 @@ msgstr "인자 해석에 실패했습니다"
 msgid "Failed to parse command line"
 msgstr "명령줄을 해석할 수 없음"
 
+#. TRANSLATORS: The placeholder is an error message.
+#. * `auto` is a potential value of the DefaultBackend= configuration key.
+#, c-format
+msgid "Failed to resolve auto: %s"
+msgstr "auto 설정 값 해석 실패: %s"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
 msgid "Failed to search for file"
 msgstr "파일 검색에 실패했습니다"
@@ -1218,6 +1237,11 @@ msgstr "이 파일이 포함된 패키지:"
 msgid "The proxy could not be set"
 msgstr "프록시를 설정할 수 없음"
 
+#. TRANSLATORS: There was an error finding a package
+#. * for installation, it may already be installed.
+msgid "The selected packages may already be installed."
+msgstr "선택한 패키지는 이미 설치한 패키지인 것 같습니다."
+
 #. TRANSLATORS: tell the user we've not done anything
 msgid "The signature was not accepted."
 msgstr "서명이 수락되지 않았습니다."
@@ -1264,6 +1288,10 @@ msgstr "현재 사용 가능한 업그레이드가 없습니다."
 msgid "This tool could not find all the packages: %s"
 msgstr "모든 패키지를 찾을 수 없음: %s"
 
+#. TRANSLATORS: We were unable to find a package for installation.
+msgid "This tool could not find any available package."
+msgstr "가용 패키지를 찾을 수 없음."
+
 #. TRANSLATORS: There was an error finding a package
 #. * for installation. The detailed error follows.
 #, c-format
diff --git a/po/lt.po b/po/lt.po
index 3578981e3..052575f3b 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -7,13 +7,13 @@
 # aurisc4 <aurisc4 at gmail.com>, 2013
 # Mantas Kriaučiūnas Baltix <mantas at akl.lt>, 2011,2014
 # Mantas Kriaučiūnas Baltix <mantas at akl.lt>, 2011,2014
-# Moo, 2021
+# Moo, 2021-2022
 # Richard Hughes <richard at hughsie.com>, 2011
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Lithuanian (http://www.transifex.com/freedesktop/packagekit/language/lt/)\n"
+"Language-Team: Lithuanian (http://app.transifex.com/freedesktop/packagekit/language/lt/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -238,6 +238,9 @@ msgstr "Komandų eilutė"
 msgid "Committing changes"
 msgstr "Išsaugomi pakeitimai"
 
+msgid "Config file was not found."
+msgstr "Konfigūracijos failas nebuvo rastas."
+
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
 msgid "Copying files"
@@ -396,6 +399,11 @@ msgstr "Nepavyko įdiegti paketų"
 msgid "Failed to launch:"
 msgstr "Nepavyko paleisti:"
 
+#. TRANSLATORS: The placeholder is an error message
+#, c-format
+msgid "Failed to load config file: %s"
+msgstr "Nepavyko įkelti konfigūracijos failo: %s"
+
 #. TRANSLATORS: we failed to contact the daemon
 msgid "Failed to parse command line"
 msgstr "Nepavyko perskaityti komandų eilutės"
diff --git a/po/lv.po b/po/lv.po
index 59e237235..2edea2e37 100644
--- a/po/lv.po
+++ b/po/lv.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Latvian (http://www.transifex.com/freedesktop/packagekit/language/lv/)\n"
+"Language-Team: Latvian (http://app.transifex.com/freedesktop/packagekit/language/lv/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/ml.po b/po/ml.po
index be2f2a205..173a21854 100644
--- a/po/ml.po
+++ b/po/ml.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Malayalam (http://www.transifex.com/freedesktop/packagekit/language/ml/)\n"
+"Language-Team: Malayalam (http://app.transifex.com/freedesktop/packagekit/language/ml/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/mr.po b/po/mr.po
index 4a8c870c5..56f057a56 100644
--- a/po/mr.po
+++ b/po/mr.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Marathi (http://www.transifex.com/freedesktop/packagekit/language/mr/)\n"
+"Language-Team: Marathi (http://app.transifex.com/freedesktop/packagekit/language/mr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/nb.po b/po/nb.po
index ebb50430c..5152d09d3 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Norwegian Bokmål (http://www.transifex.com/freedesktop/packagekit/language/nb/)\n"
+"Language-Team: Norwegian Bokmål (http://app.transifex.com/freedesktop/packagekit/language/nb/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/nl.po b/po/nl.po
index 1840e5a5d..a2e659407 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -4,6 +4,7 @@
 #
 # Translators:
 # Geert Warrink <geert.warrink at onsnet.nu>, 2009
+# Philip Goto <philip.goto at gmail.com>, 2023
 # Richard E. van der Luit <nippur at fedoraproject.org>, 2011-2012,2017
 # Richard Hughes <richard at hughsie.com>, 2011
 # Richard E. van der Luit <nippur at fedoraproject.org>, 2009, 2010
@@ -11,7 +12,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Dutch (http://www.transifex.com/freedesktop/packagekit/language/nl/)\n"
+"Language-Team: Dutch (http://app.transifex.com/freedesktop/packagekit/language/nl/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -203,6 +204,10 @@ msgstr "Beschikbaar"
 msgid "Blocked"
 msgstr "Geblokkeerd"
 
+#. TRANSLATORS: The type of update
+msgid "Bug fix"
+msgstr "Foutoplossing"
+
 #. TRANSLATORS: details about the update, the bugzilla URLs
 msgid "Bugzilla"
 msgstr "Bugzilla"
@@ -744,6 +749,13 @@ msgstr "Pakketten achterhaald maken"
 msgid "Option '%s' is not supported"
 msgstr "Optie '%s' wordt niet ondersteund"
 
+#. TRANSLATORS: details about the update, package name and version
+#. TRANSLATORS: the package that is being processed
+#. TRANSLATORS: the package that is not signed by a known key
+#. TRANSLATORS: the package name that was trying to be installed
+msgid "Package"
+msgstr "Pakket"
+
 #. TRANSLATORS: This a list of details about the package
 msgid "Package description"
 msgstr "Pakketbeschrijving"
diff --git a/po/oc.po b/po/oc.po
index 653e3a393..3ceb1dce7 100644
--- a/po/oc.po
+++ b/po/oc.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Occitan (post 1500) (http://www.transifex.com/freedesktop/packagekit/language/oc/)\n"
+"Language-Team: Occitan (post 1500) (http://app.transifex.com/freedesktop/packagekit/language/oc/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/or.po b/po/or.po
index 3b16d4e2e..376bbe14a 100644
--- a/po/or.po
+++ b/po/or.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Odia (http://www.transifex.com/freedesktop/packagekit/language/or/)\n"
+"Language-Team: Odia (http://app.transifex.com/freedesktop/packagekit/language/or/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/pa.po b/po/pa.po
index 15c35aa2b..8184484d5 100644
--- a/po/pa.po
+++ b/po/pa.po
@@ -13,7 +13,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Panjabi (Punjabi) (http://www.transifex.com/freedesktop/packagekit/language/pa/)\n"
+"Language-Team: Panjabi (Punjabi) (http://app.transifex.com/freedesktop/packagekit/language/pa/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/pl.po b/po/pl.po
index a74aeddf2..d34d1a5fb 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Polish (http://www.transifex.com/freedesktop/packagekit/language/pl/)\n"
+"Language-Team: Polish (http://app.transifex.com/freedesktop/packagekit/language/pl/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -303,6 +303,9 @@ msgstr "Nie odnaleziono polecenia, prawidłowe polecenia:"
 msgid "Committing changes"
 msgstr "Wprowadzanie zmian"
 
+msgid "Config file was not found."
+msgstr "Nie odnaleziono pliku konfiguracji."
+
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
 msgid "Copying files"
@@ -465,10 +468,20 @@ msgstr "Zainstalowanie pakietów się nie powiodło"
 msgid "Failed to launch:"
 msgstr "Uruchomienie się nie powiodło:"
 
+#. TRANSLATORS: The placeholder is an error message
+#, c-format
+msgid "Failed to load config file: %s"
+msgstr "Wczytanie pliku konfiguracji się nie powiodło: %s"
+
 #. TRANSLATORS: cannot load the backend the user specified
 msgid "Failed to load the backend"
 msgstr "Wczytanie modułu przetwarzającego się nie powiodło"
 
+#. TRANSLATORS: cannot load the backend the user specified
+#, c-format
+msgid "Failed to load the backend: %s"
+msgstr "Wczytanie modułu przetwarzającego się nie powiodło: %s"
+
 #. TRANSLATORS: probably not yet installed
 msgid "Failed to load the config file"
 msgstr "Wczytanie pliku konfiguracji się nie powiodło"
@@ -481,6 +494,12 @@ msgstr "Przetworzenie parametrów się nie powiodło"
 msgid "Failed to parse command line"
 msgstr "Przetworzenie wiersza poleceń się nie powiodło"
 
+#. TRANSLATORS: The placeholder is an error message.
+#. * `auto` is a potential value of the DefaultBackend= configuration key.
+#, c-format
+msgid "Failed to resolve auto: %s"
+msgstr "Rozwiązanie „auto” się nie powiodło: %s"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
 msgid "Failed to search for file"
 msgstr "Odnalezienie pliku się nie powiodło"
diff --git a/po/pt.po b/po/pt.po
index c68924280..2f22e1b65 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -5,13 +5,14 @@
 # Translators:
 # Juliano de Souza Camargo <julianosc at protonmail.com>, 2020
 # Pedro Albuquerque <pmra at gmx.com>, 2015
+# Peter J. Mello <admin at petermello.net>, 2023
 # Richard Hughes <richard at hughsie.com>, 2011
 # Rui Gouveia <rui.gouveia at gmail.com>, 2010
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Portuguese (http://www.transifex.com/freedesktop/packagekit/language/pt/)\n"
+"Language-Team: Portuguese (http://app.transifex.com/freedesktop/packagekit/language/pt/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -305,6 +306,9 @@ msgstr "Comando não encontrado, comandos válidos são:"
 msgid "Committing changes"
 msgstr "A aplicar alterações"
 
+msgid "Config file was not found."
+msgstr "O ficheiro de configuração não foi encontrado."
+
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
 msgid "Copying files"
@@ -467,10 +471,20 @@ msgstr "Falhou a instalação dos pacotes"
 msgid "Failed to launch:"
 msgstr "Impossível iniciar:"
 
+#. TRANSLATORS: The placeholder is an error message
+#, c-format
+msgid "Failed to load config file: %s"
+msgstr "Falha ao carregar o ficheiro de configuração: %s"
+
 #. TRANSLATORS: cannot load the backend the user specified
 msgid "Failed to load the backend"
 msgstr "Falha ao carregar o motor"
 
+#. TRANSLATORS: cannot load the backend the user specified
+#, c-format
+msgid "Failed to load the backend: %s"
+msgstr "Falha ao carregar o backend: %s"
+
 #. TRANSLATORS: probably not yet installed
 msgid "Failed to load the config file"
 msgstr "Falha ao carregar ficheiro de configuração"
@@ -483,6 +497,12 @@ msgstr "Falha ao processar argumentos"
 msgid "Failed to parse command line"
 msgstr "Falha ao processar a linha de comando"
 
+#. TRANSLATORS: The placeholder is an error message.
+#. * `auto` is a potential value of the DefaultBackend= configuration key.
+#, c-format
+msgid "Failed to resolve auto: %s"
+msgstr "Falha ao resolver automaticamente: %s"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
 msgid "Failed to search for file"
 msgstr "Não foi possível encontrar o ficheiro"
@@ -1218,6 +1238,11 @@ msgstr "O pacote que fornece este ficheiro é o:"
 msgid "The proxy could not be set"
 msgstr "Não foi possível definir o proxy"
 
+#. TRANSLATORS: There was an error finding a package
+#. * for installation, it may already be installed.
+msgid "The selected packages may already be installed."
+msgstr "Os pacotes seleccionados já podem ser instalados."
+
 #. TRANSLATORS: tell the user we've not done anything
 msgid "The signature was not accepted."
 msgstr "A assinatura não foi aceite."
@@ -1264,6 +1289,10 @@ msgstr "Não há atualizações disponíveis neste momento."
 msgid "This tool could not find all the packages: %s"
 msgstr "Esta ferramenta não conseguiu encontrar todos os pacotes: %s"
 
+#. TRANSLATORS: We were unable to find a package for installation.
+msgid "This tool could not find any available package."
+msgstr "Esta ferramenta não encontrou nenhum pacote disponível."
+
 #. TRANSLATORS: There was an error finding a package
 #. * for installation. The detailed error follows.
 #, c-format
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 91d00ecd2..40fada834 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -14,7 +14,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Portuguese (Brazil) (http://www.transifex.com/freedesktop/packagekit/language/pt_BR/)\n"
+"Language-Team: Portuguese (Brazil) (http://app.transifex.com/freedesktop/packagekit/language/pt_BR/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/ro.po b/po/ro.po
index 330cf418f..e6471aabf 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Romanian (http://www.transifex.com/freedesktop/packagekit/language/ro/)\n"
+"Language-Team: Romanian (http://app.transifex.com/freedesktop/packagekit/language/ro/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/ru.po b/po/ru.po
index 57eb00ec2..873bb2e9c 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -10,7 +10,8 @@
 # Misha Shnurapet <zayzayats at yandex.ru>, 2010
 # Richard Hughes <richard at hughsie.com>, 2011
 # Serge Vylekzhanin <vylekzhanin at mail.ru>, 2014-2018
-# Ser82, 2022
+# Sergej A. <Ser82-png at yandex.ru>, 2022
+# Sergej A. <Ser82-png at yandex.ru>, 2022
 # Yulia <ypoyarko at redhat.com>, 2009
 # Yuri Khabarov <madb00blik at gmail.com>, 2011
 # Yuri Kozlov <yuray at komyakino.ru>, 2011,2013-2014
@@ -20,7 +21,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Russian (http://www.transifex.com/freedesktop/packagekit/language/ru/)\n"
+"Language-Team: Russian (http://app.transifex.com/freedesktop/packagekit/language/ru/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -314,6 +315,9 @@ msgstr "Команда не найдена, корректные команды:
 msgid "Committing changes"
 msgstr "Применение изменений"
 
+msgid "Config file was not found."
+msgstr "Конфигурационный файл не найден."
+
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
 msgid "Copying files"
@@ -476,10 +480,20 @@ msgstr "Не удалось установить пакеты"
 msgid "Failed to launch:"
 msgstr "Не удалось запустить:"
 
+#. TRANSLATORS: The placeholder is an error message
+#, c-format
+msgid "Failed to load config file: %s"
+msgstr "Не удалось загрузить конфигурационный файл: %s"
+
 #. TRANSLATORS: cannot load the backend the user specified
 msgid "Failed to load the backend"
 msgstr "Не удалось загрузить движок"
 
+#. TRANSLATORS: cannot load the backend the user specified
+#, c-format
+msgid "Failed to load the backend: %s"
+msgstr "Не удалось загрузить движок: %s"
+
 #. TRANSLATORS: probably not yet installed
 msgid "Failed to load the config file"
 msgstr "Не удалось загрузить конфигурационный файл"
@@ -492,6 +506,12 @@ msgstr "Не удалось разобрать аргументы"
 msgid "Failed to parse command line"
 msgstr "Не удалось разобрать аргументы командной строки"
 
+#. TRANSLATORS: The placeholder is an error message.
+#. * `auto` is a potential value of the DefaultBackend= configuration key.
+#, c-format
+msgid "Failed to resolve auto: %s"
+msgstr "Не удалось разрешить auto: %s"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
 msgid "Failed to search for file"
 msgstr "Ошибка при поиске файла"
diff --git a/po/si.po b/po/si.po
index 5145e59fe..199e56291 100644
--- a/po/si.po
+++ b/po/si.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Sinhala (http://www.transifex.com/freedesktop/packagekit/language/si/)\n"
+"Language-Team: Sinhala (http://app.transifex.com/freedesktop/packagekit/language/si/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/sk.po b/po/sk.po
index 97725bfd8..a6f7775a3 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -14,7 +14,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Slovak (http://www.transifex.com/freedesktop/packagekit/language/sk/)\n"
+"Language-Team: Slovak (http://app.transifex.com/freedesktop/packagekit/language/sk/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/sl.po b/po/sl.po
index 78e8458b4..42a593a96 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Slovenian (http://www.transifex.com/freedesktop/packagekit/language/sl/)\n"
+"Language-Team: Slovenian (http://app.transifex.com/freedesktop/packagekit/language/sl/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -303,6 +303,9 @@ msgstr "Ukaza ni mogoče najti, veljavni ukazi so:"
 msgid "Committing changes"
 msgstr "Uveljavljanje sprememb"
 
+msgid "Config file was not found."
+msgstr "Prilagoditvene datoteke ni mogoče najti."
+
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
 msgid "Copying files"
@@ -465,10 +468,20 @@ msgstr "Namestitev paketov je spodletela"
 msgid "Failed to launch:"
 msgstr "Zaganjanje izvedljive datoteke je spodletelo:"
 
+#. TRANSLATORS: The placeholder is an error message
+#, c-format
+msgid "Failed to load config file: %s"
+msgstr "Datoteke prilagoditev ni mogoče naložiti: %s"
+
 #. TRANSLATORS: cannot load the backend the user specified
 msgid "Failed to load the backend"
 msgstr "Nalaganje zaledja je spodletelo"
 
+#. TRANSLATORS: cannot load the backend the user specified
+#, c-format
+msgid "Failed to load the backend: %s"
+msgstr "Nalaganje zaledja je spodletelo: %s"
+
 #. TRANSLATORS: probably not yet installed
 msgid "Failed to load the config file"
 msgstr "Datoteke prilagoditev ni mogoče naložiti"
@@ -481,6 +494,12 @@ msgstr "Razčlenjevanje parametrov je spodletelo"
 msgid "Failed to parse command line"
 msgstr "Razčlenjevanje ukazne vrstice je spodletelo"
 
+#. TRANSLATORS: The placeholder is an error message.
+#. * `auto` is a potential value of the DefaultBackend= configuration key.
+#, c-format
+msgid "Failed to resolve auto: %s"
+msgstr "Samodejno razreševanje je spodletelo: %s"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
 msgid "Failed to search for file"
 msgstr "Iskanje datoteke je spodletelo"
diff --git a/po/sq.po b/po/sq.po
index 8df095e36..3f405a80c 100644
--- a/po/sq.po
+++ b/po/sq.po
@@ -1,1649 +1,1233 @@
 # SOME DESCRIPTIVE TITLE.
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# 
+# This file is distributed under the same license as the PackageKit package.
+#
 # Translators:
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Albanian (http://www.transifex.com/projects/p/freedesktop/language/sq/)\n"
+"Language-Team: Albanian (http://app.transifex.com/freedesktop/packagekit/language/sq/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: sq\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#. TRANSLATORS: this is an atomic transaction
-#. TRANSLATORS: the role is the point of the transaction, e.g. update-packages
-#: ../client/pk-console.c:174 ../client/pk-console.c:587
-msgid "Transaction"
-msgstr ""
+msgid "(seconds)"
+msgstr "(sekonda)"
 
-#. TRANSLATORS: this is the time the transaction was started in system
-#. timezone
-#: ../client/pk-console.c:176
-msgid "System time"
-msgstr ""
+#. TRANSLATORS: The user specified
+#. * an invalid action
+msgid "A correct role is required"
+msgstr "Është i domosdoshëm një rol i saktë"
 
-#. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:178
-msgid "Succeeded"
-msgstr ""
+msgid "A filename is required"
+msgstr "Emër kartele i domosdoshëm"
 
-#: ../client/pk-console.c:178
-msgid "True"
-msgstr ""
+#. TRANSLATORS: the user did not
+#. * specify what they wanted to install
+msgid "A filename to install is required"
+msgstr "Është i domosdoshëm një emër kartele për t’u instaluar"
 
-#: ../client/pk-console.c:178
-msgid "False"
-msgstr ""
+#. TRANSLATORS: geeky error, real
+#. * users won't see this
+msgid "A licence identifier (eula-id) is required"
+msgstr "Lypset një identifikues licence (eula-id)"
 
-#. TRANSLATORS: this is the transactions role, e.g. "update-packages"
-#: ../client/pk-console.c:180
-msgid "Role"
-msgstr ""
+#. TRANSLATORS: The user did not
+#. * provide a package name
+msgid "A package name is required"
+msgstr "Është i domosdoshëm një emër pakete"
 
-#. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:185
-msgid "Duration"
-msgstr ""
+#. TRANSLATORS: the user did not
+#. * specify what they wanted to install
+msgid "A package name to install is required"
+msgstr "Është i domosdoshëm një emër pakete për instalim"
 
-#: ../client/pk-console.c:185
-msgid "(seconds)"
-msgstr ""
+#. TRANSLATORS: the user did not
+#. * specify what they wanted to remove
+msgid "A package name to remove is required"
+msgstr "Është i domosdoshëm një emër pakete për heqje"
 
-#. TRANSLATORS: this is The command line used to do the action
-#: ../client/pk-console.c:189
-msgid "Command line"
-msgstr ""
+#. TRANSLATORS: The user did not
+#. * specify a package name
+msgid "A package name to resolve is required"
+msgstr "Është i domosdoshëm një emër pakete për ftillim"
 
-#. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:191
-msgid "User ID"
-msgstr ""
+msgid "A repo name, parameter and value are required"
+msgstr "Janë të domosdoshëm një emër depoje, parametër dhe vlerë"
 
-#. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:198
-msgid "Username"
-msgstr ""
+#. TRANSLATORS: The user did not
+#. * specify a repository name
+msgid "A repository name is required"
+msgstr "Është i domosdoshëm një emër depoje"
 
-#. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:202
-msgid "Real name"
-msgstr ""
+#. TRANSLATORS: the user
+#. * needs to provide a search term
+#. TRANSLATORS: the user needs
+#. * to provide a search term
+msgid "A search term is required"
+msgstr "Është i domosdoshëm një term kërkimi"
+
+#. TRANSLATORS: a search type can
+#. * be name, details, file, etc
+msgid "A search type is required, e.g. name"
+msgstr "Një lloj kërkimi është i domosdoshëm, p.sh., emër"
+
+#. TRANSLATORS: geeky error, real
+#. * users won't see this
+msgid "A type, key_id and package_id are required"
+msgstr "Është i domosdoshëm një lloj, key_id dhe package_id"
+
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+msgid "Accept EULA"
+msgstr "Pranoni EULA-n"
+
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Accepting EULA"
+msgstr "Po pranohet EULA"
 
-#: ../client/pk-console.c:210
+#. TRANSLATORS: these are packages touched by the transaction
 msgid "Affected packages:"
-msgstr ""
+msgstr "Paketa të prekura:"
 
-#: ../client/pk-console.c:212
+#. TRANSLATORS: these are packages touched by the transaction
 msgid "Affected packages: None"
-msgstr ""
+msgstr "Paketa të prekura: Asnjë"
 
-#. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:247
-msgid "Distribution"
-msgstr ""
+#. TRANSLATORS: the EULA text itself (long and boring)
+msgid "Agreement"
+msgstr "Marrëveshje"
 
-#. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:249
-msgid "Type"
-msgstr ""
+#. TRANSLATORS: this is a command alias
+#, c-format
+msgid "Alias to %s"
+msgstr "Alias për %s"
 
-#. TRANSLATORS: this is any summary text describing the upgrade
-#. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:251 ../client/pk-console.c:290
-msgid "Summary"
-msgstr ""
+#. command line argument, do we allow package downgrades
+msgid "Allow packages to be downgraded during transaction"
+msgstr "Lejo që paketat të kalohen në version më të vjetër gjatë transaksioni"
 
-#. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:279
-msgid "Category"
-msgstr ""
+msgid "Allow packages to be reinstalled during transaction"
+msgstr "Lejo që paketat të riinstalohen gjatë transaksioni"
 
-#. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:281
-msgid "ID"
-msgstr ""
+#. command line argument, do we ask questions
+msgid "Allow untrusted packages to be installed."
+msgstr "Lejo të instalohen paketa jo të besuara."
 
-#. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:284
-msgid "Parent"
-msgstr ""
+#. TRANSLATORS: The user didn't
+#. * specify what action to use
+msgid "An action, e.g. 'update-packages' is required"
+msgstr "Lypset një veprim, p.sh., 'update-packages'"
 
-#. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:287
-msgid "Name"
-msgstr ""
+#. TRANSLATORS: a package requires the application to be restarted
+msgid "Application restart required by:"
+msgstr "Rinisje aplikacioni e kërkuar nga:"
 
-#. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:293
-msgid "Icon"
-msgstr ""
+msgid "Authentication is required to accept a EULA"
+msgstr "Që të pranohet EULA, lypset mirëfilltësim"
 
-#. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:340
-msgid "Details about the update:"
-msgstr ""
+msgid "Authentication is required to cancel a task that was not started by yourself"
+msgstr "Që të anulohet një akt i nisur jo prej jush, lypset mirëfilltësim"
 
-#. TRANSLATORS: details about the update, package name and version
-#. TRANSLATORS: the package that is being processed
-#. TRANSLATORS: the package that is not signed by a known key
-#. TRANSLATORS: the package name that was trying to be installed
-#: ../client/pk-console.c:346 ../client/pk-console.c:606
-#: ../lib/packagekit-glib2/pk-task-text.c:124
-#: ../lib/packagekit-glib2/pk-task-text.c:206
-msgid "Package"
-msgstr ""
+msgid "Authentication is required to change software repository parameters"
+msgstr "Që të ndryshohen parametra deposh software-i, lypset mirëfilltësim"
 
-#. TRANSLATORS: details about the update, any packages that this update
-#. updates
-#: ../client/pk-console.c:350
-msgid "Updates"
-msgstr ""
+msgid "Authentication is required to downgrade software"
+msgstr "Që software-i të kalohet në version më të vjetër, lypset mirëfilltësim"
 
-#. TRANSLATORS: details about the update, any packages that this update
-#. obsoletes
-#: ../client/pk-console.c:356
-msgid "Obsoletes"
-msgstr ""
+msgid "Authentication is required to install software"
+msgstr "Që të instalohet software-i, lypset mirëfilltësim"
 
-#. TRANSLATORS: details about the update, the vendor URLs
-#. TRANSLATORS: the vendor (e.g. vmware) that is providing the EULA
-#: ../client/pk-console.c:362 ../lib/packagekit-glib2/pk-task-text.c:209
-msgid "Vendor"
-msgstr ""
+msgid "Authentication is required to install untrusted software"
+msgstr "Që të instalohet software jo i besuar, lypset mirëfillëtim"
 
-#. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:368
-msgid "Bugzilla"
-msgstr ""
+msgid "Authentication is required to refresh the system repositories"
+msgstr "Që të rifreskohen depot e sistemit, lypset mirëfilltësim"
 
-#. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:374
-msgid "CVE"
-msgstr ""
+msgid "Authentication is required to reinstall software"
+msgstr "Që të riinstalohet software-i, lypset mirëfilltësim"
 
-#. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:379
-msgid "Restart"
-msgstr ""
+msgid "Authentication is required to remove software"
+msgstr "Që të hiqet software, lypset mirëfilltësim"
 
-#. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:383
-msgid "Update text"
-msgstr ""
+msgid "Authentication is required to repair the installed software"
+msgstr "Që të riparohet software i instaluar, lypset mirëfilltësim"
 
-#. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:387
-msgid "Changes"
-msgstr ""
+msgid "Authentication is required to set the network proxy used for downloading software"
+msgstr "Që të ujdiset ndërmjetës i përdorur për shkarkim software-i, lypset mirëfilltësim"
 
-#. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:391
-msgid "State"
-msgstr ""
+msgid "Authentication is required to update software"
+msgstr "Që të përditësohet software, lypset mirëfilltësim"
 
-#. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:395
-msgid "Issued"
-msgstr ""
+msgid "Authentication is required to upgrade the operating system"
+msgstr "Që të përmirësohet sistemi operativ, lypset mirëfilltësim"
 
-#. TRANSLATORS: details about the update, date the update was updated
-#. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:399 ../lib/packagekit-glib2/pk-enum.c:1171
-msgid "Updated"
-msgstr ""
+#. TRANSLATORS: this is the author of the backend
+msgid "Author"
+msgstr "Autor"
 
-#. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:435
-msgid "Enabled"
-msgstr ""
+msgid "Automatically remove unused dependencies"
+msgstr "Hiqi automatikisht varësitë e papërdorura"
 
-#. TRANSLATORS: if the repo is disabled
-#: ../client/pk-console.c:438
-msgid "Disabled"
-msgstr ""
+#. TRANSLATORS: The state of a package, i.e. not installed
+msgid "Available"
+msgstr "Të gatshme"
 
-#. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:470
-msgid "System restart required by:"
-msgstr ""
+#. TRANSLATORS: The type of update
+msgid "Blocked"
+msgstr "Të bllokuara"
 
-#. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:473
-msgid "Session restart required:"
-msgstr ""
+#. TRANSLATORS: The type of update
+msgid "Bug fix"
+msgstr "Ndreqje të mete"
 
-#. TRANSLATORS: a package requires the system to be restarted due to a
-#. security update
-#: ../client/pk-console.c:476
-msgid "System restart (security) required by:"
-msgstr ""
+#. TRANSLATORS: details about the update, the bugzilla URLs
+msgid "Bugzilla"
+msgstr "Bugzilla"
 
-#. TRANSLATORS: a package requires the session to be restarted due to a
-#. security update
-#: ../client/pk-console.c:479
-msgid "Session restart (security) required:"
-msgstr ""
+#. TRANSLATORS: details about the update, the CVE URLs
+msgid "CVE"
+msgstr "CVE"
 
-#. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:482
-msgid "Application restart required by:"
-msgstr ""
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Canceling"
+msgstr "Po anulohet"
 
-#. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:517
-msgid "Package description"
-msgstr ""
+#. TRANSLATORS: transaction state, in the process of cancelling
+msgid "Cancelling"
+msgstr "Po anulohet"
 
-#. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:549
-msgid "No files"
-msgstr ""
+#. TRANSLATORS: this is the group category name
+msgid "Category"
+msgstr "Kategori"
 
-#. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:554
-msgid "Package files"
-msgstr ""
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software repositories as this can be used to enable new updates or
+#. install different versions of software.
+msgid "Change software repository parameters"
+msgstr "Ndryshoni parametra depoje software-i"
 
-#. TRANSLATORS: the percentage complete of the transaction
-#: ../client/pk-console.c:622
-msgid "Percentage"
-msgstr ""
+#. TRANSLATORS: details about the update, the changelog for
+#. * the package
+msgid "Changes"
+msgstr "Ndryshime"
 
-#. TRANSLATORS: the status of the transaction (e.g. downloading)
-#: ../client/pk-console.c:640
-msgid "Status"
-msgstr ""
+#. TRANSLATORS: transaction state, we are checking executable files currently
+#. in use
+msgid "Checking applications in use"
+msgstr "Po kontrollohen aplikacione në përdorim"
 
-#. TRANSLATORS: the results from the transaction
-#: ../client/pk-console.c:672
-msgid "Results:"
-msgstr ""
+#. TRANSLATORS: transaction state, we are checking for libraries currently in
+#. use
+msgid "Checking libraries in use"
+msgstr "Po kontrollohen biblioteka në përdorim"
 
-#. TRANSLATORS: we failed to get any results, which is pretty fatal in my book
-#: ../client/pk-console.c:679 ../client/pk-console.c:830
-msgid "Fatal error"
-msgstr ""
+#. TRANSLATORS: transaction state, checking if we have all the security keys
+#. for the operation
+msgid "Checking signatures"
+msgstr "Po kontrollohen nënshkrime"
 
-#. TRANSLATORS: the user asked to update everything, but there is nothing that
-#. can be updated
-#: ../client/pk-console.c:696
-msgid "There are no packages to update."
-msgstr ""
+#. TRANSLATORS: The action of the package, in past tense
+msgid "Cleaned up"
+msgstr "U pastrua"
 
-#. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../client/pk-console.c:699
-#: ../contrib/command-not-found/pk-command-not-found.c:716
-msgid "The transaction failed"
-msgstr ""
+#. TRANSLATORS: The action of the package, in present tense
+msgid "Cleaning up"
+msgstr "Po pastrohet"
 
-#. TRANSLATORS: print a message when there are no updates
-#: ../client/pk-console.c:728
-msgid "There are no updates available at this time."
-msgstr ""
+#. TRANSLATORS: transaction state, removing old packages, and cleaning config
+#. files
+msgid "Cleaning up packages"
+msgstr "Po spastrohen paketa"
 
-#: ../client/pk-console.c:751
-msgid "There are no upgrades available at this time."
-msgstr ""
+#. SECURITY:
+#. - Normal users are able to clear the updates message that is
+#. shown after an updates are applied at boot time.
+msgid "Clear offline update message"
+msgstr "Spastro mesazh përditësimi jo në linjë"
 
-#. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:813
-msgid "Please restart the computer to complete the update."
-msgstr ""
+#. TRANSLATORS: Generic failure of what they asked to do
+msgid "Command failed"
+msgstr "Urdhri dështoi"
 
-#. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:816
-msgid "Please logout and login to complete the update."
-msgstr ""
+#. TRANSLATORS: this is The command line used to do the action
+msgid "Command line"
+msgstr "Rresht urdhrash"
 
-#. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:819
-msgid ""
-"Please restart the computer to complete the update as important security "
-"updates have been installed."
-msgstr ""
+msgid "Command not found, valid commands are:"
+msgstr "S’u gjet urdhër, urdhrat e vlefshëm janë:"
 
-#. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:822
-msgid ""
-"Please logout and login to complete the update as important security updates"
-" have been installed."
-msgstr ""
+#. TRANSLATORS: transaction state, when we're writing to the system package
+#. database
+msgid "Committing changes"
+msgstr "Po depozitohen ndryshime"
 
-#. TRANSLATORS: The user used 'pkcon install dave.rpm' rather than 'pkcon
-#. install-local dave.rpm'
-#: ../client/pk-console.c:862
-#, c-format
-msgid ""
-"Expected package name, actually got file. Try using 'pkcon install-local %s'"
-" instead."
-msgstr ""
+#. TRANSLATORS: transaction state, we are copying package files before or
+#. after the transaction
+msgid "Copying files"
+msgstr "Po kopjohen kartela"
 
-#. TRANSLATORS: There was an error getting the list of files for the package.
-#. The detailed error follows
-#: ../client/pk-console.c:875
-#, c-format
-msgid "This tool could not find any available package: %s"
-msgstr ""
+msgid "Debugging Options"
+msgstr "Mundësi Diagnostikimi"
 
-#. TRANSLATORS: There was an error getting the list of files for the package.
-#. The detailed error follows
-#: ../client/pk-console.c:904
-#, c-format
-msgid "This tool could not find the installed package: %s"
-msgstr ""
+#. TRANSLATORS: this is the description of the backend
+msgid "Description"
+msgstr "Përshkrim"
 
-#. TRANSLATORS: There was an error getting the list of files for the package.
-#. The detailed error follows
-#: ../client/pk-console.c:932 ../client/pk-console.c:967
-#, c-format
-msgid "This tool could not find the package: %s"
-msgstr ""
+#. TRANSLATORS: this is a header for the package that can be updated
+msgid "Details about the update:"
+msgstr "Hollësi mbi përditësimin:"
 
-#. TRANSLATORS: there are no updates, so nothing to do
-#: ../client/pk-console.c:1011
-msgid "No packages require updating to newer versions."
-msgstr ""
-
-#. TRANSLATORS: There was an error getting the list of files for the package.
-#. The detailed error follows
-#. TRANSLATORS: There was an error getting the dependencies for the package.
-#. The detailed error follows
-#. TRANSLATORS: There was an error getting the details about the package. The
-#. detailed error follows
-#. TRANSLATORS: The package name was not found in any software sources. The
-#. detailed error follows
-#: ../client/pk-console.c:1041 ../client/pk-console.c:1073
-#: ../client/pk-console.c:1101 ../client/pk-console.c:1129
-#: ../client/pk-console.c:1157
-#, c-format
-msgid "This tool could not find all the packages: %s"
-msgstr ""
-
-#. TRANSLATORS: This is when the daemon crashed, and we are up shit creek
-#. without a paddle
-#: ../client/pk-console.c:1186
-msgid "The daemon crashed mid-transaction!"
-msgstr ""
-
-#. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1220
-msgid "PackageKit Console Interface"
-msgstr ""
-
-#. these are commands we can use with pkcon
-#: ../client/pk-console.c:1222
-msgid "Subcommands:"
-msgstr ""
-
-#. TRANSLATORS: we keep a database updated with the time that an action was
-#. last executed
-#: ../client/pk-console.c:1309
-msgid "Failed to get the time since this action was last completed"
-msgstr ""
-
-#. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1473 ../client/pk-monitor.c:354
-msgid "Show the program version and exit"
-msgstr ""
+#. TRANSLATORS: the directory does
+#. * not exist, so we can't continue
+msgid "Directory not found"
+msgstr "S’u gjet drejtori"
 
-#. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1476
-msgid "Set the filter, e.g. installed"
-msgstr ""
+#. TRANSLATORS: if we should not monitor how long we are inactive for
+msgid "Disable the idle timer"
+msgstr "Çaktivizo kohëmatës plogështie"
 
-#. command line argument, do we ask questions
-#: ../client/pk-console.c:1479
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:525
-msgid "Install the packages without asking for confirmation"
-msgstr ""
+#. TRANSLATORS: if the repo is disabled
+msgid "Disabled"
+msgstr "Të çaktivizuar"
 
-#. command line argument, do we just download or apply changes
-#: ../client/pk-console.c:1482
-msgid "Prepare the transaction by downloading pakages only"
-msgstr ""
+#. TRANSLATORS: this is the distro, e.g. Fedora 10
+msgid "Distribution"
+msgstr "Shpërndarje"
 
-#. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1485
-msgid "Run the command using idle network bandwidth and also using less power"
-msgstr ""
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr "Mos i instaloni këto paketa, veç në qofshi të sigurt se s’ka rrezik të bëhet kështu."
 
-#. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1488
-msgid ""
-"Print to screen a machine readable output, rather than using animated "
-"widgets"
-msgstr ""
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr "Mos e instaloni këtë paketë, veç në qofshi të sigurt se s’ka rrezik të bëhet kështu."
 
-#. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1491
-msgid "The maximum metadata cache age. Use -1 for 'never'."
-msgstr ""
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr "Mos i përditësoni këto paketa, veç në qofshi të sigurt se s’ka rrezik të bëhet kështu."
 
-#. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1523
-msgid "Failed to parse command line"
-msgstr ""
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr "Mos e përditësoni këtë paketë, veç në qofshi të sigurt se s’ka rrezik të bëhet kështu."
 
-#. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1534
-msgid "Failed to contact PackageKit"
-msgstr ""
+#. TRANSLATORS: ask the user if they've read and accepted the EULA
+msgid "Do you accept this agreement?"
+msgstr "E pranoni këtë marrëveshje?"
 
-#. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1589
-msgid "The proxy could not be set"
-msgstr ""
+#. TRANSLATORS: ask the user if they want to import
+msgid "Do you accept this signature?"
+msgstr "E pranoni këtë nënshkrim?"
 
-#. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1601
-msgid "The filter specified was invalid"
-msgstr ""
+#. TRANSLATORS: ask the user if they are comfortable installing insecure
+#. packages
+msgid "Do you want to allow installing of unsigned software?"
+msgstr "Doni të lejohet instalim software-i të panënshkruar?"
 
-#. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1623
-msgid "A search type is required, e.g. name"
-msgstr ""
+#. TRANSLATORS: don't unset environment variables, used for debugging
+msgid "Don't clear environment on startup"
+msgstr "Mos spastro mjedis gjatë nisjes"
 
-#. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1630 ../client/pk-console.c:1642
-#: ../client/pk-console.c:1654 ../client/pk-console.c:1666
-msgid "A search term is required"
-msgstr ""
+#. TRANSLATORS: The action of the package, in past tense
+msgid "Downloaded"
+msgstr "U shkarkua"
 
-#. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1676
-msgid "Invalid search type"
-msgstr ""
+#. TRANSLATORS: The action of the package, in present tense
+msgid "Downloading"
+msgstr "Po shkarkohet"
 
-#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1682
-msgid "A package name to install is required"
-msgstr ""
+#. TRANSLATORS: transaction state, downloading metadata
+msgid "Downloading file lists"
+msgstr "Po shkarkohem lista kartelash"
 
-#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1691
-msgid "A filename to install is required"
-msgstr ""
+#. TRANSLATORS: transaction state, downloading metadata
+msgid "Downloading groups"
+msgstr "Po shkarkohen grupe"
 
-#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1702
-msgid "A type, key_id and package_id are required"
-msgstr ""
+#. TRANSLATORS: transaction state, downloading metadata
+msgid "Downloading list of packages"
+msgstr "Po shkarkohet listë paketash"
 
-#. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1713
-msgid "A package name to remove is required"
-msgstr ""
+#. TRANSLATORS: transaction state, downloading metadata
+msgid "Downloading lists of changes"
+msgstr "Po shkarkohen lista ndryshimesh"
 
-#. TRANSLATORS: the user did not specify anything about what to download or
-#. where
-#: ../client/pk-console.c:1722
-msgid "A destination directory and the package names to download are required"
-msgstr ""
+#. TRANSLATORS: transaction state, downloading package files
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Downloading packages"
+msgstr "Po shkarkohen paketa"
 
-#. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1729
-msgid "Directory not found"
-msgstr ""
+#. TRANSLATORS: transaction state, downloading metadata
+msgid "Downloading repository information"
+msgstr "Po shkarkohen hollësi depoje"
 
-#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1738
-msgid "A licence identifier (eula-id) is required"
-msgstr ""
+#. TRANSLATORS: transaction state, downloading metadata
+msgid "Downloading update information"
+msgstr "Po shkarkohen hollësi përditësimi"
 
-#. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1757
-msgid "A package name to resolve is required"
-msgstr ""
+#. TRANSLATORS: this is The duration of the transaction
+msgid "Duration"
+msgstr "Kohëzgjatje"
 
-#. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1768 ../client/pk-console.c:1779
-msgid "A repository name is required"
-msgstr ""
+#. TRANSLATORS: if the repo is enabled
+msgid "Enabled"
+msgstr "Të aktivizuar"
 
-#. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1790
-msgid "A repo name, parameter and value are required"
-msgstr ""
+#. TRANSLATORS: The type of update
+msgid "Enhancement"
+msgstr "Thellim"
 
-#. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1807
-msgid "An action, e.g. 'update-packages' is required"
-msgstr ""
+#. TRANSLATORS: exit after we've started up, used for user profiling
+msgid "Exit after a small delay"
+msgstr "Dil, pas një vonese të vockël"
 
-#. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1814
-msgid "A correct role is required"
-msgstr ""
+#. TRANSLATORS: exit straight away, used for automatic profiling
+msgid "Exit after the engine has loaded"
+msgstr "Mbylle, pasi të jetë ngarkuar mekanizimi"
 
-#. TRANSLATORS: The user did not provide a package name
-#: ../client/pk-console.c:1824 ../client/pk-console.c:1838
-#: ../client/pk-console.c:1847 ../client/pk-console.c:1867
-#: ../client/pk-console.c:1876
-msgid "A package name is required"
-msgstr ""
+#. TRANSLATORS: The user used
+#. * 'pkcon install dave.rpm' rather than
+#. * 'pkcon install-local dave.rpm'
+#, c-format
+msgid "Expected package name, actually got file. Try using 'pkcon install-local %s' instead."
+msgstr "Pritej emër pakete, faktikisht u mor kartelë. Provoni më mirë të përdorni “pkcon install-local %s”."
 
-#. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-
-#. decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:1856
-msgid "A package provide string is required"
-msgstr ""
+#. TRANSLATORS: we failed to contact the daemon
+msgid "Failed to contact PackageKit"
+msgstr "S’u arrit të kontaktohet PackageKit"
 
-#. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:1900
-msgid "A distribution name is required"
-msgstr ""
+msgid "Failed to get daemon state"
+msgstr "S’u arrit të merret gjendje demoni"
 
-#. TRANSLATORS: The user did not provide an upgrade type
-#: ../client/pk-console.c:1906
-msgid "An upgrade type is required, e.g. 'minimal', 'default' or 'complete'"
-msgstr ""
+msgid "Failed to get properties"
+msgstr "S’u arrit të merren veti"
 
-#. TRANSLATORS: The user did not provide a distro name
-#: ../client/pk-console.c:2003
-msgid "You need to specify a list file to create"
-msgstr ""
+#. TRANSLATORS: we keep a database updated with the time that an
+#. * action was last executed
+msgid "Failed to get the time since this action was last completed"
+msgstr "S’u arrit të merret koha, ngaqë ky veprim u plotësua i fundit"
 
-#. TRANSLATORS: There was an error getting the list of packages. The filename
-#. follows
-#: ../client/pk-console.c:2012
-#, c-format
-msgid "File already exists: %s"
-msgstr ""
+#. TRANSLATORS: we failed to install the package
+msgid "Failed to install packages"
+msgstr "S’u arrit të instalohen paketa"
 
-#. TRANSLATORS: The user tried to use an unsupported option on the command
-#. line
-#: ../client/pk-console.c:2028
-#, c-format
-msgid "Option '%s' is not supported"
-msgstr ""
+#. TRANSLATORS: we failed to launch the executable, the error follows
+msgid "Failed to launch:"
+msgstr "S’u arrit të nisej:"
 
-#. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2038
-msgid "Command failed"
-msgstr ""
+#. TRANSLATORS: cannot load the backend the user specified
+msgid "Failed to load the backend"
+msgstr "S’u arrit të ngarkohej pjesa e pasme"
 
-#: ../client/pk-monitor.c:267
-msgid "Failed to get daemon state"
-msgstr ""
+#. TRANSLATORS: probably not yet installed
+msgid "Failed to load the config file"
+msgstr "S’u arrit të ngarkohej kartelë formësimesh"
 
-#: ../client/pk-monitor.c:332
-msgid "Failed to get properties"
-msgstr ""
+#. TRANSLATORS: the user didn't read the man page
+msgid "Failed to parse arguments"
+msgstr "S’u arrit të përtypen argumente"
 
-#. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:373
-msgid "PackageKit Monitor"
-msgstr ""
+#. TRANSLATORS: we failed to contact the daemon
+msgid "Failed to parse command line"
+msgstr "S’u arrit të analizohej dot rresht urdhrash"
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:422
-msgid "Getting package information..."
-msgstr ""
+#. TRANSLATORS: we failed to find the package, this shouldn't happen
+msgid "Failed to search for file"
+msgstr "S’u arrit të kërkohej për kartelë"
 
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:428
-#, c-format
-msgid "Run %s"
-msgstr ""
+#. TRANSLATORS: cannot unload the backend the user specified
+msgid "Failed to unload the backend"
+msgstr "S’u arrit të hiqej ngarkimi i pjesës së pasme"
 
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:434
-msgid "Installed version"
-msgstr ""
+#. TRANSLATORS: we failed to get any results, which is pretty
+#. * fatal in my book
+msgid "Fatal error"
+msgstr "Gabim fatal"
 
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:442
+#. TRANSLATORS: There was an error
+#. * getting the list of packages.
+#. * The filename follows
 #, c-format
-msgid "Run version %s now"
-msgstr ""
-
-#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:448
-msgid "Run now"
-msgstr ""
+msgid "File already exists: %s"
+msgstr "Kartela ekziston tashmë: %s"
 
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:454
-#, c-format
-msgid "Update to version %s"
-msgstr ""
+#. TRANSLATORS: transaction state, all done!
+msgid "Finished"
+msgstr "U përfundua"
 
-#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:460
-#, c-format
-msgid "Install %s now"
-msgstr ""
+#. TRANSLATORS: transaction state, generating a list of packages installed on
+#. the system
+msgid "Generating package lists"
+msgstr "Po prodhohen lista paketash"
 
-#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:463
-msgid "Version"
-msgstr ""
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Getting categories"
+msgstr "Po merren kategori"
 
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:468
-msgid "No packages found for your system"
-msgstr ""
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Getting dependencies"
+msgstr "Po merren varësi"
 
-#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:473
-msgid "Installing..."
-msgstr ""
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Getting details"
+msgstr "Po merren hollësi"
 
-#. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:442
-msgid "Downloading details about the software sources."
-msgstr ""
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Getting file list"
+msgstr "Po merret listë kartelash"
 
-#. TRANSLATORS: downloading file lists so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:446
-msgid "Downloading filelists (this may take some time to complete)."
-msgstr ""
+#. TRANSLATORS: transaction state, getting data from a server
+msgid "Getting information"
+msgstr "Po merren hollësi"
 
-#. TRANSLATORS: waiting for native lock
-#: ../contrib/command-not-found/pk-command-not-found.c:450
-msgid "Waiting for package manager lock."
-msgstr ""
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Getting packages"
+msgstr "Po merren paketa"
 
-#. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:454
-msgid "Loading list of packages."
-msgstr ""
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Getting repositories"
+msgstr "Po merren depo"
 
-#. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:519
-msgid "Failed to search for file"
-msgstr ""
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Getting system upgrades"
+msgstr "Po merren përmirësime sistemi"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../contrib/command-not-found/pk-command-not-found.c:532
 msgid "Getting the list of files failed"
-msgstr ""
-
-#. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:679
-msgid "Failed to launch:"
-msgstr ""
+msgstr "Dështoi marrja e listës së kartelave"
 
-#. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:707
-msgid "Failed to install packages"
-msgstr ""
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Getting transactions"
+msgstr "Po merren transaksione"
 
-#. TRANSLATORS: the prefix of all the output telling the user
-#. * why it's not executing. NOTE: this is lowercase to mimic
-#. * the style of bash itself -- apologies
-#: ../contrib/command-not-found/pk-command-not-found.c:841
-msgid "command not found"
-msgstr ""
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Getting update details"
+msgstr "Po merren hollësi përditësimi"
 
-#. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:858
-msgid "Similar command is:"
-msgstr ""
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Getting updates"
+msgstr "Po merren përditësime"
 
-#. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:871
-msgid "Run similar command:"
-msgstr ""
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Getting upgrades"
+msgstr "Po merren përmirësime"
 
-#. TRANSLATORS: show the user a list of commands that they could have meant
-#. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:883
-#: ../contrib/command-not-found/pk-command-not-found.c:892
-msgid "Similar commands are:"
-msgstr ""
+#. TRANSLATORS: this is group identifier
+msgid "ID"
+msgstr "ID"
 
-#. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:899
-msgid "Please choose a command to run"
-msgstr ""
+#. TRANSLATORS: this is preferred icon for the group
+msgid "Icon"
+msgstr "Ikonë"
 
-#. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:918
-msgid "The package providing this file is:"
-msgstr ""
+#. TRANSLATORS: The type of update
+msgid "Important"
+msgstr "E rëndësishme"
+
+#. SECURITY
+#. - Normal users require admin authentication to reinstall packages.
+#. - Authorization to install packages does not imply permissions to
+#. reinstall them and vice versa.
+#. - If a package in question is not trusted, user's permission to install
+#. untrusted package will be checked as well.
+msgid "Install already installed package again"
+msgstr "Riinstalo paketë të instaluar tashmë"
+
+#. SECURITY
+#. - Normal users require admin authentication to downgrade packages.
+#. - User authorized to downgrade signed packages is authorized to install
+#. them as well.
+#. - If a package in question is not trusted, user's permission to install
+#. untrusted package will be checked as well.
+msgid "Install older version of installed package"
+msgstr "Instalo version më të vjetër të paketës së instaluar"
+
+#. TRANSLATORS: command description
+msgid "Install package"
+msgstr "Instalo paketë"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the
 #. command
-#: ../contrib/command-not-found/pk-command-not-found.c:925
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
-msgstr ""
+msgstr "Të instalohet paketë “%s” për të furnizuar urdhrin “%s”?"
 
-#. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:948
-msgid "Packages providing this file are:"
-msgstr ""
-
-#. TRANSLATORS: Show the user a list of packages that they can install to
-#. provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:958
-msgid "Suitable packages are:"
-msgstr ""
-
-#. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:966
-msgid "Please choose a package to install"
-msgstr ""
-
-#: ../contrib/command-not-found/pk-command-not-found.c:968
-msgid "User aborted selection"
-msgstr ""
-
-#. TRANSLATORS: we are starting to install the packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:195
-msgid "Starting install"
-msgstr ""
-
-#. TRANSLATORS: we couldn't find the package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:407
-#, c-format
-msgid "Failed to find the package %s, or already installed: %s"
-msgstr ""
-
-#. command line argument, simulate what would be done, but don't actually do
-#. it
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:516
-msgid ""
-"Don't actually install any packages, only simulate what would be installed"
-msgstr ""
-
-#. command line argument, do we skip packages that depend on the ones
-#. specified
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:519
-msgid "Do not install dependencies of the core packages"
-msgstr ""
-
-#. command line argument, do we operate quietly
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:522
-msgid "Do not display information or progress"
-msgstr ""
-
-#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:544
-msgid "PackageKit Debuginfo Installer"
-msgstr ""
-
-#. TRANSLATORS: the use needs to specify a list of package names on the
-#. command line
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:558
-#, c-format
-msgid "ERROR: Specify package names to install."
-msgstr ""
-
-#. TRANSLATORS: we are getting the list of repositories
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:594
-#, c-format
-msgid "Getting sources list"
-msgstr ""
-
-#. TRANSLATORS: operation was not successful
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:604
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:679
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:763
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:807
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:918
-msgid "FAILED."
-msgstr ""
-
-#. TRANSLATORS: all completed 100%
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:619
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:659
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:694
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:778
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:822
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:889
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:933
-#, c-format
-msgid "OK."
-msgstr ""
-
-#. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:622
-#, c-format
-msgid "Found %i enabled and %i disabled sources."
-msgstr ""
-
-#. TRANSLATORS: we're finding repositories that match out pattern
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:629
-#, c-format
-msgid "Finding debugging sources"
-msgstr ""
-
-#. TRANSLATORS: tell the user what we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:662
-#, c-format
-msgid "Found %i disabled debuginfo repos."
-msgstr ""
-
-#. TRANSLATORS: we're now enabling all the debug sources we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:669
-#, c-format
-msgid "Enabling debugging sources"
-msgstr ""
-
-#. TRANSLATORS: tell the user how many we enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:697
-#, c-format
-msgid "Enabled %i debugging sources."
-msgstr ""
-
-#. TRANSLATORS: we're now finding packages that match in all the repos
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:704
-#, c-format
-msgid "Finding debugging packages"
-msgstr ""
-
-#. TRANSLATORS: we couldn't find the package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
-#, c-format
-msgid "Failed to find the package %s: %s"
-msgstr ""
-
-#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:739
-#, c-format
-msgid "Failed to find the debuginfo package %s: %s"
-msgstr ""
-
-#. TRANSLATORS: no debuginfo packages could be found to be installed
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:767
-#, c-format
-msgid "Found no packages to install."
-msgstr ""
+#. SECURITY:
+#. - Normal users need authentication to install signed packages
+#. from signed repositories, because otherwise the system is
+#. only as secure as the least-secure package available in the
+#. repositories.
+msgid "Install signed package"
+msgstr "Instalo paketë të nënshkruar"
 
-#. TRANSLATORS: tell the user we found some packages, and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:781
-#, c-format
-msgid "Found %i packages:"
-msgstr ""
+#. command line argument, do we ask questions
+msgid "Install the packages without asking for confirmation"
+msgstr "Instalo paketa pa pyetur për ripohim"
 
-#. TRANSLATORS: tell the user we are searching for deps
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:797
-#, c-format
-msgid "Finding packages that depend on these packages"
-msgstr ""
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+msgid "Install untrusted local file"
+msgstr "Instalo kartelë vendore jo të besuar"
 
-#. TRANSLATORS: could not install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:810
-#, c-format
-msgid "Could not find dependent packages: %s"
-msgstr ""
+#. TRANSLATORS: The state of a package
+#. TRANSLATORS: The action of the package, in past tense
+msgid "Installed"
+msgstr "Të instaluara"
 
-#. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:826
-#, c-format
-msgid "Found %i extra packages."
-msgstr ""
+#. TRANSLATORS: The action of the package, in present tense
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Installing"
+msgstr "Po instalohet"
 
-#. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:830
-#, c-format
-msgid "No extra packages required."
-msgstr ""
+#. TRANSLATORS: this is the message we send plymouth to
+#. * advise of the new percentage completion when installing system upgrades
+msgid "Installing System Upgrade"
+msgstr "Po instalohet Përmirësim Sistemi"
 
-#. TRANSLATORS: tell the user we found some packages (and deps), and then list
-#. them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:839
-#, c-format
-msgid "Found %i packages to install:"
-msgstr ""
+#. TRANSLATORS: this is the message we send plymouth to
+#. * advise of the new percentage completion when installing updates
+msgid "Installing Updates"
+msgstr "Po instalohen Përditësime"
 
-#. TRANSLATORS: simulate mode is a testing mode where we quit before the
-#. action
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
-#, c-format
-msgid "Not installing packages in simulate mode"
-msgstr ""
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Installing files"
+msgstr "Po instalohen kartela"
 
-#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:864
-#: ../lib/packagekit-glib2/pk-console-shared.c:337
-#, c-format
 msgid "Installing packages"
-msgstr ""
+msgstr "Po instalohen paketa"
 
-#. TRANSLATORS: could not install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:877
-#, c-format
-msgid "Could not install packages: %s"
-msgstr ""
-
-#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:909
-#, c-format
-msgid "Disabling sources previously enabled"
-msgstr ""
-
-#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed
-#. error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:921
-#, c-format
-msgid "Could not disable the debugging sources: %s"
-msgstr ""
-
-#. TRANSLATORS: we disabled all the debugging repos that we enabled before
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:936
-#, c-format
-msgid "Disabled %i debugging sources."
-msgstr ""
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Installing signature"
+msgstr "Po instalohet nënshkrim"
 
-#. TRANSLATORS: this is the message we send plymouth to
-#. * advise of the new percentage completion
-#: ../contrib/systemd-updates/pk-offline-update.c:169
-msgid "Installing Updates"
-msgstr ""
+#. TRANSLATORS: we've started doing offline system upgrade
+msgid "Installing system upgrade; this could take a while..."
+msgstr "Po instalohet përmirësim sistemi; kjo mund të zgjasë ca…"
 
-#. TRANSLATORS: we've finished doing offline updates
-#: ../contrib/systemd-updates/pk-offline-update.c:213
-msgid "Rebooting after installing updates…"
-msgstr ""
+#. TRANSLATORS: transaction state, installing updates
+msgid "Installing updates"
+msgstr "Po instalohen përditësime"
 
 #. TRANSLATORS: we've started doing offline updates
-#: ../contrib/systemd-updates/pk-offline-update.c:554
-msgid "Installing updates, this could take a while…"
-msgstr ""
-
-#: ../lib/packagekit-glib2/pk-console-shared.c:67
-#, c-format
-msgid "Please enter a number from 1 to %i: "
-msgstr ""
-
-#. TRANSLATORS: more than one package could be found that matched, to follow
-#. is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:235
-msgid "More than one package matches:"
-msgstr ""
-
-#. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:246
-msgid "Please choose the correct package: "
-msgstr ""
+msgid "Installing updates; this could take a while..."
+msgstr "Po instalohen përditësime; kjo mund të zgjasë ca…"
 
-#. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:305
-msgid "Unknown state"
-msgstr ""
-
-#. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:309
-msgid "Starting"
-msgstr ""
+#. TRANSLATORS: details about the update, date the update
+#. * was issued
+msgid "Issued"
+msgstr "Hedhur në qarkullim më"
 
-#. TRANSLATORS: transaction state, the transaction is waiting for another to
-#. complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:313
-msgid "Waiting in queue"
-msgstr ""
+#. TRANSLATORS: the key ID, usually a few hex digits
+msgid "Key ID"
+msgstr "ID kyçi"
 
-#. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:317
-msgid "Running"
-msgstr ""
+#. TRANSLATORS: the timestamp (a bit like a machine readable time)
+msgid "Key Timestamp"
+msgstr "Vulë kohore kyçi"
 
-#. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:321
-msgid "Querying"
-msgstr ""
+#. TRANSLATORS: the key URL
+msgid "Key URL"
+msgstr "URL kyçi"
 
-#. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:325
-msgid "Getting information"
-msgstr ""
+#. TRANSLATORS: the key fingerprint, again, yet more hex
+msgid "Key fingerprint"
+msgstr "Shenja gishtash kyçi"
 
-#. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:329
-msgid "Removing packages"
-msgstr ""
+#. TRANSLATORS: the username of the key
+msgid "Key user"
+msgstr "Përdorues kyçi"
 
-#. TRANSLATORS: transaction state, downloading package files
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:333
-#: ../lib/packagekit-glib2/pk-enum.c:1316
-msgid "Downloading packages"
-msgstr ""
+#. TRANSLATORS: transaction state, loading databases
+msgid "Loading cache"
+msgstr "Po ngarkohet fshehtinë"
 
-#. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:341
-msgid "Refreshing software list"
-msgstr ""
+#. TRANSLATORS: loading package cache so we can search
+msgid "Loading list of packages."
+msgstr "Po ngarkohet listë paketash."
 
-#. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:345
-msgid "Installing updates"
-msgstr ""
+#. TRANSLATORS: the user needs to change media inserted into the computer
+msgid "Media change required"
+msgstr "Lypset ndryshim media"
 
-#. TRANSLATORS: transaction state, removing old packages, and cleaning config
-#. files
-#: ../lib/packagekit-glib2/pk-console-shared.c:349
-msgid "Cleaning up packages"
-msgstr ""
+#. TRANSLATORS: the media label, usually like 'disk-1of3'
+msgid "Media label"
+msgstr "Etiketë media"
 
-#. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:353
-msgid "Obsoleting packages"
-msgstr ""
+#. TRANSLATORS: the type, e.g. DVD, CD, etc
+msgid "Media type"
+msgstr "Lloj media"
 
-#. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:357
-msgid "Resolving dependencies"
-msgstr ""
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Modifying repository"
+msgstr "Po ndryshohet depo"
 
-#. TRANSLATORS: transaction state, checking if we have all the security keys
-#. for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:361
-msgid "Checking signatures"
-msgstr ""
+#. TRANSLATORS: more than one package could be found that matched,
+#. * to follow is a list of possible packages
+msgid "More than one package matches:"
+msgstr "Më shumë se një paketë me përputhje:"
 
-#. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:365
-msgid "Testing changes"
-msgstr ""
+#. TRANSLATORS: this is the name of the parent group
+#. TRANSLATORS: this is the name of the backend
+msgid "Name"
+msgstr "Emër"
 
-#. TRANSLATORS: transaction state, when we're writing to the system package
-#. database
-#: ../lib/packagekit-glib2/pk-console-shared.c:369
-msgid "Committing changes"
-msgstr ""
+#. TRANSLATORS: This where the package has no files
+msgid "No files"
+msgstr "S’ka kartela"
 
-#. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:373
-msgid "Requesting data"
-msgstr ""
+#. TRANSLATORS: there are no updates, so nothing to do
+msgid "No packages require updating to newer versions."
+msgstr "S’ka paketa që lypin përditësime me versione më të rinj."
 
-#. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:377
-msgid "Finished"
-msgstr ""
+#. TRANSLATORS: we couldn't find anything
+msgid "No packages were found"
+msgstr "S’u gjetën paketa"
 
-#. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:381
-msgid "Cancelling"
-msgstr ""
+#. TRANSLATORS: The type of update
+msgid "Normal"
+msgstr "Normale"
 
-#. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:385
-msgid "Downloading repository information"
-msgstr ""
+#. TRANSLATORS: details about the update, any packages that
+#. * this update obsoletes
+msgid "Obsoletes"
+msgstr "Të vjetruara"
 
-#. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:389
-msgid "Downloading list of packages"
-msgstr ""
+#. TRANSLATORS: transaction state, obsoleting old packages
+msgid "Obsoleting packages"
+msgstr "Po kalohen paketa në version më të vjetër"
 
-#. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:393
-msgid "Downloading file lists"
-msgstr ""
+#. TRANSLATORS: The user tried to use an
+#. * unsupported option on the command line
+#, c-format
+msgid "Option '%s' is not supported"
+msgstr "Mundësia %s s’mbulohet"
 
-#. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:397
-msgid "Downloading lists of changes"
-msgstr ""
+#. TRANSLATORS: details about the update, package name and version
+#. TRANSLATORS: the package that is being processed
+#. TRANSLATORS: the package that is not signed by a known key
+#. TRANSLATORS: the package name that was trying to be installed
+msgid "Package"
+msgstr "Paketë"
 
-#. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:401
-msgid "Downloading groups"
-msgstr ""
+#. TRANSLATORS: This a list of details about the package
+msgid "Package description"
+msgstr "Përshkrim pakete"
 
-#. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:405
-msgid "Downloading update information"
-msgstr ""
+#. TRANSLATORS: This a list files contained in the package
+msgid "Package files"
+msgstr "Kartela paketash"
 
-#. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:409
-msgid "Repackaging files"
-msgstr ""
+#. TRANSLATORS: we asked to install a package
+#. * that could not be found in any repo
+msgid "Package not found"
+msgstr "Paketa s’u gjet"
 
-#. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:413
-msgid "Loading cache"
-msgstr ""
+#. TRANSLATORS: program name
+msgid "PackageKit"
+msgstr "PackageKit"
 
-#. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:417
-msgid "Scanning applications"
-msgstr ""
+#. TRANSLATORS: This is the header to the --help menu
+msgid "PackageKit Console Interface"
+msgstr "Ndërfaqe Konsole PackageKit"
 
-#. TRANSLATORS: transaction state, generating a list of packages installed on
-#. the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:421
-msgid "Generating package lists"
-msgstr ""
+#. TRANSLATORS: describing the service that is running
+msgid "PackageKit service"
+msgstr "Shërbim PackageKit"
 
-#. TRANSLATORS: transaction state, when we're waiting for the native tools to
-#. exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:425
-msgid "Waiting for package manager lock"
-msgstr ""
+#. TRANSLATORS: Show the user a list of packages that provide this command
+msgid "Packages providing this file are:"
+msgstr "Paketa që furnizojnë këtë kartelë janë:"
 
-#. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:429
-msgid "Waiting for authentication"
-msgstr ""
+#. TRANSLATORS: this is the parent group
+msgid "Parent"
+msgstr "Mëmë"
 
-#. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:433
-msgid "Updating running applications"
-msgstr ""
+#. TRANSLATORS: the percentage complete of the transaction
+msgid "Percentage"
+msgstr "Përqindje"
 
-#. TRANSLATORS: transaction state, we are checking executable files currently
-#. in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:437
-msgid "Checking applications in use"
-msgstr ""
+#. TRANSLATORS: ask the user to choose a file to run
+msgid "Please choose a command to run"
+msgstr "Ju lutemi, zgjidhni një urdhër për xhirim"
 
-#. TRANSLATORS: transaction state, we are checking for libraries currently in
-#. use
-#: ../lib/packagekit-glib2/pk-console-shared.c:441
-msgid "Checking libraries in use"
-msgstr ""
+#. TRANSLATORS: ask the user to choose a file to install
+msgid "Please choose a package to install"
+msgstr "Ju lutemi, zgjidhni një paketë për instalim"
 
-#. TRANSLATORS: transaction state, we are copying package files before or
-#. after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:445
-msgid "Copying files"
-msgstr ""
+#. TRANSLATORS: This finds out which package in the list to use
+msgid "Please choose the correct package: "
+msgstr "Ju lutemi, zgjidhni paketën e saktë: "
 
-#. TRANSLATORS: turn on all debugging
-#: ../lib/packagekit-glib2/pk-debug.c:140
-msgid "Show debugging information for all files"
-msgstr ""
+#, c-format
+msgid "Please enter a number from 1 to %i: "
+msgstr "Ju lutemi, jepni një numër nga 1 në %i: "
 
-#: ../lib/packagekit-glib2/pk-debug.c:208
-msgid "Debugging Options"
-msgstr ""
+#. TRANSLATORS: ask the user to insert the media
+msgid "Please insert the correct media"
+msgstr "Ju lutemi, futni median e saktë"
 
-#: ../lib/packagekit-glib2/pk-debug.c:208
-msgid "Show debugging options"
-msgstr ""
+#. TRANSLATORS: a package needs to restart the session (due to security)
+msgid "Please logout and login to complete the update as important security updates have been installed."
+msgstr "Ju lutemi, bëni daljen dhe rihyni në llogari, që të plotësohet përditësimi, ngaqë janë instaluar përditësime të rëndësishme sigurie."
 
-#. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-enum.c:1059
-msgid "Trivial"
-msgstr ""
+#. TRANSLATORS: a package needs to restart the session
+msgid "Please logout and login to complete the update."
+msgstr "Ju lutemi, bëni daljen dhe rihyni në llogari, që të plotësohet përditësimi."
 
-#. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-enum.c:1063
-msgid "Normal"
-msgstr ""
+#. TRANSLATORS: a package needs to restart their system (due to security)
+msgid "Please restart the computer to complete the update as important security updates have been installed."
+msgstr "Ju lutemi rinisni kompjuterin, që të plotësohet përditësimi, ngaqë janë instaluar përditësime të rëndësishme sigurie."
 
-#. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-enum.c:1067
-msgid "Important"
-msgstr ""
+#. TRANSLATORS: a package needs to restart their system
+msgid "Please restart the computer to complete the update."
+msgstr "Ju lutemi rinisni kompjuterin, që të plotësohet përditësimi."
 
-#. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-enum.c:1071
-msgid "Security"
-msgstr ""
+#. command line argument, do we just download or apply changes
+msgid "Prepare the transaction by downloading packages only"
+msgstr "Përgatite transaksionin vetëm duke shkarkuar paketa"
 
-#. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-enum.c:1075
-msgid "Bug fix"
-msgstr ""
+#. TRANSLATORS: There follows a list of packages downloaded and ready
+#. * to be updated
+msgid "Prepared updates:"
+msgstr "Përditësime të përgatitura:"
 
-#. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-enum.c:1079
-msgid "Enhancement"
-msgstr ""
+#. TRANSLATORS: ask the user if the proposed changes are okay
+msgid "Proceed with changes?"
+msgstr "Të vazhdohet me ndryshimet?"
 
-#. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-enum.c:1083
-msgid "Blocked"
-msgstr ""
+#. TRANSLATORS: transaction state, is querying data
+msgid "Querying"
+msgstr "Po kërkohet"
 
-#. TRANSLATORS: The state of a package
-#. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-enum.c:1088
-#: ../lib/packagekit-glib2/pk-enum.c:1175
-msgid "Installed"
-msgstr ""
+#. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
+msgid "Real name"
+msgstr "Emër i vërtetë"
 
-#. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-enum.c:1093
-msgid "Available"
-msgstr ""
+#. TRANSLATORS: we've finished doing offline updates
+msgid "Rebooting after installing updates…"
+msgstr "Po bëhet rinisje, pas instalimit të përditësimeve…"
 
-#. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1118
-msgid "Downloading"
-msgstr ""
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+msgid "Refresh system repositories"
+msgstr "Rifresko depo sistemi"
 
-#. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1122
-msgid "Updating"
-msgstr ""
+#. TRANSLATORS: command description
+msgid "Refresh the cache"
+msgstr "Rifreskoni fshehtinën"
 
-#. TRANSLATORS: The action of the package, in present tense
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1126
-#: ../lib/packagekit-glib2/pk-enum.c:1260
-msgid "Installing"
-msgstr ""
+#. TRANSLATORS: command description
+msgid "Refresh the cache (forced)"
+msgstr "Rifresko fshehtinën (e detyruar)"
 
-#. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1130
-#: ../lib/packagekit-glib2/pk-enum.c:1256
-msgid "Removing"
-msgstr ""
+msgid "Refreshing cache"
+msgstr "Po rifreskohet fshehtina"
 
-#. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1134
-msgid "Cleaning up"
-msgstr ""
+#. TRANSLATORS: transaction state, refreshing internal lists
+msgid "Refreshing software list"
+msgstr "Po rifreskohet listë software-i"
 
-#. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1138
-msgid "Obsoleting"
-msgstr ""
+#. TRANSLATORS: The action of the package, in past tense
+msgid "Reinstalled"
+msgstr "U riinstalua"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1142
 msgid "Reinstalling"
-msgstr ""
+msgstr "Po riinstalohet"
 
-#. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-enum.c:1167
-msgid "Downloaded"
-msgstr ""
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#. TRANSLATORS: command description
+msgid "Remove package"
+msgstr "Hiqe paketën"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-enum.c:1179
 msgid "Removed"
-msgstr ""
-
-#. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-enum.c:1183
-msgid "Cleaned up"
-msgstr ""
+msgstr "U hoq"
 
-#. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-enum.c:1187
-msgid "Obsoleted"
-msgstr ""
+#. TRANSLATORS: The action of the package, in present tense
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Removing"
+msgstr "Po hiqet"
 
-#. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-enum.c:1191
-msgid "Reinstalled"
-msgstr ""
+#. TRANSLATORS: transaction state, removing packages
+msgid "Removing packages"
+msgstr "Po hiqen paketa"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1216
-msgid "Unknown role type"
-msgstr ""
+msgid "Removing repository"
+msgstr "Po hiqet depo"
 
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1220
-msgid "Getting dependencies"
-msgstr ""
+#. TRANSLATORS: transaction state, repackaging delta files
+msgid "Repackaging files"
+msgstr "Po ripaketohen kartela"
 
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1224
-msgid "Getting update details"
-msgstr ""
+#. SECURITY:
+#. - Normal users require admin authentication to repair the system
+#. since this can make the system unbootable or stop other
+#. applications from working.
+msgid "Repair System"
+msgstr "Ndreqe Sistemin"
 
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1228
-msgid "Getting details"
-msgstr ""
+#. TRANSLATORS: transaction state, requesting data from a server
+msgid "Requesting data"
+msgstr "Po kërkohen të dhëna"
 
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1232
-msgid "Getting requires"
-msgstr ""
+#. TRANSLATORS: transaction state, checking the transaction before we do it
+msgid "Resolving dependencies"
+msgstr "Po zgjidhen varësitë"
 
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1236
-msgid "Getting updates"
-msgstr ""
+#. TRANSLATORS: details about the update, if the package
+#. * requires a restart
+msgid "Restart"
+msgstr "Rinise"
 
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1240
-msgid "Searching by details"
-msgstr ""
+#. TRANSLATORS: the results from the transaction
+msgid "Results:"
+msgstr "Përfundime:"
 
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1244
-msgid "Searching by file"
-msgstr ""
+#. TRANSLATORS: this is the transactions role, e.g. "update-packages"
+msgid "Role"
+msgstr "Rol"
 
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1248
-msgid "Searching groups"
-msgstr ""
+#. TRANSLATORS: Ask the user if we should run the similar command
+msgid "Run similar command:"
+msgstr "Xhironi urdhër të ngjashëm:"
 
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1252
-msgid "Searching by name"
-msgstr ""
+#. TRANSLATORS: transaction state, just started
+msgid "Running"
+msgstr "Po xhiron"
 
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1264
-msgid "Installing files"
-msgstr ""
+#. TRANSLATORS: transaction state, scanning for running processes
+msgid "Scanning applications"
+msgstr "Po skanohen aplikacione"
 
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1268
-msgid "Refreshing cache"
-msgstr ""
+#. TRANSLATORS: command description
+msgid "Search by details"
+msgstr "Kërkoni sipas hollësish"
 
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1272
-msgid "Updating packages"
-msgstr ""
+#. TRANSLATORS: command description
+msgid "Search by files"
+msgstr "Kërkoni sipas kartelash"
 
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1276
-msgid "Canceling"
-msgstr ""
+#. TRANSLATORS: command description
+msgid "Search by names"
+msgstr "Kërkoni sipas emrash"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1280
-msgid "Getting repositories"
-msgstr ""
+msgid "Searching by details"
+msgstr "Po kërkohet sipas hollësish"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1284
-msgid "Enabling repository"
-msgstr ""
+msgid "Searching by file"
+msgstr "Po kërkohet sipas kartelash"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1288
-msgid "Setting data"
-msgstr ""
+msgid "Searching by name"
+msgstr "Po kërkohet sipas emrash"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1292
-msgid "Resolving"
-msgstr ""
+msgid "Searching groups"
+msgstr "Po kërkohet për grupe"
 
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1296
-msgid "Getting file list"
-msgstr ""
+#. TRANSLATORS: The type of update
+msgid "Security"
+msgstr "Siguri"
 
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1300
-msgid "Getting provides"
-msgstr ""
+#. TRANSLATORS: a package requires the session to be restarted
+#. * due to a security update
+msgid "Session restart (security) required:"
+msgstr "Rinisje sistemi (siguri) e kërkuar nga:"
 
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1304
-msgid "Installing signature"
-msgstr ""
+#. TRANSLATORS: a package requires the session to be restarted
+msgid "Session restart required:"
+msgstr "Lyp rinisjeje sesioni:"
 
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1308
-msgid "Getting packages"
-msgstr ""
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+msgid "Set network proxy"
+msgstr "Ujdisni ndërmjetës rrjeti"
 
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1312
-msgid "Accepting EULA"
-msgstr ""
+#. TRANSLATORS: command description
+msgid "Set repository options"
+msgstr "Rregulloni mundësi depoje"
 
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1320
-msgid "Getting upgrades"
-msgstr ""
+#. TRANSLATORS: command line argument, use a filter to narrow down results
+msgid "Set the filter, e.g. installed"
+msgstr "Caktoni filtrin, p.sh., e instaluar"
 
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1324
-msgid "Getting categories"
-msgstr ""
+#. TRANSLATORS: turn on all debugging
+msgid "Show debugging information for all files"
+msgstr "Shfaq hollësi diagnostikimi për krejt kartelat"
 
-#. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-enum.c:1328
-msgid "Getting transactions"
-msgstr ""
+msgid "Show debugging options"
+msgstr "Shfaq mundësi diagnostikimi"
 
-#. TRANSLATORS: ask the user if they are comfortable installing insecure
-#. packages
-#: ../lib/packagekit-glib2/pk-task-text.c:67
-msgid "Do you want to allow installing of unsigned software?"
-msgstr ""
+#. TRANSLATORS: command line argument, just show the version string
+msgid "Show the program version and exit"
+msgstr "Shfaq versioni programi dhe dil"
 
-#. TRANSLATORS: tell the user we've not done anything
-#: ../lib/packagekit-glib2/pk-task-text.c:72
-msgid "The unsigned software will not be installed."
-msgstr ""
+#. TRANSLATORS: show version
+msgid "Show version and exit"
+msgstr "Shfaq versioni dhe dil"
 
-#. TRANSLATORS: the package repository is signed by a key that is not
-#. recognised
-#: ../lib/packagekit-glib2/pk-task-text.c:121
-msgid "Software source signature required"
-msgstr ""
+#. TRANSLATORS: we've finished doing offline updates
+msgid "Shutting down after installing updates…"
+msgstr "Po bëhet fikja, pas instalimit të përditësimeve…"
 
-#. TRANSLATORS: the package repository name
-#: ../lib/packagekit-glib2/pk-task-text.c:127
-msgid "Software source name"
-msgstr ""
+#. TRANSLATORS: tell the user what we think the command is
+msgid "Similar command is:"
+msgstr "Urdhër i ngjashëm është:"
 
-#. TRANSLATORS: the key URL
-#: ../lib/packagekit-glib2/pk-task-text.c:130
-msgid "Key URL"
-msgstr ""
+#. TRANSLATORS: show the user a list of commands that they could have meant
+#. TRANSLATORS: show the user a list of commands we could run
+msgid "Similar commands are:"
+msgstr "Urdhra të ngjashëm janë:"
 
-#. TRANSLATORS: the username of the key
-#: ../lib/packagekit-glib2/pk-task-text.c:133
-msgid "Key user"
-msgstr ""
+#. TRANSLATORS: the package repository name
+msgid "Software source name"
+msgstr "Emër burimi software-i"
 
-#. TRANSLATORS: the key ID, usually a few hex digits
-#: ../lib/packagekit-glib2/pk-task-text.c:136
-msgid "Key ID"
-msgstr ""
+#. TRANSLATORS: the package repository is signed by a key that is not
+#. recognised
+msgid "Software source signature required"
+msgstr "Lypset nënshkrim burimi software-i"
 
-#. TRANSLATORS: the key fingerprint, again, yet more hex
-#: ../lib/packagekit-glib2/pk-task-text.c:139
-msgid "Key fingerprint"
-msgstr ""
+#. TRANSLATORS: transaction state, the daemon is in the process of starting
+msgid "Starting"
+msgstr "Po niset"
 
-#. TRANSLATORS: the timestamp (a bit like a machine readable time)
-#: ../lib/packagekit-glib2/pk-task-text.c:142
-msgid "Key Timestamp"
-msgstr ""
+#. TRANSLATORS: details about the update, the ongoing state
+#. * of the update
+msgid "State"
+msgstr "Gjendje"
 
-#. TRANSLATORS: ask the user if they want to import
-#: ../lib/packagekit-glib2/pk-task-text.c:155
-msgid "Do you accept this signature?"
-msgstr ""
+#. TRANSLATORS: the status of the transaction (e.g. downloading)
+msgid "Status"
+msgstr "Gjendje"
 
-#. TRANSLATORS: tell the user we've not done anything
-#: ../lib/packagekit-glib2/pk-task-text.c:160
-msgid "The signature was not accepted."
-msgstr ""
+#. these are commands we can use with pkcon
+msgid "Subcommands:"
+msgstr "Nënurdhra:"
 
-#. TRANSLATORS: this is another name for a software licence that has to be
-#. read before installing
-#: ../lib/packagekit-glib2/pk-task-text.c:203
-msgid "End user licence agreement required"
-msgstr ""
+#. TRANSLATORS: this is if the transaction succeeded or not
+msgid "Succeeded"
+msgstr "Doli me sukses"
 
-#. TRANSLATORS: the EULA text itself (long and boring)
-#: ../lib/packagekit-glib2/pk-task-text.c:212
-msgid "Agreement"
-msgstr ""
+#. TRANSLATORS: Show the user a list of packages that they can install to
+#. provide this command
+msgid "Suitable packages are:"
+msgstr "Paketa të përshtatshme janë:"
 
-#. TRANSLATORS: ask the user if they've read and accepted the EULA
-#: ../lib/packagekit-glib2/pk-task-text.c:221
-msgid "Do you accept this agreement?"
-msgstr ""
+#. TRANSLATORS: this is any summary text describing the upgrade
+#. TRANSLATORS: this is the summary of the group
+msgid "Summary"
+msgstr "Përmbledhje"
 
-#. TRANSLATORS: tell the user we've not done anything
-#: ../lib/packagekit-glib2/pk-task-text.c:226
-msgid "The agreement was not accepted."
-msgstr ""
+#. TRANSLATORS: a package requires the system to be restarted
+#. * due to a security update
+msgid "System restart (security) required by:"
+msgstr "Rinisje sistemi (siguri) e kërkuar nga:"
 
-#. TRANSLATORS: the user needs to change media inserted into the computer
-#: ../lib/packagekit-glib2/pk-task-text.c:265
-msgid "Media change required"
-msgstr ""
+#. TRANSLATORS: a package requires the system to be restarted
+msgid "System restart required by:"
+msgstr "Rinisje sistemi e kërkuar nga:"
 
-#. TRANSLATORS: the type, e.g. DVD, CD, etc
-#: ../lib/packagekit-glib2/pk-task-text.c:268
-msgid "Media type"
-msgstr ""
+#. TRANSLATORS: this is the time the transaction was started in system
+#. timezone
+msgid "System time"
+msgstr "Kohë e sistemit"
 
-#. TRANSLATORS: the media label, usually like 'disk-1of3'
-#: ../lib/packagekit-glib2/pk-task-text.c:271
-msgid "Media label"
-msgstr ""
+#. TRANSLATORS: transaction state, when we're doing a test transaction
+msgid "Testing changes"
+msgstr "Po testohen ndryshimet"
 
 #. TRANSLATORS: the media description, usually like 'Fedora 12 disk 5'
-#: ../lib/packagekit-glib2/pk-task-text.c:274
 msgid "Text"
-msgstr ""
+msgstr "Tekst"
 
-#. TRANSLATORS: ask the user to insert the media
-#: ../lib/packagekit-glib2/pk-task-text.c:280
-msgid "Please insert the correct media"
-msgstr ""
+#. TRANSLATORS: tell the user we've not done anything
+msgid "The agreement was not accepted."
+msgstr "Marrëveshja s’u pranua."
 
 #. TRANSLATORS: tell the user we've not done anything as they are lazy
-#: ../lib/packagekit-glib2/pk-task-text.c:285
 msgid "The correct media was not inserted."
-msgstr ""
+msgstr "S’u fut media e saktë."
 
-#. TRANSLATORS: When processing, we might have to remove other dependencies
-#: ../lib/packagekit-glib2/pk-task-text.c:300
-msgid "The following packages have to be removed:"
-msgstr ""
+#. TRANSLATORS: This is when the daemon crashed, and we are up
+#. * shit creek without a paddle
+msgid "The daemon crashed mid-transaction!"
+msgstr "Demoni u vithis në mes të transaksionit!"
+
+#. TRANSLATORS: The user specified
+#. * an incorrect filter
+msgid "The filter specified was invalid"
+msgstr "Filtri i dhënë qe i pavlefshëm"
+
+#. TRANSLATORS: When processing, untrusted and non-verified packages may be
+#. encountered
+msgid "The following packages are untrusted:"
+msgstr "Paketat vijuese s’janë të besuara:"
+
+#. TRANSLATORS: When processing, we might have to downgrade other dependencies
+msgid "The following packages have to be downgraded:"
+msgstr "Paketat vijuese duhet të kalohen në version më të vjetër:"
 
 #. TRANSLATORS: When processing, we might have to install other dependencies
-#: ../lib/packagekit-glib2/pk-task-text.c:305
 msgid "The following packages have to be installed:"
-msgstr ""
+msgstr "Paketat vijuese duhet të instalohen:"
 
-#. TRANSLATORS: When processing, we might have to update other dependencies
-#: ../lib/packagekit-glib2/pk-task-text.c:310
-msgid "The following packages have to be updated:"
-msgstr ""
+#. TRANSLATORS: When processing, we might have to obsolete other dependencies
+msgid "The following packages have to be obsoleted:"
+msgstr "Paketat vijuese duhet të bëhen të vjetruara:"
 
 #. TRANSLATORS: When processing, we might have to reinstall other dependencies
-#: ../lib/packagekit-glib2/pk-task-text.c:315
 msgid "The following packages have to be reinstalled:"
-msgstr ""
+msgstr "Paketat vijuese duhet të riinstalohen:"
 
-#. TRANSLATORS: When processing, we might have to downgrade other dependencies
-#: ../lib/packagekit-glib2/pk-task-text.c:320
-msgid "The following packages have to be downgraded:"
-msgstr ""
+#. TRANSLATORS: When processing, we might have to remove other dependencies
+msgid "The following packages have to be removed:"
+msgstr "Paketat vijuese duhet të hiqen:"
 
-#. TRANSLATORS: When processing, untrusted and non-verified packages may be
-#. encountered
-#: ../lib/packagekit-glib2/pk-task-text.c:325
-msgid "The following packages are untrusted:"
-msgstr ""
+#. TRANSLATORS: When processing, we might have to update other dependencies
+msgid "The following packages have to be updated:"
+msgstr "Paketat vijuese duhet të përditësohen:"
 
-#. TRANSLATORS: ask the user if the proposed changes are okay
-#: ../lib/packagekit-glib2/pk-task-text.c:385
-msgid "Proceed with changes?"
-msgstr ""
+#. TRANSLATORS: command line argument, just output without fancy formatting
+msgid "The maximum metadata cache age. Use -1 for 'never'."
+msgstr "Mosha maksimum për fshehtinë tejtëdhënash. Përdorni -1 për 'kurrë'."
+
+#. TRANSLATORS: tell the user what package provides the command
+msgid "The package providing this file is:"
+msgstr "Paketa që furnizon këtë kartelë është:"
+
+#. TRANSLATORS: The network settings could not be sent
+msgid "The proxy could not be set"
+msgstr "Ndërmjetësi s’u ujdis dot"
+
+#. TRANSLATORS: tell the user we've not done anything
+msgid "The signature was not accepted."
+msgstr "Nënshkrimi s’u pranua."
+
+#. TRANSLATORS: is not GPG signed
+msgid "The software is not from a trusted source."
+msgstr "Software-i s’është prej një burimi të besuar."
 
 #. TRANSLATORS: tell the user we didn't do anything
-#: ../lib/packagekit-glib2/pk-task-text.c:390
 msgid "The transaction did not proceed."
-msgstr ""
+msgstr "Transaksioni s’u krye."
 
-#. SECURITY:
-#. - Normal users are allowed to cancel their own task without
-#. authentication, but a different user id needs the admin password
-#. to cancel another users task.
-#. 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
-msgid "Cancel foreign task"
-msgstr ""
+#. TRANSLATORS: the transaction failed in a way we could
+#. * not expect
+#. TRANSLATORS: the transaction failed in a way we could not expect
+msgid "The transaction failed"
+msgstr "Transaksioni dështoi"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
-msgid ""
-"Authentication is required to cancel a task that was not started by yourself"
-msgstr ""
+#. TRANSLATORS: tell the user we've not done anything
+msgid "The unsigned software will not be installed."
+msgstr "Software-i i panënshkruar s’do të instalohet."
 
-#. SECURITY:
-#. - Normal users do not need authentication to install signed packages
-#. from signed repositories, as this cannot exploit a system.
-#. - Paranoid users (or parents!) can change this to 'auth_admin' or
-#. 'auth_admin_keep'.
-#. 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
-msgid "Install signed package"
-msgstr ""
+#. TRANSLATORS: the user asked to update everything,
+#. * but there is nothing that can be updated
+msgid "There are no packages to update."
+msgstr "S’ka paketa për përditësim."
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
-msgid "Authentication is required to install a package"
-msgstr ""
+#. TRANSLATORS: print a message when there are no updates
+msgid "There are no updates available at this time."
+msgstr "Tani s’ka përditësime gati."
+
+msgid "There are no upgrades available at this time."
+msgstr "Tani s’ka përmirësime gati."
+
+#. TRANSLATORS: There was an error getting the list
+#. * of files for the package. The detailed error follows
+#. TRANSLATORS: There was an error getting the
+#. * dependencies for the package. The detailed error follows
+#. TRANSLATORS: There was an error getting the
+#. * details about the package. The detailed error follows
+#. TRANSLATORS: The package name was not found in
+#. * any software repositories. The detailed error follows
+#, c-format
+msgid "This tool could not find all the packages: %s"
+msgstr "Ky mjet s’gjeti dot krejt paketat: %s"
+
+#. TRANSLATORS: There was an error finding a package
+#. * for installation. The detailed error follows.
+#, c-format
+msgid "This tool could not find any available package: %s"
+msgstr "Ky mjet s’gjeti dot ndonjë paketë të gatshme: %s"
+
+#. TRANSLATORS: There was an error getting the list
+#. * of files for the package. The detailed error follows
+#, c-format
+msgid "This tool could not find the installed package: %s"
+msgstr "Ky mjet s’gjeti dot paketën e instaluar: %s"
+
+#. TRANSLATORS: There was an error getting the list
+#. * of files for the package. The detailed error follows
+#, c-format
+msgid "This tool could not find the package: %s"
+msgstr "Ky mjet s’gjeti dot paketën: %s"
+
+#. TRANSLATORS: this is the time since this role was used
+msgid "Time since"
+msgstr "Kohë që prej atëherë"
+
+#. TRANSLATORS: this is an atomic transaction
+#. TRANSLATORS: the role is the point of the transaction,
+#. * e.g. update-packages
+msgid "Transaction"
+msgstr "Transaksion"
 
 #. SECURITY:
-#. - Normal users require admin authentication to install untrusted or
-#. unrecognised packages, as allowing users to do this without a
-#. password would be a massive security hole.
-#. - This is not retained as each package should be authenticated.
-#. 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
-msgid "Install untrusted local file"
-msgstr ""
+#. - Normal users are able to ask updates to be installed at
+#. early boot time without a password.
+#. SECURITY:
+#. - Normal users require admin authentication to upgrade the system
+#. to a new distribution since this can make the system unbootable or
+#. stop other applications from working.
+msgid "Trigger offline updates"
+msgstr "Shkakto përditësim pa qenë në linjë"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:23
-msgid "Authentication is required to install an untrusted package"
-msgstr ""
+#. TRANSLATORS: The type of update
+msgid "Trivial"
+msgstr "Triviale"
 
 #. SECURITY:
 #. - Normal users require admin authentication to add signing keys.
 #. - This implies adding an explicit trust, and should not be granted
 #. without a secure authentication.
 #. - This is not kept as each package should be authenticated.
-#. 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:30
-msgid "Trust a key used for signing packages"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:31
-msgid ""
-"Authentication is required to consider a key used for signing packages as "
-"trusted"
-msgstr ""
-
-#. SECURITY:
-#. - Normal users do not require admin authentication to accept new
-#. licence agreements.
-#. - Change this to 'auth_admin' for environments where users should not
-#. be given the option to make legal decisions.
-#. 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:38
-msgid "Accept EULA"
-msgstr ""
+msgid "Trust a key used for signing software"
+msgstr "Besoni një kyç të përdorur për nënshkrim software-i"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:39
-msgid "Authentication is required to accept a EULA"
-msgstr ""
+#. TRANSLATORS: this is type of update, stable or testing
+msgid "Type"
+msgstr "Lloj"
 
-#. SECURITY:
-#. - Normal users require admin authentication to remove packages as
-#. this can make the system unbootable or stop other applications from
-#. working.
-#. - Be sure to close the tool used to remove the packages after the
-#. admin authentication has been obtained, otherwise packages can still
-#. be removed. If this is not possible, change this authentication to
-#. 'auth_admin'.
-#. 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:49
-msgid "Remove package"
-msgstr ""
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Unknown role type"
+msgstr "Lloj roli i panjohur"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:50
-msgid "Authentication is required to remove packages"
-msgstr ""
+#. TRANSLATORS: This is when the transaction status is not known
+msgid "Unknown state"
+msgstr "Gjendje e panjohur"
 
 #. SECURITY:
 #. - Normal users do not require admin authentication to update the
@@ -1651,171 +1235,81 @@ msgstr ""
 #. to update the system when unattended.
 #. - Changing this to anything other than 'yes' will break unattended
 #. updates.
-#. 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:58
-msgid "Update packages"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:59
-msgid "Authentication is required to update packages"
-msgstr ""
-
-#. SECURITY:
-#. - Normal users require admin authentication to enable or disable
-#. software sources as this can be used to enable new updates or
-#. install different versions of software.
-#. 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:65
-msgid "Change software source parameters"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:66
-msgid "Authentication is required to change software source parameters"
-msgstr ""
+msgid "Update software"
+msgstr "Përditëso software"
 
-#. SECURITY:
-#. - Normal users do not require admin authentication to refresh the
-#. cache, as this doesn't actually install or remove software.
-#. 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:71
-msgid "Refresh system sources"
-msgstr ""
+#. TRANSLATORS: details about the update, any description of
+#. * the update
+msgid "Update text"
+msgstr "Tekst përditësimi"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:72
-msgid "Authentication is required to refresh the system sources"
-msgstr ""
+#. TRANSLATORS: details about the update, date the update
+#. * was updated
+#. TRANSLATORS: The action of the package, in past tense
+msgid "Updated"
+msgstr "Përditësuar më"
 
-#. SECURITY:
-#. - Normal users do not require admin authentication to set the proxy
-#. used for downloading packages.
-#. 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:77
-msgid "Set network proxy"
-msgstr ""
+#. TRANSLATORS: details about the update, any packages that
+#. * this update updates
+msgid "Updates"
+msgstr "Përditësime"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:78
-msgid ""
-"Authentication is required to set the network proxy used for downloading "
-"packages"
-msgstr ""
+#. TRANSLATORS: The action of the package, in present tense
+msgid "Updating"
+msgstr "Po përditësohet"
 
-#. SECURITY:
-#. - Normal users require admin authentication to rebind a driver
-#. so that it works after we install firmware.
-#. - This should not be set to 'yes' as unprivileged users could then
-#. try to rebind drivers in use, for instance security authentication
-#. devices.
-#. 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:86
-msgid "Reload a device"
-msgstr ""
+#. TRANSLATORS: The role of the transaction, in present tense
+msgid "Updating packages"
+msgstr "Po përditësohen paketa"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:87
-msgid "Authentication is required to reload the device with a new driver"
-msgstr ""
+#. TRANSLATORS: transaction state, we are updating the list of processes
+msgid "Updating running applications"
+msgstr "Po përditësohen aplikacione që xhirojnë"
 
 #. SECURITY:
 #. - Normal users require admin authentication to upgrade the disto as
 #. this can make the system unbootable or stop other applications from
 #. working.
-#. 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:93
 msgid "Upgrade System"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:94
-msgid "Authentication is required to upgrade the operating system"
-msgstr ""
-
-#. SECURITY:
-#. - Normal users require admin authentication to repair the system
-#. since this can make the system unbootable or stop other
-#. applications from working.
-#. 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:100
-msgid "Repair System"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:101
-msgid "Authentication is required to repair the installed software"
-msgstr ""
-
-#. SECURITY:
-#. - Normal users are able to ask updates to be installed at
-#. early boot time without a password.
-#. 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:106
-msgid "Trigger offline updates"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:107
-msgid "Authentication is required to trigger offline updates"
-msgstr ""
+msgstr "Përmirëso Sistemin"
 
-#. SECURITY:
-#. - Normal users are able to clear the updates message that is
-#. shown after an updates are applied at boot time.
-#. 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:112
-msgid "Clear offline update message"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:113
-msgid "Authentication is required to clear the offline updates message"
-msgstr ""
-
-#. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:188
-msgid "Packaging backend to use, e.g. dummy"
-msgstr ""
-
-#. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:191
-msgid "Disable the idle timer"
-msgstr ""
-
-#. TRANSLATORS: show version
-#: ../src/pk-main.c:194
-msgid "Show version and exit"
-msgstr ""
-
-#. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:197
-msgid "Exit after a small delay"
-msgstr ""
+#. TRANSLATORS: this is the user ID of the user that started the action
+msgid "User ID"
+msgstr "ID Përdoruesi"
 
-#. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:200
-msgid "Exit after the engine has loaded"
-msgstr ""
+#. TRANSLATORS: this is the username, e.g. hughsie
+msgid "Username"
+msgstr "Emër përdoruesi"
 
-#. TRANSLATORS: don't unset environment variables, used for debugging
-#: ../src/pk-main.c:203
-msgid "Don't clear environment on startup"
-msgstr ""
+#. TRANSLATORS: details about the update, the vendor URLs
+#. TRANSLATORS: the vendor (e.g. vmware) that is providing the EULA
+msgid "Vendor"
+msgstr "Tregtues"
 
-#. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:218
-msgid "PackageKit service"
-msgstr ""
+#. TRANSLATORS: transaction state, waiting for user to type in a password
+msgid "Waiting for authentication"
+msgstr "Po pritet për mirëfilltësim"
 
-#. TRANSLATORS: is not GPG signed
-#: ../src/pk-transaction.c:2921
-msgid "The software is not from a trusted source."
-msgstr ""
+#. TRANSLATORS: transaction state, when we're waiting for the native tools to
+#. exit
+msgid "Waiting for package manager lock"
+msgstr "Po pritet për kyçje përgjegjësi paketash"
 
-#: ../src/pk-transaction.c:2929
-msgid "Do not update this package unless you are sure it is safe to do so."
-msgstr ""
+#. TRANSLATORS: waiting for native lock
+msgid "Waiting for package manager lock."
+msgstr "Po pritet për kyçje përgjegjësi paketash."
 
-#: ../src/pk-transaction.c:2930
-msgid "Do not update these packages unless you are sure it is safe to do so."
-msgstr ""
+#. TRANSLATORS: transaction state, the transaction is waiting for another to
+#. complete
+msgid "Waiting in queue"
+msgstr "Pritje në radhë"
 
-#: ../src/pk-transaction.c:2940
-msgid "Do not install this package unless you are sure it is safe to do so."
-msgstr ""
+#. TRANSLATORS: The user did not provide a distro name
+msgid "You need to specify a list file to create"
+msgstr "Duhet të përcaktoni një kartelë liste që të krijohet"
 
-#: ../src/pk-transaction.c:2941
-msgid "Do not install these packages unless you are sure it is safe to do so."
-msgstr ""
+#. TRANSLATORS: the prefix of all the output telling the user
+#. * why it's not executing. NOTE: this is lowercase to mimic
+#. * the style of bash itself -- apologies
+msgid "command not found"
+msgstr "s’u gjet urdhër"
diff --git a/po/sr.po b/po/sr.po
index a550f17d2..2ee1ddcb1 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Serbian (http://www.transifex.com/freedesktop/packagekit/language/sr/)\n"
+"Language-Team: Serbian (http://app.transifex.com/freedesktop/packagekit/language/sr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/sr at latin.po b/po/sr at latin.po
index e58df303d..8698e99ad 100644
--- a/po/sr at latin.po
+++ b/po/sr at latin.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Serbian (Latin) (http://www.transifex.com/freedesktop/packagekit/language/sr@latin/)\n"
+"Language-Team: Serbian (Latin) (http://app.transifex.com/freedesktop/packagekit/language/sr@latin/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/sv.po b/po/sv.po
index 6d42678b9..bce36525a 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -3,7 +3,7 @@
 # This file is distributed under the same license as the PackageKit package.
 #
 # Translators:
-# Anders Jonsson <transifex at norsjovallen.se>, 2014,2017,2019
+# Anders Jonsson <transifex at norsjovallen.se>, 2014,2017,2019,2022
 # Daniel Nylander <po at danielnylander.se>, 2008-2011
 # Josef Andersson <josef.andersson at fripost.org>, 2017-2018
 # Luna Jernberg <bittin at cafe8bitar.se>, 2022
@@ -14,7 +14,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Swedish (http://www.transifex.com/freedesktop/packagekit/language/sv/)\n"
+"Language-Team: Swedish (http://app.transifex.com/freedesktop/packagekit/language/sv/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -308,6 +308,9 @@ msgstr "Kommando hittades ej, giltiga kommando är:"
 msgid "Committing changes"
 msgstr "Verkställer ändringar"
 
+msgid "Config file was not found."
+msgstr "Konfigurationsfil hittades inte."
+
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
 msgid "Copying files"
@@ -470,10 +473,20 @@ msgstr "Misslyckades med att installera paket"
 msgid "Failed to launch:"
 msgstr "Misslyckades med att starta:"
 
+#. TRANSLATORS: The placeholder is an error message
+#, c-format
+msgid "Failed to load config file: %s"
+msgstr "Misslyckades med att läsa in konfigurationsfil: %s"
+
 #. TRANSLATORS: cannot load the backend the user specified
 msgid "Failed to load the backend"
 msgstr "Misslyckades med att läsa in bakänden"
 
+#. TRANSLATORS: cannot load the backend the user specified
+#, c-format
+msgid "Failed to load the backend: %s"
+msgstr "Misslyckades med att läsa in bakänden: %s"
+
 #. TRANSLATORS: probably not yet installed
 msgid "Failed to load the config file"
 msgstr "Misslyckades med att läsa in konfigurationsfilen"
@@ -486,6 +499,12 @@ msgstr "Misslyckades med att tolka argument"
 msgid "Failed to parse command line"
 msgstr "Misslyckades med att tolka kommandoraden"
 
+#. TRANSLATORS: The placeholder is an error message.
+#. * `auto` is a potential value of the DefaultBackend= configuration key.
+#, c-format
+msgid "Failed to resolve auto: %s"
+msgstr "Misslyckades med att slå upp auto: %s"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
 msgid "Failed to search for file"
 msgstr "Misslyckades med att söka efter filen"
diff --git a/po/ta.po b/po/ta.po
index 44d4bf3c7..6c0b21f28 100644
--- a/po/ta.po
+++ b/po/ta.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Tamil (http://www.transifex.com/freedesktop/packagekit/language/ta/)\n"
+"Language-Team: Tamil (http://app.transifex.com/freedesktop/packagekit/language/ta/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/te.po b/po/te.po
index 12558812b..14812c090 100644
--- a/po/te.po
+++ b/po/te.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Telugu (http://www.transifex.com/freedesktop/packagekit/language/te/)\n"
+"Language-Team: Telugu (http://app.transifex.com/freedesktop/packagekit/language/te/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/th.po b/po/th.po
index 55d826de7..abb1f876e 100644
--- a/po/th.po
+++ b/po/th.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Thai (http://www.transifex.com/freedesktop/packagekit/language/th/)\n"
+"Language-Team: Thai (http://app.transifex.com/freedesktop/packagekit/language/th/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/tr.po b/po/tr.po
index 74bb4900b..2641e2545 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -3,17 +3,19 @@
 # This file is distributed under the same license as the PackageKit package.
 #
 # Translators:
+# Emir SARI, 2023
 # Muhammet Kara <muhammetk at gmail.com>, 2014
 # Muhammet Kara <muhammetk at gmail.com>, 2014
 # Necdet Yücel <necdetyucel at gmail.com>, 2012,2015-2016
 # Richard Hughes <richard at hughsie.com>, 2011
+# Sabri Ünal <libreajans at gmail.com>, 2023
 # Serdar Sağlam <teknomobil at msn.com>, 2020
 # yunus kaba <yunuskaba at gmail.com>, 2019
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Turkish (http://www.transifex.com/freedesktop/packagekit/language/tr/)\n"
+"Language-Team: Turkish (http://app.transifex.com/freedesktop/packagekit/language/tr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -32,7 +34,7 @@ msgstr "Bir doğru rol gerekiyor"
 #. * specify anything about what to
 #. * download or where
 msgid "A destination directory and the package names to download are required"
-msgstr "Hedef dizini ve indirilecek paket isimleri gerekiyor"
+msgstr "Bir hedef dizin ve indirilecek paketlerin adları gerekiyor"
 
 msgid "A filename is required"
 msgstr "Bir dosya adı gerekiyor"
@@ -40,7 +42,7 @@ msgstr "Bir dosya adı gerekiyor"
 #. TRANSLATORS: the user did not
 #. * specify what they wanted to install
 msgid "A filename to install is required"
-msgstr "Kurulum için bir dosya adı girmelisiniz"
+msgstr "Kurulum için bir dosya adı gerekiyor"
 
 #. TRANSLATORS: geeky error, real
 #. * users won't see this
@@ -50,17 +52,17 @@ msgstr "Bir lisans belirleyici (eula kimliği) gerekiyor"
 #. TRANSLATORS: The user did not
 #. * provide a package name
 msgid "A package name is required"
-msgstr "Bir paket adı gerekli"
+msgstr "Bir paket adı gerekiyor"
 
 #. TRANSLATORS: the user did not
 #. * specify what they wanted to install
 msgid "A package name to install is required"
-msgstr "Kurulum için bir paket adı girmelisiniz"
+msgstr "Kurulum için bir paket adı gerekiyor"
 
 #. TRANSLATORS: the user did not
 #. * specify what they wanted to remove
 msgid "A package name to remove is required"
-msgstr "Kaldırılacak paketin ismi gerekiyor"
+msgstr "Kaldırılacak paketin adı gerekiyor"
 
 #. TRANSLATORS: The user did not
 #. * specify a package name
@@ -83,19 +85,19 @@ msgstr "Bir depo adı, parametre ve değer gerekiyor"
 #. TRANSLATORS: The user did not
 #. * specify a repository name
 msgid "A repository name is required"
-msgstr "Bir depo adı gerekli"
+msgstr "Bir depo adı gerekiyor"
 
 #. TRANSLATORS: the user
 #. * needs to provide a search term
 #. TRANSLATORS: the user needs
 #. * to provide a search term
 msgid "A search term is required"
-msgstr "Arama için bir terim gerekli"
+msgstr "Bir arama terimi gerekiyor"
 
 #. TRANSLATORS: a search type can
 #. * be name, details, file, etc
 msgid "A search type is required, e.g. name"
-msgstr "Bir arama türü gerekli; isim gibi"
+msgstr "Bir arama türü gerekiyor; örn. ad"
 
 #. TRANSLATORS: geeky error, real
 #. * users won't see this
@@ -120,27 +122,27 @@ msgstr "Etkilenen paketler:"
 
 #. TRANSLATORS: these are packages touched by the transaction
 msgid "Affected packages: None"
-msgstr "Etkilenen paketler: yok"
+msgstr "Etkilenen paketler: Yok"
 
 #. TRANSLATORS: the EULA text itself (long and boring)
 msgid "Agreement"
-msgstr "Anlaşma"
+msgstr "Antlaşma"
 
 #. TRANSLATORS: this is a command alias
 #, c-format
 msgid "Alias to %s"
-msgstr "%s için takma ad"
+msgstr "%s için arma"
 
 #. command line argument, do we allow package downgrades
 msgid "Allow packages to be downgraded during transaction"
-msgstr "İşlem sırasında paketlerin alt sürümlere geçirilmesine izin ver"
+msgstr "İşlem sırasında paketlerin eski sürümlere indirilmesine izin ver"
 
 msgid "Allow packages to be reinstalled during transaction"
 msgstr "İşlem sırasında paketlerin yeniden kurulmasına izin ver"
 
 #. command line argument, do we ask questions
 msgid "Allow untrusted packages to be installed."
-msgstr "Güvenilmeyen paketlerin kurulmasına izin ver."
+msgstr "Güvenilmeyen paketlerin kurulmasına izin verin."
 
 #. TRANSLATORS: The user didn't
 #. * specify what action to use
@@ -152,59 +154,59 @@ msgid "Application restart required by:"
 msgstr "Uygulamanın yeniden başlatılması gerekiyor:"
 
 msgid "Authentication is required to accept a EULA"
-msgstr "Son kullanıcı lisans sözleşmesini kabul etmek kimlik doğrulama gerektiriyor"
+msgstr "Son kullanıcı lisans sözleşmesini kabul etmek için kimlik doğrulaması gerekiyor"
 
 msgid "Authentication is required to cancel a task that was not started by yourself"
-msgstr "Sizin tarafınızdan başlatılmayan bir görevi iptal etmek kimlik doğrulama gerektirir"
+msgstr "Sizin tarafınızdan başlatılmayan bir görevi iptal etmek için kimlik doğrulaması gerekiyor"
 
 msgid "Authentication is required to change software repository parameters"
 msgstr "Yazılım depo parametrelerini değiştirmek için kimlik doğrulaması gerekiyor"
 
 msgid "Authentication is required to clear the offline updates message"
-msgstr "Çevrim dışı güncelleme iletilerini temizlemek için kimlik kanıtlaması gereklidir"
+msgstr "Çevrimdışı güncelleme iletilerini temizlemek için kimlik doğrulaması gerekiyor"
 
 msgid "Authentication is required to consider a key used for signing software as trusted"
-msgstr "Yazılım imzalamak için kullanılan anahtarı güvenilir kabul etmek kimlik doğrulama gerektiriyor"
+msgstr "Yazılımı imzalamakta kullanılan anahtarı güvenilir kabul etmek için kimlik doğrulaması gerekiyor"
 
 msgid "Authentication is required to downgrade software"
-msgstr "Yazılımları eski sürümlerine düşürmek kimlik doğrulama gerektiriyor"
+msgstr "Yazılımı eski sürümüne düşürmek için kimlik doğrulaması gerekiyor"
 
 msgid "Authentication is required to install software"
-msgstr "Yazılım yüklemek için kimlik doğrulama gerekiyor"
+msgstr "Yazılım kurmak için kimlik doğrulaması gerekiyor"
 
 msgid "Authentication is required to install untrusted software"
-msgstr "Güvenilmeyen yazılım kurmak için kimlik doğrulama gerekiyor"
+msgstr "Güvenilmeyen yazılım kurmak için kimlik doğrulaması gerekiyor"
 
 msgid "Authentication is required to refresh the system repositories"
-msgstr "Sistem depolarını yenilemek için kimlik doğrulama gerekiyor"
+msgstr "Sistem depolarını yenilemek için kimlik doğrulaması gerekiyor"
 
 msgid "Authentication is required to reinstall software"
-msgstr "Yazılımları yeniden kurmak için kimlik doğrulama gerekiyor"
+msgstr "Yazılımı yeniden kurmak için kimlik doğrulaması gerekiyor"
 
 msgid "Authentication is required to remove software"
-msgstr "Yazılım kaldırmak kimlik doğrulama gerektiriyor"
+msgstr "Yazılım kaldırmak için kimlik doğrulaması gerekiyor"
 
 msgid "Authentication is required to repair the installed software"
-msgstr "Kurulu yazılımı onarmak için kimlik kanıtlaması gereklidir"
+msgstr "Kurulu yazılımı onarmak için kimlik doğrulaması gerekiyor"
 
 msgid "Authentication is required to set the network proxy used for downloading software"
-msgstr "Yazılım indirmek için vekil sunucuyu ayarlamak için kimlik kanıtlaması gereklidir"
+msgstr "Yazılım indirmek üzere vekil sunucuyu ayarlamak için kimlik doğrulaması gerekiyor"
 
 msgid "Authentication is required to trigger offline updates"
-msgstr "Çevrim dışı güncellemeleri tetiklemek için kimlik kanıtlaması gereklidir"
+msgstr "Çevrimdışı güncellemeleri tetiklemek için kimlik doğrulaması gerekiyor"
 
 msgid "Authentication is required to update software"
-msgstr "Yazılım güncellemek için kimlik kanıtlaması gereklidir"
+msgstr "Yazılım güncellemek için kimlik doğrulaması gerekiyor"
 
 msgid "Authentication is required to upgrade the operating system"
-msgstr "İşletim sistemini güncellemek için kimlik doğrulaması gereklidir"
+msgstr "İşletim sistemini yükseltmek için kimlik doğrulaması gerekiyor"
 
 #. TRANSLATORS: this is the author of the backend
 msgid "Author"
 msgstr "Yazar"
 
 msgid "Automatically remove unused dependencies"
-msgstr "Kullanılmayan bağımlılıkları otomatik olarak kaldırın"
+msgstr "Kullanılmayan bağımlılıkları kendiliğinden kaldır"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
 msgid "Available"
@@ -231,7 +233,7 @@ msgstr "CVE"
 #. authentication, but a different user id needs the admin password
 #. to cancel another users task.
 msgid "Cancel foreign task"
-msgstr "Harici görevi iptal et"
+msgstr "Yabancı görevi iptal et"
 
 #. TRANSLATORS: The role of the transaction, in present tense
 msgid "Canceling"
@@ -260,17 +262,17 @@ msgstr "Değişiklikler"
 #. TRANSLATORS: transaction state, we are checking executable files currently
 #. in use
 msgid "Checking applications in use"
-msgstr "Kullanımdaki uygulamalar kontrol ediliyor"
+msgstr "Kullanımdaki uygulamalar denetleniyor"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in
 #. use
 msgid "Checking libraries in use"
-msgstr "Kullanımdaki kitaplıklar kontrol ediliyor"
+msgstr "Kullanımdaki kitaplıklar denetleniyor"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys
 #. for the operation
 msgid "Checking signatures"
-msgstr "İmzalar kontrol ediliyor"
+msgstr "İmzalar denetleniyor"
 
 #. TRANSLATORS: The action of the package, in past tense
 msgid "Cleaned up"
@@ -289,7 +291,7 @@ msgstr "Paketler temizleniyor"
 #. - Normal users are able to clear the updates message that is
 #. shown after an updates are applied at boot time.
 msgid "Clear offline update message"
-msgstr "Çevrim dışı güncelleme iletilerini temizle"
+msgstr "Çevrimdışı güncelleme iletilerini temizle"
 
 #. TRANSLATORS: Generic failure of what they asked to do
 msgid "Command failed"
@@ -307,6 +309,9 @@ msgstr "Komut bulunamadı, geçerli komutlar şunlardır:"
 msgid "Committing changes"
 msgstr "Değişiklikler gönderiliyor"
 
+msgid "Config file was not found."
+msgstr "Yapılandırma dosyası bulunamadı."
+
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
 msgid "Copying files"
@@ -334,27 +339,27 @@ msgstr "Boştaki zamanlayıcıyı kapat"
 
 #. TRANSLATORS: if the repo is disabled
 msgid "Disabled"
-msgstr "Pasif"
+msgstr "Devre dışı"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
 msgid "Distribution"
 msgstr "Dağıtım"
 
 msgid "Do not install these packages unless you are sure it is safe to do so."
-msgstr "Eğer bunu yapmanın güvenli olduğundan emin değilseniz, bu paketleri kurmayın."
+msgstr "Bunu yapmanın güvenli olduğundan emin değilseniz bu paketleri kurmayın."
 
 msgid "Do not install this package unless you are sure it is safe to do so."
-msgstr "Eğer bunu yapmanın güvenli olduğundan emin değilseniz, bu paketi kurmayın."
+msgstr "Bunu yapmanın güvenli olduğundan emin değilseniz bu paketi kurmayın."
 
 msgid "Do not update these packages unless you are sure it is safe to do so."
-msgstr "Eğer bunu yapmanın güvenli olduğundan emin değilseniz, bu paketleri güncellemeyin."
+msgstr "Bunu yapmanın güvenli olduğundan emin değilseniz bu paketleri güncellemeyin."
 
 msgid "Do not update this package unless you are sure it is safe to do so."
-msgstr "Eğer bunu yapmanın güvenli olduğundan emin değilseniz, bu paketi güncellemeyin."
+msgstr "Bunu yapmanın güvenli olduğundan emin değilseniz bu paketi güncellemeyin."
 
 #. TRANSLATORS: ask the user if they've read and accepted the EULA
 msgid "Do you accept this agreement?"
-msgstr "Bu anlaşmayı kabul ediyor musunuz?"
+msgstr "Bu antlaşmayı kabul ediyor musunuz?"
 
 #. TRANSLATORS: ask the user if they want to import
 msgid "Do you accept this signature?"
@@ -363,7 +368,7 @@ msgstr "İmzayı kabul ediyor musunuz?"
 #. TRANSLATORS: ask the user if they are comfortable installing insecure
 #. packages
 msgid "Do you want to allow installing of unsigned software?"
-msgstr "İmzalanmamış yazılımların yüklenmesine izin veriyor musunuz?"
+msgstr "İmzalanmamış yazılımların kurulmasına izin veriyor musunuz?"
 
 #. TRANSLATORS: don't unset environment variables, used for debugging
 msgid "Don't clear environment on startup"
@@ -420,7 +425,7 @@ msgstr "Süre"
 
 #. TRANSLATORS: if the repo is enabled
 msgid "Enabled"
-msgstr "Aktif"
+msgstr "Etkin"
 
 #. TRANSLATORS: this is another name for a software licence that has to be
 #. read before installing
@@ -437,7 +442,7 @@ msgstr "Küçük bir gecikme sonrasında çık"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
 msgid "Exit after the engine has loaded"
-msgstr "Motor yüklendikten sonra çık"
+msgstr "İşletke yüklendikten sonra çık"
 
 #. TRANSLATORS: The user used
 #. * 'pkcon install dave.rpm' rather than
@@ -451,7 +456,7 @@ msgid "Failed to contact PackageKit"
 msgstr "PackageKit'e bağlanılamadı"
 
 msgid "Failed to get daemon state"
-msgstr "Sürecin durumu alınamadı"
+msgstr "Art alan hizmeti durumu alınamadı"
 
 msgid "Failed to get properties"
 msgstr "Özellikler alınamadı"
@@ -469,9 +474,19 @@ msgstr "Paketler kurulamadı"
 msgid "Failed to launch:"
 msgstr "Başlatılamadı:"
 
+#. TRANSLATORS: The placeholder is an error message
+#, c-format
+msgid "Failed to load config file: %s"
+msgstr "Yapılandırma dosyası yüklenemedi: %s"
+
 #. TRANSLATORS: cannot load the backend the user specified
 msgid "Failed to load the backend"
-msgstr "Art alanda çalışan uygulama yüklenemedi"
+msgstr "Arka uç yüklenemedi"
+
+#. TRANSLATORS: cannot load the backend the user specified
+#, c-format
+msgid "Failed to load the backend: %s"
+msgstr "Arka uç yüklenemedi: %s"
 
 #. TRANSLATORS: probably not yet installed
 msgid "Failed to load the config file"
@@ -479,19 +494,25 @@ msgstr "Yapılandırma dosyası yüklenemedi"
 
 #. TRANSLATORS: the user didn't read the man page
 msgid "Failed to parse arguments"
-msgstr "Argüman ayrıştırması başarısız"
+msgstr "Argümanlar ayrıştırılamadı"
 
 #. TRANSLATORS: we failed to contact the daemon
 msgid "Failed to parse command line"
 msgstr "Komut satırı ayrıştırılamadı"
 
+#. TRANSLATORS: The placeholder is an error message.
+#. * `auto` is a potential value of the DefaultBackend= configuration key.
+#, c-format
+msgid "Failed to resolve auto: %s"
+msgstr "Kendiliğinden çözülemedi: %s"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
 msgid "Failed to search for file"
-msgstr "Dosya araması başarısız"
+msgstr "Dosya aranamadı"
 
 #. TRANSLATORS: cannot unload the backend the user specified
 msgid "Failed to unload the backend"
-msgstr "Art alanda çalışan uygulamanın yüklemesi kaldırılamadı"
+msgstr "Arka uç yüklemesi kaldırılamadı"
 
 msgid "False"
 msgstr "Yanlış"
@@ -499,14 +520,14 @@ msgstr "Yanlış"
 #. TRANSLATORS: we failed to get any results, which is pretty
 #. * fatal in my book
 msgid "Fatal error"
-msgstr "Ölümcül hata"
+msgstr "Onulmaz hata"
 
 #. TRANSLATORS: There was an error
 #. * getting the list of packages.
 #. * The filename follows
 #, c-format
 msgid "File already exists: %s"
-msgstr "Böyle bir dosya zaten var: %s"
+msgstr "Böyle bir dosya halihazırda var: %s"
 
 #. TRANSLATORS: transaction state, all done!
 msgid "Finished"
@@ -555,11 +576,11 @@ msgstr "Gereksinimleri alınıyor"
 
 #. TRANSLATORS: The role of the transaction, in present tense
 msgid "Getting system upgrades"
-msgstr "Sistem güncellemeleri alınıyor"
+msgstr "Sistem yükseltmeleri alınıyor"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 msgid "Getting the list of files failed"
-msgstr "Dosya listesi alınması başarısız"
+msgstr "Dosya listesi alınamadı"
 
 #. TRANSLATORS: The role of the transaction, in present tense
 msgid "Getting transactions"
@@ -579,7 +600,7 @@ msgstr "Yükseltmeler alınıyor"
 
 #. TRANSLATORS: this is group identifier
 msgid "ID"
-msgstr "ID"
+msgstr "Kimlik"
 
 #. TRANSLATORS: this is preferred icon for the group
 msgid "Icon"
@@ -596,7 +617,7 @@ msgstr "Önemli"
 #. - If a package in question is not trusted, user's permission to install
 #. untrusted package will be checked as well.
 msgid "Install already installed package again"
-msgstr "Zaten kurulu paketi yeniden kur"
+msgstr "Halihazırda kurulu paketi yeniden kur"
 
 #. SECURITY
 #. - Normal users require admin authentication to downgrade packages.
@@ -623,11 +644,11 @@ msgstr "'%s' paketi '%s' komutunu sağlaması için kurulsun mu?"
 #. only as secure as the least-secure package available in the
 #. repositories.
 msgid "Install signed package"
-msgstr "İmzalı paketi yükle"
+msgstr "İmzalı paketi kur"
 
 #. command line argument, do we ask questions
 msgid "Install the packages without asking for confirmation"
-msgstr "Paketleri onaylama sormadan kur"
+msgstr "Paketleri onay istemeden kur"
 
 #. SECURITY:
 #. - Normal users require admin authentication to install untrusted or
@@ -650,7 +671,7 @@ msgstr "Kuruluyor"
 #. TRANSLATORS: this is the message we send plymouth to
 #. * advise of the new percentage completion when installing system upgrades
 msgid "Installing System Upgrade"
-msgstr "System güncellemeleri yükleniyor"
+msgstr "Sistem Yükseltmesi Kuruluyor"
 
 #. TRANSLATORS: this is the message we send plymouth to
 #. * advise of the new percentage completion when installing updates
@@ -659,7 +680,7 @@ msgstr "Güncellemeler Kuruluyor"
 
 #. TRANSLATORS: The role of the transaction, in present tense
 msgid "Installing files"
-msgstr "Dosyalar yükleniyor"
+msgstr "Dosyalar kuruluyor"
 
 #. TRANSLATORS: transaction state, installing packages
 msgid "Installing packages"
@@ -667,11 +688,11 @@ msgstr "Paketler kuruluyor"
 
 #. TRANSLATORS: The role of the transaction, in present tense
 msgid "Installing signature"
-msgstr "İmza yükleniyor"
+msgstr "İmza kuruluyor"
 
 #. TRANSLATORS: we've started doing offline system upgrade
 msgid "Installing system upgrade; this could take a while..."
-msgstr "Sistem güncellemesi kuruluyor, bu işlem biraz vakit alabilir..."
+msgstr "Sistem yükseltmesi kuruluyor, bu işlem biraz vakit alabilir..."
 
 #. TRANSLATORS: transaction state, installing updates
 msgid "Installing updates"
@@ -684,23 +705,23 @@ msgstr "Güncellemeler kuruluyor, bu biraz vakit alabilir..."
 #. TRANSLATORS: details about the update, date the update
 #. * was issued
 msgid "Issued"
-msgstr "Veriliş"
+msgstr "Çıkış"
 
 #. TRANSLATORS: the key ID, usually a few hex digits
 msgid "Key ID"
-msgstr "Anahtar Kimliği"
+msgstr "Anahtar kimliği"
 
 #. TRANSLATORS: the timestamp (a bit like a machine readable time)
 msgid "Key Timestamp"
-msgstr "Anahtar Zaman Damgası"
+msgstr "Anahtar zaman damgası"
 
 #. TRANSLATORS: the key URL
 msgid "Key URL"
-msgstr "Anahtar Adresi"
+msgstr "Anahtar URL'si"
 
 #. TRANSLATORS: the key fingerprint, again, yet more hex
 msgid "Key fingerprint"
-msgstr "Anahtar parmakizi"
+msgstr "Anahtar parmak izi"
 
 #. TRANSLATORS: the username of the key
 msgid "Key user"
@@ -716,7 +737,7 @@ msgstr "Paketlerin listesi yükleniyor."
 
 #. TRANSLATORS: the user needs to change media inserted into the computer
 msgid "Media change required"
-msgstr "Ortamı değiştirmeniz gerekiyor"
+msgstr "Ortam değişikliği gerekiyor"
 
 #. TRANSLATORS: the media label, usually like 'disk-1of3'
 msgid "Media label"
@@ -728,7 +749,7 @@ msgstr "Ortam türü"
 
 #. TRANSLATORS: The role of the transaction, in present tense
 msgid "Modifying repository"
-msgstr "Depoyu düzenle"
+msgstr "Depo değiştiriliyor"
 
 #. TRANSLATORS: more than one package could be found that matched,
 #. * to follow is a list of possible packages
@@ -738,7 +759,7 @@ msgstr "Birden fazla paket eşleşiyor:"
 #. TRANSLATORS: this is the name of the parent group
 #. TRANSLATORS: this is the name of the backend
 msgid "Name"
-msgstr "İsim"
+msgstr "Ad"
 
 #. TRANSLATORS: This where the package has no files
 msgid "No files"
@@ -758,12 +779,12 @@ msgstr "Normal"
 
 #. TRANSLATORS: The action of the package, in past tense
 msgid "Obsoleted"
-msgstr "Gereksiz Olarak İşaretlendi"
+msgstr "Gereksiz Yapıldı"
 
 #. TRANSLATORS: details about the update, any packages that
 #. * this update obsoletes
 msgid "Obsoletes"
-msgstr "Geçersiz kılıyor"
+msgstr "Geçersiz kılar"
 
 #. TRANSLATORS: The action of the package, in present tense
 msgid "Obsoleting"
@@ -788,7 +809,7 @@ msgstr "Paket"
 
 #. TRANSLATORS: This a list of details about the package
 msgid "Package description"
-msgstr "Paket tanımı"
+msgstr "Paket açıklaması"
 
 #. TRANSLATORS: This a list files contained in the package
 msgid "Package files"
@@ -809,11 +830,11 @@ msgstr "PackageKit Konsol Arayüzü"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
 msgid "PackageKit Monitor"
-msgstr "PackageKit İzleyici"
+msgstr "PackageKit İzleyicisi"
 
 #. TRANSLATORS: describing the service that is running
 msgid "PackageKit service"
-msgstr "PackageKit servisi"
+msgstr "PackageKit hizmeti"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
 msgid "Packages providing this file are:"
@@ -821,11 +842,11 @@ msgstr "Bu dosyayı içeren paketler:"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. dnf, apt
 msgid "Packaging backend to use, e.g. dummy"
-msgstr "Kullanmak için arkaucu paketlemek"
+msgstr "Kullanmak için arka uç paketleniyor; örn. test"
 
 #. TRANSLATORS: this is the parent group
 msgid "Parent"
-msgstr "Ebeveyn"
+msgstr "Üst öge"
 
 #. TRANSLATORS: the percentage complete of the transaction
 msgid "Percentage"
@@ -857,7 +878,7 @@ msgstr "Önemli güvenlik güncellemeleri kurulduğundan güncellemeyi tamamlama
 
 #. TRANSLATORS: a package needs to restart the session
 msgid "Please logout and login to complete the update."
-msgstr "Lütfen güncelleme işlemini tamamlamak için oturumu kapatıp yeniden giriş yapın."
+msgstr "Lütfen güncelleme işlemini tamamlamak için oturumu kapatıp açın."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
 msgid "Please restart the computer to complete the update as important security updates have been installed."
@@ -869,7 +890,7 @@ msgstr "Lütfen güncelleme işlemini tamamlamak için bilgisayarınızı yenide
 
 #. command line argument, do we just download or apply changes
 msgid "Prepare the transaction by downloading packages only"
-msgstr "İletimi sadece paketleri indirecek şekilde ayarla"
+msgstr "İletimi sadece paketleri indirecek biçimde ayarla"
 
 #. TRANSLATORS: There follows a list of packages downloaded and ready
 #. * to be updated
@@ -878,7 +899,7 @@ msgstr "Hazırlanan güncellemeler:"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
 msgid "Print to screen a machine readable output, rather than using animated widgets"
-msgstr "Ekrana canlandırmalı parçacıklar yerine makine okuyabilir bir çıktı yazdır"
+msgstr "Ekrana canlandırmalı araç takımları yerine makine okuyabilir bir çıktı yazdır"
 
 #. TRANSLATORS: ask the user if the proposed changes are okay
 msgid "Proceed with changes?"
@@ -890,7 +911,7 @@ msgstr "Sorgulanıyor"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
 msgid "Real name"
-msgstr "Gerçek isim"
+msgstr "Gerçek ad"
 
 #. TRANSLATORS: we've finished doing offline updates
 msgid "Rebooting after installing updates…"
@@ -904,15 +925,15 @@ msgstr "Sistem depolarını yenile"
 
 #. TRANSLATORS: command description
 msgid "Refresh the cache"
-msgstr "Önbelleği tazele"
+msgstr "Önbelleği yenile"
 
 #. TRANSLATORS: command description
 msgid "Refresh the cache (forced)"
-msgstr "Önbelleği tazele (zorla)"
+msgstr "Önbelleği yenile (zorla)"
 
 #. TRANSLATORS: The role of the transaction, in present tense
 msgid "Refreshing cache"
-msgstr "Ön bellek tazeleniyor"
+msgstr "Önbellek yenileniyor"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
 msgid "Refreshing software list"
@@ -936,7 +957,7 @@ msgstr "Yeniden Kuruluyor"
 #. 'auth_admin'.
 #. TRANSLATORS: command description
 msgid "Remove package"
-msgstr "Paket kaldır"
+msgstr "Paketi kaldır"
 
 #. TRANSLATORS: The action of the package, in past tense
 msgid "Removed"
@@ -1006,7 +1027,7 @@ msgstr "Çalıştırılıyor"
 #. TRANSLATORS: transaction state, we are running hooks before or after the
 #. transaction
 msgid "Running hooks"
-msgstr "Tetikleyiciler çalıştırılıyor"
+msgstr "Kancalar çalıştırılıyor"
 
 #. TRANSLATORS: transaction state, scanning for running processes
 msgid "Scanning applications"
@@ -1022,7 +1043,7 @@ msgstr "Dosyalara göre ara"
 
 #. TRANSLATORS: command description
 msgid "Search by names"
-msgstr "İsme göre ara"
+msgstr "Ada göre ara"
 
 #. TRANSLATORS: The role of the transaction, in present tense
 msgid "Searching by details"
@@ -1034,7 +1055,7 @@ msgstr "Dosyaya göre aranıyor"
 
 #. TRANSLATORS: The role of the transaction, in present tense
 msgid "Searching by name"
-msgstr "İsme göre aranıyor"
+msgstr "Ada göre aranıyor"
 
 #. TRANSLATORS: The role of the transaction, in present tense
 msgid "Searching groups"
@@ -1065,7 +1086,7 @@ msgstr "Depo seçeneklerini ayarla"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
 msgid "Set the filter, e.g. installed"
-msgstr "Filtreyi ayarlayın; örneğin kurulu gibi"
+msgstr "Süzgeci ayarla; örn. kurulu"
 
 #. TRANSLATORS: The role of the transaction, in present tense
 msgid "Setting data"
@@ -1080,7 +1101,7 @@ msgstr "Hata ayıklama seçeneklerini göster"
 
 #. TRANSLATORS: command line argument, just show the version string
 msgid "Show the program version and exit"
-msgstr "Uygulama versiyonunu göster ve çık"
+msgstr "Uygulama sürümünü göster ve çık"
 
 #. TRANSLATORS: show version
 msgid "Show version and exit"
@@ -1101,7 +1122,7 @@ msgstr "Benzer komutlar:"
 
 #. TRANSLATORS: the package repository name
 msgid "Software source name"
-msgstr "Yazılım kaynağı ismi"
+msgstr "Yazılım kaynağı adı"
 
 #. TRANSLATORS: the package repository is signed by a key that is not
 #. recognised
@@ -1163,7 +1184,7 @@ msgstr "Metin"
 
 #. TRANSLATORS: tell the user we've not done anything
 msgid "The agreement was not accepted."
-msgstr "Anlaşma kabul edilmedi."
+msgstr "Antlaşma kabul edilmedi."
 
 #. TRANSLATORS: tell the user we've not done anything as they are lazy
 msgid "The correct media was not inserted."
@@ -1172,12 +1193,12 @@ msgstr "Doğru ortam takılmadı."
 #. TRANSLATORS: This is when the daemon crashed, and we are up
 #. * shit creek without a paddle
 msgid "The daemon crashed mid-transaction!"
-msgstr "Uygulama iletimin ortasında çöktü!"
+msgstr "Art alan hizmeti işlem sürerken çöktü!"
 
 #. TRANSLATORS: The user specified
 #. * an incorrect filter
 msgid "The filter specified was invalid"
-msgstr "Belirtilen filtre geçersiz"
+msgstr "Belirtilen süzgeç geçersiz"
 
 #. TRANSLATORS: When processing, untrusted and non-verified packages may be
 #. encountered
@@ -1202,7 +1223,7 @@ msgstr "Aşağıdaki paketler yeniden kurulmalıdır:"
 
 #. TRANSLATORS: When processing, we might have to remove other dependencies
 msgid "The following packages have to be removed:"
-msgstr "Aşağıdaki paketler sistemden kaldırılmalıdır:"
+msgstr "Aşağıdaki paketler kaldırılmalıdır:"
 
 #. TRANSLATORS: When processing, we might have to update other dependencies
 msgid "The following packages have to be updated:"
@@ -1210,7 +1231,7 @@ msgstr "Aşağıdaki paketler yükseltilmelidir:"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
 msgid "The maximum metadata cache age. Use -1 for 'never'."
-msgstr "Üst verinin ön bellekte en fazla tutulma zamanı. 'Asla' için -1 kullanın."
+msgstr "Üst verinin önbellekte en fazla tutulma zamanı. 'Asla' için -1 kullanın."
 
 #. TRANSLATORS: tell the user what package provides the command
 msgid "The package providing this file is:"
@@ -1220,6 +1241,11 @@ msgstr "Bu dosyayı içeren paket:"
 msgid "The proxy could not be set"
 msgstr "Vekil sunucu ayarlanamadı"
 
+#. TRANSLATORS: There was an error finding a package
+#. * for installation, it may already be installed.
+msgid "The selected packages may already be installed."
+msgstr "Seçili paketler halihazırda kurulu olabilir."
+
 #. TRANSLATORS: tell the user we've not done anything
 msgid "The signature was not accepted."
 msgstr "İmza kabul edilmedi."
@@ -1230,13 +1256,13 @@ msgstr "Bu yazılım güvenilir bir kaynaktan gelmiyor."
 
 #. TRANSLATORS: tell the user we didn't do anything
 msgid "The transaction did not proceed."
-msgstr "İşlem devam etmedi."
+msgstr "İşlem sürdürülemedi."
 
 #. TRANSLATORS: the transaction failed in a way we could
 #. * not expect
 #. TRANSLATORS: the transaction failed in a way we could not expect
 msgid "The transaction failed"
-msgstr "İletim başarısız oldu"
+msgstr "İletim başarısız"
 
 #. TRANSLATORS: tell the user we've not done anything
 msgid "The unsigned software will not be installed."
@@ -1249,10 +1275,10 @@ msgstr "Güncellenecek paket yok."
 
 #. TRANSLATORS: print a message when there are no updates
 msgid "There are no updates available at this time."
-msgstr "Şu an için güncelleme yok."
+msgstr "Şimdilik güncelleme yok."
 
 msgid "There are no upgrades available at this time."
-msgstr "Şimdilik güncelleme yok."
+msgstr "Şimdilik yükseltme yok."
 
 #. TRANSLATORS: There was an error getting the list
 #. * of files for the package. The detailed error follows
@@ -1266,11 +1292,15 @@ msgstr "Şimdilik güncelleme yok."
 msgid "This tool could not find all the packages: %s"
 msgstr "Bu araç paketleri bulamadı: %s"
 
+#. TRANSLATORS: We were unable to find a package for installation.
+msgid "This tool could not find any available package."
+msgstr "Bu araç kullanılabilir hiç paket bulamadı."
+
 #. TRANSLATORS: There was an error finding a package
 #. * for installation. The detailed error follows.
 #, c-format
 msgid "This tool could not find any available package: %s"
-msgstr "Bu araç kullanılabilir hiç paket bulamadı: %s"
+msgstr "Bu araç kullanılabilir bir paket bulamadı: %s"
 
 #. TRANSLATORS: There was an error getting the list
 #. * of files for the package. The detailed error follows
@@ -1286,7 +1316,7 @@ msgstr "Bu araç paketi bulamadı: %s"
 
 #. TRANSLATORS: this is the time since this role was used
 msgid "Time since"
-msgstr "Zaman"
+msgstr "Geçen zaman"
 
 #. TRANSLATORS: this is an atomic transaction
 #. TRANSLATORS: the role is the point of the transaction,
@@ -1302,7 +1332,7 @@ msgstr "İşlem"
 #. to a new distribution since this can make the system unbootable or
 #. stop other applications from working.
 msgid "Trigger offline updates"
-msgstr "Çevrim dışı güncellemeleri tetikle"
+msgstr "Çevrimdışı güncellemeleri tetikle"
 
 #. TRANSLATORS: The type of update
 msgid "Trivial"
@@ -1321,7 +1351,7 @@ msgstr "Yazılım imzalamak için kullanılan anahtara güven"
 
 #. TRANSLATORS: this is type of update, stable or testing
 msgid "Type"
-msgstr "Tip"
+msgstr "Tür"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
 msgid "Unavailable"
@@ -1353,7 +1383,7 @@ msgstr "Güncelleme metni"
 #. * was updated
 #. TRANSLATORS: The action of the package, in past tense
 msgid "Updated"
-msgstr "Güncellendi"
+msgstr "Güncellenme"
 
 #. TRANSLATORS: details about the update, any packages that
 #. * this update updates
@@ -1377,11 +1407,11 @@ msgstr "Çalışan uygulamalar güncelleniyor"
 #. this can make the system unbootable or stop other applications from
 #. working.
 msgid "Upgrade System"
-msgstr "Sistemi Güncelle"
+msgstr "Sistemi Yükselt"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
 msgid "User ID"
-msgstr "Kullanıcı ID'si"
+msgstr "Kullanıcı kimliği"
 
 msgid "User aborted selection"
 msgstr "Kullanıcı seçimi iptal etti"
@@ -1393,7 +1423,7 @@ msgstr "Kullanıcı adı"
 #. TRANSLATORS: details about the update, the vendor URLs
 #. TRANSLATORS: the vendor (e.g. vmware) that is providing the EULA
 msgid "Vendor"
-msgstr "Üretici"
+msgstr "Satıcı"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
 msgid "Waiting for authentication"
diff --git a/po/uk.po b/po/uk.po
index 619fc0547..b73e7119a 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Ukrainian (http://www.transifex.com/freedesktop/packagekit/language/uk/)\n"
+"Language-Team: Ukrainian (http://app.transifex.com/freedesktop/packagekit/language/uk/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -303,6 +303,9 @@ msgstr "Такої команди не знайдено, коректні ком
 msgid "Committing changes"
 msgstr "Застосування змін"
 
+msgid "Config file was not found."
+msgstr "Файл налаштувань не знайдено."
+
 #. TRANSLATORS: transaction state, we are copying package files before or
 #. after the transaction
 msgid "Copying files"
@@ -465,10 +468,20 @@ msgstr "Не вдалося встановити пакунки"
 msgid "Failed to launch:"
 msgstr "Не вдалося запустити:"
 
+#. TRANSLATORS: The placeholder is an error message
+#, c-format
+msgid "Failed to load config file: %s"
+msgstr "Не вдалося завантажити файл налаштувань: %s"
+
 #. TRANSLATORS: cannot load the backend the user specified
 msgid "Failed to load the backend"
 msgstr "Не вдалося завантажити модуль обробки"
 
+#. TRANSLATORS: cannot load the backend the user specified
+#, c-format
+msgid "Failed to load the backend: %s"
+msgstr "Не вдалося завантажити модуль обробки: %s"
+
 #. TRANSLATORS: probably not yet installed
 msgid "Failed to load the config file"
 msgstr "Не вдалося завантажити файл налаштувань"
@@ -481,6 +494,12 @@ msgstr "Не вдалося обробити аргументи"
 msgid "Failed to parse command line"
 msgstr "Не вдалося виконати обробку рядка команди"
 
+#. TRANSLATORS: The placeholder is an error message.
+#. * `auto` is a potential value of the DefaultBackend= configuration key.
+#, c-format
+msgid "Failed to resolve auto: %s"
+msgstr "Не вдалося розв'язати авто: %s"
+
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
 msgid "Failed to search for file"
 msgstr "Не вдалося виконати пошук файла"
diff --git a/po/zh_CN.po b/po/zh_CN.po
index d3a757fc1..348a6b6a3 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -21,7 +21,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Chinese (China) (http://www.transifex.com/freedesktop/packagekit/language/zh_CN/)\n"
+"Language-Team: Chinese (China) (http://app.transifex.com/freedesktop/packagekit/language/zh_CN/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 96f4b3c5f..df04cf1b9 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"Language-Team: Chinese (Taiwan) (http://www.transifex.com/freedesktop/packagekit/language/zh_TW/)\n"
+"Language-Team: Chinese (Taiwan) (http://app.transifex.com/freedesktop/packagekit/language/zh_TW/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
commit e6cdac4be78446e2551217bea1ccf02d37441a1a
Author: Matthias Klumpp <matthias at tenstral.net>
Date:   Sat Aug 26 22:38:46 2023 +0200

    trivial: Modernize Transifex config

diff --git a/.tx/config b/.tx/config
index 70f58d993..978130e99 100644
--- a/.tx/config
+++ b/.tx/config
@@ -1,8 +1,10 @@
 [main]
 host = https://www.transifex.com
 
-[packagekit.master]
-file_filter = po/<lang>.po
-source_file = po/PackageKit.pot
-source_lang = en
+[o:freedesktop:p:packagekit:r:master]
+file_filter            = po/<lang>.po
+source_file            = po/PackageKit.pot
+source_lang            = en
+replace_edited_strings = false
+keep_translations      = false
 
commit 0f122562daa1062ba99dc4c569ecca1f87cd9053
Author: Matthias Klumpp <matthias at tenstral.net>
Date:   Sat Aug 26 20:39:53 2023 +0200

    ci: Disable tests on FreeBSD
    
    This reverts 45dc514fb5fb4e5b4118334a710d6e23cea8af07
    The tests have never worked, and perpetually failing CI makes it
    actually hard to review PRs currently, as we don't know why their builds
    are failing at a glance.
    
    Of course, I'd be happy to enable this again once the issue has been
    fixed (patches welcome!).

diff --git a/.cirrus.yml b/.cirrus.yml
index da4c7e9bd..894db9efe 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -1,5 +1,5 @@
 task:
-  name: "build and test (freebsd)"
+  name: "build (freebsd)"
   freebsd_instance:
     matrix:
       - image_family: freebsd-13-2-snap
@@ -14,7 +14,7 @@ task:
         -Dgstreamer_plugin=false _build
     - cd _build
     - ninja -v all
-  test_script:
-    - cd _build
-    - service dbus onestart
-    - ninja test
+  #test_script:
+  #  - cd _build
+  #  - service dbus onestart
+  #  - ninja test
commit c48a2830b5d5af629395aa0dcee48f5f13ed44bd
Author: sid <sidtosh4 at gmail.com>
Date:   Sun Jul 30 08:43:59 2023 +0000

    apt: Fix 'search-file' regexp as per BRE pattern (which is the default)
    
    We should either set the 'REG_EXTENDED' flag (Extended Regular
    Expressions) to regcomp() and use the "|" regex pattern, or use the
    "\\|" regex pattern, as per the BRE (Basic Regular Expressions), which
    is the default when 'REG_EXTENDED' flag is not set.
    
    From 'man grep':
    
    Basic vs Extended Regular Expressions:
    
    In basic regular expressions the meta‐characters ?, +, {, |, (, and )
    lose their special meaning; instead use the backslashed versions \?,
    \+, \{, \|, \(, and \).

diff --git a/backends/apt/apt-job.cpp b/backends/apt/apt-job.cpp
index 0b2895350..d68c98faa 100644
--- a/backends/apt/apt-job.cpp
+++ b/backends/apt/apt-job.cpp
@@ -1278,7 +1278,7 @@ PkgList AptJob::searchPackageFiles(gchar **values)
         }
 
         if (!search.empty()) {
-            search.append("|");
+            search.append("\\|");
         }
 
         if (value[0] == '/') {
commit 9f78fbf08935476d680f3d3738dc6bc01600b10f
Author: Gioele Barabucci <gioele at svario.it>
Date:   Fri Jul 7 00:55:59 2023 +0200

    data/meson.build: Install dbus policy in /usr/share, not /etc
    
    From https://bugs.debian.org/1006631:
    
    > dbus supports policy files in both `/usr/share/dbus-1/system.d` and
    > `/etc/dbus-1/systemd`. [The] recently released dbus 1.14.0, officially
    > deprecates installing packages' default policies into `/etc/dbus-1/systemd`,
    > instead reserving it for the sysadmin. This is the same idea as the
    > difference between `/usr/lib/udev/rules.d` and `/etc/udev/rules.d`.

diff --git a/data/meson.build b/data/meson.build
index a953f6280..348b9b9d2 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -9,7 +9,7 @@ dbus_config_data.set('libexecdir', join_paths(get_option('prefix'), get_option('
 
 dbus_sys_dir = get_option('dbus_sys')
 if dbus_sys_dir == ''
-  dbus_sys_dir = join_paths(get_option('sysconfdir'), 'dbus-1', 'system.d')
+  dbus_sys_dir = join_paths(get_option('datadir'), 'dbus-1', 'system.d')
 endif
 
 configure_file(
commit 70594bbe7b3c61b7f9fe58cb77ddaeb630e7276f
Author: Dominique Leuenberger <dimstar at opensuse.org>
Date:   Mon Jul 17 15:24:14 2023 +0200

    packagekitd: Use export_dynamic explicitly
    
    We used to get that implicitly through GModule .pc file defining -Wl,--export-dynamic so that modules could reference symbols in the main executable.
    
    With newer GLib including glib at 11bdd6fc the gmodule .pc file will no longer define this compiler flag in a way that works for us, resulting in errors like:
    packagekitd[2394]: Failed to load the backend: opening module zypp failed : /usr/lib64/packagekit-backend/libpk_backend_zypp.so: undefined symbol: pk_backend_job_require_restart

diff --git a/src/meson.build b/src/meson.build
index cae73380e..a47169c2b 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -76,6 +76,7 @@ packagekitd_exec = executable(
   ],
   install: true,
   install_dir: get_option('libexecdir'),
+  export_dynamic: true,
   c_args: [
     '-DPK_BUILD_DAEMON=1',
     '-DG_LOG_DOMAIN="PackageKit"',
commit e7d9610d7e43289b81dc21b2cde88fa4e29e5d38
Author: Corentin Noël <corentin.noel at collabora.com>
Date:   Tue Jun 6 15:55:41 2023 +0200

    Add G_PARAM_STATIC_STRINGS to all properties
    
    We are never doing dynamic construction of name, nickname or blurb. The GObject
    manual claims that it allows internal performance improvements.

diff --git a/lib/packagekit-glib2/pk-category.c b/lib/packagekit-glib2/pk-category.c
index beea583df..c627392b9 100644
--- a/lib/packagekit-glib2/pk-category.c
+++ b/lib/packagekit-glib2/pk-category.c
@@ -318,7 +318,7 @@ pk_category_class_init (PkCategoryClass *klass)
 	 */
 	pspec = g_param_spec_string ("parent-id", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_PARENT_ID, pspec);
 
 	/**
@@ -328,7 +328,7 @@ pk_category_class_init (PkCategoryClass *klass)
 	 */
 	pspec = g_param_spec_string ("cat-id", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_CAT_ID, pspec);
 
 	/**
@@ -338,7 +338,7 @@ pk_category_class_init (PkCategoryClass *klass)
 	 */
 	pspec = g_param_spec_string ("name", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_NAME, pspec);
 
 	/**
@@ -348,7 +348,7 @@ pk_category_class_init (PkCategoryClass *klass)
 	 */
 	pspec = g_param_spec_string ("summary", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_SUMMARY, pspec);
 
 	/**
@@ -358,7 +358,7 @@ pk_category_class_init (PkCategoryClass *klass)
 	 */
 	pspec = g_param_spec_string ("icon", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_ICON, pspec);
 
 	g_type_class_add_private (klass, sizeof (PkCategoryPrivate));
diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 248bec82f..1796eea60 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -4699,7 +4699,7 @@ pk_client_class_init (PkClientClass *klass)
 	 */
 	pspec = g_param_spec_string ("locale", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_LOCALE, pspec);
 
 	/**
@@ -4709,7 +4709,7 @@ pk_client_class_init (PkClientClass *klass)
 	 */
 	pspec = g_param_spec_boolean ("background", NULL, NULL,
 				      FALSE,
-				      G_PARAM_READWRITE);
+				      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_BACKGROUND, pspec);
 
 	/**
@@ -4719,7 +4719,7 @@ pk_client_class_init (PkClientClass *klass)
 	 */
 	pspec = g_param_spec_boolean ("interactive", NULL, NULL,
 				      TRUE,
-				      G_PARAM_READWRITE);
+				      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_INTERACTIVE, pspec);
 
 	/**
@@ -4729,7 +4729,7 @@ pk_client_class_init (PkClientClass *klass)
 	 */
 	pspec = g_param_spec_boolean ("idle", NULL, "if there are no transactions in progress on this client",
 				      TRUE,
-				      G_PARAM_READABLE);
+				      G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_IDLE, pspec);
 
 	g_type_class_add_private (klass, sizeof (PkClientPrivate));
@@ -4741,7 +4741,7 @@ pk_client_class_init (PkClientClass *klass)
 	 */
 	pspec = g_param_spec_uint ("cache-age", NULL, NULL,
 				   0, G_MAXUINT, G_MAXUINT,
-				   G_PARAM_READWRITE);
+				   G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_CACHE_AGE, pspec);
 
 	/**
@@ -4751,7 +4751,7 @@ pk_client_class_init (PkClientClass *klass)
 	 */
 	pspec = g_param_spec_boolean ("details-with-deps-size", NULL, NULL,
 				      FALSE,
-				      G_PARAM_READWRITE);
+				      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_DETAILS_WITH_DEPS_SIZE, pspec);
 }
 
diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c
index e7893da82..ef3d0bdbf 100644
--- a/lib/packagekit-glib2/pk-control.c
+++ b/lib/packagekit-glib2/pk-control.c
@@ -2140,7 +2140,7 @@ pk_control_class_init (PkControlClass *klass)
 	 */
 	pspec = g_param_spec_uint ("version-major", NULL, NULL,
 				   0, G_MAXUINT, 0,
-				   G_PARAM_READABLE);
+				   G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_VERSION_MAJOR, pspec);
 
 	/**
@@ -2150,7 +2150,7 @@ pk_control_class_init (PkControlClass *klass)
 	 */
 	pspec = g_param_spec_uint ("version-minor", NULL, NULL,
 				   0, G_MAXUINT, 0,
-				   G_PARAM_READABLE);
+				   G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_VERSION_MINOR, pspec);
 
 	/**
@@ -2160,7 +2160,7 @@ pk_control_class_init (PkControlClass *klass)
 	 */
 	pspec = g_param_spec_uint ("version-micro", NULL, NULL,
 				   0, G_MAXUINT, 0,
-				   G_PARAM_READABLE);
+				   G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_VERSION_MICRO, pspec);
 
 	/**
@@ -2170,7 +2170,7 @@ pk_control_class_init (PkControlClass *klass)
 	 */
 	pspec = g_param_spec_string ("backend-name", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_BACKEND_NAME, pspec);
 
 	/**
@@ -2180,7 +2180,7 @@ pk_control_class_init (PkControlClass *klass)
 	 */
 	pspec = g_param_spec_string ("backend-description", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_BACKEND_DESCRIPTION, pspec);
 
 	/**
@@ -2190,7 +2190,7 @@ pk_control_class_init (PkControlClass *klass)
 	 */
 	pspec = g_param_spec_string ("backend-author", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_BACKEND_AUTHOR, pspec);
 
 	/**
@@ -2200,7 +2200,7 @@ pk_control_class_init (PkControlClass *klass)
 	 */
 	pspec = g_param_spec_uint64 ("roles", NULL, NULL,
 				     0, G_MAXUINT64, 0,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_ROLES, pspec);
 
 	/**
@@ -2210,7 +2210,7 @@ pk_control_class_init (PkControlClass *klass)
 	 */
 	pspec = g_param_spec_uint64 ("groups", NULL, NULL,
 				     0, G_MAXUINT64, 0,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_GROUPS, pspec);
 
 	/**
@@ -2220,7 +2220,7 @@ pk_control_class_init (PkControlClass *klass)
 	 */
 	pspec = g_param_spec_uint64 ("filters", NULL, NULL,
 				     0, G_MAXUINT64, 0,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_FILTERS, pspec);
 
 	/**
@@ -2230,7 +2230,7 @@ pk_control_class_init (PkControlClass *klass)
 	 */
 	pspec = g_param_spec_uint64 ("provides", NULL, NULL,
 				     0, G_MAXUINT64, 0,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_PROVIDES, pspec);
 
 	/**
@@ -2240,7 +2240,7 @@ pk_control_class_init (PkControlClass *klass)
 	 */
 	pspec = g_param_spec_boxed ("mime-types", NULL, NULL,
 				    G_TYPE_STRV,
-				    G_PARAM_READWRITE);
+				    G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_MIME_TYPES, pspec);
 
 	/**
@@ -2250,7 +2250,7 @@ pk_control_class_init (PkControlClass *klass)
 	 */
 	pspec = g_param_spec_boolean ("locked", NULL, NULL,
 				      FALSE,
-				      G_PARAM_READWRITE);
+				      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_LOCKED, pspec);
 
 	/**
@@ -2260,7 +2260,7 @@ pk_control_class_init (PkControlClass *klass)
 	 */
 	pspec = g_param_spec_enum ("network-state", NULL, NULL,
 				   PK_TYPE_NETWORK_ENUM, PK_NETWORK_ENUM_LAST,
-				   G_PARAM_READWRITE);
+				   G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_NETWORK_STATE, pspec);
 
 	/**
@@ -2270,7 +2270,7 @@ pk_control_class_init (PkControlClass *klass)
 	 */
 	pspec = g_param_spec_string ("distro-id", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_DISTRO_ID, pspec);
 
 	/**
@@ -2280,7 +2280,7 @@ pk_control_class_init (PkControlClass *klass)
 	 */
 	pspec = g_param_spec_boolean ("connected", NULL, NULL,
 				      FALSE,
-				      G_PARAM_READWRITE);
+				      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_CONNECTED, pspec);
 
 	/**
diff --git a/lib/packagekit-glib2/pk-details.c b/lib/packagekit-glib2/pk-details.c
index 5e71a5c5d..1616a49ef 100644
--- a/lib/packagekit-glib2/pk-details.c
+++ b/lib/packagekit-glib2/pk-details.c
@@ -312,7 +312,7 @@ pk_details_class_init (PkDetailsClass *klass)
 	 */
 	pspec = g_param_spec_string ("package-id", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_PACKAGE_ID, pspec);
 
 	/**
@@ -322,7 +322,7 @@ pk_details_class_init (PkDetailsClass *klass)
 	 */
 	pspec = g_param_spec_string ("license", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_LICENSE, pspec);
 
 	/**
@@ -332,7 +332,7 @@ pk_details_class_init (PkDetailsClass *klass)
 	 */
 	pspec = g_param_spec_enum ("group", NULL, NULL,
 				   PK_TYPE_GROUP_ENUM, PK_GROUP_ENUM_UNKNOWN,
-				   G_PARAM_READWRITE);
+				   G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_GROUP, pspec);
 
 	/**
@@ -342,7 +342,7 @@ pk_details_class_init (PkDetailsClass *klass)
 	 */
 	pspec = g_param_spec_string ("description", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_DESCRIPTION, pspec);
 
 	/**
@@ -352,7 +352,7 @@ pk_details_class_init (PkDetailsClass *klass)
 	 */
 	pspec = g_param_spec_string ("url", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_URL, pspec);
 
 	/**
@@ -362,7 +362,7 @@ pk_details_class_init (PkDetailsClass *klass)
 	 */
 	pspec = g_param_spec_uint64 ("size", NULL, NULL,
 				     0, G_MAXUINT64, 0,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_SIZE, pspec);
 
 	/**
@@ -372,7 +372,7 @@ pk_details_class_init (PkDetailsClass *klass)
 	 */
 	pspec = g_param_spec_string ("summary", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_SUMMARY, pspec);
 
 	/**
@@ -382,7 +382,7 @@ pk_details_class_init (PkDetailsClass *klass)
 	 */
 	pspec = g_param_spec_uint64 ("download-size", NULL, NULL,
 				     0, G_MAXUINT64, G_MAXUINT64,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_DOWNLOAD_SIZE, pspec);
 
 	g_type_class_add_private (klass, sizeof (PkDetailsPrivate));
diff --git a/lib/packagekit-glib2/pk-distro-upgrade.c b/lib/packagekit-glib2/pk-distro-upgrade.c
index 274dcc6ad..ae1bdb3cf 100644
--- a/lib/packagekit-glib2/pk-distro-upgrade.c
+++ b/lib/packagekit-glib2/pk-distro-upgrade.c
@@ -186,7 +186,7 @@ pk_distro_upgrade_class_init (PkDistroUpgradeClass *klass)
 	 */
 	pspec = g_param_spec_enum ("state", NULL, NULL,
 				   PK_TYPE_DISTRO_UPGRADE_ENUM, PK_DISTRO_UPGRADE_ENUM_UNKNOWN,
-				   G_PARAM_READWRITE);
+				   G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_STATE, pspec);
 
 	/**
@@ -196,7 +196,7 @@ pk_distro_upgrade_class_init (PkDistroUpgradeClass *klass)
 	 */
 	pspec = g_param_spec_string ("name", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_NAME, pspec);
 
 	/**
@@ -206,7 +206,7 @@ pk_distro_upgrade_class_init (PkDistroUpgradeClass *klass)
 	 */
 	pspec = g_param_spec_string ("summary", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_SUMMARY, pspec);
 
 	g_type_class_add_private (klass, sizeof (PkDistroUpgradePrivate));
diff --git a/lib/packagekit-glib2/pk-error.c b/lib/packagekit-glib2/pk-error.c
index 901c842ea..5ce71f626 100644
--- a/lib/packagekit-glib2/pk-error.c
+++ b/lib/packagekit-glib2/pk-error.c
@@ -158,7 +158,7 @@ pk_error_class_init (PkErrorClass *klass)
 	 */
 	pspec = g_param_spec_enum ("code", NULL, NULL,
 				   PK_TYPE_ERROR_ENUM, PK_ERROR_ENUM_UNKNOWN,
-				   G_PARAM_READWRITE);
+				   G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_CODE, pspec);
 
 	/**
@@ -168,7 +168,7 @@ pk_error_class_init (PkErrorClass *klass)
 	 */
 	pspec = g_param_spec_string ("details", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_DETAILS, pspec);
 
 	g_type_class_add_private (klass, sizeof (PkErrorPrivate));
diff --git a/lib/packagekit-glib2/pk-eula-required.c b/lib/packagekit-glib2/pk-eula-required.c
index f28be8932..04dc02b45 100644
--- a/lib/packagekit-glib2/pk-eula-required.c
+++ b/lib/packagekit-glib2/pk-eula-required.c
@@ -211,7 +211,7 @@ pk_eula_required_class_init (PkEulaRequiredClass *klass)
 	 */
 	pspec = g_param_spec_string ("eula-id", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_EULA_ID, pspec);
 
 	/**
@@ -223,7 +223,7 @@ pk_eula_required_class_init (PkEulaRequiredClass *klass)
 	 */
 	pspec = g_param_spec_string ("package-id", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_PACKAGE_ID, pspec);
 
 	/**
@@ -235,7 +235,7 @@ pk_eula_required_class_init (PkEulaRequiredClass *klass)
 	 */
 	pspec = g_param_spec_string ("vendor-name", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_VENDOR_NAME, pspec);
 
 	/**
@@ -247,7 +247,7 @@ pk_eula_required_class_init (PkEulaRequiredClass *klass)
 	 */
 	pspec = g_param_spec_string ("license-agreement", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_LICENSE_AGREEMENT, pspec);
 
 	g_type_class_add_private (klass, sizeof (PkEulaRequiredPrivate));
diff --git a/lib/packagekit-glib2/pk-files.c b/lib/packagekit-glib2/pk-files.c
index 3b4df6586..0fa782342 100644
--- a/lib/packagekit-glib2/pk-files.c
+++ b/lib/packagekit-glib2/pk-files.c
@@ -157,7 +157,7 @@ pk_files_class_init (PkFilesClass *klass)
 	 */
 	pspec = g_param_spec_string ("package-id", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_PACKAGE_ID, pspec);
 
 	/**
@@ -167,7 +167,7 @@ pk_files_class_init (PkFilesClass *klass)
 	 */
 	pspec = g_param_spec_boxed ("files", NULL, NULL,
 				    G_TYPE_STRV,
-				    G_PARAM_READWRITE);
+				    G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_FILES, pspec);
 
 	g_type_class_add_private (klass, sizeof (PkFilesPrivate));
diff --git a/lib/packagekit-glib2/pk-item-progress.c b/lib/packagekit-glib2/pk-item-progress.c
index fd43bfced..20951b686 100644
--- a/lib/packagekit-glib2/pk-item-progress.c
+++ b/lib/packagekit-glib2/pk-item-progress.c
@@ -173,7 +173,7 @@ pk_item_progress_class_init (PkItemProgressClass *klass)
 	 */
 	pspec = g_param_spec_string ("package-id", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_PACKAGE_ID, pspec);
 
 	/**
@@ -183,7 +183,7 @@ pk_item_progress_class_init (PkItemProgressClass *klass)
 	 */
 	pspec = g_param_spec_uint ("status", NULL, NULL,
 				   0, G_MAXUINT, 0,
-				   G_PARAM_READWRITE);
+				   G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_STATUS, pspec);
 
 	/**
@@ -193,7 +193,7 @@ pk_item_progress_class_init (PkItemProgressClass *klass)
 	 */
 	pspec = g_param_spec_uint ("percentage", NULL, NULL,
 				   0, G_MAXUINT, 0,
-				   G_PARAM_READWRITE);
+				   G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_PERCENTAGE, pspec);
 
 	g_type_class_add_private (klass, sizeof (PkItemProgressPrivate));
diff --git a/lib/packagekit-glib2/pk-media-change-required.c b/lib/packagekit-glib2/pk-media-change-required.c
index 56f8cbb3c..5b414978e 100644
--- a/lib/packagekit-glib2/pk-media-change-required.c
+++ b/lib/packagekit-glib2/pk-media-change-required.c
@@ -133,7 +133,7 @@ pk_media_change_required_class_init (PkMediaChangeRequiredClass *klass)
 	 */
 	pspec = g_param_spec_enum ("media-type", NULL, NULL,
 				   PK_TYPE_MEDIA_TYPE_ENUM, PK_MEDIA_TYPE_ENUM_UNKNOWN,
-				   G_PARAM_READWRITE);
+				   G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_MEDIA_TYPE, pspec);
 
 	/**
@@ -143,7 +143,7 @@ pk_media_change_required_class_init (PkMediaChangeRequiredClass *klass)
 	 */
 	pspec = g_param_spec_string ("media-id", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_MEDIA_ID, pspec);
 
 	/**
@@ -153,7 +153,7 @@ pk_media_change_required_class_init (PkMediaChangeRequiredClass *klass)
 	 */
 	pspec = g_param_spec_string ("media-text", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_MEDIA_TEXT, pspec);
 
 	g_type_class_add_private (klass, sizeof (PkMediaChangeRequiredPrivate));
diff --git a/lib/packagekit-glib2/pk-package.c b/lib/packagekit-glib2/pk-package.c
index 5f2ee9624..13f426fd1 100644
--- a/lib/packagekit-glib2/pk-package.c
+++ b/lib/packagekit-glib2/pk-package.c
@@ -595,7 +595,7 @@ pk_package_class_init (PkPackageClass *klass)
 	pspec = g_param_spec_enum ("info", NULL,
 				   "The PkInfoEnum package type, e.g. PK_INFO_ENUM_NORMAL",
 				   PK_TYPE_INFO_ENUM, PK_INFO_ENUM_UNKNOWN,
-				   G_PARAM_READWRITE);
+				   G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_INFO, pspec);
 
 	/**
@@ -606,7 +606,7 @@ pk_package_class_init (PkPackageClass *klass)
 	pspec = g_param_spec_string ("package-id", NULL,
 				     "The full package_id, e.g. 'gnome-power-manager;0.1.2;i386;fedora'",
 				     NULL,
-				     G_PARAM_READABLE);
+				     G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_PACKAGE_ID, pspec);
 
 	/**
@@ -617,7 +617,7 @@ pk_package_class_init (PkPackageClass *klass)
 	pspec = g_param_spec_string ("summary", NULL,
 				     "The package summary",
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_SUMMARY, pspec);
 
 	/**
@@ -628,7 +628,7 @@ pk_package_class_init (PkPackageClass *klass)
 	pspec = g_param_spec_string ("license", NULL,
 				     "The package license",
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_LICENSE, pspec);
 
 	/**
@@ -639,7 +639,7 @@ pk_package_class_init (PkPackageClass *klass)
 	pspec = g_param_spec_enum ("group", NULL,
 				   "The package group",
 				   PK_TYPE_GROUP_ENUM, PK_GROUP_ENUM_UNKNOWN,
-				   G_PARAM_READWRITE);
+				   G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_GROUP, pspec);
 
 	/**
@@ -650,7 +650,7 @@ pk_package_class_init (PkPackageClass *klass)
 	pspec = g_param_spec_string ("description", NULL,
 				     "The package description",
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_DESCRIPTION, pspec);
 
 	/**
@@ -661,7 +661,7 @@ pk_package_class_init (PkPackageClass *klass)
 	pspec = g_param_spec_string ("url", NULL,
 				     "The package homepage URL",
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_URL, pspec);
 
 	/**
@@ -672,7 +672,7 @@ pk_package_class_init (PkPackageClass *klass)
 	pspec = g_param_spec_uint64 ("size", NULL,
 				     "The package size",
 				     0, G_MAXUINT64, 0,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_SIZE, pspec);
 
 	/**
@@ -683,7 +683,7 @@ pk_package_class_init (PkPackageClass *klass)
 	pspec = g_param_spec_string ("update-updates", NULL,
 				     "The update packages",
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_UPDATE_UPDATES, pspec);
 
 	/**
@@ -694,7 +694,7 @@ pk_package_class_init (PkPackageClass *klass)
 	pspec = g_param_spec_string ("update-obsoletes", NULL,
 				     "The update packages that are obsoleted",
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_UPDATE_OBSOLETES, pspec);
 
 	/**
@@ -705,7 +705,7 @@ pk_package_class_init (PkPackageClass *klass)
 	pspec = g_param_spec_boxed ("update-vendor-urls", NULL,
 				    "The update vendor URLs",
 				    G_TYPE_STRV,
-				    G_PARAM_READWRITE);
+				    G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_UPDATE_VENDOR_URLS, pspec);
 
 	/**
@@ -716,7 +716,7 @@ pk_package_class_init (PkPackageClass *klass)
 	pspec = g_param_spec_boxed ("update-bugzilla-urls", NULL,
 				    "The update bugzilla URLs",
 				    G_TYPE_STRV,
-				    G_PARAM_READWRITE);
+				    G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_UPDATE_BUGZILLA_URLS, pspec);
 
 	/**
@@ -727,7 +727,7 @@ pk_package_class_init (PkPackageClass *klass)
 	pspec = g_param_spec_boxed ("update-cve-urls", NULL,
 				    "The update CVE URLs",
 				    G_TYPE_STRV,
-				    G_PARAM_READWRITE);
+				    G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_UPDATE_CVE_URLS, pspec);
 
 	/**
@@ -738,7 +738,7 @@ pk_package_class_init (PkPackageClass *klass)
 	pspec = g_param_spec_enum ("update-restart", NULL,
 				   "The update restart type",
 				   PK_TYPE_RESTART_ENUM, PK_RESTART_ENUM_UNKNOWN,
-				   G_PARAM_READWRITE);
+				   G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_UPDATE_RESTART, pspec);
 
 	/**
@@ -749,7 +749,7 @@ pk_package_class_init (PkPackageClass *klass)
 	pspec = g_param_spec_string ("update-text", NULL,
 				     "The update description",
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_UPDATE_UPDATE_TEXT, pspec);
 
 	/**
@@ -760,7 +760,7 @@ pk_package_class_init (PkPackageClass *klass)
 	pspec = g_param_spec_string ("update-changelog", NULL,
 				     "The update ChangeLog",
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_UPDATE_CHANGELOG, pspec);
 
 	/**
@@ -771,7 +771,7 @@ pk_package_class_init (PkPackageClass *klass)
 	pspec = g_param_spec_enum ("update-state", NULL,
 				   "The update state",
 				   PK_TYPE_UPDATE_STATE_ENUM, PK_UPDATE_STATE_ENUM_UNKNOWN,
-				   G_PARAM_READWRITE);
+				   G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_UPDATE_STATE, pspec);
 
 	/**
@@ -782,7 +782,7 @@ pk_package_class_init (PkPackageClass *klass)
 	pspec = g_param_spec_string ("update-issued", NULL,
 				     "When the update was issued",
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_UPDATE_ISSUED, pspec);
 
 	/**
@@ -793,7 +793,7 @@ pk_package_class_init (PkPackageClass *klass)
 	pspec = g_param_spec_string ("update-updated", NULL,
 				     "When the update was last updated",
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_UPDATE_UPDATED, pspec);
 
 	/**
@@ -807,7 +807,7 @@ pk_package_class_init (PkPackageClass *klass)
 	pspec = g_param_spec_enum ("update-severity", NULL,
 				   "Package update severity",
 				    PK_TYPE_INFO_ENUM, PK_INFO_ENUM_UNKNOWN,
-				    G_PARAM_READWRITE);
+				    G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_UPDATE_SEVERITY, pspec);
 
 	/**
diff --git a/lib/packagekit-glib2/pk-progress.c b/lib/packagekit-glib2/pk-progress.c
index 2f221750d..eea510963 100644
--- a/lib/packagekit-glib2/pk-progress.c
+++ b/lib/packagekit-glib2/pk-progress.c
@@ -946,7 +946,7 @@ pk_progress_class_init (PkProgressClass *klass)
 	pspec = g_param_spec_string ("package-id", NULL,
 				     "The full package_id, e.g. 'gnome-power-manager;0.1.2;i386;fedora'",
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_PACKAGE_ID, pspec);
 
 	/**
@@ -959,7 +959,7 @@ pk_progress_class_init (PkProgressClass *klass)
 	pspec = g_param_spec_string ("transaction-id", NULL,
 				     "The transaction_id, e.g. '/892_deabbbdb_data'",
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_TRANSACTION_ID, pspec);
 
 	/**
@@ -971,7 +971,7 @@ pk_progress_class_init (PkProgressClass *klass)
 	 */
 	pspec = g_param_spec_int ("percentage", NULL, NULL,
 				  -1, G_MAXINT, -1,
-				  G_PARAM_READWRITE);
+				  G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_PERCENTAGE, pspec);
 
 	/**
@@ -983,7 +983,7 @@ pk_progress_class_init (PkProgressClass *klass)
 	 */
 	pspec = g_param_spec_boolean ("allow-cancel", NULL, NULL,
 				      FALSE,
-				      G_PARAM_READWRITE);
+				      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_ALLOW_CANCEL, pspec);
 
 	/**
@@ -995,7 +995,7 @@ pk_progress_class_init (PkProgressClass *klass)
 	 */
 	pspec = g_param_spec_uint ("status", NULL, NULL,
 				   0, PK_STATUS_ENUM_LAST, PK_STATUS_ENUM_UNKNOWN,
-				   G_PARAM_READWRITE);
+				   G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_STATUS, pspec);
 
 	/**
@@ -1007,7 +1007,7 @@ pk_progress_class_init (PkProgressClass *klass)
 	 */
 	pspec = g_param_spec_uint ("role", NULL, NULL,
 				   0, PK_ROLE_ENUM_LAST, PK_ROLE_ENUM_UNKNOWN,
-				   G_PARAM_READWRITE);
+				   G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_ROLE, pspec);
 
 	/**
@@ -1019,7 +1019,7 @@ pk_progress_class_init (PkProgressClass *klass)
 	 */
 	pspec = g_param_spec_boolean ("caller-active", NULL, NULL,
 				      FALSE,
-				      G_PARAM_READWRITE);
+				      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_CALLER_ACTIVE, pspec);
 
 	/**
@@ -1031,7 +1031,7 @@ pk_progress_class_init (PkProgressClass *klass)
 	 */
 	pspec = g_param_spec_uint ("elapsed-time", NULL, NULL,
 				   0, G_MAXUINT, 0,
-				   G_PARAM_READWRITE);
+				   G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_ELAPSED_TIME, pspec);
 
 	/**
@@ -1043,7 +1043,7 @@ pk_progress_class_init (PkProgressClass *klass)
 	 */
 	pspec = g_param_spec_uint ("remaining-time", NULL, NULL,
 				   0, G_MAXUINT, 0,
-				   G_PARAM_READWRITE);
+				   G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_REMAINING_TIME, pspec);
 
 	/**
@@ -1055,7 +1055,7 @@ pk_progress_class_init (PkProgressClass *klass)
 	 */
 	pspec = g_param_spec_uint ("speed", NULL, NULL,
 				   0, G_MAXUINT, 0,
-				   G_PARAM_READWRITE);
+				   G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_SPEED, pspec);
 
 	/**
@@ -1067,7 +1067,7 @@ pk_progress_class_init (PkProgressClass *klass)
 	 */
 	pspec = g_param_spec_uint64 ("download-size-remaining", NULL, NULL,
 				     0, G_MAXUINT64, 0,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_DOWNLOAD_SIZE_REMAINING, pspec);
 
 	/**
@@ -1079,7 +1079,7 @@ pk_progress_class_init (PkProgressClass *klass)
 	 */
 	pspec = g_param_spec_uint64 ("transaction-flags", NULL, NULL,
 				     0, G_MAXUINT64, 0,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_TRANSACTION_FLAGS, pspec);
 
 	/**
@@ -1091,7 +1091,7 @@ pk_progress_class_init (PkProgressClass *klass)
 	 */
 	pspec = g_param_spec_uint ("uid", NULL, NULL,
 				   0, G_MAXUINT, 0,
-				   G_PARAM_READWRITE);
+				   G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_UID, pspec);
 
 	/**
@@ -1103,7 +1103,7 @@ pk_progress_class_init (PkProgressClass *klass)
 	 */
 	pspec = g_param_spec_string ("sender", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_SENDER, pspec);
 
 	/**
@@ -1115,7 +1115,7 @@ pk_progress_class_init (PkProgressClass *klass)
 	 */
 	pspec = g_param_spec_object ("package", NULL, NULL,
 				     PK_TYPE_PACKAGE,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_PACKAGE, pspec);
 
 	/**
@@ -1127,7 +1127,7 @@ pk_progress_class_init (PkProgressClass *klass)
 	 */
 	pspec = g_param_spec_object ("item-progress", NULL, NULL,
 				     PK_TYPE_ITEM_PROGRESS,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_ITEM_PROGRESS, pspec);
 
 	g_type_class_add_private (klass, sizeof (PkProgressPrivate));
diff --git a/lib/packagekit-glib2/pk-repo-detail.c b/lib/packagekit-glib2/pk-repo-detail.c
index 27f495a48..56f70b6e8 100644
--- a/lib/packagekit-glib2/pk-repo-detail.c
+++ b/lib/packagekit-glib2/pk-repo-detail.c
@@ -182,7 +182,7 @@ pk_repo_detail_class_init (PkRepoDetailClass *klass)
 	 */
 	pspec = g_param_spec_string ("repo-id", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_REPO_ID, pspec);
 
 	/**
@@ -192,7 +192,7 @@ pk_repo_detail_class_init (PkRepoDetailClass *klass)
 	 */
 	pspec = g_param_spec_string ("description", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_DESCRIPTION, pspec);
 
 	/**
@@ -202,7 +202,7 @@ pk_repo_detail_class_init (PkRepoDetailClass *klass)
 	 */
 	pspec = g_param_spec_boolean ("enabled", NULL, NULL,
 				      FALSE,
-				      G_PARAM_READWRITE);
+				      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_ENABLED, pspec);
 
 	g_type_class_add_private (klass, sizeof (PkRepoDetailPrivate));
diff --git a/lib/packagekit-glib2/pk-repo-signature-required.c b/lib/packagekit-glib2/pk-repo-signature-required.c
index 370fc9ae6..14e1a9f47 100644
--- a/lib/packagekit-glib2/pk-repo-signature-required.c
+++ b/lib/packagekit-glib2/pk-repo-signature-required.c
@@ -178,7 +178,7 @@ pk_repo_signature_required_class_init (PkRepoSignatureRequiredClass *klass)
 	 */
 	pspec = g_param_spec_string ("package-id", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_PACKAGE_ID, pspec);
 
 	/**
@@ -188,7 +188,7 @@ pk_repo_signature_required_class_init (PkRepoSignatureRequiredClass *klass)
 	 */
 	pspec = g_param_spec_string ("repository-name", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_REPOSITORY_NAME, pspec);
 
 	/**
@@ -198,7 +198,7 @@ pk_repo_signature_required_class_init (PkRepoSignatureRequiredClass *klass)
 	 */
 	pspec = g_param_spec_string ("key-url", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_KEY_URL, pspec);
 
 	/**
@@ -208,7 +208,7 @@ pk_repo_signature_required_class_init (PkRepoSignatureRequiredClass *klass)
 	 */
 	pspec = g_param_spec_string ("key-userid", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_KEY_USERID, pspec);
 
 	/**
@@ -218,7 +218,7 @@ pk_repo_signature_required_class_init (PkRepoSignatureRequiredClass *klass)
 	 */
 	pspec = g_param_spec_string ("key-id", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_KEY_ID, pspec);
 
 	/**
@@ -228,7 +228,7 @@ pk_repo_signature_required_class_init (PkRepoSignatureRequiredClass *klass)
 	 */
 	pspec = g_param_spec_string ("key-fingerprint", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_KEY_FINGERPRINT, pspec);
 
 	/**
@@ -238,7 +238,7 @@ pk_repo_signature_required_class_init (PkRepoSignatureRequiredClass *klass)
 	 */
 	pspec = g_param_spec_string ("key-timestamp", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_KEY_TIMESTAMP, pspec);
 
 	/**
@@ -248,7 +248,7 @@ pk_repo_signature_required_class_init (PkRepoSignatureRequiredClass *klass)
 	 */
 	pspec = g_param_spec_enum ("type", NULL, NULL,
 				   PK_TYPE_SIG_TYPE_ENUM, PK_SIGTYPE_ENUM_UNKNOWN,
-				   G_PARAM_READWRITE);
+				   G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_TYPE, pspec);
 
 	g_type_class_add_private (klass, sizeof (PkRepoSignatureRequiredPrivate));
diff --git a/lib/packagekit-glib2/pk-require-restart.c b/lib/packagekit-glib2/pk-require-restart.c
index 4bd067ec1..ed3cf3825 100644
--- a/lib/packagekit-glib2/pk-require-restart.c
+++ b/lib/packagekit-glib2/pk-require-restart.c
@@ -124,7 +124,7 @@ pk_require_restart_class_init (PkRequireRestartClass *klass)
 	 */
 	pspec = g_param_spec_enum ("restart", NULL, NULL,
 				   PK_TYPE_RESTART_ENUM, PK_RESTART_ENUM_UNKNOWN,
-				   G_PARAM_READWRITE);
+				   G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_RESTART, pspec);
 
 	/**
@@ -134,7 +134,7 @@ pk_require_restart_class_init (PkRequireRestartClass *klass)
 	 */
 	pspec = g_param_spec_string ("package-id", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_PACKAGE_ID, pspec);
 
 	g_type_class_add_private (klass, sizeof (PkRequireRestartPrivate));
diff --git a/lib/packagekit-glib2/pk-results.c b/lib/packagekit-glib2/pk-results.c
index 952916082..93ae9a18f 100644
--- a/lib/packagekit-glib2/pk-results.c
+++ b/lib/packagekit-glib2/pk-results.c
@@ -846,7 +846,7 @@ pk_results_class_init (PkResultsClass *klass)
 	 */
 	pspec = g_param_spec_enum ("role", NULL, NULL,
 				   PK_TYPE_ROLE_ENUM, PK_ROLE_ENUM_UNKNOWN,
-				   G_PARAM_READWRITE);
+				   G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_ROLE, pspec);
 
 	/**
@@ -858,7 +858,7 @@ pk_results_class_init (PkResultsClass *klass)
 	 */
 	pspec = g_param_spec_uint64 ("transaction-flags", NULL, NULL,
 				     0, G_MAXUINT64, 0,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_TRANSACTION_FLAGS, pspec);
 
 	/**
@@ -868,7 +868,7 @@ pk_results_class_init (PkResultsClass *klass)
 	 */
 	pspec = g_param_spec_uint ("inputs", NULL, NULL,
 				   0, G_MAXUINT, 0,
-				   G_PARAM_READWRITE);
+				   G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_INPUTS, pspec);
 
 	g_type_class_add_private (klass, sizeof (PkResultsPrivate));
@@ -881,7 +881,7 @@ pk_results_class_init (PkResultsClass *klass)
 	pspec = g_param_spec_object ("progress", NULL,
 				     "The progress instance",
 				     PK_TYPE_PROGRESS,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_PROGRESS, pspec);
 }
 
diff --git a/lib/packagekit-glib2/pk-source.c b/lib/packagekit-glib2/pk-source.c
index 447dc74e4..a64a9198d 100644
--- a/lib/packagekit-glib2/pk-source.c
+++ b/lib/packagekit-glib2/pk-source.c
@@ -123,7 +123,7 @@ pk_source_class_init (PkSourceClass *klass)
 	 */
 	pspec = g_param_spec_enum ("role", NULL, NULL,
 				   PK_TYPE_ROLE_ENUM, PK_ROLE_ENUM_UNKNOWN,
-				   G_PARAM_READWRITE);
+				   G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_ROLE, pspec);
 
 	/**
@@ -133,7 +133,7 @@ pk_source_class_init (PkSourceClass *klass)
 	 */
 	pspec = g_param_spec_string ("transaction-id", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_TRANSACTION_ID, pspec);
 
 	g_type_class_add_private (klass, sizeof (PkSourcePrivate));
diff --git a/lib/packagekit-glib2/pk-task.c b/lib/packagekit-glib2/pk-task.c
index 6470f2389..205c6e1cd 100644
--- a/lib/packagekit-glib2/pk-task.c
+++ b/lib/packagekit-glib2/pk-task.c
@@ -2581,7 +2581,7 @@ pk_task_class_init (PkTaskClass *klass)
 	 */
 	pspec = g_param_spec_boolean ("simulate", NULL, NULL,
 				      TRUE,
-				      G_PARAM_READWRITE);
+				      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_SIMULATE, pspec);
 
 	/**
@@ -2593,7 +2593,7 @@ pk_task_class_init (PkTaskClass *klass)
 	 */
 	pspec = g_param_spec_boolean ("only-download", NULL, NULL,
 				      FALSE,
-				      G_PARAM_READWRITE);
+				      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_ONLY_PREPARE, pspec);
 
 	/**
@@ -2605,7 +2605,7 @@ pk_task_class_init (PkTaskClass *klass)
 	 */
 	pspec = g_param_spec_boolean ("only-trusted", NULL, NULL,
 				      TRUE,
-				      G_PARAM_READWRITE);
+				      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_ONLY_TRUSTED, pspec);
 
 	/**
@@ -2617,7 +2617,7 @@ pk_task_class_init (PkTaskClass *klass)
 	 */
 	pspec = g_param_spec_boolean ("allow-reinstall", NULL, NULL,
 				      FALSE,
-				      G_PARAM_READWRITE);
+				      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_ALLOW_REINSTALL, pspec);
 
 	/**
@@ -2629,7 +2629,7 @@ pk_task_class_init (PkTaskClass *klass)
 	 */
 	pspec = g_param_spec_boolean ("allow-downgrade", NULL, NULL,
 				      FALSE,
-				      G_PARAM_READWRITE);
+				      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_ALLOW_DOWNGRADE, pspec);
 
 	g_type_class_add_private (klass, sizeof (PkTaskPrivate));
diff --git a/lib/packagekit-glib2/pk-transaction-past.c b/lib/packagekit-glib2/pk-transaction-past.c
index 1cfb9d440..90720953b 100644
--- a/lib/packagekit-glib2/pk-transaction-past.c
+++ b/lib/packagekit-glib2/pk-transaction-past.c
@@ -357,7 +357,7 @@ pk_transaction_past_class_init (PkTransactionPastClass *klass)
 	 */
 	pspec = g_param_spec_string ("tid", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_TID, pspec);
 
 	/**
@@ -367,7 +367,7 @@ pk_transaction_past_class_init (PkTransactionPastClass *klass)
 	 */
 	pspec = g_param_spec_string ("timespec", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_TIMESPEC, pspec);
 
 	/**
@@ -377,7 +377,7 @@ pk_transaction_past_class_init (PkTransactionPastClass *klass)
 	 */
 	pspec = g_param_spec_boolean ("succeeded", NULL, NULL,
 				      FALSE,
-				      G_PARAM_READWRITE);
+				      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_SUCCEEDED, pspec);
 
 	/**
@@ -387,7 +387,7 @@ pk_transaction_past_class_init (PkTransactionPastClass *klass)
 	 */
 	pspec = g_param_spec_enum ("role", NULL, NULL,
 				   PK_TYPE_ROLE_ENUM, PK_ROLE_ENUM_UNKNOWN,
-				   G_PARAM_READWRITE);
+				   G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_ROLE, pspec);
 
 	/**
@@ -397,7 +397,7 @@ pk_transaction_past_class_init (PkTransactionPastClass *klass)
 	 */
 	pspec = g_param_spec_uint ("duration", NULL, NULL,
 				   0, G_MAXUINT, 0,
-				   G_PARAM_READWRITE);
+				   G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_DURATION, pspec);
 
 	/**
@@ -407,7 +407,7 @@ pk_transaction_past_class_init (PkTransactionPastClass *klass)
 	 */
 	pspec = g_param_spec_string ("data", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_DATA, pspec);
 
 	/**
@@ -417,7 +417,7 @@ pk_transaction_past_class_init (PkTransactionPastClass *klass)
 	 */
 	pspec = g_param_spec_uint ("uid", NULL, NULL,
 				   0, G_MAXUINT, G_MAXUINT,
-				   G_PARAM_READWRITE);
+				   G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_UID, pspec);
 
 	/**
@@ -427,7 +427,7 @@ pk_transaction_past_class_init (PkTransactionPastClass *klass)
 	 */
 	pspec = g_param_spec_string ("cmdline", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_CMDLINE, pspec);
 
 	g_type_class_add_private (klass, sizeof (PkTransactionPastPrivate));
diff --git a/lib/packagekit-glib2/pk-update-detail.c b/lib/packagekit-glib2/pk-update-detail.c
index 7039fe7d0..2b626beb7 100644
--- a/lib/packagekit-glib2/pk-update-detail.c
+++ b/lib/packagekit-glib2/pk-update-detail.c
@@ -415,7 +415,7 @@ pk_update_detail_class_init (PkUpdateDetailClass *klass)
 	 */
 	pspec = g_param_spec_string ("package-id", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_PACKAGE_ID, pspec);
 
 	/**
@@ -425,7 +425,7 @@ pk_update_detail_class_init (PkUpdateDetailClass *klass)
 	 */
 	pspec = g_param_spec_boxed ("updates", NULL, NULL,
 				    G_TYPE_STRV,
-				    G_PARAM_READWRITE);
+				    G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_UPDATES, pspec);
 
 	/**
@@ -435,7 +435,7 @@ pk_update_detail_class_init (PkUpdateDetailClass *klass)
 	 */
 	pspec = g_param_spec_boxed ("obsoletes", NULL, NULL,
 				    G_TYPE_STRV,
-				    G_PARAM_READWRITE);
+				    G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_OBSOLETES, pspec);
 
 	/**
@@ -445,7 +445,7 @@ pk_update_detail_class_init (PkUpdateDetailClass *klass)
 	 */
 	pspec = g_param_spec_boxed ("vendor-urls", NULL, NULL,
 				    G_TYPE_STRV,
-				    G_PARAM_READWRITE);
+				    G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_VENDOR_URLS, pspec);
 
 	/**
@@ -455,7 +455,7 @@ pk_update_detail_class_init (PkUpdateDetailClass *klass)
 	 */
 	pspec = g_param_spec_boxed ("bugzilla-urls", NULL, NULL,
 				    G_TYPE_STRV,
-				    G_PARAM_READWRITE);
+				    G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_BUGZILLA_URLS, pspec);
 
 	/**
@@ -465,7 +465,7 @@ pk_update_detail_class_init (PkUpdateDetailClass *klass)
 	 */
 	pspec = g_param_spec_boxed ("cve-urls", NULL, NULL,
 				    G_TYPE_STRV,
-				    G_PARAM_READWRITE);
+				    G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_CVE_URLS, pspec);
 
 	/**
@@ -475,7 +475,7 @@ pk_update_detail_class_init (PkUpdateDetailClass *klass)
 	 */
 	pspec = g_param_spec_enum ("restart", NULL, NULL,
 				   PK_TYPE_RESTART_ENUM, PK_RESTART_ENUM_UNKNOWN,
-				   G_PARAM_READWRITE);
+				   G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_RESTART, pspec);
 
 	/**
@@ -485,7 +485,7 @@ pk_update_detail_class_init (PkUpdateDetailClass *klass)
 	 */
 	pspec = g_param_spec_string ("update-text", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_UPDATE_TEXT, pspec);
 
 	/**
@@ -495,7 +495,7 @@ pk_update_detail_class_init (PkUpdateDetailClass *klass)
 	 */
 	pspec = g_param_spec_string ("changelog", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_CHANGELOG, pspec);
 
 	/**
@@ -505,7 +505,7 @@ pk_update_detail_class_init (PkUpdateDetailClass *klass)
 	 */
 	pspec = g_param_spec_enum ("state", NULL, NULL,
 				   PK_TYPE_UPDATE_STATE_ENUM, PK_UPDATE_STATE_ENUM_UNKNOWN,
-				   G_PARAM_READWRITE);
+				   G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_STATE, pspec);
 
 	/**
@@ -515,7 +515,7 @@ pk_update_detail_class_init (PkUpdateDetailClass *klass)
 	 */
 	pspec = g_param_spec_string ("issued", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_ISSUED, pspec);
 
 	/**
@@ -525,7 +525,7 @@ pk_update_detail_class_init (PkUpdateDetailClass *klass)
 	 */
 	pspec = g_param_spec_string ("updated", NULL, NULL,
 				     NULL,
-				     G_PARAM_READWRITE);
+				     G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_UPDATED, pspec);
 
 	g_type_class_add_private (klass, sizeof (PkUpdateDetailPrivate));
diff --git a/src/pk-spawn.c b/src/pk-spawn.c
index dd2b04b8f..c8bf6ed81 100644
--- a/src/pk-spawn.c
+++ b/src/pk-spawn.c
@@ -690,7 +690,7 @@ pk_spawn_class_init (PkSpawnClass *klass)
 	 */
 	pspec = g_param_spec_boolean ("background", NULL, NULL,
 				      FALSE,
-				      G_PARAM_READWRITE);
+				      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_BACKGROUND, pspec);
 
 	/**
@@ -701,7 +701,7 @@ pk_spawn_class_init (PkSpawnClass *klass)
 	 */
 	pspec = g_param_spec_boolean ("allow-sigkill", NULL, NULL,
 				      FALSE,
-				      G_PARAM_READWRITE);
+				      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 	g_object_class_install_property (object_class, PROP_ALLOW_SIGKILL, pspec);
 
 	signals [SIGNAL_EXIT] =
commit 7d5d1ca7e8837c649ca88c4c25349889e5a9fe11
Author: Milan Crha <mcrha at redhat.com>
Date:   Thu Apr 13 10:00:34 2023 +0200

    dnf-backend: Calculate download size with dependencies, if requested
    
    Check the job's "details-with-deps-size" option and add dependencies'
    download size for packages, which are not installed.

diff --git a/backends/dnf/pk-backend-dnf.c b/backends/dnf/pk-backend-dnf.c
index 467a87f4e..be99a6df9 100644
--- a/backends/dnf/pk-backend-dnf.c
+++ b/backends/dnf/pk-backend-dnf.c
@@ -1878,9 +1878,32 @@ backend_get_details_thread (PkBackendJob *job, GVariant *params, gpointer user_d
 
 	/* emit details */
 	for (i = 0; package_ids[i] != NULL; i++) {
+		guint64 download_size;
 		pkg = g_hash_table_lookup (hash, package_ids[i]);
 		if (pkg == NULL)
 			continue;
+		download_size = dnf_package_is_downloaded (pkg) ? 0 : dnf_package_get_downloadsize (pkg);
+		if (pk_backend_job_get_details_with_deps_size (job) &&
+		    !dnf_package_installed (pkg)) {
+			g_autoptr(DnfReldepList) requires = NULL;
+			requires = dnf_package_get_requires (pkg);
+			if (requires) {
+				g_autoptr(GPtrArray) pkglist_reqs = NULL;
+				HyQuery query = hy_query_create (sack);
+				guint j;
+
+				hy_query_filter_reldep_in (query, HY_PKG_PROVIDES, requires);
+				pkglist_reqs = hy_query_run (query);
+				for (j = 0; pkglist_reqs && j < pkglist_reqs->len; j++) {
+					DnfPackage *pkg_req = g_ptr_array_index (pkglist_reqs, j);
+					if (pkg_req && !dnf_package_installed (pkg_req) &&
+					    !dnf_package_is_downloaded (pkg_req))
+						download_size += dnf_package_get_downloadsize (pkg_req);
+				}
+				hy_query_free (query);
+			}
+		}
+
 		pk_backend_job_details_full (job,
 					     package_ids[i],
 					     dnf_package_get_summary (pkg),
@@ -1889,7 +1912,7 @@ backend_get_details_thread (PkBackendJob *job, GVariant *params, gpointer user_d
 					     dnf_package_get_description (pkg),
 					     dnf_package_get_url (pkg),
 					     (gulong) dnf_package_get_installsize (pkg),
-					     dnf_package_is_downloaded (pkg) ? 0 : dnf_package_get_downloadsize (pkg));
+					     download_size);
 	}
 
 	/* done */
commit 06d4430c94f2f9e41407c497c1953aa8cb744187
Author: Milan Crha <mcrha at redhat.com>
Date:   Thu Apr 13 09:57:57 2023 +0200

    PkClient: Add an option to count download size with dependencies
    
    Allow returning package details with download size including the dependencies,
    which provides more accurate information, especially for packages, which are
    split to a binary package and to a data package, like the games.

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 090652b1b..248bec82f 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -65,6 +65,7 @@ struct _PkClientPrivate
 	gboolean		 background;
 	gboolean		 interactive;
 	gboolean		 idle;
+	gboolean		 details_with_deps_size;
 	guint			 cache_age;
 };
 
@@ -75,6 +76,7 @@ enum {
 	PROP_INTERACTIVE,
 	PROP_IDLE,
 	PROP_CACHE_AGE,
+	PROP_DETAILS_WITH_DEPS_SIZE,
 	PROP_LAST
 };
 
@@ -431,6 +433,9 @@ pk_client_get_property (GObject *object, guint prop_id, GValue *value, GParamSpe
 	case PROP_CACHE_AGE:
 		g_value_set_uint (value, priv->cache_age);
 		break;
+	case PROP_DETAILS_WITH_DEPS_SIZE:
+		g_value_set_boolean (value, priv->details_with_deps_size);
+		break;
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 		break;
@@ -460,6 +465,9 @@ pk_client_set_property (GObject *object, guint prop_id, const GValue *value, GPa
 	case PROP_CACHE_AGE:
 		priv->cache_age = g_value_get_uint (value);
 		break;
+	case PROP_DETAILS_WITH_DEPS_SIZE:
+		priv->details_with_deps_size = g_value_get_boolean (value);
+		break;
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 		break;
@@ -2277,6 +2285,10 @@ pk_client_get_proxy_cb (GObject *object,
 				pk_client_bool_to_string (state->client->priv->interactive));
 	g_ptr_array_add (array, hint);
 
+	if (state->client->priv->details_with_deps_size &&
+	    state->role == PK_ROLE_ENUM_GET_DETAILS)
+		g_ptr_array_add (array, g_strdup ("details-with-deps-size=true"));
+
 	/* cache-age */
 	if (state->client->priv->cache_age > 0) {
 		hint = g_strdup_printf ("cache-age=%u",
@@ -4628,6 +4640,46 @@ pk_client_get_cache_age (PkClient *client)
 	return client->priv->cache_age;
 }
 
+/**
+ * pk_client_set_details_with_deps_size:
+ * @client: a valid #PkClient instance
+ * @details_with_deps_size: the value to set
+ *
+ * Sets whether the pk_client_get_details_async() should include dependencies
+ * download sizes for packages, which are not installed.
+ *
+ * Since: 1.2.7
+ **/
+void
+pk_client_set_details_with_deps_size (PkClient *client, gboolean details_with_deps_size)
+{
+	g_return_if_fail (PK_IS_CLIENT (client));
+
+	if (client->priv->details_with_deps_size == details_with_deps_size)
+		return;
+
+	client->priv->details_with_deps_size = details_with_deps_size;
+	g_object_notify (G_OBJECT (client), "details-with-deps-size");
+}
+
+/**
+ * pk_client_get_details_with_deps_size:
+ * @client: a valid #PkClient instance
+ *
+ * Gets the client details-with-deps-size value.
+ *
+ * Returns: whether the pk_client_get_details_async() should include dependencies
+ *    download sizes for packages, which are not installed.
+ *
+ * Since: 1.2.7
+ **/
+gboolean
+pk_client_get_details_with_deps_size (PkClient *client)
+{
+	g_return_val_if_fail (PK_IS_CLIENT (client), FALSE);
+	return client->priv->details_with_deps_size;
+}
+
 /*
  * pk_client_class_init:
  **/
@@ -4691,6 +4743,16 @@ pk_client_class_init (PkClientClass *klass)
 				   0, G_MAXUINT, G_MAXUINT,
 				   G_PARAM_READWRITE);
 	g_object_class_install_property (object_class, PROP_CACHE_AGE, pspec);
+
+	/**
+	 * PkClient:details-with-deps-size:
+	 *
+	 * Since: 1.2.7
+	 */
+	pspec = g_param_spec_boolean ("details-with-deps-size", NULL, NULL,
+				      FALSE,
+				      G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_DETAILS_WITH_DEPS_SIZE, pspec);
 }
 
 /*
@@ -4705,6 +4767,7 @@ pk_client_init (PkClient *client)
 	client->priv->interactive = TRUE;
 	client->priv->idle = TRUE;
 	client->priv->cache_age = G_MAXUINT;
+	client->priv->details_with_deps_size = FALSE;
 
 	/* use a control object */
 	client->priv->control = pk_control_new ();
diff --git a/lib/packagekit-glib2/pk-client.h b/lib/packagekit-glib2/pk-client.h
index f203b18fa..633b544fa 100644
--- a/lib/packagekit-glib2/pk-client.h
+++ b/lib/packagekit-glib2/pk-client.h
@@ -431,6 +431,9 @@ gboolean	 pk_client_get_idle			(PkClient		*client);
 void		 pk_client_set_cache_age		(PkClient		*client,
 							 guint			 cache_age);
 guint		 pk_client_get_cache_age		(PkClient		*client);
+void		 pk_client_set_details_with_deps_size	(PkClient		*client,
+							 gboolean		 details_with_deps_size);
+gboolean	 pk_client_get_details_with_deps_size	(PkClient		*client);
 
 G_END_DECLS
 
diff --git a/src/pk-backend-job.c b/src/pk-backend-job.c
index 0485bf057..a000bfebb 100644
--- a/src/pk-backend-job.c
+++ b/src/pk-backend-job.c
@@ -100,6 +100,7 @@ struct PkBackendJobPrivate
 	gboolean		 allow_cancel;
 	gboolean		 background;
 	gboolean		 interactive;
+	gboolean		 details_with_deps_size;
 	gboolean		 locked;
 	GHashTable		*emitted;
 	PkErrorEnum		 last_error_code;
@@ -482,6 +483,20 @@ pk_backend_job_set_interactive (PkBackendJob *job, gboolean interactive)
 	job->priv->interactive = interactive;
 }
 
+gboolean
+pk_backend_job_get_details_with_deps_size (PkBackendJob *job)
+{
+	g_return_val_if_fail (PK_IS_BACKEND_JOB (job), FALSE);
+	return job->priv->details_with_deps_size;
+}
+
+void
+pk_backend_job_set_details_with_deps_size (PkBackendJob *job, gboolean details_with_deps_size)
+{
+	g_return_if_fail (PK_IS_BACKEND_JOB (job));
+	job->priv->details_with_deps_size = details_with_deps_size;
+}
+
 PkRoleEnum
 pk_backend_job_get_role (PkBackendJob *job)
 {
diff --git a/src/pk-backend-job.h b/src/pk-backend-job.h
index 35a1fb670..7680c31f6 100644
--- a/src/pk-backend-job.h
+++ b/src/pk-backend-job.h
@@ -146,6 +146,11 @@ const gchar	*pk_backend_job_get_pac			(PkBackendJob	*job);
 const gchar	*pk_backend_job_get_locale		(PkBackendJob	*job);
 const gchar	*pk_backend_job_get_frontend_socket	(PkBackendJob	*job);
 guint		 pk_backend_job_get_cache_age		(PkBackendJob	*job);
+gboolean	 pk_backend_job_get_details_with_deps_size
+							(PkBackendJob	*job);
+void		 pk_backend_job_set_details_with_deps_size
+							(PkBackendJob	*job,
+							 gboolean	 details_with_deps_size);
 
 /* transaction vfuncs */
 typedef void	 (*PkBackendJobVFunc)			(PkBackendJob	*job,
diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index 3cab2ecf0..c9856b0a3 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -4882,6 +4882,22 @@ pk_transaction_set_hint (PkTransaction *transaction,
 		return TRUE;
 	}
 
+	/* details-with-deps-size=true */
+	if (g_strcmp0 (key, "details-with-deps-size") == 0) {
+		if (g_strcmp0 (value, "true") == 0) {
+			pk_backend_job_set_details_with_deps_size (priv->job, TRUE);
+		} else if (g_strcmp0 (value, "false") == 0) {
+			pk_backend_job_set_details_with_deps_size (priv->job, FALSE);
+		} else {
+			g_set_error (error,
+				     PK_TRANSACTION_ERROR,
+				     PK_TRANSACTION_ERROR_NOT_SUPPORTED,
+				      "details-with-deps-size hint expects true or false, not %s", value);
+			return FALSE;
+		}
+		return TRUE;
+	}
+
 	/* Is the plural Packages signal supported? The key’s value is ignored,
 	 * as clients will only send it if it’s true. */
 	if (g_strcmp0 (key, "supports-plural-signals") == 0) {
commit 7fd38cfcc1e80b38ef603cfe488a62085f4914b2
Author: Gleb Popov <6yearold at gmail.com>
Date:   Wed May 17 09:11:58 2023 +0300

    Make use of SYSCONFDIR definition when setting a config file watch.
    
    On FreeBSD the config file is located under /usr/local prefix.

diff --git a/src/pk-engine.c b/src/pk-engine.c
index d5962c46d..c910c1f18 100644
--- a/src/pk-engine.c
+++ b/src/pk-engine.c
@@ -919,7 +919,7 @@ pk_engine_network_state_changed_cb (GNetworkMonitor *network_monitor,
 static void
 pk_engine_setup_file_monitors (PkEngine *engine)
 {
-	const gchar *filename = "/etc/PackageKit/PackageKit.conf";
+	const gchar *filename = SYSCONFDIR "/PackageKit/PackageKit.conf";
 	g_autoptr(GError) error = NULL;
 	g_autoptr(GFile) file_binary = NULL;
 	g_autoptr(GFile) file_conf = NULL;
commit 45dc514fb5fb4e5b4118334a710d6e23cea8af07
Author: Gleb Popov <6yearold at gmail.com>
Date:   Wed May 17 16:28:21 2023 +0300

    Enable testing on FreeBSD CI

diff --git a/.cirrus.yml b/.cirrus.yml
index 90d9d0b79..da4c7e9bd 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -1,5 +1,5 @@
 task:
-  name: "build (freebsd)"
+  name: "build and test (freebsd)"
   freebsd_instance:
     matrix:
       - image_family: freebsd-13-2-snap
@@ -7,9 +7,14 @@ task:
     - env ASSUME_ALWAYS_YES=yes pkg update -f
     - env ASSUME_ALWAYS_YES=yes pkg install -y docbook-xsl vala libxslt fontconfig polkit consolekit2
         desktop-file-utils gettext meson ninja python3 glib gtk3 pkgconf sqlite3 gobject-introspection
+        dbus
   build_script:
-    - meson --auto-features=enabled -Db_colorout=never --buildtype debug --strip -Dlocalstatedir=/var
+    - meson --auto-features=enabled -Db_colorout=never --buildtype debug -Dlocal_checkout=true -Dlocalstatedir=/var
         -Dsystemd=false -Doffline_update=false  -Dbash_completion=false -Dbash_command_not_found=false
         -Dgstreamer_plugin=false _build
     - cd _build
     - ninja -v all
+  test_script:
+    - cd _build
+    - service dbus onestart
+    - ninja test
commit 409ba85b00f02bfd66589b457a148cce82ad2a34
Author: Philip Withnall <pwithnall at endlessos.org>
Date:   Wed Mar 15 16:29:34 2023 +0000

    pk-transaction: Check that Finished signal is emitted at least once
    
    It feels like transactions should always emit `Finished` before being
    removed from the bus, either signalling success or containing error
    details. Emitting a signal like this allows client code to track
    transactions properly.
    
    A lot of the code paths in `PkTransaction` ensure that `Finished` is
    emitted. However, there is at least one code path where it’s not, and
    that was causing the assertion in this commit to fail:
    ```
    4  0x00007ffff77408ae in g_assertion_message_expr () at /lib64/libglib-2.0.so.0
    5  0x000000000044f9e7 in pk_transaction_dispose (object=0x62500010af80)
       at ../../source/PackageKit/src/pk-transaction.c:5512
    6  0x00007ffff7eeb8d4 in g_object_unref () at /lib64/libgobject-2.0.so.0
    7  0x00000000004acb4b in pk_scheduler_item_free (item=0x607000311210)
       at ../../source/PackageKit/src/pk-scheduler.c:201
    8  0x00000000004ad140 in pk_scheduler_remove_internal
       (scheduler=0x61d000004120, item=0x607000311210)
       at ../../source/PackageKit/src/pk-scheduler.c:233
    9  0x00000000004b0083 in pk_scheduler_no_commit_cb (user_data=0x607000311210)
       at ../../source/PackageKit/src/pk-scheduler.c:590
    ```
    
    That’s the code path to handle a transaction which is created, but which
    then isn’t used by the client before a timeout triggers.
    
    The documentation isn’t clear on when `Finished` should be emitted.
    There’s also the `Destroy` signal which *is* always emitted before the
    transaction is removed from the bus.
    
    On the basis that every other code path emits `Finished`, this commit
    also makes the `pk_scheduler_no_commit_cb()` path emit `Finished` too.
    
    Now clients can use `Finished` and bus name notifications to reliably track
    a transaction’s lifetime.
    
    Signed-off-by: Philip Withnall <pwithnall at endlessos.org>

diff --git a/src/pk-scheduler.c b/src/pk-scheduler.c
index 754ce3d1e..42e137bc7 100644
--- a/src/pk-scheduler.c
+++ b/src/pk-scheduler.c
@@ -585,6 +585,7 @@ pk_scheduler_no_commit_cb (gpointer user_data)
 {
 	PkSchedulerItem *item = (PkSchedulerItem *) user_data;
 	g_warning ("ID %s was not committed in time!", item->tid);
+	pk_transaction_cancel_bg (item->transaction);
 	pk_scheduler_remove_internal (item->scheduler, item);
 
 	/* never repeat */
diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index ad53cace1..3cab2ecf0 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -5508,6 +5508,9 @@ pk_transaction_dispose (GObject *object)
 	}
 
 	if (transaction->priv->registration_id > 0) {
+		/* We should have emitted ::Finished if the object was ever registered */
+		g_assert (transaction->priv->emitted_finished);
+
 		g_dbus_connection_unregister_object (transaction->priv->connection,
 						     transaction->priv->registration_id);
 		transaction->priv->registration_id = 0;
commit 64278c9127e3333342b56ead99556161f7e86f79
Author: Philip Withnall <pwithnall at endlessos.org>
Date:   Wed Mar 15 16:28:35 2023 +0000

    pk-transaction: Check that Finished signal is emitted at most once
    
    While I haven’t seen it being emitted more than once, the transaction
    code is quite complex, and it would make things more robust to add a
    check to verify this.
    
    Signed-off-by: Philip Withnall <pwithnall at endlessos.org>

diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index 192ef2347..ad53cace1 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -90,6 +90,7 @@ struct PkTransactionPrivate
 	guint			 speed;
 	guint			 download_size_remaining;
 	gboolean		 finished;
+	gboolean		 emitted_finished;
 	gboolean		 allow_cancel;
 	gboolean		 waiting_for_auth;
 	gboolean		 emit_eula_required;
@@ -510,6 +511,9 @@ pk_transaction_finished_emit (PkTransaction *transaction,
 			      PkExitEnum exit_enum,
 			      guint time_ms)
 {
+	g_assert (!transaction->priv->emitted_finished);
+	transaction->priv->emitted_finished = TRUE;
+
 	g_debug ("emitting finished '%s', %i",
 		 pk_exit_enum_to_string (exit_enum),
 		 time_ms);
commit 44215db95d9cfda23045d9a9b97175519f473eb2
Author: Philip Withnall <pwithnall at endlessos.org>
Date:   Wed Mar 15 16:25:18 2023 +0000

    pk-client: Signal a transaction as finished if it disappears off the bus
    
    The client code already does this if the `Finished` signal is received,
    or if the packagekitd process completely disappears off the bus.
    However, if the transaction is destroyed by the daemon without emitting
    `Finished`, it’s possible for the client proxy for it to never complete.
    
    Fix that by calling `pk_client_state_finish()` in a few additional
    locations.
    
    Signed-off-by: Philip Withnall <pwithnall at endlessos.org>

diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index c18069734..090652b1b 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -349,7 +349,12 @@ pk_client_cancellable_cancel_cb (GCancellable *cancellable,
 
 	/* dbus method has not yet fired */
 	if (state->proxy == NULL) {
+		g_autoptr(GError) local_error = NULL;
+
 		g_debug ("Cancelled, but no proxy, not sure what to do here");
+		local_error = g_error_new_literal (PK_CLIENT_ERROR, PK_CLIENT_ERROR_FAILED,
+						   "PackageKit transaction disappeared");
+		pk_client_state_finish (state, local_error);
 		return;
 	}
 
@@ -1582,8 +1587,16 @@ pk_client_signal_cb (GDBusProxy *proxy,
 		}
 		return;
 	}
-	if (g_strcmp0 (signal_name, "Destroy") == 0)
+	if (g_strcmp0 (signal_name, "Destroy") == 0) {
+		g_autoptr(GError) local_error = NULL;
+
+		if (state->waiting_for_finished)
+			local_error = g_error_new_literal (PK_CLIENT_ERROR, PK_CLIENT_ERROR_FAILED,
+							   "PackageKit transaction disappeared");
+
+		pk_client_state_finish (state, local_error);
 		return;
+	}
 }
 
 static void
commit 4058a283bd04e6d7215c444c38d2455a371a913e
Author: Wang Zichong <wangzichong at deepin.org>
Date:   Mon May 15 00:28:20 2023 +0800

    PkGroupEnum: avoid ABI change for the newly added value

diff --git a/lib/packagekit-glib2/pk-enum.h b/lib/packagekit-glib2/pk-enum.h
index af417b72b..cfe8946bd 100644
--- a/lib/packagekit-glib2/pk-enum.h
+++ b/lib/packagekit-glib2/pk-enum.h
@@ -523,7 +523,6 @@ typedef enum {
  * @PK_GROUP_ENUM_ACCESSORIES: Accessory packages
  * @PK_GROUP_ENUM_ADMIN_TOOLS: Administration tools packages
  * @PK_GROUP_ENUM_COMMUNICATION: Communication packages
- * @PK_GROUP_ENUM_DESKTOP_DDE: DDE packages
  * @PK_GROUP_ENUM_DESKTOP_GNOME: GNOME packages
  * @PK_GROUP_ENUM_DESKTOP_KDE: KDE packages
  * @PK_GROUP_ENUM_DESKTOP_OTHER: Other desktop packages
@@ -554,6 +553,7 @@ typedef enum {
  * @PK_GROUP_ENUM_COLLECTIONS:
  * @PK_GROUP_ENUM_VENDOR: Vendor defined group
  * @PK_GROUP_ENUM_NEWEST: Special group for recently updated packages
+ * @PK_GROUP_ENUM_DESKTOP_DDE: DDE packages
  * @PK_GROUP_ENUM_LAST:
  *
  * The group type
@@ -564,7 +564,6 @@ typedef enum {
 	PK_GROUP_ENUM_ACCESSORIES,
 	PK_GROUP_ENUM_ADMIN_TOOLS,
 	PK_GROUP_ENUM_COMMUNICATION,
-	PK_GROUP_ENUM_DESKTOP_DDE,
 	PK_GROUP_ENUM_DESKTOP_GNOME,
 	PK_GROUP_ENUM_DESKTOP_KDE,
 	PK_GROUP_ENUM_DESKTOP_OTHER,
@@ -595,6 +594,7 @@ typedef enum {
 	PK_GROUP_ENUM_COLLECTIONS,
 	PK_GROUP_ENUM_VENDOR,
 	PK_GROUP_ENUM_NEWEST,
+	PK_GROUP_ENUM_DESKTOP_DDE,
 	PK_GROUP_ENUM_LAST
 } PkGroupEnum;
 
commit b18d1de2f9363734aa3d8c6008f0f92adb98ac98
Author: Neal Gompa <neal at gompa.dev>
Date:   Sun May 14 10:45:24 2023 -0400

    ci: Update the name of the FreeBSD CI pipeline
    
    That makes it easier to identify when looking at the pipelines at
    a glance.

diff --git a/.cirrus.yml b/.cirrus.yml
index 4033a2814..90d9d0b79 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -1,4 +1,5 @@
 task:
+  name: "build (freebsd)"
   freebsd_instance:
     matrix:
       - image_family: freebsd-13-2-snap
commit 6c05146b73f52c54f8002429184f9632cf06b304
Author: Neal Gompa <neal at gompa.dev>
Date:   Sun May 14 10:29:41 2023 -0400

    HACKING: Refresh to match current practices
    
    We've long since accepted contributions via GitHub pull requests,
    so we should indicate as much. Additionally, provide lightweight
    guidance about how to structure patches matching what we do today.
    
    Finally, add a symlink to point CONTRIBUTING to HACKING.

diff --git a/CONTRIBUTING b/CONTRIBUTING
new file mode 120000
index 000000000..3f7568eb2
--- /dev/null
+++ b/CONTRIBUTING
@@ -0,0 +1 @@
+HACKING
\ No newline at end of file
diff --git a/HACKING b/HACKING
index 0f837083b..7b7a6d3f2 100644
--- a/HACKING
+++ b/HACKING
@@ -62,10 +62,16 @@ Remember:
 
 Submitting Patches
 ------------------
-Use 'git format-patch' to generate patches against a checked out copy
-of the source.
+We prefer patches submitted as pull requests to our GitHub project at
+https://github.com/PackageKit/PackageKit
 
-For Example:
+However, if you are unable to use GitHub, you can also submit patches
+via email.
+
+To do so, Use 'git format-patch' to generate patches against a checked
+out copy of the source.
+
+For example:
 
 	$> cd PackageKit
 	HACK HACK HACK
@@ -79,3 +85,29 @@ For Example:
 Send these patches in an introductory email as attachments to
 packagekit at lists.freedesktop.org
 
+Commit/Patch Style
+------------------
+Commits (and thus patches) should be structured such that each one
+is a logically distinct change that stands well and can be tested
+on its own.
+
+Commit/Patch messages should be wrapped at 72 characters, and the
+subject line (minus the subsystem prefix) should be less than 50
+characters.
+
+What we mean by subsystem prefix is the portion of the codebase
+that is being modified.
+
+For example, if you are changing something in the main library,
+use "lib:" as the prefix of the patch subject. If you are
+changing something in one of the backends, use the backend name
+as the prefix in the patch subject.
+
+There are a number of examples of this already in the revision
+history, so look at any number of them for good examples.
+
+Finally, please do not use commit messages as a means for
+advertising. The revision history is not a place for rent-free
+permanent advertising. It can be especially problematic as
+sponsoring entities change, rename, or such.  That means that
+tags like "Sponsored-by" or similar are not allowed.
commit 82f862b46c00141c12251bb19017ef2f30769fc4
Author: Neal Gompa <neal at gompa.dev>
Date:   Sun May 14 10:10:35 2023 -0400

    packagekit-glib2: Use the correct enum for DDE
    
    Fixes: aa07e0b77bd297cf9fd617ae9b8dd7e0cf218c50 ("Use the term DDE instead of deepin")

diff --git a/lib/packagekit-glib2/pk-enum.c b/lib/packagekit-glib2/pk-enum.c
index c02cef61a..c8d3deae2 100644
--- a/lib/packagekit-glib2/pk-enum.c
+++ b/lib/packagekit-glib2/pk-enum.c
@@ -263,7 +263,7 @@ static const PkEnumMatch enum_group[] = {
 	{PK_GROUP_ENUM_DESKTOP_GNOME,		"desktop-gnome"},
 	{PK_GROUP_ENUM_DESKTOP_KDE,		"desktop-kde"},
 	{PK_GROUP_ENUM_DESKTOP_XFCE,		"desktop-xfce"},
-	{PK_GROUP_ENUM_DESKTOP_DEEPIN,		"desktop-dde"},
+	{PK_GROUP_ENUM_DESKTOP_DDE,		"desktop-dde"},
 	{PK_GROUP_ENUM_DESKTOP_OTHER,		"desktop-other"},
 	{PK_GROUP_ENUM_PUBLISHING,		"publishing"},
 	{PK_GROUP_ENUM_SERVERS,			"servers"},
commit 5579374d6d792c474cb35accaa7ecbea6db6f17f
Author: Alexey Yushkin <636808 at mail.ru>
Date:   Wed Apr 19 15:41:42 2023 +0300

    Add FreeBSD CI using cirrus
    
    Sponsored by: Serenity Cybersecurity, LLC

diff --git a/.cirrus.yml b/.cirrus.yml
new file mode 100644
index 000000000..4033a2814
--- /dev/null
+++ b/.cirrus.yml
@@ -0,0 +1,14 @@
+task:
+  freebsd_instance:
+    matrix:
+      - image_family: freebsd-13-2-snap
+  deps_script:
+    - env ASSUME_ALWAYS_YES=yes pkg update -f
+    - env ASSUME_ALWAYS_YES=yes pkg install -y docbook-xsl vala libxslt fontconfig polkit consolekit2
+        desktop-file-utils gettext meson ninja python3 glib gtk3 pkgconf sqlite3 gobject-introspection
+  build_script:
+    - meson --auto-features=enabled -Db_colorout=never --buildtype debug --strip -Dlocalstatedir=/var
+        -Dsystemd=false -Doffline_update=false  -Dbash_completion=false -Dbash_command_not_found=false
+        -Dgstreamer_plugin=false _build
+    - cd _build
+    - ninja -v all
commit aa07e0b77bd297cf9fd617ae9b8dd7e0cf218c50
Author: Gary Wang <wzc782970009 at gmail.com>
Date:   Sat Feb 11 22:50:20 2023 +0800

    Use the term DDE instead of deepin
    
    Since DDE is the name of the desktop environment, instead of deepin.

diff --git a/backends/alpm/groups.list b/backends/alpm/groups.list
index ece394509..f47d8e352 100644
--- a/backends/alpm/groups.list
+++ b/backends/alpm/groups.list
@@ -11,8 +11,8 @@ compiz-fusion-kde	desktop-kde
 compiz-gnome		desktop-gnome
 compiz-gtk		desktop-gnome
 compiz-kde		desktop-kde
-deepin			desktop-deepin
-deepin-extra		desktop-deepin
+deepin			desktop-dde
+deepin-extra		desktop-dde
 e17-extra-svn		desktop-other
 e17-libs-svn		desktop-other
 e17-svn			desktop-other
diff --git a/docs/api/spec/pk-concepts.xml b/docs/api/spec/pk-concepts.xml
index 841407126..94f9cc163 100644
--- a/docs/api/spec/pk-concepts.xml
+++ b/docs/api/spec/pk-concepts.xml
@@ -696,8 +696,8 @@
             <entry>KDE</entry>
           </row>
           <row>
-            <entry><literal>desktop-deepin</literal></entry>
-            <entry>Deepin (DDE)</entry>
+            <entry><literal>desktop-dde</literal></entry>
+            <entry>DDE</entry>
           </row>
           <row>
             <entry><literal>desktop-other</literal></entry>
diff --git a/lib/packagekit-glib2/pk-enum.c b/lib/packagekit-glib2/pk-enum.c
index d0c70cc63..c02cef61a 100644
--- a/lib/packagekit-glib2/pk-enum.c
+++ b/lib/packagekit-glib2/pk-enum.c
@@ -263,7 +263,7 @@ static const PkEnumMatch enum_group[] = {
 	{PK_GROUP_ENUM_DESKTOP_GNOME,		"desktop-gnome"},
 	{PK_GROUP_ENUM_DESKTOP_KDE,		"desktop-kde"},
 	{PK_GROUP_ENUM_DESKTOP_XFCE,		"desktop-xfce"},
-	{PK_GROUP_ENUM_DESKTOP_DEEPIN,		"desktop-deepin"},
+	{PK_GROUP_ENUM_DESKTOP_DEEPIN,		"desktop-dde"},
 	{PK_GROUP_ENUM_DESKTOP_OTHER,		"desktop-other"},
 	{PK_GROUP_ENUM_PUBLISHING,		"publishing"},
 	{PK_GROUP_ENUM_SERVERS,			"servers"},
diff --git a/lib/packagekit-glib2/pk-enum.h b/lib/packagekit-glib2/pk-enum.h
index f72bdf0d2..af417b72b 100644
--- a/lib/packagekit-glib2/pk-enum.h
+++ b/lib/packagekit-glib2/pk-enum.h
@@ -523,7 +523,7 @@ typedef enum {
  * @PK_GROUP_ENUM_ACCESSORIES: Accessory packages
  * @PK_GROUP_ENUM_ADMIN_TOOLS: Administration tools packages
  * @PK_GROUP_ENUM_COMMUNICATION: Communication packages
- * @PK_GROUP_ENUM_DESKTOP_DEEPIN: Deepin packages
+ * @PK_GROUP_ENUM_DESKTOP_DDE: DDE packages
  * @PK_GROUP_ENUM_DESKTOP_GNOME: GNOME packages
  * @PK_GROUP_ENUM_DESKTOP_KDE: KDE packages
  * @PK_GROUP_ENUM_DESKTOP_OTHER: Other desktop packages
@@ -564,7 +564,7 @@ typedef enum {
 	PK_GROUP_ENUM_ACCESSORIES,
 	PK_GROUP_ENUM_ADMIN_TOOLS,
 	PK_GROUP_ENUM_COMMUNICATION,
-	PK_GROUP_ENUM_DESKTOP_DEEPIN,
+	PK_GROUP_ENUM_DESKTOP_DDE,
 	PK_GROUP_ENUM_DESKTOP_GNOME,
 	PK_GROUP_ENUM_DESKTOP_KDE,
 	PK_GROUP_ENUM_DESKTOP_OTHER,
commit 18e4da0f24f66f898a0870ee5c9fb994189e08dd
Author: Wang Zichong <wangzichong at deepin.org>
Date:   Mon Jan 30 10:54:39 2023 +0800

    alpm: add and support deepin group

diff --git a/backends/alpm/groups.list b/backends/alpm/groups.list
index b2c02aede..ece394509 100644
--- a/backends/alpm/groups.list
+++ b/backends/alpm/groups.list
@@ -11,6 +11,8 @@ compiz-fusion-kde	desktop-kde
 compiz-gnome		desktop-gnome
 compiz-gtk		desktop-gnome
 compiz-kde		desktop-kde
+deepin			desktop-deepin
+deepin-extra		desktop-deepin
 e17-extra-svn		desktop-other
 e17-libs-svn		desktop-other
 e17-svn			desktop-other
diff --git a/docs/api/spec/pk-concepts.xml b/docs/api/spec/pk-concepts.xml
index f5c3d334f..841407126 100644
--- a/docs/api/spec/pk-concepts.xml
+++ b/docs/api/spec/pk-concepts.xml
@@ -695,6 +695,10 @@
             <entry><literal>desktop-kde</literal></entry>
             <entry>KDE</entry>
           </row>
+          <row>
+            <entry><literal>desktop-deepin</literal></entry>
+            <entry>Deepin (DDE)</entry>
+          </row>
           <row>
             <entry><literal>desktop-other</literal></entry>
             <entry>Other desktops</entry>
diff --git a/lib/packagekit-glib2/pk-enum.c b/lib/packagekit-glib2/pk-enum.c
index 55f6e753a..d0c70cc63 100644
--- a/lib/packagekit-glib2/pk-enum.c
+++ b/lib/packagekit-glib2/pk-enum.c
@@ -263,6 +263,7 @@ static const PkEnumMatch enum_group[] = {
 	{PK_GROUP_ENUM_DESKTOP_GNOME,		"desktop-gnome"},
 	{PK_GROUP_ENUM_DESKTOP_KDE,		"desktop-kde"},
 	{PK_GROUP_ENUM_DESKTOP_XFCE,		"desktop-xfce"},
+	{PK_GROUP_ENUM_DESKTOP_DEEPIN,		"desktop-deepin"},
 	{PK_GROUP_ENUM_DESKTOP_OTHER,		"desktop-other"},
 	{PK_GROUP_ENUM_PUBLISHING,		"publishing"},
 	{PK_GROUP_ENUM_SERVERS,			"servers"},
diff --git a/lib/packagekit-glib2/pk-enum.h b/lib/packagekit-glib2/pk-enum.h
index 8f4570a0b..f72bdf0d2 100644
--- a/lib/packagekit-glib2/pk-enum.h
+++ b/lib/packagekit-glib2/pk-enum.h
@@ -523,6 +523,7 @@ typedef enum {
  * @PK_GROUP_ENUM_ACCESSORIES: Accessory packages
  * @PK_GROUP_ENUM_ADMIN_TOOLS: Administration tools packages
  * @PK_GROUP_ENUM_COMMUNICATION: Communication packages
+ * @PK_GROUP_ENUM_DESKTOP_DEEPIN: Deepin packages
  * @PK_GROUP_ENUM_DESKTOP_GNOME: GNOME packages
  * @PK_GROUP_ENUM_DESKTOP_KDE: KDE packages
  * @PK_GROUP_ENUM_DESKTOP_OTHER: Other desktop packages
@@ -563,6 +564,7 @@ typedef enum {
 	PK_GROUP_ENUM_ACCESSORIES,
 	PK_GROUP_ENUM_ADMIN_TOOLS,
 	PK_GROUP_ENUM_COMMUNICATION,
+	PK_GROUP_ENUM_DESKTOP_DEEPIN,
 	PK_GROUP_ENUM_DESKTOP_GNOME,
 	PK_GROUP_ENUM_DESKTOP_KDE,
 	PK_GROUP_ENUM_DESKTOP_OTHER,
commit 0ed58a451ddbf833f7623e1410863e52ada22045
Author: Corentin Noël <corentin.noel at collabora.com>
Date:   Mon Apr 24 15:59:30 2023 +0200

    progress: Free the sender value on finalize
    
    Avoid leaking the sender value.

diff --git a/lib/packagekit-glib2/pk-progress.c b/lib/packagekit-glib2/pk-progress.c
index 83889024d..2f221750d 100644
--- a/lib/packagekit-glib2/pk-progress.c
+++ b/lib/packagekit-glib2/pk-progress.c
@@ -1157,6 +1157,7 @@ pk_progress_finalize (GObject *object)
 
 	g_free (progress->priv->package_id);
 	g_free (progress->priv->transaction_id);
+	g_free (progress->priv->sender);
 
 	G_OBJECT_CLASS (pk_progress_parent_class)->finalize (object);
 }
commit c0e233c3ac1feb1d644cad59e04e782715d7d036
Author: Marcus Müller <marcus at hostalia.de>
Date:   Fri Apr 7 14:02:17 2023 +0200

    docs: replace defunct www.packagekit.org URL with freedesktop URL
    
    Signed-off-by: Marcus Müller <marcus at hostalia.de>

diff --git a/client/pkcon.xml b/client/pkcon.xml
index 50b2ed595..3a506ee56 100644
--- a/client/pkcon.xml
+++ b/client/pkcon.xml
@@ -358,7 +358,7 @@ manpage.1: manpage.xml
     <title>SEE ALSO</title>
     <para>pkmon (1).</para>
     <para>
-      The programs are documented fully on http://www.packagekit.org.
+      The programs are documented fully on https://www.freedesktop.org/software/PackageKit.
     </para>
   </refsect1>
   <refsect1>
diff --git a/client/pkmon.xml b/client/pkmon.xml
index 8e471e7c1..d9389308d 100644
--- a/client/pkmon.xml
+++ b/client/pkmon.xml
@@ -90,7 +90,7 @@ manpage.1: manpage.xml
     <title>SEE ALSO</title>
     <para>pkcon (1).</para>
     <para>
-      The programs are documented fully on http://www.packagekit.org.
+      The programs are documented fully on https://www.freedesktop.org/software/PackageKit.
     </para>
   </refsect1>
   <refsect1>
diff --git a/docs/html/pk-faq.html b/docs/html/pk-faq.html
index ace83b221..15e20f92a 100644
--- a/docs/html/pk-faq.html
+++ b/docs/html/pk-faq.html
@@ -169,9 +169,9 @@ Most user just don't have got the technical understanding to handle this well.</
 PackageKit runs a process <code>packagekitd</code> that is a daemon that runs per-system.
 The daemon lets you schedule transactions using either the raw
 <a href="http://gitweb.freedesktop.org/?p=packagekit.git;a=blob;f=src/org.freedesktop.PackageKit.Transaction.xml">
-DBUS methods</a>, or using <a href="http://www.packagekit.org/gtk-doc/PkClient.html">libpackagekit</a>.
+DBUS methods</a>, or using <a href="https://www.freedesktop.org/software/PackageKit/gtk-doc/PkClient.html">libpackagekit</a>.
 The transactions are very fine grained, so an application would have to manage
-<a href="http://www.packagekit.org/gtk-doc/introduction-ideas-transactions.html">
+<a href="https://www.freedesktop.org/software/PackageKit/gtk-doc/introduction-ideas-transactions.html">
 the transaction process</a> itself.
 This would mean handling the EULA and GPG callbacks in each application. This is less than ideal.
 </p>
@@ -186,10 +186,10 @@ managing callbacks to update custom GUIs.
 <p>
 The session helper is implemented in <code>gpk-update-icon</code> on GNOME,
 and is also availble when <code>apper</code> is installed on KDE.
-If you want full integration using <a href="http://www.packagekit.org/img/gpk-added-deps.png">
-custom dialogs</a> without running the extra session process, then use libpackagekit.
+If you want full integration using custom dialogs without running the extra
+session process, then use libpackagekit.
 If you don't care, and just want things to <i>work</i> then
-<a href="http://www.packagekit.org/pk-faq.html#session-methods">use the session interface</a>.
+<a href="https://www.freedesktop.org/software/PackageKit/pk-faq.html#session-methods">use the session interface</a>.
 If you want a demo, you can download <a href="files/session.c">session.c</a> for a
 session example and <a href="files/system.c">system.c</a> as a system example.
 </p>
@@ -207,7 +207,7 @@ gcc -o system -Wall system.c `pkg-config --cflags --libs packagekit-glib`
 Using the shared session interface you can use the following DBUS methods
 to make PackageKit just do the right thing.
 All the additional
-<a href="http://www.packagekit.org/gtk-doc/introduction-ideas-transactions.html">
+<a href="https://www.freedesktop.org/software/PackageKit/gtk-doc/introduction-ideas-transactions.html">
 confirmation, package downloads, GPG and EULA prompting is done automatically.</a>
 </p>
 <p>
diff --git a/docs/html/pk-reference.html b/docs/html/pk-reference.html
index e63280c2f..b91ff31db 100644
--- a/docs/html/pk-reference.html
+++ b/docs/html/pk-reference.html
@@ -20,7 +20,7 @@
 <h1>Reference Documentation</h1>
 
 <p>
-You need to see the new mini-site <a href="http://www.packagekit.org/gtk-doc/">
+You need to see the new mini-site <a href="https://www.freedesktop.org/software/PackageKit/gtk-doc/">
 here</a>. Please update your links!
 </p>
 
diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 91854dc04..c18069734 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -26,7 +26,7 @@
  * A GObject to use for accessing PackageKit asynchronously. If you're
  * using #PkClient to install, remove, or update packages, be prepared that
  * the eula, gpg and trusted callbacks need to be rescheduled manually, as in
- * http://www.packagekit.org/gtk-doc/introduction-ideas-transactions.html
+ * https://www.freedesktop.org/software/PackageKit/gtk-doc/introduction-ideas-transactions.html
  */
 
 #include "config.h"
commit a1c724b11807788899fc729fd1b7ef384612280f
Author: Marcus Müller <marcus at hostalia.de>
Date:   Fri Apr 7 14:02:08 2023 +0200

    metadata: replace defunct www.packagekit.org URL with freedesktop URL
    
    Signed-off-by: Marcus Müller <marcus at hostalia.de>

diff --git a/PackageKit.doap b/PackageKit.doap
index 76efd8dd0..ab262518b 100644
--- a/PackageKit.doap
+++ b/PackageKit.doap
@@ -10,7 +10,7 @@
     manage packages in a secure way using a cross-distro, cross-architecture API.
   </description>
 
-  <homepage rdf:resource="http://www.packagekit.org/" />
+  <homepage rdf:resource="https://www.freedesktop.org/software/PackageKit/" />
   <mailing-list rdf:resource="http://lists.freedesktop.org/mailman/listinfo/packagekit/" />
 
   <maintainer>
diff --git a/etc/Vendor.conf b/etc/Vendor.conf
index 8db873b87..0b3fbfc6a 100644
--- a/etc/Vendor.conf
+++ b/etc/Vendor.conf
@@ -11,8 +11,8 @@
 #
 # If the value is set to 'none' then no link is shown.
 #
-# default=http://www.packagekit.org/pk-package-not-found.html
-DefaultUrl=http://www.packagekit.org/pk-package-not-found.html
+# default=https://www.freedesktop.org/software/PackageKit/pk-package-not-found.html
+DefaultUrl=https://www.freedesktop.org/software/PackageKit/pk-package-not-found.html
 
 # The URL which is shown to the user when a codec could not be found.
 # It should explain why certain codecs cannot be used, and perhaps show
diff --git a/policy/org.freedesktop.packagekit.policy.in b/policy/org.freedesktop.packagekit.policy.in
index 9717baf58..1a5ff57a3 100644
--- a/policy/org.freedesktop.packagekit.policy.in
+++ b/policy/org.freedesktop.packagekit.policy.in
@@ -10,7 +10,7 @@
   -->
 
   <vendor>The PackageKit Project</vendor>
-  <vendor_url>http://www.packagekit.org/</vendor_url>
+  <vendor_url>https://www.freedesktop.org/software/PackageKit/</vendor_url>
   <icon_name>package-x-generic</icon_name>
 
   <action id="org.freedesktop.packagekit.cancel-foreign">
commit 9777e994a39818708767c6c4af5454ad23608a85
Author: Marcus Müller <marcus at hostalia.de>
Date:   Fri Apr 7 14:00:42 2023 +0200

    metadata: Remove reference to defunct screenshots URL
    
    Signed-off-by: Marcus Müller <marcus at hostalia.de>

diff --git a/PackageKit.doap b/PackageKit.doap
index e9f63334f..76efd8dd0 100644
--- a/PackageKit.doap
+++ b/PackageKit.doap
@@ -22,6 +22,5 @@
 
   <license rdf:resource="http://www.gnu.org/licenses/gpl-2.0.txt" />
   <bug-database rdf:resource="http://bugzilla.freedesktop.org/" />
-  <screenshots rdf:resource="http://www.packagekit.org/pk-screenshots.html#gnome" />
 
 </Project>
commit a249d2bce7d40d51f007f89a6a0e9f90bbd3ec08
Author: yump <yump at users.noreply.github.com>
Date:   Wed Apr 5 14:11:01 2023 -0500

    Shutdown daemon on idle by default again (#578)
    
    This reverts commit dca1f5b2508a4632d0b9fefab771a5a9caf83a5c.
    
    Which reverted commit 0c84d71509e851db20445c747529bd7d3724f081,
    which reverted commit c6eb3555ec5b41e988c111d276764d55fb83bda3.
    
    Fixes #460.
    
    The memory usage of packagekitd has been observed growing well beyond
    half a GiB using the DNF backend.  See:
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1354074
    https://bugzilla.redhat.com/show_bug.cgi?id=1854875
    https://bugzilla.redhat.com/show_bug.cgi?id=1896964
    
    This is not as severe on backends that are not DNF, but since many backends were originally not designed to be called by long-running processes and the PackageKit daemon serves no purpose while it is doing nothing, reinstating the timeout makes sense to free unused system resources.
    This is especially useful on low-spec small single-board computers and embedded systems.
    
    Originally there was surprising behavior when users mix command line dnf upgades with GUI PackageKit
    upgrades, and do not manually run an update check before rebooting for update. This triggered the initial default-change to never time out was addressed in a better way via PR #600, allowing us to enable the timeout by default again.
    
    Co-authored-by: Matthias Klumpp <matthias at tenstral.net>
    Co-authored-by: Michael Catanzaro <mcatanzaro+github at innerfocus.xyz>

diff --git a/src/pk-main.c b/src/pk-main.c
index 43727d206..433ed11f2 100644
--- a/src/pk-main.c
+++ b/src/pk-main.c
@@ -182,8 +182,20 @@ main (int argc, char *argv[])
 	syslog (LOG_DAEMON | LOG_DEBUG, "daemon start");
 
 	/* after how long do we timeout? */
-	exit_idle_time = g_key_file_get_integer (conf, "Daemon", "ShutdownTimeout", NULL);
-	g_debug ("daemon shutdown set to %i seconds", exit_idle_time);
+	exit_idle_time = g_key_file_get_integer (conf, "Daemon", "ShutdownTimeout", &error);
+	/* THIS COMMENT IS A TSUNAMI STONE
+	 * The automatic shutdown timeout prevents memory leaks in some
+	 * backends from getting out of hand.  If you want to remove this
+	 * timeout, please study the Git history and be sure that you are not
+	 * regressing Red Hat bugzilla #1354074 (again). */
+	if (error != NULL) {
+		exit_idle_time = 300;
+		g_clear_error (&error);
+	}
+	if (exit_idle_time > 0)
+		g_debug ("daemon shutdown set to %i seconds", exit_idle_time);
+	else
+		g_debug ("daemon will not shut down on idle");
 
 	/* override the backend name */
 	if (backend_name != NULL) {
commit 0996cbe685f987077874bd5581b55ce6b20f3364
Author: Gleb Popov <6yearold at gmail.com>
Date:   Tue Mar 28 18:47:46 2023 +0300

    trivial: Fix the "update" command usage message in pkcon. (#617)
    
    It actually accepts zero or more values, just like "install", "remove", etc.
    
    Sponsored by:   Serenity Cybersecurity, LLC

diff --git a/client/pk-console.c b/client/pk-console.c
index b16a8e3c7..30e951054 100644
--- a/client/pk-console.c
+++ b/client/pk-console.c
@@ -1450,7 +1450,7 @@ pk_console_get_summary (PkConsoleCtx *ctx)
 	if (pk_bitfield_contain (ctx->roles, PK_ROLE_ENUM_REMOVE_PACKAGES))
 		g_string_append_printf (string, "  %s\n", "remove [package]");
 	if (pk_bitfield_contain (ctx->roles, PK_ROLE_ENUM_UPDATE_PACKAGES))
-		g_string_append_printf (string, "  %s\n", "update <package>");
+		g_string_append_printf (string, "  %s\n", "update [package]");
 	if (pk_bitfield_contain (ctx->roles, PK_ROLE_ENUM_REFRESH_CACHE))
 		g_string_append_printf (string, "  %s\n", "refresh [force]");
 	if (pk_bitfield_contain (ctx->roles, PK_ROLE_ENUM_RESOLVE))
commit 4ea28183760e04c2d3b38575de918b3f5abbb9eb
Author: Gleb Popov <6yearold at gmail.com>
Date:   Mon Mar 27 19:51:45 2023 +0300

    Globally pass -DPK_COMPILATION to the C++ compiler (#616)
    
    This removes ad-hoc flag passing from backends that are written in C++.
    
    Sponsored by:   Serenity Cybersecurity, LLC

diff --git a/backends/apt/meson.build b/backends/apt/meson.build
index d9f3f52f5..9d13225f2 100644
--- a/backends/apt/meson.build
+++ b/backends/apt/meson.build
@@ -62,7 +62,6 @@ shared_module(
   ],
   c_args: c_args,
   cpp_args: [
-    '-DPK_COMPILATION',
     c_args,
     ddtp_flag,
   ],
diff --git a/backends/nix/meson.build b/backends/nix/meson.build
index 679678d20..7f8603c4d 100644
--- a/backends/nix/meson.build
+++ b/backends/nix/meson.build
@@ -19,7 +19,6 @@ shared_module(
     gmodule_dep,
   ],
   cpp_args: [
-    '-DPK_COMPILATION=1',
     '-DG_LOG_DOMAIN="PackageKit-Nix"',
   ],
   install: true,
diff --git a/backends/slack/meson.build b/backends/slack/meson.build
index f44eea193..8e4d30f71 100644
--- a/backends/slack/meson.build
+++ b/backends/slack/meson.build
@@ -21,7 +21,6 @@ packagekit_backend_slack_module = shared_module(
   ],
   cpp_args: [
     '-DG_LOG_DOMAIN="PackageKit-Slackware"',
-    '-DPK_COMPILATION=1',
     '-DLOCALSTATEDIR="@0@"'.format(join_paths(get_option('prefix'), get_option('localstatedir'))),
     '-DLIBDIR="@0@"'.format(join_paths(get_option('prefix'), get_option('libdir'))),
     '-DSYSCONFDIR="@0@"'.format(get_option('sysconfdir')),
diff --git a/backends/slack/tests/meson.build b/backends/slack/tests/meson.build
index c5235227c..5ade48a02 100644
--- a/backends/slack/tests/meson.build
+++ b/backends/slack/tests/meson.build
@@ -10,7 +10,6 @@ pk_slack_test_dependencies = [
 
 pk_slack_test_cpp_args = [
   '-DG_LOG_DOMAIN="PackageKit-Slackware"',
-  '-DPK_COMPILATION=1',
   '-DLOCALSTATEDIR="@0@"'.format(join_paths(get_option('prefix'), get_option('localstatedir'))),
   '-DLIBDIR="@0@"'.format(join_paths(get_option('prefix'), get_option('libdir'))),
   '-DSYSCONFDIR="@0@"'.format(get_option('sysconfdir')),
diff --git a/backends/zypp/meson.build b/backends/zypp/meson.build
index 5957926dd..a090f8ed3 100644
--- a/backends/zypp/meson.build
+++ b/backends/zypp/meson.build
@@ -18,7 +18,6 @@ shared_module(
     gmodule_dep,
   ],
   cpp_args: [
-    '-DPK_COMPILATION=1',
     '-DG_LOG_DOMAIN="PackageKit-Zypp"',
     '-Wall',
     '-Woverloaded-virtual',
diff --git a/meson.build b/meson.build
index 31d230d17..b8988e377 100644
--- a/meson.build
+++ b/meson.build
@@ -68,7 +68,7 @@ add_project_arguments ('-D_DEFAULT_SOURCE', language: 'c')
 add_project_arguments ('-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_44', language: 'c')
 
 # allow the daemon to include library files directly
-add_project_arguments ('-DPK_COMPILATION', language: 'c')
+add_project_arguments ('-DPK_COMPILATION', language: ['c', 'cpp'])
 
 conf = configuration_data()
 conf.set_quoted('DATADIR', join_paths(get_option('prefix'), get_option('datadir')))
commit 10df50b69f86b4ff76a3cb89624a46cb8f6cd71b
Author: lilinjie <102012657+uniontech-lilinjie at users.noreply.github.com>
Date:   Sun Mar 19 23:43:58 2023 +0000

    NEWS: fix typo
    
    Signed-off-by: lilinjie <lilinjie at uniontech.com>

diff --git a/NEWS b/NEWS
index 0e8ec6ecf..15a565434 100644
--- a/NEWS
+++ b/NEWS
@@ -4113,7 +4113,7 @@ Backends
  - portage: get-depends filtering output (Mounir Lamouri)
  - portage: Improve get-updates with security updates (Mounir Lamouri)
  - portage: Update the category/group map (Mounir Lamouri)
- - portage: Explicitely let portage backend accept sigkill (Mounir Lamouri)
+ - portage: Explicitly let portage backend accept sigkill (Mounir Lamouri)
  - portage: Cleaning, fixing not-found-error, misc (Mounir Lamouri)
  - portage: Clean remove-packages after portage fixes (Mounir Lamouri)
  - portage: Show a message if try to use remove-packages with autoremove=True (Mounir Lamouri)
commit d157b9d803333e6de432825043760a68aa09e40c
Author: Gordon Messmer <gordon.messmer at gmail.com>
Date:   Fri Dec 30 11:12:22 2022 -0800

    Run pk_backend_refresh_repo in a new process to avoid keeping libdnf memory leaks.

diff --git a/backends/dnf/meson.build b/backends/dnf/meson.build
index 09718baf1..bcc18939e 100644
--- a/backends/dnf/meson.build
+++ b/backends/dnf/meson.build
@@ -26,6 +26,8 @@ shared_module(
   'dnf-backend-vendor.h',
   'dnf-backend.c',
   'dnf-backend.h',
+  'pk-backend-dnf-common.c',
+  'pk-backend-dnf-common.h',
   'pk-backend-dnf.c',
   include_directories: packagekit_src_include,
   dependencies: [
@@ -36,8 +38,31 @@ shared_module(
     gmodule_dep,
   ],
   c_args: [
-    c_args
+    c_args,
+    '-DLIBEXECDIR="@0@"'.format(join_paths(get_option('prefix'), get_option('libexecdir'))),
   ],
   install: true,
   install_dir: pk_plugin_dir,
 )
+
+packagekit_refresh_repo_exec = executable(
+  'packagekit-dnf-refresh-repo',
+  '../../src/pk-shared.c',
+  '../../src/pk-shared.h',
+  'pk-backend-dnf-common.c',
+  'pk-backend-dnf-common.h',
+  'pk-backend-dnf-refresh.c',
+  include_directories: packagekit_src_include,
+  dependencies: [
+    packagekit_glib2_dep,
+    appstream_dep,
+    dnf_dep,
+    rpm_dep,
+    gmodule_dep,
+  ],
+  install: true,
+  install_dir: get_option('libexecdir'),
+  c_args: [
+    c_args
+  ]
+)
diff --git a/backends/dnf/pk-backend-dnf-common.c b/backends/dnf/pk-backend-dnf-common.c
new file mode 100644
index 000000000..6b6a5c29f
--- /dev/null
+++ b/backends/dnf/pk-backend-dnf-common.c
@@ -0,0 +1,110 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2013-2014 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include <config.h>
+
+#include <gmodule.h>
+#include <glib.h>
+#include <appstream-glib.h>
+#include <libdnf/libdnf.h>
+
+#include "pk-shared.h"
+#include "pk-backend-dnf-common.h"
+
+gboolean
+pk_backend_setup_dnf_context (DnfContext *context, GKeyFile *conf, const gchar *release_ver, GError **error)
+{
+	const gchar * const *repo_dirs;
+	const gchar * const *var_dirs;
+	gboolean keep_cache;
+	g_autofree gchar *cache_dir = NULL;
+	g_autofree gchar *destdir = NULL;
+	g_autofree gchar *lock_dir = NULL;
+	g_autofree gchar *solv_dir = NULL;
+
+	destdir = g_key_file_get_string (conf, "Daemon", "DestDir", NULL);
+	if (destdir == NULL)
+		destdir = g_strdup ("/");
+	dnf_context_set_install_root (context, destdir);
+	cache_dir = g_build_filename (destdir, "/var/cache/PackageKit", release_ver, "metadata", NULL);
+	dnf_context_set_cache_dir (context, cache_dir);
+	solv_dir = g_build_filename (destdir, "/var/cache/PackageKit", release_ver, "hawkey", NULL);
+	dnf_context_set_solv_dir (context, solv_dir);
+	lock_dir = g_build_filename (destdir, "/var/run", NULL);
+	dnf_context_set_lock_dir (context, lock_dir);
+	dnf_context_set_rpm_verbosity (context, "info");
+
+	/* Add prefix to repo directories */
+	repo_dirs = dnf_context_get_repos_dir (context);
+	if (repo_dirs != NULL && repo_dirs[0] != NULL) {
+		g_auto(GStrv) full_repo_dirs = NULL;
+		guint len = g_strv_length ((gchar **)repo_dirs);
+		full_repo_dirs = g_new0 (gchar*, len + 1);
+		for (guint i = 0; i < len; i++)
+			full_repo_dirs[i] = g_build_filename (destdir, repo_dirs[i], NULL);
+		dnf_context_set_repos_dir (context, (const gchar * const*)full_repo_dirs);
+	}
+
+	/* Add prefix to var directories */
+	var_dirs = dnf_context_get_vars_dir (context);
+	if (var_dirs != NULL && var_dirs[0] != NULL) {
+		g_auto(GStrv) full_var_dirs = NULL;
+		guint len = g_strv_length ((gchar **)var_dirs);
+		full_var_dirs = g_new0 (gchar*, len + 1);
+		for (guint i = 0; i < len; i++)
+			full_var_dirs[i] = g_build_filename (destdir, var_dirs[i], NULL);
+		dnf_context_set_vars_dir (context, (const gchar * const*)full_var_dirs);
+	}
+
+	/* use this initial data if repos are not present */
+	dnf_context_set_vendor_cache_dir (context, "/usr/share/PackageKit/metadata");
+	dnf_context_set_vendor_solv_dir (context, "/usr/share/PackageKit/hawkey");
+
+	/* do we keep downloaded packages */
+	keep_cache = g_key_file_get_boolean (conf, "Daemon", "KeepCache", NULL);
+	dnf_context_set_keep_cache (context, keep_cache);
+
+	/* set up context */
+	return dnf_context_setup (context, NULL, error);
+}
+
+gboolean
+dnf_utils_refresh_repo_appstream (DnfRepo *repo, GError **error)
+{
+	const gchar *as_basenames[] = { "appstream", "appstream-icons", NULL };
+	for (guint i = 0; as_basenames[i] != NULL; i++) {
+		const gchar *tmp = dnf_repo_get_filename_md (repo, as_basenames[i]);
+		if (tmp != NULL) {
+#if AS_CHECK_VERSION(0,3,4)
+			if (!as_utils_install_filename (AS_UTILS_LOCATION_CACHE,
+							tmp,
+							dnf_repo_get_id (repo),
+							NULL,
+							error)) {
+				return FALSE;
+			}
+#else
+			g_warning ("need to install AppStream metadata %s", tmp);
+#endif
+		}
+	}
+	return TRUE;
+}
diff --git a/backends/dnf/pk-backend-dnf-common.h b/backends/dnf/pk-backend-dnf-common.h
new file mode 100644
index 000000000..b724375d9
--- /dev/null
+++ b/backends/dnf/pk-backend-dnf-common.h
@@ -0,0 +1,37 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2014 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU Lesser General Public License Version 2.1
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+#ifndef __PK_BACKEND_DNF_COMMON_H
+#define __PK_BACKEND_DNF_COMMON_H
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+gboolean	pk_backend_setup_dnf_context (DnfContext *context,
+					      GKeyFile *conf,
+					      const gchar *release_ver,
+					      GError **error);
+gboolean	dnf_utils_refresh_repo_appstream (DnfRepo *repo, GError **error);
+
+G_END_DECLS
+
+#endif /* __PK_BACKEND_DNF_COMMON_H */
diff --git a/backends/dnf/pk-backend-dnf-refresh.c b/backends/dnf/pk-backend-dnf-refresh.c
new file mode 100644
index 000000000..6d87dc819
--- /dev/null
+++ b/backends/dnf/pk-backend-dnf-refresh.c
@@ -0,0 +1,170 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2013-2014 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include <config.h>
+
+#include <gmodule.h>
+#include <glib.h>
+#include <glib/gstdio.h>
+#include <glib/gi18n.h>
+#include <string.h>
+#include <appstream-glib.h>
+#include <unistd.h>
+#include <stdlib.h>
+
+#include <pk-backend.h>
+#include <packagekit-glib2/pk-common-private.h>
+#include <packagekit-glib2/pk-debug.h>
+
+#include <libdnf/libdnf.h>
+#include <libdnf/dnf-advisory.h>
+#include <libdnf/dnf-advisoryref.h>
+#include <libdnf/dnf-db.h>
+#include <libdnf/hy-packageset.h>
+#include <libdnf/hy-query.h>
+#include <libdnf/dnf-version.h>
+#include <libdnf/dnf-sack.h>
+#include <libdnf/hy-util.h>
+#include <librepo/librepo.h>
+#include <rpm/rpmlib.h>
+
+#include "dnf-backend-vendor.h"
+#include "dnf-backend.h"
+#include "pk-backend-dnf-common.h"
+
+static gboolean
+pk_backend_refresh_repo (guint max_cache_age,
+                         DnfRepo *repo,
+                         DnfState *state,
+                         GError **error)
+{
+	gboolean ret;
+	gboolean repo_okay;
+	DnfState *state_local;
+	GError *error_local = NULL;
+
+	/* set state */
+	ret = dnf_state_set_steps (state, error,
+				   2, /* check */
+				   98, /* download */
+				   -1);
+	if (!ret)
+		return FALSE;
+
+	/* is the repo up to date? */
+	state_local = dnf_state_get_child (state);
+	repo_okay = dnf_repo_check (repo,
+	                            max_cache_age,
+	                            state_local,
+	                            &error_local);
+	if (!repo_okay) {
+		g_debug ("repo %s not okay [%s], refreshing",
+			 dnf_repo_get_id (repo), error_local->message);
+		g_clear_error (&error_local);
+		if (!dnf_state_finished (state_local, error))
+			return FALSE;
+	}
+
+	/* done */
+	if (!dnf_state_done (state, error))
+		return FALSE;
+
+	/* update repo, TODO: if we have network access */
+	if (!repo_okay) {
+		state_local = dnf_state_get_child (state);
+		ret = dnf_repo_update (repo,
+		                       DNF_REPO_UPDATE_FLAG_IMPORT_PUBKEY,
+		                       state_local,
+		                       &error_local);
+		if (!ret) {
+			if (g_error_matches (error_local,
+					     DNF_ERROR,
+					     DNF_ERROR_CANNOT_FETCH_SOURCE)) {
+				g_warning ("Skipping refresh of %s: %s",
+					   dnf_repo_get_id (repo),
+					   error_local->message);
+				g_clear_error (&error_local);
+				if (!dnf_state_finished (state_local, error))
+					return FALSE;
+			} else {
+				g_propagate_error (error, error_local);
+				return FALSE;
+			}
+		}
+	}
+
+	/* copy the appstream files somewhere that the GUI will pick them up */
+	if (!dnf_utils_refresh_repo_appstream (repo, error))
+		return FALSE;
+
+	/* done */
+	return dnf_state_done (state, error);
+}
+
+int
+main (int argc, char *argv[])
+{
+	guint max_cache_age, i, ret;
+	g_autofree gchar *conf_filename = NULL;
+	g_autoptr(GKeyFile) conf = NULL;
+	g_autoptr(DnfState) state = NULL;
+	g_autoptr(DnfContext) context = NULL;
+	g_autoptr(GPtrArray) repos = NULL;
+	g_autoptr(GError) error = NULL;
+
+	if (argc != 4) {
+		printf("Use: packagekit-dnf-refresh-repo <age> <repo-id> <release-ver>\n");
+		return 1;
+	}
+
+	conf = g_key_file_new ();
+	conf_filename = pk_util_get_config_filename ();
+	if (conf_filename == NULL) {
+		g_printerr ("%s\n", _("Config file was not found."));
+		return 1;
+	}
+	ret = g_key_file_load_from_file (conf, conf_filename,
+					 G_KEY_FILE_NONE, &error);
+	if (!ret) {
+		/* TRANSLATORS: The placeholder is an error message */
+		g_autofree gchar *message = g_strdup_printf (_("Failed to load config file: %s"), error->message);
+		g_printerr ("%s\n", message);
+		return 1;
+	}
+
+	max_cache_age = atoi(argv[1]);
+	context = dnf_context_new ();
+	if (!pk_backend_setup_dnf_context (context, conf, argv[3], &error))
+		return 1;
+	repos = dnf_repo_loader_get_repos (dnf_context_get_repo_loader (context), &error);
+	if (repos == NULL)
+		return 1;
+	for (i = 0; i < repos->len; i++) {
+                DnfRepo *repo = g_ptr_array_index (repos, i);
+		if (strcmp(dnf_repo_get_id (repo), argv[2]) == 0) {
+			state = dnf_state_new ();
+			pk_backend_refresh_repo (max_cache_age,
+						 repo,
+						 state,
+						 &error);
+		}
+        }
+}
diff --git a/backends/dnf/pk-backend-dnf.c b/backends/dnf/pk-backend-dnf.c
index 5f8ea130a..467a87f4e 100644
--- a/backends/dnf/pk-backend-dnf.c
+++ b/backends/dnf/pk-backend-dnf.c
@@ -45,6 +45,7 @@
 
 #include "dnf-backend-vendor.h"
 #include "dnf-backend.h"
+#include "pk-backend-dnf-common.h"
 
 typedef struct {
 	DnfSack		*sack;
@@ -138,63 +139,6 @@ pk_backend_context_invalidate_cb (DnfContext *context,
 	pk_backend_installed_db_changed (backend);
 }
 
-static gboolean
-pk_backend_setup_dnf_context (DnfContext *context, GKeyFile *conf, const gchar *release_ver, GError **error)
-{
-	const gchar * const *repo_dirs;
-	const gchar * const *var_dirs;
-	gboolean keep_cache;
-	g_autofree gchar *cache_dir = NULL;
-	g_autofree gchar *destdir = NULL;
-	g_autofree gchar *lock_dir = NULL;
-	g_autofree gchar *solv_dir = NULL;
-
-	destdir = g_key_file_get_string (conf, "Daemon", "DestDir", NULL);
-	if (destdir == NULL)
-		destdir = g_strdup ("/");
-	dnf_context_set_install_root (context, destdir);
-	cache_dir = g_build_filename (destdir, "/var/cache/PackageKit", release_ver, "metadata", NULL);
-	dnf_context_set_cache_dir (context, cache_dir);
-	solv_dir = g_build_filename (destdir, "/var/cache/PackageKit", release_ver, "hawkey", NULL);
-	dnf_context_set_solv_dir (context, solv_dir);
-	lock_dir = g_build_filename (destdir, "/var/run", NULL);
-	dnf_context_set_lock_dir (context, lock_dir);
-	dnf_context_set_rpm_verbosity (context, "info");
-
-	/* Add prefix to repo directories */
-	repo_dirs = dnf_context_get_repos_dir (context);
-	if (repo_dirs != NULL && repo_dirs[0] != NULL) {
-		g_auto(GStrv) full_repo_dirs = NULL;
-		guint len = g_strv_length ((gchar **)repo_dirs);
-		full_repo_dirs = g_new0 (gchar*, len + 1);
-		for (guint i = 0; i < len; i++)
-			full_repo_dirs[i] = g_build_filename (destdir, repo_dirs[i], NULL);
-		dnf_context_set_repos_dir (context, (const gchar * const*)full_repo_dirs);
-	}
-
-	/* Add prefix to var directories */
-	var_dirs = dnf_context_get_vars_dir (context);
-	if (var_dirs != NULL && var_dirs[0] != NULL) {
-		g_auto(GStrv) full_var_dirs = NULL;
-		guint len = g_strv_length ((gchar **)var_dirs);
-		full_var_dirs = g_new0 (gchar*, len + 1);
-		for (guint i = 0; i < len; i++)
-			full_var_dirs[i] = g_build_filename (destdir, var_dirs[i], NULL);
-		dnf_context_set_vars_dir (context, (const gchar * const*)full_var_dirs);
-	}
-
-	/* use this initial data if repos are not present */
-	dnf_context_set_vendor_cache_dir (context, "/usr/share/PackageKit/metadata");
-	dnf_context_set_vendor_solv_dir (context, "/usr/share/PackageKit/hawkey");
-
-	/* do we keep downloaded packages */
-	keep_cache = g_key_file_get_boolean (conf, "Daemon", "KeepCache", NULL);
-	dnf_context_set_keep_cache (context, keep_cache);
-
-	/* set up context */
-	return dnf_context_setup (context, NULL, error);
-}
-
 static void
 remove_old_cache_directories (PkBackend *backend, const gchar *release_ver)
 {
@@ -527,29 +471,6 @@ pk_backend_stop_job (PkBackend *backend, PkBackendJob *job)
 	pk_backend_job_set_user_data (job, NULL);
 }
 
-static gboolean
-dnf_utils_refresh_repo_appstream (DnfRepo *repo, GError **error)
-{
-	const gchar *as_basenames[] = { "appstream", "appstream-icons", NULL };
-	for (guint i = 0; as_basenames[i] != NULL; i++) {
-		const gchar *tmp = dnf_repo_get_filename_md (repo, as_basenames[i]);
-		if (tmp != NULL) {
-#if AS_CHECK_VERSION(0,3,4)
-			if (!as_utils_install_filename (AS_UTILS_LOCATION_CACHE,
-							tmp,
-							dnf_repo_get_id (repo),
-							NULL,
-							error)) {
-				return FALSE;
-			}
-#else
-			g_warning ("need to install AppStream metadata %s", tmp);
-#endif
-		}
-	}
-	return TRUE;
-}
-
 static gboolean
 dnf_utils_add_remote (PkBackendJob *job,
 		      DnfSack *sack,
@@ -1589,75 +1510,6 @@ pk_backend_get_mime_types (PkBackend *backend)
 	return g_strdupv ((gchar **) mime_types);
 }
 
-static gboolean
-pk_backend_refresh_repo (PkBackendJob *job,
-                         DnfRepo *repo,
-                         DnfState *state,
-                         GError **error)
-{
-	gboolean ret;
-	gboolean repo_okay;
-	DnfState *state_local;
-	GError *error_local = NULL;
-
-	/* set state */
-	ret = dnf_state_set_steps (state, error,
-				   2, /* check */
-				   98, /* download */
-				   -1);
-	if (!ret)
-		return FALSE;
-
-	/* is the repo up to date? */
-	state_local = dnf_state_get_child (state);
-	repo_okay = dnf_repo_check (repo,
-	                            pk_backend_job_get_cache_age (job),
-	                            state_local,
-	                            &error_local);
-	if (!repo_okay) {
-		g_debug ("repo %s not okay [%s], refreshing",
-			 dnf_repo_get_id (repo), error_local->message);
-		g_clear_error (&error_local);
-		if (!dnf_state_finished (state_local, error))
-			return FALSE;
-	}
-
-	/* done */
-	if (!dnf_state_done (state, error))
-		return FALSE;
-
-	/* update repo, TODO: if we have network access */
-	if (!repo_okay) {
-		state_local = dnf_state_get_child (state);
-		ret = dnf_repo_update (repo,
-		                       DNF_REPO_UPDATE_FLAG_IMPORT_PUBKEY,
-		                       state_local,
-		                       &error_local);
-		if (!ret) {
-			if (g_error_matches (error_local,
-					     DNF_ERROR,
-					     DNF_ERROR_CANNOT_FETCH_SOURCE)) {
-				g_warning ("Skipping refresh of %s: %s",
-					   dnf_repo_get_id (repo),
-					   error_local->message);
-				g_clear_error (&error_local);
-				if (!dnf_state_finished (state_local, error))
-					return FALSE;
-			} else {
-				g_propagate_error (error, error_local);
-				return FALSE;
-			}
-		}
-	}
-
-	/* copy the appstream files somewhere that the GUI will pick them up */
-	if (!dnf_utils_refresh_repo_appstream (repo, error))
-		return FALSE;
-
-	/* done */
-	return dnf_state_done (state, error);
-}
-
 static void
 pk_backend_refresh_subman (PkBackendJob *job)
 {
@@ -1752,9 +1604,9 @@ pk_backend_refresh_cache_thread (PkBackendJob *job,
 {
 	PkBackendDnfJobData *job_data = pk_backend_job_get_user_data (job);
 	PkBackend *backend = pk_backend_job_get_backend (job);
+	PkBackendDnfPrivate *priv = pk_backend_get_user_data (backend);
 	DnfRepo *repo;
 	DnfState *state_local;
-	DnfState *state_loop;
 	gboolean force;
 	gboolean ret;
 	guint i;
@@ -1762,6 +1614,7 @@ pk_backend_refresh_cache_thread (PkBackendJob *job,
 	g_autoptr(GError) error = NULL;
 	g_autoptr(GPtrArray) refresh_repos = NULL;
 	g_autoptr(GPtrArray) repos = NULL;
+	g_autofree gchar *max_cache_age = NULL;
 
 	/* set state */
 	dnf_state_set_steps (job_data->state, NULL,
@@ -1801,7 +1654,10 @@ pk_backend_refresh_cache_thread (PkBackendJob *job,
 	/* refresh each repo */
 	state_local = dnf_state_get_child (job_data->state);
 	dnf_state_set_number_steps (state_local, refresh_repos->len);
+	max_cache_age = g_strdup_printf ("%u", pk_backend_job_get_cache_age (job));
 	for (i = 0; i < refresh_repos->len; i++) {
+		gint wait_status;
+		const gchar *refresh[5];
 		repo = g_ptr_array_index (refresh_repos, i);
 
 		/* delete content even if up to date */
@@ -1815,12 +1671,22 @@ pk_backend_refresh_cache_thread (PkBackendJob *job,
 		}
 
 		/* check and download */
-		state_loop = dnf_state_get_child (state_local);
-		ret = pk_backend_refresh_repo (job, repo, state_loop, &error);
-		if (!ret) {
-			pk_backend_job_error_code (job, error->code, "%s", error->message);
-			return;
-		}
+		refresh[0] = LIBEXECDIR "/packagekit-dnf-refresh-repo";
+		refresh[1] = max_cache_age;
+		refresh[2] = dnf_repo_get_id (repo);
+		refresh[3] = priv->release_ver;
+		refresh[4] = NULL;
+		if (!g_spawn_sync (NULL,
+				   (gchar **) refresh,
+				   NULL,
+				   G_SPAWN_DEFAULT,
+				   NULL,
+				   NULL,
+				   NULL,
+				   NULL,
+				   &wait_status,
+				   &error))
+			pk_backend_job_error_code (job, error->code, "%s", "unkown error in pk_backend_refresh_repo");
 
 		/* done */
 		ret = dnf_state_done (state_local, &error);
diff --git a/contrib/PackageKit.spec.in b/contrib/PackageKit.spec.in
index b8d57af03..bf0164b6e 100644
--- a/contrib/PackageKit.spec.in
+++ b/contrib/PackageKit.spec.in
@@ -200,6 +200,7 @@ popd > /dev/null
 %{_datadir}/PackageKit/helpers/test_spawn/search-name.sh
 %{_libexecdir}/packagekitd
 %{_libexecdir}/packagekit-direct
+%{_libexecdir}/packagekit-dnf-refresh-repo
 %pycached %{python3_sitelib}/dnf-plugins/notify_packagekit.py
 %{_bindir}/pkmon
 %{_bindir}/pkcon
commit 767260e7c290cc44496f46b086de7368d44ff1b7
Author: Philip Withnall <pwithnall at endlessos.org>
Date:   Mon Mar 13 15:06:22 2023 +0000

    pk-transaction: Return an error if property name is not known
    
    This is required by `GDBusInterfaceGetPropertyFunc`; if we don’t return
    an error when returning `NULL`, GDBus will emit a critical warning.
    
    Signed-off-by: Philip Withnall <pwithnall at endlessos.org>

diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index 047dfed39..192ef2347 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -5215,6 +5215,8 @@ pk_transaction_get_property (GDBusConnection *connection_, const gchar *sender,
 	if (g_strcmp0 (property_name, "RemainingTime") == 0)
 		return g_variant_new_uint32 (priv->remaining_time);
 
+	g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_PROPERTY,
+		     "Unknown transaction property ‘%s’", property_name);
 	return NULL;
 }
 
commit 4cab1d865528ba1e9ac1ae8ab13ba980c1228d99
Author: Philip Withnall <pwithnall at endlessos.org>
Date:   Mon Mar 13 15:05:49 2023 +0000

    pk-transaction: Add support for getting the RemainingTime property
    
    This seems to have been forgotten when the property was added.
    
    Signed-off-by: Philip Withnall <pwithnall at endlessos.org>

diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index c4baff95d..047dfed39 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -5212,6 +5212,9 @@ pk_transaction_get_property (GDBusConnection *connection_, const gchar *sender,
 		return g_variant_new_uint64 (priv->download_size_remaining);
 	if (g_strcmp0 (property_name, "TransactionFlags") == 0)
 		return g_variant_new_uint64 (priv->cached_transaction_flags);
+	if (g_strcmp0 (property_name, "RemainingTime") == 0)
+		return g_variant_new_uint32 (priv->remaining_time);
+
 	return NULL;
 }
 
commit 210d6d4d48f7713c2fa1c229dcfc6aac554fa828
Author: Matthias Klumpp <matthias at tenstral.net>
Date:   Wed Mar 8 18:40:34 2023 +0100

    ci: Switch to Debian 12 for tests on Debian

diff --git a/tests/ci/Dockerfile-debian b/tests/ci/Dockerfile-debian
index dfb28db64..e71b5bf64 100644
--- a/tests/ci/Dockerfile-debian
+++ b/tests/ci/Dockerfile-debian
@@ -1,7 +1,7 @@
-FROM debian:bullseye
+FROM debian:bookworm
 
 # allow fetching source packages
-RUN echo "deb-src http://deb.debian.org/debian/ bullseye main" >> /etc/apt/sources.list
+RUN echo "deb-src http://deb.debian.org/debian/ bookworm main" >> /etc/apt/sources.list
 
 # prepare
 RUN apt-get update -qq
commit 80a708c59b7aa57c7ca58dddddb67767766fb077
Author: Matthias Klumpp <matthias at tenstral.net>
Date:   Wed Mar 8 18:32:13 2023 +0100

    apt: Don't crash while resolving mimetypes, modernize mime search code
    
    Previously we warned when there was no AppStream metadata at all by
    trying to fetch all metadata and warning if we got no result.
    Given the amount of data Debian and Ubuntu ship with now, this is a bad
    idea (as it slows down unsuccessful searches massively), and we should
    do this again only when AsPool has gained a more efficient is_empty()
    method. Therefore, this check was removed for now.
    
    In addition, we stop monitoring the pool for changes, as we will
    immediately close it anyway, so the additional overhead of setting up
    background reloading is not needed. Same applies for loading Flatpak
    data, which we are not concerned with in PackageKit.
    
    We also validate the package-name C string now for being NULL before
    converting it into a std::string, which resolves a crash.

diff --git a/backends/apt/apt-job.cpp b/backends/apt/apt-job.cpp
index d983374b0..0b2895350 100644
--- a/backends/apt/apt-job.cpp
+++ b/backends/apt/apt-job.cpp
@@ -1442,34 +1442,47 @@ void AptJob::providesMimeType(PkgList &output, gchar **values)
 {
     g_autoptr(AsPool) pool = NULL;
     g_autoptr(GError) error = NULL;
-    guint i;
-    vector<string> packages;
+    std::vector<string> pkg_names;
 
     pool = as_pool_new ();
-    as_pool_load (pool, NULL, &error);
-    if (error != NULL) {
-        /* we do not fail here because even with error we might still find metadata */
-        g_warning ("Issue while loading the AppStream metadata pool: %s", error->message);
-        g_error_free (error);
-        error = NULL;
+
+    /* don't monitor cache locations or load Flatpak data */
+    as_pool_remove_flags (pool, AS_POOL_FLAG_MONITOR);
+    as_pool_remove_flags (pool, AS_POOL_FLAG_LOAD_FLATPAK);
+
+    /* try to load the metadata pool */
+    if (!as_pool_load (pool, NULL, &error)) {
+        pk_backend_job_error_code(m_job,
+                                  PK_ERROR_ENUM_INTERNAL_ERROR,
+                                  "Failed to load AppStream metadata: %s", error->message);
+        return;
     }
 
-    for (i = 0; values[i] != NULL; i++) {
+    /* search for mimetypes for all values */
+    for (guint i = 0; values[i] != NULL; i++) {
         g_autoptr(GPtrArray) result = NULL;
-        guint j;
+
         if (m_cancel)
             break;
 
-        result = as_pool_get_components_by_provided_item (pool, AS_PROVIDED_KIND_MIMETYPE, values[i]);
-        for (j = 0; j < result->len; j++) {
+        result = as_pool_get_components_by_provided_item (pool, AS_PROVIDED_KIND_MEDIATYPE, values[i]);
+        for (guint j = 0; j < result->len; j++) {
+            const gchar *pkgname;
             AsComponent *cpt = AS_COMPONENT (g_ptr_array_index (result, j));
-            /* we only select one package per component - on Debian systems, AppStream components never reference multiple packages */
-            packages.push_back (as_component_get_pkgname (cpt));
+
+            /* sanity check */
+            pkgname = as_component_get_pkgname (cpt);
+            if (pkgname == NULL) {
+                g_warning ("Component %s has no package name (it was ignored in the search).", as_component_get_data_id (cpt));
+                continue;
+            }
+
+            pkg_names.push_back (pkgname);
         }
     }
 
     /* resolve the package names */
-    for (const string &package : packages) {
+    for (const std::string &package : pkg_names) {
         if (m_cancel)
             break;
 
@@ -1482,16 +1495,6 @@ void AptJob::providesMimeType(PkgList &output, gchar **values)
 
         output.append(ver);
     }
-
-    /* check if we found nothing because AppStream data is missing completely */
-    if (output.empty()) {
-        g_autoptr(GPtrArray) all_cpts = as_pool_get_components (pool);
-        if (all_cpts->len <= 0) {
-            pk_backend_job_error_code(m_job,
-                                      PK_ERROR_ENUM_INTERNAL_ERROR,
-                                      "No AppStream metadata was found. This means we are unable to find any information for your request.");
-        }
-    }
 }
 
 bool AptJob::isApplication(const pkgCache::VerIterator &ver)
diff --git a/backends/apt/meson.build b/backends/apt/meson.build
index c37f84505..d9f3f52f5 100644
--- a/backends/apt/meson.build
+++ b/backends/apt/meson.build
@@ -5,7 +5,7 @@ cpp_compiler = meson.get_compiler('cpp')
 gstreamer_dep = dependency('gstreamer-1.0')
 gstreamer_base_dep = dependency('gstreamer-base-1.0')
 gstreamer_plugins_base_dep = dependency('gstreamer-plugins-base-1.0')
-appstream_dep = dependency('appstream', version: '>=0.12')
+appstream_dep = dependency('appstream', version: '>=0.16.0')
 apt_pkg_dep = dependency('apt-pkg', version: '>=1.9.2')
 
 # Check whether apt supports ddtp
commit da3db0027dfcbd50b4e05d20571087718e590eb3
Author: Gleb Popov <6yearold at gmail.com>
Date:   Fri Feb 17 19:31:01 2023 +0300

    Use more portable shebang in Python test scripts. (#606)

diff --git a/data/tests/pk-client-helper-test.py b/data/tests/pk-client-helper-test.py
index 159008eaa..8cf8af711 100755
--- a/data/tests/pk-client-helper-test.py
+++ b/data/tests/pk-client-helper-test.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 # Licensed under the GNU General Public License Version 2
 #
 # This program is free software; you can redistribute it and/or modify
diff --git a/data/tests/pk-spawn-dispatcher.py b/data/tests/pk-spawn-dispatcher.py
index 2fa36d57e..89f233703 100755
--- a/data/tests/pk-spawn-dispatcher.py
+++ b/data/tests/pk-spawn-dispatcher.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
diff --git a/data/tests/pk-spawn-test-sigquit.py b/data/tests/pk-spawn-test-sigquit.py
index b15e7a47e..e57c3718c 100755
--- a/data/tests/pk-spawn-test-sigquit.py
+++ b/data/tests/pk-spawn-test-sigquit.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/env python3
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
commit 140b060111ede3049533ca781b38e7fb6b9a62ca
Author: Matthias Klumpp <matthias at tenstral.net>
Date:   Fri Feb 10 23:14:31 2023 +0100

    apt: Set update urgency as urgency as well as status again
    
    Apparently doing anything else confuses frontends that have worked with
    the old code before.

diff --git a/backends/apt/apt-job.cpp b/backends/apt/apt-job.cpp
index a670e3c55..d983374b0 100644
--- a/backends/apt/apt-job.cpp
+++ b/backends/apt/apt-job.cpp
@@ -573,6 +573,8 @@ void AptJob::emitUpdates(PkgList &output, PkBitfield filters)
                 state = PK_INFO_ENUM_SECURITY;
             } else if (ends_with(archive, "-backports")) {
                 state = PK_INFO_ENUM_ENHANCEMENT;
+            } else if (ends_with(archive, "-proposed-updates") || ends_with(archive, "-updates-proposed")) {
+                state = PK_INFO_ENUM_LOW;
             } else if (ends_with(archive, "-updates")) {
                 state = PK_INFO_ENUM_BUGFIX;
             }
@@ -581,7 +583,8 @@ void AptJob::emitUpdates(PkgList &output, PkBitfield filters)
             state = PK_INFO_ENUM_ENHANCEMENT;
         }
 
-        stagePackageForEmit(pkgArray, pkgInfo.ver, PK_INFO_ENUM_UNKNOWN, state);
+        // NOTE: Frontends expect us to pass the update urgency as both its state *and* actual urgency value here.
+        stagePackageForEmit(pkgArray, pkgInfo.ver, state, state);
     }
 
     // emit
commit 379c8c34c9ac3c9e3758fa335425055eff56a587
Author: Gordon Messmer <gordon.messmer at gmail.com>
Date:   Tue Jan 17 08:45:16 2023 -0800

    Notify PackageKit when dnf installs or removes packages.

diff --git a/backends/dnf/meson.build b/backends/dnf/meson.build
index ac75a1b6c..09718baf1 100644
--- a/backends/dnf/meson.build
+++ b/backends/dnf/meson.build
@@ -7,6 +7,19 @@ if meson.get_compiler('c').has_function('hy_query_get_advisory_pkgs', prefix: '#
    c_args += ['-DHAVE_HY_QUERY_GET_ADVISORY_PKGS']
 endif
 
+python = import('python')
+python_exec = python.find_installation()
+python_package_dir = get_option('pythonpackagedir')
+if python_package_dir == ''
+  python_package_dir = python_exec.get_install_dir()
+endif
+python_package_dir = join_paths(python_package_dir, 'dnf-plugins')
+
+install_data(
+  'notify_packagekit.py',
+  install_dir: join_paths(python_package_dir),
+)
+
 shared_module(
   'pk_backend_dnf',
   'dnf-backend-vendor- at 0@.c'.format(get_option('dnf_vendor')),
diff --git a/backends/dnf/notify_packagekit.py b/backends/dnf/notify_packagekit.py
new file mode 100644
index 000000000..3be1fadd8
--- /dev/null
+++ b/backends/dnf/notify_packagekit.py
@@ -0,0 +1,45 @@
+# -*- coding: utf-8 -*-
+#
+# Copyright (C) 2022 Gordon Messmer
+#
+# Licensed under the GNU Lesser General Public License Version 2.1
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+"""
+Notify packagekitd when packages are installed, updated, or removed. 
+"""
+
+import dbus
+import dnf
+from dnfpluginscore import _
+
+
+class NotifyPackagekit(dnf.Plugin):
+    name = "notify-packagekit"
+
+    def __init__(self, base, cli):
+        super(NotifyPackagekit, self).__init__(base, cli)
+        self.base = base
+        self.cli = cli
+
+    def transaction(self):
+        try:
+            bus = dbus.SystemBus()
+            proxy = bus.get_object('org.freedesktop.PackageKit', '/org/freedesktop/PackageKit')
+            iface = dbus.Interface(proxy, dbus_interface='org.freedesktop.PackageKit')
+            iface.StateHasChanged('posttrans')
+        except:
+            pass
diff --git a/contrib/PackageKit.spec.in b/contrib/PackageKit.spec.in
index 38e29d107..b8d57af03 100644
--- a/contrib/PackageKit.spec.in
+++ b/contrib/PackageKit.spec.in
@@ -12,6 +12,7 @@ Requires: %{name}-glib%{?_isa} = %{version}-%{release}
 Requires: shared-mime-info
 Requires: systemd
 
+BuildRequires: python3-devel
 BuildRequires: glib2-devel >= 2.46.0
 BuildRequires: xmlto
 BuildRequires: gtk-doc
@@ -199,6 +200,7 @@ popd > /dev/null
 %{_datadir}/PackageKit/helpers/test_spawn/search-name.sh
 %{_libexecdir}/packagekitd
 %{_libexecdir}/packagekit-direct
+%pycached %{python3_sitelib}/dnf-plugins/notify_packagekit.py
 %{_bindir}/pkmon
 %{_bindir}/pkcon
 %exclude %{_libdir}/libpackagekit*.so.*
commit de8977d1c0e8d23f7da5eef73977b6b98655e0a7
Author: Frank Dana <ferdnyc at gmail.com>
Date:   Fri Jan 20 19:33:59 2023 -0500

    pkcon: Widen progressbar text area

diff --git a/client/pk-console.c b/client/pk-console.c
index bd57e82f3..b16a8e3c7 100644
--- a/client/pk-console.c
+++ b/client/pk-console.c
@@ -1639,7 +1639,7 @@ main (int argc, char *argv[])
 	g_autofree gchar *filter = NULL;
 	g_autofree gchar *options_help = NULL;
 	g_autofree gchar *summary = NULL;
-	guint bar_padding = 30;
+	guint bar_padding = 40;
 	guint bar_size = 25;
 	struct winsize w;
 
commit 729323c0a86ac99aaf35c0c6229818813c84568f
Author: Gordon Messmer <gordon.messmer at gmail.com>
Date:   Sun Jan 15 15:44:18 2023 -0800

    Fix use of potentially uninitialized timer ID (#599)

diff --git a/src/pk-main.c b/src/pk-main.c
index d372a7456..43727d206 100644
--- a/src/pk-main.c
+++ b/src/pk-main.c
@@ -241,6 +241,8 @@ main (int argc, char *argv[])
 		helper.loop = loop;
 		helper.timer_id = g_timeout_add_seconds (5, (GSourceFunc) pk_main_timeout_check_cb, &helper);
 		g_source_set_name_by_id (helper.timer_id, "[PkMain] main poll");
+	} else {
+		helper.timer_id = 0;
 	}
 
 	/* immediatly exit */
commit 3124f67048c0ac7397f24ca8a82a0aa615b1d684
Author: Matthias Klumpp <matthias at tenstral.net>
Date:   Mon Jan 9 03:36:03 2023 +0100

    apt: Display more useful pretty names for repositories
    
    Previously they all had names like "Xenial" or "Stable", which is not
    very useful and causes users to blindly disable repositories that they
    might need.

diff --git a/backends/apt/apt-sourceslist.cpp b/backends/apt/apt-sourceslist.cpp
index c0d3a94c7..7c06d741d 100644
--- a/backends/apt/apt-sourceslist.cpp
+++ b/backends/apt/apt-sourceslist.cpp
@@ -472,7 +472,24 @@ string SourcesList::SourceRecord::niceName()
         ret += " Sources";
     }
 
-    return ret;
+    std::string uri_info;
+    size_t schema_pos = URI.find("://");
+    if (schema_pos == std::string::npos) {
+        uri_info = URI;
+    } else {
+        uri_info = URI.substr(schema_pos + 3);
+        if (uri_info.back() == '/')
+            uri_info.pop_back();
+    }
+
+    if (g_pattern_match_simple ("*.debian.org/*", uri_info.c_str()))
+        return "Debian " + ret;
+    if (g_pattern_match_simple ("*.ubuntu.com/*", uri_info.c_str()))
+        return "Debian " + ret;
+    if (g_pattern_match_simple ("*.pureos.net/*", uri_info.c_str()))
+        return "PureOS " + ret;
+
+    return uri_info + " - " + ret;
 }
 
 string SourcesList::SourceRecord::repoId()
commit 8aae34b423fd53966b4eab2db459366d777aef62
Author: Matthias Klumpp <matthias at tenstral.net>
Date:   Fri Jan 6 20:40:20 2023 +0100

    trivial: Revert deletion of Apper
    
    Even though Apper is a dormant project, it still is a valid user of
    PackageKit and the only KDE frontend that exposes all of its features.
    
    So Discover should be added to the list, but shouldn't replace Apper.

diff --git a/docs/html/pk-users.html b/docs/html/pk-users.html
index 74cce5840..931af6880 100644
--- a/docs/html/pk-users.html
+++ b/docs/html/pk-users.html
@@ -129,6 +129,20 @@
   </p>
  </td>
 </tr>
+<tr>
+ <td>
+  <a href="https://apps.kde.org/apper/"><img src="img/users-apper.png" alt=""/></a>
+ </td>
+ <td>
+  <h2>KDE - Apper</h2>
+  <p>
+   Apper is the KDE interface for PackageKit.
+  </p>
+  <p>
+   Supports PackageKit >= 0.6.18
+  </p>
+ </td>
+</tr>
 <tr>
  <td>
   <a href="https://apps.kde.org/discover/"><img src="https://apps.kde.org/app-icons/org.kde.discover.svg" alt=""/></a>
commit bb1409a71a4872f3f13ca565c98a8be0b2dc77eb
Author: Jonathan Kang <jonathankang at gnome.org>
Date:   Fri Jan 6 09:41:42 2023 +0800

    zypp: Fix ambiguous reference to 'filesystem' class
    
    https://bugzilla.suse.com/show_bug.cgi?id=1206687

diff --git a/backends/zypp/pk-backend-zypp.cpp b/backends/zypp/pk-backend-zypp.cpp
index bf9a7feca..67ea9abf7 100644
--- a/backends/zypp/pk-backend-zypp.cpp
+++ b/backends/zypp/pk-backend-zypp.cpp
@@ -611,7 +611,7 @@ ZyppJob::get_zypp()
 		/* TODO: we need to lifecycle manage this, detect changes
 		   in the requested 'root' etc. */
 		if (!initialized) {
-			filesystem::Pathname pathname("/");
+			zypp::filesystem::Pathname pathname("/");
 			zypp->initializeTarget (pathname);
 
 			initialized = TRUE;
@@ -1669,7 +1669,7 @@ zypp_refresh_cache (PkBackendJob *job, ZYpp::Ptr zypp, gboolean force)
 
 	if (zypp == NULL)
 		return  FALSE;
-	filesystem::Pathname pathname("/");
+	zypp::filesystem::Pathname pathname("/");
 
 	bool poolIsClean = sat::Pool::instance ().reposEmpty ();
 	// Erase and reload all if pool is too holey (densyity [100: good | 0 bad])
@@ -1855,7 +1855,7 @@ pk_backend_destroy (PkBackend *backend)
 {
 	g_debug ("zypp_backend_destroy");
 
-	filesystem::recursive_rmdir (zypp::myTmpDir ());
+	zypp::filesystem::recursive_rmdir (zypp::myTmpDir ());
 
 	g_free (_repoName);
 	delete priv;
@@ -2538,7 +2538,7 @@ backend_install_files_thread (PkBackendJob *job, GVariant *params, gpointer user
 	}
 
 	// create a temporary directory
-	filesystem::TmpDir tmpDir;
+	zypp::filesystem::TmpDir tmpDir;
 	if (tmpDir == NULL) {
 		zypp_backend_finished_error (
 			job, PK_ERROR_ENUM_LOCAL_INSTALL_FAILED,
@@ -2561,7 +2561,7 @@ backend_install_files_thread (PkBackendJob *job, GVariant *params, gpointer user
 
 		// copy the rpm into tmpdir
 		string tempDest = tmpDir.path ().asString () + "/" + rpmHeader->tag_name () + ".rpm";
-		if (filesystem::copy (full_paths[i], tempDest) != 0) {
+		if (zypp::filesystem::copy (full_paths[i], tempDest) != 0) {
 			zypp_backend_finished_error (
 				job, PK_ERROR_ENUM_LOCAL_INSTALL_FAILED,
 				"Could not copy the rpm-file into the temp-dir");
@@ -3924,7 +3924,7 @@ backend_download_packages_thread (PkBackendJob *job, GVariant *params, gpointer
 			PoolItem item(solvable);
 			size += 2 * make<ResObject>(solvable)->downloadSize();
 
-			filesystem::Pathname repo_dir = solvable.repository().info().packagesPath();
+			zypp::filesystem::Pathname repo_dir = solvable.repository().info().packagesPath();
 			struct statfs stat;
 			statfs(repo_dir.c_str(), &stat);
 			if (size > stat.f_bavail * 4) {
@@ -3949,7 +3949,7 @@ backend_download_packages_thread (PkBackendJob *job, GVariant *params, gpointer
 			// be sure it ends with /
 			target += "/";
 			target += tmp_file->basename();
-			filesystem::hardlinkCopy(tmp_file, target);
+			zypp::filesystem::hardlinkCopy(tmp_file, target);
 			const gchar *to_strv[] = { NULL, NULL };
 			to_strv[0] =  target.c_str();
 			pk_backend_job_files (job, package_ids[i],(gchar **) to_strv);
commit c3ba09f3556f4881f595ab44f881969396d127d6
Author: Matthias Klumpp <matthias at tenstral.net>
Date:   Thu Dec 1 20:01:39 2022 +0100

    trivial: Use HTTPS URL for releases

diff --git a/RELEASE b/RELEASE
index 77a475f52..55d32cf24 100644
--- a/RELEASE
+++ b/RELEASE
@@ -67,6 +67,6 @@ git push
 =================================================
 PackageKit 1.2.7 released!
 
-Tarballs available here: http://www.freedesktop.org/software/PackageKit/releases/
+Tarballs available here: https://www.freedesktop.org/software/PackageKit/releases/
 
 =================================================
commit fb70b98cd5098c91bafeb7d755364fa6375aa9c5
Author: Matthias Klumpp <matthias at tenstral.net>
Date:   Thu Dec 1 19:56:48 2022 +0100

    trivial: post release version bump

diff --git a/RELEASE b/RELEASE
index 9d07073d5..77a475f52 100644
--- a/RELEASE
+++ b/RELEASE
@@ -2,21 +2,21 @@ PackageKit Release Notes
 
 1. Write NEWS entries for PackageKit in the same format as usual.
 
-git shortlog PACKAGEKIT_1_2_4.. | grep -i -v trivial | grep -v Merge > NEWS.new
+git shortlog v1.2.6.. | grep -i -v trivial | grep -v Merge > NEWS.new
 
 --------------------------------------------------------------------------------
-Version 1.2.5
+Version 1.2.7
 ~~~~~~~~~~~~~
-Released: 2021-xx-xx
+Released: 2022-xx-xx
 
 Notes:
 
+New Features:
+
 Libraries:
 
 Backends:
 
-New Features:
-
 Bugfixes:
 --------------------------------------------------------------------------------
 
@@ -25,7 +25,7 @@ Bugfixes:
 ninja PackageKit-pot
 tx push --source
 tx pull --all --force --minimum-perc=5
-ninja-build fix-translations
+ninja fix-translations
 git add ../po/*.po
 
 3. Update library version if new ABI or API in meson.build
@@ -33,8 +33,8 @@ git add ../po/*.po
 4. Commit changes in PackageKit git:
 
 # MAKE SURE THESE ARE CORRECT
-export release_version="1.2.5"
-export release_tag="PACKAGEKIT_1_2_5"
+export release_version="1.2.7"
+export release_tag="v1.2.7"
 
 git commit -a -m "Release ${release_version}"
 git tag -s -f -m "Release ${release_version}" "${release_tag}"
@@ -55,7 +55,7 @@ gpg -b -a meson-dist/PackageKit-${release_version}.tar.xz
 
 scp meson-dist/PackageKit-${release_version}.tar.* hughsient at annarchy.freedesktop.org:/srv/www.freedesktop.org/www/software/PackageKit/releases/
 
-7. Do post release version bump in meson.build
+7. Do post release version bump in meson.build, RELEASES
 
 8. Commit trivial changes:
 
@@ -65,7 +65,7 @@ git push
 9. Send an email to packagekit at lists.freedesktop.org
 
 =================================================
-PackageKit 1.2.5 released!
+PackageKit 1.2.7 released!
 
 Tarballs available here: http://www.freedesktop.org/software/PackageKit/releases/
 
diff --git a/meson.build b/meson.build
index 4ce7b55d7..31d230d17 100644
--- a/meson.build
+++ b/meson.build
@@ -1,5 +1,5 @@
 project('PackageKit', 'c',
-  version : '1.2.6',
+  version : '1.2.7',
   license : 'LGPL-2.1+',
   meson_version : '>=0.50',
   default_options : ['warning_level=2', 'c_std=c99'],


More information about the PackageKit-commit mailing list