freedombox Debian release 23.2

-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEfWrbdQ+RCFWJSEvmd8DHXntlCAgFAmPGC9sACgkQd8DHXntl
 CAiWfA/9EtEcuVFJS3/geTAb39nQoS/VdW0enMWPbUcSc77/XiyHixriSLHLqJOe
 IWw/tdI5y47gdGBgDsIZgURXICk5RAqnMKopubGV9aIA2YtMbfZnKpVevfD3emkZ
 eYrYfPO9RQT/rd83aKMALua360Gmr20rr/3zNjicclCoL3mXmMWhMhTfwt5QR0bc
 0gL0bkUndyPt3hUaT/Ij1E1g+iKles5XVJpvk4ifcgvhWSMFms7Yln/+l7a9mHDj
 Jl6JZEbdKFCTTA2L4xbKovabA0IpNVicGmoFB9HbJ84GDFeNBMEO2yohPHZLBqxM
 /h5ov/Qnn0Kt2zbRq30U8jCSjtTGZacki2N2BgPhUAju8JEc9ytfHUnT8rWnJD7E
 THP9QqKh5ue7X7CfJgiaCjdEGG0LGuF1G1LZfJ0CgS/roLsNizSYHYl/AqCIO8Mz
 4rpBDKMN0yIPrgqNyr0UN5GX26bVITh48vr01niqLFyOKw4kYNecrLWyd1nlMlp7
 zDKU0yIUoDe//sg9JOSWUJrGsZP8em6W7sXcz6b5gra4vJ3pcZKZx8k0uprKR9kx
 r4TJrltJCha5rmc+NYMu6w1POJeoP0UDm2SnXHMjZNvIbDzyiNbZXiTN3kuAaDEV
 QkwSVJJvCm38ffRErqjTQtnvGyp1lDGdKGXQeE7IUc1w+HXf9Cg=
 =phy/
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEfWrbdQ+RCFWJSEvmd8DHXntlCAgFAmPKgmUACgkQd8DHXntl
 CAhf1xAAlz2JqoyCTojJ+W58+zVqav9WoZ1bqDu1fyWbTeZXm5PoexEmZoNXjTDs
 3TMQgfx/bwukzBiiRJMXjjMqS+WzMqTs6FBsrskAW7zxHlaw71OeuFS/QFJ4SI2N
 yoVDptI7qULXt4dAvromS5ew6tNx5WO73fwofQyPr0Y/huuLXXA/uERfgxRBOjWH
 uNYfKDaD5Bbym/vCXy5mQAHoXnKKrOvfEHA6RDfnfarvW6kLCHN/CgZkqYeS2+aP
 gOsgdNsVuBtz4sjMtzTZHG3GZzrn5jy+NdioL94KDTCiBcjuInG1EGnE2iDlEMGE
 HALIyGWsbKCqJ+5Z1Sob8essriQzj8TlAJgyyh2Z8Pb2Qfh90xrESp9hNNq+eCqD
 syT6sok0vkUvlMEuKjAn9DcWXpXeRGU6skSIdctu98s5WXKL7tz56qPqU1tezsfJ
 7grVLCpU6GlZ5VeePDnHf3PJ3/1/CUic876uxQodRa8KHdQkHrtmmfrMppgs9uEf
 UXyJDaZlMtTLJcoAUaIZY3hHdU3B1QyOjy0Bfmb5cwo28/pkkYGFT5G+XE8VaxYy
 zRQ3Wg/PWHkEmU/ojyQCH26toA7USXZSbyFJSH2P3d2JJ27zukCgsntBby+vCEa6
 qlSo6dRhSw+L7QM8uJmB8wav9lsa0Xj9n8w96BRf4z5WTd5YIBk=
 =ilbZ
 -----END PGP SIGNATURE-----

Merge tag 'v23.2' into debian/bullseye-backports

