6321 Commits

Author SHA1 Message Date
ikmaak
7a07cd08fa
Translated using Weblate (Russian)
Currently translated at 93.8% (1349 of 1437 strings)
2021-02-01 19:42:21 +01:00
ikmaak
32e0a4f3f2
Translated using Weblate (Swedish)
Currently translated at 98.1% (1411 of 1437 strings)
2021-02-01 19:42:21 +01:00
Burak Yavuz
fe8c23b3bc
Translated using Weblate (Turkish)
Currently translated at 100.0% (1437 of 1437 strings)
2021-02-01 19:42:20 +01:00
ikmaak
d8a5571dd2
Translated using Weblate (Dutch)
Currently translated at 100.0% (1437 of 1437 strings)
2021-02-01 19:42:19 +01:00
Dietmar
83307c37dc
Translated using Weblate (Italian)
Currently translated at 54.5% (784 of 1437 strings)
2021-02-01 19:42:19 +01:00
Coucouf
48451ef86a
Translated using Weblate (French)
Currently translated at 100.0% (1437 of 1437 strings)
2021-02-01 19:42:18 +01:00
ikmaak
5a92974bd7
Translated using Weblate (Spanish)
Currently translated at 98.2% (1412 of 1437 strings)
2021-02-01 19:42:18 +01:00
Dietmar
3fe30e2515
Translated using Weblate (German)
Currently translated at 99.9% (1436 of 1437 strings)
2021-02-01 19:42:16 +01:00
James Valleroy
70ba4d6b88
upgrades: Add notifications for dist upgrade
Notification for dist upgrade started, or not started due to lack of
free space.

Currently, these notifications only appear once.

Tests:
- Checked each notification appears.
- Notification does not appear again after being dismissed.

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: Veiko Aasa <veiko17@disroot.org>
2021-01-31 22:35:02 +02:00
James Valleroy
3ada482b90
upgrades: Move start-dist-upgrade result string to app
Separate checking for dist upgrade from other setup. We don't want to
start a dist upgrade during the module's setup.

Tests: Checked logs for the following:
- Up to date.
- Updates not enabled.
- Dist upgrade started.

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: Veiko Aasa <veiko17@disroot.org>
2021-01-31 22:34:25 +02:00
James Valleroy
d747f77f80
upgrades: Get result of start-dist-upgrade
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: Veiko Aasa <veiko17@disroot.org>
2021-01-31 22:31:39 +02:00
James Valleroy
906816f7cb
upgrades: Return reason when checking for dist upgrade
With default logging settings, only print the result.

Tests: Checked output for following cases:
- Dist upgrade flag exists.
- System is Debian testing.
- Latest stable release without --test.
- Automatic updates not enabled.
- Not enough free space.
- Dist upgrade started.

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: Veiko Aasa <veiko17@disroot.org>
2021-01-31 22:31:15 +02:00
Sunil Mohan Adapa
0b9c4c92e9
minidlna: Implement force upgrading from older version
Fixes: #2026.

Upgrade from 1.2.1+dfsg-1+b1 to 1.3.x.

Tests:

- Install version 1.2.1+dfsg-1+b1. Change the default media directory. Run
unattended upgrades it will fail to upgrade. With the new patch, run apt update.
This will force upgrade. After upgrade the earlier set media directory is
retained.

- Functional tests run.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-01-31 13:18:23 -05:00
Sunil Mohan Adapa
5cd1289198
minidlna: Minor refactor of media directory handling
Tests performed:

- Functional tests work as expected.

- Updating the media directory works newly updated media directory is show.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-01-31 13:18:20 -05:00
Sunil Mohan Adapa
3255a7e658
backups: schedule: tests: Fix failures due to long test run
Closes: #2023.

When importing the test module, datetime.now() is executed and value is kept. If
a test suite runs for a long time, the time deltas are being calculated much
later when the test case runs. This creates an difference in expected different
between the two values.

Fix this by completely removing all uses of time relative to current date time.
Only use absolute date time values. This should not reduce the effectiveness of
the test cases.

Tests performed:

- Rerun unit tests for backups module.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-01-30 14:29:05 -05:00
Veiko Aasa
11801de288
calibre: Fix freedombox.local inaccessible after enabling app
After enabling the calibre app, the app uses IP 127.0.0.1 to advertise
ODPS feeds via BonJour/mDNS. It breaks accessing freedombox.local as it now
points to 127.0.0.1.

