Compare commits
45 Commits
ubuntu/gro
...
ubuntu/nob
Author | SHA1 | Date | |
---|---|---|---|
b6ad4da554 | |||
18afebb4df | |||
7b0361b969 | |||
|
940bdd320c | ||
|
8d4c10c1a6 | ||
|
01a7816d7e | ||
a5da2f12fb | |||
|
1e809cd92f | ||
|
10eb134e54 | ||
|
9ef796d74d | ||
cee2f2143b | |||
03e0b5f538 | |||
ebaacb49c2 | |||
25111b9197 | |||
|
a175069ed3 | ||
|
4054e9bf03 | ||
|
f7f06d05c9 | ||
|
46bece00eb | ||
|
1f79703ee1 | ||
|
ea80117a18 | ||
|
c86d8ea9dc | ||
|
f5f745f90a | ||
|
c143cd572c | ||
|
a73ce1aab8 | ||
db429fc70c | |||
6f173457a8 | |||
4ea74c1cd5 | |||
|
0969079731 | ||
|
47a3ae7fe3 | ||
|
73448df6db | ||
|
70bc904cee | ||
|
37b3f7cade | ||
|
ab7695279f | ||
|
4c1dbb68fd | ||
|
e58cb06644 | ||
|
2cb075738b | ||
|
cf4581e9bd | ||
|
da74c198e2 | ||
|
131b40b2b4 | ||
|
148e751176 | ||
|
7e06da13ab | ||
|
d4b440f66e | ||
|
78f3fb3d61 | ||
|
cea3cb0229 | ||
|
be1a29219c |
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
*~
|
||||
debian/files
|
@ -9,3 +9,76 @@ Version=0.1
|
||||
Categories=System;Settings;
|
||||
Keywords=upgrade;update
|
||||
Terminal=false
|
||||
|
||||
Name[ar]=تطبيق الترقية الكاملة
|
||||
GenericName[ar]=تطبيق الترقية الكاملة
|
||||
Comment[ar]=بحث وتطبيق الترقية الكاملة
|
||||
Name[bg]=Приложете пълно надграждане
|
||||
GenericName[bg]=Приложете пълно надграждане
|
||||
Comment[bg]=Търсете и прилагайте пълно надграждане
|
||||
Name[ca]=Aplica l'actualització completa
|
||||
GenericName[ca]=Aplica l'actualització completa
|
||||
Comment[ca]=Cerca i aplica l'actualització completa
|
||||
Name[cs]=Použít úplný upgrade
|
||||
GenericName[cs]=Použít úplný upgrade
|
||||
Comment[cs]=Vyhledejte a použijte úplný upgrade
|
||||
Name[da]=Anvend fuld opgradering
|
||||
GenericName[da]=Anvend fuld opgradering
|
||||
Comment[da]=Søg og anvend fuld opgradering
|
||||
Name[de]=Vollständiges Upgrade anwenden
|
||||
GenericName[de]=Vollständiges Upgrade anwenden
|
||||
Comment[de]=Vollständiges Upgrade suchen und anwenden
|
||||
Name[el]=Εφαρμογή πλήρους αναβάθμισης
|
||||
GenericName[el]=Εφαρμογή πλήρους αναβάθμισης
|
||||
Comment[el]=Αναζήτηση και εφαρμογή πλήρους αναβάθμισης
|
||||
Name[es]=Aplicar actualización completa
|
||||
GenericName[es]=Aplicar actualización completa
|
||||
Comment[es]=Buscar y aplicar la actualización completa
|
||||
Name[et]=Rakendage täielikku täiendust
|
||||
GenericName[et]=Rakendage täielikku täiendust
|
||||
Comment[et]=Otsige ja rakendage täielikku versiooniuuendust
|
||||
Name[fr]=Appliquer la mise à niveau complète
|
||||
GenericName[fr]=Appliquer la mise à niveau complète
|
||||
Comment[fr]=Rechercher et appliquer la mise à niveau complète
|
||||
Name[gl]=Aplicar a actualización completa
|
||||
GenericName[gl]=Aplicar a actualización completa
|
||||
Comment[gl]=Busca e aplica a actualización completa
|
||||
Name[he]=החל שדרוג מלא
|
||||
GenericName[he]=החל שדרוג מלא
|
||||
Comment[he]=חפש והחל שדרוג מלא
|
||||
Name[hr]=Primijenite potpunu nadogradnju
|
||||
GenericName[hr]=Primijenite potpunu nadogradnju
|
||||
Comment[hr]=Pretražite i primijenite potpunu nadogradnju
|
||||
Name[hu]=Teljes frissítés alkalmazása
|
||||
GenericName[hu]=Teljes frissítés alkalmazása
|
||||
Comment[hu]=Keresés és teljes frissítés alkalmazása
|
||||
Name[it]=Applicare l'aggiornamento completo
|
||||
GenericName[it]=Applicare l'aggiornamento completo
|
||||
Comment[it]=Cerca e applica l'aggiornamento completo
|
||||
Name[ja]=フルアップグレードを適用する
|
||||
GenericName[ja]=フルアップグレードを適用する
|
||||
Comment[ja]=フルアップグレードを検索して適用する
|
||||
GenericName[lt]=Taikykite visą atnaujinimą
|
||||
Name[lt]=Taikykite visą atnaujinimą
|
||||
Comment[lt]=Ieškokite ir taikykite visą atnaujinimą
|
||||
Name[nl]=Volledige upgrade toepassen
|
||||
GenericName[nl]=Volledige upgrade toepassen
|
||||
Comment[nl]=Volledige upgrade zoeken en toepassen
|
||||
GenericName[pl]=Zastosuj pełną aktualizację
|
||||
Name[pl]=Zastosuj pełną aktualizację
|
||||
Comment[pl]=Wyszukaj i zastosuj pełną aktualizację
|
||||
Name[pt]=Aplicar atualização completa
|
||||
GenericName[pt]=Aplicar atualização completa
|
||||
Comment[pt]=Pesquisar e aplicar a atualização completa
|
||||
Name[ru]=Применить полное обновление
|
||||
GenericName[ru]=Применить полное обновление
|
||||
Comment[ru]=Поиск и применение полного обновления
|
||||
Name[tr]=Tam Yükseltmeyi Uygula
|
||||
GenericName[tr]=Tam Yükseltmeyi Uygula
|
||||
Comment[tr]=Tam Yükseltmeyi Ara ve Uygula
|
||||
Name[zh_CN]=应用全面升级
|
||||
GenericName[zh_CN]=应用全面升级
|
||||
Comment[zh_CN]=搜索并应用全面升级
|
||||
Name[zh_TW]=應用全面升級
|
||||
GenericName[zh_TW]=應用全面升級
|
||||
Comment[zh_TW]=搜索並應用全面升級
|
||||
|
@ -1,7 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Exec=/usr/libexec/lubuntu-update-notifier/lubuntu-upg-notifier.sh
|
||||
NoDisplay=true
|
||||
Name=upgNotifier
|
||||
Icon=system-software-update
|
||||
Type=Application
|
||||
Version=0.1
|
71
debian/changelog
vendored
71
debian/changelog
vendored
@ -1,3 +1,74 @@
|
||||
lubuntu-update-notifier (0.6.1) UNRELEASED; urgency=medium
|
||||
|
||||
[ Simon Quigley ]
|
||||
* Rough, initial migration to systemd units.
|
||||
* Update translation sources.
|
||||
|
||||
[ FuRuYa7 ]
|
||||
* Added Japanese translation "po/ja.po" file.
|
||||
|
||||
[ Roberalz ]
|
||||
* Update upg-apply.desktop.
|
||||
* Update Spanish translations.
|
||||
* Add Basque translations.
|
||||
* Add Galician translations.
|
||||
|
||||
[ vaba ]
|
||||
* Add an Estonian translation.
|
||||
|
||||
-- Simon Quigley <tsimonq2@ubuntu.com> Tue, 10 Oct 2023 14:14:56 -0500
|
||||
|
||||
lubuntu-update-notifier (0.6.0) mantic; urgency=medium
|
||||
|
||||
* Add support for release upgrading, when all updates are applied (LP: #2038958).
|
||||
|
||||
-- Simon Quigley <tsimonq2@ubuntu.com> Tue, 10 Oct 2023 14:06:19 -0500
|
||||
|
||||
lubuntu-update-notifier (0.5.4) lunar; urgency=medium
|
||||
|
||||
* Disconnect the status_changed() function from the status-changed signal in
|
||||
repair_install(), as it interferes with upgrade_progress_download().
|
||||
(LP: #2012702)
|
||||
* Don't try to pass a string to QTreeWidgetItem when it expects an
|
||||
Iterable[str]. (LP: #2012823)
|
||||
|
||||
-- Aaron Rainbolt <arraybolt3@ubuntu.com> Sun, 26 Mar 2023 10:48:15 -0500
|
||||
|
||||
lubuntu-update-notifier (0.5.3) lunar; urgency=medium
|
||||
|
||||
* Changed some strings and fixed a typo in the autopkgtest tweak
|
||||
|
||||
-- Aaron Rainbolt <arraybolt3@ubuntu.com> Thu, 02 Feb 2023 11:45:32 -0600
|
||||
|
||||
lubuntu-update-notifier (0.5.2) lunar; urgency=medium
|
||||
|
||||
* Tweaked the autopkgtest script to return more detailed debugging info.
|
||||
|
||||
-- Aaron Rainbolt <arraybolt3@ubuntu.com> Thu, 02 Feb 2023 10:41:08 -0600
|
||||
|
||||
lubuntu-update-notifier (0.5.1) lunar; urgency=medium
|
||||
|
||||
* Added functionality for repairing an interrupted upgrade. (LP: #2002255)
|
||||
* Fixed an assumption in the config-file-conflict frontend.
|
||||
* Bumped version number in lubuntu-upgrader.
|
||||
|
||||
-- Aaron Rainbolt <arraybolt3@ubuntu.com> Wed, 14 Dec 2022 12:32:48 -0600
|
||||
|
||||
lubuntu-update-notifier (0.5) lunar; urgency=medium
|
||||
|
||||
* Add a frontend for config-file-conflict.
|
||||
* Update Standards-version to 4.6.1, no changes needed.
|
||||
|
||||
-- Simon Quigley <tsimonq2@ubuntu.com> Wed, 07 Dec 2022 13:26:39 -0600
|
||||
|
||||
lubuntu-update-notifier (0.4) hirsute; urgency=medium
|
||||
|
||||
* Added internationalization support.
|
||||
* Added packages version and description.
|
||||
* Added security package mark and count.
|
||||
|
||||
-- Hans P Möller <hmollercl@lubuntu.me> Sun, 14 Feb 2021 21:06:03 -0300
|
||||
|
||||
lubuntu-update-notifier (0.3) groovy; urgency=medium
|
||||
|
||||
* Added affected packages info.
|
||||
|
8
debian/control
vendored
8
debian/control
vendored
@ -2,13 +2,15 @@ Source: lubuntu-update-notifier
|
||||
Section: admin
|
||||
Priority: optional
|
||||
Maintainer: Hans P Möller <hmollercl@lubuntu.me>
|
||||
Build-Depends: debhelper-compat (=13),
|
||||
Build-Depends: debhelper-compat (= 13),
|
||||
dh-python,
|
||||
gettext,
|
||||
python3-all,
|
||||
python3-apt,
|
||||
python3-setuptools
|
||||
Standards-Version: 4.5.0
|
||||
Standards-Version: 4.6.1
|
||||
Rules-Requires-Root: no
|
||||
Testsuite: autopkgtest-pkg-python
|
||||
|
||||
Package: lubuntu-update-notifier
|
||||
Architecture: all
|
||||
@ -17,8 +19,10 @@ Depends: aptdaemon,
|
||||
lxqt-sudo,
|
||||
python3,
|
||||
python3-aptdaemon (>= 0.6.20ubuntu16),
|
||||
python3-launchpadlib,
|
||||
python3-pyqt5,
|
||||
update-notifier-common,
|
||||
ubuntu-release-upgrader-qt,
|
||||
${misc:Depends},
|
||||
${python3:Depends},
|
||||
${shlibs:Depends}
|
||||
|
5
debian/copyright
vendored
5
debian/copyright
vendored
@ -2,8 +2,9 @@ Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Source: https://phab.lubuntu.me/source/lubuntu-update-notifier/
|
||||
|
||||
Files: *
|
||||
Copyright: © 2019 Lubuntu Team.
|
||||
© 2019 Hans P Möller <hmollercl@lubuntu.me>
|
||||
Copyright: 2019-2022 Lubuntu Team <lubuntu-devel@lists.ubuntu.com>
|
||||
2019 Hans P Möller <hmollercl@lubuntu.me>
|
||||
2022 Simon Quigley <tsimonq2@lubuntu.me>
|
||||
License: GPL-3+
|
||||
|
||||
License: GPL-3+
|
||||
|
2
debian/lubuntu-update-notifier.install
vendored
2
debian/lubuntu-update-notifier.install
vendored
@ -1,2 +0,0 @@
|
||||
#data/upg-apply.desktop usr/share/applications
|
||||
data/upg-notifier-autostart.desktop etc/xdg/autostart
|
12
debian/lubuntu-update-notifier.postinst
vendored
Normal file
12
debian/lubuntu-update-notifier.postinst
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
# This file can be removed following the release of Lubuntu 24.04 LTS
|
||||
# It's to ensure a smooth transition between the autostart file and the new
|
||||
# systemd user units provided
|
||||
|
||||
rm -f /etc/xdg/autostart/upg-notifier-autostart.desktop
|
||||
rm -f /home/*/.config/autostart/upg-notifier-autostart.desktop
|
||||
|
||||
#DEBHELPER#
|
7
debian/lubuntu-update-notifier.user.service
vendored
Normal file
7
debian/lubuntu-update-notifier.user.service
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
[Unit]
|
||||
Description=Lubuntu Update Notifier
|
||||
Wants=update-notifier-download.timer
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/usr/libexec/lubuntu-update-notifier/lubuntu-upg-notifier.sh
|
10
debian/lubuntu-update-notifier.user.timer
vendored
Normal file
10
debian/lubuntu-update-notifier.user.timer
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
[Unit]
|
||||
Description=Lubuntu Update Notifier
|
||||
Requires=lubuntu-update-notifier.service
|
||||
|
||||
[Timer]
|
||||
Unit=lubuntu-update-notifier.service
|
||||
OnCalendar=*-*-* *:00:00
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
17
debian/manpages/lubuntu-upgrader.1
vendored
17
debian/manpages/lubuntu-upgrader.1
vendored
@ -1,14 +1,10 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.11.
|
||||
.TH LUBUNTU-UPGRADER "1" "August 2019" "lubuntu-upgrader 0.1" "User Commands"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.16.
|
||||
.TH LUBUNTU-UPGRADER "1" "February 2021" "lubuntu-upgrader 0.4" "User Commands"
|
||||
.SH NAME
|
||||
lubuntu-upgrader \- is a LXQt GUI for ubuntu system upgrade
|
||||
.SH SYNOPSIS
|
||||
.B lubuntu-upgrader
|
||||
[\fI\,options\/\fR]
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
\fB\-\-version\fR
|
||||
show program's version number and exit
|
||||
.SH DESCRIPTION
|
||||
usage: lubuntu\-upgrader [\-h] [\-c] [\-f] [\-\-version]
|
||||
.SS "optional arguments:"
|
||||
.TP
|
||||
\fB\-h\fR, \fB\-\-help\fR
|
||||
show this help message and exit
|
||||
@ -18,5 +14,8 @@ Update Cache Before Upgrade
|
||||
.TP
|
||||
\fB\-f\fR, \fB\-\-full\-upgrade\fR
|
||||
Full upgrade same as dist\-upgrade
|
||||
.TP
|
||||
\fB\-\-version\fR
|
||||
show program's version number and exit
|
||||
.SH AUTHORS
|
||||
lubuntu-upgrader was primarily written by Hans P Moller.
|
||||
|
2
debian/source/lintian-overrides
vendored
2
debian/source/lintian-overrides
vendored
@ -1,2 +1,2 @@
|
||||
# Wishlist
|
||||
lubuntu-update-notifier source: testsuite-autopkgtest-missing
|
||||
# lubuntu-update-notifier source: testsuite-autopkgtest-missing
|
||||
|
2
debian/tests/control
vendored
Normal file
2
debian/tests/control
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
Tests: run-tests
|
||||
Depends: @
|
31
debian/tests/run-tests
vendored
Executable file
31
debian/tests/run-tests
vendored
Executable file
@ -0,0 +1,31 @@
|
||||
#!/bin/sh
|
||||
|
||||
# test if apt-check is working as expected.
|
||||
|
||||
OUT=`/usr/lib/update-notifier/apt-check 2>&1`
|
||||
oldIFS=$IFS
|
||||
IFS=';'
|
||||
j=0
|
||||
for STRING in $OUT; do
|
||||
case $j in
|
||||
0)
|
||||
UPG=$STRING;;
|
||||
1)
|
||||
SEC=$STRING;;
|
||||
esac
|
||||
j=`expr $j + 1`
|
||||
done
|
||||
IFS=$oldIFS
|
||||
if [ $UPG -ge 0 ]; then
|
||||
echo "Success: /usr/lib/update-notifier/apt-check is working"
|
||||
echo "Debugging output:"
|
||||
echo $OUT;
|
||||
echo "End debugging output"
|
||||
exit 0
|
||||
else
|
||||
echo "Failure: /usr/lib/update-notifier/apt-check is NOT working"
|
||||
echo "Debugging output:"
|
||||
echo $OUT;
|
||||
echo "End debugging output"
|
||||
exit 1
|
||||
fi
|
@ -2,6 +2,7 @@
|
||||
# coding=utf-8
|
||||
|
||||
# Copyright (C) 2019 Hans P. Möller <hmollercl@lubuntu.me>
|
||||
# Copyright (C) 2023 Simon Quigley <tsimonq2@lubuntu.me>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -23,54 +24,90 @@ import subprocess
|
||||
from pathlib import Path
|
||||
import apt_pkg
|
||||
from argparse import ArgumentParser
|
||||
import gettext
|
||||
|
||||
from PyQt5.QtWidgets import (QWidget, QApplication, QLabel, QPushButton,
|
||||
from PyQt5.QtWidgets import (QWidget, QApplication, QLabel, QDialogButtonBox,
|
||||
QHBoxLayout, QVBoxLayout, QTreeWidget,
|
||||
QTreeWidgetItem)
|
||||
from PyQt5.QtCore import Qt
|
||||
QTreeWidgetItem, QHeaderView)
|
||||
from PyQt5.QtCore import Qt, QThread, pyqtSignal
|
||||
from PyQt5.QtGui import QIcon
|
||||
from launchpadlib.launchpad import Launchpad
|
||||
|
||||
import importlib.util
|
||||
|
||||
spec = importlib.util.spec_from_file_location(
|
||||
"apt_check", "/usr/lib/update-notifier/apt_check.py")
|
||||
apt_check = importlib.util.module_from_spec(spec)
|
||||
spec.loader.exec_module(apt_check)
|
||||
|
||||
class RunUpgradeThread(QThread):
|
||||
finished = pyqtSignal()
|
||||
|
||||
def __init__(self, cmd):
|
||||
super().__init__()
|
||||
self.cmd = cmd
|
||||
|
||||
def run(self):
|
||||
process = subprocess.Popen(self.cmd)
|
||||
process.wait()
|
||||
self.finished.emit()
|
||||
|
||||
class Dialog(QWidget):
|
||||
''' UI '''
|
||||
|
||||
def __init__(self, upgrades, security_upgrades, reboot_required, upg_path):
|
||||
def __init__(self, upgrades, security_upgrades, release_upgrade, version, reboot_required, upg_path):
|
||||
QWidget.__init__(self)
|
||||
self.upgrades = upgrades
|
||||
self.security_upgrades = security_upgrades
|
||||
self.release_upgrade = release_upgrade
|
||||
self.version = version
|
||||
self.upg_path = upg_path
|
||||
self.reboot_required = reboot_required
|
||||
|
||||
try:
|
||||
self.launchpad = Launchpad.login_anonymously("lubuntu-update-notifier", "production", version="devel")
|
||||
except:
|
||||
self.launchpad = None
|
||||
|
||||
apt_pkg.init()
|
||||
try:
|
||||
self.cache = apt_pkg.Cache()
|
||||
except SystemError as e:
|
||||
sys.stderr.write("Error: Opening the cache (%s)" % e)
|
||||
sys.stderr.write(_("Error: Opening the cache (%s)") % e)
|
||||
sys.exit(-1)
|
||||
self.depcache = apt_pkg.DepCache(self.cache)
|
||||
self.records = apt_pkg.PackageRecords(self.cache)
|
||||
|
||||
self.initUI()
|
||||
self.upgradeBtn.clicked.connect(self.call_upgrade)
|
||||
self.closeBtn.clicked.connect(self.call_reject)
|
||||
self.buttonBox.rejected.connect(self.call_reject)
|
||||
self.buttonBox.clicked.connect(self.call_upgrade)
|
||||
|
||||
def initUI(self):
|
||||
''' UI initialization '''
|
||||
self.label = QLabel()
|
||||
self.label.setAlignment(Qt.AlignHCenter)
|
||||
self.label.setTextFormat(Qt.RichText)
|
||||
self.label.setOpenExternalLinks(True)
|
||||
|
||||
self.tw = QTreeWidget()
|
||||
self.tw.setColumnCount(1)
|
||||
self.tw.setHeaderLabels(['Affected Packages'])
|
||||
self.tw.setHeaderHidden(True)
|
||||
if self.security_upgrades > 0:
|
||||
self.tw.setColumnCount(2)
|
||||
self.tw.setHeaderLabels([_('Affected Packages'),
|
||||
_('Security')])
|
||||
self.tw.header().setSectionResizeMode(0, QHeaderView.Stretch)
|
||||
self.tw.header().setStretchLastSection(False)
|
||||
else:
|
||||
self.tw.setColumnCount(1)
|
||||
self.tw.setHeaderLabels([_('Affected Packages')])
|
||||
self.tw.setHeaderHidden(True)
|
||||
|
||||
self.upgradeBtn = QPushButton("Upgrade")
|
||||
self.closeBtn = QPushButton("Close")
|
||||
self.buttonBox = QDialogButtonBox(QDialogButtonBox.Cancel |
|
||||
QDialogButtonBox.Apply)
|
||||
text = ""
|
||||
|
||||
hbox = QHBoxLayout()
|
||||
hbox.addStretch(1)
|
||||
hbox.addWidget(self.upgradeBtn)
|
||||
hbox.addWidget(self.closeBtn)
|
||||
hbox.addWidget(self.buttonBox)
|
||||
hbox.addStretch(1)
|
||||
|
||||
vbox = QVBoxLayout()
|
||||
@ -78,8 +115,10 @@ class Dialog(QWidget):
|
||||
vbox.addWidget(self.tw)
|
||||
vbox.addLayout(hbox)
|
||||
|
||||
if self.upg_path is None:
|
||||
self.upgradeBtn.setVisible(False)
|
||||
self.tw.setVisible(False)
|
||||
|
||||
if self.upg_path is None and not self.release_upgrade:
|
||||
self.buttonBox.button(QDialogButtonBox.Apply).setVisible(False)
|
||||
|
||||
self.setLayout(vbox)
|
||||
self.setGeometry(300, 300, 500, 150)
|
||||
@ -87,49 +126,79 @@ class Dialog(QWidget):
|
||||
self.center()
|
||||
|
||||
if self.upgrades > 0:
|
||||
self.tw.setVisible(True)
|
||||
self.depcache.upgrade(True) # True for non safe.
|
||||
pkg_install = list()
|
||||
pkg_upgrade = list()
|
||||
pkg_delete = list()
|
||||
for p in self.cache.packages:
|
||||
if self.depcache.marked_delete(p):
|
||||
pkg_delete.append(p.name)
|
||||
pkg_delete.append(p)
|
||||
elif self.depcache.marked_install(p):
|
||||
pkg_install.append(p.name)
|
||||
pkg_install.append([p, self.depcache.get_candidate_ver(p)])
|
||||
elif self.depcache.marked_upgrade(p):
|
||||
pkg_upgrade.append(p.name)
|
||||
text = "There are upgrades available. Do you want to do a system"
|
||||
text += " upgrade?\nThis will mean packages could be upgraded,"
|
||||
text += " installed, or removed."
|
||||
pkg_upgrade.append([p, self.depcache.get_candidate_ver(p)])
|
||||
text = _("There are upgrades available. Do you want to do a system"
|
||||
" upgrade?")
|
||||
text += "\n"
|
||||
text += _("This will mean packages could be upgraded, installed or"
|
||||
" removed.")
|
||||
if self.security_upgrades > 0:
|
||||
text += "\n" + str(self.security_upgrades)
|
||||
if self.security_upgrades == 1:
|
||||
text += _(" is a security upgrade.")
|
||||
else:
|
||||
text += _(" are security upgrades.")
|
||||
|
||||
if len(pkg_delete) > 0:
|
||||
toDelete = QTreeWidgetItem(['Remove'])
|
||||
toDelete = QTreeWidgetItem([_('Remove')])
|
||||
for p in pkg_delete:
|
||||
td_child = QTreeWidgetItem([p])
|
||||
td_child = QTreeWidgetItem([p.name])
|
||||
toDelete.addChild(td_child)
|
||||
toDelete.setIcon(0, QIcon.fromTheme("edit-delete"))
|
||||
self.tw.addTopLevelItem(toDelete)
|
||||
if len(pkg_install) > 0:
|
||||
toInstall = QTreeWidgetItem(['Install'])
|
||||
toInstall = QTreeWidgetItem([_('Install')])
|
||||
for p in pkg_install:
|
||||
td_child = QTreeWidgetItem([p])
|
||||
td_child = QTreeWidgetItem([p[0].name + " / "
|
||||
+ p[1].ver_str])
|
||||
if apt_check.isSecurityUpgrade(p[1]):
|
||||
td_child.setIcon(1, QIcon.fromTheme("security-high"))
|
||||
toInstall.setIcon(1, QIcon.fromTheme("security-high"))
|
||||
toInstall.addChild(td_child)
|
||||
toInstall.setIcon(0, QIcon.fromTheme("system-software-install"))
|
||||
self.records.lookup(p[1].file_list[0])
|
||||
short = QTreeWidgetItem([self.records.short_desc])
|
||||
td_child.addChild(short)
|
||||
toInstall.setIcon(0, QIcon.fromTheme(
|
||||
"system-software-install"))
|
||||
self.tw.addTopLevelItem(toInstall)
|
||||
if len(pkg_upgrade) > 0:
|
||||
toUpgrade = QTreeWidgetItem(['Upgrade'])
|
||||
toUpgrade = QTreeWidgetItem([_('Upgrade')])
|
||||
for p in pkg_upgrade:
|
||||
td_child = QTreeWidgetItem([p])
|
||||
td_child = QTreeWidgetItem(
|
||||
[p[0].name + " / " + p[0].current_ver.ver_str +
|
||||
" -> " + p[1].ver_str])
|
||||
if apt_check.isSecurityUpgrade(p[1]):
|
||||
td_child.setIcon(1, QIcon.fromTheme("security-high"))
|
||||
toUpgrade.setIcon(1, QIcon.fromTheme("security-high"))
|
||||
toUpgrade.addChild(td_child)
|
||||
self.records.lookup(p[1].file_list[0])
|
||||
short = QTreeWidgetItem([self.records.short_desc])
|
||||
td_child.addChild(short)
|
||||
toUpgrade.setIcon(0, QIcon.fromTheme("system-software-update"))
|
||||
self.tw.addTopLevelItem(toUpgrade)
|
||||
elif self.release_upgrade:
|
||||
self.setWindowTitle("Upgrade Lubuntu")
|
||||
text = self.new_version_text()
|
||||
self.buttonBox.clicked.connect(self.call_release_upgrader)
|
||||
|
||||
if self.reboot_required:
|
||||
if text == "":
|
||||
text = "Reboot is needed"
|
||||
self.upgradeBtn.setVisible(False)
|
||||
text = _("Reboot required")
|
||||
self.buttonBox.button(QDialogButtonBox.Apply).setVisible(False)
|
||||
else:
|
||||
text = text + "\nReboot is needed"
|
||||
text += "\n"
|
||||
text += _("Reboot required")
|
||||
|
||||
self.label.setText(text)
|
||||
|
||||
@ -146,70 +215,126 @@ class Dialog(QWidget):
|
||||
''' when close button is pressed, quit '''
|
||||
app.quit()
|
||||
|
||||
def call_upgrade(self):
|
||||
''' starts upgrade process '''
|
||||
self.label.setText("Upgrading...")
|
||||
# TODO maybe open another thread so notifier won't freeze
|
||||
if self.upg_path == "terminal":
|
||||
# cmd = ['qterminal', '-e', 'sudo', 'apt', 'dist-upgrade']
|
||||
cmd = ['qterminal', '-e', './upg.sh']
|
||||
else:
|
||||
cmd = ['lxqt-sudo', self.upg_path, '--full-upgrade']
|
||||
# process = subprocess.Popen(self.upg_path)
|
||||
# process = subprocess.Popen(cmd, shell=True)
|
||||
self.upgradeBtn.setVisible(False)
|
||||
self.upgradeBtn.setEnabled(False)
|
||||
process = subprocess.Popen(cmd)
|
||||
process.wait()
|
||||
def call_upgrade(self, btnClicked):
|
||||
if(self.buttonBox.buttonRole(btnClicked) ==
|
||||
QDialogButtonBox.ApplyRole):
|
||||
''' starts upgrade process '''
|
||||
self.label.setText(_("Upgrading..."))
|
||||
self.buttonBox.button(QDialogButtonBox.Apply).setEnabled(False)
|
||||
self.buttonBox.button(QDialogButtonBox.Apply).setVisible(False)
|
||||
self.tw.setVisible(False)
|
||||
|
||||
cmd = ["lxqt-sudo", self.upg_path, "--full-upgrade"]
|
||||
self.thread = RunUpgradeThread(cmd)
|
||||
self.thread.finished.connect(self.on_upgrade_finished)
|
||||
self.thread.start()
|
||||
|
||||
def on_upgrade_finished(self):
|
||||
if self.upg_path == "terminal":
|
||||
text = "Upgrade finished"
|
||||
text = _("Upgrade finished")
|
||||
|
||||
reboot_required_path = Path("/var/run/reboot-required")
|
||||
if reboot_required_path.exists():
|
||||
text = text + "\n" + "Restart required"
|
||||
text += "\n" + _("Reboot required")
|
||||
self.label.setText(text)
|
||||
self.closeBtn.setVisible(True)
|
||||
self.closeBtn.setEnabled(True)
|
||||
|
||||
elif self.release_upgrade:
|
||||
self.setWindowTitle("Upgrade Lubuntu")
|
||||
self.label.setText(self.new_version_text())
|
||||
self.buttonBox.button(QDialogButtonBox.Apply).setEnabled(True)
|
||||
self.buttonBox.button(QDialogButtonBox.Apply).setVisible(True)
|
||||
self.buttonBox.clicked.disconnect(self.call_upgrade)
|
||||
self.buttonBox.clicked.connect(self.call_release_upgrader)
|
||||
else:
|
||||
app.quit()
|
||||
|
||||
def call_release_upgrader(self, btnClicked):
|
||||
if self.buttonBox.buttonRole(btnClicked) == QDialogButtonBox.ApplyRole:
|
||||
cmd = ["lxqt-sudo", "do-release-upgrade", "-m", "desktop", "-f", "DistUpgradeViewKDE"]
|
||||
self.thread2 = RunUpgradeThread(cmd)
|
||||
self.thread2.finished.connect(self.call_reject)
|
||||
self.thread2.start()
|
||||
elif self.buttonBox.buttonRole(btnClicked) == QDialogButtonBox.RejectRole:
|
||||
self.call_reject()
|
||||
|
||||
def new_version_text(self):
|
||||
try:
|
||||
main_version = '.'.join(self.version.split()[0].split('.')[:2])
|
||||
codename = self.launchpad.distributions["ubuntu"].getSeries(name_or_version=main_version).name
|
||||
except:
|
||||
codename = None
|
||||
|
||||
if codename:
|
||||
url_suffix = ""
|
||||
point_release = self.version.split(".")[2].split(" ")[0] if "." in self.version[4:] else "0"
|
||||
if point_release != "0":
|
||||
url_suffix = f"-{int(point_release)}"
|
||||
url_suffix += "-released"
|
||||
|
||||
text = f"<a href='https://lubuntu.me/{codename}{url_suffix}/'>"
|
||||
text += _("A new version of Lubuntu") + "</a> "
|
||||
text += _("is available. Would you like to install it?")
|
||||
else:
|
||||
text = _("A new version of Lubuntu is available. Would you like to install it?")
|
||||
|
||||
return text
|
||||
|
||||
|
||||
class App(QApplication):
|
||||
'''application'''
|
||||
def __init__(self, upgrades, security_upgrades, reboot_required, upg_path,
|
||||
|
||||
def __init__(self, upgrades, security_upgrades, release_upgrade, version, reboot_required, upg_path,
|
||||
*args):
|
||||
QApplication.__init__(self, *args)
|
||||
self.dialog = Dialog(upgrades, security_upgrades, reboot_required,
|
||||
self.dialog = Dialog(upgrades, security_upgrades, release_upgrade, version, reboot_required,
|
||||
upg_path)
|
||||
self.dialog.show()
|
||||
|
||||
|
||||
def main(args, upgrades, security_upgrades, reboot_required, upg_path):
|
||||
|
||||
def main(args, upgrades, security_upgrades, release_upgrade, version, reboot_required, upg_path):
|
||||
'''main'''
|
||||
global app
|
||||
app = App(upgrades, security_upgrades, reboot_required, upg_path, args)
|
||||
app = App(upgrades, security_upgrades, release_upgrade, version, reboot_required, upg_path, args)
|
||||
app.setWindowIcon(QIcon.fromTheme("system-software-update"))
|
||||
app.exec_()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
localesApp = "lubuntu-update-notifier"
|
||||
localesDir = "/usr/share/locale"
|
||||
gettext.bindtextdomain(localesApp, localesDir)
|
||||
gettext.textdomain(localesApp)
|
||||
_ = gettext.gettext
|
||||
|
||||
parser = ArgumentParser()
|
||||
parser.add_argument("-p",
|
||||
"--upgrader-sw",
|
||||
dest="upg_path",
|
||||
help="Define software/app to open for upgrade",
|
||||
help=_("Define software/app to open for upgrade"),
|
||||
metavar="APP")
|
||||
parser.add_argument("-u",
|
||||
"--upgrades",
|
||||
dest="upgrades",
|
||||
help="How many upgrades are available",
|
||||
help=_("How many upgrades are available"),
|
||||
metavar="APP")
|
||||
parser.add_argument("-s",
|
||||
"--security-upg",
|
||||
dest="security_upgrades",
|
||||
help="How many security upgrades are available",
|
||||
help=_("How many security upgrades are available"),
|
||||
metavar="APP")
|
||||
parser.add_argument("-r",
|
||||
"--release-upgrade",
|
||||
dest="release_upgrade",
|
||||
help=_("Whether a release upgrade is required"),
|
||||
type=str,
|
||||
metavar="APP")
|
||||
parser.add_argument("-v",
|
||||
"--release-upgrade-version",
|
||||
dest="version",
|
||||
help=_("If a release upgrade is available, provide the version"),
|
||||
type=str,
|
||||
metavar="APP")
|
||||
|
||||
options = parser.parse_args()
|
||||
@ -217,6 +342,11 @@ if __name__ == "__main__":
|
||||
reboot_required_path = Path("/var/run/reboot-required")
|
||||
reboot_required = reboot_required_path.exists()
|
||||
|
||||
if int(options.upgrades) > 0 or reboot_required:
|
||||
if int(options.release_upgrade) == 0:
|
||||
options.release_upgrade = True
|
||||
else:
|
||||
options.release_upgrade = False
|
||||
|
||||
if int(options.upgrades) > 0 or reboot_required or options.release_upgrade:
|
||||
main(sys.argv, int(options.upgrades), int(options.security_upgrades),
|
||||
reboot_required, options.upg_path)
|
||||
options.release_upgrade, options.version, reboot_required, options.upg_path)
|
||||
|
@ -16,22 +16,25 @@
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
while true;
|
||||
do
|
||||
OUT=`/usr/lib/update-notifier/apt-check 2>&1`
|
||||
oldIFS=$IFS
|
||||
IFS=';'
|
||||
j=0
|
||||
for STRING in $OUT; do
|
||||
case $j in
|
||||
0)
|
||||
UPG=$STRING;;
|
||||
1)
|
||||
SEC=$STRING;;
|
||||
esac
|
||||
j=`expr $j + 1`
|
||||
done
|
||||
IFS=$oldIFS
|
||||
/usr/libexec/lubuntu-update-notifier/lubuntu-notifier.py -u $UPG -s $SEC -p /usr/bin/lubuntu-upgrader
|
||||
sleep 86400
|
||||
done;
|
||||
OUT=`/usr/lib/update-notifier/apt-check 2>&1`
|
||||
oldIFS=$IFS
|
||||
IFS=';'
|
||||
j=0
|
||||
for STRING in $OUT; do
|
||||
case $j in
|
||||
0)
|
||||
UPG=$STRING;;
|
||||
1)
|
||||
SEC=$STRING;;
|
||||
esac
|
||||
j=`expr $j + 1`
|
||||
done
|
||||
IFS=$oldIFS
|
||||
|
||||
NEWREL_CHECK=`/usr/bin/do-release-upgrade -c 2>&1`
|
||||
NEWREL=$?
|
||||
if [ "$NEWREL" -eq 0 ]; then
|
||||
VERSION=`echo $NEWREL_CHECK | awk -F\' '/available/{print $2}'`
|
||||
fi
|
||||
|
||||
/usr/libexec/lubuntu-update-notifier/lubuntu-notifier.py -u $UPG -s $SEC -r $NEWREL -v $VERSION -p /usr/bin/lubuntu-upgrader
|
||||
|
113
lubuntu-upgrader
113
lubuntu-upgrader
@ -2,6 +2,7 @@
|
||||
# coding=utf-8
|
||||
|
||||
# Copyright (C) 2019 Hans P. Möller <hmollercl@lubuntu.me>
|
||||
# Copyright (C) 2022 Simon Quigley <tsimonq2@lubuntu.me>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -22,7 +23,7 @@
|
||||
import sys
|
||||
import os
|
||||
from pathlib import Path
|
||||
# from optparse import OptionParser
|
||||
import gettext
|
||||
from argparse import ArgumentParser
|
||||
from PyQt5.QtWidgets import (QWidget, QApplication, QLabel, QPushButton,
|
||||
QHBoxLayout, QVBoxLayout, QProgressBar,
|
||||
@ -64,6 +65,8 @@ class DialogUpg(QWidget):
|
||||
#stderr=subprocess.PIPE
|
||||
stderr=self.slave)'''
|
||||
|
||||
self.trans3 = self.apt_client.fix_incomplete_install()
|
||||
self.repair_install()
|
||||
if options.fullUpgrade:
|
||||
self.trans2 = self.apt_client.upgrade_system(safe_mode=False)
|
||||
self.setWindowTitle('Full Upgrade')
|
||||
@ -126,7 +129,13 @@ class DialogUpg(QWidget):
|
||||
'''upgrade progressbar during update'''
|
||||
self.progressBar.setVisible(True)
|
||||
self.progressBar.setValue(progress)
|
||||
self.label.setText("Updating cache...")
|
||||
self.label.setText(_("Updating cache..."))
|
||||
|
||||
def repair_progress(self, transaction, progress):
|
||||
'''upgrade progressbar during update'''
|
||||
self.progressBar.setVisible(True)
|
||||
self.progressBar.setValue(progress)
|
||||
self.label.setText(_("Repairing interrupted upgrade if necessary..."))
|
||||
|
||||
def update_progress_download(self, transaction, uri, status, short_desc,
|
||||
total_size, current_size, msg):
|
||||
@ -183,11 +192,11 @@ class DialogUpg(QWidget):
|
||||
'''print update detail info'''
|
||||
if total_items > 0:
|
||||
self.plainTextEdit.setVisible(True)
|
||||
if self.detailText != "Fetching " + str(
|
||||
current_items) + " of " + str(total_items):
|
||||
if self.detailText != _("Fetching") + str(
|
||||
current_items) + " " + _("of") + " " + str(total_items):
|
||||
self.detailText = (
|
||||
"Fetching " + str(current_items) + " of "
|
||||
+ str(total_items)
|
||||
_("Fetching") + " " + str(current_items) + " " + _("of") +
|
||||
" " + str(total_items)
|
||||
)
|
||||
self.label.setText(self.detailText + "\n" + self.downloadText)
|
||||
|
||||
@ -196,11 +205,11 @@ class DialogUpg(QWidget):
|
||||
'''print upgrade detail info'''
|
||||
if total_items > 0:
|
||||
self.plainTextEdit.setVisible(True)
|
||||
if self.detailText != "Downloaded " + str(
|
||||
current_items) + " of " + str(total_items):
|
||||
if self.detailText != _("Downloaded") + " " + str(
|
||||
current_items) + " " + _("of") + " " + str(total_items):
|
||||
self.detailText = (
|
||||
"Downloaded " + str(current_items) + " of "
|
||||
+ str(total_items)
|
||||
_("Downloaded") + " " + str(current_items) + " " +
|
||||
_("of") + " " + str(total_items)
|
||||
)
|
||||
self.label.setText(self.detailText + "\n" + self.downloadText)
|
||||
|
||||
@ -211,16 +220,16 @@ class DialogUpg(QWidget):
|
||||
error_desc = get_error_description_from_enum(
|
||||
transaction.error.code)
|
||||
|
||||
text = "Upgrade finished"
|
||||
text = _("Upgrade finished")
|
||||
|
||||
reboot_required_path = Path("/var/run/reboot-required")
|
||||
if reboot_required_path.exists():
|
||||
text = text + "\n" + "Restart required"
|
||||
text = text + "\n" + _("Reboot required")
|
||||
self.progressBar.setVisible(False)
|
||||
|
||||
if len(self.errors) > 0:
|
||||
text = text + "\n With some Errors"
|
||||
self.plainTextEdit.appendPlainText("Error Resume:\n")
|
||||
text += "\n" + _("With some Errors")
|
||||
self.plainTextEdit.appendPlainText(_("Error Resume:") + "\n")
|
||||
for error in self.errors:
|
||||
self.plainTextEdit.setEnabled(False)
|
||||
self.plainTextEdit.insertPlainText(error + "\n")
|
||||
@ -271,7 +280,7 @@ class DialogUpg(QWidget):
|
||||
|
||||
def update_finish(self, transaction, exit_state):
|
||||
'''when update finish'''
|
||||
self.label.setText("Update Cache Finished")
|
||||
self.label.setText(_("Update Cache Finished"))
|
||||
if exit_state == EXIT_FAILED:
|
||||
error_string = get_error_string_from_enum(transaction.error.code)
|
||||
error_desc = get_error_description_from_enum(
|
||||
@ -312,6 +321,29 @@ class DialogUpg(QWidget):
|
||||
# print("PTY:" + str(self.slave))
|
||||
print("Status Details:" + details)
|
||||
|
||||
def config_file_conflict(self, transaction, cur, new):
|
||||
title = "Conflicting Configuration"
|
||||
text = "Updating the system will result in the following file being "
|
||||
text += "overwritten: " + cur + "\n\nWhat would you like to do?"
|
||||
query = QMessageBox()
|
||||
query.setWindowTitle(title)
|
||||
query.setText(text)
|
||||
query.setIcon(QMessageBox.Question)
|
||||
query.setStandardButtons(QMessageBox.Yes|QMessageBox.No)
|
||||
yes = query.button(QMessageBox.Yes)
|
||||
yes.setText("Overwrite")
|
||||
no = query.button(QMessageBox.No)
|
||||
no.setText("Keep Existing")
|
||||
query.setDefaultButton(no)
|
||||
query.exec_()
|
||||
|
||||
if query.clickedButton() == yes:
|
||||
answer = "replace"
|
||||
elif query.clickedButton() == no:
|
||||
answer = "keep"
|
||||
|
||||
transaction.resolve_config_file_conflict(config=cur, answer=answer)
|
||||
|
||||
def upgrade(self):
|
||||
'''runs upgrade'''
|
||||
try:
|
||||
@ -327,6 +359,8 @@ class DialogUpg(QWidget):
|
||||
self.trans2.connect("status-details-changed",
|
||||
self.status_details_changed)
|
||||
self.trans2.connect("status-changed", self.status_changed)
|
||||
self.trans2.connect("config-file-conflict",
|
||||
self.config_file_conflict)
|
||||
|
||||
# TODO make a terminal work to see more info
|
||||
# self.trans2.set_terminal(os.ttyname(self.slave))
|
||||
@ -334,8 +368,6 @@ class DialogUpg(QWidget):
|
||||
'''
|
||||
# TODO implement this
|
||||
self.trans2.connect("medium-required", self._on_medium_required)
|
||||
self.trans2.connect("config-file-conflict",
|
||||
self._on_config_file_conflict)
|
||||
remove_obsoleted_depends
|
||||
'''
|
||||
self.trans2.set_debconf_frontend('kde')
|
||||
@ -349,6 +381,37 @@ class DialogUpg(QWidget):
|
||||
'''when close button is pushed, quit'''
|
||||
app.quit()
|
||||
|
||||
def repair_install(self):
|
||||
self.closeBtn.setVisible(False)
|
||||
try:
|
||||
self.trans3.connect('progress-changed', self.repair_progress)
|
||||
# TODO the next line breaks the ability to see download progress
|
||||
# for... some reason. Maybe an aptd bug?
|
||||
# self.trans3.connect('status-changed', self.status_changed)
|
||||
self.trans3.connect('status-details-changed',
|
||||
self.status_details_changed)
|
||||
self.trans3.connect('finished', self.repair_finish)
|
||||
self.trans3.connect('error', self.upgrade_error)
|
||||
self.trans3.set_debconf_frontend('kde')
|
||||
self.trans3.run()
|
||||
|
||||
except (NotAuthorizedError, TransactionFailed) as e:
|
||||
print("Warning: install transaction not completed successfully:"
|
||||
+ "{}".format(e))
|
||||
|
||||
def repair_finish(self, transaction, exit_state):
|
||||
'''when repair finish'''
|
||||
self.label.setText(_("Repair Finished (if repair was needed)"))
|
||||
if exit_state == EXIT_FAILED:
|
||||
error_string = get_error_string_from_enum(transaction.error.code)
|
||||
error_desc = get_error_description_from_enum(
|
||||
transaction.error.code)
|
||||
self.plainTextEdit.setEnabled(False)
|
||||
self.plainTextEdit.moveCursor(QTextCursor.End)
|
||||
self.plainTextEdit.insertPlainText(error_string + "\n")
|
||||
self.plainTextEdit.insertPlainText(error_desc + "\n")
|
||||
self.plainTextEdit.moveCursor(QTextCursor.End)
|
||||
self.plainTextEdit.setEnabled(True)
|
||||
|
||||
class App(QApplication):
|
||||
'''app'''
|
||||
@ -366,8 +429,8 @@ def main(args, options):
|
||||
|
||||
# Check for root permissions
|
||||
if os.geteuid() != 0:
|
||||
text = "Please run this software with administrative rights."
|
||||
text += "To do so, run this program with lxqt-sudo."
|
||||
text = _("Please run this software with administrative rights."
|
||||
"To do so, run this program with lxqt-sudo.")
|
||||
title = "Need administrative powers"
|
||||
QMessageBox.critical(None, title, text)
|
||||
sys.exit()
|
||||
@ -376,21 +439,27 @@ def main(args, options):
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
localesApp ="lubuntu-update-notifier"
|
||||
localesDir ="/usr/share/locale"
|
||||
gettext.bindtextdomain(localesApp, localesDir)
|
||||
gettext.textdomain(localesApp)
|
||||
_ = gettext.gettext
|
||||
|
||||
# check arguments
|
||||
parser = ArgumentParser()
|
||||
parser.add_argument("-c",
|
||||
"--cache-update",
|
||||
action="store_true",
|
||||
dest="cacheUpdate",
|
||||
help="Update Cache Before Upgrade")
|
||||
help=_("Update Cache Before Upgrade"))
|
||||
parser.add_argument("-f",
|
||||
"--full-upgrade",
|
||||
action="store_true",
|
||||
dest="fullUpgrade",
|
||||
help="Full upgrade same as dist-upgrade")
|
||||
help=_("Full upgrade same as dist-upgrade"))
|
||||
parser.add_argument('--version',
|
||||
action='version',
|
||||
version='%(prog)s 0.1')
|
||||
version='%(prog)s 0.5.1')
|
||||
options = parser.parse_args()
|
||||
|
||||
# run it
|
||||
|
159
po/es.po
Normal file
159
po/es.po
Normal file
@ -0,0 +1,159 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-11-29 17:43-0600\n"
|
||||
"PO-Revision-Date: 2023-12-01 14:31+0100\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"Language: es\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Poedit 3.4.1\n"
|
||||
|
||||
#: lubuntu-upgrader:132
|
||||
msgid "Updating cache..."
|
||||
msgstr "Actualizando cache..."
|
||||
|
||||
#: lubuntu-upgrader:138
|
||||
msgid "Repairing interrupted upgrade if necessary..."
|
||||
msgstr "Reparando la actualización interrumpida si es necesario..."
|
||||
|
||||
#: lubuntu-upgrader:195 lubuntu-upgrader:198
|
||||
msgid "Fetching"
|
||||
msgstr "Recuperando"
|
||||
|
||||
#: lubuntu-upgrader:196 lubuntu-upgrader:198 lubuntu-upgrader:209
|
||||
#: lubuntu-upgrader:212
|
||||
msgid "of"
|
||||
msgstr "de"
|
||||
|
||||
#: lubuntu-upgrader:208 lubuntu-upgrader:211
|
||||
msgid "Downloaded"
|
||||
msgstr "Descargado"
|
||||
|
||||
#: lubuntu-upgrader:223 lubuntu-notifier.py:234
|
||||
msgid "Upgrade finished"
|
||||
msgstr "Actualización completada"
|
||||
|
||||
#: lubuntu-upgrader:227 lubuntu-notifier.py:197 lubuntu-notifier.py:201
|
||||
#: lubuntu-notifier.py:238
|
||||
msgid "Reboot required"
|
||||
msgstr "Requiere reinicio"
|
||||
|
||||
#: lubuntu-upgrader:231
|
||||
msgid "With some Errors"
|
||||
msgstr "Con algunos Errores"
|
||||
|
||||
#: lubuntu-upgrader:232
|
||||
msgid "Error Resume:"
|
||||
msgstr "Resumen de Errores:"
|
||||
|
||||
#: lubuntu-upgrader:283
|
||||
msgid "Update Cache Finished"
|
||||
msgstr "Actualización de Cache Terminada"
|
||||
|
||||
#: lubuntu-upgrader:404
|
||||
msgid "Repair Finished (if repair was needed)"
|
||||
msgstr "Reparación terminada (si se necesitaba reparación)"
|
||||
|
||||
#: lubuntu-upgrader:432
|
||||
msgid ""
|
||||
"Please run this software with administrative rights.To do so, run this "
|
||||
"program with lxqt-sudo."
|
||||
msgstr ""
|
||||
"Por favor corre este software como administrador. Para hacerlo ejecútarlo "
|
||||
"con lxqt-sudo."
|
||||
|
||||
#: lubuntu-upgrader:454
|
||||
msgid "Update Cache Before Upgrade"
|
||||
msgstr "Actualiza el Cache antes de la Actualización"
|
||||
|
||||
#: lubuntu-upgrader:459
|
||||
msgid "Full upgrade same as dist-upgrade"
|
||||
msgstr "\"Full upgrade\" lo mismo que \"dist-upgrade\""
|
||||
|
||||
#: lubuntu-notifier.py:76
|
||||
#, python-format
|
||||
msgid "Error: Opening the cache (%s)"
|
||||
msgstr "Error: Abriendo el caché (%s)"
|
||||
|
||||
#: lubuntu-notifier.py:95 lubuntu-notifier.py:101
|
||||
msgid "Affected Packages"
|
||||
msgstr "Paquetes afectados"
|
||||
|
||||
#: lubuntu-notifier.py:96
|
||||
msgid "Security"
|
||||
msgstr "Seguridad"
|
||||
|
||||
#: lubuntu-notifier.py:141
|
||||
msgid "There are upgrades available. Do you want to do a system upgrade?"
|
||||
msgstr ""
|
||||
"Hay actualizaciones disponibles ¿Quiere hacer una actualización del sistema?"
|
||||
|
||||
#: lubuntu-notifier.py:144
|
||||
msgid "This will mean packages could be upgraded, installed or removed."
|
||||
msgstr "Esto implica que paquetes pueden actualizarse, instalarse o removerse."
|
||||
|
||||
#: lubuntu-notifier.py:149
|
||||
msgid " is a security upgrade."
|
||||
msgstr " es una actualización de seguridad."
|
||||
|
||||
#: lubuntu-notifier.py:151
|
||||
msgid " are security upgrades."
|
||||
msgstr " son actualizaciones de seguridad."
|
||||
|
||||
#: lubuntu-notifier.py:154
|
||||
msgid "Remove"
|
||||
msgstr "Quitar"
|
||||
|
||||
#: lubuntu-notifier.py:161
|
||||
msgid "Install"
|
||||
msgstr "Instalar"
|
||||
|
||||
#: lubuntu-notifier.py:176
|
||||
msgid "Upgrade"
|
||||
msgstr "Actualizar"
|
||||
|
||||
#: lubuntu-notifier.py:222
|
||||
msgid "Upgrading..."
|
||||
msgstr "Actualizando..."
|
||||
|
||||
#: lubuntu-notifier.py:276
|
||||
msgid "A new version of Lubuntu"
|
||||
msgstr "Una nueva versión de Lubuntu"
|
||||
|
||||
#: lubuntu-notifier.py:277
|
||||
msgid "is available. Would you like to install it?"
|
||||
msgstr "está disponible. ¿Quiere instalarlo?"
|
||||
|
||||
#: lubuntu-notifier.py:279
|
||||
msgid "A new version of Lubuntu is available. Would you like to install it?"
|
||||
msgstr "Ya está disponible una nueva versión de Lubuntu. Quieres instalarla?"
|
||||
|
||||
#: lubuntu-notifier.py:315
|
||||
msgid "Define software/app to open for upgrade"
|
||||
msgstr "Define el software o app para actualizar"
|
||||
|
||||
#: lubuntu-notifier.py:320
|
||||
msgid "How many upgrades are available"
|
||||
msgstr "Cuántas actualizaciones hay disponibles"
|
||||
|
||||
#: lubuntu-notifier.py:325
|
||||
msgid "How many security upgrades are available"
|
||||
msgstr "Cuántas actualizaciones de seguridad hay disponibles"
|
||||
|
||||
#: lubuntu-notifier.py:330
|
||||
msgid "Whether a release upgrade is required"
|
||||
msgstr "Si se requiere una actualización de versión"
|
||||
|
||||
#: lubuntu-notifier.py:336
|
||||
msgid "If a release upgrade is available, provide the version"
|
||||
msgstr "Si hay una actualización de versión disponible, proporcione la versión"
|
160
po/et.po
Normal file
160
po/et.po
Normal file
@ -0,0 +1,160 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-11-29 17:43-0600\n"
|
||||
"PO-Revision-Date: 2023-05-27 13:36+0300\n"
|
||||
"Last-Translator: vaba <vaba@riseup.net>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: et\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 2.3\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: lubuntu-upgrader:132
|
||||
msgid "Updating cache..."
|
||||
msgstr "Vahemälu värskendamine..."
|
||||
|
||||
#: lubuntu-upgrader:138
|
||||
msgid "Repairing interrupted upgrade if necessary..."
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-upgrader:195 lubuntu-upgrader:198
|
||||
msgid "Fetching"
|
||||
msgstr "Tõmbamine"
|
||||
|
||||
#: lubuntu-upgrader:196 lubuntu-upgrader:198 lubuntu-upgrader:209
|
||||
#: lubuntu-upgrader:212
|
||||
msgid "of"
|
||||
msgstr "/"
|
||||
|
||||
#: lubuntu-upgrader:208 lubuntu-upgrader:211
|
||||
msgid "Downloaded"
|
||||
msgstr "Allalaaditud"
|
||||
|
||||
#: lubuntu-upgrader:223 lubuntu-notifier.py:234
|
||||
msgid "Upgrade finished"
|
||||
msgstr "Uuendamine on lõpetatud"
|
||||
|
||||
#: lubuntu-upgrader:227 lubuntu-notifier.py:197 lubuntu-notifier.py:201
|
||||
#: lubuntu-notifier.py:238
|
||||
msgid "Reboot required"
|
||||
msgstr "Vajalik taaskäivitus"
|
||||
|
||||
#: lubuntu-upgrader:231
|
||||
msgid "With some Errors"
|
||||
msgstr "Mõnede vigadega"
|
||||
|
||||
#: lubuntu-upgrader:232
|
||||
msgid "Error Resume:"
|
||||
msgstr "Viga jätkamisel:"
|
||||
|
||||
#: lubuntu-upgrader:283
|
||||
msgid "Update Cache Finished"
|
||||
msgstr "Vahemälu värskendamine on lõpetatud"
|
||||
|
||||
#: lubuntu-upgrader:404
|
||||
msgid "Repair Finished (if repair was needed)"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-upgrader:432
|
||||
msgid ""
|
||||
"Please run this software with administrative rights.To do so, run this "
|
||||
"program with lxqt-sudo."
|
||||
msgstr ""
|
||||
"Käivitage see tarkvara administraatoriõigustega. Selleks käivitage see "
|
||||
"programm lxqt-sudo abil."
|
||||
|
||||
#: lubuntu-upgrader:454
|
||||
msgid "Update Cache Before Upgrade"
|
||||
msgstr "Värskendage vahemälu enne versiooniuuendust"
|
||||
|
||||
#: lubuntu-upgrader:459
|
||||
msgid "Full upgrade same as dist-upgrade"
|
||||
msgstr "Täielik uuendus on sama, mis dist-upgrade"
|
||||
|
||||
#: lubuntu-notifier.py:76
|
||||
#, python-format
|
||||
msgid "Error: Opening the cache (%s)"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-notifier.py:95 lubuntu-notifier.py:101
|
||||
msgid "Affected Packages"
|
||||
msgstr "Mõjutatud paketid"
|
||||
|
||||
#: lubuntu-notifier.py:96
|
||||
msgid "Security"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-notifier.py:141
|
||||
msgid "There are upgrades available. Do you want to do a system upgrade?"
|
||||
msgstr "Saadaval on uuendused. Kas soovite süsteemi uuendada?"
|
||||
|
||||
#: lubuntu-notifier.py:144
|
||||
msgid "This will mean packages could be upgraded, installed or removed."
|
||||
msgstr "See tähendab, et pakette saab uuendada, installida või eemaldada."
|
||||
|
||||
#: lubuntu-notifier.py:149
|
||||
#, fuzzy
|
||||
msgid " is a security upgrade."
|
||||
msgstr "Kui palju turvauuendusi on saadaval"
|
||||
|
||||
#: lubuntu-notifier.py:151
|
||||
#, fuzzy
|
||||
msgid " are security upgrades."
|
||||
msgstr "Kui palju turvauuendusi on saadaval"
|
||||
|
||||
#: lubuntu-notifier.py:154
|
||||
msgid "Remove"
|
||||
msgstr "Eemalda"
|
||||
|
||||
#: lubuntu-notifier.py:161
|
||||
msgid "Install"
|
||||
msgstr "Paigalda"
|
||||
|
||||
#: lubuntu-notifier.py:176
|
||||
msgid "Upgrade"
|
||||
msgstr "Uuenda"
|
||||
|
||||
#: lubuntu-notifier.py:222
|
||||
msgid "Upgrading..."
|
||||
msgstr "Uuendamine..."
|
||||
|
||||
#: lubuntu-notifier.py:276
|
||||
msgid "A new version of Lubuntu"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-notifier.py:277
|
||||
msgid "is available. Would you like to install it?"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-notifier.py:279
|
||||
msgid "A new version of Lubuntu is available. Would you like to install it?"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-notifier.py:315
|
||||
msgid "Define software/app to open for upgrade"
|
||||
msgstr "Uuendamiseks avatava tarkvara/rakenduse määratlemine"
|
||||
|
||||
#: lubuntu-notifier.py:320
|
||||
msgid "How many upgrades are available"
|
||||
msgstr "Kui palju uuendusi on saadaval"
|
||||
|
||||
#: lubuntu-notifier.py:325
|
||||
msgid "How many security upgrades are available"
|
||||
msgstr "Kui palju turvauuendusi on saadaval"
|
||||
|
||||
#: lubuntu-notifier.py:330
|
||||
msgid "Whether a release upgrade is required"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-notifier.py:336
|
||||
msgid "If a release upgrade is available, provide the version"
|
||||
msgstr ""
|
160
po/eu.po
Normal file
160
po/eu.po
Normal file
@ -0,0 +1,160 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-11-29 17:43-0600\n"
|
||||
"PO-Revision-Date: 2023-12-01 16:18+0100\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"Language: eu\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Poedit 3.4.1\n"
|
||||
|
||||
#: lubuntu-upgrader:132
|
||||
msgid "Updating cache..."
|
||||
msgstr "Cachea eguneratzen..."
|
||||
|
||||
#: lubuntu-upgrader:138
|
||||
msgid "Repairing interrupted upgrade if necessary..."
|
||||
msgstr "Beharrezkoa bada etendako bertsio-berritzea konpontzen..."
|
||||
|
||||
#: lubuntu-upgrader:195 lubuntu-upgrader:198
|
||||
msgid "Fetching"
|
||||
msgstr "Lortzen"
|
||||
|
||||
#: lubuntu-upgrader:196 lubuntu-upgrader:198 lubuntu-upgrader:209
|
||||
#: lubuntu-upgrader:212
|
||||
msgid "of"
|
||||
msgstr "-ren"
|
||||
|
||||
#: lubuntu-upgrader:208 lubuntu-upgrader:211
|
||||
msgid "Downloaded"
|
||||
msgstr "Deskargatuta"
|
||||
|
||||
#: lubuntu-upgrader:223 lubuntu-notifier.py:234
|
||||
msgid "Upgrade finished"
|
||||
msgstr "Berritzea amaitu da"
|
||||
|
||||
#: lubuntu-upgrader:227 lubuntu-notifier.py:197 lubuntu-notifier.py:201
|
||||
#: lubuntu-notifier.py:238
|
||||
msgid "Reboot required"
|
||||
msgstr "Berrabiarazi behar da"
|
||||
|
||||
#: lubuntu-upgrader:231
|
||||
msgid "With some Errors"
|
||||
msgstr "Akats batzuekin"
|
||||
|
||||
#: lubuntu-upgrader:232
|
||||
msgid "Error Resume:"
|
||||
msgstr "Errorea berekin:"
|
||||
|
||||
#: lubuntu-upgrader:283
|
||||
msgid "Update Cache Finished"
|
||||
msgstr "Eguneratu cachea amaitu da"
|
||||
|
||||
#: lubuntu-upgrader:404
|
||||
msgid "Repair Finished (if repair was needed)"
|
||||
msgstr "Konponketa amaituta (konponketa behar izanez gero)"
|
||||
|
||||
#: lubuntu-upgrader:432
|
||||
msgid ""
|
||||
"Please run this software with administrative rights.To do so, run this "
|
||||
"program with lxqt-sudo."
|
||||
msgstr ""
|
||||
"Exekutatu software hau administrazio-eskubideekin. Horretarako, exekutatu "
|
||||
"programa hau lxqt-sudo-rekin."
|
||||
|
||||
#: lubuntu-upgrader:454
|
||||
msgid "Update Cache Before Upgrade"
|
||||
msgstr "Eguneratu cachea Berritu aurretik"
|
||||
|
||||
#: lubuntu-upgrader:459
|
||||
msgid "Full upgrade same as dist-upgrade"
|
||||
msgstr "Bertsio osoa dist-berritze berdina da"
|
||||
|
||||
#: lubuntu-notifier.py:76
|
||||
#, python-format
|
||||
msgid "Error: Opening the cache (%s)"
|
||||
msgstr "Errorea: cachea irekitzen (%s)"
|
||||
|
||||
#: lubuntu-notifier.py:95 lubuntu-notifier.py:101
|
||||
msgid "Affected Packages"
|
||||
msgstr "Eragindako paketeak"
|
||||
|
||||
#: lubuntu-notifier.py:96
|
||||
msgid "Security"
|
||||
msgstr "Segurtasuna"
|
||||
|
||||
#: lubuntu-notifier.py:141
|
||||
msgid "There are upgrades available. Do you want to do a system upgrade?"
|
||||
msgstr "Berritzeak daude eskuragarri. Sistema berritzea nahi duzu?"
|
||||
|
||||
#: lubuntu-notifier.py:144
|
||||
msgid "This will mean packages could be upgraded, installed or removed."
|
||||
msgstr ""
|
||||
"Horrek esan nahi du paketeak berritu, instalatu edo kendu daitezkeela."
|
||||
|
||||
#: lubuntu-notifier.py:149
|
||||
msgid " is a security upgrade."
|
||||
msgstr " segurtasun-berritzea da."
|
||||
|
||||
#: lubuntu-notifier.py:151
|
||||
msgid " are security upgrades."
|
||||
msgstr " segurtasun-berrikuntzak dira."
|
||||
|
||||
#: lubuntu-notifier.py:154
|
||||
msgid "Remove"
|
||||
msgstr "Kendu"
|
||||
|
||||
#: lubuntu-notifier.py:161
|
||||
msgid "Install"
|
||||
msgstr "Instalatu"
|
||||
|
||||
#: lubuntu-notifier.py:176
|
||||
msgid "Upgrade"
|
||||
msgstr "Eguneratu"
|
||||
|
||||
#: lubuntu-notifier.py:222
|
||||
msgid "Upgrading..."
|
||||
msgstr "Berritzen..."
|
||||
|
||||
#: lubuntu-notifier.py:276
|
||||
msgid "A new version of Lubuntu"
|
||||
msgstr "Lubuntu-ren bertsio berria"
|
||||
|
||||
#: lubuntu-notifier.py:277
|
||||
msgid "is available. Would you like to install it?"
|
||||
msgstr "eskuragarri dago. Instalatu nahiko zenuke?"
|
||||
|
||||
#: lubuntu-notifier.py:279
|
||||
msgid "A new version of Lubuntu is available. Would you like to install it?"
|
||||
msgstr ""
|
||||
"Lubuntu-ren bertsio berri bat dago eskuragarri. Instalatu nahiko zenuke?"
|
||||
|
||||
#: lubuntu-notifier.py:315
|
||||
msgid "Define software/app to open for upgrade"
|
||||
msgstr "Definitu berritzeko irekitzeko softwarea/aplikazioa"
|
||||
|
||||
#: lubuntu-notifier.py:320
|
||||
msgid "How many upgrades are available"
|
||||
msgstr "Zenbat berritze eskuragarri dauden"
|
||||
|
||||
#: lubuntu-notifier.py:325
|
||||
msgid "How many security upgrades are available"
|
||||
msgstr "Zenbat segurtasun-berrikuntza dauden eskuragarri"
|
||||
|
||||
#: lubuntu-notifier.py:330
|
||||
msgid "Whether a release upgrade is required"
|
||||
msgstr "Oharra bertsio-berritzea beharrezkoa den ala ez"
|
||||
|
||||
#: lubuntu-notifier.py:336
|
||||
msgid "If a release upgrade is available, provide the version"
|
||||
msgstr "Bertsio-berritze bat eskuragarri badago, eman bertsioa"
|
162
po/gl.po
Normal file
162
po/gl.po
Normal file
@ -0,0 +1,162 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-11-29 17:43-0600\n"
|
||||
"PO-Revision-Date: 2023-12-01 16:33+0100\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"Language: gl\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Poedit 3.4.1\n"
|
||||
|
||||
#: lubuntu-upgrader:132
|
||||
msgid "Updating cache..."
|
||||
msgstr "Actualizando a caché..."
|
||||
|
||||
#: lubuntu-upgrader:138
|
||||
msgid "Repairing interrupted upgrade if necessary..."
|
||||
msgstr "Reparando a actualización interrompida se é necesario..."
|
||||
|
||||
#: lubuntu-upgrader:195 lubuntu-upgrader:198
|
||||
msgid "Fetching"
|
||||
msgstr "Buscando"
|
||||
|
||||
#: lubuntu-upgrader:196 lubuntu-upgrader:198 lubuntu-upgrader:209
|
||||
#: lubuntu-upgrader:212
|
||||
msgid "of"
|
||||
msgstr "de"
|
||||
|
||||
#: lubuntu-upgrader:208 lubuntu-upgrader:211
|
||||
msgid "Downloaded"
|
||||
msgstr "Descargado"
|
||||
|
||||
#: lubuntu-upgrader:223 lubuntu-notifier.py:234
|
||||
msgid "Upgrade finished"
|
||||
msgstr "Actualización rematada"
|
||||
|
||||
#: lubuntu-upgrader:227 lubuntu-notifier.py:197 lubuntu-notifier.py:201
|
||||
#: lubuntu-notifier.py:238
|
||||
msgid "Reboot required"
|
||||
msgstr "É necesario reiniciar"
|
||||
|
||||
#: lubuntu-upgrader:231
|
||||
msgid "With some Errors"
|
||||
msgstr "Con algúns erros"
|
||||
|
||||
#: lubuntu-upgrader:232
|
||||
msgid "Error Resume:"
|
||||
msgstr "Erro Reanudar:"
|
||||
|
||||
#: lubuntu-upgrader:283
|
||||
msgid "Update Cache Finished"
|
||||
msgstr "Actualización da caché rematada"
|
||||
|
||||
#: lubuntu-upgrader:404
|
||||
msgid "Repair Finished (if repair was needed)"
|
||||
msgstr "Reparación rematada (se fose necesaria a reparación)"
|
||||
|
||||
#: lubuntu-upgrader:432
|
||||
msgid ""
|
||||
"Please run this software with administrative rights.To do so, run this "
|
||||
"program with lxqt-sudo."
|
||||
msgstr ""
|
||||
"Executa este software con dereitos administrativos. Para facelo, executa "
|
||||
"este programa con lxqt-sudo."
|
||||
|
||||
#: lubuntu-upgrader:454
|
||||
msgid "Update Cache Before Upgrade"
|
||||
msgstr "Actualiza a caché antes da actualización"
|
||||
|
||||
#: lubuntu-upgrader:459
|
||||
msgid "Full upgrade same as dist-upgrade"
|
||||
msgstr "Actualización completa igual que dist-upgrade"
|
||||
|
||||
#: lubuntu-notifier.py:76
|
||||
#, python-format
|
||||
msgid "Error: Opening the cache (%s)"
|
||||
msgstr "Erro: ao abrir a caché (%s)"
|
||||
|
||||
#: lubuntu-notifier.py:95 lubuntu-notifier.py:101
|
||||
msgid "Affected Packages"
|
||||
msgstr "Paquetes afectados"
|
||||
|
||||
#: lubuntu-notifier.py:96
|
||||
msgid "Security"
|
||||
msgstr "Seguridade"
|
||||
|
||||
#: lubuntu-notifier.py:141
|
||||
msgid "There are upgrades available. Do you want to do a system upgrade?"
|
||||
msgstr ""
|
||||
"Hai actualizacións dispoñibles. Queres facer unha actualización do "
|
||||
"sistema?"
|
||||
|
||||
#: lubuntu-notifier.py:144
|
||||
msgid "This will mean packages could be upgraded, installed or removed."
|
||||
msgstr ""
|
||||
"Isto significará que os paquetes poderían actualizarse, instalarse ou "
|
||||
"eliminarse."
|
||||
|
||||
#: lubuntu-notifier.py:149
|
||||
msgid " is a security upgrade."
|
||||
msgstr " é unha actualización de seguridade."
|
||||
|
||||
#: lubuntu-notifier.py:151
|
||||
msgid " are security upgrades."
|
||||
msgstr " son actualizacións de seguridade."
|
||||
|
||||
#: lubuntu-notifier.py:154
|
||||
msgid "Remove"
|
||||
msgstr "Quitar"
|
||||
|
||||
#: lubuntu-notifier.py:161
|
||||
msgid "Install"
|
||||
msgstr "Instalar"
|
||||
|
||||
#: lubuntu-notifier.py:176
|
||||
msgid "Upgrade"
|
||||
msgstr "Actualizar"
|
||||
|
||||
#: lubuntu-notifier.py:222
|
||||
msgid "Upgrading..."
|
||||
msgstr "Actualizando..."
|
||||
|
||||
#: lubuntu-notifier.py:276
|
||||
msgid "A new version of Lubuntu"
|
||||
msgstr "Unha nova versión de Lubuntu"
|
||||
|
||||
#: lubuntu-notifier.py:277
|
||||
msgid "is available. Would you like to install it?"
|
||||
msgstr "está dispoñible. Gustaríache instalalo?"
|
||||
|
||||
#: lubuntu-notifier.py:279
|
||||
msgid "A new version of Lubuntu is available. Would you like to install it?"
|
||||
msgstr "Hai unha nova versión de Lubuntu dispoñible. Gustaríache instalalo?"
|
||||
|
||||
#: lubuntu-notifier.py:315
|
||||
msgid "Define software/app to open for upgrade"
|
||||
msgstr "Define o software/aplicación para abrir para actualizar"
|
||||
|
||||
#: lubuntu-notifier.py:320
|
||||
msgid "How many upgrades are available"
|
||||
msgstr "Cantas actualizacións hai dispoñibles"
|
||||
|
||||
#: lubuntu-notifier.py:325
|
||||
msgid "How many security upgrades are available"
|
||||
msgstr "Cantas actualizacións de seguridade hai dispoñibles"
|
||||
|
||||
#: lubuntu-notifier.py:330
|
||||
msgid "Whether a release upgrade is required"
|
||||
msgstr "Indica se é necesaria unha actualización de versión"
|
||||
|
||||
#: lubuntu-notifier.py:336
|
||||
msgid "If a release upgrade is available, provide the version"
|
||||
msgstr "Se hai unha actualización dispoñible, proporcione a versión"
|
152
po/ja.po
Normal file
152
po/ja.po
Normal file
@ -0,0 +1,152 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-11-29 17:43-0600\n"
|
||||
"PO-Revision-Date: 2022-03-15 01:45+0900\n"
|
||||
"Last-Translator: FuRuYa7\n"
|
||||
"Language-Team: \n"
|
||||
"Language: ja\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#: lubuntu-upgrader:132
|
||||
msgid "Updating cache..."
|
||||
msgstr "キャッシュを更新中..."
|
||||
|
||||
#: lubuntu-upgrader:138
|
||||
msgid "Repairing interrupted upgrade if necessary..."
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-upgrader:195 lubuntu-upgrader:198
|
||||
msgid "Fetching"
|
||||
msgstr "読み込み中"
|
||||
|
||||
# "Note that in Japanese, translating into 'of' reverses the meaning."
|
||||
#: lubuntu-upgrader:196 lubuntu-upgrader:198 lubuntu-upgrader:209
|
||||
#: lubuntu-upgrader:212
|
||||
msgid "of"
|
||||
msgstr " / "
|
||||
|
||||
#: lubuntu-upgrader:208 lubuntu-upgrader:211
|
||||
msgid "Downloaded"
|
||||
msgstr "ダウンロード済みです"
|
||||
|
||||
#: lubuntu-upgrader:223 lubuntu-notifier.py:234
|
||||
msgid "Upgrade finished"
|
||||
msgstr "アップグレードが完了しました"
|
||||
|
||||
#: lubuntu-upgrader:227 lubuntu-notifier.py:197 lubuntu-notifier.py:201
|
||||
#: lubuntu-notifier.py:238
|
||||
msgid "Reboot required"
|
||||
msgstr "再起動が必要です"
|
||||
|
||||
#: lubuntu-upgrader:231
|
||||
msgid "With some Errors"
|
||||
msgstr "いくつかのエラーがあります"
|
||||
|
||||
#: lubuntu-upgrader:232
|
||||
msgid "Error Resume:"
|
||||
msgstr "エラーからの再開:"
|
||||
|
||||
#: lubuntu-upgrader:283
|
||||
msgid "Update Cache Finished"
|
||||
msgstr "キャッシュの更新が完了しました"
|
||||
|
||||
#: lubuntu-upgrader:404
|
||||
msgid "Repair Finished (if repair was needed)"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-upgrader:432
|
||||
msgid ""
|
||||
"Please run this software with administrative rights.To do so, run this "
|
||||
"program with lxqt-sudo."
|
||||
msgstr "管理者権限で実行してください。lxqt-sudo を使用して実行します。"
|
||||
|
||||
#: lubuntu-upgrader:454
|
||||
msgid "Update Cache Before Upgrade"
|
||||
msgstr "アップグレード前にキャッシュを更新します"
|
||||
|
||||
#: lubuntu-upgrader:459
|
||||
msgid "Full upgrade same as dist-upgrade"
|
||||
msgstr "dist-upgrade と同じフルアップグレード"
|
||||
|
||||
#: lubuntu-notifier.py:76
|
||||
#, python-format
|
||||
msgid "Error: Opening the cache (%s)"
|
||||
msgstr "エラー: キャッシュ (%s) を開いています"
|
||||
|
||||
#: lubuntu-notifier.py:95 lubuntu-notifier.py:101
|
||||
msgid "Affected Packages"
|
||||
msgstr "影響を受けるパッケージ"
|
||||
|
||||
#: lubuntu-notifier.py:96
|
||||
msgid "Security"
|
||||
msgstr "セキュリティ"
|
||||
|
||||
#: lubuntu-notifier.py:141
|
||||
msgid "There are upgrades available. Do you want to do a system upgrade?"
|
||||
msgstr ""
|
||||
"利用可能なアップグレードがあります。システムのアップグレードを行いますか?"
|
||||
|
||||
#: lubuntu-notifier.py:144
|
||||
msgid "This will mean packages could be upgraded, installed or removed."
|
||||
msgstr "パッケージがアップグレード、インストール、または削除されます。"
|
||||
|
||||
#: lubuntu-notifier.py:149
|
||||
msgid " is a security upgrade."
|
||||
msgstr " 個がセキュリティのアップグレードです。"
|
||||
|
||||
#: lubuntu-notifier.py:151
|
||||
msgid " are security upgrades."
|
||||
msgstr " 個がセキュリティのアップグレードです。"
|
||||
|
||||
#: lubuntu-notifier.py:154
|
||||
msgid "Remove"
|
||||
msgstr "削除"
|
||||
|
||||
#: lubuntu-notifier.py:161
|
||||
msgid "Install"
|
||||
msgstr "インストール"
|
||||
|
||||
#: lubuntu-notifier.py:176
|
||||
msgid "Upgrade"
|
||||
msgstr "アップグレード"
|
||||
|
||||
#: lubuntu-notifier.py:222
|
||||
msgid "Upgrading..."
|
||||
msgstr "アップグレード中..."
|
||||
|
||||
#: lubuntu-notifier.py:276
|
||||
msgid "A new version of Lubuntu"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-notifier.py:277
|
||||
msgid "is available. Would you like to install it?"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-notifier.py:279
|
||||
msgid "A new version of Lubuntu is available. Would you like to install it?"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-notifier.py:315
|
||||
msgid "Define software/app to open for upgrade"
|
||||
msgstr "アップグレードで開くソフトウェア/アプリを定義します"
|
||||
|
||||
#: lubuntu-notifier.py:320
|
||||
msgid "How many upgrades are available"
|
||||
msgstr "利用可能なアップグレードの数"
|
||||
|
||||
#: lubuntu-notifier.py:325
|
||||
msgid "How many security upgrades are available"
|
||||
msgstr "利用可能なセキュリティアップグレードの数"
|
||||
|
||||
#: lubuntu-notifier.py:330
|
||||
msgid "Whether a release upgrade is required"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-notifier.py:336
|
||||
msgid "If a release upgrade is available, provide the version"
|
||||
msgstr ""
|
155
po/lubuntu-update-notifier.pot
Normal file
155
po/lubuntu-update-notifier.pot
Normal file
@ -0,0 +1,155 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-11-29 17:43-0600\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=CHARSET\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: lubuntu-upgrader:132
|
||||
msgid "Updating cache..."
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-upgrader:138
|
||||
msgid "Repairing interrupted upgrade if necessary..."
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-upgrader:195 lubuntu-upgrader:198
|
||||
msgid "Fetching"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-upgrader:196 lubuntu-upgrader:198 lubuntu-upgrader:209
|
||||
#: lubuntu-upgrader:212
|
||||
msgid "of"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-upgrader:208 lubuntu-upgrader:211
|
||||
msgid "Downloaded"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-upgrader:223 lubuntu-notifier.py:234
|
||||
msgid "Upgrade finished"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-upgrader:227 lubuntu-notifier.py:197 lubuntu-notifier.py:201
|
||||
#: lubuntu-notifier.py:238
|
||||
msgid "Reboot required"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-upgrader:231
|
||||
msgid "With some Errors"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-upgrader:232
|
||||
msgid "Error Resume:"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-upgrader:283
|
||||
msgid "Update Cache Finished"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-upgrader:404
|
||||
msgid "Repair Finished (if repair was needed)"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-upgrader:432
|
||||
msgid ""
|
||||
"Please run this software with administrative rights.To do so, run this "
|
||||
"program with lxqt-sudo."
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-upgrader:454
|
||||
msgid "Update Cache Before Upgrade"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-upgrader:459
|
||||
msgid "Full upgrade same as dist-upgrade"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-notifier.py:76
|
||||
#, python-format
|
||||
msgid "Error: Opening the cache (%s)"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-notifier.py:95 lubuntu-notifier.py:101
|
||||
msgid "Affected Packages"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-notifier.py:96
|
||||
msgid "Security"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-notifier.py:141
|
||||
msgid "There are upgrades available. Do you want to do a system upgrade?"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-notifier.py:144
|
||||
msgid "This will mean packages could be upgraded, installed or removed."
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-notifier.py:149
|
||||
msgid " is a security upgrade."
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-notifier.py:151
|
||||
msgid " are security upgrades."
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-notifier.py:154
|
||||
msgid "Remove"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-notifier.py:161
|
||||
msgid "Install"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-notifier.py:176
|
||||
msgid "Upgrade"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-notifier.py:222
|
||||
msgid "Upgrading..."
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-notifier.py:276
|
||||
msgid "A new version of Lubuntu"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-notifier.py:277
|
||||
msgid "is available. Would you like to install it?"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-notifier.py:279
|
||||
msgid "A new version of Lubuntu is available. Would you like to install it?"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-notifier.py:315
|
||||
msgid "Define software/app to open for upgrade"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-notifier.py:320
|
||||
msgid "How many upgrades are available"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-notifier.py:325
|
||||
msgid "How many security upgrades are available"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-notifier.py:330
|
||||
msgid "Whether a release upgrade is required"
|
||||
msgstr ""
|
||||
|
||||
#: lubuntu-notifier.py:336
|
||||
msgid "If a release upgrade is available, provide the version"
|
||||
msgstr ""
|
1
resources
Normal file
1
resources
Normal file
@ -0,0 +1 @@
|
||||
https://apt-team.pages.debian.net/python-apt/library/apt_pkg.html
|
43
setup.py
43
setup.py
@ -17,13 +17,48 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from setuptools import setup
|
||||
import subprocess
|
||||
import os
|
||||
from distutils.command.clean import clean
|
||||
|
||||
|
||||
class MyClean(clean):
|
||||
def run(self):
|
||||
# Execute the classic clean command
|
||||
super().run()
|
||||
|
||||
# Custom clean
|
||||
print("Removing translations")
|
||||
subprocess.run(['rm', '-rf', 'translations'])
|
||||
|
||||
|
||||
def add_mo_files(data_files):
|
||||
app_name = 'lubuntu-update-notifier'
|
||||
mo = ''
|
||||
|
||||
subprocess.run(['mkdir', 'translations/'])
|
||||
for f in os.listdir('po'):
|
||||
loc, ext = os.path.splitext(f)
|
||||
if ext == '.po':
|
||||
mo = app_name + '.mo'
|
||||
subprocess.run(['mkdir', 'translations/' + loc])
|
||||
subprocess.run(['msgfmt', '-o', 'translations/' + loc + '/' + mo,
|
||||
'po/' + f], check=True)
|
||||
|
||||
data_files.append(('share/locale/' + loc + '/LC_MESSAGES/',
|
||||
['translations/' + loc + '/' + mo]))
|
||||
|
||||
return data_files
|
||||
|
||||
data_files=[('libexec/lubuntu-update-notifier/',
|
||||
['lubuntu-upg-notifier.sh', 'lubuntu-notifier.py']),
|
||||
('share/applications', ['data/upg-apply.desktop'])]
|
||||
|
||||
setup(
|
||||
name="lubuntu-update-notifier",
|
||||
version="0.1",
|
||||
version="0.4dev",
|
||||
packages=['lubuntu-update-notifier'],
|
||||
scripts=['lubuntu-upgrader'],
|
||||
data_files=[('libexec/lubuntu-update-notifier/',
|
||||
['lubuntu-upg-notifier.sh', 'lubuntu-notifier.py']),
|
||||
('share/applications', ['data/upg-apply.desktop'])]
|
||||
data_files=add_mo_files(data_files),
|
||||
cmdclass={'clean': MyClean}
|
||||
)
|
||||
|
7
translation_helper
Executable file
7
translation_helper
Executable file
@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
xgettext lubuntu-upgrader lubuntu-notifier.py --language=Python -o po/lubuntu-update-notifier.pot
|
||||
|
||||
for po_file in po/*.po; do
|
||||
msgmerge -U "$po_file" po/lubuntu-update-notifier.pot
|
||||
done
|
Loading…
x
Reference in New Issue
Block a user