mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-01-28 08:03:36 +00:00
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:
commit
a030d64668
12
HACKING.md
12
HACKING.md
@ -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
2
Vagrantfile
vendored
@ -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.
|
||||
|
||||
10
actions/tor
10
actions/tor
@ -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')
|
||||
|
||||
|
||||
@ -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 []
|
||||
|
||||
|
||||
|
||||
21
conftest.py
21
conftest.py
@ -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
60
debian/changelog
vendored
@ -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
2
debian/control
vendored
@ -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
1
doc/manual/en/Bind.raw.xml
Normal file
1
doc/manual/en/Bind.raw.xml
Normal file
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
BIN
doc/manual/en/images/firewalld-cockpit.png
Normal file
BIN
doc/manual/en/images/firewalld-cockpit.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 46 KiB |
BIN
doc/manual/en/images/networks-cockpit.png
Normal file
BIN
doc/manual/en/images/networks-cockpit.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 45 KiB |
BIN
doc/manual/en/images/storage-cockpit.png
Normal file
BIN
doc/manual/en/images/storage-cockpit.png
Normal file
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
1
doc/manual/es/Bind.raw.xml
Normal file
1
doc/manual/es/Bind.raw.xml
Normal file
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
Loading…
x
Reference in New Issue
Block a user