This MR disables the BonJour in Calibre.

Fixes #2027.

Tests performed on both Debian stable and testing containers:
- Check the accessability of freedombox.local:
1) Before applying patch:
   - Start the container, check on the host that freedombox.local points to
   correct IP address of the container:
   ```
   host$ avahi-resolve -4 --name freedombox.local
   freedombox.local        10.42.1.166
   ```

   - Enable the calibre app. Check on the host that freedombox.local
   points to wrong ip address 127.0.0.1:
   ```
   host$ avahi-resolve -4 --name freedombox.local
   freedombox.local        127.0.0.1
   ```

2) Stop the calibre app, apply patch (update the calibre systemd service file,
reload systemd), restart the Service Discovery app, check on the host that
freedombox.local points to correct address.

3) Start the calibre app, check on the host that freedombox.local points to
correct address.

- All the calibre functional tests pass.

Signed-off-by: Veiko Aasa <veiko17@disroot.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2021-01-30 10:50:43 -08:00
Sunil Mohan Adapa
bba1ed618a
radicale: Allow older 2.x release to upgrade to 3.x
Tests performed:

- Upgrade from old 2.x versions to 3.x has not been tested.

- Fresh installation of radicale 3 works (via FreedomBox). Web interface works.
Able to create a calendar.

- Upgrading from radicale 2 to radicale 3 works (via unattended-upgrades). There
were no configuration file prompts in FreedomBox (where only
/etc/radicale/config is modified).

- After upgrade, all functional test cases for radicale in FreedomBox
passed (including backup and restore of data).

- After upgrade, I have tested that permissions system as configured in
FreedomBox owner_only = allow file permissions, owner_write and authorized are
same as defined in radicale.

- These permissions have worked as expected as tested with Thunderbird.

- Radicale says that file based permissions format has changed, however,
FreedomBox relies on only the right files provided by default.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Tested-by: Sunil Mohan Adapa <sunil@medhas.org>
2021-01-28 11:24:41 -08:00
Burak Yavuz
83bd637984
Translated using Weblate (Turkish)
Currently translated at 100.0% (1437 of 1437 strings)
2021-01-26 07:13:47 +01:00
James Valleroy
80285d3f5f
Release v21.1 to unstable
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
v21.1
2021-01-25 21:09:03 -05:00
James Valleroy
80d104e0eb
doc: Fetch latest manual
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2021-01-25 21:07:51 -05:00
James Valleroy
c3ca76927f
locale: Update translation strings
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2021-01-25 20:20:10 -05:00
Fioddor Superconcentrado
68462ebde6
Translated using Weblate (Spanish)
Currently translated at 100.0% (1419 of 1419 strings)
2021-01-26 02:08:37 +01:00
Veiko Aasa
d6455419d9
container script: Various improvements
- Install bash-completion when provisioning container, makes terminal
  usage more comfortable.
- Increase default container image size to 16G, so that a distribution
  upgrade fits well.
- Check free disk space on host before expanding disk image.
- Make pytest coverage reports writable to the fbx user, closes  #2010.
- run-tests command:
   - Use DEBIAN_FRONTEND=noninteractive when upgrading packages.
   - Do not install sshpass as provision script already installs it.

Signed-off-by: Veiko Aasa <veiko17@disroot.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-01-25 19:51:57 -05:00
Sunil Mohan Adapa
b84075043d
performance: Fix failure to start due to lru_cache in stable
Ability to use lru_cache(user_function) was only introduced in Python 3.8.
Buster has Python 3.7. This causes startup failure in Buster. Fix this by using
the older API for lru_cache instead of the new one.

Tests:

- On stable and testing, starting the Plinth daemon and visiting the performance
page should work.

- Adding a print statement in the _get_url() method shows that it is only called
once, ever.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-01-25 19:11:08 -05:00
Sunil Mohan Adapa
ed92a7e010
networks: Remove unused import to fix flake8 failure
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
2021-01-25 15:56:12 -08:00
Fioddor Superconcentrado
ce87de1dfb
networks: Hide deactivate/remove buttons for primary connections
Helps: #1962.

Signed-off-by: Fioddor Superconcentrado <fioddor@gmail.com>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2021-01-25 15:40:51 -08:00
Fioddor Superconcentrado
012a9a0fc7
networks: Prevent unintended changes to primary connection.
Helps: #1962

Shown an alarming warning in connection_show page (only) for the primary
connection. Captions 'Deactivate' and 'Delete' buttons, now explicitly
mention the primary connection and they are placed within the warning
box.

Signed-off-by: Fioddor Superconcentrado <fioddor@gmail.com>
[sunil: Primary connection is not the same as connection user is using]
[sunil: Reduce the importance of primary connection as it is just default route]
[sunil: Update primary connection message]
[sunil: Fix the use of exclamation icon for screen readers as per bootstrap]
[sunil: Don't place buttons inside the warning, as it is non-intuitive UI]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2021-01-25 15:40:48 -08:00
Fioddor Superconcentrado
6e747f281e
networks: Use radio buttons for network modes
Closes: #1974

BTW: Javascript IPV4/6 hide/show arrangements triggered on page load.
Otherwise page loads form fields inconsistently.

Signed-off-by: Fioddor Superconcentrado <fioddor@gmail.com>
[sunil: Fix the use of RadioSelect widget]
[sunil: Alter the wording of what each type means]
[sunil: Drop the help text for radio group as it is mostly repetitive]
[sunil: js: Make the entire jQuery code run on document ready]
[sunil: js: Revert unneeded double call to change methods, change() is enough]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2021-01-25 15:40:45 -08:00
Fioddor Superconcentrado
99935a9696
networks: Change connection type to a radio button
Close: #1821.

Signed-off-by: Fioddor Superconcentrado <fioddor@gmail.com>
[sunil: Correct the use of RadioSelect widget]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2021-01-25 15:40:41 -08:00
Fioddor Superconcentrado
6cc13bea65
network: Minor refactoring, new is_primary() function
Signed-off-by: Fioddor Superconcentrado <fioddor@gmail.com>
[sunil: Made the method private to reduce the exposed API of the module]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2021-01-25 15:40:38 -08:00
Fioddor Superconcentrado
7ee2b385c9
network: Minor refactoring in a test
Signed-off-by: Fioddor Superconcentrado <fioddor@gmail.com>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2021-01-25 15:40:35 -08:00
Fioddor Superconcentrado
213cf16f8d
networks: Separate the delete button and color it differently
Pull the delete button in the connection show page to the right to prevent
hitting it by accident.

Signed-off-by: Fioddor Superconcentrado <fioddor@gmail.com>
[sunil: Use a new consistent style compatible with bootstrap4]
[sunil: Styled the delete button with danger color]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2021-01-25 15:40:30 -08:00
Veiko Aasa
8d57aca6d1
plinth: Fix disable daemon when service alias is provided
Fixes the issue that after disabling an app which has a daemon alias,
only the alias was disabled and the real service kept still running.

Closes #2019

Test on Debian testing: After disabling the bind app,
check that both 'bind9' and 'named' services are not running.

Signed-off-by: Veiko Aasa <veiko17@disroot.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2021-01-25 10:53:01 -08:00
James Valleroy
37a38549bf
upgrades: Requires at least 5 GB free space for dist upgrade
With all apps installed, the used space increases by 4.9 GB.

Helps: #1644.

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: Veiko Aasa <veiko17@disroot.org>
2021-01-25 14:35:30 +02:00
crlambda
9fae2e9d47
Translated using Weblate (Chinese (Traditional))
Currently translated at 11.8% (168 of 1419 strings)
2021-01-25 12:32:32 +01:00
Milan
a634b45cd6
Translated using Weblate (Czech)
Currently translated at 68.7% (975 of 1419 strings)
2021-01-25 12:32:31 +01:00
Fred LE MEUR
4ca0421581
performance: Fix web client link to Cockpit
Closes: #2022.

- Differently URL based on version of Cockpit used.

- Lazily evaluate when necessary.

- Cache the result.

[sunil: Use subprocess.run() instead of getoutput() for security]
[sunil: Use long form arguments in command invocation for readability]
[sunil: Perform isort]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2021-01-24 19:07:34 -08:00
John Doe
cbdd3bb0c0
Translated using Weblate (Turkish)
Currently translated at 100.0% (1419 of 1419 strings)
2021-01-23 18:44:41 +01:00
Allan Nordhøy
7bd641ee09
Translated using Weblate (Norwegian Bokmål)
Currently translated at 83.3% (1183 of 1419 strings)
2021-01-23 18:44:41 +01:00
James Valleroy
a8b5a32ff4
setup: Enable essential apps that use firewall
Tests in testing container:
- SSH, Service Discovery, and Web Server are shown as enabled on
Firewall page.
- FreedomBox interface can be accessed after disabling Cockpit.

Closes: #2016.

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2021-01-22 17:34:29 -08:00
Veiko Aasa
566fef18b2
sharing: Update functional test to use syncthing-access group
'syncthing' group name was replaced by 'syncthing-access' in MR !1995,
update the sharing app functional test to use this new group name.

Test:
- Update the sharing app Apache2 configuration. Run the sharing app tests.
All tests pass.

Signed-off-by: Veiko Aasa <veiko17@disroot.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2021-01-22 09:43:34 -08:00
Sunil Mohan Adapa
a022eed0eb
backups: Show notification on error during scheduled backups
- Keep a count of number of consecutive failures. Reset the count on a
successful backup.

- Keep the count for each repository.

Tests performed:

- Insert an exception into method for running a scheduled backup.

- When the FreedomBox is run in develop mode, it attempts to take backups every
3 minutes.

- It fails and shows the notification. Text is good. The error count is 1 and
error text is same as exception text. Go to backups button redirects to backup
page.

- In another 3 minutes another attempt is made and count increments this time.

- If the notification is dismissed, after another attempt is made, notification
comes back with incremented count.

- When the exception is removed and FreedomBox is restarted, schedule backup
succeeds and notification is dismissed automatically.

- When backup is deleted and exception is reintroduced, the notification comes
back with count reset to 1.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-01-21 20:59:48 -05:00
Sunil Mohan Adapa
d4e9e7a965
backups: Add a notification to suggest users to enable schedules
Tests performed:

- Ensure that backups module is setup from version zero by deleting entry in DB.
Start FreedomBox. Observe the notification comes up.

- Dismiss button dismiss the notification.

- Go to button takes us to the backups module.

- Incrementing the version number of the backups app does not show the
notification again.

- Starting with old code, the notification show up when FreedomBox is run.
Incrementing the version number of the backups app after that does not show the
notification again.

- Enable a schedule and the notification should be dismissed.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-01-21 20:56:05 -05:00
Sunil Mohan Adapa
eb526275c7
backups: Add UI to edit schedules
Closes: #1529.

Tests performed:

- Functional tests for backups app work.

- Functional tests for backup of several apps work.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-01-21 20:55:27 -05:00
Sunil Mohan Adapa
b33362cb7a
backups: Trigger schedules every hour
- This will lead to backups only once a day or so.

- In case of errors, backups are tried every hour.

- Cleanups are also triggered but cleanups happen only after a successful
backup.

Tests performed:

- In development mode, a new backup is taken after 3 minutes of enabling a
repository's schedule.

- Error in one repository does not effect the backup of other repositories.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-01-21 20:53:42 -05:00
Sunil Mohan Adapa
2e3ec5ac15
backups: Add a schedule to each repository
This is a simplification of UX by allowing only a single schedule to be attached
to each repository.

Tests performed:

- Editing a schedule works for root, local and remote repositories.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-01-21 20:53:05 -05:00
Sunil Mohan Adapa
dfb8b69531
backups: Introduce backup scheduling
Tests performed:

- Unit tests work.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-01-21 20:49:15 -05:00
Sunil Mohan Adapa
8c161431ba
backups: repository: Simplify handling of remote repo properties
- Simplify save() method such that a simple load(uuid).save() does not destroy
data. Currently, the verified parameter is lost.

- Drop unused store_credentials argument to save().

- Make verified a property of the SSH repository and instantiate with
it properly.

Tests performed:

- Adding a new remote repository works with SSH verification from unknown and
known hosts.

- Mounting and unmounting works.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-01-21 20:47:06 -05:00
Sunil Mohan Adapa
1170e438a3
backups: repository: Introduce a prepare method
Useful for abstracting the mount() operation that is not available on non-remote
repositories.

- On non-remote repositories do nothing.

- On remote repositories, mount the location in preparation for operations on
the repository.

Tests performed:

- When an SSH repository is unmounted before a schedule backup, it is
automatically mounted for listing, backup and cleanup at scheduled time.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-01-21 20:42:26 -05:00
Sunil Mohan Adapa
3789048854
backups: Allow storing root repository details
- This allows schedule to be stored along with the repository information.

Tests performed:

- Storing/retrieving a schedule along with root repository works.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-01-21 20:39:24 -05:00