Release v20.10 to unstable

-----BEGIN PGP SIGNATURE-----
 
 iQJKBAABCgA0FiEEfWrbdQ+RCFWJSEvmd8DHXntlCAgFAl7Vmh0WHGp2YWxsZXJv
 eUBtYWlsYm94Lm9yZwAKCRB3wMdee2UICFKLD/9IKRjwsctivEJsLVy6NsWOM7H8
 DPJ1rgAckxgiMCE4x2GbAcysLN1u0ciLV/HoqBYkJ8KLNZrX3MO0Fq8/q2hnDiEB
 8KW7JyI+IxxjHErHvJFLgRnLKeuA6lB1cQVZN01qW4bOjSDzAiugAcwLcNWLgppP
 EdKSIh/qXlFZaqnOjXmE9RLruZ9S1qyMKJdsfi0j2RdD/1bMzEf1bwYUOSDJbNNn
 EdO6M3qmkncx4fJmogcMuLqh3HBoUzDTt6ohFbwAA5jjCPcZQCLgCL3GxN7oZ+AK
 LHPrlAT7v5ZIW5fVvXfegV6anEAo60CZMqceK+XvOtFRi9Jd/W59qLCANYX/kr10
 UtrGp0ZN9amgowcvAX/yuBsz45JPBt4HBO+vW9nsu6nvi02U7qcGhwkOUJaTJ9QU
 AP1DA/jVv974mxMLd9ofsBBtsP/cy11Sc8tZvfQjEomV4kO4Y5WCrOdBCM1OMugT
 wvauI27+0PByCpHNdG/kSgAMrh7iTEBfXvPgsAAc4R4EEkzpJL/NpMT5FlWqru8P
 xgLLATp7LNRH7ePuT/Itpsqi+Z1L/1/JRXxdllJvP0B6oSQzqMSzcunLVfBUPCqz
 A5h6QNI2OtKBJGDTiKPeslic3WQrxH6tQwfYTUEX0z48g6d2RpQmx17deefZCaHd
 nXaEG2O1Z0Utll3RNw==
 =O+3R
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQJKBAABCgA0FiEEfWrbdQ+RCFWJSEvmd8DHXntlCAgFAl7aKFIWHGp2YWxsZXJv
 eUBtYWlsYm94Lm9yZwAKCRB3wMdee2UICBunEACHJqOYLxwG1tt2ypzXfAHdRhrk
 OkE6wfLicICODdFo7aohmKZZUM42eo48HyRycQ0d0p8mnHqym0vomMZdccFUKyo4
 TiG6ZfbId2cO8KTda7XQAf16Ue5XqvwgCrPpsUnPQKtHdQirr5/DrA0ExvYbQ90k
 /+qqOYQNqbkdopU+Q7ufO2nK656BjNn1PJ13nN4mq6CozLqgQXkEtOaR1fL7SI5Y
 wZ5uJVHAvwz4kR4NfdtboNe7lZcuApdLlQnu4TQTdkwFkScvqFFXrpjJljttjMyV
 VbUmUZHlhb6Wpk32WvK5M/2TPnBdcu3gsoqeuOaoptEe7lLTGNwRihDnyt9zB/9l
 RwKlYeWzgXH4oaN2MRk1GaRUu5TnojoPWIbP6odg0Ujavqi/yinZb3JMysrSmce7
 JQPBvNaeFZV0QEPNSJlSKYB65Xwl67ClYVlZVnnzbC1VWYwBolKmvSanqEMao++4
 PENAcq0flC5fMkcF58VNvGkcqs1xjCJTzB92eriB1+KIegDvunh721ihR6619sCT
 oOFJ84gUHs3ebFZtNUl1K0B0r0ofzTVF7bqfcPZDBJ16JhW6Iw5xD5qfpLvKsFoi
 lv6D3nRhG6mSlAWzte0RSQukWdHOPFz2f1ezx/lQ6Gik5CI5nMY6w4RKUow1QLPV
 dtZlH8NWtai4kk0odg==
 =Eb7z
 -----END PGP SIGNATURE-----

Merge tag 'v20.10' into debian/buster-backports

Release v20.10 to unstable

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
This commit is contained in:
James Valleroy 2020-06-05 07:11:08 -04:00
commit a030d64668
299 changed files with 13994 additions and 10944 deletions

View File

@ -213,10 +213,11 @@ Buster (or later).
```bash
host$ pip3 install splinter
host$ pip3 install pytest-splinter
host$ pip3 install pytest-xdist # optional, to run tests in parallel
host$ sudo apt install firefox
host$ sudo apt install python3-pytest-bdd
host$ sudo apt install xvfb python3-pytest-xvfb # optional, to avoid opening browser windows
host$ sudo apt install firefox
host$ sudo apt install smbclient # optional, to test samba
host$ sudo apt install smbclient # optional, to test samba
```
- Install the latest version of geckodriver. It is usually a single binary which
@ -275,6 +276,13 @@ If xvfb is installed and you still want to see browser windows, use the
vm$ py.test-3 --no-xvfb -m mediawiki --include-functional
```
Tests can also be run in parallel, provided you have the pytest-xdist plugin
installed.
```
$ py.test-3 -n 4 --dist=loadfile --include-functional -m essential
```
## Building the Documentation Separately
FreedomBox Service (Plinth) man page is built from DocBook source in the `doc/`

2
Vagrantfile vendored
View File

@ -38,7 +38,7 @@ Vagrant.configure(2) do |config|
DEBIAN_FRONTEND=noninteractive apt-get install -y ncurses-term
echo 'alias run-develop="sudo -u plinth /vagrant/run --develop"' >> /home/vagrant/.bashrc
SHELL
config.vm.provision "tests", run: "never", type: "shell", path: "functional_tests/install.sh"
config.vm.provision "tests", run: "never", type: "shell", path: "plinth/tests/functional/install.sh"
config.vm.post_up_message = "FreedomBox virtual machine is ready
for development. You can run the development version of Plinth using
the following command.

View File

@ -65,7 +65,7 @@ def parse_arguments():
def subcommand_setup(arguments):
"""Setup Tor configuration after installing it."""
if arguments.old_version and arguments.old_version <= 3:
if arguments.old_version and arguments.old_version <= 4:
_upgrade_orport_value()
return
@ -148,7 +148,8 @@ def _upgrade_orport_value():
aug = augeas_load()
if _is_relay_enabled(aug):
aug.set(TOR_CONFIG + '/ORPort', '[::]:9001')
aug.set(TOR_CONFIG + '/ORPort[1]', '9001')
aug.set(TOR_CONFIG + '/ORPort[2]', '[::]:9001')
aug.save()
@ -241,7 +242,7 @@ def _get_upstream_bridges(aug):
def _is_relay_enabled(aug):
"""Return whether a relay is enabled."""
orport = aug.get(TOR_CONFIG + '/ORPort')
orport = aug.get(TOR_CONFIG + '/ORPort[1]')
return bool(orport) and orport != '0'
@ -390,7 +391,8 @@ def _enable_relay(relay=None, bridge=None, aug=None):
use_upstream_bridges = _are_upstream_bridges_enabled(aug)
if relay == 'enable' and not use_upstream_bridges:
aug.set(TOR_CONFIG + '/ORPort', '[::]:9001')
aug.set(TOR_CONFIG + '/ORPort[1]', '9001')
aug.set(TOR_CONFIG + '/ORPort[2]', '[::]:9001')
elif relay == 'disable':
aug.remove(TOR_CONFIG + '/ORPort')

View File

@ -5,6 +5,7 @@ Configuration helper for the LDAP user directory
"""
import argparse
import logging
import os
import re
import shutil
@ -12,6 +13,7 @@ import subprocess
import sys
import augeas
from plinth import action_utils
ACCESS_CONF = '/etc/security/access.conf'
@ -200,8 +202,8 @@ def configure_ldapscripts():
# modify a copy of the config file
shutil.copy('/etc/ldapscripts/ldapscripts.conf', LDAPSCRIPTS_CONF)
aug = augeas.Augeas(
flags=augeas.Augeas.NO_LOAD + augeas.Augeas.NO_MODL_AUTOLOAD)
aug = augeas.Augeas(flags=augeas.Augeas.NO_LOAD +
augeas.Augeas.NO_MODL_AUTOLOAD)
aug.set('/augeas/load/Shellvars/lens', 'Shellvars.lns')
aug.set('/augeas/load/Shellvars/incl[last() + 1]', LDAPSCRIPTS_CONF)
aug.load()
@ -325,13 +327,20 @@ def get_user_groups(username):
output = process.stdout.decode().strip()
if output:
groups_part = output.split(' ')[2]
groups = groups_part.split('=')[1]
try:
groups = groups_part.split('=')[1]
except IndexError:
logging.warning('Could not read groups for user %s: \n%s',
username, output)
return []
group_names = [
user.strip('()') for user in re.findall(r'\(.*?\)', groups)
]
group_names.remove('users')
return group_names
logging.warning('User %s not found in LDAP', username)
return []

View File

@ -3,11 +3,26 @@
pytest configuration for all tests.
"""
import importlib
import os
import pathlib
import pytest
try:
importlib.import_module('pytest_bdd')
_bdd_available = True
except ImportError:
_bdd_available = False
else:
from plinth.tests.functional.step_definitions import *
def pytest_ignore_collect(path, config):
"""Return True to ignore functional tests."""
if path.basename == 'test_functional.py':
return not _bdd_available
def pytest_addoption(parser):
"""Add a command line option to run functional tests."""
@ -16,7 +31,7 @@ def pytest_addoption(parser):
def pytest_collection_modifyitems(config, items):
"""Filter out functional tests unless --include-functional arg is passed."""
"""Filter out functional tests unless --include-functional is passed."""
if config.getoption('--include-functional'):
# Option provided on command line, no filtering
return
@ -24,7 +39,9 @@ def pytest_collection_modifyitems(config, items):
skip_functional = pytest.mark.skip(
reason='--include-functional not provided')
for item in items:
if 'functional' in item.keywords:
if 'functional' in item.keywords or (
item.parent.fspath.basename
and item.parent.fspath.basename == 'test_functional.py'):
item.add_marker(skip_functional)

60
debian/changelog vendored
View File

@ -1,3 +1,63 @@
plinth (20.10) unstable; urgency=high
[ Joseph Nuthalapati ]
* backups: Add optional field - Name
* functional-tests: Use Name attribute in backups
* functional-tests: Move @backups to Scenario level
* functional-tests: Leave tor+http test disabled
* tests: functional: Document running tests in parallel
* tests: functional: Add pytest-xdist to install.sh
[ Sunil Mohan Adapa ]
* openvpn: Use app toggle button and common app view
* tests: functional: Merge into main source hierarchy
* storage: Fix failing path validation unit tests
* tests: functional: cosmetic: flake8 fixes
* tests: functional: Re-organize step definitions and helper methods
* coturn: Fix functional test for backup/restore
* ttrss: Fix functional tests
* snapshot: Fix functional test to account for non-removable snapshots
* test: functional: Fix for Apache restart after domain change
* tor: Fix problems with running a relay
* mldonkey: Add app to freedombox-share group
* samba: Add clients information
* cockpit: Promote for advanced storage/firewalld/networking ops
* firewall: Mention that internal services are available over VPN
* firewall: Don't show tun interface in internal zone warning
* minidlna: Add link to manual page
* minidlna: Fix i18n for name of the app
* pagekite: Fix expired certificates causing connection failures
[ Luis A. Arizmendi ]
* Translated using Weblate (Spanish)
[ Etienne ]
* Translated using Weblate (French)
[ Artem ]
* Translated using Weblate (Russian)
[ fred1m ]
* ikiwiki: Enable 'attachment' plugin by default
[ James Valleroy ]
* utils: Handle removal of axes.get_version()
* debian: Mark doc packages as Multi-Arch: foreign
* firewall: Minor spelling fix
* radicale: Fix link in description to clients
* users: Avoid error when user's groups cannot be parsed
* templates: Fix setup state check
* locale: Update translation strings
* doc: Fetch latest manual
[ Allan Nordhøy ]
* Translated using Weblate (Norwegian Bokmål)
* Translated using Weblate (Czech)
* Translated using Weblate (Hungarian)
* Translated using Weblate (Greek)
-- James Valleroy <jvalleroy@mailbox.org> Mon, 01 Jun 2020 20:06:53 -0400
plinth (20.9~bpo10+1) buster-backports; urgency=medium
* Rebuild for buster-backports.

2
debian/control vendored
View File

@ -184,6 +184,7 @@ Description: easy to manage, privacy oriented home server
Package: freedombox-doc-en
Architecture: all
Multi-Arch: foreign
Section: doc
Depends: ${misc:Depends}
Description: easy to manage, privacy oriented home server - user manual (English)
@ -198,6 +199,7 @@ Description: easy to manage, privacy oriented home server - user manual (English
Package: freedombox-doc-es
Architecture: all
Multi-Arch: foreign
Section: doc
Depends: ${misc:Depends}
Description: easy to manage, privacy oriented home server - user manual (Spanish)

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More