Compare commits

...

7 Commits

Author SHA1 Message Date
James Valleroy
350466940f
Release v26.9.1 to unstable
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2026-06-15 20:46:51 -04:00
James Valleroy
dff6698647
doc: Fetch latest manual
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2026-06-15 20:44:27 -04:00
James Valleroy
ceaccd7baf
wireguard: Get config for both download and qr actions
Re-arrange imports

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2026-06-15 20:15:14 -04:00
James Valleroy
629cc866b6
wireguard: Move segno import inside method
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2026-06-15 20:15:14 -04:00
Sunil Mohan Adapa
efcdc8cb5c
matrixsynapse: Allow installing new dependencies
Fixes: #2556

Should be merged after fix for https://bugs.debian.org/1122841 is in unstable.

- This fixes issue with Matrix Synapse app not being installable from current
unstable.

- matrix-synapse package depends on older version of python3-typing-extensions.
This causes the daemon to fail during startup when older version is installed.
This was reported as https://bugs.debian.org/1122841. After this bug is fixed
and a newer version of matrix-synapse is uploaded, the patch will work as
expected. An alternative was to allow unattended-upgrades to upgrade
python3-typing-extensions from unstable, but has to be done very carefully and
with a lot of testing.

Tests:

- Install Matrix Synapse apps works. This request installation of the latest
version python3-typing-extensions from unstable. The daemon is running properly
after installation.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2026-06-15 20:12:24 -04:00
Coucouf
0188ad38f7
Translated using Weblate (French)
Currently translated at 100.0% (1942 of 1942 strings)
2026-06-13 22:01:20 +02:00
Pierfrancesco Passerini
1086d52851
Translated using Weblate (Italian)
Currently translated at 100.0% (1942 of 1942 strings)
2026-06-13 22:01:17 +02:00
11 changed files with 104 additions and 73 deletions

30
debian/changelog vendored
View File

@ -1,3 +1,33 @@
freedombox (26.9.1) unstable; urgency=medium
[ 大王叫我来巡山 ]
* Translated using Weblate (Chinese (Simplified Han script))
[ Burak Yavuz ]
* Translated using Weblate (Turkish)
[ Besnik Bleta ]
* Translated using Weblate (Albanian)
[ Jiří Podhorecký ]
* Translated using Weblate (Czech)
[ Pierfrancesco Passerini ]
* Translated using Weblate (Italian)
[ Coucouf ]
* Translated using Weblate (French)
[ Sunil Mohan Adapa ]
* matrixsynapse: Allow installing new dependencies
[ James Valleroy ]
* wireguard: Move segno import inside method
* wireguard: Get config for both download and qr actions
* doc: Fetch latest manual
-- James Valleroy <jvalleroy@mailbox.org> Mon, 15 Jun 2026 20:46:29 -0400
freedombox (26.9) unstable; urgency=medium
[ Sunil Mohan Adapa ]

View File