freedombox Debian release 23.2

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
This commit is contained in:
James Valleroy 2023-01-20 07:00:36 -05:00
commit 3390fe97df
9 changed files with 112 additions and 41 deletions

18
debian/changelog vendored
View File

@ -1,3 +1,21 @@
freedombox (23.2) unstable; urgency=medium
[ Besnik Bleta ]
* Translated using Weblate (Albanian)
[ James Valleroy ]
* upgrades: Stop quassel during dist upgrade
* ssh: Add sudo to allowed groups
* doc: Fetch latest manual
[ Sunil Mohan Adapa ]
* ssh: Update existing setups to add sudo group to allowed SSH groups
[ 109247019824 ]
* Translated using Weblate (Bulgarian)
-- James Valleroy <jvalleroy@mailbox.org> Mon, 16 Jan 2023 20:33:02 -0500
freedombox (23.1~bpo11+1) bullseye-backports; urgency=medium freedombox (23.1~bpo11+1) bullseye-backports; urgency=medium
* Rebuild for bullseye-backports. * Rebuild for bullseye-backports.

View File

@ -8,6 +8,12 @@ For more technical details, see the [[https://salsa.debian.org/freedombox-team/f
The following are the release notes for each !FreedomBox version. The following are the release notes for each !FreedomBox version.
== FreedomBox 23.2 (2023-01-16) ==
* locale: Update translations for Albanian, Bulgarian
* ssh: Add sudo to allowed groups
* upgrades: Stop quassel during dist upgrade
== FreedomBox 23.1 (2023-01-03) == == FreedomBox 23.1 (2023-01-03) ==
=== Highlights === === Highlights ===

View File

@ -8,6 +8,12 @@ For more technical details, see the [[https://salsa.debian.org/freedombox-team/f
The following are the release notes for each !FreedomBox version. The following are the release notes for each !FreedomBox version.
== FreedomBox 23.2 (2023-01-16) ==
* locale: Update translations for Albanian, Bulgarian
* ssh: Add sudo to allowed groups
* upgrades: Stop quassel during dist upgrade
== FreedomBox 23.1 (2023-01-03) == == FreedomBox 23.1 (2023-01-03) ==
=== Highlights === === Highlights ===

View File

@ -3,4 +3,4 @@
Package init file. Package init file.
""" """
__version__ = '23.1' __version__ = '23.2'

View File

@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-03 10:41-0500\n" "POT-Creation-Date: 2023-01-03 10:41-0500\n"
"PO-Revision-Date: 2022-12-07 20:48+0000\n" "PO-Revision-Date: 2023-01-16 08:48+0000\n"
"Last-Translator: 109247019824 <stoyan@gmx.com>\n" "Last-Translator: 109247019824 <stoyan@gmx.com>\n"
"Language-Team: Bulgarian <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Bulgarian <https://hosted.weblate.org/projects/freedombox/"
"freedombox/bg/>\n" "freedombox/bg/>\n"
@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.15-dev\n" "X-Generator: Weblate 4.15.1-dev\n"
#: doc/dev/_templates/layout.html:11 #: doc/dev/_templates/layout.html:11
msgid "Page source" msgid "Page source"
@ -6055,6 +6055,11 @@ msgid ""
"deletion of files on one device will be automatically replicated on all " "deletion of files on one device will be automatically replicated on all "
"other devices that also run Syncthing." "other devices that also run Syncthing."
msgstr "" msgstr ""
"Syncthing е приложение за синхронизиране на файлове между няколко "
"устройства, например настолен компютър и мобилен телефон. Създаването, "
"модифицирането или изтриването на файлове на едно устройство ще бъде "
"автоматично възпроизведено на всички останали устройства, на които също е "
"стартиран Syncthing."
#: plinth/modules/syncthing/__init__.py:27 #: plinth/modules/syncthing/__init__.py:27
#, python-brace-format #, python-brace-format
@ -6067,6 +6072,13 @@ msgid ""
"{box_name} is only available for users belonging to the \"admin\" or " "{box_name} is only available for users belonging to the \"admin\" or "
"\"syncthing-access\" group." "\"syncthing-access\" group."
msgstr "" msgstr ""
"Работата на Syncthing на {box_name} осигурява допълнителна точка за "
"синхронизиране на данни, която е налична през повечето време, което "
"позволява на устройствата ви да се синхронизират по-често. {box_name} "
"стартира един екземпляр на Syncthing, който може да се използва от няколко "
"потребители. Наборът от устройства на всеки потребител може да се "
"синхронизира с отделен набор от папки. Интерфейсът на {box_name} е достъпен "
"само за потребители, принадлежащи към групата „admin“ или „syncthing-access“."
#: plinth/modules/syncthing/__init__.py:54 #: plinth/modules/syncthing/__init__.py:54
msgid "Administer Syncthing application" msgid "Administer Syncthing application"

View File

@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-03 10:41-0500\n" "POT-Creation-Date: 2023-01-03 10:41-0500\n"
"PO-Revision-Date: 2022-10-10 13:34+0000\n" "PO-Revision-Date: 2023-01-05 15:50+0000\n"
"Last-Translator: Besnik Bleta <besnik@programeshqip.org>\n" "Last-Translator: Besnik Bleta <besnik@programeshqip.org>\n"
"Language-Team: Albanian <https://hosted.weblate.org/projects/freedombox/" "Language-Team: Albanian <https://hosted.weblate.org/projects/freedombox/"
"freedombox/sq/>\n" "freedombox/sq/>\n"
@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.14.1\n" "X-Generator: Weblate 4.15.1-dev\n"
#: doc/dev/_templates/layout.html:11 #: doc/dev/_templates/layout.html:11
msgid "Page source" msgid "Page source"
@ -2128,6 +2128,8 @@ msgid ""
"The following DNS records must be added manually on your primary domain for " "The following DNS records must be added manually on your primary domain for "
"the mail server to work properly." "the mail server to work properly."
msgstr "" msgstr ""
"Që shërbyesi i postës të funksionojë si duhet, zërat DNS vijues duhen shtuar "
"dorazi te përkatësia juaj parësore."
#: plinth/modules/email/templates/email.html:36 #: plinth/modules/email/templates/email.html:36
msgid "TTL" msgid "TTL"
@ -3718,6 +3720,8 @@ msgid ""
"Set the name of the main channel of your mumble server. If the name was " "Set the name of the main channel of your mumble server. If the name was "
"never changed, the channel is named Root." "never changed, the channel is named Root."
msgstr "" msgstr ""
"Caktoni emrin e kanalit parësor të shërbyesit tuaj Mumble. Nëse emri sqe "
"ndryshuar ndonjëherë, kanali është i emërtuar Root."
#: plinth/modules/mumble/manifest.py:34 #: plinth/modules/mumble/manifest.py:34
msgid "Mumblefly" msgid "Mumblefly"
@ -4991,12 +4995,7 @@ msgid "Profile"
msgstr "Profil" msgstr "Profil"
#: plinth/modules/openvpn/templates/openvpn.html:15 #: plinth/modules/openvpn/templates/openvpn.html:15
#, fuzzy, python-format #, python-format
#| msgid ""
#| "To connect to %(box_name)s's VPN, you need to download a profile and feed "
#| "it to an OpenVPN client on your mobile or desktop machine. OpenVPN "
#| "Clients are available for most platforms. Click \"Learn more...\" above "
#| "for recommended clients and instructions on how to configure them."
msgid "" msgid ""
"To connect to %(box_name)s's VPN, you need to download a profile and feed it " "To connect to %(box_name)s's VPN, you need to download a profile and feed it "
"to an OpenVPN client on your mobile or desktop machine. OpenVPN Clients are " "to an OpenVPN client on your mobile or desktop machine. OpenVPN Clients are "
@ -5005,16 +5004,14 @@ msgid ""
msgstr "" msgstr ""
"Për tu lidhur me VPN-në e %(box_name)s-it, duhet të shkarkoni një profil " "Për tu lidhur me VPN-në e %(box_name)s-it, duhet të shkarkoni një profil "
"dhe tia jepni atë një klienti OpenVPN në celularin tuaj apo makinën tuaj " "dhe tia jepni atë një klienti OpenVPN në celularin tuaj apo makinën tuaj "
"desktop. Ka klientë OpenVPN për shumicën e platformave. Për klientë të " "desktop. Ka klientë OpenVPN për shumicën e platformave. Për klientë të "
"rekomanduar dhe udhëzime se si të formësohen ata, klikoni “Mësoni më tepër…”." "rekomanduar dhe udhëzime se si të formësohen ata, klikoni “Mësoni më tepër…”."
#: plinth/modules/openvpn/templates/openvpn.html:24 #: plinth/modules/openvpn/templates/openvpn.html:24
#, fuzzy, python-format #, python-format
#| msgid "Profile is specific to each user of %(box_name)s. Keep it a secret."
msgid "Profile is specific to each user of %(box_name)s. Keep it a secret." msgid "Profile is specific to each user of %(box_name)s. Keep it a secret."
msgstr "" msgstr ""
"Profili është specifik për çdo përdorues të %(box_name)s. Mbajeni të " "Profili është specifik për çdo përdorues të %(box_name)s. Mbajeni të fshehtë."
"fshehtë."
#: plinth/modules/openvpn/templates/openvpn.html:34 #: plinth/modules/openvpn/templates/openvpn.html:34
msgid "Download my profile" msgid "Download my profile"
@ -5331,25 +5328,27 @@ msgstr "Fike Tani"
#: plinth/modules/privacy/__init__.py:14 #: plinth/modules/privacy/__init__.py:14
msgid "Manage system-wide privacy settings." msgid "Manage system-wide privacy settings."
msgstr "" msgstr "Administroni rregullime privatësie për krejt sistemin."
#: plinth/modules/privacy/__init__.py:31 plinth/modules/privacy/__init__.py:63 #: plinth/modules/privacy/__init__.py:31 plinth/modules/privacy/__init__.py:63
#, fuzzy
#| msgid "Privoxy"
msgid "Privacy" msgid "Privacy"
msgstr "Privoxy" msgstr "Privatësi"
#: plinth/modules/privacy/__init__.py:61 #: plinth/modules/privacy/__init__.py:61
msgid "Please update privacy settings to match your preferences." msgid "Please update privacy settings to match your preferences."
msgstr "" msgstr ""
"Ju lutemi, përditësoni rregullime privatësie që të përputhen me parapëlqimet "
"tuaja."
#: plinth/modules/privacy/__init__.py:66 #: plinth/modules/privacy/__init__.py:66
msgid "Review privacy setting" msgid "Review privacy setting"
msgstr "" msgstr "Shqyrtoni rregullim privatësie"
#: plinth/modules/privacy/forms.py:15 #: plinth/modules/privacy/forms.py:15
msgid "Periodically submit a list of apps used (suggested)" msgid "Periodically submit a list of apps used (suggested)"
msgstr "" msgstr ""
"Parashtroni në mënyrë periodike një listë aplikacionesh të përdorur (e "
"sugjeruar)"
#: plinth/modules/privacy/forms.py:17 #: plinth/modules/privacy/forms.py:17
#, python-brace-format #, python-brace-format
@ -5361,6 +5360,13 @@ msgid ""
"target=\"_blank\">popcon.debian.org</a>. Submission happens over the Tor " "target=\"_blank\">popcon.debian.org</a>. Submission happens over the Tor "
"network for additional anonymity if Tor app is enabled." "network for additional anonymity if Tor app is enabled."
msgstr "" msgstr ""
"Ndihmoni zhvilluesit e Debian/{box_name} duke marrë pjesë te anketimi "
"Konkurs Popullariteti progamesh. Kur aktivizohet, te Debian do të "
"parashtrohet në mënyrë anonime çdo javë një listë e aplikacioneve të "
"përdorura në këtë sistem. Statistikat për të dhënat e grumbulluara janë "
"publike, te <a href=\"https://popcon.debian.org/\" target=\"_blank\">popcon."
"debian.org</a>. Parashtrimi bëhet përmes rrjetit Tor, për anonimitet shtesë, "
"nëse është i aktivizuar aplikacioni Tor."
#: plinth/modules/privoxy/__init__.py:23 #: plinth/modules/privoxy/__init__.py:23
msgid "" msgid ""
@ -5619,6 +5625,8 @@ msgid ""
"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. " "RSS-Bridge generates RSS and Atom feeds for websites that do not have one. "
"Generated feeds can be consumed by any feed reader." "Generated feeds can be consumed by any feed reader."
msgstr "" msgstr ""
"RSS-Bridge prodhon prurje RSS dhe Atom për sajte që skanë të tillë. Prurjet "
"e prodhuara mund të përdoren nga çfarëdo lexuesi prurjesh."
#: plinth/modules/rssbridge/__init__.py:23 #: plinth/modules/rssbridge/__init__.py:23
#, python-brace-format #, python-brace-format
@ -6465,10 +6473,8 @@ msgid "Secure Shell (SSH) Server"
msgstr "Shërbyes Shelli të Sigurt (SSH)" msgstr "Shërbyes Shelli të Sigurt (SSH)"
#: plinth/modules/ssh/__init__.py:61 #: plinth/modules/ssh/__init__.py:61
#, fuzzy
#| msgid "Secure Shell (SSH)"
msgid "Remotely login using Secure Shell (SSH)" msgid "Remotely login using Secure Shell (SSH)"
msgstr "Shell i Sigurt (SSH)" msgstr "Hyrje së largëti duke përdorur Shell të Sigurt (SSH)"
#: plinth/modules/ssh/forms.py:13 #: plinth/modules/ssh/forms.py:13
msgid "Disable password authentication" msgid "Disable password authentication"
@ -6486,7 +6492,7 @@ msgstr ""
#: plinth/modules/ssh/forms.py:21 #: plinth/modules/ssh/forms.py:21
msgid "Allow all users to login remotely" msgid "Allow all users to login remotely"
msgstr "" msgstr "Lejojuni krejt përdoruesve të hyjnë së largëti"
#: plinth/modules/ssh/forms.py:22 #: plinth/modules/ssh/forms.py:22
msgid "" msgid ""
@ -6494,6 +6500,9 @@ msgid ""
"disabled, only users of groups root, admin and freedombox-ssh can login via " "disabled, only users of groups root, admin and freedombox-ssh can login via "
"SSH." "SSH."
msgstr "" msgstr ""
"Lejojuni krejt përdoruesve që janë një llogari të vlefshme të hyjnë së "
"largëti, përmes SSH-je. Kur çaktivizohet, hyrje përmes SSH-je mund të bëjnë "
"vetëm përdorues të grupit rrënjë, përgjegjës dhe freedombox-ssh."
#: plinth/modules/ssh/templates/ssh.html:11 #: plinth/modules/ssh/templates/ssh.html:11
msgid "Server Fingerprints" msgid "Server Fingerprints"
@ -6678,7 +6687,7 @@ msgstr "Nëndrejtori (opsionale)"
#: plinth/modules/storage/forms.py:136 #: plinth/modules/storage/forms.py:136
msgid "Share" msgid "Share"
msgstr "" msgstr "Ndajeni me të tjerë"
#: plinth/modules/storage/forms.py:144 #: plinth/modules/storage/forms.py:144
msgid "Other directory (specify below)" msgid "Other directory (specify below)"
@ -7016,6 +7025,9 @@ msgid ""
"Compared to <a href=\"{deluge_url}\">Deluge</a>, Transmission is simpler and " "Compared to <a href=\"{deluge_url}\">Deluge</a>, Transmission is simpler and "
"lightweight but is less customizable." "lightweight but is less customizable."
msgstr "" msgstr ""
"Krahasuar me <a href=\"{deluge_url}\">Deluge</a>, Transmission është më i "
"thjeshtë dhe i peshës së lehtë, por mund të përshtatet në shkallë më të "
"vogël."
#: plinth/modules/transmission/__init__.py:33 #: plinth/modules/transmission/__init__.py:33
#, python-brace-format #, python-brace-format
@ -7032,6 +7044,8 @@ msgid ""
"<a href=\"{samba_url}\">Samba</a> shares can be set as the default download " "<a href=\"{samba_url}\">Samba</a> shares can be set as the default download "
"directory from the dropdown menu below." "directory from the dropdown menu below."
msgstr "" msgstr ""
"Pjesë <a href=\"{samba_url}\">Samba</a> mund të caktohen si drejtori "
"parazgjedhje shkarkimesh që nga menuja hapmbyll më poshtë."
#: plinth/modules/transmission/__init__.py:41 #: plinth/modules/transmission/__init__.py:41
#, python-brace-format #, python-brace-format
@ -7555,13 +7569,7 @@ msgid "The following administrator accounts exist in the system."
msgstr "Në sistem ekzistojnë llogaritë vijuese përgjegjësish." msgstr "Në sistem ekzistojnë llogaritë vijuese përgjegjësish."
#: plinth/modules/users/templates/users_firstboot.html:50 #: plinth/modules/users/templates/users_firstboot.html:50
#, fuzzy, python-format #, python-format
#| msgid ""
#| "Delete these accounts from command line and refresh the page to create an "
#| "account that is usable with %(box_name)s. On the command line run the "
#| "command 'echo \"{password}\" | /usr/share/plinth/actions/users remove-"
#| "user {username}'. If an account is already usable with %(box_name)s, skip "
#| "this step."
msgid "" msgid ""
"Delete these accounts from command line and refresh the page to create an " "Delete these accounts from command line and refresh the page to create an "
"account that is usable with %(box_name)s. On the command line run the " "account that is usable with %(box_name)s. On the command line run the "
@ -7570,10 +7578,11 @@ msgid ""
"already usable with %(box_name)s, skip this step." "already usable with %(box_name)s, skip this step."
msgstr "" msgstr ""
"Fshijini këto llogari që nga rreshti i urdhrave dhe rifreskoni faqen, që të " "Fshijini këto llogari që nga rreshti i urdhrave dhe rifreskoni faqen, që të "
"krijohet një llogari e cila të jetë e përdorushme me %(box_name)s. Te " "krijohet një llogari e cila të jetë e përdorshme me %(box_name)s. Te rreshti "
"rreshti i urdhrave jepni urdhrin 'echo \"{password}\" | /usr/share/plinth/" "i urdhrave jepni urdhrin “echo '{\"args\": [EMËR PËRDORUESI”, “FJALËKALIM”], "
"actions/users remove-user {username}'. Nëse ka tashmë një llogari të " "\"kwargs\": {}}' | sudo /usr/share/plinth/actions/actions users remove_user”"
"përdorshme me %(box_name)s, anashkalojeni këtë hap." ". Nëse një llogari është tashmë e përdorshme me %(box_name)s, anashkaloje "
"këtë hap."
#: plinth/modules/users/templates/users_list.html:11 #: plinth/modules/users/templates/users_list.html:11
#: plinth/modules/users/views.py:64 #: plinth/modules/users/views.py:64
@ -8285,6 +8294,9 @@ msgid ""
"FreedomBox is a personal server designed for privacy and data ownership. It " "FreedomBox is a personal server designed for privacy and data ownership. It "
"is free software that lets you install and manage server apps with ease." "is free software that lets you install and manage server apps with ease."
msgstr "" msgstr ""
"FreedomBox është një shërbyes personal i konceptuar për privatësi dhe "
"pronësi të dhënash. Është software i lirë, që ju lejon të instaloni dhe "
"administroni kollaj aplikacione shërbyesi."
#: plinth/templates/base.html:110 #: plinth/templates/base.html:110
msgid " Home" msgid " Home"

View File

@ -30,7 +30,7 @@ class SSHApp(app_module.App):
app_id = 'ssh' app_id = 'ssh'
_version = 2 _version = 3
def __init__(self): def __init__(self):
"""Create components for the app.""" """Create components for the app."""
@ -73,6 +73,8 @@ class SSHApp(app_module.App):
privileged.setup() privileged.setup()
if not old_version: if not old_version:
self.enable() self.enable()
elif old_version == 2 and privileged.are_users_restricted():
privileged.restrict_users(True)
elif old_version == 1: elif old_version == 1:
privileged.restrict_users(True) privileged.restrict_users(True)

View File

@ -58,11 +58,11 @@ def setup():
@privileged @privileged
def restrict_users(should_restrict: bool): def restrict_users(should_restrict: bool):
"""Restrict SSH logins to groups root, admin and freedombox-ssh.""" """Restrict SSH logins to groups root, sudo, admin and freedombox-ssh."""
if not should_restrict: if not should_restrict:
config_file.unlink(missing_ok=True) config_file.unlink(missing_ok=True)
else: else:
config_file.write_text('AllowGroups root admin freedombox-ssh\n', config_file.write_text('AllowGroups root sudo admin freedombox-ssh\n',
encoding='utf-8') encoding='utf-8')
action_utils.service_reload('sshd') action_utils.service_reload('sshd')

View File

@ -12,7 +12,8 @@ from typing import List, Tuple, Union
from plinth.action_utils import (apt_hold, apt_hold_flag, apt_hold_freedombox, from plinth.action_utils import (apt_hold, apt_hold_flag, apt_hold_freedombox,
apt_unhold_freedombox, debconf_set_selections, apt_unhold_freedombox, debconf_set_selections,
is_package_manager_busy, run_apt_command, is_package_manager_busy, run_apt_command,
service_daemon_reload, service_restart) service_daemon_reload, service_is_running,
service_restart, service_start, service_stop)
from plinth.actions import privileged from plinth.actions import privileged
from plinth.modules.apache.components import check_url from plinth.modules.apache.components import check_url
from plinth.modules.snapshot import is_apt_snapshots_enabled from plinth.modules.snapshot import is_apt_snapshots_enabled
@ -469,6 +470,15 @@ def _perform_dist_upgrade():
reenable_snapshots = _take_snapshot_and_disable() reenable_snapshots = _take_snapshot_and_disable()
reenable_searx = _disable_searx() reenable_searx = _disable_searx()
# If quassel is running during dist upgrade, it may be restarted
# several times. This causes IRC users to rapidly leave/join
# channels. Stop quassel for the duration of the dist upgrade.
quassel_service = 'quasselcore'
quassel_was_running = service_is_running(quassel_service)
if quassel_was_running:
print('Stopping quassel service before dist upgrade...', flush=True)
service_stop(quassel_service)
# Hold freedombox package during entire dist upgrade. # Hold freedombox package during entire dist upgrade.
print('Holding freedombox package...', flush=True) print('Holding freedombox package...', flush=True)
with apt_hold_freedombox(): with apt_hold_freedombox():
@ -512,6 +522,11 @@ def _perform_dist_upgrade():
_update_searx(reenable_searx) _update_searx(reenable_searx)
if quassel_was_running:
print('Re-starting quassel service after dist upgrade...',
flush=True)
service_start(quassel_service)
print('Running apt autoremove...', flush=True) print('Running apt autoremove...', flush=True)
run_apt_command(['autoremove']) run_apt_command(['autoremove'])