[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#986177: marked as done (unblock: freedombox/21.4.2)



Your message dated Sat, 3 Apr 2021 07:44:08 +0200
with message-id <3485db38-458a-3fbd-6069-398fde9ff747@debian.org>
and subject line Re: Bug#986177: unblock: freedombox/21.4.2
has caused the Debian Bug report #986177,
regarding unblock: freedombox/21.4.2
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
986177: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=986177
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
X-Debbugs-Cc: jvalleroy@mailbox.org

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Please unblock package freedombox.

I would like to request an "unblock" in order to shorten the migration
time to testing for freedombox 21.4.2. This is because it includes a
fix for a security issue. The other changes in this version are bug
fixes, documentation updates, and translations updates. Here is a list
of the fixes and links to more information about each:

1. Session hijack in first run wizard
Fix: Use session to verify first boot welcome step.
Security tracker: https://security-tracker.debian.org/tracker/TEMP-0000000-3E4AC3
Issue: https://salsa.debian.org/freedombox-team/freedombox/-/issues/2074
Files modified: plinth/modules/first_boot/*

2. Deluge daemon user not in freedombox-share group
Fix: Add to freedombox-share group before running app setup.
Merge request: https://salsa.debian.org/freedombox-team/freedombox/-/merge_requests/2042
File modified: plinth/modules/deluge/__init__.py

3. Permission denied writing to Samba share
Fix: Make file-sharing services depend on nslcd.service.
Issue: https://salsa.debian.org/freedombox-team/freedombox/-/issues/2061
Merge request: https://salsa.debian.org/freedombox-team/freedombox/-/merge_requests/2041
Files modified: plinth/modules/{deluge,mldonkey,syncthing,transmission}/data/lib/systemd/system/*.service.d/freedombox.conf

4. Flaky tests related to user home directory
Fix: Don't depend on particular user to be running tests.
Issue: https://salsa.debian.org/freedombox-team/freedombox/-/issues/2014
Merge request: https://salsa.debian.org/freedombox-team/freedombox/-/merge_requests/2043
Files modified: plinth/modules/config/tests/*

5. Documentation and translation updates
Files modified: doc/*, locale/*


unblock freedombox/21.4.2

-----BEGIN PGP SIGNATURE-----

iQJKBAEBCgA0FiEEfWrbdQ+RCFWJSEvmd8DHXntlCAgFAmBjnK8WHGp2YWxsZXJv
eUBtYWlsYm94Lm9yZwAKCRB3wMdee2UICHbND/4gdjbRuBLfumrsnT3PHZNhZNjH
39jjVI0FmFhJNnhuuNqPutFrHpu4dnXH4n6NoxoAyyJ0UkrOVlQNIQTmxZgjlUSo
u6khiPe2ziHaaxbKVzBrHABWt3sB2T194Fix52+QZESZNtgUpPnC9lPtHibBwZM2
f/tsOV+xROlmb8tDDVdDyLyQCInvdN4vL+pbvVXqf+WseMbtOIyMPAdJxuy2b4xf
JOzjP/pTyHAC8M6M2KD5R5JwaNie416j+x0ES8Ghkaabucp977bXoQqgZBcAZNyT
YWbPxXAksgX53CXOrsaElBnX9SBU8pqsEO40Nw/V+Oow4sAKWRDU/xtV+YRKbGA5
ij0PXb5pbzQdkKTE6EG+vr19kEDjDSd1+tAKtjH9hh76/SuP4T5K+YNyo+hClaxd
ee/TPXqbA5Nu6oSlIXlWgn4ipff/Tq9L2iTtqQ1alC2R4UV7abt5yFOtgQdJyOgF
eowYEYTZjDhZ4DG8oPX2a8Tr0BMQgVI2mRs8b4lrhZ0LF93E23qrOFBzsxPg/Vn9
jZYgfd0Iw36gPROFzQEt3F9Ox5FVOH0Id1X4Qe0+WmNBhe04ZEQqLZfclaVha6dG
/MAUYBNS3/ZFnrjHVccw3/8kasCVuYMjxrE+BVgTHD+LgH63OrUi0Q88q0zV8aqF
B7q8fB+d8z97cfhUjw==
=qdTO
-----END PGP SIGNATURE-----
diff -Nru freedombox-21.4/debian/changelog freedombox-21.4.2/debian/changelog
--- freedombox-21.4/debian/changelog	2021-02-28 20:57:00.000000000 -0500
+++ freedombox-21.4.2/debian/changelog	2021-03-28 09:23:46.000000000 -0400
@@ -1,3 +1,61 @@
+freedombox (21.4.2) unstable; urgency=high
+
+  [ Burak Yavuz ]
+  * Translated using Weblate (Turkish)
+  * Translated using Weblate (Turkish)
+
+  [ nautilusx ]
+  * Translated using Weblate (German)
+
+  [ Michalis ]
+  * Translated using Weblate (Greek)
+
+  [ Reza Almanda ]
+  * Translated using Weblate (Indonesian)
+
+  [ Kirill Schmidt ]
+  * first_boot: Use session to verify first boot welcome step
+
+  [ James Valleroy ]
+  * doc: Fetch latest manual
+
+ -- James Valleroy <jvalleroy@mailbox.org>  Sun, 28 Mar 2021 09:23:46 -0400
+
+freedombox (21.4.1) unstable; urgency=medium
+
+  [ Dietmar ]
+  * Translated using Weblate (German)
+
+  [ Karol Werner ]
+  * Translated using Weblate (Polish)
+
+  [ Michalis ]
+  * Translated using Weblate (Greek)
+  * Translated using Weblate (Greek)
+
+  [ Fioddor Superconcentrado ]
+  * Generating developer documentation.
+  * config: Fix tests related to user home directory
+  * Translated using Weblate (Spanish)
+
+  [ ikmaak ]
+  * Translated using Weblate (Dutch)
+
+  [ Burak Yavuz ]
+  * Translated using Weblate (Turkish)
+
+  [ Veiko Aasa ]
+  * deluge, mldonkey, syncthing, transmission: Depend on nslcd.service
+  * deluge: Fix daemon user not in freedombox-share group after installation
+
+  [ Michael Breidenbach ]
+  * Translated using Weblate (Swedish)
+
+  [ James Valleroy ]
+  * doc: Fetch latest manual
+
+ -- James Valleroy <jvalleroy@mailbox.org>  Sat, 13 Mar 2021 11:55:40 -0500
+
 freedombox (21.4) unstable; urgency=medium
 
   [ Petter Reinholdtsen ]
diff -Nru freedombox-21.4/doc/manual/en/Contribute.raw.wiki freedombox-21.4.2/doc/manual/en/Contribute.raw.wiki
--- freedombox-21.4/doc/manual/en/Contribute.raw.wiki	2021-02-28 20:57:00.000000000 -0500
+++ freedombox-21.4.2/doc/manual/en/Contribute.raw.wiki	2021-03-28 09:23:46.000000000 -0400
@@ -24,88 +24,125 @@
 
 As a new contributor, you are more than welcome to introduce yourself to others on the !FreedomBox [[https://discuss.freedombox.org/c/development|discussion forum]], [[http://lists.alioth.debian.org/mailman/listinfo/freedombox-discuss|mailing list]] or on the [[irc://irc.debian.org/freedombox|#freedombox IRC]] channel. In addition to make useful contacts, you can start reporting bugs and translate (see below) the wiki website and the !FreedomBox web interface. 
 
-== Development priorities ==
 
-Upcoming priorities are discussed on an regular basis. You find the progress of the !FreedomBox Service with its priorities here: [[https://salsa.debian.org/groups/freedombox-team/-/boards|issues board]] and [[https://salsa.debian.org/groups/freedombox-team/-/milestones|milestones]].
+= Contributions needed =
 
-Please check next [[FreedomBox/ProgressCalls|progress calls]] to keep yourself on track and meet members of the release team. A [[FreedomBox/TODO|TODO page]] aggregates the complete list of the items to work on for !FreedomBox. 
+Sorted by ascending difficulty
 
-== Contributions needed ==
+== Donate ==
 
-=== Add an Application ===
+Obviously, donating is the easiest way to contribute.
 
-If you are a developer and wish to see an application available in !FreedomBox, you can contribute by adding the application to !FreedomBox.  See the [[https://docs.freedombox.org/|FreedomBox Developer Manual]]. Many applications that can be added to !FreedomBox have been identified on the [[FreedomBox/LeavingTheCloud|leaving the cloud]] page.
+You can help the project financially by donating via !PayPal, Bitcoin or by mailing a check. Please see the [[https://www.freedomboxfoundation.org/donate/|donation page]] for details on how to donate.
 
-=== Bugs ===
+!FreedomBox project is run by volunteers. The [[https://freedomboxfoundation.org|FreedomBox Foundation]] is a 501(c)(3) federal nonprofit corporation with recognition from the IRS.
 
-List of bugs, feature requests and improvements are tracked on the !FreedomBox [[https://salsa.debian.org/freedombox-team/freedombox/issues/|issue tracker]].  In addition to that, see [[FreedomBox/Contribute/Bugs|list of bugs]] to help out the Debian package we depend on. Also see the !FreedomBox [[https://qa.debian.org/developer.php?login=freedombox-pkg-team%40lists.alioth.debian.org&comaint=yes|packaging team's dashboard]] for status of various packages that we use.
 
-=== Code ===
+== Spread the Word ==
 
-If you are a developer, you can contribute code to one of the sub-projects of !FreedomBox.  Step-by-step process of [[/Code|contributing code]] to !FreedomBox is available.
+Spreading the word about !FreedomBox only requires to know about the basic goals of the project and an overall description of the product.
 
- * [[FreedomBox/Plinth|FreedomBox Service]]: a web interface to administer the functions of !FreedomBox.
- * [[FreedomBox/Maker|Freedom Maker]]: a script to build !FreedomBox disk images for use on various hardware devices or virtual machines.
+Speak to your family, friends, local community or at global conferences about the importance of !FreedomBox. To be a successful project we need much more awareness and many more participants, be it users or contributors. Write about your efforts on the [[FreedomBox/TalksAndPresentations|wiki]].
 
-You can pickup a task from one of the [[FreedomBox/TODO|TODO]] lists. The individual page project pages contain information availabily of the code, how to build and TODO lists.
+If you are into marketing, you can get in touch with the marketing team through the [[https://discuss.freedombox.org/c/community/marketing/14|marketing section of our forum]].
 
-=== Design ===
 
-==== User Experience Design ====
+== Feed Us Back (Comment) ==
 
-If you are a user experience designer, you can help !FreedomBox with the following items:
+After some time, we lose the fresh view of newcomers. Just providing your feedback helps us a lot.
+
+Browse our websites and documentation and play with !FreedomBox and comment your impressions on the [[https://discuss.freedombox.org/c/feedback/2|feedback section of our forum]]. 
 
- * UI experience for the !FreedomBox Service web interface
- * Web design for [[https://freedombox.org|freedombox.org]], [[https://freedomboxfoundation.org|freedomboxfoundation.org]] and the [[FreedomBox|wiki]] pages
- * Logo and branding (we currently have [[https://salsa.debian.org/freedombox-team/freedombox/tree/master/static/themes/default|an identity manual and logos]])
- * Possible designs for custom !FreedomBox cases on single board computers
- * [[../Design|User experience design]]
 
-==== Technical Design ====
+== Request applications ==
 
-!FreedomBox needs your technical expertise to devise implementation plans for upcoming features.  You can contribute to the discussion on various technical design and implementation aspects of !FreedomBox.  See !FreedomBox discussion forum's [[https://discuss.freedombox.org/c/development|development category]].
+Check our [[https://wiki.debian.org/FreedomBox/LeavingTheCloud|applications wishlist]] and help us extend it by searching the web for other interesting free software to include in !FreedomBox.
 
-=== Donate ===
 
-The [[https://freedomboxfoundation.org|FreedomBox Foundation]] is a 501(c)(3) federal nonprofit corporation with recognition from the IRS. !FreedomBox project is run by volunteers.  You can help the project financially by donating via !PayPal, Bitcoin or by mailing a check.  Please see the [[https://www.freedomboxfoundation.org/donate/|donation page]] for details on how to donate.
+== Translate ==
 
-=== Document: User Manual, Website and Wiki ===
+All text visible to users of !FreedomBox needs to be localized to various languages. If you know english and speak another language you can contribute translating. Translating is a nice way to get familiar with the project while contributing.
 
-!FreedomBox needs better documentation for users and contributors.  !FreedomBox manual is prepared by aggregating various pages on the wiki and exporting to various formats.  The manual is then used in !FreedomBox Service and elsewhere.
+This translation work includes:
+
+ * [[FreedomBox/Plinth|Web Interface]] of !FreedomBox
+ * !FreedomBox documentation, including the !FreedomBox [[FreedomBox|wiki]]
+ * !FreedomBox [[https://freedombox.org|website]] and [[https://freedomboxfoundation.org|foundation website]].
+ * [[https://docs.djangoproject.com/en/dev/internals/contributing/localizing/|Django web framework]] that !FreedomBox uses.
+ * Individual [[https://wiki.debian.org/FreedomBox/Manual/#Apps|applications]] that !FreedomBox exposes to users.
+
+The localization of !FreedomBox web interface happens mainly on the web-based tool at [[https://hosted.weblate.org/projects/freedombox/|Weblate]].
+
+If you wish to see !FreedomBox available for one of your languages, please start a discussion on the !FreedomBox discussion forum's [[https://discuss.freedombox.org/c/development|development category]] to work with others translating for that language.
+
+For more information, please visit the !FreedomBox [[FreedomBox/Translate|translators]] page.
+
+
+== Document: User Manual, Website and Wiki ==
+
+!FreedomBox needs better documentation for users and contributors. Sometimes, just rewording or presenting the information another way, already helps. Others, a certain knowledge is needed.
+
+!FreedomBox manual is prepared by aggregating various pages on the wiki and exporting to various formats. The manual is then used in !FreedomBox Service and elsewhere.
 
 If you wish to contribute to the !FreedomBox [[FreedomBox|wiki]] (and consequently the !FreedomBox manual), you can create a wiki account and start editing.
 
 For contributing to the website please start a discussion on the !FreedomBox discussion forum's [[https://discuss.freedombox.org/c/development|development category]].
 
-=== Quality Assurance ===
+
+== Assure Quality (Test and Check) ==
 
  * !FreedomBox already runs on many platforms and it is not possible for developers to test all possible platforms.  If you have one of the supported hardware you can help with testing !FreedomBox on the platform.
 
- * When an application is made available on !FreedomBox, not all of its functionality is tested in the real world by developer doing the work.  Deploying the application and testing it will help ensure high quality applications in !FreedomBox.
+ * When an application is made available on !FreedomBox, not all of its functionality is tested in the real world by developer doing the work. Deploying the application and testing it will help ensure high quality applications in !FreedomBox.
 
 See the [[FreedomBox/QualityAssurance|quality assurance]] page for a basic list of test cases to check for and information on reporting bugs.
 
-=== Localization ===
 
-All text visible to users of !FreedomBox needs to be localized to various languages.  This translation work includes:
+== Code ==
 
- * [[FreedomBox/Plinth|Web Interface]] for !FreedomBox
- * !FreedomBox documentation
- * !FreedomBox [[FreedomBox|wiki]], [[https://freedombox.org|website]] and [[https://freedomboxfoundation.org|foundation website]].
- * [[https://docs.djangoproject.com/en/dev/internals/contributing/localizing/|Django web framework]] that !FreedomBox uses.
- * Individual applications that !FreedomBox exposes to users.
+If you are a developer, you can contribute code to one of the sub-projects of !FreedomBox.  Step-by-step process of [[/Code|contributing code]] to !FreedomBox is available.
 
-You can contribute to the localization effort using the web-based tool at [[https://hosted.weblate.org/projects/freedombox/|Weblate]] or directly to the source tree via [[https://salsa.debian.org/freedombox-team/freedombox/tree/master/plinth/locale|Salsa]].
+ * [[FreedomBox/Plinth|FreedomBox Service]]: a web interface to administer the functions of !FreedomBox.
+ * [[FreedomBox/Maker|Freedom Maker]]: a script to build !FreedomBox disk images for use on various hardware devices or virtual machines.
 
-If you wish to see !FreedomBox available for one of your languages, please start a discussion on the !FreedomBox discussion forum's [[https://discuss.freedombox.org/c/development|development category]] to work with others translating for that language.
+You can pick up a task from one of the [[FreedomBox/TODO|TODO]] lists. The individual page project pages contain information availabily of the code, how to build and TODO lists.
 
-For more information, please visit the !FreedomBox [[FreedomBox/Translate|translators]] page.
+=== Fix Bugs ===
+
+List of bugs, feature requests and improvements are tracked on the !FreedomBox [[https://salsa.debian.org/freedombox-team/freedombox/issues/|issue tracker]].  In addition to that, see [[FreedomBox/Contribute/Bugs|list of bugs]] to help out the Debian package we depend on. Also see the !FreedomBox [[https://qa.debian.org/developer.php?login=freedombox-pkg-team%40lists.alioth.debian.org&comaint=yes|packaging team's dashboard]] for status of various packages that we use.
+
+=== Add an Application ===
+
+If you are a developer and wish to see an application available in !FreedomBox, you can contribute by adding the application to !FreedomBox.  See the [[https://docs.freedombox.org/|FreedomBox Developer Manual]]. Many applications that can be added to !FreedomBox have been identified on the [[FreedomBox/LeavingTheCloud|leaving the cloud]] page.
+
+=== Development priorities ===
+
+Upcoming priorities are discussed on an regular basis. You find the progress of the !FreedomBox Service with its priorities here: [[https://salsa.debian.org/groups/freedombox-team/-/boards|issues board]] and [[https://salsa.debian.org/groups/freedombox-team/-/milestones|milestones]].
+
+Please check next [[FreedomBox/ProgressCalls|progress calls]] to keep yourself on track and meet members of the release team. A [[FreedomBox/TODO|TODO page]] aggregates the complete list of the items to work on for !FreedomBox. 
+
+== Design ==
+
+=== User Experience Design ===
+
+If you are a user experience designer, you can help !FreedomBox with the following items:
+
+ * UI experience for the !FreedomBox Service web interface
+ * Web design for [[https://freedombox.org|freedombox.org]], [[https://freedomboxfoundation.org|freedomboxfoundation.org]] and the [[FreedomBox|wiki]] pages
+ * Logo and branding (we currently have [[https://salsa.debian.org/freedombox-team/freedombox/tree/master/static/themes/default|an identity manual and logos]])
+ * Possible designs for custom !FreedomBox cases on single board computers
+ * [[../Design|User experience design]]
+
+=== Technical Design ===
+
+!FreedomBox needs your technical expertise to devise implementation plans for upcoming features. You can contribute to the discussion on various technical design and implementation aspects of !FreedomBox. See !FreedomBox discussion forum's [[https://discuss.freedombox.org/c/development|development category]].
+
+
+== Package Applications ==
+
+!FreedomBox is a Debian Pure Blend. In order to add applications to !FreedomBox we need applications first to be Debian-packaged. Check our [[https://wiki.debian.org/FreedomBox/LeavingTheCloud|applications wishlist]].
 
-=== Spread the Word ===
 
-Speak to your family, friends, local community or at global conferences about
-the importance of !FreedomBox.  To be a successful project we need many more
-participants, be it users or contributors.  Write about your efforts at the [[https://www.freedomboxfoundation.org/appearances/index.en.html|talks page]] and on the [[FreedomBox/TalksAndPresentations|wiki]].
 
 ## END_INCLUDE
 
diff -Nru freedombox-21.4/doc/manual/en/MatrixSynapse.raw.wiki freedombox-21.4.2/doc/manual/en/MatrixSynapse.raw.wiki
--- freedombox-21.4/doc/manual/en/MatrixSynapse.raw.wiki	2021-02-28 20:57:00.000000000 -0500
+++ freedombox-21.4.2/doc/manual/en/MatrixSynapse.raw.wiki	2021-03-28 09:23:46.000000000 -0400
@@ -14,8 +14,8 @@
 '''Available since''': version 0.14.0
 
 === What is Matrix? ===
-[[https://matrix.org/|Matrix]] is an open standard for interoperable, decentralized, real-time communication over IP. Synapse is the reference implementation of a Matrix server. It can be used to setup instant messaging on !FreedomBox to host large chat rooms, end-to-end encrypted communication and audio/video calls.  
-Matrix Synapse is a federated application where chat rooms can exist on any server and users from any server in the federated network can join them.  [[https://matrix.org/docs/guides/faq.html|Learn more]] about Matrix.
+[[https://matrix.org/|Matrix]] is an open protocol for interoperable, decentralized, real-time communication over IP. Synapse is the reference implementation of a Matrix server. It can be used to setup instant messaging on !FreedomBox to host chat rooms with end-to-end encrypted communication and audio/video calls.  
+Matrix Synapse is a federated application where chat rooms can exist on any server and users from any server in the federated network can join them. [[https://matrix.org/docs/guides/faq.html|Learn more]] about Matrix.
 
 === How to access your Matrix Synapse server? ===
 
@@ -28,13 +28,19 @@
 
 === Setting up Matrix Synapse on your FreedomBox ===
 
-To enable Matrix, first navigate to the Chat Server (Matrix Synapse) page and install it. Matrix needs a valid domain name to be configured.  After installation, you will be asked to configure it.  You will be able to select a domain from a drop down menu of available domains.  Domains are configured using [[FreedomBox/Manual/Configure|System -> Configure page]].  After configuring a domain, you will see that the service is running. The service will be accessible on the configured !FreedomBox domain. Currently, you will not be able to change the domain once is it configured.
+To enable Matrix Synapse, first navigate to the Chat Server (Matrix Synapse) page and install it. Matrix needs a valid domain name to be configured. After installation, you will be asked to configure it.  You will be able to select a domain from a drop down menu of available domains.  Domains are configured using [[FreedomBox/Manual/Configure|System -> Configure]] page. After configuring a domain, you will see that the service is running. The service will be accessible on the configured !FreedomBox domain. Currently, you will not be able to change the domain once is it configured.
 
 Your router has to be configured to forward port 8448.
 
 All the registered users of your !FreedomBox will have their Matrix IDs as `@username:domain`. If public registration is enabled, also your chosen client can be used to register a user account.
 
-If your !FreedomBox is behind a router (NAT) you might need [[FreedomBox/Manual/Coturn|Coturn]] for Voice over IP calls.
+=== Setting up Audio/Video calls ===
+
+The Matrix Synapse server is only responsible for establishing calls between participants in rooms. Matrix clients such as Element are actually responsible for the transfer of the audio/video traffic. Element supports calling in both one-to-one conversations and in groups.
+
+For one-to-one conversations, Element tries to make a peer-to-peer connection between the two participants. This works when both the participants are using Element on computers with a public IP address or if they're on the same network. If both the participants are behind different NAT devices, establishing a direct peer-to-peer connection between them will not be possible. This problem can be solved by configuring Matrix Synapse with a STUN/TURN server. !FreedomBox provides an app called [[FreedomBox/Manual/Coturn|Coturn]] for this purpose. !FreedomBox doesn't automatically install Coturn on installing Matrix Synapse. However, as soon as Coturn app is installed, !FreedomBox automatically configures Matrix Synapse to use it for audio/video calls. It is possible to override this configuration with a different STUN/TURN server in the web interface.
+
+For calling groups with more than two participants (i.e. not one-on-one conversations), Element uses an external Jitsi Meet instance. Element uses jitsi.riot.im as its default Jitsi Meet instance. If the Matrix Synapse server is configured to use a different Jitsi Meet instance as the default, Element will use it instead for all users on that server. 
 
 === Federating with other Matrix instances ===
 
diff -Nru freedombox-21.4/doc/manual/en/ReleaseNotes.raw.wiki freedombox-21.4.2/doc/manual/en/ReleaseNotes.raw.wiki
--- freedombox-21.4/doc/manual/en/ReleaseNotes.raw.wiki	2021-02-28 20:57:00.000000000 -0500
+++ freedombox-21.4.2/doc/manual/en/ReleaseNotes.raw.wiki	2021-03-28 09:23:46.000000000 -0400
@@ -10,6 +10,29 @@
 
 The following are the release notes for each !FreedomBox version.
 
+== FreedomBox 21.4.2 (2021-03-28) ==
+
+=== Highlights ===
+
+ * firstboot: Use session to verify first boot welcome step
+
+=== Other Changes ===
+
+ * locale: Update translations for German, Greek, Indonesian, Turkish
+ * manual: Update Contributing and Matrix Synapse pages
+
+== FreedomBox 21.4.1 (2021-03-13) ==
+
+=== Highlights ===
+
+ * deluge, mldonkey, syncthing, transmission: Ensure nslcd is running before the service is started
+ * deluge: Fix daemon user not in freedombox-share group after installation
+
+=== Other Changes ===
+
+ * config: Fix tests related to user home directory
+ * locale: Update translations for Dutch, German, Greek, Polish, Spanish, Swedish, Turkish
+
 == FreedomBox 21.4 (2021-02-28) ==
 
 === Highlights ===
diff -Nru freedombox-21.4/doc/manual/en/Rock64.raw.wiki freedombox-21.4.2/doc/manual/en/Rock64.raw.wiki
--- freedombox-21.4/doc/manual/en/Rock64.raw.wiki	2021-02-28 20:57:00.000000000 -0500
+++ freedombox-21.4.2/doc/manual/en/Rock64.raw.wiki	2021-03-28 09:23:46.000000000 -0400
@@ -24,7 +24,7 @@
 === Hardware ===
 
  * Open Source Hardware (OSHW): No
- * CPU: Rockchip RK3328 Quad-Core SOC (4x Cortex A53@1.5Ghz)
+ * CPU: Rockchip RK3328 Quad-Core SOC (4x Cortex A53 @ 1.5Ghz)
  * GPU: Mali 450MP2
  * RAM: 1 GiB or 2 GiB or 4 GiB LPDDR3
  * Storage: eMMC module slot, microSD slot, 16 MiB SPI Flash
diff -Nru freedombox-21.4/doc/manual/es/Contribute.raw.wiki freedombox-21.4.2/doc/manual/es/Contribute.raw.wiki
--- freedombox-21.4/doc/manual/es/Contribute.raw.wiki	2021-02-28 20:57:00.000000000 -0500
+++ freedombox-21.4.2/doc/manual/es/Contribute.raw.wiki	2021-03-28 09:23:46.000000000 -0400
@@ -23,60 +23,74 @@
 
 Como nuevo contribuyente, eres más que bienvenido a presentarte a otros en el [[https://discuss.freedombox.org/c/development|foro de debate]], la [[http://lists.alioth.debian.org/mailman/listinfo/freedombox-discuss|lista de correo]] o el [[irc://irc.debian.org/freedombox|canal de IRC]] de !FreedomBox. Además de hacer contactos útiles, puedes empezar a informar fallos y traducir (ver abajo) el wiki y el interfaz de !FreedomBox. 
 
-== Prioridades de Desarrollo ==
 
-Las prioridades se discuten regularmente. Encontrarás el avance del Servicio !FreedomBox con sus prioridades aquí: [[https://salsa.debian.org/groups/freedombox-team/-/boards|panel de tareas]] e [[https://salsa.debian.org/groups/freedombox-team/-/milestones|hitos]].
 
-Por favor, asiste a las próximas [[FreedomBox/ProgressCalls|reuniones de avance]] para mantenerte al día y tratar con los miembros del equipo de publicación (release). La [[FreedomBox/TODO|Página de trabajos pendientes]] recopila la lista completa de los elementos en los que trabajar para !FreedomBox. 
+= Se necesitan contribuciones =
 
-== Se necesitan Contribuciones ==
+Ordenadas por dificultad ascencente.
 
-=== Añadir una Aplicación ===
+== Donar ==
 
-Si eres desarrollador y quieres ver disponible en !FreedomBox alguna aplicación, puedes contribuir añadiéndola a !FreedomBox.  Mira el [[https://docs.freedombox.org/|Manual del Desarrollador de FreedomBox]].
+Obviamente donar es la manera más fácil de contribuir.
 
-=== Defectos ===
+Puedes ayudar a su financiación donando mediante !PayPal, Bitcoin o enviando un cheque.  Mira por favor la [[https://www.freedomboxfoundation.org/donate/|página de donación]] para más detalles acerca de cómo donar.
 
-Las listas de defectos, peticiones de funcionalidad y mejoras se controlan en el [[https://salsa.debian.org/freedombox-team/freedombox/issues/|gestor de tiquets]] de !FreedomBox.  Mira también la [[FreedomBox/Contribute/Bugs|lista de defectos]] para ayudar al paquete Debian del que dependemos y el [[https://qa.debian.org/developer.php?login=freedombox-pkg-team%40lists.alioth.debian.org&comaint=yes|cuadro de mando del equipo de paquetizado]] de !FreedomBox para ver el estado los paquetes que usamos.
+El proyecto !FreedomBox lo llevan voluntarios. La ''[[https://freedomboxfoundation.org|FreedomBox Foundation]]'' es una corporación federal 501(c)(3) reconocida por el IRS. 
 
-=== Codificar ===
 
-Si eres desarrollador puedes contribuir código a algún sub-proyecto de !FreedomBox.  Éste es el procedimiento paso a paso para [[FreedomBox/Contribute/Code|contribuir código]].
+== Correr la voz ==
 
- * [[FreedomBox/Plinth|Servicio FreedomBox]]: un interfaz web para administrar las funciones de !FreedomBox.
- * [[FreedomBox/Maker|Freedom Maker]]: un script para construir imágenes de disco de !FreedomBox para usarlas en dispositivos de hardware variados o en máquinas virtuales.
+Correr la voz acerca de !FreedomBox solo requiere saber acerca de los objetivos básicos del proyecto y una descripción general del producto.
 
-Puedes tomar una tarea de la [[FreedomBox/TODO|Página de trabajos pendientes]].  Las páginas de cada proyecto contienen información acerca de acceso al código, cómo construir y listas de trabajos pendientes.
+Cuenta a tu familia, amistades, comunidad local o en conferencias globales la importancia de !FreedomBox.  Para ser un proyecto exitoso necesitamos muchos más
+participantes, ya sean usuarios o contribuyentes.  Comenta tus esfuerzos de divulgación en la [[https://www.freedomboxfoundation.org/appearances/index.en.html|página de charlas]] y en el [[FreedomBox/TalksAndPresentations|wiki]].
 
-=== Diseño ===
+Si sabes algo de márketing, puedes ponerte en contacto con el equipo de marketing mediante la [[https://discuss.freedombox.org/c/community/marketing/14|sección de ''Marketing'' de nuestro foro]]. 
 
-==== Diseño de Experiencia de Usuario (UX) ====
 
-Si eres diseñador de UX, puedes ayudar a !FreedomBox con esto:
+== Darnos tus impresiones (Comentar) ==
 
- * Experiencia de interacción para el interfaz web del Servicio !FreedomBox.
- * Diseño web para los sitios [[https://freedombox.org|freedombox.org]], [[https://freedomboxfoundation.org|freedomboxfoundation.org]] y el [[FreedomBox|wiki]].
- * Logo y marca (actualmente tenemos [[https://salsa.debian.org/freedombox-team/freedombox/tree/master/static/themes/default|un manual de identidad y logos]]).
- * Propuestas de diseño para casos de uso de !FreedomBox sobre SBCs personalizados.
- * [[FreedomBox/Design|Diseño de UX]]
+Tras cierto tiempo perdemos la visión fresca de quienes acaban de llegar. Solo con hacernos llegar tus impresiones ya nos ayudas un montón.
+
+Navega por nuestros sitios web y por la documentación, y juega con !FreedomBox y comenta tus impresiones en la [[https://discuss.freedombox.org/c/feedback/2|sección de ''Feedback'' de nuestro foro]]. 
 
-==== Diseño Técnico ====
 
-!FreedomBox necesita tu conocimiento técnico para elaborar planes de implementación de nuevas funcionalidades.  Puedes contribuir a los debates acerca de varios aspectos de diseño técnico e implementación de !FreedomBox.  Mira la [[https://discuss.freedombox.org/c/development|sección de desarrollo]] de los foros de discusión.
+== Pedir aplicaciones ==
 
-=== Donar ===
+Mira nuestra [[https://wiki.debian.org/FreedomBox/LeavingTheCloud|lista de aplicaciones deseadas]] y ayúdanos a extenderla buscando en la web otras aplicaciones de software libre para incluír en !FreedomBox. 
 
-La ''[[https://freedomboxfoundation.org|FreedomBox Foundation]]'' es una corporación federal 501(c)(3) reconocida por el IRS. El proyecto !FreedomBox lo llevan voluntarios.  Puedes ayudar a su financiación donando mediante !PayPal, Bitcoin o enviando un cheque.  Mira por favor la [[https://www.freedomboxfoundation.org/donate/|página de donación]] para más detalles acerca de cómo donar.
 
-=== Documentar: Manual de Usuario, Sitio Web y Wiki ===
+== Traducir ==
 
-!FreedomBox necesita mejor documentación para usuarios y contribuyentes.  El manual de !FreedomBox se prepara agregando diferentes páginas del wiki y exportando a various formatos.  El manual se usa en el Servicio !FreedomBox y en otros sitios.
+Todo texto visible por los usuarios de !FreedomBox necesita ser localizado a varios idiomas. Si entiendes inglés y escribes otro idioma puedes contribuír traduciendo. Traducir es una forma estupenda de familiarizarse con el proyecto mientras contribuyes.
 
-Si quieres contribuir al [[FreedomBox|wiki]] (y por extensión al manual) de !FreedomBox, puedes crear una cuenta en el wiki y empezar a editar.
+Este trabajo de traducción incluye:
+
+ * El [[FreedomBox/Plinth|Interfaz web]] de !FreedomBox.
+ * La documentación de !FreedomBox, incluyendo el [[es/FreedomBox|wiki]].
+ * Los sitios web de [[https://freedombox.org|FreedomBox]] y la ''[[https://freedomboxfoundation.org|Freedombox Foundation]]''.
+ * El [[https://docs.djangoproject.com/en/dev/internals/contributing/localizing/|framework Django]] que emplea !FreedomBox.
+ * Cada [[es/FreedomBox/Manual#Apps|aplicación]] que !FreedomBox expone a sus usuarios.
+
+La localización del interfaz web de !FreedomBox ocurre principalmente en la herramienta web [[https://hosted.weblate.org/projects/freedombox/|Weblate]].
+
+Si quieres ver a !FreedomBox disponible en alguno de tus idiomas, por favor abre un debate en la [[https://discuss.freedombox.org/c/development|sección de desarrollo]] del foro de !FreedomBox para trabajar con otros traduciendo para ese idioma.
+
+Para más información, por favor visita la página de [[FreedomBox/Translate|traductores]].
+
+
+== Documentar: Manual de Usuario, Sitio Web y Wiki ==
+
+!FreedomBox necesita mejor documentación para usuarios y contribuyentes. A veces re-redactar o presentar la información de otra manera ya ayuda. Otras se necesita cierto conocimiento.
+
+El manual de !FreedomBox se prepara agregando diferentes páginas del wiki y exportando a various formatos.  El manual se usa en el Servicio !FreedomBox y en otros sitios.
+
+Si quieres contribuir al [[es/FreedomBox|wiki]] (y por extensión al manual) de !FreedomBox, puedes crear una cuenta en el wiki y empezar a editar.
 
 Para contribuir al sitio web por favor inicia un debate en la [[https://discuss.freedombox.org/c/development|sección de desarrollo]] del foro de !FreedomBox.
 
-=== Asegurar la Calidad ===
+
+== Asegurar la calidad (probar y comprobar) ==
 
  * !FreedomBox ya funciona sobre muchas plataformas y a los desarrolladores les resulta imposible probar en todas.  Si tienes algún hardware soportado puedes ayudar probando !FreedomBox en tu platforma.
 
@@ -84,27 +98,53 @@
 
 Mira en la página de [[FreedomBox/QualityAssurance|aseguramiento de la calidad]] la lista de casos de prueba que hay que verificar y la información acerca de cómo informar defectos.
 
-=== Localizar (l10n) ===
 
-Todo texto visible por los usuarios de !FreedomBox necesita ser localizado a varios idiomas.  Este trabajo de traducción incluye:
+== Codificar ==
 
- * El [[FreedomBox/Plinth|Interfaz web]] de !FreedomBox
- * La documentación de !FreedomBox
- * El [[FreedomBox|wiki]] y los sitios web de [[https://freedombox.org|FreedomBox]] y la ''[[https://freedomboxfoundation.org|Freedombox Foundation]]''.
- * El [[https://docs.djangoproject.com/en/dev/internals/contributing/localizing/|framework Django]] que emplea !FreedomBox.
- * Cada aplicación que !FreedomBox expone a sus usuarios.
+Si eres desarrollador puedes contribuir código a algún sub-proyecto de !FreedomBox.  Éste es el procedimiento paso a paso para [[FreedomBox/Contribute/Code|contribuir código]].
 
-Puedes contribuir al esfuerzo de localización usando la herramienta web [[https://hosted.weblate.org/projects/freedombox/|Weblate]] o directamente en el repositorio de código mediante  [[https://salsa.debian.org/freedombox-team/freedombox/tree/master/plinth/locale|Salsa]].
+ * [[FreedomBox/Plinth|Servicio FreedomBox]]: un interfaz web para administrar las funciones de !FreedomBox.
+ * [[FreedomBox/Maker|Freedom Maker]]: un script para construir imágenes de disco de !FreedomBox para usarlas en dispositivos de hardware variados o en máquinas virtuales.
 
-Si quieres ver a !FreedomBox disponible en alguno de tus idiomas, por favor abre un debate en la [[https://discuss.freedombox.org/c/development|sección de desarrollo]] del foro de !FreedomBox para trabajar con otros traduciendo para ese idioma.
+Puedes tomar una tarea de la [[FreedomBox/TODO|Página de trabajos pendientes]].  Las páginas de cada proyecto contienen información acerca de acceso al código, cómo construir y listas de trabajos pendientes.
 
-Para más información, por favor visita la página de [[FreedomBox/Translate|traductores]].
+=== Arreglar defectos ===
 
-=== Correr la Voz ===
+Las listas de defectos, peticiones de funcionalidad y mejoras se controlan en el [[https://salsa.debian.org/freedombox-team/freedombox/issues/|gestor de tiquets]] de !FreedomBox.  Mira también la [[FreedomBox/Contribute/Bugs|lista de defectos]] para ayudar al paquete Debian del que dependemos y el [[https://qa.debian.org/developer.php?login=freedombox-pkg-team%40lists.alioth.debian.org&comaint=yes|cuadro de mando del equipo de paquetizado]] de !FreedomBox para ver el estado los paquetes que usamos.
 
-Cuenta a tu familia, amistades, comunidad local o en conferencias globales la importancia de !FreedomBox.  Para ser un proyecto exitoso necesitamos muchos más
-participantes, ya sean usuarios o contribuyentes.  Comenta tus esfuerzos de divulgación en la [[https://www.freedomboxfoundation.org/appearances/index.en.html|página de charlas]] y en el [[FreedomBox/TalksAndPresentations|wiki]].
+=== Añadir una aplicación ===
+
+Si eres desarrollador y quieres ver disponible en !FreedomBox alguna aplicación, puedes contribuir añadiéndola a !FreedomBox.  Mira el [[https://docs.freedombox.org/|Manual del Desarrollador de FreedomBox]].
+
+=== Prioridades de desarrollo ===
+
+Las prioridades se discuten regularmente. Encontrarás el avance del Servicio !FreedomBox con sus prioridades aquí: [[https://salsa.debian.org/groups/freedombox-team/-/boards|panel de tareas]] e [[https://salsa.debian.org/groups/freedombox-team/-/milestones|hitos]].
+
+Por favor, asiste a las próximas [[FreedomBox/ProgressCalls|reuniones de avance]] para mantenerte al día y tratar con los miembros del equipo de publicación (release). La [[FreedomBox/TODO|Página de trabajos pendientes]] recopila la lista completa de los elementos en los que trabajar para !FreedomBox.
+
+
+== Diseño ==
+
+=== Diseño de Experiencia de Usuario (UX) ===
+
+Si eres diseñador de UX, puedes ayudar a !FreedomBox con esto:
+
+ * Experiencia de interacción para el interfaz web del Servicio !FreedomBox.
+ * Diseño web para los sitios [[https://freedombox.org|freedombox.org]], [[https://freedomboxfoundation.org|freedomboxfoundation.org]] y el [[FreedomBox|wiki]].
+ * Logo y marca (actualmente tenemos [[https://salsa.debian.org/freedombox-team/freedombox/tree/master/static/themes/default|un manual de identidad y logos]]).
+ * Propuestas de diseño para casos de uso de !FreedomBox sobre SBCs personalizados.
+ * [[FreedomBox/Design|Diseño de UX]]
+
+=== Diseño Técnico ===
+
+!FreedomBox necesita tu conocimiento técnico para elaborar planes de implementación de nuevas funcionalidades.  Puedes contribuir a los debates acerca de varios aspectos de diseño técnico e implementación de !FreedomBox.  Mira la [[https://discuss.freedombox.org/c/development|sección de Desarrollo]] de los foros de debate.
+
+
+== Empaquetar aplicaciones ==
+
+!FreedomBox es una ''variante pura'' de Debian. Para añadir aplicaciones a !FreedomBox necesitames primero que estén empaquetadas para Debian. Mira nuestra [[https://wiki.debian.org/FreedomBox/LeavingTheCloud|lista de aplicaciones deseadas]].
 
+ 
 ## END_INCLUDE
 
 <<Include(es/FreedomBox/Portal)>>
diff -Nru freedombox-21.4/doc/manual/es/MatrixSynapse.raw.wiki freedombox-21.4.2/doc/manual/es/MatrixSynapse.raw.wiki
--- freedombox-21.4/doc/manual/es/MatrixSynapse.raw.wiki	2021-02-28 20:57:00.000000000 -0500
+++ freedombox-21.4.2/doc/manual/es/MatrixSynapse.raw.wiki	2021-03-28 09:23:46.000000000 -0400
@@ -12,8 +12,8 @@
 '''Disponible desde:''' versión 0.14.0
 
 === ¿Qué es Matrix? ===
-[[https://matrix.org/|Matrix]] es un estándar abierto para comunicaciones sobre IP en tiempo real interoperables y descentralizadas. ''Synapse'' es la implementación de referencia de un servidor Matrix. Se puede usar para montar mensajería instantánea sobre !FreedomBox para albergar grandes salones de chat,  comunicaciones cifradas punto a punto y llamadas de audio/vídeo.  
-Matrix Synapse es una aplicación federada en la que puede haber salas de chat en un servidor y los usuarios de cualquier otro servidor de la red federada pueden unirse a ellas.  [[https://matrix.org/docs/guides/faq.html|Más información]] acerca de Matrix.
+[[https://matrix.org/|Matrix]] es un protocolo abierto para comunicaciones sobre IP en tiempo real interoperables y descentralizadas. ''Synapse'' es la implementación de referencia de un servidor Matrix. Se puede usar para montar mensajería instantánea sobre !FreedomBox para albergar  salas de chat con comunicaciones cifradas punto a punto y llamadas de audio/vídeo.  
+Matrix Synapse es una aplicación federada en la que puede haber salas de chat en un servidor y los usuarios de cualquier otro servidor de la red federada pueden unirse a ellas. [[https://matrix.org/docs/guides/faq.html|Más información]] acerca de Matrix.
 
 === ¿Cómo acceder a tu servidor Matrix Synapse? ===
 
@@ -21,13 +21,19 @@
 
 === Configurar Matrix Synapse en tu FreedomBox ===
 
-Para habilitar Matrix, primero navega a la página de tu servidor de chat (Matrix Synapse) e instálalo. Matrix necesita un nombre de dominio válido configurado.  Tras la instalación, se te pedirá que lo configures seleccionandolo de entre un menú desplegable con dominios disponibles.  Los dominios se configuran en la página [[es/FreedomBox/Manual/Configure|Sistema -> Configuración]] y '''actualmente no podrás cambiar el dominio''' una vez esté configurado.  Tras configurar un dominio verás que el servicio se está ejecutando. El servicio estará accesible en el dominio de !FreedomBox configurado.
+Para habilitar Matrix Synapse, primero navega a la página de tu servidor de chat (Matrix Synapse) e instálalo. Matrix necesita un nombre de dominio válido configurado.  Tras la instalación, se te pedirá que lo configures seleccionandolo de entre un menú desplegable con dominios disponibles.  Los dominios se configuran en la página [[es/FreedomBox/Manual/Configure| Sistema -> Configuración]] y '''actualmente no podrás cambiar el dominio''' una vez esté configurado.  Tras configurar un dominio verás que el servicio se está ejecutando. El servicio estará accesible en el dominio de !FreedomBox configurado.
 
 Tendrás que configurar tu router para que reenvíe el puerto 8448 a tu !FreedomBox.
 
 Todos los usuarios registrados en tu !FreedomBox tendrán sus IDs Matrix  `@usuario:dominio`. Si está habilitado el registro público tu cliente se puede usar también para registrar una cuenta de usuario nueva.
  	
-Si tu !FreedomBox está detrás de un router (NAT), quizá necesites [[es/FreedomBox/Manual/Coturn|Coturn]] para hacer llamadas de voz sobre IP.
+=== Configurar llamadas de audio/vídeo ===
+
+El servidor Matrix Synapse solo es responsable de establecer las conexiones entre los participantes de la sala. Los clientes Matrix como Element son los responsables de transmitir el audio/vídeo. Element soporta tanto llamadas individuales como de grupo.
+
+Para conversaciones individuales, Element intenta establecer una conexión directa entre ambos participantes. Esto funciona cuando ambos participantes están empleando Element en máquinas con una IP pública o si están en la misma red (local). Si ambos participantes están detrás de diferentes NATs no será posible establecer una conexión directa entre ellos. Esta dificultad se resuelve configurando Matrix Synapse contra un servidor STUN/TURN. !FreedomBox proporciona una app llamada [[es/FreedomBox/Manual/Coturn|Coturn]] para este propósito. !FreedomBox no instala  Coturn automaticamente al instalar Matrix Synapse. No obstante, en cuanto se instala la app Coturn !FreedomBox automáticamente reconfigura Matrix Synapse para usarla en llamadas de audio/vídeo. Se puede ajustar esta configuración en la interfaz web para emplear otro servidor STUN/TURN.
+
+Para llamadas de grupo Element emplea una instancia de Jitsi Meet externa; por omisión, `jitsi.riot.im`. Si se configura el servidor Matrix Synapse para usar una instancia Jitsi Meet diferente Element la usará para todos los usuarios del servidor.
 
 === Federarse con otras instancias Matrix ===
 
diff -Nru freedombox-21.4/doc/manual/es/ReleaseNotes.raw.wiki freedombox-21.4.2/doc/manual/es/ReleaseNotes.raw.wiki
--- freedombox-21.4/doc/manual/es/ReleaseNotes.raw.wiki	2021-02-28 20:57:00.000000000 -0500
+++ freedombox-21.4.2/doc/manual/es/ReleaseNotes.raw.wiki	2021-03-28 09:23:46.000000000 -0400
@@ -10,6 +10,29 @@
 
 The following are the release notes for each !FreedomBox version.
 
+== FreedomBox 21.4.2 (2021-03-28) ==
+
+=== Highlights ===
+
+ * firstboot: Use session to verify first boot welcome step
+
+=== Other Changes ===
+
+ * locale: Update translations for German, Greek, Indonesian, Turkish
+ * manual: Update Contributing and Matrix Synapse pages
+
+== FreedomBox 21.4.1 (2021-03-13) ==
+
+=== Highlights ===
+
+ * deluge, mldonkey, syncthing, transmission: Ensure nslcd is running before the service is started
+ * deluge: Fix daemon user not in freedombox-share group after installation
+
+=== Other Changes ===
+
+ * config: Fix tests related to user home directory
+ * locale: Update translations for Dutch, German, Greek, Polish, Spanish, Swedish, Turkish
+
 == FreedomBox 21.4 (2021-02-28) ==
 
 === Highlights ===
diff -Nru freedombox-21.4/doc/manual/es/Rock64.raw.wiki freedombox-21.4.2/doc/manual/es/Rock64.raw.wiki
--- freedombox-21.4/doc/manual/es/Rock64.raw.wiki	2021-02-28 20:57:00.000000000 -0500
+++ freedombox-21.4.2/doc/manual/es/Rock64.raw.wiki	2021-03-28 09:23:46.000000000 -0400
@@ -24,7 +24,7 @@
 === Hardware ===
 
  * Open Source Hardware (OSHW): No
- * CPU: Rockchip RK3328 Quad-Core SOC (4x Cortex A53@1.5Ghz)
+ * CPU: Rockchip RK3328 Quad-Core SOC (4x Cortex A53 @ 1.5Ghz)
  * GPU: Mali 450MP2
  * RAM: 1 GiB or 2 GiB or 4 GiB LPDDR3
  * Storage: eMMC module slot, microSD slot, 16 MiB SPI Flash
diff -Nru freedombox-21.4/doc/manual/es/Zoph.raw.wiki freedombox-21.4.2/doc/manual/es/Zoph.raw.wiki
--- freedombox-21.4/doc/manual/es/Zoph.raw.wiki	2021-02-28 20:57:00.000000000 -0500
+++ freedombox-21.4.2/doc/manual/es/Zoph.raw.wiki	2021-03-28 09:23:46.000000000 -0400
@@ -29,7 +29,7 @@
 
 El menú de solapas se mostrará en la parte superior de cada página. Desde ahí puedes cargar fotos desde cualquier ordenador, administrar Zoph para añadir usuarios, etc.
  
-Actualmente deberás ir primero a la pestaña "preferencias" para establecerlas porque el primer usuario creado automáticamente no las tiene.
+Ahora puedes ir a la pestaña "preferencias" para establecerlas, p. ej. las cantidades de filas y columnas en los resultados, cuanta información mostrar acerca de la cámara con la que se tomó la foto, etc.
 
 {{attachment:FreedomBox/Manual/Zoph/zoph-prefs.png|Zoph User Preferences Screen|width=606}}
 
diff -Nru freedombox-21.4/HACKING.md freedombox-21.4.2/HACKING.md
--- freedombox-21.4/HACKING.md	2021-02-28 20:57:00.000000000 -0500
+++ freedombox-21.4.2/HACKING.md	2021-03-28 09:23:46.000000000 -0400
@@ -5,7 +5,7 @@
 1. [Setting up and using development environments](#development-environments-setting-up-and-their-usage)
 1. [Contributing translations + how to make/keep FreedomBox international](#makingkeeping-freedombox-international)
 1. [Testing](#testing)
-1. [Building user documentation](#building-the-user-documentation-separately)
+1. [Documentation](#documentation)
 1. [Submitting your changes](#submitting-your-changes)
 1. [Other related stuff](#miscelanea)
 
@@ -465,7 +465,9 @@
 [back to index](#hacking)
 
 
-## Building the User Documentation Separately
+## Documentation
+
+### Building the User Documentation Separately
 
 FreedomBox Service (Plinth) man page is built from DocBook source in the `doc/`
 directory. FreedomBox manual is downloaded from the wiki is also available
@@ -477,6 +479,10 @@
 guest$ make -C doc
 ```
 
+### Building Developer documentation
+
+See [README.rst](doc/dev/README.rst) in `doc/dev` directory.
+
 
 [back to index](#hacking)
 
diff -Nru freedombox-21.4/plinth/__init__.py freedombox-21.4.2/plinth/__init__.py
--- freedombox-21.4/plinth/__init__.py	2021-02-28 20:57:00.000000000 -0500
+++ freedombox-21.4.2/plinth/__init__.py	2021-03-28 09:23:46.000000000 -0400
@@ -3,4 +3,4 @@
 Package init file.
 """
 
-__version__ = '21.4'
+__version__ = '21.4.2'
diff -Nru freedombox-21.4/plinth/locale/de/LC_MESSAGES/django.po freedombox-21.4.2/plinth/locale/de/LC_MESSAGES/django.po
--- freedombox-21.4/plinth/locale/de/LC_MESSAGES/django.po	2021-02-28 20:57:00.000000000 -0500
+++ freedombox-21.4.2/plinth/locale/de/LC_MESSAGES/django.po	2021-03-28 09:23:46.000000000 -0400
@@ -9,9 +9,9 @@
 msgstr ""
 "Project-Id-Version: FreedomBox UI\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-02-28 20:13-0500\n"
-"PO-Revision-Date: 2021-02-19 15:50+0000\n"
-"Last-Translator: Dietmar <sagen@permondes.de>\n"
+"POT-Creation-Date: 2021-02-11 17:23-0500\n"
+"PO-Revision-Date: 2021-03-22 18:29+0000\n"
+"Last-Translator: nautilusx <translate@disroot.org>\n"
 "Language-Team: German <https://hosted.weblate.org/projects/freedombox/";
 "freedombox/de/>\n"
 "Language: de\n"
@@ -19,7 +19,7 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.5\n"
+"X-Generator: Weblate 4.5.2-dev\n"
 
 #: doc/dev/_templates/layout.html:11
 msgid "Page source"
@@ -3103,6 +3103,9 @@
 "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
 "<a href={coturn_url}>Coturn</a> app or configure an external server."
 msgstr ""
+"Matrix Synapse benötigt einen STUN/TURN-Server für Audio-/Videoanrufe. "
+"Installiere die <a href=\"{coturn_url}\">Coturn</a>-App oder konfiguriere "
+"einen externen Server."
 
 #: plinth/modules/matrixsynapse/__init__.py:76
 msgid "Matrix Synapse"
@@ -3125,7 +3128,7 @@
 
 #: plinth/modules/matrixsynapse/forms.py:21
 msgid "Automatically manage audio/video call setup"
-msgstr ""
+msgstr "Automatischer Aufbau von Audio-/Videoanrufen"
 
 #: plinth/modules/matrixsynapse/forms.py:23
 #, python-brace-format
@@ -3134,24 +3137,27 @@
 "server for Matrix Synapse. Disable this if you want to use a different STUN/"
 "TURN server."
 msgstr ""
+"Konfiguriert die lokale <a href=\"{coturn_url}\">coturn</a>-App als STUN/"
+"TURN-Server für Matrix Synapse. Deaktiviere dies, wenn du einen anderen STUN/"
+"TURN-Server verwenden möchtest."
 
 #: plinth/modules/matrixsynapse/forms.py:30
 msgid "STUN/TURN Server URIs"
-msgstr ""
+msgstr "STUN/TURN Server URIs"
 
 #: plinth/modules/matrixsynapse/forms.py:32
 msgid "List of public URIs of the STUN/TURN server, one on each line."
-msgstr ""
+msgstr "Liste der öffentlichen URIs des STUN/TURN-Servers, eine in jeder Zeile."
 
 #: plinth/modules/matrixsynapse/forms.py:36
-#, fuzzy
-#| msgid "Authentication Mode"
 msgid "Shared Authentication Secret"
-msgstr "Authentifizierungsmodus"
+msgstr "Gemeinsames Authentifizierungsgeheimnis"
 
 #: plinth/modules/matrixsynapse/forms.py:37
 msgid "Shared secret used to compute passwords for the TURN server."
 msgstr ""
+"Gemeinsames Geheimnis, das zur Berechnung von Passwörtern für den TURN-"
+"Server verwendet wird."
 
 #: plinth/modules/matrixsynapse/manifest.py:12
 msgid "Element"
@@ -5584,7 +5590,7 @@
 
 #: plinth/modules/radicale/manifest.py:28
 msgid "GNOME Calendar"
-msgstr "GNOME Calendar"
+msgstr "GNOME Kalender"
 
 #: plinth/modules/radicale/manifest.py:36
 msgid "Mozilla Thunderbird"
diff -Nru freedombox-21.4/plinth/locale/el/LC_MESSAGES/django.po freedombox-21.4.2/plinth/locale/el/LC_MESSAGES/django.po
--- freedombox-21.4/plinth/locale/el/LC_MESSAGES/django.po	2021-02-28 20:57:00.000000000 -0500
+++ freedombox-21.4.2/plinth/locale/el/LC_MESSAGES/django.po	2021-03-28 09:23:46.000000000 -0400
@@ -7,8 +7,8 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-02-28 20:13-0500\n"
-"PO-Revision-Date: 2021-02-09 23:50+0000\n"
+"POT-Creation-Date: 2021-02-11 17:23-0500\n"
+"PO-Revision-Date: 2021-03-22 18:29+0000\n"
 "Last-Translator: Michalis <michalisntovas@yahoo.gr>\n"
 "Language-Team: Greek <https://hosted.weblate.org/projects/freedombox/";
 "freedombox/el/>\n"
@@ -17,7 +17,7 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.5-dev\n"
+"X-Generator: Weblate 4.5.2-dev\n"
 
 #: doc/dev/_templates/layout.html:11
 msgid "Page source"
@@ -278,7 +278,7 @@
 
 #: plinth/modules/backups/forms.py:137
 msgid "Upload File"
-msgstr "Ανέβασμα αρχείου"
+msgstr "Αποστολή αρχείου"
 
 #: plinth/modules/backups/forms.py:139
 msgid "Backup files have to be in .tar.gz format"
@@ -625,7 +625,7 @@
 
 #: plinth/modules/backups/templates/backups_upload.html:41
 msgid "Upload file"
-msgstr "Ανέβασμα αρχείου"
+msgstr "Αποστολή αρχείου"
 
 #: plinth/modules/backups/templates/verify_ssh_hostkey.html:18
 #, python-format
@@ -1401,7 +1401,7 @@
 
 #: plinth/modules/coturn/__init__.py:57
 msgid "Coturn"
-msgstr ""
+msgstr "Coturn"
 
 #: plinth/modules/coturn/__init__.py:58
 msgid "VoIP Helper"
@@ -2181,7 +2181,7 @@
 #: plinth/modules/networks/templates/networks_configuration.html:22
 #: plinth/modules/storage/templates/storage.html:93
 msgid "Advanced"
-msgstr ""
+msgstr "Για προχωρημένους"
 
 #: plinth/modules/firewall/templates/firewall.html:104
 msgid ""
@@ -3846,7 +3846,7 @@
 
 #: plinth/modules/mumble/manifest.py:43
 msgid "Mumla"
-msgstr ""
+msgstr "Mumla"
 
 #: plinth/modules/mumble/views.py:39
 msgid "SuperUser password successfully updated."
@@ -4574,7 +4574,7 @@
 #: plinth/modules/upgrades/templates/update-firstboot-progress.html:38
 #: plinth/modules/upgrades/templates/update-firstboot.html:33
 msgid "Next"
-msgstr ""
+msgstr "Επόμενο"
 
 #: plinth/modules/networks/templates/internet_connectivity_main.html:9
 #, fuzzy
@@ -4917,7 +4917,7 @@
 #: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49
 #: plinth/modules/wireguard/manifest.py:14
 msgid "WireGuard"
-msgstr ""
+msgstr "WireGuard"
 
 #: plinth/modules/networks/views.py:110
 #, fuzzy
@@ -6208,7 +6208,7 @@
 
 #: plinth/modules/sharing/__init__.py:39
 msgid "Sharing"
-msgstr "Sharing"
+msgstr "Κοινή χρήση"
 
 #: plinth/modules/sharing/forms.py:18
 msgid "Name of the share"
@@ -6610,7 +6610,7 @@
 
 #: plinth/modules/ssh/templates/ssh.html:25
 msgid "Fingerprint"
-msgstr "Αποτύπωμα"
+msgstr "Ψηφιακό αποτύπωμα"
 
 #: plinth/modules/ssh/views.py:48
 msgid "SSH authentication with password disabled."
@@ -7406,7 +7406,7 @@
 #: plinth/modules/upgrades/templates/upgrades-new-release.html:22
 #: plinth/templates/notifications.html:44
 msgid "Dismiss"
-msgstr ""
+msgstr "Κλείσιμο"
 
 #: plinth/modules/upgrades/templates/upgrades_configure.html:30
 #: plinth/modules/upgrades/templates/upgrades_configure.html:100
diff -Nru freedombox-21.4/plinth/locale/es/LC_MESSAGES/django.po freedombox-21.4.2/plinth/locale/es/LC_MESSAGES/django.po
--- freedombox-21.4/plinth/locale/es/LC_MESSAGES/django.po	2021-02-28 20:57:00.000000000 -0500
+++ freedombox-21.4.2/plinth/locale/es/LC_MESSAGES/django.po	2021-03-28 09:23:46.000000000 -0400
@@ -8,7 +8,7 @@
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2021-02-28 20:13-0500\n"
-"PO-Revision-Date: 2021-02-11 18:50+0000\n"
+"PO-Revision-Date: 2021-03-12 13:03+0000\n"
 "Last-Translator: Fioddor Superconcentrado <fioddor@gmail.com>\n"
 "Language-Team: Spanish <https://hosted.weblate.org/projects/freedombox/";
 "freedombox/es/>\n"
@@ -17,7 +17,7 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.5-dev\n"
+"X-Generator: Weblate 4.5.2-dev\n"
 
 #: doc/dev/_templates/layout.html:11
 msgid "Page source"
@@ -3067,6 +3067,9 @@
 "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
 "<a href={coturn_url}>Coturn</a> app or configure an external server."
 msgstr ""
+"Matrix Synapse necesita un servidor STUN/TURN para llamadas de audio/video. "
+"Instalar la app <a href=\"{coturn_url}\">Coturn</a> o configurar un servidor "
+"externo."
 
 #: plinth/modules/matrixsynapse/__init__.py:76
 msgid "Matrix Synapse"
@@ -3088,7 +3091,7 @@
 
 #: plinth/modules/matrixsynapse/forms.py:21
 msgid "Automatically manage audio/video call setup"
-msgstr ""
+msgstr "Administrar la configuración de llamada de audio/video automáticamente"
 
 #: plinth/modules/matrixsynapse/forms.py:23
 #, python-brace-format
@@ -3097,24 +3100,25 @@
 "server for Matrix Synapse. Disable this if you want to use a different STUN/"
 "TURN server."
 msgstr ""
+"Configura la app local <a href=\"{coturn_url}\">coturn</a> como servidor "
+"STUN/TURN para Matrix Synapse. Deshabilita esto si quieres usar un servidor "
+"STUN/TURN diferente."
 
 #: plinth/modules/matrixsynapse/forms.py:30
 msgid "STUN/TURN Server URIs"
-msgstr ""
+msgstr "URIs de servidor STUN/TURN"
 
 #: plinth/modules/matrixsynapse/forms.py:32
 msgid "List of public URIs of the STUN/TURN server, one on each line."
-msgstr ""
+msgstr "Lista de URIs públicas de servidor STUN/TURN, una en cada línea."
 
 #: plinth/modules/matrixsynapse/forms.py:36
-#, fuzzy
-#| msgid "Authentication Mode"
 msgid "Shared Authentication Secret"
-msgstr "Modo de autenticación"
+msgstr "Secreto compartido de autenticación"
 
 #: plinth/modules/matrixsynapse/forms.py:37
 msgid "Shared secret used to compute passwords for the TURN server."
-msgstr ""
+msgstr "Secreto compartido para resolver contraseñas para el servidor TURN."
 
 #: plinth/modules/matrixsynapse/manifest.py:12
 msgid "Element"
@@ -6087,10 +6091,8 @@
 msgstr "Dar acceso a los archivos de esta carpeta a quien tenga el enlace."
 
 #: plinth/modules/sharing/forms.py:34
-#, fuzzy
-#| msgid "User groups that can read the files in the share"
 msgid "User groups that can read the files in the share:"
-msgstr "Grupos de usuarias/os que pueden leer los archivos compartidos"
+msgstr "Grupos de usuarias/os que pueden leer los archivos compartidos:"
 
 #: plinth/modules/sharing/forms.py:36
 msgid ""
@@ -6230,7 +6232,7 @@
 
 #: plinth/modules/snapshot/forms.py:32
 msgid "Hourly Snapshots Limit"
-msgstr "Límite de instantáneas por hora"
+msgstr "Límite de instantáneas horarias"
 
 #: plinth/modules/snapshot/forms.py:33
 msgid "Keep a maximum of this many hourly snapshots."
@@ -6238,7 +6240,7 @@
 
 #: plinth/modules/snapshot/forms.py:36
 msgid "Daily Snapshots Limit"
-msgstr "Límite diario de instantáneas"
+msgstr "Límite de instantáneas diarias"
 
 #: plinth/modules/snapshot/forms.py:37
 msgid "Keep a maximum of this many daily snapshots."
@@ -6246,7 +6248,7 @@
 
 #: plinth/modules/snapshot/forms.py:40
 msgid "Weekly Snapshots Limit"
-msgstr "Límite semanal de instantáneas"
+msgstr "Límite de instantáneas semanales"
 
 #: plinth/modules/snapshot/forms.py:41
 msgid "Keep a maximum of this many weekly snapshots."
@@ -6254,7 +6256,7 @@
 
 #: plinth/modules/snapshot/forms.py:44
 msgid "Monthly Snapshots Limit"
-msgstr "Límite mensual de instantáneas"
+msgstr "Límite de instantáneas mensuales"
 
 #: plinth/modules/snapshot/forms.py:45
 msgid "Keep a maximum of this many monthly snapshots."
@@ -6262,7 +6264,7 @@
 
 #: plinth/modules/snapshot/forms.py:48
 msgid "Yearly Snapshots Limit"
-msgstr "Límite anual de instantáneas"
+msgstr "Límite de instantáneas anuales"
 
 #: plinth/modules/snapshot/forms.py:49
 msgid ""
@@ -7113,21 +7115,15 @@
 msgstr "No se pudo iniciar la actualización de la distribución"
 
 #: plinth/modules/upgrades/__init__.py:212
-#, fuzzy
-#| msgid ""
-#| "There is not enough free space in the root partition to start the "
-#| "distribution update. Please ensure at least 5 GB, and at least 10% of the "
-#| "total space, is free. Distribution update will be retried after 24 hours, "
-#| "if enabled."
 msgid ""
 "There is not enough free space in the root partition to start the "
 "distribution update. Please ensure at least 5 GB is free. Distribution "
 "update will be retried after 24 hours, if enabled."
 msgstr ""
 "No hay suficiente espacio libre en la partición raíz para iniciar la "
-"actualización de la distrbución. Por favor, asegure que al menos 5 GB y un "
-"10% del espacio libre total están libres. Si está habilitada, la "
-"actualización de la distribución se reintentará tras 24h ."
+"actualización de la distribución. Por favor, asegure que hay al menos 5 GB "
+"libres. Si está habilitada, la actualización de la distribución se "
+"reintentará tras 24h ."
 
 #: plinth/modules/upgrades/__init__.py:223
 msgid "Distribution update started"
@@ -7954,6 +7950,15 @@
 "location using search, map and calendar views. Individual photos can be "
 "shared with others by sending a direct link."
 msgstr ""
+"Zoph administra tu colección de fotografías. Las fotos se almacenan en tu "
+"{box_name}, bajo tu control. En vez de centrarse en galerías para exposición "
+"pública Zoph se centra en administrarlas para tu propio uso, organizándolas "
+"por quién las tomó, dónde se tomaron y quién aparece en ellas. Las fotos se "
+"pueden enlazar a múltiples álbumes y categorías jerárquicos. Es fácil "
+"encontrar fotos en las que aparezca determinada persona , o tomadas un día "
+"determinado, o en determinada ubicación empleando la búsqueda y las vistas "
+"de mapa y calendario. Se pueden compartir fotos sueltas con otras personas "
+"enviándoles un enlace directo."
 
 #: plinth/modules/zoph/__init__.py:44
 #, python-brace-format
@@ -7962,38 +7967,41 @@
 "Zoph. For additional users, accounts must be created both in {box_name} and "
 "in Zoph with the same user name."
 msgstr ""
+"El usuario de {box_name} que instaló Zoph será el administrador en Zoph. "
+"Para añadir más usuarios hay que crear cuentas con el mismo nombre tanto en "
+"Zoph como en {box_name} ."
 
 #: plinth/modules/zoph/__init__.py:62 plinth/modules/zoph/manifest.py:6
 msgid "Zoph"
-msgstr ""
+msgstr "Zoph"
 
 #: plinth/modules/zoph/__init__.py:63
 msgid "Photo Organizer"
-msgstr ""
+msgstr "Organizador de fotografías"
 
 #: plinth/modules/zoph/forms.py:14
 msgid "Enable OpenStreetMap for maps"
-msgstr ""
+msgstr "Habilitar mapas OpenStreetMap"
 
 #: plinth/modules/zoph/forms.py:15
 msgid ""
 "When enabled, requests will be made to OpenStreetMap servers from user's "
 "browser. This impacts privacy."
 msgstr ""
+"Si se habilita se harán peticiones a los servidores OpenStreetMap desde el "
+"navegador del usuario. Esto impacta en la privacidad."
 
 #: plinth/modules/zoph/templates/zoph-pre-setup.html:15
 #: plinth/modules/zoph/templates/zoph-pre-setup.html:28
-#, fuzzy
-#| msgid "Start Setup"
 msgid "Setup"
-msgstr "Iniciar configuración"
+msgstr "Configurar"
 
 #: plinth/modules/zoph/templates/zoph-pre-setup.html:18
 #, python-format
 msgid ""
 "User account <strong>%(username)s</strong> will become the administrator "
 "account for Zoph."
-msgstr ""
+msgstr "El usuario <strong>%(username)s</strong> será el administrador de Zoph."
 
 #: plinth/network.py:29
 msgid "PPPoE"
diff -Nru freedombox-21.4/plinth/locale/id/LC_MESSAGES/django.po freedombox-21.4.2/plinth/locale/id/LC_MESSAGES/django.po
--- freedombox-21.4/plinth/locale/id/LC_MESSAGES/django.po	2021-02-28 20:57:00.000000000 -0500
+++ freedombox-21.4.2/plinth/locale/id/LC_MESSAGES/django.po	2021-03-28 09:23:46.000000000 -0400
@@ -3,20 +3,20 @@
 "Project-Id-Version: Indonesian (FreedomBox)\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2021-02-28 20:13-0500\n"
-"PO-Revision-Date: 2018-11-02 00:44+0000\n"
-"Last-Translator: ButterflyOfFire <ButterflyOfFire@protonmail.com>\n"
+"PO-Revision-Date: 2021-03-24 23:29+0000\n"
+"Last-Translator: Reza Almanda <rezaalmanda27@gmail.com>\n"
 "Language-Team: Indonesian <https://hosted.weblate.org/projects/freedombox/";
-"plinth/id/>\n"
+"freedombox/id/>\n"
 "Language: id\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 3.3-dev\n"
+"X-Generator: Weblate 4.5.2-dev\n"
 
 #: doc/dev/_templates/layout.html:11
 msgid "Page source"
-msgstr ""
+msgstr "Sumber halaman"
 
 #: plinth/context_processors.py:23 plinth/views.py:78
 msgid "FreedomBox"
@@ -25,7 +25,7 @@
 #: plinth/daemon.py:103
 #, python-brace-format
 msgid "Service {service_name} is running"
-msgstr ""
+msgstr "Layanan {service_name} sedang berjalan"
 
 #: plinth/daemon.py:130
 #, python-brace-format
@@ -532,10 +532,8 @@
 msgstr ""
 
 #: plinth/modules/backups/templates/backups_repository.html:83
-#, fuzzy
-#| msgid "{box_name} Manual"
 msgid "Download"
-msgstr "Panduan {box_name}"
+msgstr "Unduh"
 
 #: plinth/modules/backups/templates/backups_repository.html:87
 #: plinth/modules/backups/templates/backups_restore.html:27
diff -Nru freedombox-21.4/plinth/locale/nl/LC_MESSAGES/django.po freedombox-21.4.2/plinth/locale/nl/LC_MESSAGES/django.po
--- freedombox-21.4/plinth/locale/nl/LC_MESSAGES/django.po	2021-02-28 20:57:00.000000000 -0500
+++ freedombox-21.4.2/plinth/locale/nl/LC_MESSAGES/django.po	2021-03-28 09:23:46.000000000 -0400
@@ -8,7 +8,7 @@
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2021-02-28 20:13-0500\n"
-"PO-Revision-Date: 2021-02-14 10:50+0000\n"
+"PO-Revision-Date: 2021-03-05 18:50+0000\n"
 "Last-Translator: ikmaak <info@ikmaak.nl>\n"
 "Language-Team: Dutch <https://hosted.weblate.org/projects/freedombox/";
 "freedombox/nl/>\n"
@@ -17,7 +17,7 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.5-dev\n"
+"X-Generator: Weblate 4.5.1-dev\n"
 "X-Language: nl_NL\n"
 "X-Source-Language: C\n"
 
@@ -3078,6 +3078,9 @@
 "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
 "<a href={coturn_url}>Coturn</a> app or configure an external server."
 msgstr ""
+"Matrix Synapse heeft een STUN/TURN-server nodig voor audio- en "
+"videogesprekken. Installeer de <a href=\"{coturn_url}\">Coturn</a> "
+"toepassing of configureer een externe server."
 
 #: plinth/modules/matrixsynapse/__init__.py:76
 msgid "Matrix Synapse"
@@ -3099,7 +3102,7 @@
 
 #: plinth/modules/matrixsynapse/forms.py:21
 msgid "Automatically manage audio/video call setup"
-msgstr ""
+msgstr "Automatisch beheer van audio/video-oproepinstellingen"
 
 #: plinth/modules/matrixsynapse/forms.py:23
 #, python-brace-format
@@ -3108,24 +3111,27 @@
 "server for Matrix Synapse. Disable this if you want to use a different STUN/"
 "TURN server."
 msgstr ""
+"Hiermee wordt de lokale <a href=\"{coturn_url}\">coturn</a> toepassing "
+"geconfigureerd als de STUN/TURN-server voor Matrix Synapse. Schakel dit uit "
+"als een andere STUN/TURN-server gebruikt moet worden."
 
 #: plinth/modules/matrixsynapse/forms.py:30
 msgid "STUN/TURN Server URIs"
-msgstr ""
+msgstr "STUN/TURN-server URI's"
 
 #: plinth/modules/matrixsynapse/forms.py:32
 msgid "List of public URIs of the STUN/TURN server, one on each line."
-msgstr ""
+msgstr "Lijst van publieke URI's van de STUN/TURN-server, één per regel."
 
 #: plinth/modules/matrixsynapse/forms.py:36
-#, fuzzy
-#| msgid "Authentication Mode"
 msgid "Shared Authentication Secret"
-msgstr "Authentificatiemodus"
+msgstr "Gedeeld Authenticatiegeheim"
 
 #: plinth/modules/matrixsynapse/forms.py:37
 msgid "Shared secret used to compute passwords for the TURN server."
 msgstr ""
+"Gedeeld geheim dat wordt gebruikt om wachtwoorden voor de TURN-server te "
+"berekenen."
 
 #: plinth/modules/matrixsynapse/manifest.py:12
 msgid "Element"
diff -Nru freedombox-21.4/plinth/locale/pl/LC_MESSAGES/django.po freedombox-21.4.2/plinth/locale/pl/LC_MESSAGES/django.po
--- freedombox-21.4/plinth/locale/pl/LC_MESSAGES/django.po	2021-02-28 20:57:00.000000000 -0500
+++ freedombox-21.4.2/plinth/locale/pl/LC_MESSAGES/django.po	2021-03-28 09:23:46.000000000 -0400
@@ -7,9 +7,9 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-02-28 20:13-0500\n"
-"PO-Revision-Date: 2021-02-01 18:42+0000\n"
-"Last-Translator: Stanisław Stefan Krukowski <pet209a1@riseup.net>\n"
+"POT-Creation-Date: 2021-02-11 17:23-0500\n"
+"PO-Revision-Date: 2021-03-03 16:50+0000\n"
+"Last-Translator: Karol Werner <karol@ppkt.eu>\n"
 "Language-Team: Polish <https://hosted.weblate.org/projects/freedombox/";
 "freedombox/pl/>\n"
 "Language: pl\n"
@@ -18,7 +18,7 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
 "|| n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 4.5-dev\n"
+"X-Generator: Weblate 4.5.1-dev\n"
 
 #: doc/dev/_templates/layout.html:11
 msgid "Page source"
@@ -2637,7 +2637,7 @@
 #: plinth/modules/i2p/templates/i2p.html:21
 #: plinth/modules/i2p/templates/i2p.html:34 plinth/templates/clients.html:28
 msgid "Launch"
-msgstr ""
+msgstr "Uruchom"
 
 #: plinth/modules/i2p/templates/i2p.html:25
 msgid "Anonymous Torrents"
@@ -7720,7 +7720,7 @@
 
 #: plinth/templates/index.html:143 plinth/templates/toolbar.html:19
 msgid "Donate"
-msgstr ""
+msgstr "Przekaż darowiznę"
 
 #: plinth/templates/index.html:147
 msgid "FreedomBox Foundation"
diff -Nru freedombox-21.4/plinth/locale/sv/LC_MESSAGES/django.po freedombox-21.4.2/plinth/locale/sv/LC_MESSAGES/django.po
--- freedombox-21.4/plinth/locale/sv/LC_MESSAGES/django.po	2021-02-28 20:57:00.000000000 -0500
+++ freedombox-21.4.2/plinth/locale/sv/LC_MESSAGES/django.po	2021-03-28 09:23:46.000000000 -0400
@@ -8,7 +8,7 @@
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2021-02-28 20:13-0500\n"
-"PO-Revision-Date: 2021-02-16 04:50+0000\n"
+"PO-Revision-Date: 2021-03-08 13:16+0000\n"
 "Last-Translator: Michael Breidenbach <leahc@tutanota.com>\n"
 "Language-Team: Swedish <https://hosted.weblate.org/projects/freedombox/";
 "freedombox/sv/>\n"
@@ -17,7 +17,7 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.5-dev\n"
+"X-Generator: Weblate 4.5.1\n"
 
 #: doc/dev/_templates/layout.html:11
 msgid "Page source"
@@ -3054,6 +3054,8 @@
 "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
 "<a href={coturn_url}>Coturn</a> app or configure an external server."
 msgstr ""
+"Matrix Synapse behöver en STUN/TURN-server för ljud-/videosamtal. Installera "
+"<a href=\"{coturn_url}\">Coturn</a>-appen eller konfigurera en extern server."
 
 #: plinth/modules/matrixsynapse/__init__.py:76
 msgid "Matrix Synapse"
@@ -3075,7 +3077,7 @@
 
 #: plinth/modules/matrixsynapse/forms.py:21
 msgid "Automatically manage audio/video call setup"
-msgstr ""
+msgstr "Hantera konfiguration av ljud-/videosamtal automatiskt"
 
 #: plinth/modules/matrixsynapse/forms.py:23
 #, python-brace-format
@@ -3084,20 +3086,21 @@
 "server for Matrix Synapse. Disable this if you want to use a different STUN/"
 "TURN server."
 msgstr ""
+"Konfigurerar den lokala <a href=\"{coturn_url}\">coturn</a>-appen som STUN/"
+"TURN-servern för Matrix Synapse. Inaktivera detta om du vill använda en "
+"annan STUN/TURN-server."
 
 #: plinth/modules/matrixsynapse/forms.py:30
 msgid "STUN/TURN Server URIs"
-msgstr ""
+msgstr "URL:er för STUN/TURN-servrar"
 
 #: plinth/modules/matrixsynapse/forms.py:32
 msgid "List of public URIs of the STUN/TURN server, one on each line."
-msgstr ""
+msgstr "Lista över offentliga URI: er för STUN / TURN-servrar, en på varje rad."
 
 #: plinth/modules/matrixsynapse/forms.py:36
-#, fuzzy
-#| msgid "Authentication Mode"
 msgid "Shared Authentication Secret"
-msgstr "Autentiseringsläge"
+msgstr "Delad autentiseringshemlighet"
 
 #: plinth/modules/matrixsynapse/forms.py:37
 msgid "Shared secret used to compute passwords for the TURN server."
diff -Nru freedombox-21.4/plinth/locale/tr/LC_MESSAGES/django.po freedombox-21.4.2/plinth/locale/tr/LC_MESSAGES/django.po
--- freedombox-21.4/plinth/locale/tr/LC_MESSAGES/django.po	2021-02-28 20:57:00.000000000 -0500
+++ freedombox-21.4.2/plinth/locale/tr/LC_MESSAGES/django.po	2021-03-28 09:23:46.000000000 -0400
@@ -7,7 +7,7 @@
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2021-02-28 20:13-0500\n"
-"PO-Revision-Date: 2021-02-14 10:50+0000\n"
+"PO-Revision-Date: 2021-03-28 13:10+0000\n"
 "Last-Translator: Burak Yavuz <hitowerdigit@hotmail.com>\n"
 "Language-Team: Turkish <https://hosted.weblate.org/projects/freedombox/";
 "freedombox/tr/>\n"
@@ -16,7 +16,7 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 4.5-dev\n"
+"X-Generator: Weblate 4.6-dev\n"
 
 #: doc/dev/_templates/layout.html:11
 msgid "Page source"
@@ -2561,9 +2561,9 @@
 "channel using the IRC web interface."
 msgstr ""
 "Birçok %(box_name)s katılımcısı ve kullanıcısı da irc.oftc.net IRC ağında "
-"olabilir.  IRC web arayüzünü kullanarak <a href=\"https://webchat.oftc.net/?";
-"randomnick=1&channels=freedombox&prompt=1\">#freedombox</a> kanalına katılın "
-"ve yardım isteyin."
+"olabilir. IRC web arayüzünü kullanarak <a href=\"https://webchat.oftc.net/";
+"?randomnick=1&amp;channels=freedombox&amp;prompt=1\">#freedombox</a> "
+"kanalına katılın ve yardım isteyin."
 
 #: plinth/modules/help/templates/help_manual.html:18
 msgid "Download as PDF"
@@ -3058,6 +3058,9 @@
 "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the "
 "<a href={coturn_url}>Coturn</a> app or configure an external server."
 msgstr ""
+"Matrix Synapse, sesli/görüntülü aramalar için bir STUN/TURN sunucusuna "
+"ihtiyaç duyar. <a href={coturn_url}>Coturn</a> uygulamasını yükleyin veya "
+"harici bir sunucu yapılandırın."
 
 #: plinth/modules/matrixsynapse/__init__.py:76
 msgid "Matrix Synapse"
@@ -3079,7 +3082,7 @@
 
 #: plinth/modules/matrixsynapse/forms.py:21
 msgid "Automatically manage audio/video call setup"
-msgstr ""
+msgstr "Sesli/görüntülü arama kurulumunu otomatik olarak yönetin"
 
 #: plinth/modules/matrixsynapse/forms.py:23
 #, python-brace-format
@@ -3088,24 +3091,29 @@
 "server for Matrix Synapse. Disable this if you want to use a different STUN/"
 "TURN server."
 msgstr ""
+"Yerel <a href={coturn_url}>coturn</a> uygulamasını, Matrix Synapse için STUN/"
+"TURN sunucusu olarak yapılandırır. Farklı bir STUN/TURN sunucusu kullanmak "
+"istiyorsanız bunu etkisizleştirin."
 
 #: plinth/modules/matrixsynapse/forms.py:30
 msgid "STUN/TURN Server URIs"
-msgstr ""
+msgstr "STUN/TURN Sunucu URI'leri"
 
 #: plinth/modules/matrixsynapse/forms.py:32
 msgid "List of public URIs of the STUN/TURN server, one on each line."
 msgstr ""
+"Her satırda bir tane olmak üzere STUN/TURN sunucusunun ortak URI'lerinin "
+"listesi."
 
 #: plinth/modules/matrixsynapse/forms.py:36
-#, fuzzy
-#| msgid "Authentication Mode"
 msgid "Shared Authentication Secret"
-msgstr "Kimlik Doğrulama Kipi"
+msgstr "Paylaşılan Kimlik Doğrulama Gizli Anahtarı"
 
 #: plinth/modules/matrixsynapse/forms.py:37
 msgid "Shared secret used to compute passwords for the TURN server."
 msgstr ""
+"TURN sunucusu için parolaları hesaplamak amacıyla kullanılan paylaşılan "
+"gizli anahtar."
 
 #: plinth/modules/matrixsynapse/manifest.py:12
 msgid "Element"
@@ -5763,8 +5771,8 @@
 "Searx is a privacy-respecting Internet metasearch engine. It aggregrates and "
 "displays results from multiple search engines."
 msgstr ""
-"Searx, gizliliğe saygılı bir İnternet üst arama motorudur. Birden çok arama "
-"motorundan gelen sonuçları toplar ve görüntüler."
+"Searx, gizliliğe saygılı bir İnternet üstbilgi arama motorudur. Birden çok "
+"arama motorundan gelen sonuçları toplar ve görüntüler."
 
 #: plinth/modules/searx/__init__.py:27
 msgid ""
@@ -6021,7 +6029,7 @@
 
 #: plinth/modules/shadowsocks/__init__.py:53
 msgid "Socks5 Proxy"
-msgstr "Socks5 Vekil Sunucu"
+msgstr "Socks5 Vekil Sunucusu"
 
 #: plinth/modules/shadowsocks/forms.py:12
 #: plinth/modules/shadowsocks/forms.py:13
@@ -6834,7 +6842,7 @@
 
 #: plinth/modules/tor/__init__.py:71
 msgid "Tor Socks Proxy"
-msgstr "Tor Socks Vekil Sunucu"
+msgstr "Tor Socks Vekil Sunucusu"
 
 #: plinth/modules/tor/__init__.py:75
 msgid "Tor Bridge Relay"
@@ -7122,14 +7130,14 @@
 
 #: plinth/modules/upgrades/__init__.py:223
 msgid "Distribution update started"
-msgstr "Dağıtım güncellemesi başladı"
+msgstr "Dağıtım güncellemesi başlatıldı"
 
 #: plinth/modules/upgrades/__init__.py:225
 msgid ""
 "Started update to next stable release. This may take a long time to complete."
 msgstr ""
-"Bir sonraki kararlı sürüme güncelleme başladı. Bunun tamamlanması uzun zaman "
-"alabilir."
+"Bir sonraki kararlı yayıma güncelleme başlatıldı. Bunun tamamlanması uzun "
+"zaman alabilir."
 
 #: plinth/modules/upgrades/forms.py:15
 msgid "Enable auto-update"
diff -Nru freedombox-21.4/plinth/modules/config/tests/test_config.py freedombox-21.4.2/plinth/modules/config/tests/test_config.py
--- freedombox-21.4/plinth/modules/config/tests/test_config.py	2021-02-28 20:57:00.000000000 -0500
+++ freedombox-21.4.2/plinth/modules/config/tests/test_config.py	2021-03-28 09:23:46.000000000 -0400
@@ -3,15 +3,15 @@
 Tests for config module.
 """
 
-import pytest
 import os
+from unittest.mock import MagicMock, patch
 
-from unittest.mock import (patch, MagicMock)
+import pytest
 
 from plinth import __main__ as plinth_main
-from plinth.modules.apache import uws_directory_of_user
-from plinth.modules.config import (home_page_url2scid, get_home_page,
-                                   _home_page_scid2url, change_home_page)
+from plinth.modules.apache import uws_directory_of_user, uws_url_of_user
+from plinth.modules.config import (_home_page_scid2url, change_home_page,
+                                   get_home_page, home_page_url2scid)
 from plinth.modules.config.forms import ConfigurationForm
 
 
@@ -71,46 +71,53 @@
 
 def test_homepage_mapping():
     """Basic tests for homepage functions."""
-    f = home_page_url2scid
-    assert f(None) is None
-    assert f('/unknown/url') is None
-    assert 'plinth' == f('/plinth/')
-    assert 'plinth' == f('/plinth')
-    assert 'plinth' == f('plinth')
-    assert 'apache-default' == f('/index.html')
-    assert 'uws-user' == f('/~user')
-    assert 'uws-user' == f('/~user/whatever/else')
-    # assert 'config' == f('/plinth/apps/sharing/')
-
-    f = _home_page_scid2url
-    assert f(None) is None
-    assert '/plinth/' == f('plinth')
-    assert '/index.html' == f('apache-default')
+    func = home_page_url2scid
+    assert func(None) is None
+    assert func('/unknown/url') is None
+    assert func('/plinth/') == 'plinth'
+    assert func('/plinth') == 'plinth'
+    assert func('plinth') == 'plinth'
+    assert func('/index.html') == 'apache-default'
+    assert func('/~user') == 'uws-user'
+    assert func('/~user/whatever/else') == 'uws-user'
+
+    func = _home_page_scid2url
+    assert func(None) is None
+    assert func('plinth') == '/plinth/'
+    assert func('apache-default') == '/index.html'
 
 
 def test_homepage_mapping_skip_ci():
     """Special tests for homepage functions."""
-
     try:
-        UWS_DIRECTORY = uws_directory_of_user(os.getlogin())
+        user = os.getlogin()
     except OSError:
+        # See msg383161 in https://bugs.python.org/issue40821
         reason = "Needs access to ~/ directory. " \
                + "CI sandboxed workspace doesn't provide it."
         pytest.skip(reason)
-
-    if os.path.exists(UWS_DIRECTORY):
-        reason = "UWS dir {} exists already.".format(UWS_DIRECTORY)
+    uws_directory = uws_directory_of_user(user)
+    uws_url = uws_url_of_user(user)
+    uws_scid = home_page_url2scid(uws_url)
+
+    # Check test's precondition:
+    if os.path.exists(uws_directory):
+        # Don't blindly remove a pre-existing directory. Just skip the test.
+        reason = "UWS directory {} exists already.".format(uws_directory)
         pytest.skip(reason)
 
-    f = _home_page_scid2url
+    # AC: Return scid if UWS directory exists:
     try:
-        os.mkdir(UWS_DIRECTORY)
-    except FileNotFoundError:
-        pytest.skip('Home folder cannot be accessed on buildd.')
-
-    assert '/~fbx/' == f('uws-fbx')
-    os.rmdir(UWS_DIRECTORY)
-    assert f('uws-fbx') is None
+        os.mkdir(uws_directory)
+    except Exception:
+        reason = "Needs access to ~/ directory. " \
+               + "CI sandboxed workspace doesn't provide it."
+        pytest.skip(reason)
+    assert _home_page_scid2url(uws_scid) == uws_url
+
+    # AC: Return None if it doesn't:
+    os.rmdir(uws_directory)
+    assert _home_page_scid2url(uws_scid) is None
 
 
 class Dict2Obj(object):
@@ -147,39 +154,50 @@
     Note: If run on a pristine unconfigured FreedomBox, this test will leave
           the homepage default-configured. (Imperfect cleanup in such case).
 
-    Pending: Specific test cases to distiguish 4.1,2,3.
-             Currently they share the same test case.
+    Note: We take fbx as website user because of our testing container.
+
+    Pending: - Specific test cases to distinguish 4.1,2,3.
+               Currently they share the same test case.
+             - Search for another valid user apart from fbx.
     """
-    try:
-        UWS_DIRECTORY = uws_directory_of_user(os.getlogin())
-    except OSError:
-        reason = "Needs access to ~/ directory, etc. " \
-               + "CI sandboxed workspace doesn't provide it."
+    user = 'fbx'
+    uws_directory = uws_directory_of_user(user)
+    uws_url = uws_url_of_user(user)
+    uws_scid = home_page_url2scid(uws_url)
+
+    default_home_page = 'plinth'
+    original_home_page = get_home_page() or default_home_page
+
+    # Check test's preconditions:
+    if original_home_page not in (default_home_page, None):
+        reason = "Unexpected home page {}.".format(original_home_page)
         pytest.skip(reason)
 
-    DEFAULT_HOME_PAGE = 'plinth'
-    ORIGINAL_HOME_PAGE = get_home_page() or DEFAULT_HOME_PAGE
-
-    if ORIGINAL_HOME_PAGE not in (DEFAULT_HOME_PAGE, None):
-        reason = "Unexpected home page {}.".format(ORIGINAL_HOME_PAGE)
+    if os.path.exists(uws_directory):
+        # Don't blindly remove a pre-existing directory. Just skip the test.
+        reason = "UWS directory {} exists already.".format(uws_directory)
         pytest.skip(reason)
 
-    # invalid changes fall back to default:
-    for scid in ('uws-unexisting', 'uws-fbx', 'missing_app'):
+    # AC: invalid changes fall back to default:
+    for scid in ('uws-unexisting', uws_scid, 'missing_app'):
         change_home_page(scid)
-        assert get_home_page() == DEFAULT_HOME_PAGE
-
-    os.mkdir(UWS_DIRECTORY)
+        assert get_home_page() == default_home_page
 
-    # valid changes actually happen:
-    for scid in ('b', 'a', 'uws-fbx', 'apache-default', 'plinth'):
+    # AC: valid changes actually happen:
+    try:
+        os.mkdir(uws_directory)
+    except Exception:
+        reason = "Needs access to ~/ directory. " \
+               + "CI sandboxed workspace doesn't provide it."
+        pytest.skip(reason)
+    for scid in ('b', 'a', uws_scid, 'apache-default', 'plinth'):
         change_home_page(scid)
         assert get_home_page() == scid
 
     # cleanup:
-    change_home_page(ORIGINAL_HOME_PAGE)
-    os.rmdir(UWS_DIRECTORY)
-    assert get_home_page() == ORIGINAL_HOME_PAGE
+    change_home_page(original_home_page)
+    os.rmdir(uws_directory)
+    assert get_home_page() == original_home_page
 
 
 def test_locale_path():
diff -Nru freedombox-21.4/plinth/modules/deluge/data/lib/systemd/system/deluged.service.d/freedombox.conf freedombox-21.4.2/plinth/modules/deluge/data/lib/systemd/system/deluged.service.d/freedombox.conf
--- freedombox-21.4/plinth/modules/deluge/data/lib/systemd/system/deluged.service.d/freedombox.conf	1969-12-31 19:00:00.000000000 -0500
+++ freedombox-21.4.2/plinth/modules/deluge/data/lib/systemd/system/deluged.service.d/freedombox.conf	2021-03-28 09:23:46.000000000 -0400
@@ -0,0 +1,3 @@
+# The service depends on users and groups defined in LDAP
+[Unit]
+After=nslcd.service
diff -Nru freedombox-21.4/plinth/modules/deluge/__init__.py freedombox-21.4.2/plinth/modules/deluge/__init__.py
--- freedombox-21.4/plinth/modules/deluge/__init__.py	2021-02-28 20:57:00.000000000 -0500
+++ freedombox-21.4.2/plinth/modules/deluge/__init__.py	2021-03-28 09:23:46.000000000 -0400
@@ -98,6 +98,6 @@
 def setup(helper, old_version=None):
     """Install and configure the module."""
     helper.install(managed_packages)
-    helper.call('post', actions.superuser_run, 'deluge', ['setup'])
     add_user_to_share_group(SYSTEM_USER)
+    helper.call('post', actions.superuser_run, 'deluge', ['setup'])
     helper.call('post', app.enable)
diff -Nru freedombox-21.4/plinth/modules/first_boot/middleware.py freedombox-21.4.2/plinth/modules/first_boot/middleware.py
--- freedombox-21.4/plinth/modules/first_boot/middleware.py	2021-02-28 20:57:00.000000000 -0500
+++ freedombox-21.4.2/plinth/modules/first_boot/middleware.py	2021-03-28 09:23:46.000000000 -0400
@@ -12,6 +12,7 @@
 from django.utils.deprecation import MiddlewareMixin
 
 from plinth.modules import first_boot
+from plinth.utils import is_user_admin
 
 LOGGER = logging.getLogger(__name__)
 
@@ -35,6 +36,15 @@
         firstboot_completed = first_boot.is_completed()
         user_requests_firstboot = first_boot.is_firstboot_url(request.path)
 
+        # If user requests a step other than the welcome step, verify that they
+        # indeed completed the secret verification by looking at the session.
+        if (user_requests_firstboot and
+                not request.path.startswith(reverse('first_boot:welcome')) and
+                first_boot.firstboot_wizard_secret_exists() and
+                not request.session.get('firstboot_secret_provided', False) and
+                not is_user_admin(request)):
+            return HttpResponseRedirect(reverse('first_boot:welcome'))
+
         # Redirect to first boot if requesting normal page and first
         # boot is not complete.
         if not firstboot_completed and not user_requests_firstboot:
diff -Nru freedombox-21.4/plinth/modules/first_boot/views.py freedombox-21.4.2/plinth/modules/first_boot/views.py
--- freedombox-21.4/plinth/modules/first_boot/views.py	2021-02-28 20:57:00.000000000 -0500
+++ freedombox-21.4.2/plinth/modules/first_boot/views.py	2021-03-28 09:23:46.000000000 -0400
@@ -18,6 +18,7 @@
 
     def form_valid(self, form):
         """If form is valid, mark this step as done and move to next step."""
+        self.request.session['firstboot_secret_provided'] = True
         first_boot.mark_step_done('firstboot_welcome')
         return http.HttpResponseRedirect(reverse(first_boot.next_step()))
 
diff -Nru freedombox-21.4/plinth/modules/mldonkey/data/lib/systemd/system/mldonkey-server.service.d/freedombox.conf freedombox-21.4.2/plinth/modules/mldonkey/data/lib/systemd/system/mldonkey-server.service.d/freedombox.conf
--- freedombox-21.4/plinth/modules/mldonkey/data/lib/systemd/system/mldonkey-server.service.d/freedombox.conf	2021-02-28 20:57:00.000000000 -0500
+++ freedombox-21.4.2/plinth/modules/mldonkey/data/lib/systemd/system/mldonkey-server.service.d/freedombox.conf	2021-03-28 09:23:46.000000000 -0400
@@ -1,6 +1,6 @@
 [Unit]
 Description=MLDonkey: Multi-protocol, peer-to-peer file sharing server
-After=syslog.target network.target
+After=syslog.target network.target nslcd.service
 ConditionPathExists=/var/lib/mldonkey/downloads.ini
 Documentation=man:mlnet(1) http://mldonkey.sourceforge.net/Main_Page
 
diff -Nru freedombox-21.4/plinth/modules/syncthing/data/lib/systemd/system/syncthing@syncthing.service.d/freedombox.conf freedombox-21.4.2/plinth/modules/syncthing/data/lib/systemd/system/syncthing@syncthing.service.d/freedombox.conf
--- freedombox-21.4/plinth/modules/syncthing/data/lib/systemd/system/syncthing@syncthing.service.d/freedombox.conf	1969-12-31 19:00:00.000000000 -0500
+++ freedombox-21.4.2/plinth/modules/syncthing/data/lib/systemd/system/syncthing@syncthing.service.d/freedombox.conf	2021-03-28 09:23:46.000000000 -0400
@@ -0,0 +1,3 @@
+# The service depends on users and groups defined in LDAP
+[Unit]
+After=nslcd.service
diff -Nru freedombox-21.4/plinth/modules/transmission/data/lib/systemd/system/transmission-daemon.service.d/freedombox.conf freedombox-21.4.2/plinth/modules/transmission/data/lib/systemd/system/transmission-daemon.service.d/freedombox.conf
--- freedombox-21.4/plinth/modules/transmission/data/lib/systemd/system/transmission-daemon.service.d/freedombox.conf	1969-12-31 19:00:00.000000000 -0500
+++ freedombox-21.4.2/plinth/modules/transmission/data/lib/systemd/system/transmission-daemon.service.d/freedombox.conf	2021-03-28 09:23:46.000000000 -0400
@@ -0,0 +1,3 @@
+# The service depends on users and groups defined in LDAP
+[Unit]
+After=nslcd.service

--- End Message ---
--- Begin Message ---
Hi James,

On 30-03-2021 23:48, James Valleroy wrote:
> Please unblock package freedombox.

Technically it didn't need an unblock. I have aged it, should migrate on
the next real run of britney.

Paul

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


--- End Message ---

Reply to: