9892 Commits

Author SHA1 Message Date
Avinash-006
e1ab71301b
Translated using Weblate (Telugu)
Currently translated at 79.5% (1452 of 1826 strings)
2025-04-01 04:45:35 +02:00
psfdvarun
dcd5945ac3
Translated using Weblate (Telugu)
Currently translated at 79.5% (1452 of 1826 strings)
2025-04-01 04:45:35 +02:00
Manitej Chowdary Gadagottu
5df4e1ea93
Translated using Weblate (Telugu)
Currently translated at 79.5% (1452 of 1826 strings)
2025-04-01 04:45:34 +02:00
Soumika Devarakonda
e27318f771
Translated using Weblate (Hindi)
Currently translated at 33.5% (613 of 1826 strings)
2025-04-01 04:37:06 +02:00
Aryan Raj
bcb4ace27c
Translated using Weblate (Hindi)
Currently translated at 33.5% (613 of 1826 strings)
2025-04-01 04:37:06 +02:00
2300031832
eab303c0de
Translated using Weblate (Telugu)
Currently translated at 76.7% (1402 of 1826 strings)
2025-04-01 04:37:05 +02:00
Pallavireddy06
42a27cc823
Translated using Weblate (Telugu)
Currently translated at 76.7% (1402 of 1826 strings)
2025-04-01 04:37:05 +02:00
Rohithvema79
2ebe4f1309
Translated using Weblate (Telugu)
Currently translated at 76.7% (1402 of 1826 strings)
2025-04-01 04:37:05 +02:00
Manitej Chowdary Gadagottu
77b418fc32
Translated using Weblate (Telugu)
Currently translated at 76.7% (1402 of 1826 strings)
2025-04-01 04:37:05 +02:00
Soumika Devarakonda
767aac0083
Translated using Weblate (Hindi)
Currently translated at 33.4% (611 of 1826 strings)
2025-04-01 04:33:50 +02:00
NALLAPANENI LAKSHMI SOWJANYA
72da994eb9
Translated using Weblate (Telugu)
Currently translated at 76.8% (1403 of 1826 strings)
2025-04-01 04:33:50 +02:00
Sripath Roy Koganti
7519582417
Translated using Weblate (Telugu)
Currently translated at 76.8% (1403 of 1826 strings)
2025-04-01 04:33:50 +02:00
Soumika Devarakonda
423aa02d8c
Translated using Weblate (Telugu)
Currently translated at 76.8% (1403 of 1826 strings)
2025-04-01 04:33:50 +02:00
Soumika Devarakonda
87bb079434
Translated using Weblate (French)
Currently translated at 97.3% (1777 of 1826 strings)
2025-04-01 04:33:50 +02:00
MURALA SAI GANESH
deff7322aa
Translated using Weblate (Telugu)
Currently translated at 76.6% (1399 of 1826 strings)
2025-04-01 04:31:38 +02:00
Sripath Roy Koganti
cee4f60edf
Translated using Weblate (Telugu)
Currently translated at 76.6% (1399 of 1826 strings)
2025-04-01 04:31:38 +02:00
Sunil Mohan Adapa
7937a7c0d2
power: Disable sleep and hibernate on the system
Closes: #2503

- FreedomBox is a server that is typically always running. If applications such
as GNOME desktop environment are installed, they could, by default, cause system
to sleep or hibernate after a period of idleness (based on peripheral activity).
To ensure that services are always available over the network, prevent all such
applications from sending the system to sleep/hibernate.

- Other types of sleep such as hybrid sleep and suspend and hibernate are also
automatically disabled by systemd if either suspend or hibernate are disabled.

Tests:

- Without the changes, install GNOME. In gdm login screen or in desktop
environment, after 20 minutes (default) the system goes to sleep.

