9894 Commits

Author SHA1 Message Date
Sunil Mohan Adapa
de1070df35
action_utils: Implement a utility to run a command as different user
- To be used to run specific command as another user.

Tests:

- Unit tests.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Joseph Nuthalapati <njoseph@riseup.net>
2025-09-05 20:22:00 +05:30
Sunil Mohan Adapa
46c3ac90f3
email: Fix Thunderbird auto configuration failure
- When there is no URL name provided, the view fails to render when computing
breadcrumbs from middleware. Provide a name so that the URL does not lead to a
500 HTTP error.

Tests:

- Accessing the URL on development machine does not lead to an error page.

- On a production machine, when trying to use Thunderbird account setup wizard,
without the patch, Thunderbird says that it found configuration by enumerating
common names for the domain. A 500 error can be seen in the journal. After the
change in patch, Thunderbird says that it found the configuration from the
provider. A 200 success code can be seen from journal.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-09-05 07:33:03 -04:00
Joseph Nuthalapati
1c11d420fc
l10n: Fix a broken string in Russian translation
Signed-off-by: Joseph Nuthalapati <njoseph@riseup.net>
2025-09-05 15:49:32 +05:30
Dietmar
40c987ff7a
Translated using Weblate (Italian)
Currently translated at 47.1% (886 of 1880 strings)
2025-09-04 18:02:03 +02:00
Dietmar
1d20bf200b
Translated using Weblate (German)
Currently translated at 98.4% (1850 of 1880 strings)
2025-09-04 18:02:00 +02:00
Sunil Mohan Adapa
4140d3b444
privileged: Don't isolate /var/tmp/ for privileged daemon
- Files from web service are uploaded to /var/tmp/ directory. They need to
accessible to privileged daemon to that it can move them to a target location.
So, if /var/tmp is isolated for privileged daemon, it can't see those files as a
separate tmpfs filesystem is mounted on that folder.

- Ideally, we should have PrivateTmp=yes and
JoinsNameSpacesOf=freedombox-privileged.service set on plinth.service. However,
this requires further changes to the way developer execution is done command
line. This is done in future.

Tests:

- Uploading a backup works.

- Uploading a kiwix archive works.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Veiko Aasa <veiko17@disroot.org>
2025-09-04 10:29:49 +03:00
Roman Akimov
1ba31e32f3
Translated using Weblate (Russian)
Currently translated at 97.3% (1830 of 1880 strings)
2025-09-03 09:02:02 +00:00
Joseph Nuthalapati
2075016369
l10n: Fix broken Italian translation
Signed-off-by: Joseph Nuthalapati <njoseph@riseup.net>
2025-09-02 12:48:58 +05:30
Jiří Podhorecký
8c98ba21d1
Translated using Weblate (Czech)
Currently translated at 99.9% (1879 of 1880 strings)
2025-09-02 09:01:30 +02:00
Dietmar
3fa6a27dde
Translated using Weblate (Italian)
Currently translated at 42.1% (792 of 1880 strings)
2025-09-02 09:01:29 +02:00
Joseph Nuthalapati
aab9204cb6
l10n: Fix formatted strings for errors/exceptions
Signed-off-by: Joseph Nuthalapati <njoseph@riseup.net>
2025-09-02 12:27:38 +05:30
Joseph Nuthalapati
5e1345f0df
backups: Trim translatable string
Signed-off-by: Joseph Nuthalapati <njoseph@riseup.net>
2025-09-02 12:26:36 +05:30
Veiko Aasa
35b03aa5df
samba: Update client list
Removed android apps that have been discontinued and added SambaLite
app.

Tested that SambaLite works with Samba app.

Signed-off-by: Veiko Aasa <veiko17@disroot.org>
Reviewed-by: Joseph Nuthalapati <njoseph@riseup.net>
2025-09-01 23:18:54 +05:30
Sunil Mohan Adapa
52cde4c0b6
upgrades: Don't allow needs-restart to restart privileged daemon
Fixes: #2534.

- Otherwise, if python standard library is updated, needs-restart will determine
that the freedombox-privileged.service needs to be restarted. The service may
have triggered the 'apt-get install' operation that triggered needs-restart in
the first place. That causes the install operation to fail.

Tests:

- Installing Calibre app which also brings in python standard library update
succeeds and freedombox-privileged.service is not restarted during 'apt-get
install' operation.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Joseph Nuthalapati <njoseph@riseup.net>
2025-09-01 23:14:25 +05:30
Sunil Mohan Adapa
d5f22a8755
web_server: Restart in development mode only for source code changes
Helps: #2534.

- When a module change is detected. Don't restart. Restart only when FreedomBox
source code is changed. This prevents unwanted restarts when Python standard
library is updated during an app's installation.

- This will make functional tests more robust as during functional tests,
freedombox service run in development mode.

- This may lead to annoyances during development when we have to restart the
service manually. This is unlikely but if it happens we can tweak the setting by
maintaining the allow list of modules instead of deny list of modules.

Tests:

- Calibre installation which brings in new version of python standard library
works without causing CherryPy to detect python module changes during 'apt-get
install'.

- Changing a source code file under the plinth/ directory leads to the service
getting automatically restarted.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Joseph Nuthalapati <njoseph@riseup.net>
2025-09-01 23:14:16 +05:30
109247019824
409d011982
Translated using Weblate (Bulgarian)
Currently translated at 56.2% (1057 of 1880 strings)
2025-09-01 19:02:16 +02:00
Roman Akimov
3463e13c3b
Translated using Weblate (Russian)
Currently translated at 95.1% (1789 of 1880 strings)
2025-09-01 19:02:12 +02:00
Dietmar
395ff324b9
Translated using Weblate (Italian)
Currently translated at 38.6% (727 of 1880 strings)
2025-09-01 19:02:09 +02:00
Dietmar
c4832b4e87
Translated using Weblate (German)
Currently translated at 98.4% (1851 of 1880 strings)
2025-09-01 19:02:06 +02:00
ikmaak
ec483f0060
Translated using Weblate (Dutch)
Currently translated at 97.3% (1830 of 1880 strings)
2025-08-31 17:01:54 +02:00
Sunil Mohan Adapa
411bec8f53
syncthing: Update Android clients to Syncthing-Fork
Closes: #2539.

- MPL 2.0 is a free software license.
https://www.gnu.org/licenses/license-list.html#MPL-2.0

Tests:

- Links in the app page work.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Joseph Nuthalapati <njoseph@riseup.net>
2025-08-31 11:03:20 +05:30
Joseph Nuthalapati
0a9341851f
power: logind config to ignore laptop lid close
Defined two settings for ignoring laptop lid close action. They handle
the two cases - running on battery power and running on external power.

Signed-off-by: Joseph Nuthalapati <njoseph@riseup.net>
2025-08-29 20:50:47 -07:00
Sunil Mohan Adapa
0081d1ffeb
container: Pass --nvram option to virsh undefine
- Similar to the way we did in another place. Otherwise, the command won't work
on UEFI based VMs.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
2025-08-29 15:48:27 -07:00
Sunil Mohan Adapa
cc347258b5
Makefile, settings: Use full paths in pot files
- As reported on IRC, links to source code files in Weblate are broken. This is
due to incorrect paths to files inside the POT file. Instead of plinth/views.py
it contains views.py. This might be a regression introduced when switching to
Makefile for all build tasks.

- To fix, we need to run 'django-admin makemessages' command at the topic level
directory in the source code repository. However, running at the top-level has
problems:

  - Various unnecessary directories are considered. This was remedied using
  --ignore aruments.

  - The default locales directory was not being detected. This was remedied
  using LOCALE_PATHS in Django settings.

  - Django settings file was not being picked up. This was remedied using
  --settings option.

  - Django settings were being picked up from system's module path. This was
  remedied using --pythonpath . option.

Tests:

- Running 'make update-translations' updates all the files. Newly generated POT
file contains plinth/ in the file paths. All locales were updated. There are no
other major changes POT or language files (other than what seemed to be pending
updates).

- Running freedombox-develop, locale can be changed to Spanish. The changed
locale is visible in UI. Changes to .po file are reflected in the UI after
running 'django-admin compilemessages'.

- After running freedombox using plinth.service systemd unit, locale can be
changed to Spanish. The changed locale is visible in UI. Changes to .po file are
reflected in the UI after running 'make build install'.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Veiko Aasa <veiko17@disroot.org>
2025-08-29 11:30:14 +03:00
Sunil Mohan Adapa
6efb0681fc
d/control: Remove libpam-abl as a recommendation
Closes: #2533.

See https://salsa.debian.org/freedombox-team/freedombox/-/issues/2533 for
rationale.

Tests:

- Build Debian package with changes and incremented version number. Install it
in the development container and run unattended-upgrade -d. libpam-abl package
is removed by unattended-upgrades.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Veiko Aasa <veiko17@disroot.org>
2025-08-29 11:14:06 +03:00
Sunil Mohan Adapa
1f72034433
container: Add support for Trixie as stable distribution
- Keep Bookworm as oldstable.

- Introduce delay before resize the filesystem as mount operation may start a
balancing operation that conflicts with resize.

- Change the VM configuration to enable UEFI for all but bookworm images.

- Add --nvram when destroying the VM so that VMs with UEFI booting and NVRAM
storage enabled can be deleted.

- Add UEFI parameters to grub-install after changing FSID. Mount the EFI
partition to allow grub-install to work.

Tests:

- On a clean setup (rm -rf .container), bring up all four containers using
machine-type=vm with on host machine arch amd64. Run first wizard successfully.

- On all but oldstable, run mokutil --sb-state and ensure that secure boot is
enabled.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
2025-08-25 15:53:33 -07:00
Sunil Mohan Adapa
5cee6563cc
diagnostics: Fix notification severity when skipping tests
Fixes: #2531.

- Currently, when a diagnostics test is skipped, the notification shows up with
'error' severity. Instead of this, treat 'skipped' and 'not done' tests as
passed for the purpose of the notification.

Tests:

- Change code in package.py to set the result of diagnostic test to be 'SKIPPED'
and 'NOT_DONE', in both cases, the notification is not shown after running full
diagnostic runs.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Joseph Nuthalapati <njoseph@riseup.net>
2025-08-21 19:38:33 +05:30
大王叫我来巡山
0cf3ffed31
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 61.6% (1159 of 1880 strings)
2025-08-21 09:02:14 +00:00
Coucouf
4d510b86c1
Translated using Weblate (French)
Currently translated at 100.0% (1880 of 1880 strings)
2025-08-21 09:02:12 +00:00
Sunil Mohan Adapa
a0b2625c6a
tests: functional: Fix incorrect skipping of install tests
Fixes: #2529.

Tests:

- Run functional tests on bepasty. Without the patch, many tests are skipped.
With the patch, all tests are executed. Introducing a sleep delay in
Package.is_available() method also works.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Veiko Aasa <veiko17@disroot.org>
2025-08-21 10:59:10 +03:00
Sunil Mohan Adapa
4e1ee2371f
ui: Fix missing semicolon in JS file
- Mostly for styling and just to fix the linter.

Tests:

- After package availability check in bepasty page, 'Install' button is enabled.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Veiko Aasa <veiko17@disroot.org>
2025-08-21 10:58:35 +03:00
Sunil Mohan Adapa
6327a04ea0
HACKING.md: Mention using virtual machines instead of containers
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
2025-08-20 19:12:47 -07:00
Sunil Mohan Adapa
f27b222657
homeassistant: Fix typo in description
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
2025-08-20 08:33:25 -07:00
Максим Горпиніч
5341388716
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (1880 of 1880 strings)
2025-08-20 04:02:00 +00:00
大王叫我来巡山
a9b54f408c
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 61.6% (1159 of 1880 strings)
2025-08-20 04:01:59 +00:00
Burak Yavuz
c5320b014d
Translated using Weblate (Turkish)
Currently translated at 100.0% (1880 of 1880 strings)
2025-08-20 04:01:56 +00:00
Coucouf
c88262bc10
Translated using Weblate (French)
Currently translated at 99.8% (1878 of 1880 strings)
2025-08-20 04:01:54 +00:00
James Valleroy
8e8e222371
Release v25.10 to unstable
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
v25.10
2025-08-18 20:59:28 -04:00
James Valleroy
2026195cb2
doc: Fetch latest manual
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2025-08-18 20:58:30 -04:00
James Valleroy
cd3d89f498
locale: Update translation strings
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2025-08-18 20:36:11 -04:00
Sunil Mohan Adapa
493dd7b3d3
email: Increment app version number to trigger dovecot restart
- Since we have important fixes deployed that we would like to get effected
immediately.

Tests:

- Not tested.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-08-18 20:31:25 -04:00
Sunil Mohan Adapa
e02263c93b
dovecot: Fix location of Inbox in dovecot 2.4
- Dovecot is upgraded from 2.3 to 2.4, users are unable to see the old mails
from before the upgrade. New mails can be received but old mails can't be
accessed. Old mails are still present in
/var/mail/{usernmame}/mail/mailboxes/... New mails are being stored in
/var/mail/{username}/u.*. Other mailboxes such as 'Sent' are not affected.

Tests:

- Mails received in the inbox before the upgrade to dovecot 2.4 are now visible.
Without the patch, pre-upgrade mails are not visible and newly received mails
are stored in /var/mail/{username} instead of /var/mail/{username}/mailboxes/...

Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-08-18 20:31:17 -04:00
Sunil Mohan Adapa
8692bd20ee
dovecot: Allow login using email address with dovecot version 2.4
- Users were able to login using email address during dovecot 2.3 on Bookworm.
It was incorrectly assumed that there were not able to do that. Hence the
feature was not ported to 2.4. Early upgraders have reported this issue.

Tests:

- Login using full email address in the User Name field in Thunderbird. Without
the patch, the login fails and with the patch, it succeeds.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-08-18 20:31:14 -04:00
Sunil Mohan Adapa
fe7d478099
sogo: Allow adding IMAP accounts and changing full name
Configuration provided by David (https://discuss.freedombox.org/u/david/)

Tests:

- Install SOGo without patch and apply the patch. The app setup is run and new
version of configuration file is installed. After logging into SOGo:

  - Mail settings shows an option to add IMAP account.

  - Editing Full Name in the identity of the default account is now possible.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-08-18 09:26:12 -04:00
Sunil Mohan Adapa
c479e2b819
ui: Fix user menu popup overflowing beyond the page
Fixes: #2528

Tests:

- In Responsive Design Mode in Firefox, expand the screen width to be beyond
1400px. The left side of popup for the user menu will be aligned with the left
side of the menu item itself. When the width of the page is less than 1400px,
the right side of the popup will be right aligned with the right side of the
menu item.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-08-17 10:33:36 -04:00
தமிழ்நேரம்
d76944cafc
Translated using Weblate (Tamil)
Currently translated at 100.0% (1854 of 1854 strings)
2025-08-17 08:02:06 +00:00
Sunil Mohan Adapa
cf3bc4aae1
d/control: Drop dependency on python3-setuptools-git
Tests:

- Build a Debian package before and after the patch and notice that binary
packages have no differences when compared with diffoscope. Source packages show
only the change in the patch but no other change.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-08-16 14:16:08 -04:00
Joseph Nuthalapati
2f53c4dd39
actions:privileged: Fix flake8 errors
Signed-off-by: Joseph Nuthalapati <njoseph@riseup.net>
2025-08-16 23:04:16 +05:30
Sunil Mohan Adapa
e26a4b71eb
package: Uninstall packages even if they are not in apt cache
Tests:

- Install matrix-synapse app by adding 'unstable' in apt sources.list. Then
remove 'unstable' from apt sources.list. Then matrix-synapse package will no
longer be found in the apt's cache.

- Try to uninstall the package. Without patch, the process errors out. With
patch, uninstall completes successfully.

- While matrix-synapse app is installed and apt cache does not contain
matrix-synapse package, install and uninstall bepasty app. Without patch,
uninstall fails. With patch, uninstall succeeds.

- Install and uninstall minetest app. 3d armor mod package is successfully
installed.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Joseph Nuthalapati <njoseph@riseup.net>
2025-08-16 23:04:05 +05:30
Sunil Mohan Adapa
3f19c91007
views: Remove unused code related to refresh packages button
- This change was part of the original pull request !2661 but was missed in its
continuation !2677.

Tests:

- Installing an app works.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Joseph Nuthalapati <njoseph@riseup.net>
2025-08-16 23:03:55 +05:30