@ -12,7 +12,7 @@
=== Availability ===
* [[https://www.aliexpress.com/store/group/Allwinner-H2/1553371_516093180.html|AliExpress]]
* [[https://www.aliexpress.com/item/3256803323773726.html|AliExpress]]
=== Hardware ===

View File

@ -8,6 +8,13 @@ For more technical details, see the [[https://salsa.debian.org/freedombox-team/f
The following are the release notes for each !FreedomBox version.
== FreedomBox 26.9.1 (2026-06-15) ==
* locale: Update translations for Albanian, Chinese (Simplified Han script), Czech, French, Italian, Turkish
* matrixsynapse: Allow installing new dependencies
* wireguard: Get config for both download and qr actions
* wireguard: Move segno import inside method
== FreedomBox 26.9 (2026-06-01) ==
=== Highlights ===

View File

@ -12,7 +12,7 @@
=== Availability ===
* [[https://www.aliexpress.com/store/group/Allwinner-H2/1553371_516093180.html|AliExpress]]
* [[https://www.aliexpress.com/item/3256803323773726.html|AliExpress]]
=== Hardware ===

View File

@ -8,6 +8,13 @@ For more technical details, see the [[https://salsa.debian.org/freedombox-team/f
The following are the release notes for each !FreedomBox version.
== FreedomBox 26.9.1 (2026-06-15) ==
* locale: Update translations for Albanian, Chinese (Simplified Han script), Czech, French, Italian, Turkish
* matrixsynapse: Allow installing new dependencies
* wireguard: Get config for both download and qr actions
* wireguard: Move segno import inside method
== FreedomBox 26.9 (2026-06-01) ==
=== Highlights ===

View File

@ -3,4 +3,4 @@
Package init file.
"""
__version__ = '26.9'
__version__ = '26.9.1'

View File

@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: FreedomBox UI\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-06-02 00:51+0000\n"
"PO-Revision-Date: 2026-04-16 15:09+0000\n"
"PO-Revision-Date: 2026-06-13 20:01+0000\n"
"Last-Translator: Coucouf <coucouf@coucouf.fr>\n"
"Language-Team: French <https://hosted.weblate.org/projects/freedombox/"
"freedombox/fr/>\n"
@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 5.17.1-dev\n"
"X-Generator: Weblate 2026.7.dev0\n"
#: plinth/config.py:103
#, python-brace-format
@ -10266,10 +10266,8 @@ msgid "Invalid key."
msgstr "Clé invalide."
#: plinth/modules/wireguard/forms.py:63
#, fuzzy
#| msgid "Enter a valid IPv4 address."
msgid "Not a valid IP address."
msgstr "Veuillez saisir une adresse IPv4 valide."
msgstr "Ce nest pas une adresse IP valide."
#: plinth/modules/wireguard/forms.py:69
#: plinth/modules/wireguard/templates/wireguard.html:29
@ -10317,13 +10315,6 @@ msgid "Client IP address provided by server"
msgstr "Adresse IP du client fournie par le serveur"
#: plinth/modules/wireguard/forms.py:97
#, fuzzy
#| msgid ""
#| "IP address assigned to this machine on the VPN after connecting to the "
#| "endpoint. This value is usually provided by the server operator. Example: "
#| "192.168.0.10. You can also specify the network. This will allow reaching "
#| "machines in the network. Examples: 10.68.12.43/24 or "
#| "10.68.12.43/255.255.255.0."
msgid ""
"IP address assigned to this machine on the VPN after connecting to the "
"endpoint. This value is usually provided by the server operator. Example: "
@ -10333,9 +10324,10 @@ msgid ""
msgstr ""
"Adresse IP attribuée à cette machine sur le réseau privé virtuel VPN une "
"fois connectée au serveur distant. Cette valeur est généralement fournie par "
"lopérateur du serveur. Par exemple : 192.18.0.10. Vous pouvez également "
"spécifier le réseau. Cela vous permettra datteindre les machines de ce "
"réseau. Par exemple : 10.68.12.43/24 ou 10.68.12.43/255.255.255.0."
"lopérateur du serveur. Par exemple : 192.18.0.10 ou "
"2a03:7c80:4b2c:91a2:5d41:ffee:9b82:7c17. Vous pouvez également spécifier le "
"réseau. Cela vous permettra datteindre les machines de ce réseau. Par "
"exemple : 10.68.12.43/24 ou 10.68.12.43/255.255.255.0."
#: plinth/modules/wireguard/forms.py:106
msgid "Private key of this machine"
@ -10434,14 +10426,12 @@ msgstr ""
"linstant."
#: plinth/modules/wireguard/templates/wireguard.html:88
#, fuzzy
#| msgid "Add a new peer"
msgid "Auto add a new peer"
msgstr "Ajouter un nouveau pair"
msgstr "Ajout auto dun nouveau pair"
#: plinth/modules/wireguard/templates/wireguard.html:92
msgid "Add Client Automatically"
msgstr ""
msgstr "Ajouter un client automatiquement"
#: plinth/modules/wireguard/templates/wireguard.html:94
msgid "Add a new peer"
@ -10498,60 +10488,55 @@ msgid "Add Client"
msgstr "Ajouter un client"
#: plinth/modules/wireguard/templates/wireguard_auto_add_client.html:26
#, fuzzy
#| msgid "Private key path"
msgid "Private Key"
msgstr "Chemin de la clef privée"
msgstr "Clé privée"
#: plinth/modules/wireguard/templates/wireguard_auto_add_client.html:29
msgid "Click to reveal"
msgstr ""
msgstr "Cliquer pour afficher"
#: plinth/modules/wireguard/templates/wireguard_auto_add_client.html:36
#, fuzzy
#| msgid "Key Import Date"
msgid "Important:"
msgstr "Date de l'importation de la clé"
msgstr "Important :"
#: plinth/modules/wireguard/templates/wireguard_auto_add_client.html:37
msgid "Save the private key now. This page shows it only once!"
msgstr ""
"Sauvegardez la clé privée maintenant. Cette page ne laffiche quune seule "
"fois!"
#: plinth/modules/wireguard/templates/wireguard_auto_add_client.html:41
#, fuzzy
#| msgid "configuration failed"
msgid "Client configuration file"
msgstr "échec de configuration"
msgstr "Fichier de configuration du client"
#: plinth/modules/wireguard/templates/wireguard_auto_add_client.html:43
msgid ""
"Download the configuration file (.conf) for manual import, or use the QR "
"code to import directly from your WireGuard mobile app."
msgstr ""
"Téléchargez le fichier de configuration (.conf) pour un import manuel, ou "
"utilisez le QR code pour un import direct depuis votre appli mobile "
"WireGuard."
#: plinth/modules/wireguard/templates/wireguard_auto_add_client.html:49
#, fuzzy
#| msgid "warning"
msgid "Warning:"
msgstr "avertissement"
msgstr "Mise en garde :"
#: plinth/modules/wireguard/templates/wireguard_auto_add_client.html:50
msgid ""
"Treat this QR code like a password. Anyone who scans it can gain VPN access "
"if the connection is enabled."
msgstr ""
"Traitez ce QR code comme un mot de passe. Quiconque met la main dessus "
"pourra se connecter au VPN si la connexion est active."
#: plinth/modules/wireguard/templates/wireguard_auto_add_client.html:60
#, fuzzy
#| msgid "Download my profile"
msgid "Download config file"
msgstr "Télécharger mon profil"
msgstr "Télécharger le fichier de conf"
#: plinth/modules/wireguard/templates/wireguard_auto_add_client.html:65
#, fuzzy
#| msgid "Source Code"
msgid "Show QR Code"
msgstr "Code source"
msgstr "Afficher le QR code"
#: plinth/modules/wireguard/templates/wireguard_delete_client.html:14
msgid "Are you sure that you want to delete this client?"
@ -10656,13 +10641,11 @@ msgstr "Un client existe déjà avec cette clé publique"
#: plinth/modules/wireguard/views.py:199
msgid "Session expired. Please try again."
msgstr ""
msgstr "La session a expiré. Veuillez réessayer."
#: plinth/modules/wireguard/views.py:202
#, fuzzy
#| msgid "Domain already exists."
msgid "Client already exists"
msgstr "Le domaine existe déjà."
msgstr "Le client existe déjà."
#: plinth/modules/wireguard/views.py:215
msgid "Allowed Client"

View File

@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-06-02 00:51+0000\n"
"PO-Revision-Date: 2026-06-08 13:01+0000\n"
"PO-Revision-Date: 2026-06-13 20:01+0000\n"
"Last-Translator: Pierfrancesco Passerini <p.passerini@gmail.com>\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/freedombox/"
"freedombox/it/>\n"
@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 2026.6\n"
"X-Generator: Weblate 2026.7.dev0\n"
#: plinth/config.py:103
#, python-brace-format
@ -10329,26 +10329,24 @@ msgstr ""
"utilizza il codice QR dall'app mobile WireGuard."
#: plinth/modules/wireguard/templates/wireguard_auto_add_client.html:49
#, fuzzy
#| msgid "warning"
msgid "Warning:"
msgstr "attenzione"
msgstr "Attenzione:"
#: plinth/modules/wireguard/templates/wireguard_auto_add_client.html:50
msgid ""
"Treat this QR code like a password. Anyone who scans it can gain VPN access "
"if the connection is enabled."
msgstr ""
"Trattare questo codice QR come una password. Chiunque lo scansioni,se la "
"connessione è abilitata, otterrà l'accesso VPN."
#: plinth/modules/wireguard/templates/wireguard_auto_add_client.html:60
#, fuzzy
#| msgid "Download my profile"
msgid "Download config file"
msgstr "Download del profilo"
msgstr "Download del file di configurazione"
#: plinth/modules/wireguard/templates/wireguard_auto_add_client.html:65
msgid "Show QR Code"
msgstr ""
msgstr "Mostra QR Code"
#: plinth/modules/wireguard/templates/wireguard_delete_client.html:14
msgid "Are you sure that you want to delete this client?"
@ -10453,13 +10451,11 @@ msgstr "Il cliente con chiave pubblica esiste già"
#: plinth/modules/wireguard/views.py:199
msgid "Session expired. Please try again."
msgstr ""
msgstr "Sessione scaduta. Riprova."
#: plinth/modules/wireguard/views.py:202
#, fuzzy
#| msgid "Domain already exists."
msgid "Client already exists"
msgstr "Il dominio esiste già."
msgstr "Client già esistente"
#: plinth/modules/wireguard/views.py:215
msgid "Allowed Client"

View File

@ -55,7 +55,7 @@ class UpgradesApp(app_module.App):
app_id = 'upgrades'
_version = 21
_version = 22
can_be_disabled = False

View File

@ -75,6 +75,16 @@ Package: python3-pympler
Pin: release n=sid
Pin-Priority: 200
Explanation: matrix-synapse depends on python3-rpds-py (>= 0.25.0)
Package: python3-rpds-py
Pin: release n=sid
Pin-Priority: 500
Explanation: matrix-synapse depends on typing-extensions (>=4.14.1)
Package: python3-typing-extensions
Pin: release n=sid
Pin-Priority: 500
Explanation: Make janus package and its dependencies installable from Debian
Explanation: 'unstable' distribution.
Package: janus

View File

@ -3,7 +3,7 @@
Views for WireGuard application.
"""
import segno
from io import BytesIO
import urllib.parse
from django.contrib import messages
@ -14,8 +14,6 @@ from django.urls import reverse_lazy
from django.utils.translation import gettext as _
from django.views.generic import FormView, TemplateView, View
from io import BytesIO
from plinth import network
from plinth.modules.names.components import DomainName
from plinth.views import AppView
@ -99,28 +97,28 @@ class SessionClientDataMixin:
raise Http404("Session expired")
return {
'next_ip': next_ip,
'privkey': privkey,
'pubkey': pubkey,
'endpoint': endpoint
}
'next_ip': next_ip,
'privkey': privkey,
'pubkey': pubkey,
'endpoint': endpoint
}
def get_client_config(self, request):
"""Rebuild client config from session."""
data = self.get_session_client_data(request)
return utils.build_client_config(
data['next_ip'], data['privkey'],
data['pubkey'], data['endpoint']
)
return utils.build_client_config(data['next_ip'], data['privkey'],
data['pubkey'], data['endpoint'])
class ClientActionsView(SessionClientDataMixin, View):
action = None
def get(self, request):
import segno
config = self.get_client_config(request)
if self.action == 'download':
config = self.get_client_config(request)
response = HttpResponse(config, content_type='text/plain')
response['Content-Disposition'] = \
'attachment; filename="wg-client.conf"'
@ -174,7 +172,7 @@ class AutoAddClientView(SuccessMessageMixin, FormView):
'client_privkey': client_privkey,
'client_pubkey': client_pubkey,
'endpoint': endpoint
}
}
# Add properties to template context
context['domains'] = filtered_domains