- Create the file in the patch with the appropriate directory in a production
FreedomBox machine. Run 'systemctl daemon-reload'. After this, running
'systemctl suspend' or 'systemctl hibernate' will return an error that the
operation is not supported. In GDM, the suspend button does not appear. In GNOME
desktop environment after login, the suspend button does not appear. Even after
the 15-20 minute period, the system does not go to sleep.

Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-03-31 19:50:28 -04:00
Sunil Mohan Adapa
73ded6b3ad
tests: Fix a warning with pytest setup
The path attribute has been deprecated and will be removed in pytest 9.0. The
new argument to use is collection_path which is pathlib.Path object it is
available in pytest 7.2 (bookworm) and above.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-03-28 21:26:45 -04:00
Sunil Mohan Adapa
70ed89eff9
tests: django: Fix a warning related timezone settings
The warning is:

RemovedInDjango50Warning: The default value of USE_TZ will change from False to
True in Django 5.0. Set USE_TZ to False in your project settings if you want to
keep the current default behavior.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-03-28 21:26:43 -04:00
Sunil Mohan Adapa
f8e78f33d3
radicale: Explicitly set the auth type to accommodate radicale 3.5
Helps: #2501
Helps: Debian #1100995

- With radicale's Debian packaging for version 3.5 (trixie) the auth/type
configuration value is no longer set to remote_user by default[1]. FreedomBox's
setup depends on this. So, set this value explicitly including for bookworm.

Links:

1) https://tracker.debian.org/media/packages/r/radicale/changelog-3.5.0-1

Tests:

- Install on bookworm and testing VMs and run functional tests. Web UI works.

- On bookworm VM, install radicale and perform dist-upgrade. Upgrade succeeds.
Radicale is at version 3.5.0-1. The file /etc/radicale/config *does not*
contains auth/type as 'remote_user'. This is because unattended-upgrades has
unexpectedly upgraded radicale and overwrote the configuration file. This is
being investigated separately.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-03-28 21:26:40 -04:00
James Valleroy
1e994b4e9a
Release v25.6~bpo12+1 to bookworm-backports
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
v25.6_bpo12+1
2025-03-28 08:14:25 -04:00
James Valleroy
29936c4ba6 freedombox Debian release 25.6
-----BEGIN PGP SIGNATURE-----
 
 iQJKBAABCgA0FiEEfWrbdQ+RCFWJSEvmd8DHXntlCAgFAmfiynQWHGp2YWxsZXJv
 eUBtYWlsYm94Lm9yZwAKCRB3wMdee2UICOiRD/4kAwDwA0u+z6SaDTgYVrze6Xkv
 sLVJ3TLbVm3/vcldnVyLViGoSWcHuFJkcdzN7e2sgS62FamNr8jnQvgMQ4Y+I9ie
 CQ51c55V+f1kN/+UqPaQIvjAxTQM3QP2eteicqFPxi3F3NM06E6g3IZUcM0xyOty
 h4SR16fJwLkQTJ27hM/4YW8IKQs/Q3w65n4YNc34WDbJN4Km2anpQdAnyG9dv17P
 G7BTyeOd5Uud4GzeripWmHzKdWIppaUNzmQDeBKqm0Fgp9LBDP27EY60oUKKlpTm
 bzSHglWv3LwInUeuGPW1Yww2UkOczXhSQ4MdkEbl7+K/Szq9UW+3fT3e2bd582K7
 AMN14qTffEfCYWM5FJV1kBnn0/ah5But87KFiXABXKqiM9cOLRB+Q6RmWnLDWplc
 K7X8p95goKhsX1Z+W+gmOKw5QvYsqlJ9Lm7vRb++Au9wi9WIMz8L248OCyLcWmGS
 Pam/ncbPYOT7DYAOg03HswMPgsjeZyVpXjcjQ5q6jQeK/IvxOVoxgTDv05PDEWqy
 Kabp58NkQ/X1wO6Lauxk40UtaPS2b4Te6oVuYNUjjgmEE/LdP3s9atopu1mm8DgI
 ou9fgZUqHpfj24UJMjMNORNKZj0hEirEsrGN+JZ7QSZbO2BdsNiw4qpLLrBa0BzN
 a9qsKGUZzn3SEaGooQ==
 =j0PS
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQJKBAABCgA0FiEEfWrbdQ+RCFWJSEvmd8DHXntlCAgFAmfmkn0WHGp2YWxsZXJv
 eUBtYWlsYm94Lm9yZwAKCRB3wMdee2UICEsREADO3kYGLaEnYd9MhiAPkAF3z5FK
 QUs8tsRQOmjbqVX2ybjKRUT+kHvWIE6zcSXmPyQgrhPNqWcqBJ4+Zsfy2BE8BLc7
 mNXVi+c76zZmTnlYzncm9IlWOoHsVt0kvYMdEe5N6YkUuS3pRR8gronPCj3Cg7uT
 2GHytIzrI1Za1RiGvNsxloPAOs5lsSzzf9YMcVeVsR+BJXIE+cbzSj9vu57Lxd67
 VboPWyEg2VDXmi5Gaf2QXwDSOh6HAizUPfMTrjna3WGqtNuJz7F6R+uh+wVEtQ/p
 WzR67xL9QD/K6HgBxbdJdKUQ7X37ex56Xx7d+FXQz5+URmG0Cah8Dbf932Aw+Y/u
 F+YA9c4j05Ms2tbcv2X6SbzPMuD+2JZ5P4tup/MF/MI2L/qV42QbJXQQjV2LBSi5
 QvTnX3DtA7aXwGIJ3mBQ1ua1kEdQhXq3FspsF7XqrtvxYt0suiyYD/QY2evNqEpQ
 XoAM1wZRdsRAeY6s0OXf0/dQU1VXX7bTu5M+PFasLoaZ6jVRmaMKeL0NLH30xvU0
 +0G+/MMUSlIZeIsuT6GQ85baJtFM1rM6hpmkZbDo/wZzaDXUb3sEFR3eqA9cSROt
 lFpIdKTr7K5wpMku78QZQSzpWwR3hP5UJ6rVX4gx5RvMvXUj6UUIFctW3/j+mk9O
 kfUraqNIQNcUNRB0DQ==
 =F5pc
 -----END PGP SIGNATURE-----

