Compare commits

...

63 Commits

Author SHA1 Message Date
roberalz b6ad4da554 Actualizar 'debian/changelog'
6 months ago
roberalz 18afebb4df Galician translate.
6 months ago
Simon Quigley 7b0361b969 Add appropriate changelog entries for the new translations.
6 months ago
Roberalz 940bdd320c
Delete po/gl.po
6 months ago
Roberalz 8d4c10c1a6
Galician and Basque traductions
6 months ago
Roberalz 01a7816d7e
Update es.po
6 months ago
Simon Quigley a5da2f12fb Update translation sources.
6 months ago
vaba 1e809cd92f Add files via upload (#6)
6 months ago
Roberalz 10eb134e54 Update upg-apply.desktop (#4)
6 months ago
FuRuYa7 9ef796d74d Added Japanese translation "po/ja.po" file (#3)
6 months ago
Simon Quigley cee2f2143b This should now be ready to upload (ish).
8 months ago
Simon Quigley 03e0b5f538 Rough, initial migration to systemd units.
8 months ago
Simon Quigley ebaacb49c2 Upload to Mantic.
8 months ago
Simon Quigley 25111b9197 Add support for release upgrading, when all updates are applied.
8 months ago
Aaron Rainbolt a175069ed3 Fix a type mismatch error in lubuntu-notifier.py
1 year ago
Aaron Rainbolt 4054e9bf03 Unbreak the download progress indicator
1 year ago
Aaron Rainbolt f7f06d05c9 Changed some strings and fixed a typo in the autopkgtest tweak
1 year ago
Aaron Rainbolt 46bece00eb Added more debugging output to the autopkgtest
1 year ago
Aaron Rainbolt 1f79703ee1 Added bug reference.
1 year ago
Aaron Rainbolt ea80117a18 Bumped version number in lubuntu-upgrader.
1 year ago
Aaron Rainbolt c86d8ea9dc Removed non-functional config-file-conflict connection in repair_install().
1 year ago
Aaron Rainbolt f5f745f90a Set debconf frontend for the upgrade repair function.
1 year ago
Aaron Rainbolt c143cd572c Added interrupted upgrade repair functionality.
1 year ago
Aaron Rainbolt a73ce1aab8 Fixed an assumption in the config-file-conflict frontend.
1 year ago
Simon Quigley db429fc70c Upload to Lunar.
2 years ago
Simon Quigley 6f173457a8 Update Standards-version to 4.6.1, no changes needed.
2 years ago
Simon Quigley 4ea74c1cd5 Add a frontend for config-file-conflict.
2 years ago
Hans P. Möller 0969079731 update changelog
3 years ago
Hans P. Möller 47a3ae7fe3 update manpages
3 years ago
Hans P. Möller 73448df6db update changelog
4 years ago
Hans P. Möller 70bc904cee added number of security upgrades text
4 years ago
Hans P. Möller 37b3f7cade fix typo in es transalation
4 years ago
Hans P. Möller ab7695279f solved lintian unnecessary-testsuite-autopkgtest-field
4 years ago
Hans P. Möller 4c1dbb68fd remove functions now imported from apt_check
4 years ago
Hans P. Möller e58cb06644 import apt_check.py instead of defininf the same functions
4 years ago
Hans P. Möller 2cb075738b add package description
4 years ago
Hans P. Möller cf4581e9bd remove debug code
4 years ago
Hans P. Möller da74c198e2 added security package mark
4 years ago
Hans P. Möller 131b40b2b4 add autopkgtest
4 years ago
Hans P. Möller 148e751176 hide upgrade button when not needed
4 years ago
Hans P. Möller 7e06da13ab fix some translations
4 years ago
Hans P. Möller d4b440f66e update changelog
4 years ago
Hans P. Möller 78f3fb3d61 add version info
4 years ago
Hans P. Möller cea3cb0229 change QPushButton to QDialogButtonBox so Qt can do the text translations
4 years ago
Hans P. Möller be1a29219c add support for internationalization with gettext and updated setup script for .po format
4 years ago
Hans P. Möller b3bb1ca1a0 change autostar call from /usr/lib to /usr/libexec
4 years ago
Hans P. Möller c970813446 change .sh call from /usr/lib to /usr/libexec
4 years ago
Hans P. Möller 230c5b2af4 update changelog
4 years ago
Hans P. Möller a1bdb13162 Revert "updated changelog"
4 years ago
Hans P. Möller 10413d2e76 updated changelog
4 years ago
Hans P. Möller 2bc1a2a901 added Rules-Requires-Root: no in debian/control
4 years ago
Hans P. Möller e34b451918 move executables lib from /usr/lib to usr/libexec, move .desktop from .install to setup.py
4 years ago
Hans P. Möller a7ec5aaa32 Revert "add apt_pkg as new dependcy"
4 years ago
Hans P. Möller d7ee49fd71 add apt_pkg as new dependcy
4 years ago
Hans P. Möller deba950283 add affected package tree
4 years ago
Dan Simmons f2460f2e39 Upload to groovy.
4 years ago
Dan Simmons f2b85758af Bump standards version and debhelper version
4 years ago
Hans P. Möller 2eb330f7a7 update changelog timestamp
4 years ago
Hans P. Möller 9937bd787f remove egg.info
4 years ago
Hans P. Möller 917af387f6 bump standards
4 years ago
Hans P. Möller a23f020325 fix short description
4 years ago
Hans P. Möller a62115351b added short description to control, update changelog
5 years ago
Hans P. Möller 8528eff621 change sleep time for notifier from 1 hour to 24 hours
5 years ago

2
.gitignore vendored

@ -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/lib/lubuntu-update-notifier/lubuntu-upg-notifier.sh
NoDisplay=true
Name=upgNotifier
Icon=system-software-update
Type=Application
Version=0.1

91
debian/changelog vendored

@ -1,3 +1,94 @@
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.
* Move executables from /usr/lib to /usr/libexec.
* Added "Rules-Requires-Root: no" to debian/control.
-- Hans P Möller <hmollercl@lubuntu.me> Wed, 19 Aug 2020 10:23:52 -0400
lubuntu-update-notifier (0.2) groovy; urgency=medium
[ Hans P Möller ]
* Change sleep time for notifier from 1 hour to 24.
* Added short description in control.
[ Dan Simmons ]
* Drop debian/compat switch to debhlper-compat=13, no changes needed.
* Bump standards-version to 4.5.0, no changes needed.
-- Dan Simmons <kc2bez@lubuntu.me> Thu, 21 May 2020 19:49:57 -0400
lubuntu-update-notifier (0.1) focal; urgency=medium
* Initial release. LP: #1840829

1
debian/compat vendored

@ -1 +0,0 @@
12

18
debian/control vendored

@ -2,12 +2,15 @@ Source: lubuntu-update-notifier
Section: admin
Priority: optional
Maintainer: Hans P Möller <hmollercl@lubuntu.me>
Build-Depends: debhelper (>=12~),
Build-Depends: debhelper-compat (= 13),
dh-python,
gettext,
python3-all,
python3-apt,
python3-setuptools
Standards-Version: 4.4.0
Standards-Version: 4.6.1
Rules-Requires-Root: no
Testsuite: autopkgtest-pkg-python
Package: lubuntu-update-notifier
Architecture: all
@ -16,15 +19,20 @@ 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}
Description: Package includes a bash daemon (lubuntu-upg-notifier.sh) which
checks if there are updates available. If there are it opnes notifier.py which
Description: Qt notifier for available upgrades, has a very simple upgrader
Package includes a bash daemon (lubuntu-upg-notifier.sh) which
checks if there are updates available. If there are it opens notifier.py which
is a window that notifies about package updates available. If you decide to
upgrade a full upgrade (not safe-upgrade) with the upgrader binary.
upgrade a full upgrade (not safe-upgrade) with the upgrader binary will take
place.
.
Upgrader can also be run alone, it can be chosen to run cache update before and
if a safe or full upgrade will be done. There is also a .desktop to call
upgrader with cache update and a full upgrade.

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+

@ -1,2 +0,0 @@
data/upg-apply.desktop usr/share/applications
data/upg-notifier-autostart.desktop etc/xdg/autostart

@ -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#

@ -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

@ -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

@ -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.

@ -1,2 +1,2 @@
# Wishlist
lubuntu-update-notifier source: testsuite-autopkgtest-missing
# lubuntu-update-notifier source: testsuite-autopkgtest-missing

@ -0,0 +1,2 @@
Tests: run-tests
Depends: @

@ -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

@ -0,0 +1 @@
./lubuntu-notifier.py -u 0 -s 0 -p ./lubuntu-upgrader

@ -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
@ -21,48 +22,103 @@
import sys
import subprocess
from pathlib import Path
# from optparse import OptionParser
import apt_pkg
from argparse import ArgumentParser
import gettext
from PyQt5.QtWidgets import (QWidget, QApplication, QLabel, QPushButton,
QHBoxLayout, QVBoxLayout)
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import (QWidget, QApplication, QLabel, QDialogButtonBox,
QHBoxLayout, QVBoxLayout, QTreeWidget,
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.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.upgradeBtn = QPushButton("Upgrade")
self.closeBtn = QPushButton("Close")
self.label.setTextFormat(Qt.RichText)
self.label.setOpenExternalLinks(True)
self.tw = QTreeWidget()
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.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()
vbox.addWidget(self.label)
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)
@ -70,16 +126,79 @@ class Dialog(QWidget):
self.center()
if self.upgrades > 0:
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."
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)
elif self.depcache.marked_install(p):
pkg_install.append([p, self.depcache.get_candidate_ver(p)])
elif self.depcache.marked_upgrade(p):
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')])
for p in pkg_delete:
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')])
for p in pkg_install:
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)
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')])
for p in pkg_upgrade:
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)
@ -96,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()
@ -167,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,23 +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`
#echo $OUT
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/lib/lubuntu-update-notifier/lubuntu-notifier.py -u $UPG -s $SEC -p /usr/bin/lubuntu-upgrader
sleep 3600
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

@ -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

@ -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"

@ -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 ""

@ -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"

@ -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"

@ -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 ""

@ -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 ""

@ -0,0 +1 @@
https://apt-team.pages.debian.net/python-apt/library/apt_pkg.html

@ -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=[
('lib/lubuntu-update-notifier/',
['lubuntu-upg-notifier.sh', 'lubuntu-notifier.py'])]
data_files=add_mo_files(data_files),
cmdclass={'clean': MyClean}
)

@ -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…
Cancel
Save