[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#928108: unblock: unattended-upgrades/1.12 ?



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org

Dear Release Team,

Unattended-upgrades 1.12 contains almost only fixes for bugs holding
back security updates or for regressions.
I'm wondering if you would let it in Buster in full or just with
omitting parts of the fixes. If omitting some of the fixes is desired
please state which ones can go in and which ones can't.

Changes:
 unattended-upgrades (1.12) experimental; urgency=medium
 .
   [ Brannon Dorsey ]
   * Remove double "format" in 50unattended-upgrades configuration files
 .
   [ Daniel Herzig ]
   * man: improve unattended-upgrade.8 man-page (Closes: #905289)
 .
   [ Jonatan Nyberg ]
   * Swedish debconf strings update (Closes: #925488)
 .
   [ Balint Reczey ]
   * Compare apt.package.Version objects and not the versions' string
     representation. This prevented adjusting candidates when the strings sorted
     differently (LP: #1820888)
   * Enable test_clean and test_patch_days tests
   * Fall back to adjusting more packages' candidates when a package from an
     allowed origin can't be marked to install/upgrade. (LP: #1821101)
   * Skip sending email when no package had to be installed, upgraded or removed
     (LP: #1821103) (Closes: #924554)
   * Add a few debug logging points
   * Report packages kept back by origin (LP: #1821376)
   * Fix trailing newlines in wrapped email lines
   * Describe candidate adjustment fallback better in the debug message
   * Fix missing space. Thanks to Alban VIDAL
   * Update POT file
   * Test upgrades to -updates and to -proposed in upgrade-all-security
     autopkgtest. Also enable -updates, too, while testing in Debian.
   * Add ${distro_id}ESM:${distro_codename}-security to allowed origins
     (LP: #1823376)
   * Detect changes to moved conffiles (LP: #1823872)
   * Add tests for checking conffile moves.
     Build depend on and use equivs to generate new test packages
   * Make sure autoremovals don't start with a dirty cache and remove other
     packages (LP: #1824341)
   * Stop raising NoAllowedOriginError when marking packages to upgrade/install
     fails (LP: #1824876)
   * Continue applying minimal sets when one set can't be marked for upgrade.
     Thanks to Anderson Luiz Alves for the patch, it needed minor modifications
     (LP: #1824341)
   * Skip trying to upgrade held packages in call_adjusted() (LP: #1824804)
   * Adjust only transitive dependencies in the fallback when a package from an
     allowed origin can't be marked to install/upgrade.
     This is a much lighter approach than marking every upgradable package
     because the full fallback was triggered on packages held back as well,
     using an excessive amount of CPU time. (LP: #1824804, #1824949)
   * Follow all kinds of transitive dependencies when adjusting dependencies
   * Split() conffile data to set of names only once
   * Don't parse dpkg conffile db when there are no conffiles in the package
   * Detect unchanged moved conffiles.
     When a package moves a conffile properly without any change no conffile
     prompt needs to be shown thus the package can be upgraded unattended even
     when the conffile is changed locally. (LP: #1823872)

Cheers,
Balint
diff -Nru unattended-upgrades-1.11/data/50unattended-upgrades.Debian unattended-upgrades-1.12/data/50unattended-upgrades.Debian
--- unattended-upgrades-1.11/data/50unattended-upgrades.Debian	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/data/50unattended-upgrades.Debian	2019-04-18 16:38:31.000000000 +0200
@@ -1,7 +1,7 @@
 // Unattended-Upgrade::Origins-Pattern controls which packages are
 // upgraded.
 //
-// Lines below have the format format is "keyword=value,...".  A
+// Lines below have the format is "keyword=value,...".  A
 // package will be upgraded only if the values in its metadata match
 // all the supplied keywords in a line.  (In other words, omitted
 // keywords are wild cards.) The keywords originate from the Release
diff -Nru unattended-upgrades-1.11/data/50unattended-upgrades.Devuan unattended-upgrades-1.12/data/50unattended-upgrades.Devuan
--- unattended-upgrades-1.11/data/50unattended-upgrades.Devuan	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/data/50unattended-upgrades.Devuan	2019-04-18 16:38:31.000000000 +0200
@@ -1,7 +1,7 @@
 // Unattended-Upgrade::Origins-Pattern controls which packages are
 // upgraded.
 //
-// Lines below have the format format is "keyword=value,...".  A
+// Lines below have the format is "keyword=value,...".  A
 // package will be upgraded only if the values in its metadata match
 // all the supplied keywords in a line.  (In other words, omitted
 // keywords are wild cards.) The keywords originate from the Release
diff -Nru unattended-upgrades-1.11/data/50unattended-upgrades.Raspbian unattended-upgrades-1.12/data/50unattended-upgrades.Raspbian
--- unattended-upgrades-1.11/data/50unattended-upgrades.Raspbian	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/data/50unattended-upgrades.Raspbian	2019-04-18 16:38:31.000000000 +0200
@@ -1,7 +1,7 @@
 // Unattended-Upgrade::Origins-Pattern controls which packages are
 // upgraded.
 //
-// Lines below have the format format is "keyword=value,...".  A
+// Lines below have the format is "keyword=value,...".  A
 // package will be upgraded only if the values in its metadata match
 // all the supplied keywords in a line.  (In other words, omitted
 // keywords are wild cards.) The keywords originate from the Release
diff -Nru unattended-upgrades-1.11/data/50unattended-upgrades.SteamOS unattended-upgrades-1.12/data/50unattended-upgrades.SteamOS
--- unattended-upgrades-1.11/data/50unattended-upgrades.SteamOS	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/data/50unattended-upgrades.SteamOS	2019-04-18 16:38:31.000000000 +0200
@@ -1,7 +1,7 @@
 // Unattended-Upgrade::Origins-Pattern controls which packages are
 // upgraded.
 //
-// Lines below have the format format is "keyword=value,...".  A
+// Lines below have the format is "keyword=value,...".  A
 // package will be upgraded only if the values in its metadata match
 // all the supplied keywords in a line.  (In other words, omitted
 // keywords are wild cards.) The keywords originate from the Release
diff -Nru unattended-upgrades-1.11/data/50unattended-upgrades.Ubuntu unattended-upgrades-1.12/data/50unattended-upgrades.Ubuntu
--- unattended-upgrades-1.11/data/50unattended-upgrades.Ubuntu	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/data/50unattended-upgrades.Ubuntu	2019-04-18 16:38:31.000000000 +0200
@@ -11,6 +11,7 @@
 	// available, the policy for updates is such that unattended-upgrades
 	// should also install from here by default.
 	"${distro_id}ESM:${distro_codename}";
+	"${distro_id}ESM:${distro_codename}-security";
 //	"${distro_id}:${distro_codename}-updates";
 //	"${distro_id}:${distro_codename}-proposed";
 //	"${distro_id}:${distro_codename}-backports";
diff -Nru unattended-upgrades-1.11/debian/changelog unattended-upgrades-1.12/debian/changelog
--- unattended-upgrades-1.11/debian/changelog	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/debian/changelog	2019-04-18 16:38:31.000000000 +0200
@@ -1,3 +1,59 @@
+unattended-upgrades (1.12) experimental; urgency=medium
+
+  [ Brannon Dorsey ]
+  * Remove double "format" in 50unattended-upgrades configuration files
+
+  [ Daniel Herzig ]
+  * man: improve unattended-upgrade.8 man-page (Closes: #905289)
+
+  [ Jonatan Nyberg ]
+  * Swedish debconf strings update (Closes: #925488)
+
+  [ Balint Reczey ]
+  * Compare apt.package.Version objects and not the versions' string
+    representation. This prevented adjusting candidates when the strings sorted
+    differently (LP: #1820888)
+  * Enable test_clean and test_patch_days tests
+  * Fall back to adjusting more packages' candidates when a package from an
+    allowed origin can't be marked to install/upgrade. (LP: #1821101)
+  * Skip sending email when no package had to be installed, upgraded or removed
+    (LP: #1821103) (Closes: #924554)
+  * Add a few debug logging points
+  * Report packages kept back by origin (LP: #1821376)
+  * Fix trailing newlines in wrapped email lines
+  * Describe candidate adjustment fallback better in the debug message
+  * Fix missing space. Thanks to Alban VIDAL
+  * Update POT file
+  * Test upgrades to -updates and to -proposed in upgrade-all-security
+    autopkgtest. Also enable -updates, too, while testing in Debian.
+  * Add ${distro_id}ESM:${distro_codename}-security to allowed origins
+    (LP: #1823376)
+  * Detect changes to moved conffiles (LP: #1823872)
+  * Add tests for checking conffile moves.
+    Build depend on and use equivs to generate new test packages
+  * Make sure autoremovals don't start with a dirty cache and remove other
+    packages (LP: #1824341)
+  * Stop raising NoAllowedOriginError when marking packages to upgrade/install
+    fails (LP: #1824876)
+  * Continue applying minimal sets when one set can't be marked for upgrade.
+    Thanks to Anderson Luiz Alves for the patch, it needed minor modifications
+    (LP: #1824341)
+  * Skip trying to upgrade held packages in call_adjusted() (LP: #1824804)
+  * Adjust only transitive dependencies in the fallback when a package from an
+    allowed origin can't be marked to install/upgrade.
+    This is a much lighter approach than marking every upgradable package
+    because the full fallback was triggered on packages held back as well,
+    using an excessive amount of CPU time. (LP: #1824804, #1824949)
+  * Follow all kinds of transitive dependencies when adjusting dependencies
+  * Split() conffile data to set of names only once
+  * Don't parse dpkg conffile db when there are no conffiles in the package
+  * Detect unchanged moved conffiles.
+    When a package moves a conffile properly without any change no conffile
+    prompt needs to be shown thus the package can be upgraded unattended even
+    when the conffile is changed locally. (LP: #1823872)
+
+ -- Balint Reczey <rbalint@ubuntu.com>  Thu, 18 Apr 2019 16:38:31 +0200
+
 unattended-upgrades (1.11) unstable; urgency=medium
 
   * Use defaults in unattended-upgrades.service when the APT configuration is
diff -Nru unattended-upgrades-1.11/debian/control unattended-upgrades-1.12/debian/control
--- unattended-upgrades-1.11/debian/control	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/debian/control	2019-04-18 16:38:31.000000000 +0200
@@ -4,6 +4,7 @@
 Section: admin
 Priority: optional
 Build-Depends: debhelper (>= 9.20160709),
+               equivs,
                po-debconf,
                python3,
                python3-dbus,
diff -Nru unattended-upgrades-1.11/debian/po/sv.po unattended-upgrades-1.12/debian/po/sv.po
--- unattended-upgrades-1.11/debian/po/sv.po	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/debian/po/sv.po	2019-04-18 16:38:31.000000000 +0200
@@ -8,20 +8,20 @@
 "Project-Id-Version: unattended-upgrades\n"
 "Report-Msgid-Bugs-To: unattended-upgrades@packages.debian.org\n"
 "POT-Creation-Date: 2017-12-12 23:02+0100\n"
-"PO-Revision-Date: 2017-02-17 08:25+0100\n"
-"Last-Translator: Jonatan Nyberg <jonatan@autistici.org>\n"
+"PO-Revision-Date: 2019-03-25 20:43+0100\n"
+"Last-Translator: Jonatan Nyberg <jonatan.nyberg.karl@gmail.com>\n"
 "Language-Team: swedish <debian-l10n-swedish@lists.debian.org>\n"
 "Language: sv\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.8.11\n"
+"X-Generator: Poedit 2.2.1\n"
 
 #. Type: boolean
 #. Description
 #: ../templates:2001
 msgid "Automatically download and install stable updates?"
-msgstr "Automatiskt ladda ner och installera stabila uppdateringar?"
+msgstr "Hämta och installera stabila uppdateringar automatiskt?"
 
 #. Type: boolean
 #. Description
@@ -32,9 +32,9 @@
 "management tools. Alternatively, you can choose to have this system  "
 "automatically download and install important updates."
 msgstr ""
-"Tillämpa uppdateringar på en frekvent basis är en viktig del för att hålla "
-"system säkra. Som standard, behöver uppdateringar appliceras manuellt med "
-"hjälp av pakethanteringsverktyg. Alternativt kan du välja att detta system "
+"Att tillämpa uppdateringar ofta är en viktig del av att hålla system säkra. "
+"Som standard måste uppdateringar tillämpas manuellt med hjälp av "
+"pakethanteringsverktyg. Alternativt kan du välja att detta system "
 "automatiskt hämtar och installerar viktiga uppdateringar."
 
 #~ msgid "Origins-Pattern that packages must match to be upgraded:"
diff -Nru unattended-upgrades-1.11/debian/tests/common-functions unattended-upgrades-1.12/debian/tests/common-functions
--- unattended-upgrades-1.11/debian/tests/common-functions	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/debian/tests/common-functions	2019-04-18 16:38:31.000000000 +0200
@@ -44,44 +44,42 @@
     trap "umount \"$chroot_dir/proc\"; umount \"$chroot_dir/dev/pts\"; rm -rf \"$chroot_dir\"" EXIT
 }
 
-enable_security_updates() {
-    local chroot_dir distro
+# pocket can be "proposed", "updates" or "security", not the actual distro-specific pocket name
+enable_pocket() {
+    local chroot_dir pocket distro mirror_dir_postfix real_pocket
     chroot_dir="$1"
-    distro="$2"
-
+    pocket="$2"
+    distro=$(awk '{ print $3; exit}' "$chroot_dir/etc/apt/sources.list")
     case "$(dpkg-vendor --query Vendor)" in
         "Ubuntu")
-            sed "s/$distro/$distro-security/" < "$chroot_dir/etc/apt/sources.list" \
-                > "$chroot_dir/etc/apt/sources.list.d/security.list"
+            sed "s/$distro/$distro-$pocket/" < "$chroot_dir/etc/apt/sources.list" \
+                > "$chroot_dir/etc/apt/sources.list.d/$pocket.list"
             ;;
         "Debian")
-            echo "deb http://security.debian.org/ $distro/updates main" \
-                 > "$chroot_dir/etc/apt/sources.list.d/security.list"
+            case "$pocket" in
+                proposed)
+                    real_pocket=proposed-updates
+                    ;;
+                security)
+                    real_pocket="$distro/updates"
+                    mirror_dir_postfix="-security"
+                    ;;
+                *)
+                    real_pocket="$pocket"
+                    ;;
+            esac
+            sed "s|/debian |/debian$mirror_dir_postfix |;s/$distro/$distro-$pocket/" < "$chroot_dir/etc/apt/sources.list" \
+                > "$chroot_dir/etc/apt/sources.list.d/$pocket.list"
             ;;
     esac
 }
 
-disable_security_updates() {
-    local chroot_dir
-    chroot_dir="$1"
-
-    rm "$chroot_dir/etc/apt/sources.list.d/security.list"
-}
-
-enable_release_updates() {
-    local chroot_dir distro
-    chroot_dir="$1"
-    distro="$2"
-
-    sed "s/$distro/$distro-updates/" < "$chroot_dir/etc/apt/sources.list" \
-        > "$chroot_dir/etc/apt/sources.list.d/updates.list"
-}
-
-disable_release_updates() {
-    local chroot_dir
+# pocket can be "proposed", "updates" or "security", not the actual distro-specific pocket name
+disable_pocket() {
+    local chroot_dir pocket
     chroot_dir="$1"
-
-    rm "$chroot_dir/etc/apt/sources.list.d/updates.list"
+    pocket="$2"
+    rm "$chroot_dir/etc/apt/sources.list.d/$pocket.list"
 }
 
 upgrade_python_apt() {
@@ -93,12 +91,12 @@
     # systems are running most likely. This also contains latest stability fixes
     # and speed optimizations, thus speed regressions nd improvements can be
     # tracked in autopkgtest runs.
-    enable_security_updates "$chroot_dir" "$distro"
-    enable_release_updates "$chroot_dir" "$distro"
+    enable_pocket "$chroot_dir" security
+    enable_pocket "$chroot_dir" updates
     chroot_exec "$chroot_dir" apt-get update
     chroot_exec "$chroot_dir" apt-get install -y python3-apt 2>&1
-    disable_release_updates "$chroot_dir"
-    disable_security_updates "$chroot_dir"
+    disable_pocket "$chroot_dir" updates
+    disable_pocket "$chroot_dir" security
     chroot_exec "$chroot_dir" apt-get update
 }
 
@@ -132,5 +130,20 @@
     chroot_exec "$chroot_dir" apt-mark showmanual | diff "$chroot_dir/tmp/manual" -
     chroot_exec "$chroot_dir" perl -MMIME::QuotedPrint -pe '$_=MIME::QuotedPrint::decode($_);' /var/mail/mail
 
+    printf  "Checking that no email is sent when nothing had to be done..."
+    if ! chroot_exec "$chroot_dir" perl -MMIME::QuotedPrint -pe '$_=MIME::QuotedPrint::decode($_);' /var/mail/mail | grep -q "unattended and no pending auto-removals"; then
+        echo "OK"
+    else
+        echo "FAILED, see last email above"
+    fi
+
+    printf  "Checking that no packages can be upgraded or auto-removed..."
+    if tail -n 1 "$chroot_dir/var/log/unattended-upgrades/unattended-upgrades.log" | grep -q "No packages found that can be upgraded unattended and no pending auto-removals"; then
+        echo "OK."
+    else
+        echo "Failed:"
+        cat "$chroot_dir/var/log/unattended-upgrades/unattended-upgrades.log"
+    fi
+
     rm "$chroot_dir/etc/apt/apt.conf.d/51unattended-upgrades-dpkg-frontend-check"
 }
diff -Nru unattended-upgrades-1.11/debian/tests/upgrade-all-security unattended-upgrades-1.12/debian/tests/upgrade-all-security
--- unattended-upgrades-1.11/debian/tests/upgrade-all-security	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/debian/tests/upgrade-all-security	2019-04-18 16:38:31.000000000 +0200
@@ -4,6 +4,9 @@
 # On development releases the latest stable release is tested since there are no
 # security updates to test with.
 
+# Also test if packages can be upgraded to -updates and -proposed, but failures
+# in -proposed are ignored since those can be issues in the packages.
+
 set -e
 
 chroot_dir=$AUTOPKGTEST_TMP/chroot
@@ -49,8 +52,8 @@
 chroot_exec "$chroot_dir" bash -c 'apt install -y /tmp/unattended-upgrades_*deb' 2>&1
 
 
-enable_security_updates "$chroot_dir" "$distro"
-enable_release_updates "$chroot_dir" "$distro"
+enable_pocket "$chroot_dir" security
+enable_pocket "$chroot_dir" updates
 chroot_exec "$chroot_dir" apt-get update
 
 # save list of manually installed packages
@@ -62,7 +65,7 @@
 run_u_u "$chroot_dir"
 
 echo "Checking if there is anything left not upgraded:"
-disable_release_updates "$chroot_dir"
+disable_pocket "$chroot_dir" updates
 chroot_exec "$chroot_dir" apt-get update
 chroot_exec "$chroot_dir" apt-get upgrade --with-new-pkgs -s | tee "$chroot_dir/tmp/updates-left"
 
@@ -70,3 +73,17 @@
 
 echo "Checking if originally auto-removable packages are kept:"
 chroot_exec "$chroot_dir" dpkg -l hello | grep 'ii  hello'
+
+echo "Checking if package versions from -updates can be upgraded to as well.."
+enable_pocket "$chroot_dir" updates
+chroot_exec "$chroot_dir" apt-get update
+
+echo 'Unattended-Upgrade::Allowed-Origins:: "*:*";' > "$chroot_dir/etc/apt/apt.conf.d/51u-u-all-origins"
+chroot_exec "$chroot_dir" unattended-upgrade --verbose --debug
+
+echo "Checking if package versions from -proposed can be upgraded to as well."
+echo "Failing here does not make the whole test fail because the root cause can be in other packages in -proposed"
+enable_pocket "$chroot_dir" proposed
+chroot_exec "$chroot_dir" apt-get update
+
+chroot_exec "$chroot_dir" unattended-upgrade --verbose --debug || true
diff -Nru unattended-upgrades-1.11/man/unattended-upgrade.8 unattended-upgrades-1.12/man/unattended-upgrade.8
--- unattended-upgrades-1.11/man/unattended-upgrade.8	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/man/unattended-upgrade.8	2019-04-18 16:38:31.000000000 +0200
@@ -1,8 +1,9 @@
+
 .\"                                      Hey, EMACS: -*- nroff -*-
 .\" First parameter, NAME, should be all caps
 .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
 .\" other parameters are allowed: see man(7), man(1)
-.TH unattended-upgrade 8 "May 4, 2009"
+.TH unattended-upgrade 8 "March 1, 2019"
 .\" Please adjust this date whenever revising the manpage.
 .\"
 .\" Some roff macros, for reference:
@@ -24,8 +25,10 @@
 This program can download and install security upgrades automatically
 and unattended, taking care to only install packages from the
 configured APT source, and checking for dpkg prompts about
-configuration file changes. All output is logged to
-/var/log/unattended-upgrades/*.log.
+configuration file changes. All operations are logged to
+/var/log/unattended-upgrades/unattended-upgrades.log
+and the package manager (dpkg) output is logged to
+/var/log/unattended-upgrades/unattended-upgrades-dpkg.log
 .sp
 This script is the backend for the APT::Periodic::Unattended-Upgrade
 option and designed to be run from cron (e.g. via /etc/cron.daily/apt).
@@ -38,8 +41,21 @@
 \fB-d\fR, \fB\-\-debug\fR
 extra debug output into /var/log/unattended-upgrades.log
 .TP
+\fB--apt-debug\fR
+detailed APT/LibAPT output for debugging
+.TP
+\fB-v\fR, \fB\-\-verbose\fR
+show verbose output
+.TP
 \fB--dry-run\fR
 Just simulate installing updates, do not actually do it
+.TP
+\fB--minimal-upgrade-steps\fR
+perform upgrade in minimal steps (cancel with SIGINT). This is the default now.
+.TP
+\fB--no-minimal-upgrade-steps\fR
+do not perform upgrade in minimal steps
+
 .SH CONFIGURATION
 The configuration is done via the apt configuration mechanism. The
 default configuration file can be found at
diff -Nru unattended-upgrades-1.11/po/da.po unattended-upgrades-1.12/po/da.po
--- unattended-upgrades-1.11/po/da.po	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/po/da.po	2019-04-18 16:38:31.000000000 +0200
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: unattended-upgrades\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-02-23 13:17+0700\n"
+"POT-Creation-Date: 2015-07-02 12:27+0200\n"
 "PO-Revision-Date: 2014-07-07 23:51+0200\n"
 "Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
 "Language-Team: Danish <debian-l10n-danish@lists.debian.org>\n"
@@ -16,225 +16,285 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ../unattended-upgrade:219
+#: ../unattended-upgrade:203 ../unattended-upgrade:746
+#: ../unattended-upgrade:1535
+#, fuzzy, python-format
+#| msgid "package '%s' upgradable but fails to be marked for upgrade (%s)"
+msgid "package %s upgradable but fails to be marked for upgrade (%s)"
+msgstr "pakke »%s« kan opgraderes men fejler i markering for opgradering (%s)"
+
+#: ../unattended-upgrade:301
 #, python-format
 msgid "Progress: %s %% (%s)"
 msgstr "Status: %s %% (%s)"
 
-#: ../unattended-upgrade:413 ../unattended-upgrade:430
+#: ../unattended-upgrade:541
+msgid ""
+"Checking if system is running on battery is skipped. Please install "
+"powermgmt-base package to check power status and skip installing updates "
+"when the system is running on battery."
+msgstr ""
+
+#: ../unattended-upgrade:549
+msgid "System is on metered connection, stopping"
+msgstr ""
+
+#: ../unattended-upgrade:552
+msgid ""
+"Checking if connection is metered is skipped. Please install python3-gi "
+"package to detect metered connections and skip downloading updates."
+msgstr ""
+
+#: ../unattended-upgrade:600 ../unattended-upgrade:617
 #, python-format
 msgid "Unable to parse %s."
 msgstr ""
 
-#: ../unattended-upgrade:517 ../unattended-upgrade:619
-#: ../unattended-upgrade-shutdown:193
+#: ../unattended-upgrade:701 ../unattended-upgrade:789
+#: ../unattended-upgrade:2230 ../unattended-upgrade-shutdown:111
 msgid "All upgrades installed"
 msgstr "Alle opgraderinger er installeret"
 
-#: ../unattended-upgrade:519 ../unattended-upgrade:611
+#: ../unattended-upgrade:703 ../unattended-upgrade:781
 msgid "Installing the upgrades failed!"
 msgstr "Installation af opgraderingerne mislykkedes!"
 
-#: ../unattended-upgrade:520 ../unattended-upgrade:612
-#: ../unattended-upgrade:776 ../unattended-upgrade:778
-#: ../unattended-upgrade:1539 ../unattended-upgrade:1541
+#: ../unattended-upgrade:704 ../unattended-upgrade:782
+#: ../unattended-upgrade:1056 ../unattended-upgrade:1058
+#: ../unattended-upgrade:1933 ../unattended-upgrade:1935
 #, fuzzy, python-format
 #| msgid "error message: '%s'"
 msgid "error message: %s"
 msgstr "fejlbesked: »%s«"
 
-#: ../unattended-upgrade:521 ../unattended-upgrade:613
+#: ../unattended-upgrade:705 ../unattended-upgrade:783
 #, fuzzy, python-format
 #| msgid "dpkg returned a error! See '%s' for details"
 msgid "dpkg returned a error! See %s for details"
 msgstr "dpkg returnerede en fejl! Se »%s« for detaljer"
 
-#: ../unattended-upgrade:775 ../unattended-upgrade:777
-#: ../unattended-upgrade:1538 ../unattended-upgrade:1540
-#: ../unattended-upgrade-shutdown:139
+#: ../unattended-upgrade:1055 ../unattended-upgrade:1057
+#: ../unattended-upgrade:1932 ../unattended-upgrade:1934
+#: ../unattended-upgrade:1937
 #, fuzzy
 #| msgid "dpkg returned a error! See '%s' for details"
 msgid "Apt returned an error, exiting"
 msgstr "dpkg returnerede en fejl! Se »%s« for detaljer"
 
-#: ../unattended-upgrade:964
+#: ../unattended-upgrade:1234
 #, fuzzy
 #| msgid ""
 #| "No '/usr/bin/mail' or '/usr/sbin/sendmail',can not send mail. You "
 #| "probably want to install the 'mailx' package."
 msgid ""
-"No /usr/bin/mail or /usr/sbin/sendmail,can not send mail. You probably want "
+"No /usr/bin/mail or /usr/sbin/sendmail, can not send mail. You probably want "
 "to install the mailx package."
 msgstr ""
 "Ingen »/usr/bin/mail« eller »/usr/sbin/sendmail« kan sende post. Du skal "
 "sikkert installere pakken »mailx«."
 
-#: ../unattended-upgrade:975
+#: ../unattended-upgrade:1248
 msgid "[reboot required]"
 msgstr ""
 
-#: ../unattended-upgrade:977
+#: ../unattended-upgrade:1250
 msgid "[package on hold]"
 msgstr ""
 
-#: ../unattended-upgrade:981
+#: ../unattended-upgrade:1254
 #, fuzzy, python-brace-format
 #| msgid "[reboot required] unattended-upgrades result for '%s': %s"
 msgid ""
 "{hold_flag}{reboot_flag} unattended-upgrades result for {machine}: {result}"
 msgstr "[genstart krævet] unattended-upgrades resultat for »%s: %s«"
 
-#: ../unattended-upgrade:985
-#, python-format
-msgid ""
-"Unattended upgrade returned: %s\n"
-"\n"
+#: ../unattended-upgrade:1258
+#, fuzzy, python-format
+#| msgid ""
+#| "Unattended upgrade returned: %s\n"
+#| "\n"
+msgid "Unattended upgrade result: %s"
 msgstr ""
 "Unattended upgrade returnerede: %s\n"
 "\n"
 
-#: ../unattended-upgrade:988
+#: ../unattended-upgrade:1262
+#, fuzzy
+#| msgid ""
+#| "Warning: A reboot is required to complete this upgrade.\n"
+#| "\n"
 msgid ""
-"Warning: A reboot is required to complete this upgrade.\n"
+"Warning: A reboot is required to complete this upgrade, or a previous one.\n"
 "\n"
 msgstr ""
 "Advarsel: En genstart er krævet for at færdiggøre denne opgradering.\n"
 "\n"
 
-#: ../unattended-upgrade:990
+#: ../unattended-upgrade:1266
 msgid "Packages that were upgraded:\n"
 msgstr "Pakker som blev opgraderet:\n"
 
-#: ../unattended-upgrade:992
+#: ../unattended-upgrade:1268
 msgid "Packages that attempted to upgrade:\n"
 msgstr "Pakker som forsøgte at opgradere:\n"
 
-#: ../unattended-upgrade:996
+#: ../unattended-upgrade:1272
 msgid "Packages with upgradable origin but kept back:\n"
 msgstr "Pakker med opgraderbar oprindelse men holdt tilbage:\n"
 
-#: ../unattended-upgrade:1001
+#: ../unattended-upgrade:1279
 #, fuzzy
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that were auto-removed:\n"
 msgstr "Pakker som automatisk fjernes: »%s«"
 
-#: ../unattended-upgrade:1006
+#: ../unattended-upgrade:1283
 #, fuzzy
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that were kept from being auto-removed:\n"
 msgstr "Pakker som automatisk fjernes: »%s«"
 
-#: ../unattended-upgrade:1011
+#: ../unattended-upgrade:1287
 msgid "Package installation log:"
 msgstr "Log for pakkeinstallation:"
 
-#: ../unattended-upgrade:1014
+#: ../unattended-upgrade:1290
 msgid "Unattended-upgrades log:\n"
 msgstr "Log for unattended-upgrades:\n"
 
-#: ../unattended-upgrade:1042
+#: ../unattended-upgrade:1317
 #, fuzzy, python-format
 #| msgid "Writing dpkg log to '%s'"
 msgid "Writing dpkg log to %s"
 msgstr "Skriver dpkg-log til »%s«"
 
-#: ../unattended-upgrade:1193
+#: ../unattended-upgrade:1469
 #, python-format
 msgid "Found %s, but not rebooting because %s is logged in."
 msgid_plural "Found %s, but not rebooting because %s are logged in."
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../unattended-upgrade:1247
-#, fuzzy, python-format
-#| msgid "package '%s' upgradable but fails to be marked for upgrade (%s)"
-msgid "package %s upgradable but fails to be marked for upgrade (%s)"
-msgstr "pakke »%s« kan opgraderes men fejler i markering for opgradering (%s)"
-
-#: ../unattended-upgrade:1323
+#: ../unattended-upgrade:1624
 #, python-format
 msgid ""
 "Keeping the following auto-removable package(s) because they include %s "
 "which is set to be kept unmodified: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1330
+#: ../unattended-upgrade:1631
 #, python-format
 msgid ""
 "Keeping auto-removable %s package(s) because it would also remove the "
 "following packages which should be kept in this step: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1336
+#: ../unattended-upgrade:1637
 #, python-format
 msgid ""
 "Keeping %s auto-removable package(s) because it would also remove the "
 "following packages which should be kept in this step: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1347
+#: ../unattended-upgrade:1647
 #, python-format
 msgid ""
 "Keeping the following auto-removable package(s) because they include %s "
 "which package is related to the running kernel: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1407
+#: ../unattended-upgrade:1710
 #, fuzzy, python-format
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that were successfully auto-removed: %s"
 msgstr "Pakker som automatisk fjernes: »%s«"
 
-#: ../unattended-upgrade:1409
+#: ../unattended-upgrade:1712
 #, fuzzy, python-format
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that are kept back: %s"
 msgstr "Pakker som automatisk fjernes: »%s«"
 
-#: ../unattended-upgrade:1412
+#: ../unattended-upgrade:1716
 #, fuzzy
 #| msgid "Installing the upgrades failed!"
 msgid "Auto-removing the packages failed!"
 msgstr "Installation af opgraderingerne mislykkedes!"
 
-#: ../unattended-upgrade:1413
+#: ../unattended-upgrade:1717
 #, fuzzy, python-format
 #| msgid "error message: '%s'"
 msgid "Error message: %s"
 msgstr "fejlbesked: »%s«"
 
-#: ../unattended-upgrade:1414
+#: ../unattended-upgrade:1718
 #, fuzzy, python-format
 #| msgid "dpkg returned a error! See '%s' for details"
 msgid "dpkg returned an error! See %s for details"
 msgstr "dpkg returnerede en fejl! Se »%s« for detaljer"
 
-#: ../unattended-upgrade:1474
+#: ../unattended-upgrade:1808 ../unattended-upgrade:2011
+#: ../unattended-upgrade:2012
+#, fuzzy, python-format
+#| msgid "An error occurred: '%s'"
+msgid "An error occurred: %s"
+msgstr "Der opstod en fejl: »%s«"
+
+#: ../unattended-upgrade:1812
+#, fuzzy
+#| msgid "An error occurred: '%s'"
+msgid "An error occurred"
+msgstr "Der opstod en fejl: »%s«"
+
+#: ../unattended-upgrade:1862 ../unattended-upgrade:1866
 #, python-format
-msgid "Initial blacklisted packages: %s"
+msgid "Not running on this development release before %s"
+msgstr ""
+
+#: ../unattended-upgrade:1875 ../unattended-upgrade:1876
+msgid "Not running on the development release."
+msgstr ""
+
+#: ../unattended-upgrade:1883
+#, fuzzy, python-format
+#| msgid "Initial blacklisted packages: %s"
+msgid "Initial blacklist : %s"
 msgstr "Oprindelig sortlistede pakker: %s"
 
-#: ../unattended-upgrade:1479
+#: ../unattended-upgrade:1888
 #, fuzzy, python-format
 #| msgid "Initial blacklisted packages: %s"
-msgid "Initial whitelisted packages: %s"
+msgid "Initial whitelist: %s"
 msgstr "Oprindelig sortlistede pakker: %s"
 
-#: ../unattended-upgrade:1482
+#: ../unattended-upgrade:1891
 msgid "Starting unattended upgrades script"
 msgstr "Starter skript for unattended upgrades"
 
-#: ../unattended-upgrade:1491
+#: ../unattended-upgrade:1894
 #, python-format
 msgid "Allowed origins are: %s"
 msgstr "Tilladte oprindelser er: %s"
 
-#: ../unattended-upgrade:1507 ../unattended-upgrade:1508
+#: ../unattended-upgrade:1900
+msgid "Lock could not be acquired (another package manager running?)"
+msgstr "Lås kunne ikke indhentes (kører en anden pakkehåndtering?)"
+
+#: ../unattended-upgrade:1902
+msgid "Cache lock can not be acquired, exiting"
+msgstr "Lås for mellemlager kan ikke indhentes, afslutter"
+
+#: ../unattended-upgrade:1904
+#, fuzzy
+#| msgid "Cache lock can not be acquired, exiting"
+msgid "Lock could not be acquired"
+msgstr "Lås for mellemlager kan ikke indhentes, afslutter"
+
+#: ../unattended-upgrade:1913 ../unattended-upgrade:1914
 msgid "Unclean dpkg state detected, trying to correct"
 msgstr "Uklar dpkg-tilstand detekteret, forsøger at rette"
 
-#: ../unattended-upgrade:1519
+#: ../unattended-upgrade:1925
 #, python-format
 msgid ""
 "dpkg --configure -a output:\n"
@@ -243,44 +303,36 @@
 "dpkg --configure -a output:\n"
 "%s"
 
-#: ../unattended-upgrade:1528
-msgid "Lock could not be acquired (another package manager running?)"
-msgstr "Lås kunne ikke indhentes (kører en anden pakkehåndtering?)"
-
-#: ../unattended-upgrade:1530
-msgid "Cache lock can not be acquired, exiting"
-msgstr "Lås for mellemlager kan ikke indhentes, afslutter"
-
-#: ../unattended-upgrade:1545 ../unattended-upgrade:1546
-#: ../unattended-upgrade:1773 ../unattended-upgrade:1774
+#: ../unattended-upgrade:1940 ../unattended-upgrade:1941
+#: ../unattended-upgrade:1943 ../unattended-upgrade:2179
+#: ../unattended-upgrade:2180 ../unattended-upgrade:2182
 msgid "Cache has broken packages, exiting"
 msgstr "Mellemlager har ødelagte pakker, afslutter"
 
-#: ../unattended-upgrade:1595
+#: ../unattended-upgrade:1987
+msgid "Upgrade was interrupted"
+msgstr ""
+
+#: ../unattended-upgrade:1991
 #, fuzzy, python-format
 #| msgid "GetArchives() failed: '%s'"
 msgid "GetArchives() failed: %s"
 msgstr "GetArchives() mislykkedes: »%s«"
 
-#: ../unattended-upgrade:1612 ../unattended-upgrade:1613
-#, fuzzy, python-format
-#| msgid "An error occurred: '%s'"
-msgid "An error occurred: %s"
-msgstr "Der opstod en fejl: »%s«"
-
-#: ../unattended-upgrade:1615 ../unattended-upgrade:1617
+#: ../unattended-upgrade:2014 ../unattended-upgrade:2016
+#: ../unattended-upgrade:2019
 #, fuzzy, python-format
 #| msgid "The URI '%s' failed to download, aborting"
 msgid "The URI %s failed to download, aborting"
 msgstr "Der kunne ikke hentes fra adressen »%s«, afbryder"
 
-#: ../unattended-upgrade:1621
+#: ../unattended-upgrade:2022 ../unattended-upgrade:2027
 #, fuzzy, python-format
 #| msgid "Download finished, but file '%s' not there?!?"
 msgid "Download finished, but file %s not there?!?"
 msgstr "Hentning færdig, men filen »%s« var der ikke?!?"
 
-#: ../unattended-upgrade:1637 ../unattended-upgrade:1641
+#: ../unattended-upgrade:2047 ../unattended-upgrade:2051
 #, fuzzy, python-format
 #| msgid "Package '%s' has conffile prompt and needs to be upgraded manually"
 msgid "Package %s has conffile prompt and needs to be upgraded manually"
@@ -288,18 +340,18 @@
 "Pakke »%s« bliver spurgt om oplysninger fra konfigurationsfilen og skal "
 "opgraderes manuelt"
 
-#: ../unattended-upgrade:1670
+#: ../unattended-upgrade:2082
 #, fuzzy, python-format
 #| msgid "package '%s' not upgraded"
 msgid "package %s not upgraded"
 msgstr "pakke »%s« blev ikke opgraderet"
 
-#: ../unattended-upgrade:1702
+#: ../unattended-upgrade:2112
 #, python-format
 msgid "Removing unused kernel packages: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1724
+#: ../unattended-upgrade:2133 ../unattended-upgrade:2137
 #, fuzzy
 #| msgid "No packages found that can be upgraded unattended"
 msgid ""
@@ -307,42 +359,49 @@
 "removals"
 msgstr "Ingen pakker fundet som kan opgraderes uden ledsager"
 
-#: ../unattended-upgrade:1754
+#: ../unattended-upgrade:2160
 #, python-format
 msgid "Packages that will be upgraded: %s"
 msgstr "Pakker som vil blive opgraderet: %s"
 
-#: ../unattended-upgrade:1867
+#: ../unattended-upgrade:2270
 msgid "print debug messages"
 msgstr "vis fejlsøgningsbeskeder"
 
-#: ../unattended-upgrade:1870
+#: ../unattended-upgrade:2273
 msgid "make apt/libapt print verbose debug messages"
 msgstr "lad apt/libapt vise uddybende fejlsøgningsbeskeder"
 
-#: ../unattended-upgrade:1873
+#: ../unattended-upgrade:2278
 msgid "print info messages"
 msgstr "vis informationsbeskeder"
 
-#: ../unattended-upgrade:1876
+#: ../unattended-upgrade:2281
 msgid "Simulation, download but do not install"
 msgstr "Simulation, hent men installer ikke"
 
-#: ../unattended-upgrade:1879
+#: ../unattended-upgrade:2284
 #, fuzzy
 #| msgid "Simulation, download but do not install"
 msgid "Only download, do not even try to install."
 msgstr "Simulation, hent men installer ikke"
 
-#: ../unattended-upgrade:1882
+#: ../unattended-upgrade:2287
+#, fuzzy
+#| msgid "Upgrade in minimal steps (and allow interrupting with SIGTERM"
+msgid ""
+"Upgrade in minimal steps (and allow interrupting with SIGTERM) (default)"
+msgstr "Opgrader i små trin (og tillad afbrydelse med SIGTERM)"
+
+#: ../unattended-upgrade:2292
 msgid "Upgrade in minimal steps (and allow interrupting with SIGTERM"
 msgstr "Opgrader i små trin (og tillad afbrydelse med SIGTERM)"
 
-#: ../unattended-upgrade:1891
+#: ../unattended-upgrade:2301
 msgid "You need to be root to run this application"
 msgstr "Du skal være administrator (root) for at køre dette program"
 
-#: ../unattended-upgrade-shutdown:76
+#: ../unattended-upgrade-shutdown:86
 #, fuzzy
 #| msgid "Unattended-upgrade in progress during shutdown, sleeping for 5s"
 msgid ""
@@ -350,24 +409,53 @@
 "computer"
 msgstr "Unattended-upgrade i gang under nedlukning, sover for 5 sekunder"
 
-#: ../unattended-upgrade-shutdown:140
+#: ../unattended-upgrade-shutdown:114
+msgid ""
+"Unattended-upgrades stopped. There may be upgrades left to be installed in "
+"the next run."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:167
+msgid "Stop ongoing upgrades or perform upgrades before shutdown"
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:206 ../unattended-upgrade-shutdown:263
+msgid "Unable to monitor PrepareForShutdown() signal, polling instead."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:209
+msgid ""
+"To enable monitoring the PrepareForShutdown() signal instead of polling "
+"please install the python3-gi package"
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:266
+msgid "Maybe systemd-logind service is not running."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:289
+#, fuzzy
+#| msgid "dpkg returned a error! See '%s' for details"
+msgid "Apt returned an error thus shutdown mode is disabled"
+msgstr "dpkg returnerede en fejl! Se »%s« for detaljer"
+
+#: ../unattended-upgrade-shutdown:291 ../unattended-upgrade-shutdown:372
 #, python-format
 msgid "error message: '%s'"
 msgstr "fejlbesked: »%s«"
 
-#: ../unattended-upgrade-shutdown:150
+#: ../unattended-upgrade-shutdown:307
 msgid "Running unattended-upgrades in shutdown mode"
 msgstr "Kører unattended-upgrades i nedlukningstilstand"
 
-#: ../unattended-upgrade-shutdown:176
-#, python-format
-msgid "Giving up on lockfile after %s delay"
+#: ../unattended-upgrade-shutdown:328
+#, fuzzy, python-format
+#| msgid "Giving up on lockfile after %s delay"
+msgid "Giving up on lockfile after %s minutes of delay"
 msgstr "Opgiver låsefilen efter %s forsinkelse"
 
-#: ../unattended-upgrade-shutdown:189
-msgid ""
-"Unattended-upgrades stopped. There may be upgrades left to be installed in "
-"the next run."
+#: ../unattended-upgrade-shutdown:370
+msgid "Apt returned an error when loading configuration, using default values"
 msgstr ""
 
 #, fuzzy
diff -Nru unattended-upgrades-1.11/po/de.po unattended-upgrades-1.12/po/de.po
--- unattended-upgrades-1.11/po/de.po	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/po/de.po	2019-04-18 16:38:31.000000000 +0200
@@ -20,60 +20,89 @@
 "X-Generator: Virtaal 0.7.1\n"
 "X-Launchpad-Export-Date: 2018-03-05 16:04+0000\n"
 
-#: ../unattended-upgrade:219
+#: ../unattended-upgrade:203 ../unattended-upgrade:746
+#: ../unattended-upgrade:1535
+#, python-format
+msgid "package %s upgradable but fails to be marked for upgrade (%s)"
+msgstr ""
+"Paket »%s« ist aktualisierbar aber das Markierungen zur Aktualisierung ist "
+"fehlgeschlagen (%s)"
+
+#: ../unattended-upgrade:301
 #, python-format
 msgid "Progress: %s %% (%s)"
 msgstr "Fortschritt: %s %% (%s)"
 
-#: ../unattended-upgrade:413 ../unattended-upgrade:430
+#: ../unattended-upgrade:541
+msgid ""
+"Checking if system is running on battery is skipped. Please install "
+"powermgmt-base package to check power status and skip installing updates "
+"when the system is running on battery."
+msgstr ""
+
+#: ../unattended-upgrade:549
+msgid "System is on metered connection, stopping"
+msgstr ""
+
+#: ../unattended-upgrade:552
+msgid ""
+"Checking if connection is metered is skipped. Please install python3-gi "
+"package to detect metered connections and skip downloading updates."
+msgstr ""
+
+#: ../unattended-upgrade:600 ../unattended-upgrade:617
 #, python-format
 msgid "Unable to parse %s."
 msgstr "%s kann nicht ausgewertet werden."
 
-#: ../unattended-upgrade:517 ../unattended-upgrade:619
-#: ../unattended-upgrade-shutdown:193
+#: ../unattended-upgrade:701 ../unattended-upgrade:789
+#: ../unattended-upgrade:2230 ../unattended-upgrade-shutdown:111
 msgid "All upgrades installed"
 msgstr "Alle Systemaktualisierungen installiert"
 
-#: ../unattended-upgrade:519 ../unattended-upgrade:611
+#: ../unattended-upgrade:703 ../unattended-upgrade:781
 msgid "Installing the upgrades failed!"
 msgstr "Installation der Systemaktualisierungen ist fehlgeschlagen!"
 
-#: ../unattended-upgrade:520 ../unattended-upgrade:612
-#: ../unattended-upgrade:776 ../unattended-upgrade:778
-#: ../unattended-upgrade:1539 ../unattended-upgrade:1541
+#: ../unattended-upgrade:704 ../unattended-upgrade:782
+#: ../unattended-upgrade:1056 ../unattended-upgrade:1058
+#: ../unattended-upgrade:1933 ../unattended-upgrade:1935
 #, python-format
 msgid "error message: %s"
 msgstr "Fehlermeldung: %s"
 
-#: ../unattended-upgrade:521 ../unattended-upgrade:613
+#: ../unattended-upgrade:705 ../unattended-upgrade:783
 #, python-format
 msgid "dpkg returned a error! See %s for details"
 msgstr "dpkg gab einen Fehler zurück! Details unter %s"
 
-#: ../unattended-upgrade:775 ../unattended-upgrade:777
-#: ../unattended-upgrade:1538 ../unattended-upgrade:1540
-#: ../unattended-upgrade-shutdown:139
+#: ../unattended-upgrade:1055 ../unattended-upgrade:1057
+#: ../unattended-upgrade:1932 ../unattended-upgrade:1934
+#: ../unattended-upgrade:1937
 msgid "Apt returned an error, exiting"
 msgstr "APT gab einen Fehler zurück. Programmende!"
 
-#: ../unattended-upgrade:964
+#: ../unattended-upgrade:1234
+#, fuzzy
+#| msgid ""
+#| "No /usr/bin/mail or /usr/sbin/sendmail,can not send mail. You probably "
+#| "want to install the mailx package."
 msgid ""
-"No /usr/bin/mail or /usr/sbin/sendmail,can not send mail. You probably want "
+"No /usr/bin/mail or /usr/sbin/sendmail, can not send mail. You probably want "
 "to install the mailx package."
 msgstr ""
 "Kein »/usr/bin/mail« oder »/usr/sbin/sendmail«, E-Mail kann nicht gesendet "
 "werden. Vermutlich müssen Sie das Paket »mailx« installieren."
 
-#: ../unattended-upgrade:975
+#: ../unattended-upgrade:1248
 msgid "[reboot required]"
 msgstr "[Neustart erforderlich]"
 
-#: ../unattended-upgrade:977
+#: ../unattended-upgrade:1250
 msgid "[package on hold]"
 msgstr "[Paket zurückgehalten]"
 
-#: ../unattended-upgrade:981
+#: ../unattended-upgrade:1254
 #, python-brace-format
 msgid ""
 "{hold_flag}{reboot_flag} unattended-upgrades result for {machine}: {result}"
@@ -81,72 +110,70 @@
 "{hold_flag}{reboot_flag} Ergebnis der automatischen Systemaktualisierung für "
 "{machine}: {result}"
 
-#: ../unattended-upgrade:985
-#, python-format
-msgid ""
-"Unattended upgrade returned: %s\n"
-"\n"
+#: ../unattended-upgrade:1258
+#, fuzzy, python-format
+#| msgid ""
+#| "Unattended upgrade returned: %s\n"
+#| "\n"
+msgid "Unattended upgrade result: %s"
 msgstr ""
 "Die automatische Systemaktualisierung gab %s zurück.\n"
 "\n"
 
-#: ../unattended-upgrade:988
+#: ../unattended-upgrade:1262
+#, fuzzy
+#| msgid ""
+#| "Warning: A reboot is required to complete this upgrade.\n"
+#| "\n"
 msgid ""
-"Warning: A reboot is required to complete this upgrade.\n"
+"Warning: A reboot is required to complete this upgrade, or a previous one.\n"
 "\n"
 msgstr ""
 "Achtung: ein Neustart erforderlich, um diese Systemaktualisierung zu "
 "vervollständigen.\n"
 "\n"
 
-#: ../unattended-upgrade:990
+#: ../unattended-upgrade:1266
 msgid "Packages that were upgraded:\n"
 msgstr "Pakete, welche aktualisiert wurden:\n"
 
-#: ../unattended-upgrade:992
+#: ../unattended-upgrade:1268
 msgid "Packages that attempted to upgrade:\n"
 msgstr "Pakete, bei denen eine Aktualisierung versucht wurde:\n"
 
-#: ../unattended-upgrade:996
+#: ../unattended-upgrade:1272
 msgid "Packages with upgradable origin but kept back:\n"
 msgstr "Pakete mit aktualisierbarem Ursprung, aber zurückgehalten werden.\n"
 
-#: ../unattended-upgrade:1001
+#: ../unattended-upgrade:1279
 msgid "Packages that were auto-removed:\n"
 msgstr "Pakete, welche automatisch entfernt wurden:\n"
 
-#: ../unattended-upgrade:1006
+#: ../unattended-upgrade:1283
 msgid "Packages that were kept from being auto-removed:\n"
 msgstr "Pakete, die nicht automatisch entfernt wurden:\n"
 
-#: ../unattended-upgrade:1011
+#: ../unattended-upgrade:1287
 msgid "Package installation log:"
 msgstr "Paketinstallationsprotokoll:"
 
-#: ../unattended-upgrade:1014
+#: ../unattended-upgrade:1290
 msgid "Unattended-upgrades log:\n"
 msgstr "Protokoll der automatischen Systemaktualisierung:\n"
 
-#: ../unattended-upgrade:1042
+#: ../unattended-upgrade:1317
 #, python-format
 msgid "Writing dpkg log to %s"
 msgstr "dpkg-Protokoll wird nach %s geschrieben"
 
-#: ../unattended-upgrade:1193
+#: ../unattended-upgrade:1469
 #, python-format
 msgid "Found %s, but not rebooting because %s is logged in."
 msgid_plural "Found %s, but not rebooting because %s are logged in."
 msgstr[0] "%s gefunden, aber kein Neustart, da %s angemeldet ist"
 msgstr[1] "%s gefunden, aber kein Neustart, da %s angemeldet sind"
 
-#: ../unattended-upgrade:1247
-#, python-format
-msgid "package %s upgradable but fails to be marked for upgrade (%s)"
-msgstr ""
-"Paket »%s« ist aktualisierbar aber das Markierungen zur Aktualisierung ist "
-"fehlgeschlagen (%s)"
-
-#: ../unattended-upgrade:1323
+#: ../unattended-upgrade:1624
 #, python-format
 msgid ""
 "Keeping the following auto-removable package(s) because they include %s "
@@ -155,7 +182,7 @@
 "Die folgenden automatisch entfernbaren Pakete werden behalten, weil sie %s "
 "enthalten, für die festgelegt wurde, dass sie unverändert bleiben: %s"
 
-#: ../unattended-upgrade:1330
+#: ../unattended-upgrade:1631
 #, python-format
 msgid ""
 "Keeping auto-removable %s package(s) because it would also remove the "
@@ -164,7 +191,7 @@
 "%s Paket(e) werden automatisch entfernt, weil damit auch die folgenden "
 "Pakete entfernt werden, die in diesem Schritt beibehalten werden sollen: %s"
 
-#: ../unattended-upgrade:1336
+#: ../unattended-upgrade:1637
 #, python-format
 msgid ""
 "Keeping %s auto-removable package(s) because it would also remove the "
@@ -173,7 +200,7 @@
 "%s Paket(e) werden automatisch entfernt, weil dadurch auch die folgenden "
 "Pakete entfernt werden, die in diesem Schritt beibehalten werden sollen: %s"
 
-#: ../unattended-upgrade:1347
+#: ../unattended-upgrade:1647
 #, python-format
 msgid ""
 "Keeping the following auto-removable package(s) because they include %s "
@@ -182,54 +209,93 @@
 "Die folgenden automatisch entfernbaren Pakete werden behalten, weil sie %s "
 "enthalten und dieses Paket mit dem laufenden Kernel in Beziehung steht: %s"
 
-#: ../unattended-upgrade:1407
+#: ../unattended-upgrade:1710
 #, python-format
 msgid "Packages that were successfully auto-removed: %s"
 msgstr "Pakete welche erfolgreich automatisch entfernt wurden: %s"
 
-#: ../unattended-upgrade:1409
+#: ../unattended-upgrade:1712
 #, python-format
 msgid "Packages that are kept back: %s"
 msgstr "Pakete die zurückgehalten wurden: %s"
 
-#: ../unattended-upgrade:1412
+#: ../unattended-upgrade:1716
 msgid "Auto-removing the packages failed!"
 msgstr "Automatisches Entfernen der Pakete ist fehlgeschlagen!"
 
-#: ../unattended-upgrade:1413
+#: ../unattended-upgrade:1717
 #, python-format
 msgid "Error message: %s"
 msgstr "Fehlermeldung: %s"
 
-#: ../unattended-upgrade:1414
+#: ../unattended-upgrade:1718
 #, python-format
 msgid "dpkg returned an error! See %s for details"
 msgstr "dpkg gab einen Fehler zurück! Details unter %s"
 
-#: ../unattended-upgrade:1474
+#: ../unattended-upgrade:1808 ../unattended-upgrade:2011
+#: ../unattended-upgrade:2012
 #, python-format
-msgid "Initial blacklisted packages: %s"
+msgid "An error occurred: %s"
+msgstr "Ein Fehler ist aufgetreten: %s"
+
+#: ../unattended-upgrade:1812
+#, fuzzy
+#| msgid "An error occurred: %s"
+msgid "An error occurred"
+msgstr "Ein Fehler ist aufgetreten: %s"
+
+#: ../unattended-upgrade:1862 ../unattended-upgrade:1866
+#, fuzzy, python-format
+#| msgid "Not running on the development release."
+msgid "Not running on this development release before %s"
+msgstr "Läuft nicht in der Entwicklungsversion."
+
+#: ../unattended-upgrade:1875 ../unattended-upgrade:1876
+msgid "Not running on the development release."
+msgstr "Läuft nicht in der Entwicklungsversion."
+
+#: ../unattended-upgrade:1883
+#, fuzzy, python-format
+#| msgid "Initial blacklisted packages: %s"
+msgid "Initial blacklist : %s"
 msgstr "Pakete, die anfangs auf die schwarzen Liste standen: %s"
 
-#: ../unattended-upgrade:1479
-#, python-format
-msgid "Initial whitelisted packages: %s"
+#: ../unattended-upgrade:1888
+#, fuzzy, python-format
+#| msgid "Initial whitelisted packages: %s"
+msgid "Initial whitelist: %s"
 msgstr "Pakete, die anfangs auf der Positivliste standen: %s"
 
-#: ../unattended-upgrade:1482
+#: ../unattended-upgrade:1891
 msgid "Starting unattended upgrades script"
 msgstr "Skript für automatische Systemaktualisierung wird gestartet"
 
-#: ../unattended-upgrade:1491
+#: ../unattended-upgrade:1894
 #, python-format
 msgid "Allowed origins are: %s"
 msgstr "Erlaubte Ursprünge sind: %s"
 
-#: ../unattended-upgrade:1507 ../unattended-upgrade:1508
+#: ../unattended-upgrade:1900
+msgid "Lock could not be acquired (another package manager running?)"
+msgstr ""
+"Sperrung konnte nicht erreicht werden (läuft eine weitere Paketverwaltung?)"
+
+#: ../unattended-upgrade:1902
+msgid "Cache lock can not be acquired, exiting"
+msgstr "Zwischenspeichersperre kann nicht aktiviert werden. Programmende!"
+
+#: ../unattended-upgrade:1904
+#, fuzzy
+#| msgid "Cache lock can not be acquired, exiting"
+msgid "Lock could not be acquired"
+msgstr "Zwischenspeichersperre kann nicht aktiviert werden. Programmende!"
+
+#: ../unattended-upgrade:1913 ../unattended-upgrade:1914
 msgid "Unclean dpkg state detected, trying to correct"
 msgstr "Unsauberer dpkg-Status erkannt, es wird versucht das zu berichtigen"
 
-#: ../unattended-upgrade:1519
+#: ../unattended-upgrade:1925
 #, python-format
 msgid ""
 "dpkg --configure -a output:\n"
@@ -238,58 +304,50 @@
 "Ausgabe von »dpkg --configure -a«:\n"
 "%s"
 
-#: ../unattended-upgrade:1528
-msgid "Lock could not be acquired (another package manager running?)"
-msgstr ""
-"Sperrung konnte nicht erreicht werden (läuft eine weitere Paketverwaltung?)"
-
-#: ../unattended-upgrade:1530
-msgid "Cache lock can not be acquired, exiting"
-msgstr "Zwischenspeichersperre kann nicht aktiviert werden. Programmende!"
-
-#: ../unattended-upgrade:1545 ../unattended-upgrade:1546
-#: ../unattended-upgrade:1773 ../unattended-upgrade:1774
+#: ../unattended-upgrade:1940 ../unattended-upgrade:1941
+#: ../unattended-upgrade:1943 ../unattended-upgrade:2179
+#: ../unattended-upgrade:2180 ../unattended-upgrade:2182
 msgid "Cache has broken packages, exiting"
 msgstr "Zwischenspeicher enthält beschädigte Pakete. Programmende!"
 
-#: ../unattended-upgrade:1595
+#: ../unattended-upgrade:1987
+msgid "Upgrade was interrupted"
+msgstr ""
+
+#: ../unattended-upgrade:1991
 #, python-format
 msgid "GetArchives() failed: %s"
 msgstr "GetArchives() fehlgeschlagen: %s"
 
-#: ../unattended-upgrade:1612 ../unattended-upgrade:1613
-#, python-format
-msgid "An error occurred: %s"
-msgstr "Ein Fehler ist aufgetreten: %s"
-
-#: ../unattended-upgrade:1615 ../unattended-upgrade:1617
+#: ../unattended-upgrade:2014 ../unattended-upgrade:2016
+#: ../unattended-upgrade:2019
 #, python-format
 msgid "The URI %s failed to download, aborting"
 msgstr "Herunterladen von der Adresse %s ist fehlgeschlagen. Abbruch!"
 
-#: ../unattended-upgrade:1621
+#: ../unattended-upgrade:2022 ../unattended-upgrade:2027
 #, python-format
 msgid "Download finished, but file %s not there?!?"
 msgstr "Herunterladen fertiggestellt, aber Datei »%s« ist nicht vorhanden!"
 
-#: ../unattended-upgrade:1637 ../unattended-upgrade:1641
+#: ../unattended-upgrade:2047 ../unattended-upgrade:2051
 #, python-format
 msgid "Package %s has conffile prompt and needs to be upgraded manually"
 msgstr ""
 "Paket »%s« hat eine conffile-Eingabeaufforderung und muss manuell "
 "aktualisiert werden"
 
-#: ../unattended-upgrade:1670
+#: ../unattended-upgrade:2082
 #, python-format
 msgid "package %s not upgraded"
 msgstr "Paket %s wurde nicht aktualisiert"
 
-#: ../unattended-upgrade:1702
+#: ../unattended-upgrade:2112
 #, python-format
 msgid "Removing unused kernel packages: %s"
 msgstr "Unbenutzte Kernelpakete werden entfernt: %s"
 
-#: ../unattended-upgrade:1724
+#: ../unattended-upgrade:2133 ../unattended-upgrade:2137
 msgid ""
 "No packages found that can be upgraded unattended and no pending auto-"
 "removals"
@@ -298,41 +356,49 @@
 "Systemaktualisierung durchgeführt werden kann und kein ausstehendes "
 "automatisches Entfernen."
 
-#: ../unattended-upgrade:1754
+#: ../unattended-upgrade:2160
 #, python-format
 msgid "Packages that will be upgraded: %s"
 msgstr "Pakete, welche aktualisiert werden: %s"
 
-#: ../unattended-upgrade:1867
+#: ../unattended-upgrade:2270
 msgid "print debug messages"
 msgstr "Nachrichten zur Fehlersuche ausgeben"
 
-#: ../unattended-upgrade:1870
+#: ../unattended-upgrade:2273
 msgid "make apt/libapt print verbose debug messages"
 msgstr "APT/LibAPT detaillierte Nachrichten zur Fehlersuche ausgeben lassen"
 
-#: ../unattended-upgrade:1873
+#: ../unattended-upgrade:2278
 msgid "print info messages"
 msgstr "Infomeldungen anzeigen"
 
-#: ../unattended-upgrade:1876
+#: ../unattended-upgrade:2281
 msgid "Simulation, download but do not install"
 msgstr "Simulation, herunterladen, aber nicht installieren"
 
-#: ../unattended-upgrade:1879
+#: ../unattended-upgrade:2284
 msgid "Only download, do not even try to install."
 msgstr "Nur herunterladen, aber nicht versuchen zu installieren."
 
-#: ../unattended-upgrade:1882
+#: ../unattended-upgrade:2287
+#, fuzzy
+#| msgid "Upgrade in minimal steps (and allow interrupting with SIGTERM"
+msgid ""
+"Upgrade in minimal steps (and allow interrupting with SIGTERM) (default)"
+msgstr ""
+"Aktualisierung in kleinen Schritten (und Unterbrechung mit SIGTERM erlauben)"
+
+#: ../unattended-upgrade:2292
 msgid "Upgrade in minimal steps (and allow interrupting with SIGTERM"
 msgstr ""
 "Aktualisierung in kleinen Schritten (und Unterbrechung mit SIGTERM erlauben)"
 
-#: ../unattended-upgrade:1891
+#: ../unattended-upgrade:2301
 msgid "You need to be root to run this application"
 msgstr "Sie benötigen Systemverwaltungsrechte, um diese Anwendung auszuführen"
 
-#: ../unattended-upgrade-shutdown:76
+#: ../unattended-upgrade-shutdown:86
 msgid ""
 "Unattended-upgrade in progress during shutdown, please don't turn off the "
 "computer"
@@ -340,31 +406,57 @@
 "Automatische Systemaktualisierung wird während des Herunterfahrens "
 "durchgeführt. Bitte den Rechner nicht ausschalten."
 
-#: ../unattended-upgrade-shutdown:140
+#: ../unattended-upgrade-shutdown:114
+msgid ""
+"Unattended-upgrades stopped. There may be upgrades left to be installed in "
+"the next run."
+msgstr ""
+"Automatische Systemaktualisierung angehalten. Es sind möglicherweise "
+"Aktualisierungen übriggeblieben, die beim nächsten Durchlauf installiert "
+"werden."
+
+#: ../unattended-upgrade-shutdown:167
+msgid "Stop ongoing upgrades or perform upgrades before shutdown"
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:206 ../unattended-upgrade-shutdown:263
+msgid "Unable to monitor PrepareForShutdown() signal, polling instead."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:209
+msgid ""
+"To enable monitoring the PrepareForShutdown() signal instead of polling "
+"please install the python3-gi package"
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:266
+msgid "Maybe systemd-logind service is not running."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:289
+#, fuzzy
+#| msgid "Apt returned an error, exiting"
+msgid "Apt returned an error thus shutdown mode is disabled"
+msgstr "APT gab einen Fehler zurück. Programmende!"
+
+#: ../unattended-upgrade-shutdown:291 ../unattended-upgrade-shutdown:372
 #, python-format
 msgid "error message: '%s'"
 msgstr "Fehlermeldung: »%s«"
 
-#: ../unattended-upgrade-shutdown:150
+#: ../unattended-upgrade-shutdown:307
 msgid "Running unattended-upgrades in shutdown mode"
 msgstr "Automatische Systemaktualisierung beim Herunterfahren ausführen"
 
-#: ../unattended-upgrade-shutdown:176
-#, python-format
-msgid "Giving up on lockfile after %s delay"
+#: ../unattended-upgrade-shutdown:328
+#, fuzzy, python-format
+#| msgid "Giving up on lockfile after %s delay"
+msgid "Giving up on lockfile after %s minutes of delay"
 msgstr "Sperrdatei, hier wird nach %s Verzögerung aufgegeben."
 
-#: ../unattended-upgrade-shutdown:189
-msgid ""
-"Unattended-upgrades stopped. There may be upgrades left to be installed in "
-"the next run."
+#: ../unattended-upgrade-shutdown:370
+msgid "Apt returned an error when loading configuration, using default values"
 msgstr ""
-"Automatische Systemaktualisierung angehalten. Es sind möglicherweise "
-"Aktualisierungen übriggeblieben, die beim nächsten Durchlauf installiert "
-"werden."
-
-#~ msgid "Not running on the development release."
-#~ msgstr "Läuft nicht in der Entwicklungsversion."
 
 #~ msgid "GetArchives() failed: '%s'"
 #~ msgstr "GetArchives() fehlgeschlagen: »%s«"
diff -Nru unattended-upgrades-1.11/po/es.po unattended-upgrades-1.12/po/es.po
--- unattended-upgrades-1.11/po/es.po	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/po/es.po	2019-04-18 16:38:31.000000000 +0200
@@ -32,7 +32,7 @@
 msgstr ""
 "Project-Id-Version: unattended-upgrades 0.79\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-02-23 13:17+0700\n"
+"POT-Creation-Date: 2015-07-02 12:27+0200\n"
 "PO-Revision-Date: 2016-02-04 15:11+0100\n"
 "Last-Translator: Manuel \"Venturi\" Porras Peralta <venturi@openmailbox."
 "org>\n"
@@ -44,68 +44,94 @@
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Generator: Gtranslator 2.91.7\n"
 
-#: ../unattended-upgrade:219
+#: ../unattended-upgrade:203 ../unattended-upgrade:746
+#: ../unattended-upgrade:1535
+#, fuzzy, python-format
+#| msgid "package '%s' upgradable but fails to be marked for upgrade (%s)"
+msgid "package %s upgradable but fails to be marked for upgrade (%s)"
+msgstr ""
+"El paquete «%s» es actualizable, pero no se puede marcar para la "
+"actualización (%s)"
+
+#: ../unattended-upgrade:301
 #, python-format
 msgid "Progress: %s %% (%s)"
 msgstr "Progreso: %s %% (%s)"
 
-#: ../unattended-upgrade:413 ../unattended-upgrade:430
+#: ../unattended-upgrade:541
+msgid ""
+"Checking if system is running on battery is skipped. Please install "
+"powermgmt-base package to check power status and skip installing updates "
+"when the system is running on battery."
+msgstr ""
+
+#: ../unattended-upgrade:549
+msgid "System is on metered connection, stopping"
+msgstr ""
+
+#: ../unattended-upgrade:552
+msgid ""
+"Checking if connection is metered is skipped. Please install python3-gi "
+"package to detect metered connections and skip downloading updates."
+msgstr ""
+
+#: ../unattended-upgrade:600 ../unattended-upgrade:617
 #, python-format
 msgid "Unable to parse %s."
 msgstr ""
 
-#: ../unattended-upgrade:517 ../unattended-upgrade:619
-#: ../unattended-upgrade-shutdown:193
+#: ../unattended-upgrade:701 ../unattended-upgrade:789
+#: ../unattended-upgrade:2230 ../unattended-upgrade-shutdown:111
 msgid "All upgrades installed"
 msgstr "Se han instalado todas las actualizaciones"
 
-#: ../unattended-upgrade:519 ../unattended-upgrade:611
+#: ../unattended-upgrade:703 ../unattended-upgrade:781
 msgid "Installing the upgrades failed!"
 msgstr "Fallo al instalar actualizaciones"
 
-#: ../unattended-upgrade:520 ../unattended-upgrade:612
-#: ../unattended-upgrade:776 ../unattended-upgrade:778
-#: ../unattended-upgrade:1539 ../unattended-upgrade:1541
+#: ../unattended-upgrade:704 ../unattended-upgrade:782
+#: ../unattended-upgrade:1056 ../unattended-upgrade:1058
+#: ../unattended-upgrade:1933 ../unattended-upgrade:1935
 #, fuzzy, python-format
 #| msgid "error message: '%s'"
 msgid "error message: %s"
 msgstr "mensaje de error: «%s»"
 
-#: ../unattended-upgrade:521 ../unattended-upgrade:613
+#: ../unattended-upgrade:705 ../unattended-upgrade:783
 #, fuzzy, python-format
 #| msgid "dpkg returned a error! See '%s' for details"
 msgid "dpkg returned a error! See %s for details"
 msgstr "¡dpkg devolvió un error! Vea «%s» para más detalles"
 
-#: ../unattended-upgrade:775 ../unattended-upgrade:777
-#: ../unattended-upgrade:1538 ../unattended-upgrade:1540
-#: ../unattended-upgrade-shutdown:139
+#: ../unattended-upgrade:1055 ../unattended-upgrade:1057
+#: ../unattended-upgrade:1932 ../unattended-upgrade:1934
+#: ../unattended-upgrade:1937
 #, fuzzy
 #| msgid "dpkg returned an error! See '%s' for details"
 msgid "Apt returned an error, exiting"
 msgstr "¡dpkg devolvió un error! Vea «%s» para más detalles"
 
-#: ../unattended-upgrade:964
+#: ../unattended-upgrade:1234
 #, fuzzy
 #| msgid ""
 #| "No '/usr/bin/mail' or '/usr/sbin/sendmail',can not send mail. You "
 #| "probably want to install the 'mailx' package."
 msgid ""
-"No /usr/bin/mail or /usr/sbin/sendmail,can not send mail. You probably want "
+"No /usr/bin/mail or /usr/sbin/sendmail, can not send mail. You probably want "
 "to install the mailx package."
 msgstr ""
 "No se ha detectado «/usr/bin/mail» o «/usr/sbin/sendmail», no se puede "
 "enviar correo. Considere instalar el paquete «mailx»."
 
-#: ../unattended-upgrade:975
+#: ../unattended-upgrade:1248
 msgid "[reboot required]"
 msgstr ""
 
-#: ../unattended-upgrade:977
+#: ../unattended-upgrade:1250
 msgid "[package on hold]"
 msgstr ""
 
-#: ../unattended-upgrade:981
+#: ../unattended-upgrade:1254
 #, fuzzy, python-brace-format
 #| msgid "[reboot required] unattended-upgrades result for '%s': %s"
 msgid ""
@@ -113,64 +139,69 @@
 msgstr ""
 "[Es necesario reiniciar] Resultado de unattended-upgrades para «%s»: %s"
 
-#: ../unattended-upgrade:985
-#, python-format
-msgid ""
-"Unattended upgrade returned: %s\n"
-"\n"
+#: ../unattended-upgrade:1258
+#, fuzzy, python-format
+#| msgid ""
+#| "Unattended upgrade returned: %s\n"
+#| "\n"
+msgid "Unattended upgrade result: %s"
 msgstr ""
 "Valor devuelto por unattended-upgrade: %s\n"
 "\n"
 
-#: ../unattended-upgrade:988
+#: ../unattended-upgrade:1262
+#, fuzzy
+#| msgid ""
+#| "Warning: A reboot is required to complete this upgrade.\n"
+#| "\n"
 msgid ""
-"Warning: A reboot is required to complete this upgrade.\n"
+"Warning: A reboot is required to complete this upgrade, or a previous one.\n"
 "\n"
 msgstr ""
 "Advertencia: Se requiere reiniciar para completar la actualización.\n"
 "\n"
 
-#: ../unattended-upgrade:990
+#: ../unattended-upgrade:1266
 msgid "Packages that were upgraded:\n"
 msgstr "Paquetes que se actualizaron:\n"
 
-#: ../unattended-upgrade:992
+#: ../unattended-upgrade:1268
 msgid "Packages that attempted to upgrade:\n"
 msgstr "Paquetes que se intentaron actualizar:\n"
 
-#: ../unattended-upgrade:996
+#: ../unattended-upgrade:1272
 msgid "Packages with upgradable origin but kept back:\n"
 msgstr ""
 "Paquetes con una actualización disponible en la fuente pero que no se "
 "actualizarán:\n"
 
-#: ../unattended-upgrade:1001
+#: ../unattended-upgrade:1279
 #, fuzzy
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that were auto-removed:\n"
 msgstr "Paquetes eliminados de forma automática: «%s»"
 
-#: ../unattended-upgrade:1006
+#: ../unattended-upgrade:1283
 #, fuzzy
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that were kept from being auto-removed:\n"
 msgstr "Paquetes eliminados de forma automática: «%s»"
 
-#: ../unattended-upgrade:1011
+#: ../unattended-upgrade:1287
 msgid "Package installation log:"
 msgstr "Registro de instalación de paquete:"
 
-#: ../unattended-upgrade:1014
+#: ../unattended-upgrade:1290
 msgid "Unattended-upgrades log:\n"
 msgstr "Registro de unattended-upgrades:\n"
 
-#: ../unattended-upgrade:1042
+#: ../unattended-upgrade:1317
 #, fuzzy, python-format
 #| msgid "Writing dpkg log to '%s'"
 msgid "Writing dpkg log to %s"
 msgstr "Escribiendo el registro de dpkg en «%s»"
 
-#: ../unattended-upgrade:1193
+#: ../unattended-upgrade:1469
 #, python-format
 msgid "Found %s, but not rebooting because %s is logged in."
 msgid_plural "Found %s, but not rebooting because %s are logged in."
@@ -179,94 +210,125 @@
 msgstr[1] ""
 "Se encontró %s, pero no se reinicia porque %s están activos en el sistema."
 
-#: ../unattended-upgrade:1247
-#, fuzzy, python-format
-#| msgid "package '%s' upgradable but fails to be marked for upgrade (%s)"
-msgid "package %s upgradable but fails to be marked for upgrade (%s)"
-msgstr ""
-"El paquete «%s» es actualizable, pero no se puede marcar para la "
-"actualización (%s)"
-
-#: ../unattended-upgrade:1323
+#: ../unattended-upgrade:1624
 #, python-format
 msgid ""
 "Keeping the following auto-removable package(s) because they include %s "
 "which is set to be kept unmodified: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1330
+#: ../unattended-upgrade:1631
 #, python-format
 msgid ""
 "Keeping auto-removable %s package(s) because it would also remove the "
 "following packages which should be kept in this step: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1336
+#: ../unattended-upgrade:1637
 #, python-format
 msgid ""
 "Keeping %s auto-removable package(s) because it would also remove the "
 "following packages which should be kept in this step: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1347
+#: ../unattended-upgrade:1647
 #, python-format
 msgid ""
 "Keeping the following auto-removable package(s) because they include %s "
 "which package is related to the running kernel: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1407
+#: ../unattended-upgrade:1710
 #, fuzzy, python-format
 #| msgid "Packages were successfully auto-removed"
 msgid "Packages that were successfully auto-removed: %s"
 msgstr "Se eliminaron con éxito los paquetes de forma automática"
 
-#: ../unattended-upgrade:1409
+#: ../unattended-upgrade:1712
 #, fuzzy, python-format
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that are kept back: %s"
 msgstr "Paquetes eliminados de forma automática: «%s»"
 
-#: ../unattended-upgrade:1412
+#: ../unattended-upgrade:1716
 msgid "Auto-removing the packages failed!"
 msgstr "¡Falló al eliminar automáticamente los paquetes!"
 
-#: ../unattended-upgrade:1413
+#: ../unattended-upgrade:1717
 #, fuzzy, python-format
 #| msgid "Error message: '%s'"
 msgid "Error message: %s"
 msgstr "Mensaje de error: «%s»"
 
-#: ../unattended-upgrade:1414
+#: ../unattended-upgrade:1718
 #, fuzzy, python-format
 #| msgid "dpkg returned an error! See '%s' for details"
 msgid "dpkg returned an error! See %s for details"
 msgstr "¡dpkg devolvió un error! Vea «%s» para más detalles"
 
-#: ../unattended-upgrade:1474
+#: ../unattended-upgrade:1808 ../unattended-upgrade:2011
+#: ../unattended-upgrade:2012
+#, fuzzy, python-format
+#| msgid "An error occurred: '%s'"
+msgid "An error occurred: %s"
+msgstr "Ocurrió un error: «%s»"
+
+#: ../unattended-upgrade:1812
+#, fuzzy
+#| msgid "An error occurred: '%s'"
+msgid "An error occurred"
+msgstr "Ocurrió un error: «%s»"
+
+#: ../unattended-upgrade:1862 ../unattended-upgrade:1866
 #, python-format
-msgid "Initial blacklisted packages: %s"
+msgid "Not running on this development release before %s"
+msgstr ""
+
+#: ../unattended-upgrade:1875 ../unattended-upgrade:1876
+msgid "Not running on the development release."
+msgstr ""
+
+#: ../unattended-upgrade:1883
+#, fuzzy, python-format
+#| msgid "Initial blacklisted packages: %s"
+msgid "Initial blacklist : %s"
 msgstr "Paquetes bloqueados inicialmente: %s"
 
-#: ../unattended-upgrade:1479
-#, python-format
-msgid "Initial whitelisted packages: %s"
+#: ../unattended-upgrade:1888
+#, fuzzy, python-format
+#| msgid "Initial whitelisted packages: %s"
+msgid "Initial whitelist: %s"
 msgstr "Paquetes permitidos inicialmente: %s"
 
-#: ../unattended-upgrade:1482
+#: ../unattended-upgrade:1891
 msgid "Starting unattended upgrades script"
 msgstr "Iniciando guión de actualizaciones desatendidas"
 
-#: ../unattended-upgrade:1491
+#: ../unattended-upgrade:1894
 #, python-format
 msgid "Allowed origins are: %s"
 msgstr "Fuentes permitidas: %s"
 
-#: ../unattended-upgrade:1507 ../unattended-upgrade:1508
+#: ../unattended-upgrade:1900
+msgid "Lock could not be acquired (another package manager running?)"
+msgstr ""
+"No se puede establecer el bloqueo (¿otro gestor de paquetes ejecutándose?)"
+
+#: ../unattended-upgrade:1902
+msgid "Cache lock can not be acquired, exiting"
+msgstr "No se puede establecer el bloqueo de la caché, saliendo"
+
+#: ../unattended-upgrade:1904
+#, fuzzy
+#| msgid "Cache lock can not be acquired, exiting"
+msgid "Lock could not be acquired"
+msgstr "No se puede establecer el bloqueo de la caché, saliendo"
+
+#: ../unattended-upgrade:1913 ../unattended-upgrade:1914
 msgid "Unclean dpkg state detected, trying to correct"
 msgstr "Se ha detectado un estado no limpio de dpkg, intentando corregir"
 
-#: ../unattended-upgrade:1519
+#: ../unattended-upgrade:1925
 #, python-format
 msgid ""
 "dpkg --configure -a output:\n"
@@ -275,45 +337,36 @@
 "dpkg --configure -a output:\n"
 "%s"
 
-#: ../unattended-upgrade:1528
-msgid "Lock could not be acquired (another package manager running?)"
-msgstr ""
-"No se puede establecer el bloqueo (¿otro gestor de paquetes ejecutándose?)"
-
-#: ../unattended-upgrade:1530
-msgid "Cache lock can not be acquired, exiting"
-msgstr "No se puede establecer el bloqueo de la caché, saliendo"
-
-#: ../unattended-upgrade:1545 ../unattended-upgrade:1546
-#: ../unattended-upgrade:1773 ../unattended-upgrade:1774
+#: ../unattended-upgrade:1940 ../unattended-upgrade:1941
+#: ../unattended-upgrade:1943 ../unattended-upgrade:2179
+#: ../unattended-upgrade:2180 ../unattended-upgrade:2182
 msgid "Cache has broken packages, exiting"
 msgstr "La caché tiene paquetes rotos, saliendo"
 
-#: ../unattended-upgrade:1595
+#: ../unattended-upgrade:1987
+msgid "Upgrade was interrupted"
+msgstr ""
+
+#: ../unattended-upgrade:1991
 #, fuzzy, python-format
 #| msgid "GetArchives() failed: '%s'"
 msgid "GetArchives() failed: %s"
 msgstr "GetArchives() falló: «%s»"
 
-#: ../unattended-upgrade:1612 ../unattended-upgrade:1613
-#, fuzzy, python-format
-#| msgid "An error occurred: '%s'"
-msgid "An error occurred: %s"
-msgstr "Ocurrió un error: «%s»"
-
-#: ../unattended-upgrade:1615 ../unattended-upgrade:1617
+#: ../unattended-upgrade:2014 ../unattended-upgrade:2016
+#: ../unattended-upgrade:2019
 #, fuzzy, python-format
 #| msgid "The URI '%s' failed to download, aborting"
 msgid "The URI %s failed to download, aborting"
 msgstr "Fallo al descargar desde el URI «%s», interrumpiendo"
 
-#: ../unattended-upgrade:1621
+#: ../unattended-upgrade:2022 ../unattended-upgrade:2027
 #, fuzzy, python-format
 #| msgid "Download finished, but file '%s' not there?!?"
 msgid "Download finished, but file %s not there?!?"
 msgstr "La descarga ha finalizado, pero no se encuentra el fichero «%s»"
 
-#: ../unattended-upgrade:1637 ../unattended-upgrade:1641
+#: ../unattended-upgrade:2047 ../unattended-upgrade:2051
 #, fuzzy, python-format
 #| msgid "Package '%s' has conffile prompt and needs to be upgraded manually"
 msgid "Package %s has conffile prompt and needs to be upgraded manually"
@@ -321,18 +374,18 @@
 "El paquete «%s» solicita confirmación a través de un conffile, y se debe "
 "actualizar de forma manual"
 
-#: ../unattended-upgrade:1670
+#: ../unattended-upgrade:2082
 #, fuzzy, python-format
 #| msgid "package '%s' not upgraded"
 msgid "package %s not upgraded"
 msgstr "no se ha actualizado el paquete «%s»"
 
-#: ../unattended-upgrade:1702
+#: ../unattended-upgrade:2112
 #, python-format
 msgid "Removing unused kernel packages: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1724
+#: ../unattended-upgrade:2133 ../unattended-upgrade:2137
 msgid ""
 "No packages found that can be upgraded unattended and no pending auto-"
 "removals"
@@ -340,43 +393,50 @@
 "No se encontraron paquetes que puedan actualizarse de forma desatendida y no "
 "hay pendiente ninguna desinstalación automática"
 
-#: ../unattended-upgrade:1754
+#: ../unattended-upgrade:2160
 #, python-format
 msgid "Packages that will be upgraded: %s"
 msgstr "Paquetes que se actualizarán: %s"
 
-#: ../unattended-upgrade:1867
+#: ../unattended-upgrade:2270
 msgid "print debug messages"
 msgstr "muestra mensajes de depuración de fallos"
 
-#: ../unattended-upgrade:1870
+#: ../unattended-upgrade:2273
 msgid "make apt/libapt print verbose debug messages"
 msgstr "hace que apt/libapt muestre los mensajes de depuración detallados"
 
-#: ../unattended-upgrade:1873
+#: ../unattended-upgrade:2278
 msgid "print info messages"
 msgstr "muestra mensajes informativos"
 
-#: ../unattended-upgrade:1876
+#: ../unattended-upgrade:2281
 msgid "Simulation, download but do not install"
 msgstr "simulacro, descarga pero no instala"
 
-#: ../unattended-upgrade:1879
+#: ../unattended-upgrade:2284
 #, fuzzy
 #| msgid "Simulation, download but do not install"
 msgid "Only download, do not even try to install."
 msgstr "simulacro, descarga pero no instala"
 
-#: ../unattended-upgrade:1882
+#: ../unattended-upgrade:2287
+#, fuzzy
+#| msgid "Upgrade in minimal steps (and allow interrupting with SIGTERM"
+msgid ""
+"Upgrade in minimal steps (and allow interrupting with SIGTERM) (default)"
+msgstr "actualiza en pequeños pasos (y permite la interrupción con SIGTERM)"
+
+#: ../unattended-upgrade:2292
 msgid "Upgrade in minimal steps (and allow interrupting with SIGTERM"
 msgstr "actualiza en pequeños pasos (y permite la interrupción con SIGTERM)"
 
-#: ../unattended-upgrade:1891
+#: ../unattended-upgrade:2301
 msgid "You need to be root to run this application"
 msgstr ""
 "Necesita tener privilegios de administrador para ejecutar esta aplicación"
 
-#: ../unattended-upgrade-shutdown:76
+#: ../unattended-upgrade-shutdown:86
 #, fuzzy
 #| msgid "Unattended-upgrade in progress during shutdown, sleeping for 5s"
 msgid ""
@@ -384,24 +444,53 @@
 "computer"
 msgstr "Unattended-upgrade en proceso durante el apagado, esperando 5s"
 
-#: ../unattended-upgrade-shutdown:140
+#: ../unattended-upgrade-shutdown:114
+msgid ""
+"Unattended-upgrades stopped. There may be upgrades left to be installed in "
+"the next run."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:167
+msgid "Stop ongoing upgrades or perform upgrades before shutdown"
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:206 ../unattended-upgrade-shutdown:263
+msgid "Unable to monitor PrepareForShutdown() signal, polling instead."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:209
+msgid ""
+"To enable monitoring the PrepareForShutdown() signal instead of polling "
+"please install the python3-gi package"
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:266
+msgid "Maybe systemd-logind service is not running."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:289
+#, fuzzy
+#| msgid "dpkg returned an error! See '%s' for details"
+msgid "Apt returned an error thus shutdown mode is disabled"
+msgstr "¡dpkg devolvió un error! Vea «%s» para más detalles"
+
+#: ../unattended-upgrade-shutdown:291 ../unattended-upgrade-shutdown:372
 #, python-format
 msgid "error message: '%s'"
 msgstr "mensaje de error: «%s»"
 
-#: ../unattended-upgrade-shutdown:150
+#: ../unattended-upgrade-shutdown:307
 msgid "Running unattended-upgrades in shutdown mode"
 msgstr "Ejecutando unattended-upgrades en modo de apagado"
 
-#: ../unattended-upgrade-shutdown:176
-#, python-format
-msgid "Giving up on lockfile after %s delay"
+#: ../unattended-upgrade-shutdown:328
+#, fuzzy, python-format
+#| msgid "Giving up on lockfile after %s delay"
+msgid "Giving up on lockfile after %s minutes of delay"
 msgstr "Liberando el fichero de bloqueo después de un retraso de %s"
 
-#: ../unattended-upgrade-shutdown:189
-msgid ""
-"Unattended-upgrades stopped. There may be upgrades left to be installed in "
-"the next run."
+#: ../unattended-upgrade-shutdown:370
+msgid "Apt returned an error when loading configuration, using default values"
 msgstr ""
 
 #, fuzzy
diff -Nru unattended-upgrades-1.11/po/eu.po unattended-upgrades-1.12/po/eu.po
--- unattended-upgrades-1.11/po/eu.po	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/po/eu.po	2019-04-18 16:38:31.000000000 +0200
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: eu\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-02-23 13:17+0700\n"
+"POT-Creation-Date: 2015-07-02 12:27+0200\n"
 "PO-Revision-Date: 2008-12-17 09:28+0100\n"
 "Last-Translator: Piarres Beobide <pi@beobide.net>\n"
 "Language-Team: Euskara <debian-l10n-basque@lists.debian.org>\n"
@@ -17,62 +17,85 @@
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
 
-#: ../unattended-upgrade:219
+#: ../unattended-upgrade:203 ../unattended-upgrade:746
+#: ../unattended-upgrade:1535
+#, python-format
+msgid "package %s upgradable but fails to be marked for upgrade (%s)"
+msgstr ""
+
+#: ../unattended-upgrade:301
 #, python-format
 msgid "Progress: %s %% (%s)"
 msgstr ""
 
-#: ../unattended-upgrade:413 ../unattended-upgrade:430
+#: ../unattended-upgrade:541
+msgid ""
+"Checking if system is running on battery is skipped. Please install "
+"powermgmt-base package to check power status and skip installing updates "
+"when the system is running on battery."
+msgstr ""
+
+#: ../unattended-upgrade:549
+msgid "System is on metered connection, stopping"
+msgstr ""
+
+#: ../unattended-upgrade:552
+msgid ""
+"Checking if connection is metered is skipped. Please install python3-gi "
+"package to detect metered connections and skip downloading updates."
+msgstr ""
+
+#: ../unattended-upgrade:600 ../unattended-upgrade:617
 #, python-format
 msgid "Unable to parse %s."
 msgstr ""
 
-#: ../unattended-upgrade:517 ../unattended-upgrade:619
-#: ../unattended-upgrade-shutdown:193
+#: ../unattended-upgrade:701 ../unattended-upgrade:789
+#: ../unattended-upgrade:2230 ../unattended-upgrade-shutdown:111
 msgid "All upgrades installed"
 msgstr "Bertsio-berritze guztiak instalatu dira"
 
-#: ../unattended-upgrade:519 ../unattended-upgrade:611
+#: ../unattended-upgrade:703 ../unattended-upgrade:781
 msgid "Installing the upgrades failed!"
 msgstr "Huts bertsio-berritzeak instalatzean!"
 
-#: ../unattended-upgrade:520 ../unattended-upgrade:612
-#: ../unattended-upgrade:776 ../unattended-upgrade:778
-#: ../unattended-upgrade:1539 ../unattended-upgrade:1541
+#: ../unattended-upgrade:704 ../unattended-upgrade:782
+#: ../unattended-upgrade:1056 ../unattended-upgrade:1058
+#: ../unattended-upgrade:1933 ../unattended-upgrade:1935
 #, fuzzy, python-format
 #| msgid "error message: '%s'"
 msgid "error message: %s"
 msgstr "errore mezua: '%s'"
 
-#: ../unattended-upgrade:521 ../unattended-upgrade:613
+#: ../unattended-upgrade:705 ../unattended-upgrade:783
 #, fuzzy, python-format
 #| msgid "dpkg returned a error! See '%s' for details"
 msgid "dpkg returned a error! See %s for details"
 msgstr "dpkg-ek errore bat itzuli du! '%s' begiratu xehetasunetarako"
 
-#: ../unattended-upgrade:775 ../unattended-upgrade:777
-#: ../unattended-upgrade:1538 ../unattended-upgrade:1540
-#: ../unattended-upgrade-shutdown:139
+#: ../unattended-upgrade:1055 ../unattended-upgrade:1057
+#: ../unattended-upgrade:1932 ../unattended-upgrade:1934
+#: ../unattended-upgrade:1937
 #, fuzzy
 #| msgid "dpkg returned a error! See '%s' for details"
 msgid "Apt returned an error, exiting"
 msgstr "dpkg-ek errore bat itzuli du! '%s' begiratu xehetasunetarako"
 
-#: ../unattended-upgrade:964
+#: ../unattended-upgrade:1234
 msgid ""
-"No /usr/bin/mail or /usr/sbin/sendmail,can not send mail. You probably want "
+"No /usr/bin/mail or /usr/sbin/sendmail, can not send mail. You probably want "
 "to install the mailx package."
 msgstr ""
 
-#: ../unattended-upgrade:975
+#: ../unattended-upgrade:1248
 msgid "[reboot required]"
 msgstr ""
 
-#: ../unattended-upgrade:977
+#: ../unattended-upgrade:1250
 msgid "[package on hold]"
 msgstr ""
 
-#: ../unattended-upgrade:981
+#: ../unattended-upgrade:1254
 #, fuzzy, python-brace-format
 msgid ""
 "{hold_flag}{reboot_flag} unattended-upgrades result for {machine}: {result}"
@@ -80,204 +103,229 @@
 "Zaindugabeko bertsio-berritze erantzuna: %s\n"
 "\n"
 
-#: ../unattended-upgrade:985
-#, python-format
-msgid ""
-"Unattended upgrade returned: %s\n"
-"\n"
+#: ../unattended-upgrade:1258
+#, fuzzy, python-format
+#| msgid ""
+#| "Unattended upgrade returned: %s\n"
+#| "\n"
+msgid "Unattended upgrade result: %s"
 msgstr ""
 "Zaindugabeko bertsio-berritze erantzuna: %s\n"
 "\n"
 
-#: ../unattended-upgrade:988
+#: ../unattended-upgrade:1262
 msgid ""
-"Warning: A reboot is required to complete this upgrade.\n"
+"Warning: A reboot is required to complete this upgrade, or a previous one.\n"
 "\n"
 msgstr ""
 
-#: ../unattended-upgrade:990
+#: ../unattended-upgrade:1266
 #, fuzzy
 msgid "Packages that were upgraded:\n"
 msgstr "Bertsio-berritu diren paketeak: %s"
 
-#: ../unattended-upgrade:992
+#: ../unattended-upgrade:1268
 #, fuzzy
 msgid "Packages that attempted to upgrade:\n"
 msgstr "Bertsio-berritu diren paketeak: %s"
 
-#: ../unattended-upgrade:996
+#: ../unattended-upgrade:1272
 msgid "Packages with upgradable origin but kept back:\n"
 msgstr ""
 
-#: ../unattended-upgrade:1001
+#: ../unattended-upgrade:1279
 #, fuzzy
 #| msgid "Packages that are upgraded: %s"
 msgid "Packages that were auto-removed:\n"
 msgstr "Bertsio-berritu diren paketeak: %s"
 
-#: ../unattended-upgrade:1006
+#: ../unattended-upgrade:1283
 #, fuzzy
 #| msgid "Packages that are upgraded: %s"
 msgid "Packages that were kept from being auto-removed:\n"
 msgstr "Bertsio-berritu diren paketeak: %s"
 
-#: ../unattended-upgrade:1011
+#: ../unattended-upgrade:1287
 msgid "Package installation log:"
 msgstr ""
 
-#: ../unattended-upgrade:1014
+#: ../unattended-upgrade:1290
 #, fuzzy
 msgid "Unattended-upgrades log:\n"
 msgstr ""
 "Zaindugabeko bertsio-berritze erantzuna: %s\n"
 "\n"
 
-#: ../unattended-upgrade:1042
+#: ../unattended-upgrade:1317
 #, fuzzy, python-format
 #| msgid "Writing dpkg log to '%s'"
 msgid "Writing dpkg log to %s"
 msgstr "Dpkg erregistroa '%s'-en idazten"
 
-#: ../unattended-upgrade:1193
+#: ../unattended-upgrade:1469
 #, python-format
 msgid "Found %s, but not rebooting because %s is logged in."
 msgid_plural "Found %s, but not rebooting because %s are logged in."
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../unattended-upgrade:1247
-#, python-format
-msgid "package %s upgradable but fails to be marked for upgrade (%s)"
-msgstr ""
-
-#: ../unattended-upgrade:1323
+#: ../unattended-upgrade:1624
 #, python-format
 msgid ""
 "Keeping the following auto-removable package(s) because they include %s "
 "which is set to be kept unmodified: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1330
+#: ../unattended-upgrade:1631
 #, python-format
 msgid ""
 "Keeping auto-removable %s package(s) because it would also remove the "
 "following packages which should be kept in this step: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1336
+#: ../unattended-upgrade:1637
 #, python-format
 msgid ""
 "Keeping %s auto-removable package(s) because it would also remove the "
 "following packages which should be kept in this step: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1347
+#: ../unattended-upgrade:1647
 #, python-format
 msgid ""
 "Keeping the following auto-removable package(s) because they include %s "
 "which package is related to the running kernel: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1407
+#: ../unattended-upgrade:1710
 #, fuzzy, python-format
 #| msgid "Packages that are upgraded: %s"
 msgid "Packages that were successfully auto-removed: %s"
 msgstr "Bertsio-berritu diren paketeak: %s"
 
-#: ../unattended-upgrade:1409
+#: ../unattended-upgrade:1712
 #, fuzzy, python-format
 #| msgid "Packages that are upgraded: %s"
 msgid "Packages that are kept back: %s"
 msgstr "Bertsio-berritu diren paketeak: %s"
 
-#: ../unattended-upgrade:1412
+#: ../unattended-upgrade:1716
 #, fuzzy
 #| msgid "Installing the upgrades failed!"
 msgid "Auto-removing the packages failed!"
 msgstr "Huts bertsio-berritzeak instalatzean!"
 
-#: ../unattended-upgrade:1413
+#: ../unattended-upgrade:1717
 #, fuzzy, python-format
 #| msgid "error message: '%s'"
 msgid "Error message: %s"
 msgstr "errore mezua: '%s'"
 
-#: ../unattended-upgrade:1414
+#: ../unattended-upgrade:1718
 #, fuzzy, python-format
 #| msgid "dpkg returned a error! See '%s' for details"
 msgid "dpkg returned an error! See %s for details"
 msgstr "dpkg-ek errore bat itzuli du! '%s' begiratu xehetasunetarako"
 
-#: ../unattended-upgrade:1474
+#: ../unattended-upgrade:1808 ../unattended-upgrade:2011
+#: ../unattended-upgrade:2012
+#, fuzzy, python-format
+#| msgid "An error ocured: '%s'"
+msgid "An error occurred: %s"
+msgstr "Errore bat gertatu da: '%s'"
+
+#: ../unattended-upgrade:1812
+#, fuzzy
+#| msgid "An error ocured: '%s'"
+msgid "An error occurred"
+msgstr "Errore bat gertatu da: '%s'"
+
+#: ../unattended-upgrade:1862 ../unattended-upgrade:1866
 #, python-format
-msgid "Initial blacklisted packages: %s"
+msgid "Not running on this development release before %s"
+msgstr ""
+
+#: ../unattended-upgrade:1875 ../unattended-upgrade:1876
+msgid "Not running on the development release."
+msgstr ""
+
+#: ../unattended-upgrade:1883
+#, fuzzy, python-format
+#| msgid "Initial blacklisted packages: %s"
+msgid "Initial blacklist : %s"
 msgstr "Hasierako zerrenda-beltz paketeak: %s"
 
-#: ../unattended-upgrade:1479
+#: ../unattended-upgrade:1888
 #, fuzzy, python-format
 #| msgid "Initial blacklisted packages: %s"
-msgid "Initial whitelisted packages: %s"
+msgid "Initial whitelist: %s"
 msgstr "Hasierako zerrenda-beltz paketeak: %s"
 
-#: ../unattended-upgrade:1482
+#: ../unattended-upgrade:1891
 msgid "Starting unattended upgrades script"
 msgstr "Zaindugabeko bertsio-berritze script-a abiarazten"
 
-#: ../unattended-upgrade:1491
+#: ../unattended-upgrade:1894
 #, python-format
 msgid "Allowed origins are: %s"
 msgstr "Onartzen diren jatorriak: %s"
 
-#: ../unattended-upgrade:1507 ../unattended-upgrade:1508
+#: ../unattended-upgrade:1900
+msgid "Lock could not be acquired (another package manager running?)"
+msgstr ""
+
+#: ../unattended-upgrade:1902
+#, fuzzy
+#| msgid "Cache has broken packages, exiting"
+msgid "Cache lock can not be acquired, exiting"
+msgstr "Katxeak hondaturiko paketeak ditu, uzten"
+
+#: ../unattended-upgrade:1904
+#, fuzzy
+#| msgid "Cache has broken packages, exiting"
+msgid "Lock could not be acquired"
+msgstr "Katxeak hondaturiko paketeak ditu, uzten"
+
+#: ../unattended-upgrade:1913 ../unattended-upgrade:1914
 msgid "Unclean dpkg state detected, trying to correct"
 msgstr ""
 
-#: ../unattended-upgrade:1519
+#: ../unattended-upgrade:1925
 #, python-format
 msgid ""
 "dpkg --configure -a output:\n"
 "%s"
 msgstr ""
 
-#: ../unattended-upgrade:1528
-msgid "Lock could not be acquired (another package manager running?)"
-msgstr ""
-
-#: ../unattended-upgrade:1530
-#, fuzzy
-#| msgid "Cache has broken packages, exiting"
-msgid "Cache lock can not be acquired, exiting"
-msgstr "Katxeak hondaturiko paketeak ditu, uzten"
-
-#: ../unattended-upgrade:1545 ../unattended-upgrade:1546
-#: ../unattended-upgrade:1773 ../unattended-upgrade:1774
+#: ../unattended-upgrade:1940 ../unattended-upgrade:1941
+#: ../unattended-upgrade:1943 ../unattended-upgrade:2179
+#: ../unattended-upgrade:2180 ../unattended-upgrade:2182
 msgid "Cache has broken packages, exiting"
 msgstr "Katxeak hondaturiko paketeak ditu, uzten"
 
-#: ../unattended-upgrade:1595
+#: ../unattended-upgrade:1987
+msgid "Upgrade was interrupted"
+msgstr ""
+
+#: ../unattended-upgrade:1991
 #, fuzzy, python-format
 #| msgid "GetArchives() failed: '%s'"
 msgid "GetArchives() failed: %s"
 msgstr "GetArchives()-ek huts egin du: '%s'"
 
-#: ../unattended-upgrade:1612 ../unattended-upgrade:1613
-#, fuzzy, python-format
-#| msgid "An error ocured: '%s'"
-msgid "An error occurred: %s"
-msgstr "Errore bat gertatu da: '%s'"
-
-#: ../unattended-upgrade:1615 ../unattended-upgrade:1617
+#: ../unattended-upgrade:2014 ../unattended-upgrade:2016
+#: ../unattended-upgrade:2019
 #, fuzzy, python-format
 #| msgid "The URI '%s' failed to download, aborting"
 msgid "The URI %s failed to download, aborting"
 msgstr "Huts '%s' URIa deskargatzerakoan, uzten"
 
-#: ../unattended-upgrade:1621
+#: ../unattended-upgrade:2022 ../unattended-upgrade:2027
 #, python-format
 msgid "Download finished, but file %s not there?!?"
 msgstr ""
 
-#: ../unattended-upgrade:1637 ../unattended-upgrade:1641
+#: ../unattended-upgrade:2047 ../unattended-upgrade:2051
 #, fuzzy, python-format
 #| msgid "Package '%s' has conffile prompt and needs to be upgraded manually"
 msgid "Package %s has conffile prompt and needs to be upgraded manually"
@@ -285,18 +333,18 @@
 "'%s' paketeak konfigurazio galderaren bat du eta eskuz bertsio-berritu behar "
 "da"
 
-#: ../unattended-upgrade:1670
+#: ../unattended-upgrade:2082
 #, fuzzy, python-format
 #| msgid "package '%s' not upgraded"
 msgid "package %s not upgraded"
 msgstr "'%s' paketea ez da bertsio-berritu"
 
-#: ../unattended-upgrade:1702
+#: ../unattended-upgrade:2112
 #, python-format
 msgid "Removing unused kernel packages: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1724
+#: ../unattended-upgrade:2133 ../unattended-upgrade:2137
 #, fuzzy
 #| msgid "No packages found that can be upgraded unattended"
 msgid ""
@@ -304,71 +352,104 @@
 "removals"
 msgstr "Ez da zaindugabe instalatu daitekeen paketerik aurkitu"
 
-#: ../unattended-upgrade:1754
+#: ../unattended-upgrade:2160
 #, fuzzy, python-format
 #| msgid "Packages that are upgraded: %s"
 msgid "Packages that will be upgraded: %s"
 msgstr "Bertsio-berritu diren paketeak: %s"
 
-#: ../unattended-upgrade:1867
+#: ../unattended-upgrade:2270
 msgid "print debug messages"
 msgstr "inprimatu arazpen mezuak"
 
-#: ../unattended-upgrade:1870
+#: ../unattended-upgrade:2273
 #, fuzzy
 #| msgid "print debug messages"
 msgid "make apt/libapt print verbose debug messages"
 msgstr "inprimatu arazpen mezuak"
 
-#: ../unattended-upgrade:1873
+#: ../unattended-upgrade:2278
 #, fuzzy
 #| msgid "print debug messages"
 msgid "print info messages"
 msgstr "inprimatu arazpen mezuak"
 
-#: ../unattended-upgrade:1876
+#: ../unattended-upgrade:2281
 msgid "Simulation, download but do not install"
 msgstr ""
 
-#: ../unattended-upgrade:1879
+#: ../unattended-upgrade:2284
 msgid "Only download, do not even try to install."
 msgstr ""
 
-#: ../unattended-upgrade:1882
+#: ../unattended-upgrade:2287
+msgid ""
+"Upgrade in minimal steps (and allow interrupting with SIGTERM) (default)"
+msgstr ""
+
+#: ../unattended-upgrade:2292
 msgid "Upgrade in minimal steps (and allow interrupting with SIGTERM"
 msgstr ""
 
-#: ../unattended-upgrade:1891
+#: ../unattended-upgrade:2301
 msgid "You need to be root to run this application"
 msgstr "Root izan behar zara aplikazioa hau exekutatu ahal izateko"
 
-#: ../unattended-upgrade-shutdown:76
+#: ../unattended-upgrade-shutdown:86
 msgid ""
 "Unattended-upgrade in progress during shutdown, please don't turn off the "
 "computer"
 msgstr ""
 
-#: ../unattended-upgrade-shutdown:140
+#: ../unattended-upgrade-shutdown:114
+msgid ""
+"Unattended-upgrades stopped. There may be upgrades left to be installed in "
+"the next run."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:167
+msgid "Stop ongoing upgrades or perform upgrades before shutdown"
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:206 ../unattended-upgrade-shutdown:263
+msgid "Unable to monitor PrepareForShutdown() signal, polling instead."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:209
+msgid ""
+"To enable monitoring the PrepareForShutdown() signal instead of polling "
+"please install the python3-gi package"
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:266
+msgid "Maybe systemd-logind service is not running."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:289
+#, fuzzy
+#| msgid "dpkg returned a error! See '%s' for details"
+msgid "Apt returned an error thus shutdown mode is disabled"
+msgstr "dpkg-ek errore bat itzuli du! '%s' begiratu xehetasunetarako"
+
+#: ../unattended-upgrade-shutdown:291 ../unattended-upgrade-shutdown:372
 #, python-format
 msgid "error message: '%s'"
 msgstr "errore mezua: '%s'"
 
-#: ../unattended-upgrade-shutdown:150
+#: ../unattended-upgrade-shutdown:307
 #, fuzzy
 msgid "Running unattended-upgrades in shutdown mode"
 msgstr ""
 "Zaindugabeko bertsio-berritze erantzuna: %s\n"
 "\n"
 
-#: ../unattended-upgrade-shutdown:176
+#: ../unattended-upgrade-shutdown:328
 #, python-format
-msgid "Giving up on lockfile after %s delay"
+msgid "Giving up on lockfile after %s minutes of delay"
 msgstr ""
 
-#: ../unattended-upgrade-shutdown:189
-msgid ""
-"Unattended-upgrades stopped. There may be upgrades left to be installed in "
-"the next run."
+#: ../unattended-upgrade-shutdown:370
+msgid "Apt returned an error when loading configuration, using default values"
 msgstr ""
 
 #, fuzzy
diff -Nru unattended-upgrades-1.11/po/fr.po unattended-upgrades-1.12/po/fr.po
--- unattended-upgrades-1.11/po/fr.po	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/po/fr.po	2019-04-18 16:38:31.000000000 +0200
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: 0.35\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-02-23 13:17+0700\n"
+"POT-Creation-Date: 2015-07-02 12:27+0200\n"
 "PO-Revision-Date: 2015-07-02 12:30+0200\n"
 "Last-Translator: Alexandre Detiste <alexandre@detiste.be>\n"
 "Language-Team: French <debian-l10n-french@lists.debian.org>\n"
@@ -16,227 +16,290 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ../unattended-upgrade:219
+#: ../unattended-upgrade:203 ../unattended-upgrade:746
+#: ../unattended-upgrade:1535
+#, fuzzy, python-format
+#| msgid "package '%s' upgradable but fails to be marked for upgrade (%s)"
+msgid "package %s upgradable but fails to be marked for upgrade (%s)"
+msgstr ""
+"Le paquet « %s » peut être mis à niveau mais échoue à être marqué comme tel "
+"(%s)"
+
+#: ../unattended-upgrade:301
 #, python-format
 msgid "Progress: %s %% (%s)"
 msgstr "Progression : %s %% (%s)"
 
-#: ../unattended-upgrade:413 ../unattended-upgrade:430
+#: ../unattended-upgrade:541
+msgid ""
+"Checking if system is running on battery is skipped. Please install "
+"powermgmt-base package to check power status and skip installing updates "
+"when the system is running on battery."
+msgstr ""
+
+#: ../unattended-upgrade:549
+msgid "System is on metered connection, stopping"
+msgstr ""
+
+#: ../unattended-upgrade:552
+msgid ""
+"Checking if connection is metered is skipped. Please install python3-gi "
+"package to detect metered connections and skip downloading updates."
+msgstr ""
+
+#: ../unattended-upgrade:600 ../unattended-upgrade:617
 #, python-format
 msgid "Unable to parse %s."
 msgstr ""
 
-#: ../unattended-upgrade:517 ../unattended-upgrade:619
-#: ../unattended-upgrade-shutdown:193
+#: ../unattended-upgrade:701 ../unattended-upgrade:789
+#: ../unattended-upgrade:2230 ../unattended-upgrade-shutdown:111
 msgid "All upgrades installed"
 msgstr "Toutes les mises à niveau ont été installées"
 
-#: ../unattended-upgrade:519 ../unattended-upgrade:611
+#: ../unattended-upgrade:703 ../unattended-upgrade:781
 msgid "Installing the upgrades failed!"
 msgstr "Échec de l'installation des mises à niveau"
 
-#: ../unattended-upgrade:520 ../unattended-upgrade:612
-#: ../unattended-upgrade:776 ../unattended-upgrade:778
-#: ../unattended-upgrade:1539 ../unattended-upgrade:1541
+#: ../unattended-upgrade:704 ../unattended-upgrade:782
+#: ../unattended-upgrade:1056 ../unattended-upgrade:1058
+#: ../unattended-upgrade:1933 ../unattended-upgrade:1935
 #, fuzzy, python-format
 #| msgid "error message: '%s'"
 msgid "error message: %s"
 msgstr "Message d'erreur : %s"
 
-#: ../unattended-upgrade:521 ../unattended-upgrade:613
+#: ../unattended-upgrade:705 ../unattended-upgrade:783
 #, fuzzy, python-format
 #| msgid "dpkg returned a error! See '%s' for details"
 msgid "dpkg returned a error! See %s for details"
 msgstr "dpkg a renvoyé une erreur. Voir « %s » pour les détails"
 
-#: ../unattended-upgrade:775 ../unattended-upgrade:777
-#: ../unattended-upgrade:1538 ../unattended-upgrade:1540
-#: ../unattended-upgrade-shutdown:139
+#: ../unattended-upgrade:1055 ../unattended-upgrade:1057
+#: ../unattended-upgrade:1932 ../unattended-upgrade:1934
+#: ../unattended-upgrade:1937
 #, fuzzy
 #| msgid "dpkg returned an error! See '%s' for details"
 msgid "Apt returned an error, exiting"
 msgstr "dpkg a renvoyé une erreur! Voir '%s' pour les détails"
 
-#: ../unattended-upgrade:964
+#: ../unattended-upgrade:1234
 #, fuzzy
 #| msgid ""
 #| "No '/usr/bin/mail' or '/usr/sbin/sendmail',can not send mail. You "
 #| "probably want to install the 'mailx' package."
 msgid ""
-"No /usr/bin/mail or /usr/sbin/sendmail,can not send mail. You probably want "
+"No /usr/bin/mail or /usr/sbin/sendmail, can not send mail. You probably want "
 "to install the mailx package."
 msgstr ""
 "L'exécutable '/usr/bin/mail' ou '/usr/sbin/sendmail' est introuvable,  "
 "impossible d'envoyer un courrier électronique. Veuillez installer le paquet "
 "« mailx »."
 
-#: ../unattended-upgrade:975
+#: ../unattended-upgrade:1248
 msgid "[reboot required]"
 msgstr ""
 
-#: ../unattended-upgrade:977
+#: ../unattended-upgrade:1250
 msgid "[package on hold]"
 msgstr ""
 
-#: ../unattended-upgrade:981
+#: ../unattended-upgrade:1254
 #, fuzzy, python-brace-format
 #| msgid "[reboot required] unattended-upgrades result for '%s': %s"
 msgid ""
 "{hold_flag}{reboot_flag} unattended-upgrades result for {machine}: {result}"
 msgstr "[Redémarrage requis] résultat de unattended-upgrades pour '%s': %s"
 
-#: ../unattended-upgrade:985
-#, python-format
-msgid ""
-"Unattended upgrade returned: %s\n"
-"\n"
+#: ../unattended-upgrade:1258
+#, fuzzy, python-format
+#| msgid ""
+#| "Unattended upgrade returned: %s\n"
+#| "\n"
+msgid "Unattended upgrade result: %s"
 msgstr ""
 "La mise à niveau automatique a renvoyé : %s\n"
 "\n"
 
-#: ../unattended-upgrade:988
+#: ../unattended-upgrade:1262
+#, fuzzy
+#| msgid ""
+#| "Warning: A reboot is required to complete this upgrade.\n"
+#| "\n"
 msgid ""
-"Warning: A reboot is required to complete this upgrade.\n"
+"Warning: A reboot is required to complete this upgrade, or a previous one.\n"
 "\n"
 msgstr ""
 "Avertissement : un redémarrage est requis afin de compléter cette mise à "
 "niveau.\n"
 
-#: ../unattended-upgrade:990
+#: ../unattended-upgrade:1266
 msgid "Packages that were upgraded:\n"
 msgstr "Paquets mis à niveau:\n"
 
-#: ../unattended-upgrade:992
+#: ../unattended-upgrade:1268
 msgid "Packages that attempted to upgrade:\n"
 msgstr "Essai de mise à niveau des paquets:\n"
 
-#: ../unattended-upgrade:996
+#: ../unattended-upgrade:1272
 msgid "Packages with upgradable origin but kept back:\n"
 msgstr ""
 "Paquets susceptibles d'une mise à niveau mais maintenus dans leur état "
 "actuel :\n"
 
-#: ../unattended-upgrade:1001
+#: ../unattended-upgrade:1279
 #, fuzzy
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that were auto-removed:\n"
 msgstr "Suppression automatique des paquets: %s"
 
-#: ../unattended-upgrade:1006
+#: ../unattended-upgrade:1283
 #, fuzzy
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that were kept from being auto-removed:\n"
 msgstr "Suppression automatique des paquets: %s"
 
-#: ../unattended-upgrade:1011
+#: ../unattended-upgrade:1287
 msgid "Package installation log:"
 msgstr "Journal d'installation des paquets:"
 
-#: ../unattended-upgrade:1014
+#: ../unattended-upgrade:1290
 msgid "Unattended-upgrades log:\n"
 msgstr "Journal de unattended-upgrades:\n"
 
-#: ../unattended-upgrade:1042
+#: ../unattended-upgrade:1317
 #, fuzzy, python-format
 #| msgid "Writing dpkg log to '%s'"
 msgid "Writing dpkg log to %s"
 msgstr "Écriture du journal de dpkg dans « %s »"
 
-#: ../unattended-upgrade:1193
+#: ../unattended-upgrade:1469
 #, python-format
 msgid "Found %s, but not rebooting because %s is logged in."
 msgid_plural "Found %s, but not rebooting because %s are logged in."
 msgstr[0] "Trouvé %s, mais ne redémarre pas car %s est connecté."
 msgstr[1] "Trouvé %s, mais ne redémarre pas car %s sont connectés."
 
-#: ../unattended-upgrade:1247
-#, fuzzy, python-format
-#| msgid "package '%s' upgradable but fails to be marked for upgrade (%s)"
-msgid "package %s upgradable but fails to be marked for upgrade (%s)"
-msgstr ""
-"Le paquet « %s » peut être mis à niveau mais échoue à être marqué comme tel "
-"(%s)"
-
-#: ../unattended-upgrade:1323
+#: ../unattended-upgrade:1624
 #, python-format
 msgid ""
 "Keeping the following auto-removable package(s) because they include %s "
 "which is set to be kept unmodified: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1330
+#: ../unattended-upgrade:1631
 #, python-format
 msgid ""
 "Keeping auto-removable %s package(s) because it would also remove the "
 "following packages which should be kept in this step: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1336
+#: ../unattended-upgrade:1637
 #, python-format
 msgid ""
 "Keeping %s auto-removable package(s) because it would also remove the "
 "following packages which should be kept in this step: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1347
+#: ../unattended-upgrade:1647
 #, python-format
 msgid ""
 "Keeping the following auto-removable package(s) because they include %s "
 "which package is related to the running kernel: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1407
+#: ../unattended-upgrade:1710
 #, fuzzy, python-format
 #| msgid "Packages were successfully auto-removed"
 msgid "Packages that were successfully auto-removed: %s"
 msgstr "Ces packets ont été correctement supprimés"
 
-#: ../unattended-upgrade:1409
+#: ../unattended-upgrade:1712
 #, fuzzy, python-format
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that are kept back: %s"
 msgstr "Suppression automatique des paquets: %s"
 
-#: ../unattended-upgrade:1412
+#: ../unattended-upgrade:1716
 msgid "Auto-removing the packages failed!"
 msgstr "Auto-remove de ces paquets a échoué!"
 
-#: ../unattended-upgrade:1413
+#: ../unattended-upgrade:1717
 #, fuzzy, python-format
 #| msgid "Error message: '%s'"
 msgid "Error message: %s"
 msgstr "Message d'erreur: %s"
 
-#: ../unattended-upgrade:1414
+#: ../unattended-upgrade:1718
 #, fuzzy, python-format
 #| msgid "dpkg returned an error! See '%s' for details"
 msgid "dpkg returned an error! See %s for details"
 msgstr "dpkg a renvoyé une erreur! Voir '%s' pour les détails"
 
-#: ../unattended-upgrade:1474
+#: ../unattended-upgrade:1808 ../unattended-upgrade:2011
+#: ../unattended-upgrade:2012
+#, fuzzy, python-format
+#| msgid "An error occurred: '%s'"
+msgid "An error occurred: %s"
+msgstr "Une erreur s'est produite: %s"
+
+#: ../unattended-upgrade:1812
+#, fuzzy
+#| msgid "An error occurred: '%s'"
+msgid "An error occurred"
+msgstr "Une erreur s'est produite: %s"
+
+#: ../unattended-upgrade:1862 ../unattended-upgrade:1866
 #, python-format
-msgid "Initial blacklisted packages: %s"
+msgid "Not running on this development release before %s"
+msgstr ""
+
+#: ../unattended-upgrade:1875 ../unattended-upgrade:1876
+msgid "Not running on the development release."
+msgstr ""
+
+#: ../unattended-upgrade:1883
+#, fuzzy, python-format
+#| msgid "Initial blacklisted packages: %s"
+msgid "Initial blacklist : %s"
 msgstr "Paquets initialement sur la liste noire: %s"
 
-#: ../unattended-upgrade:1479
-#, python-format
-msgid "Initial whitelisted packages: %s"
+#: ../unattended-upgrade:1888
+#, fuzzy, python-format
+#| msgid "Initial whitelisted packages: %s"
+msgid "Initial whitelist: %s"
 msgstr "Paquets initialement sur la liste blanche: %s"
 
-#: ../unattended-upgrade:1482
+#: ../unattended-upgrade:1891
 msgid "Starting unattended upgrades script"
 msgstr "Démarrage du script de mise à niveau automatique"
 
-#: ../unattended-upgrade:1491
+#: ../unattended-upgrade:1894
 #, python-format
 msgid "Allowed origins are: %s"
 msgstr "Les origines permises sont: %s"
 
-#: ../unattended-upgrade:1507 ../unattended-upgrade:1508
+#: ../unattended-upgrade:1900
+msgid "Lock could not be acquired (another package manager running?)"
+msgstr ""
+"Verrouillage impossible (y a-t-il un autre gestionnaire de paquets en cours "
+"d'exécution ?)"
+
+#: ../unattended-upgrade:1902
+msgid "Cache lock can not be acquired, exiting"
+msgstr "Le verrouillage du cache est impossible, abandon"
+
+#: ../unattended-upgrade:1904
+#, fuzzy
+#| msgid "Cache lock can not be acquired, exiting"
+msgid "Lock could not be acquired"
+msgstr "Le verrouillage du cache est impossible, abandon"
+
+#: ../unattended-upgrade:1913 ../unattended-upgrade:1914
 msgid "Unclean dpkg state detected, trying to correct"
 msgstr "détection d'un état de dpkg impropre, tentative de correction"
 
-#: ../unattended-upgrade:1519
+#: ../unattended-upgrade:1925
 #, python-format
 msgid ""
 "dpkg --configure -a output:\n"
@@ -245,46 +308,36 @@
 "sortie de « dpkg --configure -a »:\n"
 "%s"
 
-#: ../unattended-upgrade:1528
-msgid "Lock could not be acquired (another package manager running?)"
-msgstr ""
-"Verrouillage impossible (y a-t-il un autre gestionnaire de paquets en cours "
-"d'exécution ?)"
-
-#: ../unattended-upgrade:1530
-msgid "Cache lock can not be acquired, exiting"
-msgstr "Le verrouillage du cache est impossible, abandon"
-
-#: ../unattended-upgrade:1545 ../unattended-upgrade:1546
-#: ../unattended-upgrade:1773 ../unattended-upgrade:1774
+#: ../unattended-upgrade:1940 ../unattended-upgrade:1941
+#: ../unattended-upgrade:1943 ../unattended-upgrade:2179
+#: ../unattended-upgrade:2180 ../unattended-upgrade:2182
 msgid "Cache has broken packages, exiting"
 msgstr "Le cache contient des paquets cassés, abandon"
 
-#: ../unattended-upgrade:1595
+#: ../unattended-upgrade:1987
+msgid "Upgrade was interrupted"
+msgstr ""
+
+#: ../unattended-upgrade:1991
 #, fuzzy, python-format
 #| msgid "GetArchives() failed: '%s'"
 msgid "GetArchives() failed: %s"
 msgstr "Échec de GetArchives(): %s"
 
-#: ../unattended-upgrade:1612 ../unattended-upgrade:1613
-#, fuzzy, python-format
-#| msgid "An error occurred: '%s'"
-msgid "An error occurred: %s"
-msgstr "Une erreur s'est produite: %s"
-
-#: ../unattended-upgrade:1615 ../unattended-upgrade:1617
+#: ../unattended-upgrade:2014 ../unattended-upgrade:2016
+#: ../unattended-upgrade:2019
 #, fuzzy, python-format
 #| msgid "The URI '%s' failed to download, aborting"
 msgid "The URI %s failed to download, aborting"
 msgstr "Échec du téléchargement à l'URI « %s », abandon"
 
-#: ../unattended-upgrade:1621
+#: ../unattended-upgrade:2022 ../unattended-upgrade:2027
 #, fuzzy, python-format
 #| msgid "Download finished, but file '%s' not there?!?"
 msgid "Download finished, but file %s not there?!?"
 msgstr "Téléchargement terminé mais le fichier « %s » est absent !"
 
-#: ../unattended-upgrade:1637 ../unattended-upgrade:1641
+#: ../unattended-upgrade:2047 ../unattended-upgrade:2051
 #, fuzzy, python-format
 #| msgid "Package '%s' has conffile prompt and needs to be upgraded manually"
 msgid "Package %s has conffile prompt and needs to be upgraded manually"
@@ -292,63 +345,71 @@
 "Le paquet « %s » provoque un conflit de fichiers de configuration et "
 "nécessite une mise à niveau manuelle"
 
-#: ../unattended-upgrade:1670
+#: ../unattended-upgrade:2082
 #, fuzzy, python-format
 #| msgid "package '%s' not upgraded"
 msgid "package %s not upgraded"
 msgstr "Le paquet « %s » n'a pas été mis à niveau"
 
-#: ../unattended-upgrade:1702
+#: ../unattended-upgrade:2112
 #, python-format
 msgid "Removing unused kernel packages: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1724
+#: ../unattended-upgrade:2133 ../unattended-upgrade:2137
 msgid ""
 "No packages found that can be upgraded unattended and no pending auto-"
 "removals"
 msgstr ""
 "Aucun paquet à mettre à niveau automatiquement ni à supprimer automatiquement"
 
-#: ../unattended-upgrade:1754
+#: ../unattended-upgrade:2160
 #, python-format
 msgid "Packages that will be upgraded: %s"
 msgstr "Paquets mis à niveau: %s"
 
-#: ../unattended-upgrade:1867
+#: ../unattended-upgrade:2270
 msgid "print debug messages"
 msgstr "Afficher les messages de débogage"
 
-#: ../unattended-upgrade:1870
+#: ../unattended-upgrade:2273
 msgid "make apt/libapt print verbose debug messages"
 msgstr "Afficher les messages de débogage de apt/libapt"
 
-#: ../unattended-upgrade:1873
+#: ../unattended-upgrade:2278
 msgid "print info messages"
 msgstr "Afficher les messages d'information"
 
-#: ../unattended-upgrade:1876
+#: ../unattended-upgrade:2281
 msgid "Simulation, download but do not install"
 msgstr "Simulation, télécharge mais n'installe pas"
 
-#: ../unattended-upgrade:1879
+#: ../unattended-upgrade:2284
 #, fuzzy
 #| msgid "Simulation, download but do not install"
 msgid "Only download, do not even try to install."
 msgstr "Simulation, télécharge mais n'installe pas"
 
-#: ../unattended-upgrade:1882
+#: ../unattended-upgrade:2287
+#, fuzzy
+#| msgid "Upgrade in minimal steps (and allow interrupting with SIGTERM"
+msgid ""
+"Upgrade in minimal steps (and allow interrupting with SIGTERM) (default)"
+msgstr ""
+"Mise à niveau par étapes minimales (et autoriser l'interruption avec SIGTERM)"
+
+#: ../unattended-upgrade:2292
 msgid "Upgrade in minimal steps (and allow interrupting with SIGTERM"
 msgstr ""
 "Mise à niveau par étapes minimales (et autoriser l'interruption avec SIGTERM)"
 
-#: ../unattended-upgrade:1891
+#: ../unattended-upgrade:2301
 msgid "You need to be root to run this application"
 msgstr ""
 "Vous devez posséder les privilèges du superutilisateur pour exécuter cette "
 "application"
 
-#: ../unattended-upgrade-shutdown:76
+#: ../unattended-upgrade-shutdown:86
 #, fuzzy
 #| msgid "Unattended-upgrade in progress during shutdown, sleeping for 5s"
 msgid ""
@@ -356,24 +417,53 @@
 "computer"
 msgstr "Unattended-upgrade en cours durant l'extinction, en pause pour 5 s"
 
-#: ../unattended-upgrade-shutdown:140
+#: ../unattended-upgrade-shutdown:114
+msgid ""
+"Unattended-upgrades stopped. There may be upgrades left to be installed in "
+"the next run."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:167
+msgid "Stop ongoing upgrades or perform upgrades before shutdown"
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:206 ../unattended-upgrade-shutdown:263
+msgid "Unable to monitor PrepareForShutdown() signal, polling instead."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:209
+msgid ""
+"To enable monitoring the PrepareForShutdown() signal instead of polling "
+"please install the python3-gi package"
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:266
+msgid "Maybe systemd-logind service is not running."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:289
+#, fuzzy
+#| msgid "dpkg returned an error! See '%s' for details"
+msgid "Apt returned an error thus shutdown mode is disabled"
+msgstr "dpkg a renvoyé une erreur! Voir '%s' pour les détails"
+
+#: ../unattended-upgrade-shutdown:291 ../unattended-upgrade-shutdown:372
 #, python-format
 msgid "error message: '%s'"
 msgstr "Message d'erreur : %s"
 
-#: ../unattended-upgrade-shutdown:150
+#: ../unattended-upgrade-shutdown:307
 msgid "Running unattended-upgrades in shutdown mode"
 msgstr "Exécuter unattended-upgrades lors de l'extinction"
 
-#: ../unattended-upgrade-shutdown:176
-#, python-format
-msgid "Giving up on lockfile after %s delay"
+#: ../unattended-upgrade-shutdown:328
+#, fuzzy, python-format
+#| msgid "Giving up on lockfile after %s delay"
+msgid "Giving up on lockfile after %s minutes of delay"
 msgstr "Renonciation sur un fichier verrou après un délai de %s."
 
-#: ../unattended-upgrade-shutdown:189
-msgid ""
-"Unattended-upgrades stopped. There may be upgrades left to be installed in "
-"the next run."
+#: ../unattended-upgrade-shutdown:370
+msgid "Apt returned an error when loading configuration, using default values"
 msgstr ""
 
 #, fuzzy
diff -Nru unattended-upgrades-1.11/po/gl.po unattended-upgrades-1.12/po/gl.po
--- unattended-upgrades-1.11/po/gl.po	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/po/gl.po	2019-04-18 16:38:31.000000000 +0200
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-02-23 13:17+0700\n"
+"POT-Creation-Date: 2015-07-02 12:27+0200\n"
 "PO-Revision-Date: 2012-06-23 12:55+0200\n"
 "Last-Translator: Jorge Barreiro <yortx.barry@gmail.com>\n"
 "Language-Team: Galician <proxecto@trasno.net>\n"
@@ -18,231 +18,291 @@
 "X-Generator: Lokalize 1.0\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 
-#: ../unattended-upgrade:219
+#: ../unattended-upgrade:203 ../unattended-upgrade:746
+#: ../unattended-upgrade:1535
+#, fuzzy, python-format
+#| msgid "package '%s' upgradable but fails to be marked for upgrade (%s)"
+msgid "package %s upgradable but fails to be marked for upgrade (%s)"
+msgstr ""
+"O paquete «%s» é actualizábel, pero non foi posíbel marcalo para actualizar "
+"(%s)"
+
+#: ../unattended-upgrade:301
 #, python-format
 msgid "Progress: %s %% (%s)"
 msgstr "Progreso: %s %% (%s)"
 
-#: ../unattended-upgrade:413 ../unattended-upgrade:430
+#: ../unattended-upgrade:541
+msgid ""
+"Checking if system is running on battery is skipped. Please install "
+"powermgmt-base package to check power status and skip installing updates "
+"when the system is running on battery."
+msgstr ""
+
+#: ../unattended-upgrade:549
+msgid "System is on metered connection, stopping"
+msgstr ""
+
+#: ../unattended-upgrade:552
+msgid ""
+"Checking if connection is metered is skipped. Please install python3-gi "
+"package to detect metered connections and skip downloading updates."
+msgstr ""
+
+#: ../unattended-upgrade:600 ../unattended-upgrade:617
 #, python-format
 msgid "Unable to parse %s."
 msgstr ""
 
-#: ../unattended-upgrade:517 ../unattended-upgrade:619
-#: ../unattended-upgrade-shutdown:193
+#: ../unattended-upgrade:701 ../unattended-upgrade:789
+#: ../unattended-upgrade:2230 ../unattended-upgrade-shutdown:111
 msgid "All upgrades installed"
 msgstr "Todas as actualizacións foron instaladas"
 
-#: ../unattended-upgrade:519 ../unattended-upgrade:611
+#: ../unattended-upgrade:703 ../unattended-upgrade:781
 msgid "Installing the upgrades failed!"
 msgstr "Produciuse un erro ao instalar as actualizacións."
 
-#: ../unattended-upgrade:520 ../unattended-upgrade:612
-#: ../unattended-upgrade:776 ../unattended-upgrade:778
-#: ../unattended-upgrade:1539 ../unattended-upgrade:1541
+#: ../unattended-upgrade:704 ../unattended-upgrade:782
+#: ../unattended-upgrade:1056 ../unattended-upgrade:1058
+#: ../unattended-upgrade:1933 ../unattended-upgrade:1935
 #, fuzzy, python-format
 #| msgid "error message: '%s'"
 msgid "error message: %s"
 msgstr "mensaxe de erro:  «%s»"
 
-#: ../unattended-upgrade:521 ../unattended-upgrade:613
+#: ../unattended-upgrade:705 ../unattended-upgrade:783
 #, fuzzy, python-format
 #| msgid "dpkg returned a error! See '%s' for details"
 msgid "dpkg returned a error! See %s for details"
 msgstr "«dpkg» devolveu un erro! Consulte «%s» para obter máis detalles."
 
-#: ../unattended-upgrade:775 ../unattended-upgrade:777
-#: ../unattended-upgrade:1538 ../unattended-upgrade:1540
-#: ../unattended-upgrade-shutdown:139
+#: ../unattended-upgrade:1055 ../unattended-upgrade:1057
+#: ../unattended-upgrade:1932 ../unattended-upgrade:1934
+#: ../unattended-upgrade:1937
 #, fuzzy
 #| msgid "dpkg returned a error! See '%s' for details"
 msgid "Apt returned an error, exiting"
 msgstr "«dpkg» devolveu un erro! Consulte «%s» para obter máis detalles."
 
-#: ../unattended-upgrade:964
+#: ../unattended-upgrade:1234
 #, fuzzy
 #| msgid ""
 #| "No '/usr/bin/mail', can not send mail. You probably want to install the "
 #| "'mailx' package."
 msgid ""
-"No /usr/bin/mail or /usr/sbin/sendmail,can not send mail. You probably want "
+"No /usr/bin/mail or /usr/sbin/sendmail, can not send mail. You probably want "
 "to install the mailx package."
 msgstr ""
 "Non existe «/usr/bin/mail», non pode enviar correos. Probablemente queira "
 "instalar o paquete «mailx»."
 
-#: ../unattended-upgrade:975
+#: ../unattended-upgrade:1248
 msgid "[reboot required]"
 msgstr ""
 
-#: ../unattended-upgrade:977
+#: ../unattended-upgrade:1250
 msgid "[package on hold]"
 msgstr ""
 
-#: ../unattended-upgrade:981
+#: ../unattended-upgrade:1254
 #, fuzzy, python-brace-format
 #| msgid "[reboot required] unattended-upgrades result for '%s'"
 msgid ""
 "{hold_flag}{reboot_flag} unattended-upgrades result for {machine}: {result}"
 msgstr "[precísase reiniciar] resultado da actualización desatendida para «%s»"
 
-#: ../unattended-upgrade:985
-#, python-format
-msgid ""
-"Unattended upgrade returned: %s\n"
-"\n"
+#: ../unattended-upgrade:1258
+#, fuzzy, python-format
+#| msgid ""
+#| "Unattended upgrade returned: %s\n"
+#| "\n"
+msgid "Unattended upgrade result: %s"
 msgstr ""
 "A actualización desatendida devolveu: %s\n"
 "\n"
 
-#: ../unattended-upgrade:988
+#: ../unattended-upgrade:1262
+#, fuzzy
+#| msgid ""
+#| "Warning: A reboot is required to complete this upgrade.\n"
+#| "\n"
 msgid ""
-"Warning: A reboot is required to complete this upgrade.\n"
+"Warning: A reboot is required to complete this upgrade, or a previous one.\n"
 "\n"
 msgstr ""
 "Aviso: Precísase reiniciar para completar esta actualización.\n"
 "\n"
 
-#: ../unattended-upgrade:990
+#: ../unattended-upgrade:1266
 #, fuzzy
 #| msgid "Packages that are upgraded:\n"
 msgid "Packages that were upgraded:\n"
 msgstr "Paquetes que se actualizan:\n"
 
-#: ../unattended-upgrade:992
+#: ../unattended-upgrade:1268
 #, fuzzy
 #| msgid "Packages that are upgraded:\n"
 msgid "Packages that attempted to upgrade:\n"
 msgstr "Paquetes que se actualizan:\n"
 
-#: ../unattended-upgrade:996
+#: ../unattended-upgrade:1272
 msgid "Packages with upgradable origin but kept back:\n"
 msgstr "Paquetes co un orixe actualizábel, pero que se manteñen:\n"
 
-#: ../unattended-upgrade:1001
+#: ../unattended-upgrade:1279
 #, fuzzy
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that were auto-removed:\n"
 msgstr "Paquetes que se eliminan automaticamente: «%s»"
 
-#: ../unattended-upgrade:1006
+#: ../unattended-upgrade:1283
 #, fuzzy
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that were kept from being auto-removed:\n"
 msgstr "Paquetes que se eliminan automaticamente: «%s»"
 
-#: ../unattended-upgrade:1011
+#: ../unattended-upgrade:1287
 msgid "Package installation log:"
 msgstr "Rexistro de instalación de paquetes:"
 
-#: ../unattended-upgrade:1014
+#: ../unattended-upgrade:1290
 msgid "Unattended-upgrades log:\n"
 msgstr "Rexistro de «unattended-upgrades»:\n"
 
-#: ../unattended-upgrade:1042
+#: ../unattended-upgrade:1317
 #, fuzzy, python-format
 #| msgid "Writing dpkg log to '%s'"
 msgid "Writing dpkg log to %s"
 msgstr "Escribindo o rexistro «dpkg» a «%s»"
 
-#: ../unattended-upgrade:1193
+#: ../unattended-upgrade:1469
 #, python-format
 msgid "Found %s, but not rebooting because %s is logged in."
 msgid_plural "Found %s, but not rebooting because %s are logged in."
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../unattended-upgrade:1247
-#, fuzzy, python-format
-#| msgid "package '%s' upgradable but fails to be marked for upgrade (%s)"
-msgid "package %s upgradable but fails to be marked for upgrade (%s)"
-msgstr ""
-"O paquete «%s» é actualizábel, pero non foi posíbel marcalo para actualizar "
-"(%s)"
-
-#: ../unattended-upgrade:1323
+#: ../unattended-upgrade:1624
 #, python-format
 msgid ""
 "Keeping the following auto-removable package(s) because they include %s "
 "which is set to be kept unmodified: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1330
+#: ../unattended-upgrade:1631
 #, python-format
 msgid ""
 "Keeping auto-removable %s package(s) because it would also remove the "
 "following packages which should be kept in this step: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1336
+#: ../unattended-upgrade:1637
 #, python-format
 msgid ""
 "Keeping %s auto-removable package(s) because it would also remove the "
 "following packages which should be kept in this step: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1347
+#: ../unattended-upgrade:1647
 #, python-format
 msgid ""
 "Keeping the following auto-removable package(s) because they include %s "
 "which package is related to the running kernel: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1407
+#: ../unattended-upgrade:1710
 #, fuzzy, python-format
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that were successfully auto-removed: %s"
 msgstr "Paquetes que se eliminan automaticamente: «%s»"
 
-#: ../unattended-upgrade:1409
+#: ../unattended-upgrade:1712
 #, fuzzy, python-format
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that are kept back: %s"
 msgstr "Paquetes que se eliminan automaticamente: «%s»"
 
-#: ../unattended-upgrade:1412
+#: ../unattended-upgrade:1716
 #, fuzzy
 #| msgid "Installing the upgrades failed!"
 msgid "Auto-removing the packages failed!"
 msgstr "Produciuse un erro ao instalar as actualizacións."
 
-#: ../unattended-upgrade:1413
+#: ../unattended-upgrade:1717
 #, fuzzy, python-format
 #| msgid "error message: '%s'"
 msgid "Error message: %s"
 msgstr "mensaxe de erro:  «%s»"
 
-#: ../unattended-upgrade:1414
+#: ../unattended-upgrade:1718
 #, fuzzy, python-format
 #| msgid "dpkg returned a error! See '%s' for details"
 msgid "dpkg returned an error! See %s for details"
 msgstr "«dpkg» devolveu un erro! Consulte «%s» para obter máis detalles."
 
-#: ../unattended-upgrade:1474
+#: ../unattended-upgrade:1808 ../unattended-upgrade:2011
+#: ../unattended-upgrade:2012
+#, fuzzy, python-format
+#| msgid "An error ocured: '%s'"
+msgid "An error occurred: %s"
+msgstr "Produciuse un erro: «%s»"
+
+#: ../unattended-upgrade:1812
+#, fuzzy
+#| msgid "An error ocured: '%s'"
+msgid "An error occurred"
+msgstr "Produciuse un erro: «%s»"
+
+#: ../unattended-upgrade:1862 ../unattended-upgrade:1866
 #, python-format
-msgid "Initial blacklisted packages: %s"
+msgid "Not running on this development release before %s"
+msgstr ""
+
+#: ../unattended-upgrade:1875 ../unattended-upgrade:1876
+msgid "Not running on the development release."
+msgstr ""
+
+#: ../unattended-upgrade:1883
+#, fuzzy, python-format
+#| msgid "Initial blacklisted packages: %s"
+msgid "Initial blacklist : %s"
 msgstr "Lista negra de paquetes inicial: %s"
 
-#: ../unattended-upgrade:1479
+#: ../unattended-upgrade:1888
 #, fuzzy, python-format
 #| msgid "Initial blacklisted packages: %s"
-msgid "Initial whitelisted packages: %s"
+msgid "Initial whitelist: %s"
 msgstr "Lista negra de paquetes inicial: %s"
 
-#: ../unattended-upgrade:1482
+#: ../unattended-upgrade:1891
 msgid "Starting unattended upgrades script"
 msgstr "Estase a comezar o script de actualizacións desatendidas"
 
-#: ../unattended-upgrade:1491
+#: ../unattended-upgrade:1894
 #, python-format
 msgid "Allowed origins are: %s"
 msgstr "Os orixes permitidos son: %s"
 
-#: ../unattended-upgrade:1507 ../unattended-upgrade:1508
+#: ../unattended-upgrade:1900
+msgid "Lock could not be acquired (another package manager running?)"
+msgstr "Non se puido bloquear (estase a executar outro xestor de paquetes?)"
+
+#: ../unattended-upgrade:1902
+msgid "Cache lock can not be acquired, exiting"
+msgstr "Non se puido bloquear a caché, sáese"
+
+#: ../unattended-upgrade:1904
+#, fuzzy
+#| msgid "Cache lock can not be acquired, exiting"
+msgid "Lock could not be acquired"
+msgstr "Non se puido bloquear a caché, sáese"
+
+#: ../unattended-upgrade:1913 ../unattended-upgrade:1914
 msgid "Unclean dpkg state detected, trying to correct"
 msgstr "Detectouse un estado «dpkg» sucio, estase a tratar de corrixir"
 
-#: ../unattended-upgrade:1519
+#: ../unattended-upgrade:1925
 #, python-format
 msgid ""
 "dpkg --configure -a output:\n"
@@ -251,44 +311,36 @@
 "Saída de «dpkg --configure -a»:\n"
 "%s"
 
-#: ../unattended-upgrade:1528
-msgid "Lock could not be acquired (another package manager running?)"
-msgstr "Non se puido bloquear (estase a executar outro xestor de paquetes?)"
-
-#: ../unattended-upgrade:1530
-msgid "Cache lock can not be acquired, exiting"
-msgstr "Non se puido bloquear a caché, sáese"
-
-#: ../unattended-upgrade:1545 ../unattended-upgrade:1546
-#: ../unattended-upgrade:1773 ../unattended-upgrade:1774
+#: ../unattended-upgrade:1940 ../unattended-upgrade:1941
+#: ../unattended-upgrade:1943 ../unattended-upgrade:2179
+#: ../unattended-upgrade:2180 ../unattended-upgrade:2182
 msgid "Cache has broken packages, exiting"
 msgstr "A caché contén paquetes rotos, sáese"
 
-#: ../unattended-upgrade:1595
+#: ../unattended-upgrade:1987
+msgid "Upgrade was interrupted"
+msgstr ""
+
+#: ../unattended-upgrade:1991
 #, fuzzy, python-format
 #| msgid "GetArchives() failed: '%s'"
 msgid "GetArchives() failed: %s"
 msgstr "Produciuse un erro en GetArchives(): «%s»"
 
-#: ../unattended-upgrade:1612 ../unattended-upgrade:1613
-#, fuzzy, python-format
-#| msgid "An error ocured: '%s'"
-msgid "An error occurred: %s"
-msgstr "Produciuse un erro: «%s»"
-
-#: ../unattended-upgrade:1615 ../unattended-upgrade:1617
+#: ../unattended-upgrade:2014 ../unattended-upgrade:2016
+#: ../unattended-upgrade:2019
 #, fuzzy, python-format
 #| msgid "The URI '%s' failed to download, aborting"
 msgid "The URI %s failed to download, aborting"
 msgstr "Produciuse un erro ao descargar a URI «%s», interrómpese"
 
-#: ../unattended-upgrade:1621
+#: ../unattended-upgrade:2022 ../unattended-upgrade:2027
 #, fuzzy, python-format
 #| msgid "Download finished, but file '%s' not there?!?"
 msgid "Download finished, but file %s not there?!?"
 msgstr "A descarga finalizou, pero o ficheiro «%s» non está aí."
 
-#: ../unattended-upgrade:1637 ../unattended-upgrade:1641
+#: ../unattended-upgrade:2047 ../unattended-upgrade:2051
 #, fuzzy, python-format
 #| msgid "Package '%s' has conffile prompt and needs to be upgraded manually"
 msgid "Package %s has conffile prompt and needs to be upgraded manually"
@@ -296,18 +348,18 @@
 "O paquete «%s» ten unha petición acerca dos ficheiros de configuración e "
 "precisa ser actualizado manualmente"
 
-#: ../unattended-upgrade:1670
+#: ../unattended-upgrade:2082
 #, fuzzy, python-format
 #| msgid "package '%s' not upgraded"
 msgid "package %s not upgraded"
 msgstr "O paquete «%s» non foi actualizado"
 
-#: ../unattended-upgrade:1702
+#: ../unattended-upgrade:2112
 #, python-format
 msgid "Removing unused kernel packages: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1724
+#: ../unattended-upgrade:2133 ../unattended-upgrade:2137
 #, fuzzy
 #| msgid "No packages found that can be upgraded unattended"
 msgid ""
@@ -315,47 +367,54 @@
 "removals"
 msgstr "Non se atoparon paquetes que se poidan actualizar de forma desatendida"
 
-#: ../unattended-upgrade:1754
+#: ../unattended-upgrade:2160
 #, fuzzy, python-format
 #| msgid "Packages that are upgraded: %s"
 msgid "Packages that will be upgraded: %s"
 msgstr "Paquetes que se actualizan: %s"
 
-#: ../unattended-upgrade:1867
+#: ../unattended-upgrade:2270
 msgid "print debug messages"
 msgstr "escribir as menxases de depuración"
 
-#: ../unattended-upgrade:1870
+#: ../unattended-upgrade:2273
 #, fuzzy
 #| msgid "print debug messages"
 msgid "make apt/libapt print verbose debug messages"
 msgstr "escribir as menxases de depuración"
 
-#: ../unattended-upgrade:1873
+#: ../unattended-upgrade:2278
 #, fuzzy
 #| msgid "print debug messages"
 msgid "print info messages"
 msgstr "escribir as menxases de depuración"
 
-#: ../unattended-upgrade:1876
+#: ../unattended-upgrade:2281
 msgid "Simulation, download but do not install"
 msgstr "Simulación, descargar pero non instalar"
 
-#: ../unattended-upgrade:1879
+#: ../unattended-upgrade:2284
 #, fuzzy
 #| msgid "Simulation, download but do not install"
 msgid "Only download, do not even try to install."
 msgstr "Simulación, descargar pero non instalar"
 
-#: ../unattended-upgrade:1882
+#: ../unattended-upgrade:2287
+#, fuzzy
+#| msgid "Upgrade in minimal steps (and allow interrupting with SIGTERM"
+msgid ""
+"Upgrade in minimal steps (and allow interrupting with SIGTERM) (default)"
+msgstr "Actualización en pasos mínimos (e permitir interromper con SIGTERM)"
+
+#: ../unattended-upgrade:2292
 msgid "Upgrade in minimal steps (and allow interrupting with SIGTERM"
 msgstr "Actualización en pasos mínimos (e permitir interromper con SIGTERM)"
 
-#: ../unattended-upgrade:1891
+#: ../unattended-upgrade:2301
 msgid "You need to be root to run this application"
 msgstr "Precisa reiniciar para executar este aplicativo"
 
-#: ../unattended-upgrade-shutdown:76
+#: ../unattended-upgrade-shutdown:86
 #, fuzzy
 #| msgid "Unattended-upgrade in progress during shutdown, sleeping for 5s"
 msgid ""
@@ -365,26 +424,55 @@
 "A actualización desatendida está en progreso durante o apagado, durmindo "
 "durante 5s"
 
-#: ../unattended-upgrade-shutdown:140
+#: ../unattended-upgrade-shutdown:114
+msgid ""
+"Unattended-upgrades stopped. There may be upgrades left to be installed in "
+"the next run."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:167
+msgid "Stop ongoing upgrades or perform upgrades before shutdown"
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:206 ../unattended-upgrade-shutdown:263
+msgid "Unable to monitor PrepareForShutdown() signal, polling instead."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:209
+msgid ""
+"To enable monitoring the PrepareForShutdown() signal instead of polling "
+"please install the python3-gi package"
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:266
+msgid "Maybe systemd-logind service is not running."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:289
+#, fuzzy
+#| msgid "dpkg returned a error! See '%s' for details"
+msgid "Apt returned an error thus shutdown mode is disabled"
+msgstr "«dpkg» devolveu un erro! Consulte «%s» para obter máis detalles."
+
+#: ../unattended-upgrade-shutdown:291 ../unattended-upgrade-shutdown:372
 #, python-format
 msgid "error message: '%s'"
 msgstr "mensaxe de erro:  «%s»"
 
-#: ../unattended-upgrade-shutdown:150
+#: ../unattended-upgrade-shutdown:307
 #, fuzzy
 #| msgid "unattended-upgrades result for '%s'"
 msgid "Running unattended-upgrades in shutdown mode"
 msgstr "resultado da actualización desatendida para «%s»"
 
-#: ../unattended-upgrade-shutdown:176
-#, python-format
-msgid "Giving up on lockfile after %s delay"
+#: ../unattended-upgrade-shutdown:328
+#, fuzzy, python-format
+#| msgid "Giving up on lockfile after %s delay"
+msgid "Giving up on lockfile after %s minutes of delay"
 msgstr "Renunciase ao ficheiro de bloqueo tras un retardo de %s"
 
-#: ../unattended-upgrade-shutdown:189
-msgid ""
-"Unattended-upgrades stopped. There may be upgrades left to be installed in "
-"the next run."
+#: ../unattended-upgrade-shutdown:370
+msgid "Apt returned an error when loading configuration, using default values"
 msgstr ""
 
 #, fuzzy
diff -Nru unattended-upgrades-1.11/po/ja.po unattended-upgrades-1.12/po/ja.po
--- unattended-upgrades-1.11/po/ja.po	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/po/ja.po	2019-04-18 16:38:31.000000000 +0200
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: unattended-upgrades 0.36debian1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-02-23 13:17+0700\n"
+"POT-Creation-Date: 2015-07-02 12:27+0200\n"
 "PO-Revision-Date: 2016-04-14 09:31+0900\n"
 "Last-Translator: Takuma Yamada <tyamada@takumayamada.com>\n"
 "Language-Team: Japanese <debian-japanese@lists.debian.org>\n"
@@ -18,223 +18,284 @@
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: Gtranslator 2.91.6\n"
 
-#: ../unattended-upgrade:219
+#: ../unattended-upgrade:203 ../unattended-upgrade:746
+#: ../unattended-upgrade:1535
+#, fuzzy, python-format
+#| msgid "package '%s' upgradable but fails to be marked for upgrade (%s)"
+msgid "package %s upgradable but fails to be marked for upgrade (%s)"
+msgstr ""
+"パッケージ '%s' はアップグレード可能ですが、アップグレード予定にできませんで"
+"した (%s)"
+
+#: ../unattended-upgrade:301
 #, python-format
 msgid "Progress: %s %% (%s)"
 msgstr "進行状況: %s %% (%s)"
 
-#: ../unattended-upgrade:413 ../unattended-upgrade:430
+#: ../unattended-upgrade:541
+msgid ""
+"Checking if system is running on battery is skipped. Please install "
+"powermgmt-base package to check power status and skip installing updates "
+"when the system is running on battery."
+msgstr ""
+
+#: ../unattended-upgrade:549
+msgid "System is on metered connection, stopping"
+msgstr ""
+
+#: ../unattended-upgrade:552
+msgid ""
+"Checking if connection is metered is skipped. Please install python3-gi "
+"package to detect metered connections and skip downloading updates."
+msgstr ""
+
+#: ../unattended-upgrade:600 ../unattended-upgrade:617
 #, python-format
 msgid "Unable to parse %s."
 msgstr ""
 
-#: ../unattended-upgrade:517 ../unattended-upgrade:619
-#: ../unattended-upgrade-shutdown:193
+#: ../unattended-upgrade:701 ../unattended-upgrade:789
+#: ../unattended-upgrade:2230 ../unattended-upgrade-shutdown:111
 msgid "All upgrades installed"
 msgstr "全てのアップグレードがインストールされました"
 
-#: ../unattended-upgrade:519 ../unattended-upgrade:611
+#: ../unattended-upgrade:703 ../unattended-upgrade:781
 msgid "Installing the upgrades failed!"
 msgstr "アップグレードのインストールが失敗しました!"
 
-#: ../unattended-upgrade:520 ../unattended-upgrade:612
-#: ../unattended-upgrade:776 ../unattended-upgrade:778
-#: ../unattended-upgrade:1539 ../unattended-upgrade:1541
+#: ../unattended-upgrade:704 ../unattended-upgrade:782
+#: ../unattended-upgrade:1056 ../unattended-upgrade:1058
+#: ../unattended-upgrade:1933 ../unattended-upgrade:1935
 #, fuzzy, python-format
 #| msgid "error message: '%s'"
 msgid "error message: %s"
 msgstr "エラーメッセージ: '%s'"
 
-#: ../unattended-upgrade:521 ../unattended-upgrade:613
+#: ../unattended-upgrade:705 ../unattended-upgrade:783
 #, fuzzy, python-format
 #| msgid "dpkg returned a error! See '%s' for details"
 msgid "dpkg returned a error! See %s for details"
 msgstr "dpkg がエラーを返しました! 詳細は '%s' を参照してください"
 
-#: ../unattended-upgrade:775 ../unattended-upgrade:777
-#: ../unattended-upgrade:1538 ../unattended-upgrade:1540
-#: ../unattended-upgrade-shutdown:139
+#: ../unattended-upgrade:1055 ../unattended-upgrade:1057
+#: ../unattended-upgrade:1932 ../unattended-upgrade:1934
+#: ../unattended-upgrade:1937
 #, fuzzy
 #| msgid "dpkg returned an error! See '%s' for details"
 msgid "Apt returned an error, exiting"
 msgstr "dpkg がエラーを返しました! 詳細は '%s' を参照してください"
 
-#: ../unattended-upgrade:964
+#: ../unattended-upgrade:1234
 #, fuzzy
 #| msgid ""
 #| "No '/usr/bin/mail' or '/usr/sbin/sendmail',can not send mail. You "
 #| "probably want to install the 'mailx' package."
 msgid ""
-"No /usr/bin/mail or /usr/sbin/sendmail,can not send mail. You probably want "
+"No /usr/bin/mail or /usr/sbin/sendmail, can not send mail. You probably want "
 "to install the mailx package."
 msgstr ""
 "'/usr/bin/mail' または '/usr/sbin/sendmail' がないためメールを送信することが"
 "できません。おそらく 'mailx' パッケージをインストールするとよいでしょう。"
 
-#: ../unattended-upgrade:975
+#: ../unattended-upgrade:1248
 msgid "[reboot required]"
 msgstr ""
 
-#: ../unattended-upgrade:977
+#: ../unattended-upgrade:1250
 msgid "[package on hold]"
 msgstr ""
 
-#: ../unattended-upgrade:981
+#: ../unattended-upgrade:1254
 #, fuzzy, python-brace-format
 #| msgid "[reboot required] unattended-upgrades result for '%s': %s"
 msgid ""
 "{hold_flag}{reboot_flag} unattended-upgrades result for {machine}: {result}"
 msgstr "[再起動が必要] '%s' の自動アップグレード結果: %s"
 
-#: ../unattended-upgrade:985
-#, python-format
-msgid ""
-"Unattended upgrade returned: %s\n"
-"\n"
+#: ../unattended-upgrade:1258
+#, fuzzy, python-format
+#| msgid ""
+#| "Unattended upgrade returned: %s\n"
+#| "\n"
+msgid "Unattended upgrade result: %s"
 msgstr ""
 "自動アップグレードは以下を返しました: %s\n"
 "\n"
 
-#: ../unattended-upgrade:988
+#: ../unattended-upgrade:1262
+#, fuzzy
+#| msgid ""
+#| "Warning: A reboot is required to complete this upgrade.\n"
+#| "\n"
 msgid ""
-"Warning: A reboot is required to complete this upgrade.\n"
+"Warning: A reboot is required to complete this upgrade, or a previous one.\n"
 "\n"
 msgstr ""
 "警告: このアップグレードを完了するために再起動が必要です。\n"
 "\n"
 
-#: ../unattended-upgrade:990
+#: ../unattended-upgrade:1266
 msgid "Packages that were upgraded:\n"
 msgstr "アップグレードされたパッケージ:\n"
 
-#: ../unattended-upgrade:992
+#: ../unattended-upgrade:1268
 msgid "Packages that attempted to upgrade:\n"
 msgstr "アップグレードしようとしたパッケージ:\n"
 
-#: ../unattended-upgrade:996
+#: ../unattended-upgrade:1272
 msgid "Packages with upgradable origin but kept back:\n"
 msgstr "導入元からアップグレード可能ですが、バージョンを維持したパッケージ:\n"
 
-#: ../unattended-upgrade:1001
+#: ../unattended-upgrade:1279
 #, fuzzy
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that were auto-removed:\n"
 msgstr "自動削除されたパッケージ: '%s'"
 
-#: ../unattended-upgrade:1006
+#: ../unattended-upgrade:1283
 #, fuzzy
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that were kept from being auto-removed:\n"
 msgstr "自動削除されたパッケージ: '%s'"
 
-#: ../unattended-upgrade:1011
+#: ../unattended-upgrade:1287
 msgid "Package installation log:"
 msgstr "パッケージのインストールログ"
 
-#: ../unattended-upgrade:1014
+#: ../unattended-upgrade:1290
 msgid "Unattended-upgrades log:\n"
 msgstr "Unattended-upgrades ログ:\n"
 
-#: ../unattended-upgrade:1042
+#: ../unattended-upgrade:1317
 #, fuzzy, python-format
 #| msgid "Writing dpkg log to '%s'"
 msgid "Writing dpkg log to %s"
 msgstr "dpkg のログを '%s' に書き込み中"
 
-#: ../unattended-upgrade:1193
+#: ../unattended-upgrade:1469
 #, python-format
 msgid "Found %s, but not rebooting because %s is logged in."
 msgid_plural "Found %s, but not rebooting because %s are logged in."
 msgstr[0] "%s が見つかりましたが、%s がログインしているため再起動しません"
 
-#: ../unattended-upgrade:1247
-#, fuzzy, python-format
-#| msgid "package '%s' upgradable but fails to be marked for upgrade (%s)"
-msgid "package %s upgradable but fails to be marked for upgrade (%s)"
-msgstr ""
-"パッケージ '%s' はアップグレード可能ですが、アップグレード予定にできませんで"
-"した (%s)"
-
-#: ../unattended-upgrade:1323
+#: ../unattended-upgrade:1624
 #, python-format
 msgid ""
 "Keeping the following auto-removable package(s) because they include %s "
 "which is set to be kept unmodified: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1330
+#: ../unattended-upgrade:1631
 #, python-format
 msgid ""
 "Keeping auto-removable %s package(s) because it would also remove the "
 "following packages which should be kept in this step: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1336
+#: ../unattended-upgrade:1637
 #, python-format
 msgid ""
 "Keeping %s auto-removable package(s) because it would also remove the "
 "following packages which should be kept in this step: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1347
+#: ../unattended-upgrade:1647
 #, python-format
 msgid ""
 "Keeping the following auto-removable package(s) because they include %s "
 "which package is related to the running kernel: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1407
+#: ../unattended-upgrade:1710
 #, fuzzy, python-format
 #| msgid "Packages were successfully auto-removed"
 msgid "Packages that were successfully auto-removed: %s"
 msgstr "パッケージの自動削除が成功ました"
 
-#: ../unattended-upgrade:1409
+#: ../unattended-upgrade:1712
 #, fuzzy, python-format
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that are kept back: %s"
 msgstr "自動削除されたパッケージ: '%s'"
 
-#: ../unattended-upgrade:1412
+#: ../unattended-upgrade:1716
 msgid "Auto-removing the packages failed!"
 msgstr "パッケージの自動削除が失敗しました!"
 
-#: ../unattended-upgrade:1413
+#: ../unattended-upgrade:1717
 #, fuzzy, python-format
 #| msgid "Error message: '%s'"
 msgid "Error message: %s"
 msgstr "エラーメッセージ: '%s'"
 
-#: ../unattended-upgrade:1414
+#: ../unattended-upgrade:1718
 #, fuzzy, python-format
 #| msgid "dpkg returned an error! See '%s' for details"
 msgid "dpkg returned an error! See %s for details"
 msgstr "dpkg がエラーを返しました! 詳細は '%s' を参照してください"
 
-#: ../unattended-upgrade:1474
+#: ../unattended-upgrade:1808 ../unattended-upgrade:2011
+#: ../unattended-upgrade:2012
+#, fuzzy, python-format
+#| msgid "An error occurred: '%s'"
+msgid "An error occurred: %s"
+msgstr "エラー発生: '%s'"
+
+#: ../unattended-upgrade:1812
+#, fuzzy
+#| msgid "An error occurred: '%s'"
+msgid "An error occurred"
+msgstr "エラー発生: '%s'"
+
+#: ../unattended-upgrade:1862 ../unattended-upgrade:1866
 #, python-format
-msgid "Initial blacklisted packages: %s"
+msgid "Not running on this development release before %s"
+msgstr ""
+
+#: ../unattended-upgrade:1875 ../unattended-upgrade:1876
+msgid "Not running on the development release."
+msgstr ""
+
+#: ../unattended-upgrade:1883
+#, fuzzy, python-format
+#| msgid "Initial blacklisted packages: %s"
+msgid "Initial blacklist : %s"
 msgstr "初期状態でブラックリストにあるパッケージ: %s"
 
-#: ../unattended-upgrade:1479
-#, python-format
-msgid "Initial whitelisted packages: %s"
+#: ../unattended-upgrade:1888
+#, fuzzy, python-format
+#| msgid "Initial whitelisted packages: %s"
+msgid "Initial whitelist: %s"
 msgstr "初期状態でホワイトリストにあるパッケージ: %s"
 
-#: ../unattended-upgrade:1482
+#: ../unattended-upgrade:1891
 msgid "Starting unattended upgrades script"
 msgstr "自動アップグレードスクリプトを開始します"
 
-#: ../unattended-upgrade:1491
+#: ../unattended-upgrade:1894
 #, python-format
 msgid "Allowed origins are: %s"
 msgstr "許可されているパッケージ導入元: %s"
 
-#: ../unattended-upgrade:1507 ../unattended-upgrade:1508
+#: ../unattended-upgrade:1900
+msgid "Lock could not be acquired (another package manager running?)"
+msgstr "ロックが取得できませんでした (別のパッケージマネージャが実行中?)"
+
+#: ../unattended-upgrade:1902
+msgid "Cache lock can not be acquired, exiting"
+msgstr "キャッシュロックが取得できないので終了します"
+
+#: ../unattended-upgrade:1904
+#, fuzzy
+#| msgid "Cache lock can not be acquired, exiting"
+msgid "Lock could not be acquired"
+msgstr "キャッシュロックが取得できないので終了します"
+
+#: ../unattended-upgrade:1913 ../unattended-upgrade:1914
 msgid "Unclean dpkg state detected, trying to correct"
 msgstr "未消去の dpkg 状態が検出されたので、修正しようとしています"
 
-#: ../unattended-upgrade:1519
+#: ../unattended-upgrade:1925
 #, python-format
 msgid ""
 "dpkg --configure -a output:\n"
@@ -243,103 +304,102 @@
 "dpkg --configure -a output:\n"
 "%s"
 
-#: ../unattended-upgrade:1528
-msgid "Lock could not be acquired (another package manager running?)"
-msgstr "ロックが取得できませんでした (別のパッケージマネージャが実行中?)"
-
-#: ../unattended-upgrade:1530
-msgid "Cache lock can not be acquired, exiting"
-msgstr "キャッシュロックが取得できないので終了します"
-
-#: ../unattended-upgrade:1545 ../unattended-upgrade:1546
-#: ../unattended-upgrade:1773 ../unattended-upgrade:1774
+#: ../unattended-upgrade:1940 ../unattended-upgrade:1941
+#: ../unattended-upgrade:1943 ../unattended-upgrade:2179
+#: ../unattended-upgrade:2180 ../unattended-upgrade:2182
 msgid "Cache has broken packages, exiting"
 msgstr "キャッシュに壊れたパッケージがあるので終了します"
 
-#: ../unattended-upgrade:1595
+#: ../unattended-upgrade:1987
+msgid "Upgrade was interrupted"
+msgstr ""
+
+#: ../unattended-upgrade:1991
 #, fuzzy, python-format
 #| msgid "GetArchives() failed: '%s'"
 msgid "GetArchives() failed: %s"
 msgstr "GetArchives() が失敗しました: '%s'"
 
-#: ../unattended-upgrade:1612 ../unattended-upgrade:1613
-#, fuzzy, python-format
-#| msgid "An error occurred: '%s'"
-msgid "An error occurred: %s"
-msgstr "エラー発生: '%s'"
-
-#: ../unattended-upgrade:1615 ../unattended-upgrade:1617
+#: ../unattended-upgrade:2014 ../unattended-upgrade:2016
+#: ../unattended-upgrade:2019
 #, fuzzy, python-format
 #| msgid "The URI '%s' failed to download, aborting"
 msgid "The URI %s failed to download, aborting"
 msgstr "URI '%s' からダウンロード出来ないので中断します"
 
-#: ../unattended-upgrade:1621
+#: ../unattended-upgrade:2022 ../unattended-upgrade:2027
 #, fuzzy, python-format
 #| msgid "Download finished, but file '%s' not there?!?"
 msgid "Download finished, but file %s not there?!?"
 msgstr "ダウンロード完了、しかしファイル '%s' がありません?!?"
 
-#: ../unattended-upgrade:1637 ../unattended-upgrade:1641
+#: ../unattended-upgrade:2047 ../unattended-upgrade:2051
 #, fuzzy, python-format
 #| msgid "Package '%s' has conffile prompt and needs to be upgraded manually"
 msgid "Package %s has conffile prompt and needs to be upgraded manually"
 msgstr ""
 "パッケージ '%s' には手動で確認とアップグレードが必要な設定ファイルがあります"
 
-#: ../unattended-upgrade:1670
+#: ../unattended-upgrade:2082
 #, fuzzy, python-format
 #| msgid "package '%s' not upgraded"
 msgid "package %s not upgraded"
 msgstr "パッケージ '%s' はアップグレードされませんでした"
 
-#: ../unattended-upgrade:1702
+#: ../unattended-upgrade:2112
 #, python-format
 msgid "Removing unused kernel packages: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1724
+#: ../unattended-upgrade:2133 ../unattended-upgrade:2137
 msgid ""
 "No packages found that can be upgraded unattended and no pending auto-"
 "removals"
 msgstr "自動更新可能なパッケージおよび保留中の自動削除が見つかりません"
 
-#: ../unattended-upgrade:1754
+#: ../unattended-upgrade:2160
 #, python-format
 msgid "Packages that will be upgraded: %s"
 msgstr "アップグレード予定のパッケージ: %s"
 
-#: ../unattended-upgrade:1867
+#: ../unattended-upgrade:2270
 msgid "print debug messages"
 msgstr "デバッグメッセージを出力"
 
-#: ../unattended-upgrade:1870
+#: ../unattended-upgrade:2273
 msgid "make apt/libapt print verbose debug messages"
 msgstr "apt/libapt の詳細なデバッグメッセージを出力"
 
-#: ../unattended-upgrade:1873
+#: ../unattended-upgrade:2278
 msgid "print info messages"
 msgstr "情報メッセージを出力"
 
-#: ../unattended-upgrade:1876
+#: ../unattended-upgrade:2281
 msgid "Simulation, download but do not install"
 msgstr "シミュレーションで、ダウンロードをしますがインストールはしません"
 
-#: ../unattended-upgrade:1879
+#: ../unattended-upgrade:2284
 #, fuzzy
 #| msgid "Simulation, download but do not install"
 msgid "Only download, do not even try to install."
 msgstr "シミュレーションで、ダウンロードをしますがインストールはしません"
 
-#: ../unattended-upgrade:1882
+#: ../unattended-upgrade:2287
+#, fuzzy
+#| msgid "Upgrade in minimal steps (and allow interrupting with SIGTERM"
+msgid ""
+"Upgrade in minimal steps (and allow interrupting with SIGTERM) (default)"
+msgstr "最小限の手順でアップグレード (SIGTERM で中断できます"
+
+#: ../unattended-upgrade:2292
 msgid "Upgrade in minimal steps (and allow interrupting with SIGTERM"
 msgstr "最小限の手順でアップグレード (SIGTERM で中断できます"
 
-#: ../unattended-upgrade:1891
+#: ../unattended-upgrade:2301
 msgid "You need to be root to run this application"
 msgstr "このアプリケーションは管理者権限で実行する必要があります"
 
-#: ../unattended-upgrade-shutdown:76
+#: ../unattended-upgrade-shutdown:86
 #, fuzzy
 #| msgid "Unattended-upgrade in progress during shutdown, sleeping for 5s"
 msgid ""
@@ -347,24 +407,53 @@
 "computer"
 msgstr "シャットダウン時に進行中の unattended-upgrade、5 秒間スリープします"
 
-#: ../unattended-upgrade-shutdown:140
+#: ../unattended-upgrade-shutdown:114
+msgid ""
+"Unattended-upgrades stopped. There may be upgrades left to be installed in "
+"the next run."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:167
+msgid "Stop ongoing upgrades or perform upgrades before shutdown"
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:206 ../unattended-upgrade-shutdown:263
+msgid "Unable to monitor PrepareForShutdown() signal, polling instead."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:209
+msgid ""
+"To enable monitoring the PrepareForShutdown() signal instead of polling "
+"please install the python3-gi package"
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:266
+msgid "Maybe systemd-logind service is not running."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:289
+#, fuzzy
+#| msgid "dpkg returned an error! See '%s' for details"
+msgid "Apt returned an error thus shutdown mode is disabled"
+msgstr "dpkg がエラーを返しました! 詳細は '%s' を参照してください"
+
+#: ../unattended-upgrade-shutdown:291 ../unattended-upgrade-shutdown:372
 #, python-format
 msgid "error message: '%s'"
 msgstr "エラーメッセージ: '%s'"
 
-#: ../unattended-upgrade-shutdown:150
+#: ../unattended-upgrade-shutdown:307
 msgid "Running unattended-upgrades in shutdown mode"
 msgstr "unattended-upgrades はシャットダウンモードで実行中です"
 
-#: ../unattended-upgrade-shutdown:176
-#, python-format
-msgid "Giving up on lockfile after %s delay"
+#: ../unattended-upgrade-shutdown:328
+#, fuzzy, python-format
+#| msgid "Giving up on lockfile after %s delay"
+msgid "Giving up on lockfile after %s minutes of delay"
 msgstr "%s 遅延後にロックファイルをあきらめます"
 
-#: ../unattended-upgrade-shutdown:189
-msgid ""
-"Unattended-upgrades stopped. There may be upgrades left to be installed in "
-"the next run."
+#: ../unattended-upgrade-shutdown:370
+msgid "Apt returned an error when loading configuration, using default values"
 msgstr ""
 
 #, fuzzy
diff -Nru unattended-upgrades-1.11/po/nl.po unattended-upgrades-1.12/po/nl.po
--- unattended-upgrades-1.11/po/nl.po	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/po/nl.po	2019-04-18 16:38:31.000000000 +0200
@@ -20,60 +20,89 @@
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Generator: Poedit 1.6.10\n"
 
-#: ../unattended-upgrade:219
+#: ../unattended-upgrade:203 ../unattended-upgrade:746
+#: ../unattended-upgrade:1535
+#, python-format
+msgid "package %s upgradable but fails to be marked for upgrade (%s)"
+msgstr ""
+"pakket %s kan opgewaardeerd worden, maar het lukt niet om het te markeren "
+"voor opwaardering (%s)"
+
+#: ../unattended-upgrade:301
 #, python-format
 msgid "Progress: %s %% (%s)"
 msgstr "Voortgang: %s %% (%s)"
 
-#: ../unattended-upgrade:413 ../unattended-upgrade:430
+#: ../unattended-upgrade:541
+msgid ""
+"Checking if system is running on battery is skipped. Please install "
+"powermgmt-base package to check power status and skip installing updates "
+"when the system is running on battery."
+msgstr ""
+
+#: ../unattended-upgrade:549
+msgid "System is on metered connection, stopping"
+msgstr ""
+
+#: ../unattended-upgrade:552
+msgid ""
+"Checking if connection is metered is skipped. Please install python3-gi "
+"package to detect metered connections and skip downloading updates."
+msgstr ""
+
+#: ../unattended-upgrade:600 ../unattended-upgrade:617
 #, python-format
 msgid "Unable to parse %s."
 msgstr "Kan %s niet ontleden."
 
-#: ../unattended-upgrade:517 ../unattended-upgrade:619
-#: ../unattended-upgrade-shutdown:193
+#: ../unattended-upgrade:701 ../unattended-upgrade:789
+#: ../unattended-upgrade:2230 ../unattended-upgrade-shutdown:111
 msgid "All upgrades installed"
 msgstr "Alle opwaarderingen zijn geïnstalleerd."
 
-#: ../unattended-upgrade:519 ../unattended-upgrade:611
+#: ../unattended-upgrade:703 ../unattended-upgrade:781
 msgid "Installing the upgrades failed!"
 msgstr "De installatie van de opgewaardeerde pakketten is mislukt!"
 
-#: ../unattended-upgrade:520 ../unattended-upgrade:612
-#: ../unattended-upgrade:776 ../unattended-upgrade:778
-#: ../unattended-upgrade:1539 ../unattended-upgrade:1541
+#: ../unattended-upgrade:704 ../unattended-upgrade:782
+#: ../unattended-upgrade:1056 ../unattended-upgrade:1058
+#: ../unattended-upgrade:1933 ../unattended-upgrade:1935
 #, python-format
 msgid "error message: %s"
 msgstr "Foutmelding: %s"
 
-#: ../unattended-upgrade:521 ../unattended-upgrade:613
+#: ../unattended-upgrade:705 ../unattended-upgrade:783
 #, python-format
 msgid "dpkg returned a error! See %s for details"
 msgstr "Dpkg signaleerde een fout! Zie %s voor details."
 
-#: ../unattended-upgrade:775 ../unattended-upgrade:777
-#: ../unattended-upgrade:1538 ../unattended-upgrade:1540
-#: ../unattended-upgrade-shutdown:139
+#: ../unattended-upgrade:1055 ../unattended-upgrade:1057
+#: ../unattended-upgrade:1932 ../unattended-upgrade:1934
+#: ../unattended-upgrade:1937
 msgid "Apt returned an error, exiting"
 msgstr "Apt gaf een foutmelding; er wordt afgesloten."
 
-#: ../unattended-upgrade:964
+#: ../unattended-upgrade:1234
+#, fuzzy
+#| msgid ""
+#| "No /usr/bin/mail or /usr/sbin/sendmail,can not send mail. You probably "
+#| "want to install the mailx package."
 msgid ""
-"No /usr/bin/mail or /usr/sbin/sendmail,can not send mail. You probably want "
+"No /usr/bin/mail or /usr/sbin/sendmail, can not send mail. You probably want "
 "to install the mailx package."
 msgstr ""
 "/usr/bin/mail en /usr/sbin/sendmail bestaan niet, waardoor e-mail niet "
 "verzonden kan worden. U kunt het beste het pakket mailx installeren."
 
-#: ../unattended-upgrade:975
+#: ../unattended-upgrade:1248
 msgid "[reboot required]"
 msgstr "[herstart is vereist]"
 
-#: ../unattended-upgrade:977
+#: ../unattended-upgrade:1250
 msgid "[package on hold]"
 msgstr "[pakket is vastgezet]"
 
-#: ../unattended-upgrade:981
+#: ../unattended-upgrade:1254
 #, python-brace-format
 msgid ""
 "{hold_flag}{reboot_flag} unattended-upgrades result for {machine}: {result}"
@@ -81,74 +110,72 @@
 "{hold_flag}{reboot_flag} resultaat van unattended-upgrades voor {machine}: "
 "{result}"
 
-#: ../unattended-upgrade:985
-#, python-format
-msgid ""
-"Unattended upgrade returned: %s\n"
-"\n"
+#: ../unattended-upgrade:1258
+#, fuzzy, python-format
+#| msgid ""
+#| "Unattended upgrade returned: %s\n"
+#| "\n"
+msgid "Unattended upgrade result: %s"
 msgstr ""
 "Opwaardering zonder toezicht rapporteerde: %s\n"
 "\n"
 
-#: ../unattended-upgrade:988
+#: ../unattended-upgrade:1262
+#, fuzzy
+#| msgid ""
+#| "Warning: A reboot is required to complete this upgrade.\n"
+#| "\n"
 msgid ""
-"Warning: A reboot is required to complete this upgrade.\n"
+"Warning: A reboot is required to complete this upgrade, or a previous one.\n"
 "\n"
 msgstr ""
 "Waarschuwing: een herstart is noodzakelijk om deze opwaardering af te "
 "ronden.\n"
 "\n"
 
-#: ../unattended-upgrade:990
+#: ../unattended-upgrade:1266
 msgid "Packages that were upgraded:\n"
 msgstr "Pakketten die opgewaardeerd werden:\n"
 
-#: ../unattended-upgrade:992
+#: ../unattended-upgrade:1268
 msgid "Packages that attempted to upgrade:\n"
 msgstr "Pakketten waarvoor een opwaardering geprobeerd werd:\n"
 
-#: ../unattended-upgrade:996
+#: ../unattended-upgrade:1272
 msgid "Packages with upgradable origin but kept back:\n"
 msgstr ""
 "Pakketten die volgens de pakketbron opgewaardeerd konden worden, maar "
 "gehandhaafd werden:\n"
 
-#: ../unattended-upgrade:1001
+#: ../unattended-upgrade:1279
 msgid "Packages that were auto-removed:\n"
 msgstr "Pakketten die automatisch verwijderd werden:\n"
 
-#: ../unattended-upgrade:1006
+#: ../unattended-upgrade:1283
 msgid "Packages that were kept from being auto-removed:\n"
 msgstr "Pakketten waarvoor de automatische verwijdering tegengehouden werd:\n"
 
-#: ../unattended-upgrade:1011
+#: ../unattended-upgrade:1287
 msgid "Package installation log:"
 msgstr "Log van de pakketinstallatie:"
 
-#: ../unattended-upgrade:1014
+#: ../unattended-upgrade:1290
 msgid "Unattended-upgrades log:\n"
 msgstr "Log van unattended-upgrades:\n"
 
-#: ../unattended-upgrade:1042
+#: ../unattended-upgrade:1317
 #, python-format
 msgid "Writing dpkg log to %s"
 msgstr "Log van dpkg wordt weggeschreven naar %s"
 
-#: ../unattended-upgrade:1193
+#: ../unattended-upgrade:1469
 #, python-format
 msgid "Found %s, but not rebooting because %s is logged in."
 msgid_plural "Found %s, but not rebooting because %s are logged in."
 msgstr[0] "%s gevonden, maar er wordt niet herstart omdat %s ingelogd is."
 msgstr[1] "%s gevonden, maar er wordt niet herstart omdat %s ingelogd zijn."
 
-#: ../unattended-upgrade:1247
-#, python-format
-msgid "package %s upgradable but fails to be marked for upgrade (%s)"
-msgstr ""
-"pakket %s kan opgewaardeerd worden, maar het lukt niet om het te markeren "
-"voor opwaardering (%s)"
-
-#: ../unattended-upgrade:1323
+#: ../unattended-upgrade:1624
 #, python-format
 msgid ""
 "Keeping the following auto-removable package(s) because they include %s "
@@ -157,7 +184,7 @@
 "De volgende automatisch verwijderbare pakketten worden behouden omdat zij %s "
 "bevatten waarvoor ingesteld is dat dat ongewijzigd moet blijven: %s"
 
-#: ../unattended-upgrade:1330
+#: ../unattended-upgrade:1631
 #, python-format
 msgid ""
 "Keeping auto-removable %s package(s) because it would also remove the "
@@ -167,7 +194,7 @@
 "ook de volgende pakketten zou verwijderen die in deze stap behouden zouden "
 "moeten worden: %s"
 
-#: ../unattended-upgrade:1336
+#: ../unattended-upgrade:1637
 #, python-format
 msgid ""
 "Keeping %s auto-removable package(s) because it would also remove the "
@@ -177,7 +204,7 @@
 "ook de volgende pakketten zou verwijderen die in deze stap behouden zouden "
 "moeten worden: %s"
 
-#: ../unattended-upgrade:1347
+#: ../unattended-upgrade:1647
 #, python-format
 msgid ""
 "Keeping the following auto-removable package(s) because they include %s "
@@ -186,56 +213,97 @@
 "Het volgende automatisch verwijderbare pakket(ten) wordt behouden omdat het "
 "%s bevat, welk pakket verband houdt met de actieve kernel: %s"
 
-#: ../unattended-upgrade:1407
+#: ../unattended-upgrade:1710
 #, python-format
 msgid "Packages that were successfully auto-removed: %s"
 msgstr "Pakketten die met succes automatisch verwijderd werden: %s"
 
-#: ../unattended-upgrade:1409
+#: ../unattended-upgrade:1712
 #, python-format
 msgid "Packages that are kept back: %s"
 msgstr "Pakketten die vastgehouden werden: %s"
 
-#: ../unattended-upgrade:1412
+#: ../unattended-upgrade:1716
 msgid "Auto-removing the packages failed!"
 msgstr "Het automatisch verwijderen van de pakketten mislukte!"
 
-#: ../unattended-upgrade:1413
+#: ../unattended-upgrade:1717
 #, python-format
 msgid "Error message: %s"
 msgstr "Foutmelding: %s"
 
-#: ../unattended-upgrade:1414
+#: ../unattended-upgrade:1718
 #, python-format
 msgid "dpkg returned an error! See %s for details"
 msgstr "Dpkg gaf een foutmelding! Zie %s voor details."
 
-#: ../unattended-upgrade:1474
+#: ../unattended-upgrade:1808 ../unattended-upgrade:2011
+#: ../unattended-upgrade:2012
 #, python-format
-msgid "Initial blacklisted packages: %s"
-msgstr "Pakketten die bij aanvang op de zwarte lijst staan: %s"
+msgid "An error occurred: %s"
+msgstr "Er deed zich een fout voor: %s"
 
-#: ../unattended-upgrade:1479
+#: ../unattended-upgrade:1812
+#, fuzzy
+#| msgid "An error occurred: %s"
+msgid "An error occurred"
+msgstr "Er deed zich een fout voor: %s"
+
+#: ../unattended-upgrade:1862 ../unattended-upgrade:1866
 #, python-format
-msgid "Initial whitelisted packages: %s"
+msgid "Not running on this development release before %s"
+msgstr ""
+
+#: ../unattended-upgrade:1875 ../unattended-upgrade:1876
+msgid "Not running on the development release."
+msgstr ""
+
+#: ../unattended-upgrade:1883
+#, fuzzy, python-format
+#| msgid "Initial blacklisted packages: %s"
+msgid "Initial blacklist : %s"
+msgstr "Pakketten die bij aanvang op de zwarte lijst staan: %s"
+
+#: ../unattended-upgrade:1888
+#, fuzzy, python-format
+#| msgid "Initial whitelisted packages: %s"
+msgid "Initial whitelist: %s"
 msgstr "Pakketten die bij aanvang op de witte lijst staan: %s"
 
-#: ../unattended-upgrade:1482
+#: ../unattended-upgrade:1891
 msgid "Starting unattended upgrades script"
 msgstr "Script voor opwaarderingen zonder toezicht wordt gestart."
 
-#: ../unattended-upgrade:1491
+#: ../unattended-upgrade:1894
 #, python-format
 msgid "Allowed origins are: %s"
 msgstr "Toegelaten pakketbronnen zijn: %s"
 
-#: ../unattended-upgrade:1507 ../unattended-upgrade:1508
+#: ../unattended-upgrade:1900
+msgid "Lock could not be acquired (another package manager running?)"
+msgstr ""
+"Vergrendeling kon niet worden doorgevoerd. Is een ander programma voor "
+"pakketbeheer actief?"
+
+#: ../unattended-upgrade:1902
+msgid "Cache lock can not be acquired, exiting"
+msgstr ""
+"Vergrendeling van de cache kan niet worden doorgevoerd; er wordt afgesloten."
+
+#: ../unattended-upgrade:1904
+#, fuzzy
+#| msgid "Cache lock can not be acquired, exiting"
+msgid "Lock could not be acquired"
+msgstr ""
+"Vergrendeling van de cache kan niet worden doorgevoerd; er wordt afgesloten."
+
+#: ../unattended-upgrade:1913 ../unattended-upgrade:1914
 msgid "Unclean dpkg state detected, trying to correct"
 msgstr ""
 "Dpkg werd in een onzuivere toestand aangetroffen; een poging tot herstel "
 "wordt ondernomen."
 
-#: ../unattended-upgrade:1519
+#: ../unattended-upgrade:1925
 #, python-format
 msgid ""
 "dpkg --configure -a output:\n"
@@ -244,59 +312,49 @@
 "Uitvoer van 'dpkg --configure -a':\n"
 "%s"
 
-#: ../unattended-upgrade:1528
-msgid "Lock could not be acquired (another package manager running?)"
-msgstr ""
-"Vergrendeling kon niet worden doorgevoerd. Is een ander programma voor "
-"pakketbeheer actief?"
-
-#: ../unattended-upgrade:1530
-msgid "Cache lock can not be acquired, exiting"
-msgstr ""
-"Vergrendeling van de cache kan niet worden doorgevoerd; er wordt afgesloten."
-
-#: ../unattended-upgrade:1545 ../unattended-upgrade:1546
-#: ../unattended-upgrade:1773 ../unattended-upgrade:1774
+#: ../unattended-upgrade:1940 ../unattended-upgrade:1941
+#: ../unattended-upgrade:1943 ../unattended-upgrade:2179
+#: ../unattended-upgrade:2180 ../unattended-upgrade:2182
 msgid "Cache has broken packages, exiting"
 msgstr "De cache bevat defecte pakketten; er wordt afgesloten."
 
-#: ../unattended-upgrade:1595
+#: ../unattended-upgrade:1987
+msgid "Upgrade was interrupted"
+msgstr ""
+
+#: ../unattended-upgrade:1991
 #, python-format
 msgid "GetArchives() failed: %s"
 msgstr "GetArchives() mislukte: %s"
 
-#: ../unattended-upgrade:1612 ../unattended-upgrade:1613
-#, python-format
-msgid "An error occurred: %s"
-msgstr "Er deed zich een fout voor: %s"
-
-#: ../unattended-upgrade:1615 ../unattended-upgrade:1617
+#: ../unattended-upgrade:2014 ../unattended-upgrade:2016
+#: ../unattended-upgrade:2019
 #, python-format
 msgid "The URI %s failed to download, aborting"
 msgstr "Het downloaden van URI %s mislukte; er wordt afgebroken."
 
-#: ../unattended-upgrade:1621
+#: ../unattended-upgrade:2022 ../unattended-upgrade:2027
 #, python-format
 msgid "Download finished, but file %s not there?!?"
 msgstr "Download eindigde, maar het bestand %s werd daarna niet aangetroffen!"
 
-#: ../unattended-upgrade:1637 ../unattended-upgrade:1641
+#: ../unattended-upgrade:2047 ../unattended-upgrade:2051
 #, python-format
 msgid "Package %s has conffile prompt and needs to be upgraded manually"
 msgstr ""
 "Pakket %s heeft een configuratievraag en moet handmatig opgewaardeerd worden."
 
-#: ../unattended-upgrade:1670
+#: ../unattended-upgrade:2082
 #, python-format
 msgid "package %s not upgraded"
 msgstr "pakket %s werd niet opgewaardeerd"
 
-#: ../unattended-upgrade:1702
+#: ../unattended-upgrade:2112
 #, python-format
 msgid "Removing unused kernel packages: %s"
 msgstr "Ongebruikte kernelpakketten worden verwijderd: %s"
 
-#: ../unattended-upgrade:1724
+#: ../unattended-upgrade:2133 ../unattended-upgrade:2137
 msgid ""
 "No packages found that can be upgraded unattended and no pending auto-"
 "removals"
@@ -305,43 +363,52 @@
 "worden. Tevens zijn er geen pakketten die nog automatisch verwijderd moeten "
 "worden."
 
-#: ../unattended-upgrade:1754
+#: ../unattended-upgrade:2160
 #, python-format
 msgid "Packages that will be upgraded: %s"
 msgstr "Pakketten die opgewaardeerd zullen worden: %s"
 
-#: ../unattended-upgrade:1867
+#: ../unattended-upgrade:2270
 msgid "print debug messages"
 msgstr "geef de debugmeldingen weer"
 
-#: ../unattended-upgrade:1870
+#: ../unattended-upgrade:2273
 msgid "make apt/libapt print verbose debug messages"
 msgstr "laat apt/libapt uitvoerige debugmeldingen geven"
 
-#: ../unattended-upgrade:1873
+#: ../unattended-upgrade:2278
 msgid "print info messages"
 msgstr "geef informatieve berichten weer"
 
-#: ../unattended-upgrade:1876
+#: ../unattended-upgrade:2281
 msgid "Simulation, download but do not install"
 msgstr "Simulatie, download maar installeer niet."
 
-#: ../unattended-upgrade:1879
+#: ../unattended-upgrade:2284
 msgid "Only download, do not even try to install."
 msgstr "Download, maar doe zelfs geen poging te installeren."
 
-#: ../unattended-upgrade:1882
+#: ../unattended-upgrade:2287
+#, fuzzy
+#| msgid "Upgrade in minimal steps (and allow interrupting with SIGTERM"
+msgid ""
+"Upgrade in minimal steps (and allow interrupting with SIGTERM) (default)"
+msgstr ""
+"Waardeer in zo weinig mogelijk stappen op en sta daarbij het onderbreken met "
+"SIGTERM toe."
+
+#: ../unattended-upgrade:2292
 msgid "Upgrade in minimal steps (and allow interrupting with SIGTERM"
 msgstr ""
 "Waardeer in zo weinig mogelijk stappen op en sta daarbij het onderbreken met "
 "SIGTERM toe."
 
-#: ../unattended-upgrade:1891
+#: ../unattended-upgrade:2301
 msgid "You need to be root to run this application"
 msgstr ""
 "U dient de systeembeheerder 'root' te zijn om deze toepassing uit te voeren."
 
-#: ../unattended-upgrade-shutdown:76
+#: ../unattended-upgrade-shutdown:86
 msgid ""
 "Unattended-upgrade in progress during shutdown, please don't turn off the "
 "computer"
@@ -349,26 +416,55 @@
 "Unattended-upgrades is actief bij het afsluiten van de computer; zet de "
 "computer niet uit."
 
-#: ../unattended-upgrade-shutdown:140
+#: ../unattended-upgrade-shutdown:114
+msgid ""
+"Unattended-upgrades stopped. There may be upgrades left to be installed in "
+"the next run."
+msgstr ""
+"Unattended-upgrades is gestopt. Mogelijk zijn er nog opwaarderingen die "
+"doorgevoerd zullen moeten worden bij de volgende uitvoering."
+
+#: ../unattended-upgrade-shutdown:167
+msgid "Stop ongoing upgrades or perform upgrades before shutdown"
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:206 ../unattended-upgrade-shutdown:263
+msgid "Unable to monitor PrepareForShutdown() signal, polling instead."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:209
+msgid ""
+"To enable monitoring the PrepareForShutdown() signal instead of polling "
+"please install the python3-gi package"
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:266
+msgid "Maybe systemd-logind service is not running."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:289
+#, fuzzy
+#| msgid "Apt returned an error, exiting"
+msgid "Apt returned an error thus shutdown mode is disabled"
+msgstr "Apt gaf een foutmelding; er wordt afgesloten."
+
+#: ../unattended-upgrade-shutdown:291 ../unattended-upgrade-shutdown:372
 #, python-format
 msgid "error message: '%s'"
 msgstr "Foutmelding: '%s'"
 
-#: ../unattended-upgrade-shutdown:150
+#: ../unattended-upgrade-shutdown:307
 msgid "Running unattended-upgrades in shutdown mode"
 msgstr "Unattended-upgrades wordt in afsluitmodus uitgevoerd."
 
 # Hulpbronnen:
 # - https://en.wikipedia.org/wiki/File_locking#Lock_files
-#: ../unattended-upgrade-shutdown:176
-#, python-format
-msgid "Giving up on lockfile after %s delay"
+#: ../unattended-upgrade-shutdown:328
+#, fuzzy, python-format
+#| msgid "Giving up on lockfile after %s delay"
+msgid "Giving up on lockfile after %s minutes of delay"
 msgstr "Vergrendelingsbestand wordt verwijderd na een oponthoud van %s."
 
-#: ../unattended-upgrade-shutdown:189
-msgid ""
-"Unattended-upgrades stopped. There may be upgrades left to be installed in "
-"the next run."
+#: ../unattended-upgrade-shutdown:370
+msgid "Apt returned an error when loading configuration, using default values"
 msgstr ""
-"Unattended-upgrades is gestopt. Mogelijk zijn er nog opwaarderingen die "
-"doorgevoerd zullen moeten worden bij de volgende uitvoering."
diff -Nru unattended-upgrades-1.11/po/pt_BR.po unattended-upgrades-1.12/po/pt_BR.po
--- unattended-upgrades-1.11/po/pt_BR.po	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/po/pt_BR.po	2019-04-18 16:38:31.000000000 +0200
@@ -2,7 +2,7 @@
 msgstr ""
 "Project-Id-Version: unattended-upgrades-0.61\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-02-23 13:17+0700\n"
+"POT-Creation-Date: 2015-07-02 12:27+0200\n"
 "PO-Revision-Date: 2012-06-14 08:25-0300\n"
 "Last-Translator: Sérgio Cipolla <secipolla@gmail.com>\n"
 "Language-Team: \n"
@@ -13,68 +13,93 @@
 "X-Poedit-Language: Portuguese\n"
 "X-Poedit-Country: BRAZIL\n"
 
-#: ../unattended-upgrade:219
+#: ../unattended-upgrade:203 ../unattended-upgrade:746
+#: ../unattended-upgrade:1535
+#, fuzzy, python-format
+#| msgid "package '%s' upgradable but fails to be marked for upgrade (%s)"
+msgid "package %s upgradable but fails to be marked for upgrade (%s)"
+msgstr ""
+"o pacote '%s' é atualizável mas não é possível marcá-lo para atualização (%s)"
+
+#: ../unattended-upgrade:301
 #, python-format
 msgid "Progress: %s %% (%s)"
 msgstr "Progresso: %s %% (%s)"
 
-#: ../unattended-upgrade:413 ../unattended-upgrade:430
+#: ../unattended-upgrade:541
+msgid ""
+"Checking if system is running on battery is skipped. Please install "
+"powermgmt-base package to check power status and skip installing updates "
+"when the system is running on battery."
+msgstr ""
+
+#: ../unattended-upgrade:549
+msgid "System is on metered connection, stopping"
+msgstr ""
+
+#: ../unattended-upgrade:552
+msgid ""
+"Checking if connection is metered is skipped. Please install python3-gi "
+"package to detect metered connections and skip downloading updates."
+msgstr ""
+
+#: ../unattended-upgrade:600 ../unattended-upgrade:617
 #, python-format
 msgid "Unable to parse %s."
 msgstr ""
 
-#: ../unattended-upgrade:517 ../unattended-upgrade:619
-#: ../unattended-upgrade-shutdown:193
+#: ../unattended-upgrade:701 ../unattended-upgrade:789
+#: ../unattended-upgrade:2230 ../unattended-upgrade-shutdown:111
 msgid "All upgrades installed"
 msgstr "Todas as atualizações instaladas"
 
-#: ../unattended-upgrade:519 ../unattended-upgrade:611
+#: ../unattended-upgrade:703 ../unattended-upgrade:781
 msgid "Installing the upgrades failed!"
 msgstr "A instalação das atualizações falhou!"
 
-#: ../unattended-upgrade:520 ../unattended-upgrade:612
-#: ../unattended-upgrade:776 ../unattended-upgrade:778
-#: ../unattended-upgrade:1539 ../unattended-upgrade:1541
+#: ../unattended-upgrade:704 ../unattended-upgrade:782
+#: ../unattended-upgrade:1056 ../unattended-upgrade:1058
+#: ../unattended-upgrade:1933 ../unattended-upgrade:1935
 #, fuzzy, python-format
 #| msgid "error message: '%s'"
 msgid "error message: %s"
 msgstr "mensagem de erro: '%s'"
 
-#: ../unattended-upgrade:521 ../unattended-upgrade:613
+#: ../unattended-upgrade:705 ../unattended-upgrade:783
 #, fuzzy, python-format
 #| msgid "dpkg returned a error! See '%s' for details"
 msgid "dpkg returned a error! See %s for details"
 msgstr "O dpkg retornou um erro! Veja '%s' para mais detalhes"
 
-#: ../unattended-upgrade:775 ../unattended-upgrade:777
-#: ../unattended-upgrade:1538 ../unattended-upgrade:1540
-#: ../unattended-upgrade-shutdown:139
+#: ../unattended-upgrade:1055 ../unattended-upgrade:1057
+#: ../unattended-upgrade:1932 ../unattended-upgrade:1934
+#: ../unattended-upgrade:1937
 #, fuzzy
 #| msgid "dpkg returned a error! See '%s' for details"
 msgid "Apt returned an error, exiting"
 msgstr "O dpkg retornou um erro! Veja '%s' para mais detalhes"
 
-#: ../unattended-upgrade:964
+#: ../unattended-upgrade:1234
 #, fuzzy
 #| msgid ""
 #| "No '/usr/bin/mail', can not send mail. You probably want to install the "
 #| "'mailx' package."
 msgid ""
-"No /usr/bin/mail or /usr/sbin/sendmail,can not send mail. You probably want "
+"No /usr/bin/mail or /usr/sbin/sendmail, can not send mail. You probably want "
 "to install the mailx package."
 msgstr ""
 "'/usr/bin/mail' não encontrado. Incapaz de enviar email. Você provavelmente "
 "gostaria de instalar o pacote 'mailx'."
 
-#: ../unattended-upgrade:975
+#: ../unattended-upgrade:1248
 msgid "[reboot required]"
 msgstr ""
 
-#: ../unattended-upgrade:977
+#: ../unattended-upgrade:1250
 msgid "[package on hold]"
 msgstr ""
 
-#: ../unattended-upgrade:981
+#: ../unattended-upgrade:1254
 #, fuzzy, python-brace-format
 #| msgid "[reboot required] unattended-upgrades result for '%s'"
 msgid ""
@@ -83,163 +108,199 @@
 "[É necessário reiniciar o computador] Resultado da atualização "
 "desacompanhada para '%s'"
 
-#: ../unattended-upgrade:985
-#, python-format
-msgid ""
-"Unattended upgrade returned: %s\n"
-"\n"
+#: ../unattended-upgrade:1258
+#, fuzzy, python-format
+#| msgid ""
+#| "Unattended upgrade returned: %s\n"
+#| "\n"
+msgid "Unattended upgrade result: %s"
 msgstr ""
 "A atualização desacompanhada retornou: %s\n"
 "\n"
 
-#: ../unattended-upgrade:988
+#: ../unattended-upgrade:1262
+#, fuzzy
+#| msgid ""
+#| "Warning: A reboot is required to complete this upgrade.\n"
+#| "\n"
 msgid ""
-"Warning: A reboot is required to complete this upgrade.\n"
+"Warning: A reboot is required to complete this upgrade, or a previous one.\n"
 "\n"
 msgstr ""
 "Atenção: é necessário reiniciar o computador para completar esta "
 "atualização.\n"
 "\n"
 
-#: ../unattended-upgrade:990
+#: ../unattended-upgrade:1266
 #, fuzzy
 #| msgid "Packages that are upgraded:\n"
 msgid "Packages that were upgraded:\n"
 msgstr "Pacotes atualizados:\n"
 
-#: ../unattended-upgrade:992
+#: ../unattended-upgrade:1268
 #, fuzzy
 #| msgid "Packages that are upgraded:\n"
 msgid "Packages that attempted to upgrade:\n"
 msgstr "Pacotes atualizados:\n"
 
-#: ../unattended-upgrade:996
+#: ../unattended-upgrade:1272
 msgid "Packages with upgradable origin but kept back:\n"
 msgstr "Pacotes atualizáveis na origem mas mantidos na versão atual:\n"
 
-#: ../unattended-upgrade:1001
+#: ../unattended-upgrade:1279
 #, fuzzy
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that were auto-removed:\n"
 msgstr "Pacotes autorremovidos: '%s'"
 
-#: ../unattended-upgrade:1006
+#: ../unattended-upgrade:1283
 #, fuzzy
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that were kept from being auto-removed:\n"
 msgstr "Pacotes autorremovidos: '%s'"
 
-#: ../unattended-upgrade:1011
+#: ../unattended-upgrade:1287
 msgid "Package installation log:"
 msgstr "Relatório de instalação de pacotes:"
 
-#: ../unattended-upgrade:1014
+#: ../unattended-upgrade:1290
 msgid "Unattended-upgrades log:\n"
 msgstr "Relatório da atualização desacompanhada:\n"
 
-#: ../unattended-upgrade:1042
+#: ../unattended-upgrade:1317
 #, fuzzy, python-format
 #| msgid "Writing dpkg log to '%s'"
 msgid "Writing dpkg log to %s"
 msgstr "Escrevendo o relatório do dpkg em '%s'"
 
-#: ../unattended-upgrade:1193
+#: ../unattended-upgrade:1469
 #, python-format
 msgid "Found %s, but not rebooting because %s is logged in."
 msgid_plural "Found %s, but not rebooting because %s are logged in."
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../unattended-upgrade:1247
-#, fuzzy, python-format
-#| msgid "package '%s' upgradable but fails to be marked for upgrade (%s)"
-msgid "package %s upgradable but fails to be marked for upgrade (%s)"
-msgstr ""
-"o pacote '%s' é atualizável mas não é possível marcá-lo para atualização (%s)"
-
-#: ../unattended-upgrade:1323
+#: ../unattended-upgrade:1624
 #, python-format
 msgid ""
 "Keeping the following auto-removable package(s) because they include %s "
 "which is set to be kept unmodified: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1330
+#: ../unattended-upgrade:1631
 #, python-format
 msgid ""
 "Keeping auto-removable %s package(s) because it would also remove the "
 "following packages which should be kept in this step: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1336
+#: ../unattended-upgrade:1637
 #, python-format
 msgid ""
 "Keeping %s auto-removable package(s) because it would also remove the "
 "following packages which should be kept in this step: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1347
+#: ../unattended-upgrade:1647
 #, python-format
 msgid ""
 "Keeping the following auto-removable package(s) because they include %s "
 "which package is related to the running kernel: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1407
+#: ../unattended-upgrade:1710
 #, fuzzy, python-format
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that were successfully auto-removed: %s"
 msgstr "Pacotes autorremovidos: '%s'"
 
-#: ../unattended-upgrade:1409
+#: ../unattended-upgrade:1712
 #, fuzzy, python-format
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that are kept back: %s"
 msgstr "Pacotes autorremovidos: '%s'"
 
-#: ../unattended-upgrade:1412
+#: ../unattended-upgrade:1716
 #, fuzzy
 #| msgid "Installing the upgrades failed!"
 msgid "Auto-removing the packages failed!"
 msgstr "A instalação das atualizações falhou!"
 
-#: ../unattended-upgrade:1413
+#: ../unattended-upgrade:1717
 #, fuzzy, python-format
 #| msgid "error message: '%s'"
 msgid "Error message: %s"
 msgstr "mensagem de erro: '%s'"
 
-#: ../unattended-upgrade:1414
+#: ../unattended-upgrade:1718
 #, fuzzy, python-format
 #| msgid "dpkg returned a error! See '%s' for details"
 msgid "dpkg returned an error! See %s for details"
 msgstr "O dpkg retornou um erro! Veja '%s' para mais detalhes"
 
-#: ../unattended-upgrade:1474
+#: ../unattended-upgrade:1808 ../unattended-upgrade:2011
+#: ../unattended-upgrade:2012
+#, fuzzy, python-format
+#| msgid "An error ocured: '%s'"
+msgid "An error occurred: %s"
+msgstr "Ocorreu um erro; '%s'"
+
+#: ../unattended-upgrade:1812
+#, fuzzy
+#| msgid "An error ocured: '%s'"
+msgid "An error occurred"
+msgstr "Ocorreu um erro; '%s'"
+
+#: ../unattended-upgrade:1862 ../unattended-upgrade:1866
 #, python-format
-msgid "Initial blacklisted packages: %s"
+msgid "Not running on this development release before %s"
+msgstr ""
+
+#: ../unattended-upgrade:1875 ../unattended-upgrade:1876
+msgid "Not running on the development release."
+msgstr ""
+
+#: ../unattended-upgrade:1883
+#, fuzzy, python-format
+#| msgid "Initial blacklisted packages: %s"
+msgid "Initial blacklist : %s"
 msgstr "Pacotes inicialmente na lista negra: %s"
 
-#: ../unattended-upgrade:1479
+#: ../unattended-upgrade:1888
 #, fuzzy, python-format
 #| msgid "Initial blacklisted packages: %s"
-msgid "Initial whitelisted packages: %s"
+msgid "Initial whitelist: %s"
 msgstr "Pacotes inicialmente na lista negra: %s"
 
-#: ../unattended-upgrade:1482
+#: ../unattended-upgrade:1891
 msgid "Starting unattended upgrades script"
 msgstr "Iniciando o script da atualização desacompanhada"
 
-#: ../unattended-upgrade:1491
+#: ../unattended-upgrade:1894
 #, python-format
 msgid "Allowed origins are: %s"
 msgstr "São origens permitidas: %s"
 
-#: ../unattended-upgrade:1507 ../unattended-upgrade:1508
+#: ../unattended-upgrade:1900
+msgid "Lock could not be acquired (another package manager running?)"
+msgstr ""
+"O lock não pôde ser obtido (outro gerenciador de pacotes em funcionamento?)"
+
+#: ../unattended-upgrade:1902
+msgid "Cache lock can not be acquired, exiting"
+msgstr "O lock do cache não pode ser obtido, encerrando"
+
+#: ../unattended-upgrade:1904
+#, fuzzy
+#| msgid "Cache lock can not be acquired, exiting"
+msgid "Lock could not be acquired"
+msgstr "O lock do cache não pode ser obtido, encerrando"
+
+#: ../unattended-upgrade:1913 ../unattended-upgrade:1914
 msgid "Unclean dpkg state detected, trying to correct"
 msgstr "Tentando corrigir estado não-íntegro no dpkg"
 
-#: ../unattended-upgrade:1519
+#: ../unattended-upgrade:1925
 #, python-format
 msgid ""
 "dpkg --configure -a output:\n"
@@ -248,45 +309,36 @@
 "Saída de dpkg --configure -a:\n"
 "%s"
 
-#: ../unattended-upgrade:1528
-msgid "Lock could not be acquired (another package manager running?)"
-msgstr ""
-"O lock não pôde ser obtido (outro gerenciador de pacotes em funcionamento?)"
-
-#: ../unattended-upgrade:1530
-msgid "Cache lock can not be acquired, exiting"
-msgstr "O lock do cache não pode ser obtido, encerrando"
-
-#: ../unattended-upgrade:1545 ../unattended-upgrade:1546
-#: ../unattended-upgrade:1773 ../unattended-upgrade:1774
+#: ../unattended-upgrade:1940 ../unattended-upgrade:1941
+#: ../unattended-upgrade:1943 ../unattended-upgrade:2179
+#: ../unattended-upgrade:2180 ../unattended-upgrade:2182
 msgid "Cache has broken packages, exiting"
 msgstr "O cache tem pacotes quebrados, encerrando"
 
-#: ../unattended-upgrade:1595
+#: ../unattended-upgrade:1987
+msgid "Upgrade was interrupted"
+msgstr ""
+
+#: ../unattended-upgrade:1991
 #, fuzzy, python-format
 #| msgid "GetArchives() failed: '%s'"
 msgid "GetArchives() failed: %s"
 msgstr "GetArchives() falhou: '%s'"
 
-#: ../unattended-upgrade:1612 ../unattended-upgrade:1613
-#, fuzzy, python-format
-#| msgid "An error ocured: '%s'"
-msgid "An error occurred: %s"
-msgstr "Ocorreu um erro; '%s'"
-
-#: ../unattended-upgrade:1615 ../unattended-upgrade:1617
+#: ../unattended-upgrade:2014 ../unattended-upgrade:2016
+#: ../unattended-upgrade:2019
 #, fuzzy, python-format
 #| msgid "The URI '%s' failed to download, aborting"
 msgid "The URI %s failed to download, aborting"
 msgstr "O URI '%s' falhou no download, abortando"
 
-#: ../unattended-upgrade:1621
+#: ../unattended-upgrade:2022 ../unattended-upgrade:2027
 #, fuzzy, python-format
 #| msgid "Download finished, but file '%s' not there?!?"
 msgid "Download finished, but file %s not there?!?"
 msgstr "Download terminado, mas o arquivo '%s' não está lá?!?"
 
-#: ../unattended-upgrade:1637 ../unattended-upgrade:1641
+#: ../unattended-upgrade:2047 ../unattended-upgrade:2051
 #, fuzzy, python-format
 #| msgid "Package '%s' has conffile prompt and needs to be upgraded manually"
 msgid "Package %s has conffile prompt and needs to be upgraded manually"
@@ -294,18 +346,18 @@
 "O pacote '%s' possui um diálogo conffile e necessita ser atualizado "
 "manualmente"
 
-#: ../unattended-upgrade:1670
+#: ../unattended-upgrade:2082
 #, fuzzy, python-format
 #| msgid "package '%s' not upgraded"
 msgid "package %s not upgraded"
 msgstr "o pacote '%s' não foi atualizado"
 
-#: ../unattended-upgrade:1702
+#: ../unattended-upgrade:2112
 #, python-format
 msgid "Removing unused kernel packages: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1724
+#: ../unattended-upgrade:2133 ../unattended-upgrade:2137
 #, fuzzy
 #| msgid "No packages found that can be upgraded unattended"
 msgid ""
@@ -314,47 +366,54 @@
 msgstr ""
 "Não foi encontrado nenhum pacote que possa ser atualizado desacompanhadamente"
 
-#: ../unattended-upgrade:1754
+#: ../unattended-upgrade:2160
 #, fuzzy, python-format
 #| msgid "Packages that are upgraded: %s"
 msgid "Packages that will be upgraded: %s"
 msgstr "Pacotes atualizados: %s"
 
-#: ../unattended-upgrade:1867
+#: ../unattended-upgrade:2270
 msgid "print debug messages"
 msgstr "imprimir mensagens de depuração"
 
-#: ../unattended-upgrade:1870
+#: ../unattended-upgrade:2273
 #, fuzzy
 #| msgid "print debug messages"
 msgid "make apt/libapt print verbose debug messages"
 msgstr "imprimir mensagens de depuração"
 
-#: ../unattended-upgrade:1873
+#: ../unattended-upgrade:2278
 #, fuzzy
 #| msgid "print debug messages"
 msgid "print info messages"
 msgstr "imprimir mensagens de depuração"
 
-#: ../unattended-upgrade:1876
+#: ../unattended-upgrade:2281
 msgid "Simulation, download but do not install"
 msgstr "Simulação, baixar mas não instalar"
 
-#: ../unattended-upgrade:1879
+#: ../unattended-upgrade:2284
 #, fuzzy
 #| msgid "Simulation, download but do not install"
 msgid "Only download, do not even try to install."
 msgstr "Simulação, baixar mas não instalar"
 
-#: ../unattended-upgrade:1882
+#: ../unattended-upgrade:2287
+#, fuzzy
+#| msgid "Upgrade in minimal steps (and allow interrupting with SIGTERM"
+msgid ""
+"Upgrade in minimal steps (and allow interrupting with SIGTERM) (default)"
+msgstr "Atualizar em passos mínimos (e permitir interrupção com SIGTERM)"
+
+#: ../unattended-upgrade:2292
 msgid "Upgrade in minimal steps (and allow interrupting with SIGTERM"
 msgstr "Atualizar em passos mínimos (e permitir interrupção com SIGTERM)"
 
-#: ../unattended-upgrade:1891
+#: ../unattended-upgrade:2301
 msgid "You need to be root to run this application"
 msgstr "Você precisa ser root para executar este aplicativo"
 
-#: ../unattended-upgrade-shutdown:76
+#: ../unattended-upgrade-shutdown:86
 #, fuzzy
 #| msgid "Unattended-upgrade in progress during shutdown, sleeping for 5s"
 msgid ""
@@ -364,26 +423,55 @@
 "Atualização desacompanhada em execução durante o encerramento do sistema, "
 "atrasando 5s"
 
-#: ../unattended-upgrade-shutdown:140
+#: ../unattended-upgrade-shutdown:114
+msgid ""
+"Unattended-upgrades stopped. There may be upgrades left to be installed in "
+"the next run."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:167
+msgid "Stop ongoing upgrades or perform upgrades before shutdown"
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:206 ../unattended-upgrade-shutdown:263
+msgid "Unable to monitor PrepareForShutdown() signal, polling instead."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:209
+msgid ""
+"To enable monitoring the PrepareForShutdown() signal instead of polling "
+"please install the python3-gi package"
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:266
+msgid "Maybe systemd-logind service is not running."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:289
+#, fuzzy
+#| msgid "dpkg returned a error! See '%s' for details"
+msgid "Apt returned an error thus shutdown mode is disabled"
+msgstr "O dpkg retornou um erro! Veja '%s' para mais detalhes"
+
+#: ../unattended-upgrade-shutdown:291 ../unattended-upgrade-shutdown:372
 #, python-format
 msgid "error message: '%s'"
 msgstr "mensagem de erro: '%s'"
 
-#: ../unattended-upgrade-shutdown:150
+#: ../unattended-upgrade-shutdown:307
 #, fuzzy
 #| msgid "unattended-upgrades result for '%s'"
 msgid "Running unattended-upgrades in shutdown mode"
 msgstr "Resultado da atualização desacompanhada para '%s'"
 
-#: ../unattended-upgrade-shutdown:176
-#, python-format
-msgid "Giving up on lockfile after %s delay"
+#: ../unattended-upgrade-shutdown:328
+#, fuzzy, python-format
+#| msgid "Giving up on lockfile after %s delay"
+msgid "Giving up on lockfile after %s minutes of delay"
 msgstr "Desistindo do arquivo de lock após %s"
 
-#: ../unattended-upgrade-shutdown:189
-msgid ""
-"Unattended-upgrades stopped. There may be upgrades left to be installed in "
-"the next run."
+#: ../unattended-upgrade-shutdown:370
+msgid "Apt returned an error when loading configuration, using default values"
 msgstr ""
 
 #, fuzzy
diff -Nru unattended-upgrades-1.11/po/pt.po unattended-upgrades-1.12/po/pt.po
--- unattended-upgrades-1.11/po/pt.po	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/po/pt.po	2019-04-18 16:38:31.000000000 +0200
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: unattended-upgrades\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-02-23 13:17+0700\n"
+"POT-Creation-Date: 2015-07-02 12:27+0200\n"
 "PO-Revision-Date: 2012-06-24 09:04+0100\n"
 "Last-Translator: Pedro Ribeiro <p.m42.ribeiro@gmail.com>\n"
 "Language-Team: Portuguese <traduz@debianpt.org>\n"
@@ -16,230 +16,290 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ../unattended-upgrade:219
+#: ../unattended-upgrade:203 ../unattended-upgrade:746
+#: ../unattended-upgrade:1535
+#, fuzzy, python-format
+#| msgid "package '%s' upgradable but fails to be marked for upgrade (%s)"
+msgid "package %s upgradable but fails to be marked for upgrade (%s)"
+msgstr "o pacote '%s' é atualizável mas não está marcado para atualização (%s)"
+
+#: ../unattended-upgrade:301
 #, python-format
 msgid "Progress: %s %% (%s)"
 msgstr "Progresso: %s %% (%s)"
 
-#: ../unattended-upgrade:413 ../unattended-upgrade:430
+#: ../unattended-upgrade:541
+msgid ""
+"Checking if system is running on battery is skipped. Please install "
+"powermgmt-base package to check power status and skip installing updates "
+"when the system is running on battery."
+msgstr ""
+
+#: ../unattended-upgrade:549
+msgid "System is on metered connection, stopping"
+msgstr ""
+
+#: ../unattended-upgrade:552
+msgid ""
+"Checking if connection is metered is skipped. Please install python3-gi "
+"package to detect metered connections and skip downloading updates."
+msgstr ""
+
+#: ../unattended-upgrade:600 ../unattended-upgrade:617
 #, python-format
 msgid "Unable to parse %s."
 msgstr ""
 
-#: ../unattended-upgrade:517 ../unattended-upgrade:619
-#: ../unattended-upgrade-shutdown:193
+#: ../unattended-upgrade:701 ../unattended-upgrade:789
+#: ../unattended-upgrade:2230 ../unattended-upgrade-shutdown:111
 msgid "All upgrades installed"
 msgstr "Todas as atualizações instaladas"
 
-#: ../unattended-upgrade:519 ../unattended-upgrade:611
+#: ../unattended-upgrade:703 ../unattended-upgrade:781
 msgid "Installing the upgrades failed!"
 msgstr "Falhou a instalação das atualizações!"
 
-#: ../unattended-upgrade:520 ../unattended-upgrade:612
-#: ../unattended-upgrade:776 ../unattended-upgrade:778
-#: ../unattended-upgrade:1539 ../unattended-upgrade:1541
+#: ../unattended-upgrade:704 ../unattended-upgrade:782
+#: ../unattended-upgrade:1056 ../unattended-upgrade:1058
+#: ../unattended-upgrade:1933 ../unattended-upgrade:1935
 #, fuzzy, python-format
 #| msgid "error message: '%s'"
 msgid "error message: %s"
 msgstr "mensagem de erro: '%s'"
 
-#: ../unattended-upgrade:521 ../unattended-upgrade:613
+#: ../unattended-upgrade:705 ../unattended-upgrade:783
 #, fuzzy, python-format
 #| msgid "dpkg returned a error! See '%s' for details"
 msgid "dpkg returned a error! See %s for details"
 msgstr "dpkg retornou um erro! Veja '%s' para mais informação"
 
-#: ../unattended-upgrade:775 ../unattended-upgrade:777
-#: ../unattended-upgrade:1538 ../unattended-upgrade:1540
-#: ../unattended-upgrade-shutdown:139
+#: ../unattended-upgrade:1055 ../unattended-upgrade:1057
+#: ../unattended-upgrade:1932 ../unattended-upgrade:1934
+#: ../unattended-upgrade:1937
 #, fuzzy
 #| msgid "dpkg returned a error! See '%s' for details"
 msgid "Apt returned an error, exiting"
 msgstr "dpkg retornou um erro! Veja '%s' para mais informação"
 
-#: ../unattended-upgrade:964
+#: ../unattended-upgrade:1234
 #, fuzzy
 #| msgid ""
 #| "No '/usr/bin/mail', can not send mail. You probably want to install the "
 #| "'mailx' package."
 msgid ""
-"No /usr/bin/mail or /usr/sbin/sendmail,can not send mail. You probably want "
+"No /usr/bin/mail or /usr/sbin/sendmail, can not send mail. You probably want "
 "to install the mailx package."
 msgstr ""
 "Não existe '/usr/bin/mail', impossível enviar mail. Provavelmente quer "
 "instalar o pacote 'mailx'."
 
-#: ../unattended-upgrade:975
+#: ../unattended-upgrade:1248
 msgid "[reboot required]"
 msgstr ""
 
-#: ../unattended-upgrade:977
+#: ../unattended-upgrade:1250
 msgid "[package on hold]"
 msgstr ""
 
-#: ../unattended-upgrade:981
+#: ../unattended-upgrade:1254
 #, fuzzy, python-brace-format
 #| msgid "[reboot required] unattended-upgrades result for '%s'"
 msgid ""
 "{hold_flag}{reboot_flag} unattended-upgrades result for {machine}: {result}"
 msgstr "[reinício necessário] resultado do unattended-upgrades para '%s'"
 
-#: ../unattended-upgrade:985
-#, python-format
-msgid ""
-"Unattended upgrade returned: %s\n"
-"\n"
+#: ../unattended-upgrade:1258
+#, fuzzy, python-format
+#| msgid ""
+#| "Unattended upgrade returned: %s\n"
+#| "\n"
+msgid "Unattended upgrade result: %s"
 msgstr ""
 "Actualização automática retornou: %s\n"
 "\n"
 
-#: ../unattended-upgrade:988
+#: ../unattended-upgrade:1262
+#, fuzzy
+#| msgid ""
+#| "Warning: A reboot is required to complete this upgrade.\n"
+#| "\n"
 msgid ""
-"Warning: A reboot is required to complete this upgrade.\n"
+"Warning: A reboot is required to complete this upgrade, or a previous one.\n"
 "\n"
 msgstr ""
 "Atenção: É necessário reiniciar o computador para completar esta "
 "atualização.\n"
 "\n"
 
-#: ../unattended-upgrade:990
+#: ../unattended-upgrade:1266
 #, fuzzy
 #| msgid "Packages that are upgraded:\n"
 msgid "Packages that were upgraded:\n"
 msgstr "Pacotes atualizados:\n"
 
-#: ../unattended-upgrade:992
+#: ../unattended-upgrade:1268
 #, fuzzy
 #| msgid "Packages that are upgraded:\n"
 msgid "Packages that attempted to upgrade:\n"
 msgstr "Pacotes atualizados:\n"
 
-#: ../unattended-upgrade:996
+#: ../unattended-upgrade:1272
 msgid "Packages with upgradable origin but kept back:\n"
 msgstr "Pacotes com possibilidade de actualização mas mantidos:\n"
 
-#: ../unattended-upgrade:1001
+#: ../unattended-upgrade:1279
 #, fuzzy
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that were auto-removed:\n"
 msgstr "Pacotes automaticamente removidos: '%s'"
 
-#: ../unattended-upgrade:1006
+#: ../unattended-upgrade:1283
 #, fuzzy
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that were kept from being auto-removed:\n"
 msgstr "Pacotes automaticamente removidos: '%s'"
 
-#: ../unattended-upgrade:1011
+#: ../unattended-upgrade:1287
 msgid "Package installation log:"
 msgstr "Registo de instalação de pacotes:"
 
-#: ../unattended-upgrade:1014
+#: ../unattended-upgrade:1290
 msgid "Unattended-upgrades log:\n"
 msgstr "Registo do Unattended-upgrades:\n"
 
-#: ../unattended-upgrade:1042
+#: ../unattended-upgrade:1317
 #, fuzzy, python-format
 #| msgid "Writing dpkg log to '%s'"
 msgid "Writing dpkg log to %s"
 msgstr "A escrever registo do dpkg para '%s'"
 
-#: ../unattended-upgrade:1193
+#: ../unattended-upgrade:1469
 #, python-format
 msgid "Found %s, but not rebooting because %s is logged in."
 msgid_plural "Found %s, but not rebooting because %s are logged in."
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../unattended-upgrade:1247
-#, fuzzy, python-format
-#| msgid "package '%s' upgradable but fails to be marked for upgrade (%s)"
-msgid "package %s upgradable but fails to be marked for upgrade (%s)"
-msgstr "o pacote '%s' é atualizável mas não está marcado para atualização (%s)"
-
-#: ../unattended-upgrade:1323
+#: ../unattended-upgrade:1624
 #, python-format
 msgid ""
 "Keeping the following auto-removable package(s) because they include %s "
 "which is set to be kept unmodified: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1330
+#: ../unattended-upgrade:1631
 #, python-format
 msgid ""
 "Keeping auto-removable %s package(s) because it would also remove the "
 "following packages which should be kept in this step: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1336
+#: ../unattended-upgrade:1637
 #, python-format
 msgid ""
 "Keeping %s auto-removable package(s) because it would also remove the "
 "following packages which should be kept in this step: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1347
+#: ../unattended-upgrade:1647
 #, python-format
 msgid ""
 "Keeping the following auto-removable package(s) because they include %s "
 "which package is related to the running kernel: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1407
+#: ../unattended-upgrade:1710
 #, fuzzy, python-format
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that were successfully auto-removed: %s"
 msgstr "Pacotes automaticamente removidos: '%s'"
 
-#: ../unattended-upgrade:1409
+#: ../unattended-upgrade:1712
 #, fuzzy, python-format
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that are kept back: %s"
 msgstr "Pacotes automaticamente removidos: '%s'"
 
-#: ../unattended-upgrade:1412
+#: ../unattended-upgrade:1716
 #, fuzzy
 #| msgid "Installing the upgrades failed!"
 msgid "Auto-removing the packages failed!"
 msgstr "Falhou a instalação das atualizações!"
 
-#: ../unattended-upgrade:1413
+#: ../unattended-upgrade:1717
 #, fuzzy, python-format
 #| msgid "error message: '%s'"
 msgid "Error message: %s"
 msgstr "mensagem de erro: '%s'"
 
-#: ../unattended-upgrade:1414
+#: ../unattended-upgrade:1718
 #, fuzzy, python-format
 #| msgid "dpkg returned a error! See '%s' for details"
 msgid "dpkg returned an error! See %s for details"
 msgstr "dpkg retornou um erro! Veja '%s' para mais informação"
 
-#: ../unattended-upgrade:1474
+#: ../unattended-upgrade:1808 ../unattended-upgrade:2011
+#: ../unattended-upgrade:2012
+#, fuzzy, python-format
+#| msgid "An error ocured: '%s'"
+msgid "An error occurred: %s"
+msgstr "Ocorreu um erro: '%s'"
+
+#: ../unattended-upgrade:1812
+#, fuzzy
+#| msgid "An error ocured: '%s'"
+msgid "An error occurred"
+msgstr "Ocorreu um erro: '%s'"
+
+#: ../unattended-upgrade:1862 ../unattended-upgrade:1866
 #, python-format
-msgid "Initial blacklisted packages: %s"
+msgid "Not running on this development release before %s"
+msgstr ""
+
+#: ../unattended-upgrade:1875 ../unattended-upgrade:1876
+msgid "Not running on the development release."
+msgstr ""
+
+#: ../unattended-upgrade:1883
+#, fuzzy, python-format
+#| msgid "Initial blacklisted packages: %s"
+msgid "Initial blacklist : %s"
 msgstr "Lista negra inicial de pacotes: %s"
 
-#: ../unattended-upgrade:1479
+#: ../unattended-upgrade:1888
 #, fuzzy, python-format
 #| msgid "Initial blacklisted packages: %s"
-msgid "Initial whitelisted packages: %s"
+msgid "Initial whitelist: %s"
 msgstr "Lista negra inicial de pacotes: %s"
 
-#: ../unattended-upgrade:1482
+#: ../unattended-upgrade:1891
 msgid "Starting unattended upgrades script"
 msgstr "A iniciar o script de atualização automática"
 
-#: ../unattended-upgrade:1491
+#: ../unattended-upgrade:1894
 #, python-format
 msgid "Allowed origins are: %s"
 msgstr "Origens permitidas: %s"
 
-#: ../unattended-upgrade:1507 ../unattended-upgrade:1508
+#: ../unattended-upgrade:1900
+msgid "Lock could not be acquired (another package manager running?)"
+msgstr "Não foi possível bloquear (outro gestor de pacotes ativo?)"
+
+#: ../unattended-upgrade:1902
+msgid "Cache lock can not be acquired, exiting"
+msgstr "Não foi possível bloquear cache, a sair"
+
+#: ../unattended-upgrade:1904
+#, fuzzy
+#| msgid "Cache lock can not be acquired, exiting"
+msgid "Lock could not be acquired"
+msgstr "Não foi possível bloquear cache, a sair"
+
+#: ../unattended-upgrade:1913 ../unattended-upgrade:1914
 msgid "Unclean dpkg state detected, trying to correct"
 msgstr "Detetado estado \"unclean\" de dpkg, a tentar correção"
 
-#: ../unattended-upgrade:1519
+#: ../unattended-upgrade:1925
 #, python-format
 msgid ""
 "dpkg --configure -a output:\n"
@@ -248,44 +308,36 @@
 "dpkg --configure -a output:\n"
 "%s"
 
-#: ../unattended-upgrade:1528
-msgid "Lock could not be acquired (another package manager running?)"
-msgstr "Não foi possível bloquear (outro gestor de pacotes ativo?)"
-
-#: ../unattended-upgrade:1530
-msgid "Cache lock can not be acquired, exiting"
-msgstr "Não foi possível bloquear cache, a sair"
-
-#: ../unattended-upgrade:1545 ../unattended-upgrade:1546
-#: ../unattended-upgrade:1773 ../unattended-upgrade:1774
+#: ../unattended-upgrade:1940 ../unattended-upgrade:1941
+#: ../unattended-upgrade:1943 ../unattended-upgrade:2179
+#: ../unattended-upgrade:2180 ../unattended-upgrade:2182
 msgid "Cache has broken packages, exiting"
 msgstr "A cache tem pacotes corrompidos, a sair"
 
-#: ../unattended-upgrade:1595
+#: ../unattended-upgrade:1987
+msgid "Upgrade was interrupted"
+msgstr ""
+
+#: ../unattended-upgrade:1991
 #, fuzzy, python-format
 #| msgid "GetArchives() failed: '%s'"
 msgid "GetArchives() failed: %s"
 msgstr "Falhou GetArchives(): '%s'"
 
-#: ../unattended-upgrade:1612 ../unattended-upgrade:1613
-#, fuzzy, python-format
-#| msgid "An error ocured: '%s'"
-msgid "An error occurred: %s"
-msgstr "Ocorreu um erro: '%s'"
-
-#: ../unattended-upgrade:1615 ../unattended-upgrade:1617
+#: ../unattended-upgrade:2014 ../unattended-upgrade:2016
+#: ../unattended-upgrade:2019
 #, fuzzy, python-format
 #| msgid "The URI '%s' failed to download, aborting"
 msgid "The URI %s failed to download, aborting"
 msgstr "Falhou o download do URI '%s', a terminar"
 
-#: ../unattended-upgrade:1621
+#: ../unattended-upgrade:2022 ../unattended-upgrade:2027
 #, fuzzy, python-format
 #| msgid "Download finished, but file '%s' not there?!?"
 msgid "Download finished, but file %s not there?!?"
 msgstr "Acabou o download, mas o ficheiro '%s' não existe?!?"
 
-#: ../unattended-upgrade:1637 ../unattended-upgrade:1641
+#: ../unattended-upgrade:2047 ../unattended-upgrade:2051
 #, fuzzy, python-format
 #| msgid "Package '%s' has conffile prompt and needs to be upgraded manually"
 msgid "Package %s has conffile prompt and needs to be upgraded manually"
@@ -293,18 +345,18 @@
 "O pacote '%s' tem uma questão de ficheiro de configuração e necessita de ser "
 "atualizado manualmente"
 
-#: ../unattended-upgrade:1670
+#: ../unattended-upgrade:2082
 #, fuzzy, python-format
 #| msgid "package '%s' not upgraded"
 msgid "package %s not upgraded"
 msgstr "o pacote '%s' não foi atualizado"
 
-#: ../unattended-upgrade:1702
+#: ../unattended-upgrade:2112
 #, python-format
 msgid "Removing unused kernel packages: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1724
+#: ../unattended-upgrade:2133 ../unattended-upgrade:2137
 #, fuzzy
 #| msgid "No packages found that can be upgraded unattended"
 msgid ""
@@ -313,47 +365,54 @@
 msgstr ""
 "Não foram encontrados pacotes com possibilidade de atualização automatica"
 
-#: ../unattended-upgrade:1754
+#: ../unattended-upgrade:2160
 #, fuzzy, python-format
 #| msgid "Packages that are upgraded: %s"
 msgid "Packages that will be upgraded: %s"
 msgstr "Pacotes atualizados: %s"
 
-#: ../unattended-upgrade:1867
+#: ../unattended-upgrade:2270
 msgid "print debug messages"
 msgstr "mostrar mensagens de debug"
 
-#: ../unattended-upgrade:1870
+#: ../unattended-upgrade:2273
 #, fuzzy
 #| msgid "print debug messages"
 msgid "make apt/libapt print verbose debug messages"
 msgstr "mostrar mensagens de debug"
 
-#: ../unattended-upgrade:1873
+#: ../unattended-upgrade:2278
 #, fuzzy
 #| msgid "print debug messages"
 msgid "print info messages"
 msgstr "mostrar mensagens de debug"
 
-#: ../unattended-upgrade:1876
+#: ../unattended-upgrade:2281
 msgid "Simulation, download but do not install"
 msgstr "Simulação, fazer o download mas não instalar"
 
-#: ../unattended-upgrade:1879
+#: ../unattended-upgrade:2284
 #, fuzzy
 #| msgid "Simulation, download but do not install"
 msgid "Only download, do not even try to install."
 msgstr "Simulação, fazer o download mas não instalar"
 
-#: ../unattended-upgrade:1882
+#: ../unattended-upgrade:2287
+#, fuzzy
+#| msgid "Upgrade in minimal steps (and allow interrupting with SIGTERM"
+msgid ""
+"Upgrade in minimal steps (and allow interrupting with SIGTERM) (default)"
+msgstr "Atualizar em pequenos passos (e permitir interrupções com o SIGTERM"
+
+#: ../unattended-upgrade:2292
 msgid "Upgrade in minimal steps (and allow interrupting with SIGTERM"
 msgstr "Atualizar em pequenos passos (e permitir interrupções com o SIGTERM"
 
-#: ../unattended-upgrade:1891
+#: ../unattended-upgrade:2301
 msgid "You need to be root to run this application"
 msgstr "Necessita de acesso de root para executar esta aplicação"
 
-#: ../unattended-upgrade-shutdown:76
+#: ../unattended-upgrade-shutdown:86
 #, fuzzy
 #| msgid "Unattended-upgrade in progress during shutdown, sleeping for 5s"
 msgid ""
@@ -361,26 +420,55 @@
 "computer"
 msgstr "Unattended-upgrade em progresso durante o fecho, a dormir por 5s"
 
-#: ../unattended-upgrade-shutdown:140
+#: ../unattended-upgrade-shutdown:114
+msgid ""
+"Unattended-upgrades stopped. There may be upgrades left to be installed in "
+"the next run."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:167
+msgid "Stop ongoing upgrades or perform upgrades before shutdown"
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:206 ../unattended-upgrade-shutdown:263
+msgid "Unable to monitor PrepareForShutdown() signal, polling instead."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:209
+msgid ""
+"To enable monitoring the PrepareForShutdown() signal instead of polling "
+"please install the python3-gi package"
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:266
+msgid "Maybe systemd-logind service is not running."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:289
+#, fuzzy
+#| msgid "dpkg returned a error! See '%s' for details"
+msgid "Apt returned an error thus shutdown mode is disabled"
+msgstr "dpkg retornou um erro! Veja '%s' para mais informação"
+
+#: ../unattended-upgrade-shutdown:291 ../unattended-upgrade-shutdown:372
 #, python-format
 msgid "error message: '%s'"
 msgstr "mensagem de erro: '%s'"
 
-#: ../unattended-upgrade-shutdown:150
+#: ../unattended-upgrade-shutdown:307
 #, fuzzy
 #| msgid "unattended-upgrades result for '%s'"
 msgid "Running unattended-upgrades in shutdown mode"
 msgstr "resultado do unattended-upgrades para '%s'"
 
-#: ../unattended-upgrade-shutdown:176
-#, python-format
-msgid "Giving up on lockfile after %s delay"
+#: ../unattended-upgrade-shutdown:328
+#, fuzzy, python-format
+#| msgid "Giving up on lockfile after %s delay"
+msgid "Giving up on lockfile after %s minutes of delay"
 msgstr "A desistir do ficheiro de lock após um atraso de %s"
 
-#: ../unattended-upgrade-shutdown:189
-msgid ""
-"Unattended-upgrades stopped. There may be upgrades left to be installed in "
-"the next run."
+#: ../unattended-upgrade-shutdown:370
+msgid "Apt returned an error when loading configuration, using default values"
 msgstr ""
 
 #, fuzzy
diff -Nru unattended-upgrades-1.11/po/ru.po unattended-upgrades-1.12/po/ru.po
--- unattended-upgrades-1.11/po/ru.po	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/po/ru.po	2019-04-18 16:38:31.000000000 +0200
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: unattended-upgrades 0.77\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-02-23 13:17+0700\n"
+"POT-Creation-Date: 2015-07-02 12:27+0200\n"
 "PO-Revision-Date: 2012-06-21 20:53+0400\n"
 "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
 "Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
@@ -18,134 +18,164 @@
 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
 "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 
-#: ../unattended-upgrade:219
+#: ../unattended-upgrade:203 ../unattended-upgrade:746
+#: ../unattended-upgrade:1535
+#, fuzzy, python-format
+#| msgid "package '%s' upgradable but fails to be marked for upgrade (%s)"
+msgid "package %s upgradable but fails to be marked for upgrade (%s)"
+msgstr ""
+"пакет %s можно обновить, но его не удалось пометить как обновляемый (%s)"
+
+#: ../unattended-upgrade:301
 #, python-format
 msgid "Progress: %s %% (%s)"
 msgstr "Ход выполнения: %s %% (%s)"
 
-#: ../unattended-upgrade:413 ../unattended-upgrade:430
+#: ../unattended-upgrade:541
+msgid ""
+"Checking if system is running on battery is skipped. Please install "
+"powermgmt-base package to check power status and skip installing updates "
+"when the system is running on battery."
+msgstr ""
+
+#: ../unattended-upgrade:549
+msgid "System is on metered connection, stopping"
+msgstr ""
+
+#: ../unattended-upgrade:552
+msgid ""
+"Checking if connection is metered is skipped. Please install python3-gi "
+"package to detect metered connections and skip downloading updates."
+msgstr ""
+
+#: ../unattended-upgrade:600 ../unattended-upgrade:617
 #, python-format
 msgid "Unable to parse %s."
 msgstr ""
 
-#: ../unattended-upgrade:517 ../unattended-upgrade:619
-#: ../unattended-upgrade-shutdown:193
+#: ../unattended-upgrade:701 ../unattended-upgrade:789
+#: ../unattended-upgrade:2230 ../unattended-upgrade-shutdown:111
 msgid "All upgrades installed"
 msgstr "Все обновления установлены"
 
-#: ../unattended-upgrade:519 ../unattended-upgrade:611
+#: ../unattended-upgrade:703 ../unattended-upgrade:781
 msgid "Installing the upgrades failed!"
 msgstr "Установка обновлений завершилась с ошибкой!"
 
-#: ../unattended-upgrade:520 ../unattended-upgrade:612
-#: ../unattended-upgrade:776 ../unattended-upgrade:778
-#: ../unattended-upgrade:1539 ../unattended-upgrade:1541
+#: ../unattended-upgrade:704 ../unattended-upgrade:782
+#: ../unattended-upgrade:1056 ../unattended-upgrade:1058
+#: ../unattended-upgrade:1933 ../unattended-upgrade:1935
 #, fuzzy, python-format
 #| msgid "error message: '%s'"
 msgid "error message: %s"
 msgstr "сообщение об ошибке: %s"
 
-#: ../unattended-upgrade:521 ../unattended-upgrade:613
+#: ../unattended-upgrade:705 ../unattended-upgrade:783
 #, fuzzy, python-format
 #| msgid "dpkg returned a error! See '%s' for details"
 msgid "dpkg returned a error! See %s for details"
 msgstr "dpkg завершилась с ошибкой! Подробности смотрите в %s"
 
-#: ../unattended-upgrade:775 ../unattended-upgrade:777
-#: ../unattended-upgrade:1538 ../unattended-upgrade:1540
-#: ../unattended-upgrade-shutdown:139
+#: ../unattended-upgrade:1055 ../unattended-upgrade:1057
+#: ../unattended-upgrade:1932 ../unattended-upgrade:1934
+#: ../unattended-upgrade:1937
 #, fuzzy
 #| msgid "dpkg returned a error! See '%s' for details"
 msgid "Apt returned an error, exiting"
 msgstr "dpkg завершилась с ошибкой! Подробности смотрите в %s"
 
-#: ../unattended-upgrade:964
+#: ../unattended-upgrade:1234
 #, fuzzy
 #| msgid ""
 #| "No '/usr/bin/mail', can not send mail. You probably want to install the "
 #| "'mailx' package."
 msgid ""
-"No /usr/bin/mail or /usr/sbin/sendmail,can not send mail. You probably want "
+"No /usr/bin/mail or /usr/sbin/sendmail, can not send mail. You probably want "
 "to install the mailx package."
 msgstr ""
 "Нет программы /usr/bin/mail, невозможно послать почту. Вероятно, лучше "
 "установить пакет mailx."
 
-#: ../unattended-upgrade:975
+#: ../unattended-upgrade:1248
 msgid "[reboot required]"
 msgstr ""
 
-#: ../unattended-upgrade:977
+#: ../unattended-upgrade:1250
 msgid "[package on hold]"
 msgstr ""
 
-#: ../unattended-upgrade:981
+#: ../unattended-upgrade:1254
 #, fuzzy, python-brace-format
 #| msgid "[reboot required] unattended-upgrades result for '%s'"
 msgid ""
 "{hold_flag}{reboot_flag} unattended-upgrades result for {machine}: {result}"
 msgstr "[требуется перезагрузка] Результат unattended-upgrades для «%s»"
 
-#: ../unattended-upgrade:985
-#, python-format
-msgid ""
-"Unattended upgrade returned: %s\n"
-"\n"
+#: ../unattended-upgrade:1258
+#, fuzzy, python-format
+#| msgid ""
+#| "Unattended upgrade returned: %s\n"
+#| "\n"
+msgid "Unattended upgrade result: %s"
 msgstr ""
 "Результат необслуживаемой установки: %s\n"
 "\n"
 
-#: ../unattended-upgrade:988
+#: ../unattended-upgrade:1262
+#, fuzzy
+#| msgid ""
+#| "Warning: A reboot is required to complete this upgrade.\n"
+#| "\n"
 msgid ""
-"Warning: A reboot is required to complete this upgrade.\n"
+"Warning: A reboot is required to complete this upgrade, or a previous one.\n"
 "\n"
 msgstr ""
 "Предупреждение: для завершения обновления требуется перезагрузка.\n"
 "\n"
 
-#: ../unattended-upgrade:990
+#: ../unattended-upgrade:1266
 #, fuzzy
 #| msgid "Packages that are upgraded:\n"
 msgid "Packages that were upgraded:\n"
 msgstr "Обновлённые пакеты:\n"
 
-#: ../unattended-upgrade:992
+#: ../unattended-upgrade:1268
 #, fuzzy
 #| msgid "Packages that are upgraded:\n"
 msgid "Packages that attempted to upgrade:\n"
 msgstr "Обновлённые пакеты:\n"
 
-#: ../unattended-upgrade:996
+#: ../unattended-upgrade:1272
 msgid "Packages with upgradable origin but kept back:\n"
 msgstr "Пакеты, обновлённые в источнике, но оставленные теми же в системе:\n"
 
-#: ../unattended-upgrade:1001
+#: ../unattended-upgrade:1279
 #, fuzzy
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that were auto-removed:\n"
 msgstr "Автоматически удаляемые пакеты: «%s»"
 
-#: ../unattended-upgrade:1006
+#: ../unattended-upgrade:1283
 #, fuzzy
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that were kept from being auto-removed:\n"
 msgstr "Автоматически удаляемые пакеты: «%s»"
 
-#: ../unattended-upgrade:1011
+#: ../unattended-upgrade:1287
 msgid "Package installation log:"
 msgstr "Журнал установки пакетов:"
 
-#: ../unattended-upgrade:1014
+#: ../unattended-upgrade:1290
 msgid "Unattended-upgrades log:\n"
 msgstr "Журнал unattended-upgrades:\n"
 
-#: ../unattended-upgrade:1042
+#: ../unattended-upgrade:1317
 #, fuzzy, python-format
 #| msgid "Writing dpkg log to '%s'"
 msgid "Writing dpkg log to %s"
 msgstr "Журнал dpkg записывается в %s"
 
-#: ../unattended-upgrade:1193
+#: ../unattended-upgrade:1469
 #, python-format
 msgid "Found %s, but not rebooting because %s is logged in."
 msgid_plural "Found %s, but not rebooting because %s are logged in."
@@ -153,96 +183,126 @@
 msgstr[1] ""
 msgstr[2] ""
 
-#: ../unattended-upgrade:1247
-#, fuzzy, python-format
-#| msgid "package '%s' upgradable but fails to be marked for upgrade (%s)"
-msgid "package %s upgradable but fails to be marked for upgrade (%s)"
-msgstr ""
-"пакет %s можно обновить, но его не удалось пометить как обновляемый (%s)"
-
-#: ../unattended-upgrade:1323
+#: ../unattended-upgrade:1624
 #, python-format
 msgid ""
 "Keeping the following auto-removable package(s) because they include %s "
 "which is set to be kept unmodified: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1330
+#: ../unattended-upgrade:1631
 #, python-format
 msgid ""
 "Keeping auto-removable %s package(s) because it would also remove the "
 "following packages which should be kept in this step: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1336
+#: ../unattended-upgrade:1637
 #, python-format
 msgid ""
 "Keeping %s auto-removable package(s) because it would also remove the "
 "following packages which should be kept in this step: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1347
+#: ../unattended-upgrade:1647
 #, python-format
 msgid ""
 "Keeping the following auto-removable package(s) because they include %s "
 "which package is related to the running kernel: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1407
+#: ../unattended-upgrade:1710
 #, fuzzy, python-format
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that were successfully auto-removed: %s"
 msgstr "Автоматически удаляемые пакеты: «%s»"
 
-#: ../unattended-upgrade:1409
+#: ../unattended-upgrade:1712
 #, fuzzy, python-format
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that are kept back: %s"
 msgstr "Автоматически удаляемые пакеты: «%s»"
 
-#: ../unattended-upgrade:1412
+#: ../unattended-upgrade:1716
 #, fuzzy
 #| msgid "Installing the upgrades failed!"
 msgid "Auto-removing the packages failed!"
 msgstr "Установка обновлений завершилась с ошибкой!"
 
-#: ../unattended-upgrade:1413
+#: ../unattended-upgrade:1717
 #, fuzzy, python-format
 #| msgid "error message: '%s'"
 msgid "Error message: %s"
 msgstr "сообщение об ошибке: %s"
 
-#: ../unattended-upgrade:1414
+#: ../unattended-upgrade:1718
 #, fuzzy, python-format
 #| msgid "dpkg returned a error! See '%s' for details"
 msgid "dpkg returned an error! See %s for details"
 msgstr "dpkg завершилась с ошибкой! Подробности смотрите в %s"
 
-#: ../unattended-upgrade:1474
+#: ../unattended-upgrade:1808 ../unattended-upgrade:2011
+#: ../unattended-upgrade:2012
+#, fuzzy, python-format
+#| msgid "An error ocured: '%s'"
+msgid "An error occurred: %s"
+msgstr "Произошла ошибка: %s"
+
+#: ../unattended-upgrade:1812
+#, fuzzy
+#| msgid "An error ocured: '%s'"
+msgid "An error occurred"
+msgstr "Произошла ошибка: %s"
+
+#: ../unattended-upgrade:1862 ../unattended-upgrade:1866
 #, python-format
-msgid "Initial blacklisted packages: %s"
+msgid "Not running on this development release before %s"
+msgstr ""
+
+#: ../unattended-upgrade:1875 ../unattended-upgrade:1876
+msgid "Not running on the development release."
+msgstr ""
+
+#: ../unattended-upgrade:1883
+#, fuzzy, python-format
+#| msgid "Initial blacklisted packages: %s"
+msgid "Initial blacklist : %s"
 msgstr "Пакеты в чёрном списке изначально: %s"
 
-#: ../unattended-upgrade:1479
+#: ../unattended-upgrade:1888
 #, fuzzy, python-format
 #| msgid "Initial blacklisted packages: %s"
-msgid "Initial whitelisted packages: %s"
+msgid "Initial whitelist: %s"
 msgstr "Пакеты в чёрном списке изначально: %s"
 
-#: ../unattended-upgrade:1482
+#: ../unattended-upgrade:1891
 msgid "Starting unattended upgrades script"
 msgstr "Запускаются сценарии необслуживаемой установки"
 
-#: ../unattended-upgrade:1491
+#: ../unattended-upgrade:1894
 #, python-format
 msgid "Allowed origins are: %s"
 msgstr "Разрешённые источники: %s"
 
-#: ../unattended-upgrade:1507 ../unattended-upgrade:1508
+#: ../unattended-upgrade:1900
+msgid "Lock could not be acquired (another package manager running?)"
+msgstr "Не удалось выполнить блокировку (запущен ещё один менеджер пакетов?)"
+
+#: ../unattended-upgrade:1902
+msgid "Cache lock can not be acquired, exiting"
+msgstr "Не удалось выполнить блокировку кэша, завершение работы"
+
+#: ../unattended-upgrade:1904
+#, fuzzy
+#| msgid "Cache lock can not be acquired, exiting"
+msgid "Lock could not be acquired"
+msgstr "Не удалось выполнить блокировку кэша, завершение работы"
+
+#: ../unattended-upgrade:1913 ../unattended-upgrade:1914
 msgid "Unclean dpkg state detected, trying to correct"
 msgstr "Обнаружено состояние незавершённости работы dpkg, попытаемся исправить"
 
-#: ../unattended-upgrade:1519
+#: ../unattended-upgrade:1925
 #, python-format
 msgid ""
 "dpkg --configure -a output:\n"
@@ -251,44 +311,36 @@
 "Результат dpkg --configure -a:\n"
 "%s"
 
-#: ../unattended-upgrade:1528
-msgid "Lock could not be acquired (another package manager running?)"
-msgstr "Не удалось выполнить блокировку (запущен ещё один менеджер пакетов?)"
-
-#: ../unattended-upgrade:1530
-msgid "Cache lock can not be acquired, exiting"
-msgstr "Не удалось выполнить блокировку кэша, завершение работы"
-
-#: ../unattended-upgrade:1545 ../unattended-upgrade:1546
-#: ../unattended-upgrade:1773 ../unattended-upgrade:1774
+#: ../unattended-upgrade:1940 ../unattended-upgrade:1941
+#: ../unattended-upgrade:1943 ../unattended-upgrade:2179
+#: ../unattended-upgrade:2180 ../unattended-upgrade:2182
 msgid "Cache has broken packages, exiting"
 msgstr "В кэше сломанные пакеты, завершение работы"
 
-#: ../unattended-upgrade:1595
+#: ../unattended-upgrade:1987
+msgid "Upgrade was interrupted"
+msgstr ""
+
+#: ../unattended-upgrade:1991
 #, fuzzy, python-format
 #| msgid "GetArchives() failed: '%s'"
 msgid "GetArchives() failed: %s"
 msgstr "GetArchives() завершилась с ошибкой: '%s'"
 
-#: ../unattended-upgrade:1612 ../unattended-upgrade:1613
-#, fuzzy, python-format
-#| msgid "An error ocured: '%s'"
-msgid "An error occurred: %s"
-msgstr "Произошла ошибка: %s"
-
-#: ../unattended-upgrade:1615 ../unattended-upgrade:1617
+#: ../unattended-upgrade:2014 ../unattended-upgrade:2016
+#: ../unattended-upgrade:2019
 #, fuzzy, python-format
 #| msgid "The URI '%s' failed to download, aborting"
 msgid "The URI %s failed to download, aborting"
 msgstr "Невозможно скачать URI '%s', останов"
 
-#: ../unattended-upgrade:1621
+#: ../unattended-upgrade:2022 ../unattended-upgrade:2027
 #, fuzzy, python-format
 #| msgid "Download finished, but file '%s' not there?!?"
 msgid "Download finished, but file %s not there?!?"
 msgstr "Скачивание завершено, но файла %s нет?!?"
 
-#: ../unattended-upgrade:1637 ../unattended-upgrade:1641
+#: ../unattended-upgrade:2047 ../unattended-upgrade:2051
 #, fuzzy, python-format
 #| msgid "Package '%s' has conffile prompt and needs to be upgraded manually"
 msgid "Package %s has conffile prompt and needs to be upgraded manually"
@@ -296,18 +348,18 @@
 "В пакете %s есть conffile с вводом от пользователя и его нужно обновлять "
 "вручную"
 
-#: ../unattended-upgrade:1670
+#: ../unattended-upgrade:2082
 #, fuzzy, python-format
 #| msgid "package '%s' not upgraded"
 msgid "package %s not upgraded"
 msgstr "пакет %s не обновлён"
 
-#: ../unattended-upgrade:1702
+#: ../unattended-upgrade:2112
 #, python-format
 msgid "Removing unused kernel packages: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1724
+#: ../unattended-upgrade:2133 ../unattended-upgrade:2137
 #, fuzzy
 #| msgid "No packages found that can be upgraded unattended"
 msgid ""
@@ -316,48 +368,56 @@
 msgstr ""
 "Пакеты, для которых можно выполнить необслуживаемое обновление, не найдены"
 
-#: ../unattended-upgrade:1754
+#: ../unattended-upgrade:2160
 #, fuzzy, python-format
 #| msgid "Packages that are upgraded: %s"
 msgid "Packages that will be upgraded: %s"
 msgstr "Обновлённые пакеты: %s"
 
-#: ../unattended-upgrade:1867
+#: ../unattended-upgrade:2270
 msgid "print debug messages"
 msgstr "выводить отладочные сообщения"
 
-#: ../unattended-upgrade:1870
+#: ../unattended-upgrade:2273
 #, fuzzy
 #| msgid "print debug messages"
 msgid "make apt/libapt print verbose debug messages"
 msgstr "выводить отладочные сообщения"
 
-#: ../unattended-upgrade:1873
+#: ../unattended-upgrade:2278
 #, fuzzy
 #| msgid "print debug messages"
 msgid "print info messages"
 msgstr "выводить отладочные сообщения"
 
-#: ../unattended-upgrade:1876
+#: ../unattended-upgrade:2281
 msgid "Simulation, download but do not install"
 msgstr "Имитация, скачивать но не устанавливать"
 
-#: ../unattended-upgrade:1879
+#: ../unattended-upgrade:2284
 #, fuzzy
 #| msgid "Simulation, download but do not install"
 msgid "Only download, do not even try to install."
 msgstr "Имитация, скачивать но не устанавливать"
 
-#: ../unattended-upgrade:1882
+#: ../unattended-upgrade:2287
+#, fuzzy
+#| msgid "Upgrade in minimal steps (and allow interrupting with SIGTERM"
+msgid ""
+"Upgrade in minimal steps (and allow interrupting with SIGTERM) (default)"
+msgstr ""
+"Обновление с минимальным количеством этапов (можно прервать с помощью SIGTERM"
+
+#: ../unattended-upgrade:2292
 msgid "Upgrade in minimal steps (and allow interrupting with SIGTERM"
 msgstr ""
 "Обновление с минимальным количеством этапов (можно прервать с помощью SIGTERM"
 
-#: ../unattended-upgrade:1891
+#: ../unattended-upgrade:2301
 msgid "You need to be root to run this application"
 msgstr "Вы должны быть root для запуска этого приложения"
 
-#: ../unattended-upgrade-shutdown:76
+#: ../unattended-upgrade-shutdown:86
 #, fuzzy
 #| msgid "Unattended-upgrade in progress during shutdown, sleeping for 5s"
 msgid ""
@@ -365,26 +425,55 @@
 "computer"
 msgstr "Выполнение unattended-upgrade во время выключения, пауза на 5с"
 
-#: ../unattended-upgrade-shutdown:140
+#: ../unattended-upgrade-shutdown:114
+msgid ""
+"Unattended-upgrades stopped. There may be upgrades left to be installed in "
+"the next run."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:167
+msgid "Stop ongoing upgrades or perform upgrades before shutdown"
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:206 ../unattended-upgrade-shutdown:263
+msgid "Unable to monitor PrepareForShutdown() signal, polling instead."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:209
+msgid ""
+"To enable monitoring the PrepareForShutdown() signal instead of polling "
+"please install the python3-gi package"
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:266
+msgid "Maybe systemd-logind service is not running."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:289
+#, fuzzy
+#| msgid "dpkg returned a error! See '%s' for details"
+msgid "Apt returned an error thus shutdown mode is disabled"
+msgstr "dpkg завершилась с ошибкой! Подробности смотрите в %s"
+
+#: ../unattended-upgrade-shutdown:291 ../unattended-upgrade-shutdown:372
 #, python-format
 msgid "error message: '%s'"
 msgstr "сообщение об ошибке: %s"
 
-#: ../unattended-upgrade-shutdown:150
+#: ../unattended-upgrade-shutdown:307
 #, fuzzy
 #| msgid "unattended-upgrades result for '%s'"
 msgid "Running unattended-upgrades in shutdown mode"
 msgstr "Результат unattended-upgrades для «%s»"
 
-#: ../unattended-upgrade-shutdown:176
-#, python-format
-msgid "Giving up on lockfile after %s delay"
+#: ../unattended-upgrade-shutdown:328
+#, fuzzy, python-format
+#| msgid "Giving up on lockfile after %s delay"
+msgid "Giving up on lockfile after %s minutes of delay"
 msgstr "Отказ по lockfile после %s задержки"
 
-#: ../unattended-upgrade-shutdown:189
-msgid ""
-"Unattended-upgrades stopped. There may be upgrades left to be installed in "
-"the next run."
+#: ../unattended-upgrade-shutdown:370
+msgid "Apt returned an error when loading configuration, using default values"
 msgstr ""
 
 #, fuzzy
diff -Nru unattended-upgrades-1.11/po/sk.po unattended-upgrades-1.12/po/sk.po
--- unattended-upgrades-1.11/po/sk.po	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/po/sk.po	2019-04-18 16:38:31.000000000 +0200
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: unattended-upgrades\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-02-23 13:17+0700\n"
+"POT-Creation-Date: 2015-07-02 12:27+0200\n"
 "PO-Revision-Date: 2012-06-14 10:05+0100\n"
 "Last-Translator: Ivan Masár <helix84@centrum.sk>\n"
 "Language-Team: Slovak <debian-l10n-slovak@lists.debian.org>\n"
@@ -17,134 +17,164 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural= (n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 
-#: ../unattended-upgrade:219
+#: ../unattended-upgrade:203 ../unattended-upgrade:746
+#: ../unattended-upgrade:1535
+#, fuzzy, python-format
+#| msgid "package '%s' upgradable but fails to be marked for upgrade (%s)"
+msgid "package %s upgradable but fails to be marked for upgrade (%s)"
+msgstr ""
+"balík „%s“ je aktualizovateľný, ale nedarí sa označiť na aktualizáciu (%s)"
+
+#: ../unattended-upgrade:301
 #, python-format
 msgid "Progress: %s %% (%s)"
 msgstr "Priebeh: %s %% (%s)"
 
-#: ../unattended-upgrade:413 ../unattended-upgrade:430
+#: ../unattended-upgrade:541
+msgid ""
+"Checking if system is running on battery is skipped. Please install "
+"powermgmt-base package to check power status and skip installing updates "
+"when the system is running on battery."
+msgstr ""
+
+#: ../unattended-upgrade:549
+msgid "System is on metered connection, stopping"
+msgstr ""
+
+#: ../unattended-upgrade:552
+msgid ""
+"Checking if connection is metered is skipped. Please install python3-gi "
+"package to detect metered connections and skip downloading updates."
+msgstr ""
+
+#: ../unattended-upgrade:600 ../unattended-upgrade:617
 #, python-format
 msgid "Unable to parse %s."
 msgstr ""
 
-#: ../unattended-upgrade:517 ../unattended-upgrade:619
-#: ../unattended-upgrade-shutdown:193
+#: ../unattended-upgrade:701 ../unattended-upgrade:789
+#: ../unattended-upgrade:2230 ../unattended-upgrade-shutdown:111
 msgid "All upgrades installed"
 msgstr "Všetky aktualizácie sú nainštalované"
 
-#: ../unattended-upgrade:519 ../unattended-upgrade:611
+#: ../unattended-upgrade:703 ../unattended-upgrade:781
 msgid "Installing the upgrades failed!"
 msgstr "Inštalácia aktualizácií zlyhala!"
 
-#: ../unattended-upgrade:520 ../unattended-upgrade:612
-#: ../unattended-upgrade:776 ../unattended-upgrade:778
-#: ../unattended-upgrade:1539 ../unattended-upgrade:1541
+#: ../unattended-upgrade:704 ../unattended-upgrade:782
+#: ../unattended-upgrade:1056 ../unattended-upgrade:1058
+#: ../unattended-upgrade:1933 ../unattended-upgrade:1935
 #, fuzzy, python-format
 #| msgid "error message: '%s'"
 msgid "error message: %s"
 msgstr "chybová správa: „%s“"
 
-#: ../unattended-upgrade:521 ../unattended-upgrade:613
+#: ../unattended-upgrade:705 ../unattended-upgrade:783
 #, fuzzy, python-format
 #| msgid "dpkg returned a error! See '%s' for details"
 msgid "dpkg returned a error! See %s for details"
 msgstr "dpkg vrátil chybu! Podrobnosti nájdete v „%s“"
 
-#: ../unattended-upgrade:775 ../unattended-upgrade:777
-#: ../unattended-upgrade:1538 ../unattended-upgrade:1540
-#: ../unattended-upgrade-shutdown:139
+#: ../unattended-upgrade:1055 ../unattended-upgrade:1057
+#: ../unattended-upgrade:1932 ../unattended-upgrade:1934
+#: ../unattended-upgrade:1937
 #, fuzzy
 #| msgid "dpkg returned a error! See '%s' for details"
 msgid "Apt returned an error, exiting"
 msgstr "dpkg vrátil chybu! Podrobnosti nájdete v „%s“"
 
-#: ../unattended-upgrade:964
+#: ../unattended-upgrade:1234
 #, fuzzy
 #| msgid ""
 #| "No '/usr/bin/mail', can not send mail. You probably want to install the "
 #| "'mailx' package."
 msgid ""
-"No /usr/bin/mail or /usr/sbin/sendmail,can not send mail. You probably want "
+"No /usr/bin/mail or /usr/sbin/sendmail, can not send mail. You probably want "
 "to install the mailx package."
 msgstr ""
 "Chýba „/usr/bin/mail“ nie je možné poslať poštu. Pravdepodobne chcete "
 "nainštalovať balík „mailx“."
 
-#: ../unattended-upgrade:975
+#: ../unattended-upgrade:1248
 msgid "[reboot required]"
 msgstr ""
 
-#: ../unattended-upgrade:977
+#: ../unattended-upgrade:1250
 msgid "[package on hold]"
 msgstr ""
 
-#: ../unattended-upgrade:981
+#: ../unattended-upgrade:1254
 #, fuzzy, python-brace-format
 #| msgid "[reboot required] unattended-upgrades result for '%s'"
 msgid ""
 "{hold_flag}{reboot_flag} unattended-upgrades result for {machine}: {result}"
 msgstr "[vyžaduje reštart] výsledok unattended-upgrades pre „%s“"
 
-#: ../unattended-upgrade:985
-#, python-format
-msgid ""
-"Unattended upgrade returned: %s\n"
-"\n"
+#: ../unattended-upgrade:1258
+#, fuzzy, python-format
+#| msgid ""
+#| "Unattended upgrade returned: %s\n"
+#| "\n"
+msgid "Unattended upgrade result: %s"
 msgstr ""
 "Bezobslužná aktualizácia vrátila: %s\n"
 "\n"
 
-#: ../unattended-upgrade:988
+#: ../unattended-upgrade:1262
+#, fuzzy
+#| msgid ""
+#| "Warning: A reboot is required to complete this upgrade.\n"
+#| "\n"
 msgid ""
-"Warning: A reboot is required to complete this upgrade.\n"
+"Warning: A reboot is required to complete this upgrade, or a previous one.\n"
 "\n"
 msgstr ""
 "Upozornenie: Na dokončenie tejto aktualizácie sa vyžaduje reštart.\n"
 "\n"
 
-#: ../unattended-upgrade:990
+#: ../unattended-upgrade:1266
 #, fuzzy
 #| msgid "Packages that are upgraded:\n"
 msgid "Packages that were upgraded:\n"
 msgstr "Aktualizavané balíky:\n"
 
-#: ../unattended-upgrade:992
+#: ../unattended-upgrade:1268
 #, fuzzy
 #| msgid "Packages that are upgraded:\n"
 msgid "Packages that attempted to upgrade:\n"
 msgstr "Aktualizavané balíky:\n"
 
-#: ../unattended-upgrade:996
+#: ../unattended-upgrade:1272
 msgid "Packages with upgradable origin but kept back:\n"
 msgstr "Aktualizovateľné, ale podržané balíky:\n"
 
-#: ../unattended-upgrade:1001
+#: ../unattended-upgrade:1279
 #, fuzzy
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that were auto-removed:\n"
 msgstr "Automaticky odstránené balíky: „%s“"
 
-#: ../unattended-upgrade:1006
+#: ../unattended-upgrade:1283
 #, fuzzy
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that were kept from being auto-removed:\n"
 msgstr "Automaticky odstránené balíky: „%s“"
 
-#: ../unattended-upgrade:1011
+#: ../unattended-upgrade:1287
 msgid "Package installation log:"
 msgstr "Záznam inštalácií balíkov:"
 
-#: ../unattended-upgrade:1014
+#: ../unattended-upgrade:1290
 msgid "Unattended-upgrades log:\n"
 msgstr "Záznam bezobslužných aktualizácií:\n"
 
-#: ../unattended-upgrade:1042
+#: ../unattended-upgrade:1317
 #, fuzzy, python-format
 #| msgid "Writing dpkg log to '%s'"
 msgid "Writing dpkg log to %s"
 msgstr "Zapisuje sa záznam dpkg do „%s“"
 
-#: ../unattended-upgrade:1193
+#: ../unattended-upgrade:1469
 #, python-format
 msgid "Found %s, but not rebooting because %s is logged in."
 msgid_plural "Found %s, but not rebooting because %s are logged in."
@@ -152,96 +182,126 @@
 msgstr[1] ""
 msgstr[2] ""
 
-#: ../unattended-upgrade:1247
-#, fuzzy, python-format
-#| msgid "package '%s' upgradable but fails to be marked for upgrade (%s)"
-msgid "package %s upgradable but fails to be marked for upgrade (%s)"
-msgstr ""
-"balík „%s“ je aktualizovateľný, ale nedarí sa označiť na aktualizáciu (%s)"
-
-#: ../unattended-upgrade:1323
+#: ../unattended-upgrade:1624
 #, python-format
 msgid ""
 "Keeping the following auto-removable package(s) because they include %s "
 "which is set to be kept unmodified: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1330
+#: ../unattended-upgrade:1631
 #, python-format
 msgid ""
 "Keeping auto-removable %s package(s) because it would also remove the "
 "following packages which should be kept in this step: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1336
+#: ../unattended-upgrade:1637
 #, python-format
 msgid ""
 "Keeping %s auto-removable package(s) because it would also remove the "
 "following packages which should be kept in this step: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1347
+#: ../unattended-upgrade:1647
 #, python-format
 msgid ""
 "Keeping the following auto-removable package(s) because they include %s "
 "which package is related to the running kernel: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1407
+#: ../unattended-upgrade:1710
 #, fuzzy, python-format
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that were successfully auto-removed: %s"
 msgstr "Automaticky odstránené balíky: „%s“"
 
-#: ../unattended-upgrade:1409
+#: ../unattended-upgrade:1712
 #, fuzzy, python-format
 #| msgid "Packages that are auto removed: '%s'"
 msgid "Packages that are kept back: %s"
 msgstr "Automaticky odstránené balíky: „%s“"
 
-#: ../unattended-upgrade:1412
+#: ../unattended-upgrade:1716
 #, fuzzy
 #| msgid "Installing the upgrades failed!"
 msgid "Auto-removing the packages failed!"
 msgstr "Inštalácia aktualizácií zlyhala!"
 
-#: ../unattended-upgrade:1413
+#: ../unattended-upgrade:1717
 #, fuzzy, python-format
 #| msgid "error message: '%s'"
 msgid "Error message: %s"
 msgstr "chybová správa: „%s“"
 
-#: ../unattended-upgrade:1414
+#: ../unattended-upgrade:1718
 #, fuzzy, python-format
 #| msgid "dpkg returned a error! See '%s' for details"
 msgid "dpkg returned an error! See %s for details"
 msgstr "dpkg vrátil chybu! Podrobnosti nájdete v „%s“"
 
-#: ../unattended-upgrade:1474
+#: ../unattended-upgrade:1808 ../unattended-upgrade:2011
+#: ../unattended-upgrade:2012
+#, fuzzy, python-format
+#| msgid "An error ocured: '%s'"
+msgid "An error occurred: %s"
+msgstr "Vyskytla sa chyba: „%s“"
+
+#: ../unattended-upgrade:1812
+#, fuzzy
+#| msgid "An error ocured: '%s'"
+msgid "An error occurred"
+msgstr "Vyskytla sa chyba: „%s“"
+
+#: ../unattended-upgrade:1862 ../unattended-upgrade:1866
 #, python-format
-msgid "Initial blacklisted packages: %s"
+msgid "Not running on this development release before %s"
+msgstr ""
+
+#: ../unattended-upgrade:1875 ../unattended-upgrade:1876
+msgid "Not running on the development release."
+msgstr ""
+
+#: ../unattended-upgrade:1883
+#, fuzzy, python-format
+#| msgid "Initial blacklisted packages: %s"
+msgid "Initial blacklist : %s"
 msgstr "Prvotná čierna listina balíkov: %s"
 
-#: ../unattended-upgrade:1479
+#: ../unattended-upgrade:1888
 #, fuzzy, python-format
 #| msgid "Initial blacklisted packages: %s"
-msgid "Initial whitelisted packages: %s"
+msgid "Initial whitelist: %s"
 msgstr "Prvotná čierna listina balíkov: %s"
 
-#: ../unattended-upgrade:1482
+#: ../unattended-upgrade:1891
 msgid "Starting unattended upgrades script"
 msgstr "Spúšťa sa skript bezobslužných aktualizácií"
 
-#: ../unattended-upgrade:1491
+#: ../unattended-upgrade:1894
 #, python-format
 msgid "Allowed origins are: %s"
 msgstr "Povolené pôvody sú: %s"
 
-#: ../unattended-upgrade:1507 ../unattended-upgrade:1508
+#: ../unattended-upgrade:1900
+msgid "Lock could not be acquired (another package manager running?)"
+msgstr "Zámok sa nepodarilo získať (beží iný správca balíkov?)"
+
+#: ../unattended-upgrade:1902
+msgid "Cache lock can not be acquired, exiting"
+msgstr "Nepodarilo sa získať zámok vyrovnávacej pamäte, program končí"
+
+#: ../unattended-upgrade:1904
+#, fuzzy
+#| msgid "Cache lock can not be acquired, exiting"
+msgid "Lock could not be acquired"
+msgstr "Nepodarilo sa získať zámok vyrovnávacej pamäte, program končí"
+
+#: ../unattended-upgrade:1913 ../unattended-upgrade:1914
 msgid "Unclean dpkg state detected, trying to correct"
 msgstr "Bol zistený nečistý stav dpkg, prebieha pokus o nápravu"
 
-#: ../unattended-upgrade:1519
+#: ../unattended-upgrade:1925
 #, python-format
 msgid ""
 "dpkg --configure -a output:\n"
@@ -250,62 +310,54 @@
 "výstup dpkg --configure -a:\n"
 "%s"
 
-#: ../unattended-upgrade:1528
-msgid "Lock could not be acquired (another package manager running?)"
-msgstr "Zámok sa nepodarilo získať (beží iný správca balíkov?)"
-
-#: ../unattended-upgrade:1530
-msgid "Cache lock can not be acquired, exiting"
-msgstr "Nepodarilo sa získať zámok vyrovnávacej pamäte, program končí"
-
-#: ../unattended-upgrade:1545 ../unattended-upgrade:1546
-#: ../unattended-upgrade:1773 ../unattended-upgrade:1774
+#: ../unattended-upgrade:1940 ../unattended-upgrade:1941
+#: ../unattended-upgrade:1943 ../unattended-upgrade:2179
+#: ../unattended-upgrade:2180 ../unattended-upgrade:2182
 msgid "Cache has broken packages, exiting"
 msgstr "Vyrovnávacia pamäť obsahuje poškodené balíky, program končí"
 
-#: ../unattended-upgrade:1595
+#: ../unattended-upgrade:1987
+msgid "Upgrade was interrupted"
+msgstr ""
+
+#: ../unattended-upgrade:1991
 #, fuzzy, python-format
 #| msgid "GetArchives() failed: '%s'"
 msgid "GetArchives() failed: %s"
 msgstr "GetArchives() zlyhalo: „%s“"
 
-#: ../unattended-upgrade:1612 ../unattended-upgrade:1613
-#, fuzzy, python-format
-#| msgid "An error ocured: '%s'"
-msgid "An error occurred: %s"
-msgstr "Vyskytla sa chyba: „%s“"
-
-#: ../unattended-upgrade:1615 ../unattended-upgrade:1617
+#: ../unattended-upgrade:2014 ../unattended-upgrade:2016
+#: ../unattended-upgrade:2019
 #, fuzzy, python-format
 #| msgid "The URI '%s' failed to download, aborting"
 msgid "The URI %s failed to download, aborting"
 msgstr "URI „%s“ sa nepodarilo stiahnuť, program končí"
 
-#: ../unattended-upgrade:1621
+#: ../unattended-upgrade:2022 ../unattended-upgrade:2027
 #, fuzzy, python-format
 #| msgid "Download finished, but file '%s' not there?!?"
 msgid "Download finished, but file %s not there?!?"
 msgstr "Sťahovanie dokončené, ale súbor „%s“ nie je na mieste?!?"
 
-#: ../unattended-upgrade:1637 ../unattended-upgrade:1641
+#: ../unattended-upgrade:2047 ../unattended-upgrade:2051
 #, fuzzy, python-format
 #| msgid "Package '%s' has conffile prompt and needs to be upgraded manually"
 msgid "Package %s has conffile prompt and needs to be upgraded manually"
 msgstr ""
 "Balík „%s“ obsahuje výzvu konfiguračného súboru a musí sa aktualizovať ručne"
 
-#: ../unattended-upgrade:1670
+#: ../unattended-upgrade:2082
 #, fuzzy, python-format
 #| msgid "package '%s' not upgraded"
 msgid "package %s not upgraded"
 msgstr "balík „%s“ nebol aktualizovaný"
 
-#: ../unattended-upgrade:1702
+#: ../unattended-upgrade:2112
 #, python-format
 msgid "Removing unused kernel packages: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1724
+#: ../unattended-upgrade:2133 ../unattended-upgrade:2137
 #, fuzzy
 #| msgid "No packages found that can be upgraded unattended"
 msgid ""
@@ -313,48 +365,56 @@
 "removals"
 msgstr "Neboli nájdené žiadne balíky, ktoré možno aktualizovať bezobslužne"
 
-#: ../unattended-upgrade:1754
+#: ../unattended-upgrade:2160
 #, fuzzy, python-format
 #| msgid "Packages that are upgraded: %s"
 msgid "Packages that will be upgraded: %s"
 msgstr "Aktualizované balíky: %s"
 
-#: ../unattended-upgrade:1867
+#: ../unattended-upgrade:2270
 msgid "print debug messages"
 msgstr "vypisovať ladiace správy"
 
-#: ../unattended-upgrade:1870
+#: ../unattended-upgrade:2273
 #, fuzzy
 #| msgid "print debug messages"
 msgid "make apt/libapt print verbose debug messages"
 msgstr "vypisovať ladiace správy"
 
-#: ../unattended-upgrade:1873
+#: ../unattended-upgrade:2278
 #, fuzzy
 #| msgid "print debug messages"
 msgid "print info messages"
 msgstr "vypisovať ladiace správy"
 
-#: ../unattended-upgrade:1876
+#: ../unattended-upgrade:2281
 msgid "Simulation, download but do not install"
 msgstr "Simulácia - sťahovať, ale neinštalovať"
 
-#: ../unattended-upgrade:1879
+#: ../unattended-upgrade:2284
 #, fuzzy
 #| msgid "Simulation, download but do not install"
 msgid "Only download, do not even try to install."
 msgstr "Simulácia - sťahovať, ale neinštalovať"
 
-#: ../unattended-upgrade:1882
+#: ../unattended-upgrade:2287
+#, fuzzy
+#| msgid "Upgrade in minimal steps (and allow interrupting with SIGTERM"
+msgid ""
+"Upgrade in minimal steps (and allow interrupting with SIGTERM) (default)"
+msgstr ""
+"Aktualizovať po minimálnych krokoch (a umožniť prerušenie pomocou SIGTERM"
+
+#: ../unattended-upgrade:2292
 msgid "Upgrade in minimal steps (and allow interrupting with SIGTERM"
 msgstr ""
 "Aktualizovať po minimálnych krokoch (a umožniť prerušenie pomocou SIGTERM"
 
-#: ../unattended-upgrade:1891
+#: ../unattended-upgrade:2301
 msgid "You need to be root to run this application"
 msgstr "Aby ste mohli spustiť túto aplikáciu, musíte byť root"
 
-#: ../unattended-upgrade-shutdown:76
+#: ../unattended-upgrade-shutdown:86
 #, fuzzy
 #| msgid "Unattended-upgrade in progress during shutdown, sleeping for 5s"
 msgid ""
@@ -362,26 +422,55 @@
 "computer"
 msgstr "Unattended-upgrade prebieha počas vypínania, čaká sa 5 sekúnd"
 
-#: ../unattended-upgrade-shutdown:140
+#: ../unattended-upgrade-shutdown:114
+msgid ""
+"Unattended-upgrades stopped. There may be upgrades left to be installed in "
+"the next run."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:167
+msgid "Stop ongoing upgrades or perform upgrades before shutdown"
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:206 ../unattended-upgrade-shutdown:263
+msgid "Unable to monitor PrepareForShutdown() signal, polling instead."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:209
+msgid ""
+"To enable monitoring the PrepareForShutdown() signal instead of polling "
+"please install the python3-gi package"
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:266
+msgid "Maybe systemd-logind service is not running."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:289
+#, fuzzy
+#| msgid "dpkg returned a error! See '%s' for details"
+msgid "Apt returned an error thus shutdown mode is disabled"
+msgstr "dpkg vrátil chybu! Podrobnosti nájdete v „%s“"
+
+#: ../unattended-upgrade-shutdown:291 ../unattended-upgrade-shutdown:372
 #, python-format
 msgid "error message: '%s'"
 msgstr "chybová správa: „%s“"
 
-#: ../unattended-upgrade-shutdown:150
+#: ../unattended-upgrade-shutdown:307
 #, fuzzy
 #| msgid "unattended-upgrades result for '%s'"
 msgid "Running unattended-upgrades in shutdown mode"
 msgstr "výsledok unattended-upgrades pre „%s“"
 
-#: ../unattended-upgrade-shutdown:176
-#, python-format
-msgid "Giving up on lockfile after %s delay"
+#: ../unattended-upgrade-shutdown:328
+#, fuzzy, python-format
+#| msgid "Giving up on lockfile after %s delay"
+msgid "Giving up on lockfile after %s minutes of delay"
 msgstr "Vzdáva sa pokus o získanie zámku po %s"
 
-#: ../unattended-upgrade-shutdown:189
-msgid ""
-"Unattended-upgrades stopped. There may be upgrades left to be installed in "
-"the next run."
+#: ../unattended-upgrade-shutdown:370
+msgid "Apt returned an error when loading configuration, using default values"
 msgstr ""
 
 #, fuzzy
diff -Nru unattended-upgrades-1.11/po/unattended-upgrades.pot unattended-upgrades-1.12/po/unattended-upgrades.pot
--- unattended-upgrades-1.11/po/unattended-upgrades.pot	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/po/unattended-upgrades.pot	2019-04-18 16:38:31.000000000 +0200
@@ -9,7 +9,7 @@
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2015-07-02 12:27+0200\n"
-"PO-Revision-Date: 2018-02-23 13:17+0700\n"
+"PO-Revision-Date: 2019-04-18 16:41+0200\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: \n"
@@ -18,312 +18,383 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
 
-#: ../unattended-upgrade:219
+#: ../unattended-upgrade:203 ../unattended-upgrade:746
+#: ../unattended-upgrade:1535
+#, python-format
+msgid "package %s upgradable but fails to be marked for upgrade (%s)"
+msgstr ""
+
+#: ../unattended-upgrade:301
 #, python-format
 msgid "Progress: %s %% (%s)"
 msgstr ""
 
-#: ../unattended-upgrade:413 ../unattended-upgrade:430
+#: ../unattended-upgrade:541
+msgid ""
+"Checking if system is running on battery is skipped. Please install "
+"powermgmt-base package to check power status and skip installing updates "
+"when the system is running on battery."
+msgstr ""
+
+#: ../unattended-upgrade:549
+msgid "System is on metered connection, stopping"
+msgstr ""
+
+#: ../unattended-upgrade:552
+msgid ""
+"Checking if connection is metered is skipped. Please install python3-gi "
+"package to detect metered connections and skip downloading updates."
+msgstr ""
+
+#: ../unattended-upgrade:600 ../unattended-upgrade:617
 #, python-format
 msgid "Unable to parse %s."
 msgstr ""
 
-#: ../unattended-upgrade:517 ../unattended-upgrade:619
-#: ../unattended-upgrade-shutdown:193
+#: ../unattended-upgrade:701 ../unattended-upgrade:789
+#: ../unattended-upgrade:2230 ../unattended-upgrade-shutdown:111
 msgid "All upgrades installed"
 msgstr ""
 
-#: ../unattended-upgrade:519 ../unattended-upgrade:611
+#: ../unattended-upgrade:703 ../unattended-upgrade:781
 msgid "Installing the upgrades failed!"
 msgstr ""
 
-#: ../unattended-upgrade:520 ../unattended-upgrade:612
-#: ../unattended-upgrade:776 ../unattended-upgrade:778
-#: ../unattended-upgrade:1539 ../unattended-upgrade:1541
+#: ../unattended-upgrade:704 ../unattended-upgrade:782
+#: ../unattended-upgrade:1056 ../unattended-upgrade:1058
+#: ../unattended-upgrade:1933 ../unattended-upgrade:1935
 #, python-format
 msgid "error message: %s"
 msgstr ""
 
-#: ../unattended-upgrade:521 ../unattended-upgrade:613
+#: ../unattended-upgrade:705 ../unattended-upgrade:783
 #, python-format
 msgid "dpkg returned a error! See %s for details"
 msgstr ""
 
-#: ../unattended-upgrade:775 ../unattended-upgrade:777
-#: ../unattended-upgrade:1538 ../unattended-upgrade:1540
-#: ../unattended-upgrade-shutdown:139
+#: ../unattended-upgrade:1055 ../unattended-upgrade:1057
+#: ../unattended-upgrade:1932 ../unattended-upgrade:1934
+#: ../unattended-upgrade:1937
 msgid "Apt returned an error, exiting"
 msgstr ""
 
-#: ../unattended-upgrade:964
+#: ../unattended-upgrade:1234
 msgid ""
-"No /usr/bin/mail or /usr/sbin/sendmail,can not send mail. You probably want "
+"No /usr/bin/mail or /usr/sbin/sendmail, can not send mail. You probably want "
 "to install the mailx package."
 msgstr ""
 
-#: ../unattended-upgrade:975
+#: ../unattended-upgrade:1248
 msgid "[reboot required]"
 msgstr ""
 
-#: ../unattended-upgrade:977
+#: ../unattended-upgrade:1250
 msgid "[package on hold]"
 msgstr ""
 
-#: ../unattended-upgrade:981
+#: ../unattended-upgrade:1254
 #, python-brace-format
 msgid ""
 "{hold_flag}{reboot_flag} unattended-upgrades result for {machine}: {result}"
 msgstr ""
 
-#: ../unattended-upgrade:985
+#: ../unattended-upgrade:1258
 #, python-format
-msgid ""
-"Unattended upgrade returned: %s\n"
-"\n"
+msgid "Unattended upgrade result: %s"
 msgstr ""
 
-#: ../unattended-upgrade:988
+#: ../unattended-upgrade:1262
 msgid ""
-"Warning: A reboot is required to complete this upgrade.\n"
+"Warning: A reboot is required to complete this upgrade, or a previous one.\n"
 "\n"
 msgstr ""
 
-#: ../unattended-upgrade:990
+#: ../unattended-upgrade:1266
 msgid "Packages that were upgraded:\n"
 msgstr ""
 
-#: ../unattended-upgrade:992
+#: ../unattended-upgrade:1268
 msgid "Packages that attempted to upgrade:\n"
 msgstr ""
 
-#: ../unattended-upgrade:996
+#: ../unattended-upgrade:1272
 msgid "Packages with upgradable origin but kept back:\n"
 msgstr ""
 
-#: ../unattended-upgrade:1001
+#: ../unattended-upgrade:1279
 msgid "Packages that were auto-removed:\n"
 msgstr ""
 
-#: ../unattended-upgrade:1006
+#: ../unattended-upgrade:1283
 msgid "Packages that were kept from being auto-removed:\n"
 msgstr ""
 
-#: ../unattended-upgrade:1011
+#: ../unattended-upgrade:1287
 msgid "Package installation log:"
 msgstr ""
 
-#: ../unattended-upgrade:1014
+#: ../unattended-upgrade:1290
 msgid "Unattended-upgrades log:\n"
 msgstr ""
 
-#: ../unattended-upgrade:1042
+#: ../unattended-upgrade:1317
 #, python-format
 msgid "Writing dpkg log to %s"
 msgstr ""
 
-#: ../unattended-upgrade:1193
+#: ../unattended-upgrade:1469
 #, python-format
 msgid "Found %s, but not rebooting because %s is logged in."
 msgid_plural "Found %s, but not rebooting because %s are logged in."
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../unattended-upgrade:1247
-#, python-format
-msgid "package %s upgradable but fails to be marked for upgrade (%s)"
-msgstr ""
-
-#: ../unattended-upgrade:1323
+#: ../unattended-upgrade:1624
 #, python-format
 msgid ""
 "Keeping the following auto-removable package(s) because they include %s "
 "which is set to be kept unmodified: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1330
+#: ../unattended-upgrade:1631
 #, python-format
 msgid ""
 "Keeping auto-removable %s package(s) because it would also remove the "
 "following packages which should be kept in this step: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1336
+#: ../unattended-upgrade:1637
 #, python-format
 msgid ""
 "Keeping %s auto-removable package(s) because it would also remove the "
 "following packages which should be kept in this step: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1347
+#: ../unattended-upgrade:1647
 #, python-format
 msgid ""
 "Keeping the following auto-removable package(s) because they include %s "
 "which package is related to the running kernel: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1407
+#: ../unattended-upgrade:1710
 #, python-format
 msgid "Packages that were successfully auto-removed: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1409
+#: ../unattended-upgrade:1712
 #, python-format
 msgid "Packages that are kept back: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1412
+#: ../unattended-upgrade:1716
 msgid "Auto-removing the packages failed!"
 msgstr ""
 
-#: ../unattended-upgrade:1413
+#: ../unattended-upgrade:1717
 #, python-format
 msgid "Error message: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1414
+#: ../unattended-upgrade:1718
 #, python-format
 msgid "dpkg returned an error! See %s for details"
 msgstr ""
 
-#: ../unattended-upgrade:1474
+#: ../unattended-upgrade:1808 ../unattended-upgrade:2011
+#: ../unattended-upgrade:2012
 #, python-format
-msgid "Initial blacklisted packages: %s"
+msgid "An error occurred: %s"
+msgstr ""
+
+#: ../unattended-upgrade:1812
+msgid "An error occurred"
 msgstr ""
 
-#: ../unattended-upgrade:1479
+#: ../unattended-upgrade:1862 ../unattended-upgrade:1866
 #, python-format
-msgid "Initial whitelisted packages: %s"
+msgid "Not running on this development release before %s"
 msgstr ""
 
-#: ../unattended-upgrade:1482
-msgid "Starting unattended upgrades script"
+#: ../unattended-upgrade:1875 ../unattended-upgrade:1876
+msgid "Not running on the development release."
 msgstr ""
 
-#: ../unattended-upgrade:1491
+#: ../unattended-upgrade:1883
 #, python-format
-msgid "Allowed origins are: %s"
+msgid "Initial blacklist : %s"
 msgstr ""
 
-#: ../unattended-upgrade:1507 ../unattended-upgrade:1508
-msgid "Unclean dpkg state detected, trying to correct"
+#: ../unattended-upgrade:1888
+#, python-format
+msgid "Initial whitelist: %s"
+msgstr ""
+
+#: ../unattended-upgrade:1891
+msgid "Starting unattended upgrades script"
 msgstr ""
 
-#: ../unattended-upgrade:1519
+#: ../unattended-upgrade:1894
 #, python-format
-msgid ""
-"dpkg --configure -a output:\n"
-"%s"
+msgid "Allowed origins are: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1528
+#: ../unattended-upgrade:1900
 msgid "Lock could not be acquired (another package manager running?)"
 msgstr ""
 
-#: ../unattended-upgrade:1530
+#: ../unattended-upgrade:1902
 msgid "Cache lock can not be acquired, exiting"
 msgstr ""
 
-#: ../unattended-upgrade:1545 ../unattended-upgrade:1546
-#: ../unattended-upgrade:1773 ../unattended-upgrade:1774
-msgid "Cache has broken packages, exiting"
+#: ../unattended-upgrade:1904
+msgid "Lock could not be acquired"
 msgstr ""
 
-#: ../unattended-upgrade:1595
+#: ../unattended-upgrade:1913 ../unattended-upgrade:1914
+msgid "Unclean dpkg state detected, trying to correct"
+msgstr ""
+
+#: ../unattended-upgrade:1925
 #, python-format
-msgid "GetArchives() failed: %s"
+msgid ""
+"dpkg --configure -a output:\n"
+"%s"
+msgstr ""
+
+#: ../unattended-upgrade:1940 ../unattended-upgrade:1941
+#: ../unattended-upgrade:1943 ../unattended-upgrade:2179
+#: ../unattended-upgrade:2180 ../unattended-upgrade:2182
+msgid "Cache has broken packages, exiting"
+msgstr ""
+
+#: ../unattended-upgrade:1987
+msgid "Upgrade was interrupted"
 msgstr ""
 
-#: ../unattended-upgrade:1612 ../unattended-upgrade:1613
+#: ../unattended-upgrade:1991
 #, python-format
-msgid "An error occurred: %s"
+msgid "GetArchives() failed: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1615 ../unattended-upgrade:1617
+#: ../unattended-upgrade:2014 ../unattended-upgrade:2016
+#: ../unattended-upgrade:2019
 #, python-format
 msgid "The URI %s failed to download, aborting"
 msgstr ""
 
-#: ../unattended-upgrade:1621
+#: ../unattended-upgrade:2022 ../unattended-upgrade:2027
 #, python-format
 msgid "Download finished, but file %s not there?!?"
 msgstr ""
 
-#: ../unattended-upgrade:1637 ../unattended-upgrade:1641
+#: ../unattended-upgrade:2047 ../unattended-upgrade:2051
 #, python-format
 msgid "Package %s has conffile prompt and needs to be upgraded manually"
 msgstr ""
 
-#: ../unattended-upgrade:1670
+#: ../unattended-upgrade:2082
 #, python-format
 msgid "package %s not upgraded"
 msgstr ""
 
-#: ../unattended-upgrade:1702
+#: ../unattended-upgrade:2112
 #, python-format
 msgid "Removing unused kernel packages: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1724
+#: ../unattended-upgrade:2133 ../unattended-upgrade:2137
 msgid ""
 "No packages found that can be upgraded unattended and no pending auto-"
 "removals"
 msgstr ""
 
-#: ../unattended-upgrade:1754
+#: ../unattended-upgrade:2160
 #, python-format
 msgid "Packages that will be upgraded: %s"
 msgstr ""
 
-#: ../unattended-upgrade:1867
+#: ../unattended-upgrade:2270
 msgid "print debug messages"
 msgstr ""
 
-#: ../unattended-upgrade:1870
+#: ../unattended-upgrade:2273
 msgid "make apt/libapt print verbose debug messages"
 msgstr ""
 
-#: ../unattended-upgrade:1873
+#: ../unattended-upgrade:2278
 msgid "print info messages"
 msgstr ""
 
-#: ../unattended-upgrade:1876
+#: ../unattended-upgrade:2281
 msgid "Simulation, download but do not install"
 msgstr ""
 
-#: ../unattended-upgrade:1879
+#: ../unattended-upgrade:2284
 msgid "Only download, do not even try to install."
 msgstr ""
 
-#: ../unattended-upgrade:1882
+#: ../unattended-upgrade:2287
+msgid ""
+"Upgrade in minimal steps (and allow interrupting with SIGTERM) (default)"
+msgstr ""
+
+#: ../unattended-upgrade:2292
 msgid "Upgrade in minimal steps (and allow interrupting with SIGTERM"
 msgstr ""
 
-#: ../unattended-upgrade:1891
+#: ../unattended-upgrade:2301
 msgid "You need to be root to run this application"
 msgstr ""
 
-#: ../unattended-upgrade-shutdown:76
+#: ../unattended-upgrade-shutdown:86
 msgid ""
 "Unattended-upgrade in progress during shutdown, please don't turn off the "
 "computer"
 msgstr ""
 
-#: ../unattended-upgrade-shutdown:140
+#: ../unattended-upgrade-shutdown:114
+msgid ""
+"Unattended-upgrades stopped. There may be upgrades left to be installed in "
+"the next run."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:167
+msgid "Stop ongoing upgrades or perform upgrades before shutdown"
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:206 ../unattended-upgrade-shutdown:263
+msgid "Unable to monitor PrepareForShutdown() signal, polling instead."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:209
+msgid ""
+"To enable monitoring the PrepareForShutdown() signal instead of polling "
+"please install the python3-gi package"
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:266
+msgid "Maybe systemd-logind service is not running."
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:289
+msgid "Apt returned an error thus shutdown mode is disabled"
+msgstr ""
+
+#: ../unattended-upgrade-shutdown:291 ../unattended-upgrade-shutdown:372
 #, python-format
 msgid "error message: '%s'"
 msgstr ""
 
-#: ../unattended-upgrade-shutdown:150
+#: ../unattended-upgrade-shutdown:307
 msgid "Running unattended-upgrades in shutdown mode"
 msgstr ""
 
-#: ../unattended-upgrade-shutdown:176
+#: ../unattended-upgrade-shutdown:328
 #, python-format
-msgid "Giving up on lockfile after %s delay"
+msgid "Giving up on lockfile after %s minutes of delay"
 msgstr ""
 
-#: ../unattended-upgrade-shutdown:189
-msgid ""
-"Unattended-upgrades stopped. There may be upgrades left to be installed in "
-"the next run."
+#: ../unattended-upgrade-shutdown:370
+msgid "Apt returned an error when loading configuration, using default values"
 msgstr ""
diff -Nru unattended-upgrades-1.11/test/Makefile unattended-upgrades-1.12/test/Makefile
--- unattended-upgrades-1.11/test/Makefile	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/test/Makefile	2019-04-18 16:38:31.000000000 +0200
@@ -2,7 +2,10 @@
 
 all: check
 
-check:
+test-packages:
+	$(MAKE) -C packages
+
+check: test-packages
 	set -e; \
 	find . -name 'test_*.py' | \
 	while read file; do \
@@ -15,6 +18,7 @@
 	done
 
 clean:
+	$(MAKE) -C packages clean
 	rm -rf ./aptroot/var/cache/
 	rm -rf ./aptroot/var/lib/apt
 	rm -rf ./aptroot/var/run
diff -Nru unattended-upgrades-1.11/test/packages/Makefile unattended-upgrades-1.12/test/packages/Makefile
--- unattended-upgrades-1.11/test/packages/Makefile	1970-01-01 01:00:00.000000000 +0100
+++ unattended-upgrades-1.12/test/packages/Makefile	2019-04-18 16:38:31.000000000 +0200
@@ -0,0 +1,13 @@
+DEBS = $(patsubst %.equivs,%.deb,$(wildcard *.equivs))
+
+all: $(DEBS)
+
+%.deb: %.equivs
+	equivs-build $<
+	@echo " Conffiles:"
+	dpkg-deb -I $@ conffiles
+
+clean:
+	rm -f $(DEBS)
+
+.PHONY: clean
diff -Nru unattended-upgrades-1.11/test/packages/test-package_1.2_all.equivs unattended-upgrades-1.12/test/packages/test-package_1.2_all.equivs
--- unattended-upgrades-1.11/test/packages/test-package_1.2_all.equivs	1970-01-01 01:00:00.000000000 +0100
+++ unattended-upgrades-1.12/test/packages/test-package_1.2_all.equivs	2019-04-18 16:38:31.000000000 +0200
@@ -0,0 +1,10 @@
+Section: misc
+Priority: optional
+Standards-Version: 3.9.2
+
+Package: test-package
+Version: 1.2
+Description: Ships moved /etc/configuration-file/configuration-file
+File: /etc/configuration-file/configuration-file 644
+ This is a configuration file,
+ Totally.
diff -Nru unattended-upgrades-1.11/test/packages/test-package_1.3_all.equivs unattended-upgrades-1.12/test/packages/test-package_1.3_all.equivs
--- unattended-upgrades-1.11/test/packages/test-package_1.3_all.equivs	1970-01-01 01:00:00.000000000 +0100
+++ unattended-upgrades-1.12/test/packages/test-package_1.3_all.equivs	2019-04-18 16:38:31.000000000 +0200
@@ -0,0 +1,11 @@
+Section: misc
+Priority: optional
+Standards-Version: 3.9.2
+
+Package: test-package
+Version: 1.3
+Description: Ships moved /etc/configuration-file/configuration-file
+File: /etc/configuration-file/configuration-file 644
+ This is a configuration file,
+ .
+ No really.
diff -Nru unattended-upgrades-1.11/test/packages/test-package-2_1.2_all.equivs unattended-upgrades-1.12/test/packages/test-package-2_1.2_all.equivs
--- unattended-upgrades-1.11/test/packages/test-package-2_1.2_all.equivs	1970-01-01 01:00:00.000000000 +0100
+++ unattended-upgrades-1.12/test/packages/test-package-2_1.2_all.equivs	2019-04-18 16:38:31.000000000 +0200
@@ -0,0 +1,10 @@
+Section: misc
+Priority: optional
+Standards-Version: 3.9.2
+
+Package: test-package-2
+Version: 1.2
+Description: Ships moved /etc/foo/foo /etc/foo
+File: etc/foo 644
+ This is a configuration file,
+ Totally.
diff -Nru unattended-upgrades-1.11/test/packages/test-package-2_1.3_all.equivs unattended-upgrades-1.12/test/packages/test-package-2_1.3_all.equivs
--- unattended-upgrades-1.11/test/packages/test-package-2_1.3_all.equivs	1970-01-01 01:00:00.000000000 +0100
+++ unattended-upgrades-1.12/test/packages/test-package-2_1.3_all.equivs	2019-04-18 16:38:31.000000000 +0200
@@ -0,0 +1,11 @@
+Section: misc
+Priority: optional
+Standards-Version: 3.9.2
+
+Package: test-package-2
+Version: 1.3
+Description: Ships moved /etc/foo/foo /etc/foo
+File: etc/foo 644
+ This is a configuration file,
+ .
+ No really.
diff -Nru unattended-upgrades-1.11/test/root.conffile/etc/configuration-file unattended-upgrades-1.12/test/root.conffile/etc/configuration-file
--- unattended-upgrades-1.11/test/root.conffile/etc/configuration-file	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/test/root.conffile/etc/configuration-file	1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-This is a configuration file,
-dfasddfasdff
-No really.
diff -Nru unattended-upgrades-1.11/test/root.conffile/etc/foo/foo unattended-upgrades-1.12/test/root.conffile/etc/foo/foo
--- unattended-upgrades-1.11/test/root.conffile/etc/foo/foo	1970-01-01 01:00:00.000000000 +0100
+++ unattended-upgrades-1.12/test/root.conffile/etc/foo/foo	2019-04-18 16:38:31.000000000 +0200
@@ -0,0 +1,3 @@
+This is a configuration file,
+dfasddfasdff
+No really.
diff -Nru unattended-upgrades-1.11/test/root.conffile/var/lib/dpkg/status unattended-upgrades-1.12/test/root.conffile/var/lib/dpkg/status
--- unattended-upgrades-1.11/test/root.conffile/var/lib/dpkg/status	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/test/root.conffile/var/lib/dpkg/status	2019-04-18 16:38:31.000000000 +0200
@@ -6,6 +6,13 @@
  /etc/configuration-file 26b99d59ac8f5ecd3375107755ee8527
  /etc/configuration-file2 404d877bbd67dc2412ba80d7c92d6bc7
 
+Package: test-package-2
+Status: install ok installed
+Architecture: all
+Version: 0.9
+Conffiles:
+ /etc/foo/foo 26b99d59ac8f5ecd3375107755ee8527
+
 Package: multiple-conffiles
 Status: install ok installed
 Architecture: all
@@ -18,3 +25,4 @@
 Status: install ok installed
 Architecture: all
 Version: 0.9
+
diff -Nru unattended-upgrades-1.11/test/root.rewind/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid-security_main_binary-amd64_Packages unattended-upgrades-1.12/test/root.rewind/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid-security_main_binary-amd64_Packages
--- unattended-upgrades-1.11/test/root.rewind/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid-security_main_binary-amd64_Packages	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/test/root.rewind/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid-security_main_binary-amd64_Packages	2019-04-18 16:38:31.000000000 +0200
@@ -11,9 +11,32 @@
 Description-en: test package 2
 Filename: ./test-package-dependency_1.0_all.deb
 
+Package: test2-package
+Architecture: all
+Version: 2.0
+Depends: test2-package-dependency (= 2.0)
+Description-en: test package set with strong versioned dependency
+
+Package: test2-package-dependency
+Architecture: all
+Version: 2.0
+Description-en: test2-package's versioned dep
+
+Package: test3-package
+Architecture: all
+Version: 2.0
+Depends: test3-old-package-dependency (= 2.0)
+Description-en: test package set with strong versioned dependency
+
+Package: test3-old-package-dependency
+Architecture: all
+Version: 2.0
+Description-en: test3-package's versioned dep
+
 Package: z-package
 Architecture: all
 Version: 1.0
 Depends: forbidden-dependency
 Description-en: test package with a forbidden dependency
-Filename: ./z-package_1.0_all.deb
\ No newline at end of file
+Filename: ./z-package_1.0_all.deb
+
diff -Nru unattended-upgrades-1.11/test/root.rewind/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid-updates_main_binary-amd64_Packages unattended-upgrades-1.12/test/root.rewind/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid-updates_main_binary-amd64_Packages
--- unattended-upgrades-1.11/test/root.rewind/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid-updates_main_binary-amd64_Packages	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/test/root.rewind/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid-updates_main_binary-amd64_Packages	2019-04-18 16:38:31.000000000 +0200
@@ -2,3 +2,36 @@
 Architecture: all
 Version: 2.0
 Description-en: forbidden dependency package
+
+Package: test-package
+Architecture: all
+Version: 12.0
+Depends: forbidden-dependency
+Description-en: test package
+
+Package: test2-package
+Architecture: all
+Version: 3.0
+Depends: test2-package-dependency (= 3.0)
+Description-en: test package set with strong versioned dependency
+
+Package: test2-package-dependency
+Architecture: all
+Version: 3.0
+Description-en: test2-package's versioned dep
+
+Package: test3-package
+Architecture: all
+Version: 3.0
+Depends: test3-new-package-dependency (= 3.0)
+Description-en: test package set with strong versioned dependency
+
+Package: test3-new-package-dependency
+Architecture: all
+Version: 3.0
+Description-en: test3-package's versioned dep
+
+Package: test3-old-package-dependency
+Architecture: all
+Version: 3.0
+Description-en: test3-package's versioned dep
diff -Nru unattended-upgrades-1.11/test/root.rewind/var/lib/dpkg/status unattended-upgrades-1.12/test/root.rewind/var/lib/dpkg/status
--- unattended-upgrades-1.11/test/root.rewind/var/lib/dpkg/status	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/test/root.rewind/var/lib/dpkg/status	2019-04-18 16:38:31.000000000 +0200
@@ -3,6 +3,16 @@
 Architecture: all
 Version: 1.0
 
+Package: test2-package
+Status: install ok installed
+Architecture: all
+Version: 1.0
+
+Package: test3-package
+Status: install ok installed
+Architecture: all
+Version: 1.0
+
 Package: z-package
 Status: install ok installed
 Architecture: all
diff -Nru unattended-upgrades-1.11/test/test_blacklisted_wrong_origin.py unattended-upgrades-1.12/test/test_blacklisted_wrong_origin.py
--- unattended-upgrades-1.11/test/test_blacklisted_wrong_origin.py	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/test/test_blacklisted_wrong_origin.py	2019-04-18 16:38:31.000000000 +0200
@@ -38,7 +38,7 @@
                                       [])
 
         self.assertListEqual([], pkgs_to_upgrade)
-        self.assertListEqual([], pkgs_kept_back)
+        self.assertEqual(0, len(pkgs_kept_back))
 
 
 if __name__ == "__main__":
diff -Nru unattended-upgrades-1.11/test/test_conffile.py unattended-upgrades-1.12/test/test_conffile.py
--- unattended-upgrades-1.11/test/test_conffile.py	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/test/test_conffile.py	2019-04-18 16:38:31.000000000 +0200
@@ -2,6 +2,7 @@
 
 import os
 import logging
+import shutil
 import unittest
 
 import apt_pkg
@@ -24,6 +25,16 @@
 No really.
 """)
 
+    def tearDown(self):
+        try:
+            os.remove("./root.conffile/etc/configuration-file")
+        except Exception:
+            pass
+        try:
+            shutil.rmtree("./root.conffile/etc/configuration-file")
+        except Exception:
+            pass
+
     def test_will_prompt(self):
         # conf-test 0.9 is installed, 1.1 gets installed
         # they both have different config files
@@ -31,6 +42,16 @@
         self.assertTrue(conffile_prompt(test_pkg, prefix="./root.conffile"),
                         "conffile prompt detection incorrect")
 
+    def test_will_prompt_on_moves(self):
+        # changed /etc/foo becomes different /etc/foo/foo
+        test_pkg = "./packages/test-package_1.2_all.deb"
+        self.assertTrue(conffile_prompt(test_pkg, prefix="./root.conffile"),
+                        "conffile prompt detection incorrect")
+        # changed /etc/foo/foo becomes different /etc/foo
+        test_pkg = "./packages/test-package-2_1.2_all.deb"
+        self.assertTrue(conffile_prompt(test_pkg, prefix="./root.conffile"),
+                        "conffile prompt detection incorrect")
+
     def test_prompt_on_deleted_modified_conffile(self):
         # conf-test 0.9 is installed, 1.1 gets installed
         # they both have different config files, this triggers a prompt
@@ -46,6 +67,16 @@
         self.assertFalse(conffile_prompt(test_pkg, prefix="./root.conffile"),
                          "conffile prompt detection incorrect")
 
+    def test_will_not_prompt_on_moves(self):
+        # changed /etc/foo becomes /etc/foo/foo, same as shipped before
+        test_pkg = "./packages/test-package_1.3_all.deb"
+        self.assertFalse(conffile_prompt(test_pkg, prefix="./root.conffile"),
+                         "conffile prompt detection incorrect")
+        # changed /etc/foo/foo becomes /etc/foo, same as shipped before
+        test_pkg = "./packages/test-package-2_1.3_all.deb"
+        self.assertFalse(conffile_prompt(test_pkg, prefix="./root.conffile"),
+                         "conffile prompt detection incorrect")
+
     def test_with_many_entries(self):
         # ensure we don't crash when encountering a conffile with overly
         # many entries
diff -Nru unattended-upgrades-1.11/test/test_mail.py unattended-upgrades-1.12/test/test_mail.py
--- unattended-upgrades-1.11/test/test_mail.py	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/test/test_mail.py	2019-04-18 16:38:31.000000000 +0200
@@ -100,7 +100,7 @@
         pkgs = ["2vcard"]
         res = successful
         result_str = "Result String"
-        pkgs_kept_back = ["linux-image"]
+        pkgs_kept_back = {"Debian wheezy-security": ["linux-image"]}
         pkgs_removed = ["telnet"]
         pkgs_kept_installed = ["hello"]
         # include some unicode chars here for good measure
@@ -182,7 +182,8 @@
         self.assertTrue("[package on hold]" in mail_txt)
         self._verify_common_mail_content(mail_txt)
         self.assertTrue(
-            "Packages with upgradable origin but kept back:\n linux-image"
+            "Packages with upgradable origin but kept back:\n"
+            " Debian wheezy-security:\n  linux-image"
             in mail_txt)
 
     def test_summary_mail_blacklisted_only(self):
@@ -201,7 +202,8 @@
         self.assertTrue("[package on hold]" in mail_txt)
         self._verify_common_mail_content(mail_txt)
         self.assertTrue(
-            "Packages with upgradable origin but kept back:\n linux-image"
+            "Packages with upgradable origin but kept back:\n"
+            " Debian wheezy-security:\n  linux-image"
             in mail_txt)
         self.assertFalse(
             "Packages that attempted to upgrade:\n 2vcard" in mail_txt)
diff -Nru unattended-upgrades-1.11/test/test_origin_pattern.py unattended-upgrades-1.12/test/test_origin_pattern.py
--- unattended-upgrades-1.11/test/test_origin_pattern.py	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/test/test_origin_pattern.py	2019-04-18 16:38:31.000000000 +0200
@@ -9,7 +9,7 @@
 import unattended_upgrade
 from unattended_upgrade import (
     check_changes_for_sanity,
-    is_allowed_origin,
+    is_in_allowed_origin,
     get_distro_codename,
     match_whitelist_string,
     UnknownMatcherError,
@@ -100,7 +100,7 @@
         self.assertTrue("o=MoreCorp\\, eink,a=stable" in allowed_origins)
         # test whitelist
         pkg = self._get_mock_package()
-        self.assertTrue(is_allowed_origin(pkg.candidate, allowed_origins))
+        self.assertTrue(is_in_allowed_origin(pkg.candidate, allowed_origins))
 
     def test_escaped_colon(self):
         apt_pkg.config.clear("Unattended-Upgrade")
diff -Nru unattended-upgrades-1.11/test/test_rewind.py unattended-upgrades-1.12/test/test_rewind.py
--- unattended-upgrades-1.11/test/test_rewind.py	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/test/test_rewind.py	2019-04-18 16:38:31.000000000 +0200
@@ -39,8 +39,10 @@
         whitelist = []
         to_upgrade, kept_back = unattended_upgrade.calculate_upgradable_pkgs(
             self.cache, options, self.allowed_origins, blacklist, whitelist)
-        self.assertEqual(to_upgrade, [self.cache["test-package"]])
-        self.assertEqual(kept_back, ["z-package"])
+        self.assertEqual(to_upgrade, [self.cache[p] for p
+                                      in ["test-package", "test2-package",
+                                          "test3-package"]])
+        self.assertEqual(kept_back["Ubuntu lucid-security"], {"z-package"})
 
 
 if __name__ == "__main__":
diff -Nru unattended-upgrades-1.11/test/unattended_upgrade.py unattended-upgrades-1.12/test/unattended_upgrade.py
--- unattended-upgrades-1.11/test/unattended_upgrade.py	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/test/unattended_upgrade.py	2019-04-18 16:38:31.000000000 +0200
@@ -50,15 +50,19 @@
 import syslog
 
 try:
-    from typing import AbstractSet, cast, Dict, Iterable, List, Tuple
+    from typing import AbstractSet, cast, DefaultDict, Dict, Iterable, List
     AbstractSet  # pyflakes
+    DefaultDict  # pyflakes
     Dict  # pyflakes
     Iterable  # pyflakes
     List  # pyflakes
+    from typing import Tuple, Union
     Tuple  # pyflakes
+    Union  # pyflakes
 except ImportError:
     pass
 
+from collections import defaultdict
 from datetime import date
 from email.message import Message
 from gettext import gettext as _
@@ -72,6 +76,8 @@
     Popen,
     PIPE,
 )
+from textwrap import wrap
+
 import apt
 import apt_inst
 import apt_pkg
@@ -178,7 +184,7 @@
             # Only adjust to lower versions to avoid flipping back and forth
             # and to avoid picking a newer version, not selected by apt.
             # This helps avoiding upgrades to experimental's packages.
-            if new_cand.version < pkg.candidate.version:
+            if new_cand < pkg.candidate:
                 logging.debug("adjusting candidate version: %s" % new_cand)
                 pkg.candidate = new_cand
                 return True
@@ -187,6 +193,23 @@
         except NoAllowedOriginError:
             return False
 
+    def call_checked(self, function, pkg, **kwargs):
+        """ Call function and check if package is in the wanted state
+        """
+        try:
+            function(pkg, **kwargs)
+        except SystemError as e:
+            logging.warning(
+                _("package %s upgradable but fails to "
+                  "be marked for upgrade (%s)"), pkg.name, e)
+            self.clear()
+            return False
+
+        return (((function == apt.package.Package.mark_upgrade)
+                 and pkg.marked_upgrade)
+                or ((function == apt.package.Package.mark_install)
+                    and pkg.marked_install))
+
     def call_adjusted(self, function, pkg, **kwargs):
         """Call function, but with adjusting
            packages in changes to come from allowed origins
@@ -195,7 +218,10 @@
            adjusted than only the one's in the final changes set.
         """
         new_pkgs_to_adjust = []  # List[str]
-        pkgs_with_no_allowed_origin = []
+
+        if pkg._pkg.selected_state == apt_pkg.SELSTATE_HOLD:
+            logging.debug("pkg %s is on hold" % pkg.name)
+            return
 
         # adjust candidates in advance if needed
         for pkg_name in self._cached_candidate_pkgnames:
@@ -204,13 +230,30 @@
         if function == apt.package.Package.mark_upgrade \
            and not pkg.is_upgradable:
             raise NoAllowedOriginError
-        function(pkg, **kwargs)
-        changes = self.get_changes()
-        for marked_pkg in changes:
+        marking_succeeded = self.call_checked(function, pkg, **kwargs)
+
+        if not marking_succeeded:
+            logging.debug("falling back to adjusting %s's dependencies "
+                          "recursively" % pkg.name)
+            self.clear()
+            # adjust candidates in advance if needed
+            for pkg_name in self._cached_candidate_pkgnames:
+                self.adjust_candidate(self[pkg_name])
+
+            self.adjust_candidate(pkg)
+            for dep in transitive_dependencies(pkg, self):
+                try:
+                    self.adjust_candidate(self[dep])
+                except KeyError:
+                    pass
+
+            self.call_checked(function, pkg, **kwargs)
+
+        for marked_pkg in self.get_changes():
             if marked_pkg.name in self._cached_candidate_pkgnames:
                 continue
-            if not is_allowed_origin(marked_pkg.candidate,
-                                     self.allowed_origins):
+            if not is_in_allowed_origin(marked_pkg.candidate,
+                                        self.allowed_origins):
                 try:
                     ver_in_allowed_origin(marked_pkg,
                                           self.allowed_origins)
@@ -219,7 +262,7 @@
                         continue
                     new_pkgs_to_adjust.append(marked_pkg)
                 except NoAllowedOriginError:
-                    pkgs_with_no_allowed_origin.append(marked_pkg)
+                    pass
 
         if new_pkgs_to_adjust:
             new_pkg_adjusted = False
@@ -229,9 +272,6 @@
                     new_pkg_adjusted = True
             if new_pkg_adjusted:
                 self.call_adjusted(function, pkg, **kwargs)
-        else:
-            if pkgs_with_no_allowed_origin:
-                raise NoAllowedOriginError
 
     def mark_upgrade_adjusted(self, pkg, **kwargs):
         self.call_adjusted(apt.package.Package.mark_upgrade, pkg, **kwargs)
@@ -394,6 +434,38 @@
             apt_pkg.pkgsystem_lock()
 
 
+class KeptPkgs(defaultdict):
+    """
+    Packages to keep by highest allowed pretty-printed origin
+
+    """
+    def add(self, pkg, cache):
+        # type: (apt.Package, UnattendedUpgradesCache) -> None
+        allowed_origins = cache.allowed_origins
+        for origin in ver_in_allowed_origin(pkg, allowed_origins).origins:
+            if is_allowed_origin(origin, allowed_origins):
+                self[origin.origin + " " + origin.archive].add(pkg.name)
+                return
+
+    def pop_upgradable(self, cache):
+        # type: (UnattendedUpgradesCache) -> List[apt.Package]
+        upgradable = []
+        empty_sets = set()
+        for name, pkg_set in self.items():
+            remove_from_set = set()
+            for pkg_name in pkg_set:
+                pkg = cache[pkg_name]
+                if pkg.marked_install or pkg.marked_upgrade:
+                    remove_from_set.add(pkg_name)
+                    upgradable.append(pkg)
+            pkg_set -= remove_from_set
+            if not pkg_set:
+                empty_sets.add(name)
+        for empty_set in empty_sets:
+            del(self[empty_set])
+        return upgradable
+
+
 class UnattendedUpgradesResult:
     """
     Represent the (potentially partial) results of an unattended-upgrades
@@ -403,7 +475,7 @@
                  success,                 # type: bool
                  result_str="",           # type: str
                  pkgs=[],                 # type: List[str]
-                 pkgs_kept_back=[],       # type: List[str]
+                 pkgs_kept_back=None,     # type: KeptPkgs
                  pkgs_removed=[],         # type: List[str]
                  pkgs_kept_installed=[],  # type: List[str]
                  update_stamp=False       # type: bool
@@ -413,6 +485,8 @@
         self.result_str = result_str
         self.pkgs = pkgs
         self.pkgs_kept_back = pkgs_kept_back
+        if pkgs_kept_back is None:
+            self.pkgs_kept_back = KeptPkgs(set)
         self.pkgs_removed = pkgs_removed
         self.pkgs_kept_installed = pkgs_kept_installed
         self.update_stamp = update_stamp
@@ -643,6 +717,8 @@
     # type: (...) -> bool
     install_log = LogInstallProgress(logfile_dpkg, verbose)
 
+    res = True
+
     # double check any changes we do
     allowed_origins = get_allowed_origins()
 
@@ -657,13 +733,22 @@
         if should_stop():
             return False
         pkg = cache[pkgname]
-        if pkg.is_upgradable:
-            cache.mark_upgrade_adjusted(pkg,
-                                        from_user=not pkg.is_auto_installed)
-        elif not pkg.is_installed:
-            cache.mark_install_adjusted(pkg, from_user=False)
-        else:
+        try:
+            if pkg.is_upgradable:
+                cache.mark_upgrade_adjusted(
+                    pkg, from_user=not pkg.is_auto_installed)
+            elif not pkg.is_installed:
+                cache.mark_install_adjusted(pkg, from_user=False)
+            else:
+                continue
+        except Exception as e:
+            logging.warning(
+                _("package %s upgradable but fails to "
+                  "be marked for upgrade (%s)"), pkgname, e)
+            cache.clear()
+            res = False
             continue
+
         # double check that we are not running into side effects like
         # what could have been caused LP: #1020680
         if not check_changes_for_sanity(cache, allowed_origins, blacklist,
@@ -703,17 +788,24 @@
         if len(to_upgrade) == 0:
             logging.info(_("All upgrades installed"))
             break
-    return True
+    return res
+
+
+def is_allowed_origin(origin, allowed_origins):
+    # type: (apt.package.Origin, List[str]) -> bool
+    for allowed in allowed_origins:
+        if match_whitelist_string(allowed, origin):
+            return True
+    return False
 
 
-def is_allowed_origin(ver, allowed_origins):
+def is_in_allowed_origin(ver, allowed_origins):
     # type: (apt.package.Version, List[str]) -> bool
     if not ver:
         return False
     for origin in ver.origins:
-        for allowed in allowed_origins:
-            if match_whitelist_string(allowed, origin):
-                return True
+        if is_allowed_origin(origin, allowed_origins):
+            return True
     return False
 
 
@@ -728,7 +820,7 @@
                 continue
         except AttributeError:
             pass
-        if is_allowed_origin(ver, allowed_origins):
+        if is_in_allowed_origin(ver, allowed_origins):
             # leave as soon as we have the highest new candidate
             return ver
     raise NoAllowedOriginError()
@@ -779,20 +871,22 @@
     return True
 
 
-def transitive_dependencies(pkg, cache, acc=set()):
-    # type (apt.Package, apt.Cache, AbstractSet[str]) -> bool
+def transitive_dependencies(pkg, cache, acc=set(), valid_types=None):
+    # type (apt.Package, apt.Cache, AbstractSet[str], AbstractSet[str]) -> bool
     """ All (transitive) dependencies of the package
+
+        Note that alternative (|) dependencies are collected, too
     """
-    # Note that alternative (|) dependencies are collected, too
-    valid_types = {'Depends', 'PreDepends', 'Recommends'}
     for dep in pkg.candidate.dependencies:
         for base_dep in dep:
-            if base_dep.name not in acc and base_dep.rawtype in valid_types:
-                acc.add(base_dep.name)
-                try:
-                    transitive_dependencies(cache[base_dep.name], cache, acc)
-                except KeyError:
-                    pass
+            if base_dep.name not in acc:
+                if not valid_types or base_dep.rawtype in valid_types:
+                    acc.add(base_dep.name)
+                    try:
+                        transitive_dependencies(cache[base_dep.name], cache,
+                                                acc, valid_types)
+                    except KeyError:
+                        pass
     return acc
 
 
@@ -804,10 +898,11 @@
 
     upgrade_set_sizes = {}
     # calculate upgrade sets
+    follow_deps = {'Depends', 'PreDepends', 'Recommends'}
     for pkgname in to_upgrade:
         pkg = cache[pkgname]
-        upgrade_set_sizes[pkgname] = \
-            len(transitive_dependencies(pkg, cache).intersection(to_upgrade))
+        upgrade_set_sizes[pkgname] = len(transitive_dependencies(
+            pkg, cache, valid_types=follow_deps).intersection(to_upgrade))
     return sorted(upgrade_set_sizes, key=upgrade_set_sizes.get)
 
 
@@ -830,10 +925,12 @@
             if not any([o.trusted for o in pkg.candidate.origins]):
                 logging.debug("pkg %s is untrusted" % pkg.name)
                 return False
-            if not is_allowed_origin(pkg.candidate, allowed_origins):
+            if not is_in_allowed_origin(pkg.candidate, allowed_origins):
                 logging.debug("pkg %s not in allowed origin" % pkg.name)
                 return False
             if not is_pkg_change_allowed(pkg, blacklist, whitelist):
+                logging.debug("pkg %s is blacklisted or not whitelisted"
+                              % pkg.name)
                 return False
             # check if the package is unsafe to upgrade unattended
             ignore_require_restart = apt_pkg.config.find_b(
@@ -846,6 +943,8 @@
                 return False
     # check that the package we want to upgrade is in the change set
     if desired_pkg and desired_pkg not in changes:
+        logging.debug("pkg %s to be marked for upgrade/install is not marked "
+                      "accordingly" % pkg.name)
         return False
     return True
 
@@ -888,6 +987,45 @@
     return pkg_md5sum
 
 
+def get_md5sum_for_file_installed(conf_file, prefix):
+    # type: (str, str) -> str
+    try:
+        with open(prefix + conf_file, 'rb') as fb:
+            return apt_pkg.md5sum(fb)
+    except IsADirectoryError:
+        # the package replaces a directory wih a configuration file
+        #
+        # if the package changed this way it is safe to assume that
+        # the transition happens without showing a prompt but if the admin
+        # created the directory the admin will need to resolve it after
+        # being notified about the unexpected prompt
+        logging.debug("found conffile %s is a directory on the system "
+                      % conf_file)
+        return "dir"
+    except FileNotFoundError:
+        # if the local file got deleted by the admin thats ok but it may still
+        # trigger a conffile promp (see debian #788049)
+        logging.debug("conffile %s in missing on the system" % conf_file)
+        return ""
+
+
+def map_conf_file(conf_file, conffiles):
+    # type: (str, Union[AbstractSet[str], Dict[str, str]]) -> str
+    """Find respective conffile in a set of conffiles with some heuristics
+    """
+    if conf_file in conffiles:
+        return conf_file
+    elif os.path.join(conf_file, os.path.basename(conf_file)) in conffiles:
+        # new /etc/foo may be old /etc/foo/foo, like in LP: #1822745
+        return os.path.join(conf_file, os.path.basename(conf_file))
+    elif os.path.dirname(conf_file) in conffiles:
+        # new /etc/foo/foo may be old /etc/foo, probably by accident
+        return os.path.dirname(conf_file)
+    # TODO: peek into package's dpkg-maintscript-helper mv_conffile usage
+    else:
+        return None
+
+
 # prefix is *only* needed for the build-in tests
 def conffile_prompt(destFile, prefix=""):
     # type: (str, str) -> bool
@@ -908,11 +1046,11 @@
 
     # get conffile value from pkg, its ok if the new version
     # does not have conffiles anymore
-    pkg_conffiles = ""
+    pkg_conffiles = set()  # type: AbstractSet[str]
     try:
         deb = apt_inst.DebFile(destFile)
-        pkg_conffiles = deb.control.extractdata("conffiles").strip().decode(
-            "utf-8")
+        pkg_conffiles = set(deb.control.extractdata(
+            "conffiles").strip().decode("utf-8").split("\n"))
     except SystemError as e:
         print(_("Apt returned an error, exiting"))
         print(_("error message: %s") % e)
@@ -921,6 +1059,8 @@
         raise
     except LookupError as e:
         logging.debug("No conffiles in deb %s (%s)" % (destFile, e))
+    if not pkg_conffiles:
+        return False
 
     # Conffiles:
     #  /etc/bash_completion.d/m-a c7780fab6b14d75ca54e11e992a6c11c
@@ -946,36 +1086,25 @@
         # might be a dpkg prompt (LP: #936870)
         if md5 == "newconffile":
             continue
-        if not pkg_conffiles or conf_file not in pkg_conffiles.split("\n"):
+        new_conf_file = map_conf_file(conf_file, pkg_conffiles)
+        if not new_conf_file:
             logging.debug("%s not in package conffiles %s" % (
                 conf_file, pkg_conffiles))
             continue
         # record for later
         dpkg_status_conffiles[conf_file] = md5
 
-        # the package replaces a directory wih a configuration file
-        #
-        # if the package changed this way it is safe to assume that
-        # the transition happens without showing a prompt but if the admin
-        # created the directory the admin will need to resolve it after
-        # being notified about the unexpected prompt
-        if os.path.isdir(prefix + conf_file):
-            continue
-
         # test against the installed file, if the local file got deleted
         # by the admin thats ok but it may still trigger a conffile prompt
         # (see debian #788049)
-        current_md5 = ""
-        if os.path.exists(prefix + conf_file):
-            with open(prefix + conf_file, 'rb') as fb:
-                current_md5 = apt_pkg.md5sum(fb)
+        current_md5 = get_md5sum_for_file_installed(conf_file, prefix)
         logging.debug("current md5: %s" % current_md5)
 
         # hashes are the same, no conffile prompt
         if current_md5 == md5:
             continue
         # calculate md5sum from the deb (may take a bit)
-        pkg_md5sum = get_md5sum_for_file_in_deb(destFile, conf_file)
+        pkg_md5sum = get_md5sum_for_file_in_deb(destFile, new_conf_file)
         logging.debug("pkg_md5sum: %s" % pkg_md5sum)
         # the md5sum in the deb is unchanged, this will not
         # trigger a conffile prompt
@@ -990,15 +1119,13 @@
     # now check if there are conffiles in the pkg that where not there
     # in the previous version in the dpkg status file
     if pkg_conffiles:
-        for conf_file in pkg_conffiles.split("\n"):
-            if conf_file not in dpkg_status_conffiles \
-               and os.path.exists(prefix + conf_file):
-                logging.debug("found conffile %s in new pkg but on dpkg "
-                              "status" % conf_file)
+        for conf_file in pkg_conffiles:
+            old_conf_file = map_conf_file(conf_file, dpkg_status_conffiles)
+            if not old_conf_file:
                 pkg_md5sum = get_md5sum_for_file_in_deb(destFile, conf_file)
-                with open(prefix + conf_file, 'rb') as fp:
-                    if pkg_md5sum != apt_pkg.md5sum(fp):
-                        return True
+                current_md5 = get_md5sum_for_file_installed(conf_file, prefix)
+                if current_md5 != "" and pkg_md5sum != current_md5:
+                    return True
     return False
 
 
@@ -1029,16 +1156,10 @@
     return socket.getfqdn()
 
 
-# *sigh* textwrap is nice, but it breaks "linux-image" into two
-# seperate lines
-def wrap(t, width=70, subsequent_indent=""):
-    # type: (str, int, str) -> str
-    out = ""
-    for s in t.split():
-        if (len(out) - out.rfind("\n")) + len(s) > width:
-            out += "\n" + subsequent_indent
-        out += s + " "
-    return out
+def wrap_indent(t, subsequent_indent=" "):
+    # type: (str, str) -> str
+    return "\n".join(wrap(t, break_on_hyphens=False,
+                          subsequent_indent=subsequent_indent))
 
 
 def setup_apt_listchanges(conf="/etc/apt/listchanges.conf"):
@@ -1098,7 +1219,7 @@
 def send_summary_mail(pkgs,                 # type: List[str]
                       res,                  # type: bool
                       result_str,           # type: str
-                      pkgs_kept_back,       # type: List[str]
+                      pkgs_kept_back,       # type: KeptPkgs
                       pkgs_removed,         # type: List[str]
                       pkgs_kept_installed,  # type: List[str]
                       mem_log,              # type: StringIO
@@ -1110,7 +1231,7 @@
     if not to_email:
         return
     if not os.path.exists(MAIL_BINARY) and not os.path.exists(SENDMAIL_BINARY):
-        logging.error(_("No /usr/bin/mail or /usr/sbin/sendmail,"
+        logging.error(_("No /usr/bin/mail or /usr/sbin/sendmail, "
                         "can not send mail. "
                         "You probably want to install the mailx package."))
         return
@@ -1119,6 +1240,9 @@
     if (res and apt_pkg.config.find_b(
             "Unattended-Upgrade::MailOnlyOnError", False)):
         return
+    # if the run was successful but nothing had to be done skip sending email
+    if (res and not pkgs and not pkgs_kept_back and not pkgs_removed):
+        return
     # Check if reboot-required flag is present
     reboot_flag_str = _(
         "[reboot required]") if os.path.isfile(REBOOT_REQUIRED_FILE) else ""
@@ -1131,7 +1255,7 @@
         "{machine}: {result}").format(
             hold_flag=hold_flag_str, reboot_flag=reboot_flag_str,
             machine=host(), result="SUCCESS" if res else "FAILURE").strip()
-    body = wrap(_("Unattended upgrade result: %s") % result_str, 70, " ")
+    body = wrap_indent(_("Unattended upgrade result: %s") % result_str)
     body += "\n\n"
     if os.path.isfile(REBOOT_REQUIRED_FILE):
         body += _(
@@ -1142,19 +1266,22 @@
             body += _("Packages that were upgraded:\n")
         else:
             body += _("Packages that attempted to upgrade:\n")
-        body += " " + wrap(" ".join(pkgs), 70, " ")
+        body += " " + wrap_indent(" ".join(pkgs))
         body += "\n\n"
     if pkgs_kept_back:
         body += _("Packages with upgradable origin but kept back:\n")
-        body += " " + wrap(" ".join(pkgs_kept_back), 70, " ")
-        body += "\n\n"
+        for origin, origin_pkgs in pkgs_kept_back.items():
+            body += " " + origin + ":\n"
+            body += "  " + wrap_indent(" ".join(origin_pkgs),
+                                       subsequent_indent="  ") + "\n"
+        body += "\n"
     if pkgs_removed:
         body += _("Packages that were auto-removed:\n")
-        body += " " + wrap(" ".join(pkgs_removed), 70, " ")
+        body += " " + wrap_indent(" ".join(pkgs_removed))
         body += "\n\n"
     if pkgs_kept_installed:
         body += _("Packages that were kept from being auto-removed:\n")
-        body += " " + wrap(" ".join(pkgs_kept_installed), 70, " ")
+        body += " " + wrap_indent(" ".join(pkgs_kept_installed))
         body += "\n\n"
     if dpkg_log_content:
         body += _("Package installation log:") + "\n"
@@ -1370,7 +1497,7 @@
 
 def try_to_upgrade(pkg,               # type: apt.Package
                    pkgs_to_upgrade,   # type: List[apt.Package]
-                   pkgs_kept_back,    # type: List[str]
+                   pkgs_kept_back,    # type: KeptPkgs
                    cache,             # type: apt.Cache
                    allowed_origins,   # type: List[str]
                    blacklist,         # type: List[str]
@@ -1395,22 +1522,20 @@
             # re-eval pkgs_kept_back as the resolver may fail to
             # directly upgrade a pkg, but that may work during
             # a subsequent operation, see debian bug #639840
-            for pkgname in pkgs_kept_back:
-                if cache[pkgname].marked_install \
-                   or cache[pkgname].marked_upgrade:
-                    pkgs_kept_back.remove(pkgname)
-                    pkgs_to_upgrade.append(cache[pkgname])
+            pkgs_to_upgrade.extend(pkgs_kept_back.pop_upgradable(cache))
         else:
-            logging.debug("sanity check failed")
+            logging.debug("sanity check failed for: %s"
+                          % str({str(p.candidate)
+                                 for p in cache.get_changes()}))
             rewind_cache(cache, pkgs_to_upgrade)
-            pkgs_kept_back.append(pkg.name)
+            pkgs_kept_back.add(pkg, cache)
     except (SystemError, NoAllowedOriginError) as e:
         # can't upgrade
         logging.warning(
             _("package %s upgradable but fails to "
                 "be marked for upgrade (%s)"), pkg.name, e)
         rewind_cache(cache, pkgs_to_upgrade)
-        pkgs_kept_back.append(pkg.name)
+        pkgs_kept_back.add(pkg, cache)
 
 
 def calculate_upgradable_pkgs(cache,             # type: apt.Cache
@@ -1419,9 +1544,9 @@
                               blacklist,         # type: List[str]
                               whitelist,         # type: List[str]
                               ):
-    # type: (...) -> Tuple[List[apt.Package], List[str]]
+    # type: (...) -> Tuple[List[apt.Package], KeptPkgs]
     pkgs_to_upgrade = []  # type: List[apt.Package]
-    pkgs_kept_back = []   # type: List[str]
+    pkgs_kept_back = KeptPkgs(set)
 
     # now do the actual upgrade
     for pkg in cache:
@@ -1684,9 +1809,8 @@
         log_content = get_dpkg_log_content(logfile_dpkg,
                                            install_start_time)
         if not options.dry_run:
-            send_summary_mail(["<unknown>"], False, _("An error occurred"), [],
-                              [], [],
-                              mem_log, log_content)
+            send_summary_mail(["<unknown>"], False, _("An error occurred"),
+                              None, [], [], mem_log, log_content)
         # Re-raise exceptions for apport
         raise
 
@@ -1930,7 +2054,7 @@
                 pkg_name = pkgname_from_deb(item.destfile)
                 if not is_pkgname_in_blacklist(pkg_name, blacklist):
                     blacklist.append("%s$" % re.escape(pkg_name))
-                pkgs_kept_back.append(pkgname_from_deb(pkg_name))
+                pkgs_kept_back.add(cache[pkg_name], cache)
                 pkg_conffile_prompt = True
 
         # redo the selection about the packages to upgrade based on the new
@@ -1954,7 +2078,7 @@
                     pkgs_to_upgrade.append(pkg)
                 else:
                     if not (pkg.name in pkgs_kept_back):
-                        pkgs_kept_back.append(pkg.name)
+                        pkgs_kept_back.add(pkg, cache)
                     logging.info(_("package %s not upgraded"), pkg.name)
                     cache.clear()
                     for pkg2 in pkgs_to_upgrade:
@@ -2057,6 +2181,10 @@
         return UnattendedUpgradesResult(
             False, _("Cache has broken packages, exiting"), pkgs=pkgs)
 
+    # make sure we start autoremovals with a clear cache
+    if cache.get_changes():
+        cache.clear()
+
     # the user wants *all* auto-removals to be removed
     # (unless u-u got signalled to stop gracefully quickly)
     pkgs_removed = []         # type: List[str]
diff -Nru unattended-upgrades-1.11/.travis.yml unattended-upgrades-1.12/.travis.yml
--- unattended-upgrades-1.11/.travis.yml	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/.travis.yml	2019-04-18 16:38:31.000000000 +0200
@@ -10,7 +10,7 @@
 before_install:
  - sudo apt-get update
  - sudo apt-get build-dep unattended-upgrades
- - sudo apt-get install -y dh-systemd fakeroot python3-mock python3-distro-info
+ - sudo apt-get install -y dh-systemd fakeroot python3-mock python3-distro-info equivs
  - which python3
  - sudo apt-get install python3-pip
  - sudo python3 -m pip install -U mypy coverage
diff -Nru unattended-upgrades-1.11/unattended-upgrade unattended-upgrades-1.12/unattended-upgrade
--- unattended-upgrades-1.11/unattended-upgrade	2019-02-18 17:26:05.000000000 +0100
+++ unattended-upgrades-1.12/unattended-upgrade	2019-04-18 16:38:31.000000000 +0200
@@ -50,15 +50,19 @@
 import syslog
 
 try:
-    from typing import AbstractSet, cast, Dict, Iterable, List, Tuple
+    from typing import AbstractSet, cast, DefaultDict, Dict, Iterable, List
     AbstractSet  # pyflakes
+    DefaultDict  # pyflakes
     Dict  # pyflakes
     Iterable  # pyflakes
     List  # pyflakes
+    from typing import Tuple, Union
     Tuple  # pyflakes
+    Union  # pyflakes
 except ImportError:
     pass
 
+from collections import defaultdict
 from datetime import date
 from email.message import Message
 from gettext import gettext as _
@@ -72,6 +76,8 @@
     Popen,
     PIPE,
 )
+from textwrap import wrap
+
 import apt
 import apt_inst
 import apt_pkg
@@ -178,7 +184,7 @@
             # Only adjust to lower versions to avoid flipping back and forth
             # and to avoid picking a newer version, not selected by apt.
             # This helps avoiding upgrades to experimental's packages.
-            if new_cand.version < pkg.candidate.version:
+            if new_cand < pkg.candidate:
                 logging.debug("adjusting candidate version: %s" % new_cand)
                 pkg.candidate = new_cand
                 return True
@@ -187,6 +193,23 @@
         except NoAllowedOriginError:
             return False
 
+    def call_checked(self, function, pkg, **kwargs):
+        """ Call function and check if package is in the wanted state
+        """
+        try:
+            function(pkg, **kwargs)
+        except SystemError as e:
+            logging.warning(
+                _("package %s upgradable but fails to "
+                  "be marked for upgrade (%s)"), pkg.name, e)
+            self.clear()
+            return False
+
+        return (((function == apt.package.Package.mark_upgrade)
+                 and pkg.marked_upgrade)
+                or ((function == apt.package.Package.mark_install)
+                    and pkg.marked_install))
+
     def call_adjusted(self, function, pkg, **kwargs):
         """Call function, but with adjusting
            packages in changes to come from allowed origins
@@ -195,7 +218,10 @@
            adjusted than only the one's in the final changes set.
         """
         new_pkgs_to_adjust = []  # List[str]
-        pkgs_with_no_allowed_origin = []
+
+        if pkg._pkg.selected_state == apt_pkg.SELSTATE_HOLD:
+            logging.debug("pkg %s is on hold" % pkg.name)
+            return
 
         # adjust candidates in advance if needed
         for pkg_name in self._cached_candidate_pkgnames:
@@ -204,13 +230,30 @@
         if function == apt.package.Package.mark_upgrade \
            and not pkg.is_upgradable:
             raise NoAllowedOriginError
-        function(pkg, **kwargs)
-        changes = self.get_changes()
-        for marked_pkg in changes:
+        marking_succeeded = self.call_checked(function, pkg, **kwargs)
+
+        if not marking_succeeded:
+            logging.debug("falling back to adjusting %s's dependencies "
+                          "recursively" % pkg.name)
+            self.clear()
+            # adjust candidates in advance if needed
+            for pkg_name in self._cached_candidate_pkgnames:
+                self.adjust_candidate(self[pkg_name])
+
+            self.adjust_candidate(pkg)
+            for dep in transitive_dependencies(pkg, self):
+                try:
+                    self.adjust_candidate(self[dep])
+                except KeyError:
+                    pass
+
+            self.call_checked(function, pkg, **kwargs)
+
+        for marked_pkg in self.get_changes():
             if marked_pkg.name in self._cached_candidate_pkgnames:
                 continue
-            if not is_allowed_origin(marked_pkg.candidate,
-                                     self.allowed_origins):
+            if not is_in_allowed_origin(marked_pkg.candidate,
+                                        self.allowed_origins):
                 try:
                     ver_in_allowed_origin(marked_pkg,
                                           self.allowed_origins)
@@ -219,7 +262,7 @@
                         continue
                     new_pkgs_to_adjust.append(marked_pkg)
                 except NoAllowedOriginError:
-                    pkgs_with_no_allowed_origin.append(marked_pkg)
+                    pass
 
         if new_pkgs_to_adjust:
             new_pkg_adjusted = False
@@ -229,9 +272,6 @@
                     new_pkg_adjusted = True
             if new_pkg_adjusted:
                 self.call_adjusted(function, pkg, **kwargs)
-        else:
-            if pkgs_with_no_allowed_origin:
-                raise NoAllowedOriginError
 
     def mark_upgrade_adjusted(self, pkg, **kwargs):
         self.call_adjusted(apt.package.Package.mark_upgrade, pkg, **kwargs)
@@ -394,6 +434,38 @@
             apt_pkg.pkgsystem_lock()
 
 
+class KeptPkgs(defaultdict):
+    """
+    Packages to keep by highest allowed pretty-printed origin
+
+    """
+    def add(self, pkg, cache):
+        # type: (apt.Package, UnattendedUpgradesCache) -> None
+        allowed_origins = cache.allowed_origins
+        for origin in ver_in_allowed_origin(pkg, allowed_origins).origins:
+            if is_allowed_origin(origin, allowed_origins):
+                self[origin.origin + " " + origin.archive].add(pkg.name)
+                return
+
+    def pop_upgradable(self, cache):
+        # type: (UnattendedUpgradesCache) -> List[apt.Package]
+        upgradable = []
+        empty_sets = set()
+        for name, pkg_set in self.items():
+            remove_from_set = set()
+            for pkg_name in pkg_set:
+                pkg = cache[pkg_name]
+                if pkg.marked_install or pkg.marked_upgrade:
+                    remove_from_set.add(pkg_name)
+                    upgradable.append(pkg)
+            pkg_set -= remove_from_set
+            if not pkg_set:
+                empty_sets.add(name)
+        for empty_set in empty_sets:
+            del(self[empty_set])
+        return upgradable
+
+
 class UnattendedUpgradesResult:
     """
     Represent the (potentially partial) results of an unattended-upgrades
@@ -403,7 +475,7 @@
                  success,                 # type: bool
                  result_str="",           # type: str
                  pkgs=[],                 # type: List[str]
-                 pkgs_kept_back=[],       # type: List[str]
+                 pkgs_kept_back=None,     # type: KeptPkgs
                  pkgs_removed=[],         # type: List[str]
                  pkgs_kept_installed=[],  # type: List[str]
                  update_stamp=False       # type: bool
@@ -413,6 +485,8 @@
         self.result_str = result_str
         self.pkgs = pkgs
         self.pkgs_kept_back = pkgs_kept_back
+        if pkgs_kept_back is None:
+            self.pkgs_kept_back = KeptPkgs(set)
         self.pkgs_removed = pkgs_removed
         self.pkgs_kept_installed = pkgs_kept_installed
         self.update_stamp = update_stamp
@@ -643,6 +717,8 @@
     # type: (...) -> bool
     install_log = LogInstallProgress(logfile_dpkg, verbose)
 
+    res = True
+
     # double check any changes we do
     allowed_origins = get_allowed_origins()
 
@@ -657,13 +733,22 @@
         if should_stop():
             return False
         pkg = cache[pkgname]
-        if pkg.is_upgradable:
-            cache.mark_upgrade_adjusted(pkg,
-                                        from_user=not pkg.is_auto_installed)
-        elif not pkg.is_installed:
-            cache.mark_install_adjusted(pkg, from_user=False)
-        else:
+        try:
+            if pkg.is_upgradable:
+                cache.mark_upgrade_adjusted(
+                    pkg, from_user=not pkg.is_auto_installed)
+            elif not pkg.is_installed:
+                cache.mark_install_adjusted(pkg, from_user=False)
+            else:
+                continue
+        except Exception as e:
+            logging.warning(
+                _("package %s upgradable but fails to "
+                  "be marked for upgrade (%s)"), pkgname, e)
+            cache.clear()
+            res = False
             continue
+
         # double check that we are not running into side effects like
         # what could have been caused LP: #1020680
         if not check_changes_for_sanity(cache, allowed_origins, blacklist,
@@ -703,17 +788,24 @@
         if len(to_upgrade) == 0:
             logging.info(_("All upgrades installed"))
             break
-    return True
+    return res
+
+
+def is_allowed_origin(origin, allowed_origins):
+    # type: (apt.package.Origin, List[str]) -> bool
+    for allowed in allowed_origins:
+        if match_whitelist_string(allowed, origin):
+            return True
+    return False
 
 
-def is_allowed_origin(ver, allowed_origins):
+def is_in_allowed_origin(ver, allowed_origins):
     # type: (apt.package.Version, List[str]) -> bool
     if not ver:
         return False
     for origin in ver.origins:
-        for allowed in allowed_origins:
-            if match_whitelist_string(allowed, origin):
-                return True
+        if is_allowed_origin(origin, allowed_origins):
+            return True
     return False
 
 
@@ -728,7 +820,7 @@
                 continue
         except AttributeError:
             pass
-        if is_allowed_origin(ver, allowed_origins):
+        if is_in_allowed_origin(ver, allowed_origins):
             # leave as soon as we have the highest new candidate
             return ver
     raise NoAllowedOriginError()
@@ -779,20 +871,22 @@
     return True
 
 
-def transitive_dependencies(pkg, cache, acc=set()):
-    # type (apt.Package, apt.Cache, AbstractSet[str]) -> bool
+def transitive_dependencies(pkg, cache, acc=set(), valid_types=None):
+    # type (apt.Package, apt.Cache, AbstractSet[str], AbstractSet[str]) -> bool
     """ All (transitive) dependencies of the package
+
+        Note that alternative (|) dependencies are collected, too
     """
-    # Note that alternative (|) dependencies are collected, too
-    valid_types = {'Depends', 'PreDepends', 'Recommends'}
     for dep in pkg.candidate.dependencies:
         for base_dep in dep:
-            if base_dep.name not in acc and base_dep.rawtype in valid_types:
-                acc.add(base_dep.name)
-                try:
-                    transitive_dependencies(cache[base_dep.name], cache, acc)
-                except KeyError:
-                    pass
+            if base_dep.name not in acc:
+                if not valid_types or base_dep.rawtype in valid_types:
+                    acc.add(base_dep.name)
+                    try:
+                        transitive_dependencies(cache[base_dep.name], cache,
+                                                acc, valid_types)
+                    except KeyError:
+                        pass
     return acc
 
 
@@ -804,10 +898,11 @@
 
     upgrade_set_sizes = {}
     # calculate upgrade sets
+    follow_deps = {'Depends', 'PreDepends', 'Recommends'}
     for pkgname in to_upgrade:
         pkg = cache[pkgname]
-        upgrade_set_sizes[pkgname] = \
-            len(transitive_dependencies(pkg, cache).intersection(to_upgrade))
+        upgrade_set_sizes[pkgname] = len(transitive_dependencies(
+            pkg, cache, valid_types=follow_deps).intersection(to_upgrade))
     return sorted(upgrade_set_sizes, key=upgrade_set_sizes.get)
 
 
@@ -830,10 +925,12 @@
             if not any([o.trusted for o in pkg.candidate.origins]):
                 logging.debug("pkg %s is untrusted" % pkg.name)
                 return False
-            if not is_allowed_origin(pkg.candidate, allowed_origins):
+            if not is_in_allowed_origin(pkg.candidate, allowed_origins):
                 logging.debug("pkg %s not in allowed origin" % pkg.name)
                 return False
             if not is_pkg_change_allowed(pkg, blacklist, whitelist):
+                logging.debug("pkg %s is blacklisted or not whitelisted"
+                              % pkg.name)
                 return False
             # check if the package is unsafe to upgrade unattended
             ignore_require_restart = apt_pkg.config.find_b(
@@ -846,6 +943,8 @@
                 return False
     # check that the package we want to upgrade is in the change set
     if desired_pkg and desired_pkg not in changes:
+        logging.debug("pkg %s to be marked for upgrade/install is not marked "
+                      "accordingly" % pkg.name)
         return False
     return True
 
@@ -888,6 +987,45 @@
     return pkg_md5sum
 
 
+def get_md5sum_for_file_installed(conf_file, prefix):
+    # type: (str, str) -> str
+    try:
+        with open(prefix + conf_file, 'rb') as fb:
+            return apt_pkg.md5sum(fb)
+    except IsADirectoryError:
+        # the package replaces a directory wih a configuration file
+        #
+        # if the package changed this way it is safe to assume that
+        # the transition happens without showing a prompt but if the admin
+        # created the directory the admin will need to resolve it after
+        # being notified about the unexpected prompt
+        logging.debug("found conffile %s is a directory on the system "
+                      % conf_file)
+        return "dir"
+    except FileNotFoundError:
+        # if the local file got deleted by the admin thats ok but it may still
+        # trigger a conffile promp (see debian #788049)
+        logging.debug("conffile %s in missing on the system" % conf_file)
+        return ""
+
+
+def map_conf_file(conf_file, conffiles):
+    # type: (str, Union[AbstractSet[str], Dict[str, str]]) -> str
+    """Find respective conffile in a set of conffiles with some heuristics
+    """
+    if conf_file in conffiles:
+        return conf_file
+    elif os.path.join(conf_file, os.path.basename(conf_file)) in conffiles:
+        # new /etc/foo may be old /etc/foo/foo, like in LP: #1822745
+        return os.path.join(conf_file, os.path.basename(conf_file))
+    elif os.path.dirname(conf_file) in conffiles:
+        # new /etc/foo/foo may be old /etc/foo, probably by accident
+        return os.path.dirname(conf_file)
+    # TODO: peek into package's dpkg-maintscript-helper mv_conffile usage
+    else:
+        return None
+
+
 # prefix is *only* needed for the build-in tests
 def conffile_prompt(destFile, prefix=""):
     # type: (str, str) -> bool
@@ -908,11 +1046,11 @@
 
     # get conffile value from pkg, its ok if the new version
     # does not have conffiles anymore
-    pkg_conffiles = ""
+    pkg_conffiles = set()  # type: AbstractSet[str]
     try:
         deb = apt_inst.DebFile(destFile)
-        pkg_conffiles = deb.control.extractdata("conffiles").strip().decode(
-            "utf-8")
+        pkg_conffiles = set(deb.control.extractdata(
+            "conffiles").strip().decode("utf-8").split("\n"))
     except SystemError as e:
         print(_("Apt returned an error, exiting"))
         print(_("error message: %s") % e)
@@ -921,6 +1059,8 @@
         raise
     except LookupError as e:
         logging.debug("No conffiles in deb %s (%s)" % (destFile, e))
+    if not pkg_conffiles:
+        return False
 
     # Conffiles:
     #  /etc/bash_completion.d/m-a c7780fab6b14d75ca54e11e992a6c11c
@@ -946,36 +1086,25 @@
         # might be a dpkg prompt (LP: #936870)
         if md5 == "newconffile":
             continue
-        if not pkg_conffiles or conf_file not in pkg_conffiles.split("\n"):
+        new_conf_file = map_conf_file(conf_file, pkg_conffiles)
+        if not new_conf_file:
             logging.debug("%s not in package conffiles %s" % (
                 conf_file, pkg_conffiles))
             continue
         # record for later
         dpkg_status_conffiles[conf_file] = md5
 
-        # the package replaces a directory wih a configuration file
-        #
-        # if the package changed this way it is safe to assume that
-        # the transition happens without showing a prompt but if the admin
-        # created the directory the admin will need to resolve it after
-        # being notified about the unexpected prompt
-        if os.path.isdir(prefix + conf_file):
-            continue
-
         # test against the installed file, if the local file got deleted
         # by the admin thats ok but it may still trigger a conffile prompt
         # (see debian #788049)
-        current_md5 = ""
-        if os.path.exists(prefix + conf_file):
-            with open(prefix + conf_file, 'rb') as fb:
-                current_md5 = apt_pkg.md5sum(fb)
+        current_md5 = get_md5sum_for_file_installed(conf_file, prefix)
         logging.debug("current md5: %s" % current_md5)
 
         # hashes are the same, no conffile prompt
         if current_md5 == md5:
             continue
         # calculate md5sum from the deb (may take a bit)
-        pkg_md5sum = get_md5sum_for_file_in_deb(destFile, conf_file)
+        pkg_md5sum = get_md5sum_for_file_in_deb(destFile, new_conf_file)
         logging.debug("pkg_md5sum: %s" % pkg_md5sum)
         # the md5sum in the deb is unchanged, this will not
         # trigger a conffile prompt
@@ -990,15 +1119,13 @@
     # now check if there are conffiles in the pkg that where not there
     # in the previous version in the dpkg status file
     if pkg_conffiles:
-        for conf_file in pkg_conffiles.split("\n"):
-            if conf_file not in dpkg_status_conffiles \
-               and os.path.exists(prefix + conf_file):
-                logging.debug("found conffile %s in new pkg but on dpkg "
-                              "status" % conf_file)
+        for conf_file in pkg_conffiles:
+            old_conf_file = map_conf_file(conf_file, dpkg_status_conffiles)
+            if not old_conf_file:
                 pkg_md5sum = get_md5sum_for_file_in_deb(destFile, conf_file)
-                with open(prefix + conf_file, 'rb') as fp:
-                    if pkg_md5sum != apt_pkg.md5sum(fp):
-                        return True
+                current_md5 = get_md5sum_for_file_installed(conf_file, prefix)
+                if current_md5 != "" and pkg_md5sum != current_md5:
+                    return True
     return False
 
 
@@ -1029,16 +1156,10 @@
     return socket.getfqdn()
 
 
-# *sigh* textwrap is nice, but it breaks "linux-image" into two
-# seperate lines
-def wrap(t, width=70, subsequent_indent=""):
-    # type: (str, int, str) -> str
-    out = ""
-    for s in t.split():
-        if (len(out) - out.rfind("\n")) + len(s) > width:
-            out += "\n" + subsequent_indent
-        out += s + " "
-    return out
+def wrap_indent(t, subsequent_indent=" "):
+    # type: (str, str) -> str
+    return "\n".join(wrap(t, break_on_hyphens=False,
+                          subsequent_indent=subsequent_indent))
 
 
 def setup_apt_listchanges(conf="/etc/apt/listchanges.conf"):
@@ -1098,7 +1219,7 @@
 def send_summary_mail(pkgs,                 # type: List[str]
                       res,                  # type: bool
                       result_str,           # type: str
-                      pkgs_kept_back,       # type: List[str]
+                      pkgs_kept_back,       # type: KeptPkgs
                       pkgs_removed,         # type: List[str]
                       pkgs_kept_installed,  # type: List[str]
                       mem_log,              # type: StringIO
@@ -1110,7 +1231,7 @@
     if not to_email:
         return
     if not os.path.exists(MAIL_BINARY) and not os.path.exists(SENDMAIL_BINARY):
-        logging.error(_("No /usr/bin/mail or /usr/sbin/sendmail,"
+        logging.error(_("No /usr/bin/mail or /usr/sbin/sendmail, "
                         "can not send mail. "
                         "You probably want to install the mailx package."))
         return
@@ -1119,6 +1240,9 @@
     if (res and apt_pkg.config.find_b(
             "Unattended-Upgrade::MailOnlyOnError", False)):
         return
+    # if the run was successful but nothing had to be done skip sending email
+    if (res and not pkgs and not pkgs_kept_back and not pkgs_removed):
+        return
     # Check if reboot-required flag is present
     reboot_flag_str = _(
         "[reboot required]") if os.path.isfile(REBOOT_REQUIRED_FILE) else ""
@@ -1131,7 +1255,7 @@
         "{machine}: {result}").format(
             hold_flag=hold_flag_str, reboot_flag=reboot_flag_str,
             machine=host(), result="SUCCESS" if res else "FAILURE").strip()
-    body = wrap(_("Unattended upgrade result: %s") % result_str, 70, " ")
+    body = wrap_indent(_("Unattended upgrade result: %s") % result_str)
     body += "\n\n"
     if os.path.isfile(REBOOT_REQUIRED_FILE):
         body += _(
@@ -1142,19 +1266,22 @@
             body += _("Packages that were upgraded:\n")
         else:
             body += _("Packages that attempted to upgrade:\n")
-        body += " " + wrap(" ".join(pkgs), 70, " ")
+        body += " " + wrap_indent(" ".join(pkgs))
         body += "\n\n"
     if pkgs_kept_back:
         body += _("Packages with upgradable origin but kept back:\n")
-        body += " " + wrap(" ".join(pkgs_kept_back), 70, " ")
-        body += "\n\n"
+        for origin, origin_pkgs in pkgs_kept_back.items():
+            body += " " + origin + ":\n"
+            body += "  " + wrap_indent(" ".join(origin_pkgs),
+                                       subsequent_indent="  ") + "\n"
+        body += "\n"
     if pkgs_removed:
         body += _("Packages that were auto-removed:\n")
-        body += " " + wrap(" ".join(pkgs_removed), 70, " ")
+        body += " " + wrap_indent(" ".join(pkgs_removed))
         body += "\n\n"
     if pkgs_kept_installed:
         body += _("Packages that were kept from being auto-removed:\n")
-        body += " " + wrap(" ".join(pkgs_kept_installed), 70, " ")
+        body += " " + wrap_indent(" ".join(pkgs_kept_installed))
         body += "\n\n"
     if dpkg_log_content:
         body += _("Package installation log:") + "\n"
@@ -1370,7 +1497,7 @@
 
 def try_to_upgrade(pkg,               # type: apt.Package
                    pkgs_to_upgrade,   # type: List[apt.Package]
-                   pkgs_kept_back,    # type: List[str]
+                   pkgs_kept_back,    # type: KeptPkgs
                    cache,             # type: apt.Cache
                    allowed_origins,   # type: List[str]
                    blacklist,         # type: List[str]
@@ -1395,22 +1522,20 @@
             # re-eval pkgs_kept_back as the resolver may fail to
             # directly upgrade a pkg, but that may work during
             # a subsequent operation, see debian bug #639840
-            for pkgname in pkgs_kept_back:
-                if cache[pkgname].marked_install \
-                   or cache[pkgname].marked_upgrade:
-                    pkgs_kept_back.remove(pkgname)
-                    pkgs_to_upgrade.append(cache[pkgname])
+            pkgs_to_upgrade.extend(pkgs_kept_back.pop_upgradable(cache))
         else:
-            logging.debug("sanity check failed")
+            logging.debug("sanity check failed for: %s"
+                          % str({str(p.candidate)
+                                 for p in cache.get_changes()}))
             rewind_cache(cache, pkgs_to_upgrade)
-            pkgs_kept_back.append(pkg.name)
+            pkgs_kept_back.add(pkg, cache)
     except (SystemError, NoAllowedOriginError) as e:
         # can't upgrade
         logging.warning(
             _("package %s upgradable but fails to "
                 "be marked for upgrade (%s)"), pkg.name, e)
         rewind_cache(cache, pkgs_to_upgrade)
-        pkgs_kept_back.append(pkg.name)
+        pkgs_kept_back.add(pkg, cache)
 
 
 def calculate_upgradable_pkgs(cache,             # type: apt.Cache
@@ -1419,9 +1544,9 @@
                               blacklist,         # type: List[str]
                               whitelist,         # type: List[str]
                               ):
-    # type: (...) -> Tuple[List[apt.Package], List[str]]
+    # type: (...) -> Tuple[List[apt.Package], KeptPkgs]
     pkgs_to_upgrade = []  # type: List[apt.Package]
-    pkgs_kept_back = []   # type: List[str]
+    pkgs_kept_back = KeptPkgs(set)
 
     # now do the actual upgrade
     for pkg in cache:
@@ -1684,9 +1809,8 @@
         log_content = get_dpkg_log_content(logfile_dpkg,
                                            install_start_time)
         if not options.dry_run:
-            send_summary_mail(["<unknown>"], False, _("An error occurred"), [],
-                              [], [],
-                              mem_log, log_content)
+            send_summary_mail(["<unknown>"], False, _("An error occurred"),
+                              None, [], [], mem_log, log_content)
         # Re-raise exceptions for apport
         raise
 
@@ -1930,7 +2054,7 @@
                 pkg_name = pkgname_from_deb(item.destfile)
                 if not is_pkgname_in_blacklist(pkg_name, blacklist):
                     blacklist.append("%s$" % re.escape(pkg_name))
-                pkgs_kept_back.append(pkgname_from_deb(pkg_name))
+                pkgs_kept_back.add(cache[pkg_name], cache)
                 pkg_conffile_prompt = True
 
         # redo the selection about the packages to upgrade based on the new
@@ -1954,7 +2078,7 @@
                     pkgs_to_upgrade.append(pkg)
                 else:
                     if not (pkg.name in pkgs_kept_back):
-                        pkgs_kept_back.append(pkg.name)
+                        pkgs_kept_back.add(pkg, cache)
                     logging.info(_("package %s not upgraded"), pkg.name)
                     cache.clear()
                     for pkg2 in pkgs_to_upgrade:
@@ -2057,6 +2181,10 @@
         return UnattendedUpgradesResult(
             False, _("Cache has broken packages, exiting"), pkgs=pkgs)
 
+    # make sure we start autoremovals with a clear cache
+    if cache.get_changes():
+        cache.clear()
+
     # the user wants *all* auto-removals to be removed
     # (unless u-u got signalled to stop gracefully quickly)
     pkgs_removed = []         # type: List[str]

Reply to: