9311 Commits

Author SHA1 Message Date
James Valleroy
6d2f992a42
Release v25.3.1 to unstable
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
v25.3.1
2025-02-15 17:59:27 -05:00
James Valleroy
83efbc3ddf
doc: Fetch latest manual
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2025-02-15 17:58:31 -05:00
Benedek Nagy
1ab78fb9da
email: fix fresh installation issue
The changes introduced in https://salsa.debian.org/freedombox-team/freedombox/-/merge_requests/2616
make the email app installation fail if it's installed for the first
time.
This patch ensures that 95-freedombox-sieve.conf is present and that
dovecot is restarted before privileged.setup_spam() is run. This way,
the sievec command can run.

Signed-off-by: Benedek Nagy <contact@nbenedek.me>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-02-15 17:32:39 -05:00
James Valleroy
e8f8e69143
Release v25.3 to unstable
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
v25.3
2025-02-10 20:59:56 -05:00
James Valleroy
243b2df318
doc: Fetch latest manual
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2025-02-10 20:58:47 -05:00
pesder
e1a1fe2a1e
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 21.3% (388 of 1816 strings)
2025-02-07 13:01:57 +01:00
ikmaak
ba23d3f896
Translated using Weblate (Dutch)
Currently translated at 94.5% (1717 of 1816 strings)
2025-02-07 13:01:55 +01:00
James Valleroy
cc70075572
debian: Switch from dnsutils to bind9-dnsutils
dnsutils package is not available anymore.

Closes: #1094944

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: Joseph Nuthalapati <njoseph@riseup.net>
2025-02-03 09:45:52 +05:30
Besnik Bleta
8a4b5adef5
Translated using Weblate (Albanian)
Currently translated at 99.5% (1808 of 1816 strings)
2025-01-30 05:02:02 +00:00
109247019824
48aa581635
Translated using Weblate (Bulgarian)
Currently translated at 55.5% (1009 of 1816 strings)
2025-01-30 05:02:01 +00:00
Dietmar
ec3671eb85
Translated using Weblate (German)
Currently translated at 98.4% (1788 of 1816 strings)
2025-01-30 05:02:00 +00:00
Besnik Bleta
d7d45d9e2f
Translated using Weblate (Albanian)
Currently translated at 99.4% (1806 of 1816 strings)
2025-01-29 05:02:04 +01:00
109247019824
e1a20cd2c5
Translated using Weblate (Bulgarian)
Currently translated at 55.2% (1003 of 1816 strings)
2025-01-29 05:02:03 +01:00
Jiří Podhorecký
1970b42210
Translated using Weblate (Czech)
Currently translated at 100.0% (1816 of 1816 strings)
2025-01-29 05:02:02 +01:00
大王叫我来巡山
098b4a5db3
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 62.6% (1137 of 1816 strings)
2025-01-29 05:02:00 +01:00
Burak Yavuz
aaa630253f
Translated using Weblate (Turkish)
Currently translated at 100.0% (1816 of 1816 strings)
2025-01-29 05:01:59 +01:00
James Valleroy
23d6096d37
Release v25.2 to unstable
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
v25.2
2025-01-27 21:32:02 -05:00
James Valleroy
4d535294d3
doc: Fetch latest manual
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2025-01-27 21:06:49 -05:00
James Valleroy
24a1f3defe
locale: Update translation strings
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2025-01-27 20:26:21 -05:00
Benedek Nagy
6887c960fe
sogo: Add a new app for SOGo groupware
SOGo is an open source webmail client and groupware available in Debian.
Make a new FreedomBox app for it to be used with the local
Postfix/Dovecot email server.

SOGo requires a database to store events/tasks as well as user settings. Memcached
is also required for caching.

Users log in with their username (as opposed to username + domain on
Roundcube). The host header seen from the first login will be
associated with the user profile. So, if a user logs into SOGo from
freedombox.local and later configures the email server to use
example.com, they will manually have to edit their account(s) to show
the updated domain.

Authentication is done via openldap. It is possible to authenticate with
apache, however it is limited to http basic auth, so mod_auth_tkt cannot
be used. See: b40d777a86/SoObjects/SOGo/SOGoProxyAuthenticator.m (L137)
Configuring http basic auth in my opinion wouldn't add much to
the user experience. It would actually take away the usage of SOGO's built
in TOTP feature.

SOGo only accepts configurations from /etc/sogo/sogo.conf, other configs
from sogo.d don't get recognised.

Use the sogo icon from upstream source. Update sogo.png and sogo.svg to be the
same image (but resized) that is provided in the upstream source. The previous
image was download from Wikimedia Commons.

Update smtp settings so that messages can be sent

Test result for mail deliverability sent with SOGo: https://www.mail-tester.com/test-pdf2yzy6n

The result shows that the message is not DKIM signed. This seems to be
an issue not specific to SOGo. Mails sent from Thunderbird don't get
signed either.

Tests:
- Install app and log in with a FreedomBox user. Create a new event
  titled "Lunch with 🍕 and fries". Confirm the pizza character displays properly.
- Backup the app and uninstall it.
- Restore from the backup, log in and confirm the event gets restored.

To-do:
- test ActiveSync
- create a fail2ban jail
- include the icons in the copyright file
- test sending email in a production setup
- test sieve filters
- write tests

https://salsa.debian.org/freedombox-team/freedombox/-/issues/56

[Sunil]

- App:

  - Update icons to be uniform size as all other apps and copyright information.

  - Since SOGo is not configured to trust the authentication from Apache, it
  does not require FirewallLocalProtection. Remove it.

  - Expand app description. Talk about Email Server app.

  - Update to match recent tags related changes.

  - Make memcached a shared daemon as other processes might use it.

  - Added shared daemon for PostgreSQL.

  - Don't start services when rerunning setup if the app is currently disabled.

  - Don't restart memcached during a restore operation.

- Security:

  - Add system security restrictions to the daemon.

  - Don't use fail2ban jail. SOGo has a mechanism to lock users for a few
  minutes. Use that instead.

- Apache:

  - Make /.well-known URLs work by moving their definitions to global section.

  - Remove old (<2.4) Apache authorization keywords.

  - Simplify, indentation, new line at EOF.

- Manifest:

  - Add more tags.

  - Add SOGo connector, DAVx5, and GNOME Calendar to list of clients.

  - Add 'sogo' to list of service to bring down during backup/restore.

- Privileged:

  - Switch from MySQL to PostgreSQL as it is recommended by SOGo.

  - Use existing utility to generate database password.

  - Use plget and plmerge utilities from gnustep-common package to parse/edit
  the configuration instead of augeas which don't have a dedicated lens.

  - Don't reset the domain when rerunning setup.

  - Ensure that the configuration file has proper ownership and permissions even
  when it did not exist previously.

  - Add typing information for most methods.

  - Remove configuration file after uninstall.

- Configuration:

  - Define database URLs for all seven database tables.

  - Set calendar default roles as suggested in the installation guide.

  - Refresh view automatically every minute to check for new mail.

  - Use the mechanism to lock account after failed login attempts.

  - Add folder name for Junk folder too explicitly.

- Tests: Add basic functional tests.

Tests:

- Functional tests work.

- Rerunning setup does not change the domain back to the primary domain of the
email server.

- Login works. Sending mail and reading mail works. Creating calendar events and
contact works.

- Changing the domain sets the domain value properly in the configuration file.
Configured domain is shown properly on the form.

- Backup and restore work as expected.

- When configuration file is removed and setup is re-run, then the file is
created with proper ownership and permissions.

- 'systemd-analyze security sogo.service' shows a good score.

Signed-off-by: Benedek Nagy <contact@nbenedek.me>
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-01-26 10:50:28 -05:00
Sunil Mohan Adapa
74e908ea82
apache: Enable expires module by default
- Can be used to set the 'Expires:' header to cache static files for a long
time.

Tests:

- Without the patch 'a2query -m expires' shows that the module is not installed.
Applying the patches and restarting services shows that Apache app's setup is
run and 'a2query -m expires' shows that module is enabled.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-01-26 10:50:26 -05:00
Sunil Mohan Adapa
e8f9783057
nextcloud: Drop some dead code
It does not seem to be used anywhere now.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-01-26 10:50:24 -05:00
Sunil Mohan Adapa
9aa3203733
ttrss: Fix issue with installing after an uninstalling
Tests:

- Without the patch, uninstall and reinstall will fail. With patch it passes.

- Rerunning setup does not destroy the contents of the database.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-01-26 10:50:21 -05:00
Sunil Mohan Adapa
b99ead7aa6
db: Add more utilities for managing PostgreSQL databases
- Add methods for creating/dropping user/database.

Tests:

- ttrss and miniflux functional tests work which check for backup/restore.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-01-26 10:50:19 -05:00
Sunil Mohan Adapa
2beb02b496
wordpress: Order daemon enable/disable correctly
Tests:

- Enabling/disabling app results in daemons enabling/disabling in correct order.
MySQL first and timer next when enabling. Reverse when disabling.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-01-26 10:50:17 -05:00
Sunil Mohan Adapa
da90ba721e
ttrss: Add management of postgresql daemon in a shared manner
- This allows ttrss to disabled postgresql if it is not needed by any other app
and enable postgresql if it is disabled and ttrss is being enabled.

Tests:

- When disabling ttrss and it is the last app using postgresql, it will be
disabled too.

- When disabling ttrss and it is not the last app using postgresql, it will not
be disabled too.

- When enabling ttrss if postgresql is disabled, it will be enabled too.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-01-26 10:50:14 -05:00
Sunil Mohan Adapa
763b555e83
miniflux: Add management of postgresql daemon in a shared manner
- This allows miniflux to disabled postgresql if it is not needed by any other
app and enable postgresql if it is disabled and miniflux is being enabled.

Tests:

- When disabling miniflux and it is the last app using postgresql, it will be
disabled too.

- When disabling miniflux and it is not the last app using postgresql, it will
not be disabled too.

- When enabling miniflux if postgresql is disabled, it will be enabled too.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-01-26 10:50:11 -05:00
Sunil Mohan Adapa
ea134d5777
email: Recommend Thunderbird Mobile instead of K-9 Mail
- Thunderbird Mobile has been built on K-9 mail and is the future of the app[1].

Links:

1)
https://blog.thunderbird.net/2022/06/revealed-thunderbird-on-android-plans-k9/

Tests:

- Go to email app and expand the clients information. Verify the app store links
for Thunderbird Mobile.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-01-26 10:50:08 -05:00
Sunil Mohan Adapa
35ba8ecdd7
ui: Fix tag separator not showing on some machines
We were using the Unicode point "Katakana middle dot" which was not showing up
on some systems. Separators may not show up the same on all machines depending
on the font used. So, use an SVG image instead.

Tests:

- On the front page and apps page, the separators appears as expected.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-01-25 11:32:48 -05:00
Sunil Mohan Adapa
585c48bf8a
d/copyright: Fix copyright entry for GNOME app icons
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
2025-01-24 15:50:09 -08:00
Sunil Mohan Adapa
0cb9e2ef0d
d/control: Fix incorrect comment format
Tests:

- Building the package works.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
2025-01-24 15:29:44 -08:00
ikmaak
6a057342d8
Translated using Weblate (Dutch)
Currently translated at 90.8% (1634 of 1798 strings)
2025-01-25 00:26:35 +01:00
Sunil Mohan Adapa
67fd747588
firewall, networks, storage: Drop polkit pkla files
Closes: Debian bug #1093065.

These files were only present to serve polkit = 105 in Debian bullseye.
Alternate files .rules already being shipped for polkit > 105.

Tests:

- Install infinoted and enable/disable firewalld. infinoted ports have been
enabled/disabled in the firewall as noticed using firewall-cmd.

- Creating/deleting network manager connections works well. nmcli shows the
updates.

- Add backup location page shows list of disks properly.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Veiko Aasa <veiko17@disroot.org>
2025-01-24 11:40:36 +02:00
Sunil Mohan Adapa
54b956c602
ui: Drop the temporary fix for missing popper.js 2.0
- Latest version of libjs-bootstrap5 depends on
node-popper2. However, version in Debian bookworm still continue to have
incorrect dependency. So, add explicit dependency on node-popper2 until we stop
supporting Bookworm.

Tests:

- In stable and testing VMs, install node-popper2 and notices that the following
work as expected:
  - User menu dropdown in desktop and mobile layouts.
  - Help menu dropdown in desktop and mobile layouts.
  - Notification dropdown.
  - App extra actions dropdown.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Veiko Aasa <veiko17@disroot.org>
2025-01-24 11:20:16 +02:00
pesder
d14739c8ad
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 20.3% (365 of 1798 strings)
2025-01-24 04:38:26 +01:00
Benedek Nagy
00a4ff3b41
email: Make rspamd learn spam/ham when the user marks mails as junk or not junk.
Add two sieve scripts for spam/ham learning. When the user moves a mail
from anywhere to junk, or from junk to anywhere (except for trash) the
mail is piped into the respective rspamc learn_spam/learn_ham command.
The rspamc command is run as the mail user and the command requires that
the user can connect to localhost:11334. Because of that, add the mail
user to the allowed users that can access protected services.

The sievec compilation of the new scripts requre the dovecot-antispam
package, so install it and increment the email version number.

Closes: #2487
Imroves: #56

Tests done:
1. Apply the patches on an existing install
2. Confirm the firewall and the email app get updated
3. Move a mail from inbox to junk and confirm that rspamd statistics for
   "Learned" mails increment by one.
4. Move back the mail from junk to inbox and confirm the number
   increments again.
5. Move the mail to trash and confirm the script doesn't execute.
6. Repeat steps 3-5 with mail_debug = yes in /etc/dovecot/dovecot.conf
   and confirm the script esxecution further by reading the debug logs.

[Sunil]

- Split the configuration file 90-freedombox-sieve.conf into
90-freedombox-imap.conf and merge the remaining with 95-freedombox-sieve.conf.

- These changes do not need dovecot-anitspam package. Remove it from packages
list for the app.

Signed-off-by: Benedek Nagy <contact@nbenedek.me>
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2025-01-23 15:36:32 -08:00
Sunil Mohan Adapa
861796d21b
nextcloud: tests: functional: Fix test for modified structure of UI
- The DOM structure of the nextcloud UI seems to have changed.

Tests:

- In functional tests, with the updated code, test_create_folder test passes.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-01-21 17:47:16 -05:00
Sunil Mohan Adapa
b15bca2fe4
nextcloud: tests: functional: Set override domain testing on VM
Closes: #2437

- The port part of the override domain was not being set properly. Set this
properly.

Tests:

- Running tests on am VM spawned by the container script works (it does not
require port).

- Running tests on Vagrant VM has not been tested.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-01-21 17:47:13 -05:00
Sunil Mohan Adapa
d2dd547fac
ui: Fix missing arrow on dropdown form fields
Closes: #2488.

This is due to outdated django-bootstrap-form package that does not set
.form-select class on dropdowns as needed by Bootstrap 5.

Tests:

- On stable and testing VMs, dropdowns in the 'Add backup location' page show
arrows.

- On a mobile layout, the overflowing text does not overlap onto the dropdown
arrow.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Veiko Aasa <veiko17@disroot.org>
2025-01-21 11:31:45 +02:00
109247019824
0a35c91de5
Translated using Weblate (Bulgarian)
Currently translated at 55.0% (990 of 1798 strings)
2025-01-16 12:00:32 +01:00
Sunil Mohan Adapa
acc3fa1bdb
gnome: Add changes missing from branch merge
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
2025-01-15 15:15:09 -08:00
Sunil Mohan Adapa
837ed09dc3
gnome: Add app to provide a graphical desktop environment
- This app is useful for people who can connect a monitor, a keyboard, and a
mouse to their FreedomBox.

- Later this app allow a headless FreedomBox to be used as a remote desktop
server. Users will be able to connect and access desktop applications from LAN
or WAN.

- No functional tests as they will likely fail in CI and container setups.

Tests:

- In a VM, install the app. Installation succeeds.

- Disabling the app makes systemd switch to multi-user.target shutting down any
service that any mean for GUI such as gnome-remote-desktop.service. Graphical
login is not shown on the VM's virtual monitor.

- Enabling the app make systemd switch to graphical.target and all the services
are started again. Graphical login is shown on the VM's virtual monitor.

- Login to desktop using VM's graphical terminal works. Settings, apps, browser
etc. work.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Veiko Aasa <veiko17@disroot.org>
2025-01-15 17:56:16 +02:00
Sunil Mohan Adapa
dbb4391b61
action_utils: Implement methods to get/set the systemd boot target
- To be used in GNOME app.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Veiko Aasa <veiko17@disroot.org>
2025-01-15 17:55:50 +02:00
Besnik Bleta
cb487e1e4c
Translated using Weblate (Albanian)
Currently translated at 99.6% (1791 of 1798 strings)
2025-01-15 05:00:40 +01:00
109247019824
8ddcf83811
Translated using Weblate (Bulgarian)
Currently translated at 54.8% (987 of 1798 strings)
2025-01-15 05:00:39 +01:00
Jiří Podhorecký
84f29fde45
Translated using Weblate (Czech)
Currently translated at 100.0% (1798 of 1798 strings)
2025-01-15 05:00:38 +01:00
大王叫我来巡山
66e912b998
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 63.0% (1134 of 1798 strings)
2025-01-15 05:00:36 +01:00
Burak Yavuz
c13dba245d
Translated using Weblate (Turkish)
Currently translated at 100.0% (1798 of 1798 strings)
2025-01-15 05:00:35 +01:00
Dietmar
9cf92cf3f1
Translated using Weblate (German)
Currently translated at 98.6% (1774 of 1798 strings)
2025-01-15 05:00:34 +01:00
James Valleroy
62e5689c70
Release v25.1 to unstable
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
v25.1
2025-01-13 21:40:03 -05:00