Merge tag 'v25.6' into debian/bookworm-backports

freedombox Debian release 25.6

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2025-03-28 08:13:48 -04:00
James Valleroy
176690d0b9
Release v25.6 to unstable
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
v25.6
2025-03-25 10:09:23 -04:00
James Valleroy
1f11fae1c5
doc: Fetch latest manual
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2025-03-25 10:07:48 -04:00
James Valleroy
2d9860ff5d
locale: Update translation strings
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2025-03-25 09:08:49 -04:00
Sunil Mohan Adapa
aa181a564f
storage: tests: Fix a test failure for psutils >= 7.0
- We are using a private data structure that lead to failure. psutil 7.0 removed
two fields from the partition class. Just update the code to work with 7.0
instead of emulating psutil completely as that is a better test.

- The primary code is unaffected in is_partition_read_only() and
get_filesystem_type() due to not having any changes in the fields we use.

Tests:

- Run unit tests on testing and unstable VMs.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
2025-03-24 19:50:54 -07:00
Sunil Mohan Adapa
df8d41e7fb
operation: Drop type annotations on enum members
Type checkers will report errors when enum members have type annotations.

https://typing.python.org/en/latest/spec/enums.html#defining-members

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
2025-03-24 19:26:02 -07:00
Benedek Nagy
f4f417cbb6
syncthing: Extend setup process to recover from manual config errors
There are configuration items that users of syncthing can accidentally
set, resulting in the UI becoming unavailable. Previously, if such a
thing happened, the FreedomBox admin would have to ssh into the server and
edit the xml manually or reinstall/restore the app. With this patch, it
is enough to re-run the setup to make the UI accesible again.

- Remove http basic authentication from the settings (gui/user and
  gui/password. This is unnecessary as FreedomBox already provides
  authentication.

- Make sure these options are properly set:
  - 'Use HTTPS for GUI' is off
  - 'GUI Listen Address' is 127.0.0.1:8384
  - GUI is enabled

There is a forum discussion that inspired these changes:
https://discuss.freedombox.org/t/solved-cant-access-syncthing-administration-panel/2137

Tests done:
- Fresh install: after the setup, confirm the UI is working properly and
  the xml is configured with the expected values.
- Make the changes to break the Syncthing UI, then re-run setup. Confirm
  the UI is back online.

Signed-off-by: Benedek Nagy <contact@nbenedek.me>
[sunil: Initialize conf_changed variable to prevent failures accessing it]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2025-03-24 16:38:00 -07:00
Sunil Mohan Adapa
0df112a006
container: Don't remove qcow2 image when terminating VM
- Terminating means just stopping the VM. Not destroying the storage disk.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
2025-03-24 16:30:24 -07:00
Benedek Nagy
1489151b4e
SOGo: add dpkg-dev to the package list
Closes: #2499

[sunil]

- Add a comment about the dependency.

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-03-24 15:45:38 -07:00
James Valleroy
c7673e039d
tests: functional: Add enable-all-apps script
[sunil]

- Move the script to plinth/tests/functional directory as it is the right place
for it.

- Add HACKING.md entry to talk about the script.

- Update the pyproject.toml to ensure that functional tests config.ini is
installed along with functional tests python code.

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2025-03-24 15:15:01 -07:00
Sunil Mohan Adapa
5a9d5730a7
names: Store domains in kvstore instead of /etc/hosts
As reported in discussion forum[1], when clients connected via 'shared' network
connection try to resolve the a static domain name configured in FreedomBox,
they resolve to 127.0.1.1. Since this refers to client's own IP address, they
fail to connect.

In the previous version, this was not a problem because the entry was stored as
<hostname>.<domainname>. To resolve this, store domain names in kvstore instead
of /etc/hosts.

Links:

1)
https://discuss.freedombox.org/t/freedombox-resolves-its-own-external-name-as-127-0-1-1/3660

Tests:

- Adding/removing static domains from Names app works. The order of added
domains is preserved in the stored configuration. When adding a existing domain,
a proper error message is shown.

- Without the patch, configure multiple domains. They show up in /etc/hosts.
Apply the patches and restart the service. Names app setup will run. Entries
from /etc/hosts are removed and will be added to kvstore. The list of domains
shows properly in Names app. After restarting the services, domains are show
properly.

- Without the patch on a version of FreedomBox without support for multiple
static domains, configure a static domain. Switch to latest version FreedomBox
with the patches. Restart the service. Names app setup will run. Entry from
/etc/hosts will be removed and will be added to kvstore. The list of domains
shows properly in Names app. After restarting the services, domains are show
properly.

Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-03-21 16:01:41 -04:00
Sunil Mohan Adapa
91c5931c59
upgrades: Run dpkg/apt fixes before dist upgrade
Closes: #2490

Tests:

- Unit tests works.

- On a fresh stable container, enable auto updates. Run 'apt install
mumble-server' and kill the apt process when it is unpacking. After this any apt
install command will ask for running dpkg --configure -a. At this time, run the
Testing dist upgrade. Dist upgrade starts successfully and then shows the
message 'Fixing any broken apt/dpkg states...'. It also shows that packages that
were not setup have been setup. Dist upgrades proceeds after that.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-03-17 08:10:46 -04:00
Sunil Mohan Adapa
bbb59e16de
container: Allow taking snapshots of VMs
- Use qcow2 image format so that snapshots of VMs can be taken.

- Snapshots of running VMs can't yet taken yet. But once the VM is stopped,
snapshots are possible.

Tests:

- Bring up a stable VM freshly after destroying. Work with the VM, stop it and
take a snapshot using virt-manager.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-03-15 20:45:14 -04:00
Sunil Mohan Adapa
7764b0a2c7
doc: Fetch latest manual
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
2025-03-14 16:23:39 -07:00
James Valleroy
1e4494f5c4
Release v25.5~bpo12+1 to bookworm-backports
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
v25.5_bpo12+1
2025-03-14 07:27:39 -04:00
James Valleroy
ce4c9e58a9 freedombox Debian release 25.5
-----BEGIN PGP SIGNATURE-----
 
 iQJKBAABCgA0FiEEfWrbdQ+RCFWJSEvmd8DHXntlCAgFAmfPmDgWHGp2YWxsZXJv
 eUBtYWlsYm94Lm9yZwAKCRB3wMdee2UICNszD/9ZLWgnz7NAnYa3HQaF/x0sdqjG
 okAcqub+VW2RDJMA5pGUM8yYK/vpPehlqFOijq/AVwWIfFEa4YEItrlIRpSAk0B6
 QNFIpSNoNInjBXO8aYa8vZwS2J36I1z5jvERGYkO2DGiAyyrNoWZXMnT62MOZgY3
 85aJGaMAY3aP65YYw0QBdN5PGH9HkEqghP5aI7+KU3MSx1vLya9CjPSe37IfuVFj
 eVWSjc5N19kml7ZxS67MmYYYdPCoh4tABzfkGNaev/UmkcjVMtiKmMFbME2pynMx
 fR8/EpqffsKlnCNnlb1fYCp6JiEH9uQ6DY7O591Fthd0Y+9wCBmu2DaG7AtgP4FW
 j26cfqcpF/d2ME9ELqbkodEno3Bj6jz43yeY1ZgejxeOqlvbBEuVIv3LJ99tsOT0
 wpQ6HZ148xJOJj29uA6JAz0w/eBEX5S6LZDKOOJHrCaZ0Gq+zcQYMGXkEywuG86m
 fKIlR2pgDX1w4LT+mTipTun4tzvncekNknoCQ+/+B5P/7kdjSv+hPdU+6LZlrGRM
 EuZ4Wtb26qjZF10Kl9VPcSuxfbcF6A/ZLsDzlte+3/axxn9p5oNv05ZvGVb7fiqj
 Ok1tNnBsM4v+DcVaDK2tP9/n7DtSLan0cIK4vxUnwUmgJ6pytVzlLXyFxo47bJJ1
 DDOI44V2ZRmT9hc9tg==
 =WFpX
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQJKBAABCgA0FiEEfWrbdQ+RCFWJSEvmd8DHXntlCAgFAmfUEo0WHGp2YWxsZXJv
 eUBtYWlsYm94Lm9yZwAKCRB3wMdee2UICPtzD/9aCRzcdOJmnSfT7FsGB74JLBPN
 UIzKBx3TiITaDYCrffOnkiSSaBUHGvHlsw5Okk0WnK9nc23kS/uVnBP37aLCPXrB
 kzMv+2QzkvS8k42VQ/G84m2kbroDH80rs/QJqe4Hw0qfLc4Cv3QwE5Bz6U1I8ok0
 8oT0ciUlM+0QYKvffEe+LmZJcG/NCuQYWqxU5umPWFNWh3AE3dnJ2FzdbGHZF4ui
 4SbtO7gAjJeZAizLciFeMXJIH3CETPZzpNenXQnIjJTQXiCK1fj9ZshUXn9hxocg
 9/lDb6qv9gL/cHGZsQCsXs81HyaJ3XOOWL1sFzDOmRDTCY30NUTrZ1LQsQzvFbqt
 p7CPwTXD4JnS7tPoB8TqiaK98xqHBS1KDvlImzN2/t8cENPEcsLE4yG4TWGvPxjG
 riOB9oXlaImnBSYKzVhGs7OYnivFpbb3WgZoXFD1Vk8o8el5QvG5/zUDVYnSr4Xa
 wjR2d1fO4zDsO6r1pioMllC0Cnzl6tZqsHMSAyJjwBllluFCGsWNE3H4FkQeoJT4
 s/VBMdMfwKCnnmDONvHHG2f6/QoP8bpdBZqhgWO7OY9BDe/P0LDv4bPOjd/LyofC
 CtGTWKhyB7N3acyikB7etOgLMoHjxFtM9K7urEitPW0Adbv/jEAvugft1wqMa0RZ
 qe5bAKtoMA1U5sOboA==
 =wwy4
 -----END PGP SIGNATURE-----

Merge tag 'v25.5' into debian/bookworm-backports

freedombox Debian release 25.5

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2025-03-14 07:27:06 -04:00
Dietmar
e29df8fe4d
Translated using Weblate (German)
Currently translated at 98.4% (1797 of 1826 strings)
2025-03-12 16:57:14 +01:00
Sunil Mohan Adapa
a4b15378c3
setup: Fix a minor flake8 complaint
Tests:

- None

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
2025-03-11 10:25:29 -07:00
James Valleroy
ac3f0efa94
Release v25.5 to unstable
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
v25.5
2025-03-10 20:53:02 -04:00
James Valleroy
20f683c2b6
doc: Fetch latest manual
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2025-03-10 20:52:14 -04:00
James Valleroy
2568935abb
locale: Update translation strings
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2025-03-10 20:09:05 -04:00
Максим Горпиніч
88dc95fc34
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (1827 of 1827 strings)
2025-03-11 01:06:14 +01:00
Sunil Mohan Adapa
fa57610b07
setup: Fix issue with pending app update and force upgrade
Closes: #2490

- When app update and force upgrade are pending on an app, app.setup() is run
during initialization. During setup(), force upgrade is first run as expected.
However, force upgrade does not do it's job when an app needs version upgrade.
setup() then tries to run package install() for the app and fails because
configuration file prompt is pending.

Tests:

- On a fresh bookworm container, update all packages. Run freedombox and ensure
that first setup has been completed. Stop freedombox and increment the firewall
app version. Then change sources.list and change bookworm to testing. Run apt
update. Then start the fredombox service. Notice that firewall app setup is run.
During the setup, force upgrader is executed. It install the newer firewall
package with the newer configuration file and performs the configuration file
changes. After that setup process continues and completes successfully.
firewalld package has been upgraded from 1.3.x to 2.3.x. firewalld service is
running. In /etc/firewalld/firewalld.conf default zone is set to external and
backend is set to nftables.

- Rerun the above test without the patches and notice that force upgrader does
not recognize firewall as a package to upgrade and setup() fails when trying to
install() packages. This is run in a loop continuously.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-03-10 18:58:20 -04:00
Sunil Mohan Adapa
eaed05e02b
upgrades: Use bind mounts to edit sources file only upon completion
- Save changes to /etc/apt/sources.list as a different file.

- When launching the dist upgrade process via systemd-run, use bind mounting to
ensure that the newly created sources file is treated as the original
/etc/apt/sources.list.

- If the process completes successfully, rename the new file to the original
sources.list. If the process terminates abruptly or machine reboots,
sources.list will remain unchanged. This will also the dist upgrade process to
be restarted (and hopefully continued).

Tests:

- On a fresh stable container, running dist-upgrade succeeds.

- While dist-upgrade is running, /etc/apt/sources.list is unmodified. After the
operation is successfully completed, /etc/apt/sources.list has been updates
successfully. If the operation fails, /etc/apt/sources.list remains unmodified.

- During the run the following are run:
  - apt update
  - package holds
  - debconf selections
  - full-upgrade
  - autoremove
  - unattended-upgrades
  - restarting freedombox service
  - waiting 10 minutes
  - apt update

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-03-10 18:20:39 -04:00
Sunil Mohan Adapa
33cbdd734b
upgrades: Minor refactor to pre-dist upgrade checks
- Don't perform sources.list changes in the check() method.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-03-10 18:20:38 -04:00
Sunil Mohan Adapa
f02b77f212
upgrades: tests: Add unit tests for dist upgrade methods
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-03-10 18:20:38 -04:00
Sunil Mohan Adapa
8c93ea20a4
upgrades: Perform easier checks first during dist upgrade
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-03-10 18:20:38 -04:00
Sunil Mohan Adapa
0022dc5889
action_utils: Ensure that package are unheld if dist upgrade fails
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-03-10 18:20:38 -04:00
Sunil Mohan Adapa
3aff47039f
upgrades: Simplify some global names
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2025-03-10 18:20:38 -04:00