234 Commits

Author SHA1 Message Date
James Valleroy
10924a1dca
Release v20.9 to unstable
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2020-05-18 19:43:25 -04:00
Sunil Mohan Adapa
e51d027618
storage: Auto-mount disks, notify of failing disks
- Remove freedombox-udiskie.service file. Don't run udiskie anymore. Use our own
implementation of auto-mounting.

- Schedule disk failure checking to 3 seconds after application initialization.
Also perform auto-mounting at that time.

- Listen to new filesystems added and auto-mount them.

- Listen to disk failing attribute and report to user via a notification.

- Add rules to polkit-1 to allow plinth user to mount drives.

- Add simple abstractions over DBusProxy objects make accessing properties
simpler.

- Replicate udiskie's approach to mounting disks.

- Mount as root user for now using command line instead of DBus API. This is to
keep compatibility with older code that mounted under /media/root with relaxed
permissions.

Udiskie analysis:

  - On device added, media added, perform auto_add
  - On device changed and is addable and old state is not addable or removeable
  - Automount condition:
    - Matches configuration
    - Not ignored
    - is_filesystem and not mounted -> mount
    - crypto device -> try unlock -> if success, mount
    - is partition table
      - Get all non-ignored devices, if partition then mount
  - Mount condition:
    - Is not ignored
    - Is filesystem
    - Find device with path
    - Get options from configuration
    - Is ntfs and executable ntfs-3g is not available
    - Call mount
  - No support for udisks1
  - Built-in rules
    - {'symlinks': '/dev/mapper/docker-*', 'ignore': True}
    - {'symlinks': '/dev/disk/by-id/dm-name-docker-*', 'ignore': True}
    - {'is_loop': True, 'is_ignored': False, 'loop_file': '/*', 'ignore': False}
    - {'is_block': False, 'ignore': True}
    - {'is_external': False, 'is_toplevel': True, 'ignore': True}
    - {'is_ignored': True, 'ignore': True}

Tests performed:
  - Create a CDROM in VM, inject media. Disk should get mounted.
  - Create a temp file. mkfs.ext4 it at top level. losetup it. It should not get
    auto mounted as it is a top level internal device.
  - Create a temp file. Create two partitions and format the partitions. kpartx
    -a on it. Both the file systems should get mounted.
  - Create a temp file. luksformat it. Create a filesystem. luksopen the file.
    It should get auto mounted.
  - Checking for disk space repeatedly happens every 3 minutes.
  - Drives are checked for healthy status only once, 3 seconds after FreedomBox is started.
  - FreedomBox is able to mount disks while running as 'plinth' user with
    policykit-1 version 0.105-26.
  - FreedomBox is able to mount disks while running as 'plinth' user with
    policykit-1 version 0.116-2 from experimental.
  - Temporarily flip the is_failing condition in report_failing_drive. When
    FreedomBox is restarted, notification about drives failing show up. When the
    condition is reverted to normal, the notification is withdrawn.
  - Build new Debian package and upgrade system with 20.8 installed. Two files
    should be removed:
    /var/lib/systemd/deb-systemd-helper-enabled/freedombox-udiskie.service.dsh-also
    /etc/systemd/system/multi-user.target.wants/freedombox-udiskie.service .
    systemctl status freedombox-udiskie.service should report no such unit.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Veiko Aasa <veiko17@disroot.org>
2020-05-16 11:42:23 +03:00
James Valleroy
dac7bc4f8c
Release v20.8 to unstable
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2020-05-04 20:55:02 -04:00
James Valleroy
e522bcbf22
debian: Use debhelper compat level 13
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2020-05-04 20:02:16 -04:00
Sunil Mohan Adapa
b4e6c03bd7
coturn: New app to manage Coturn TURN/STUN server
- Shows URLs and shared secret that communication servers like matrix-synapse
should be configured to. Later we will implement auto-configuring those servers.

- Allow selecting domain for the sake of TLS/DTLS certificate installation.

- Simplify systemd service file options. Drop log file and pid file support as
they are not needed with systemd. Add security options.

- Set custom configuration file by overriding systemd service file options so
that we don't have a problem with conffile prompts.

- Implement functional tests (and automatic diagnostics).

- Custom icon selected from the Noun project as Coturn project does not have
one.

- Backup/restore configuration file and certificates.

- Document some questions regarding configuration options.

Tests performed:

- App is not listed in the app page if 'advanced' flag is disabled.

- App name, icon and short description shows up correctly in apps page.

- App name, icon, short description, description, manual link, enable/disable
button and diagnostics link show up currently in app page.

- Verify that configuration used by coturn server is the FreedomBox
configuration by checking the cert path in the log output.

- PID file is not created in /var/run/turnserver/. It goes into /dev/null
according to the log output.

- No log file is created other than what is collected by systemd from command
line.

- systemctl show coturn.service shows all the intended restrictions such as
NoNewPrivileges, Protect* options.

- Run functional tests.

- Ensure that backup of configuration file works by taking backup, changing the
secret and restoring. During backup and restore coturn should be stopped and
started as per logs.

- Build Debian package. No warnings about the copyright file.

- Enabling the app enables the service and runs it.

- Disabling the app disables the service and stop it.

- All diagnostics tests pass.

- Diagnostic tests show firewall port coturn-freedombox for internal and
external networks, service coturn, and each listening port for udp4, udp6, tcp4
and tcp6.

- Information in the firewall page shows up properly. Enabling the app opens
firewall ports, and disabling it closes them.

- When the app is installed, if a cert domain is available, it will be used.
When multiple domains are available, one of them is picked.

- Status shows 4 URLs with the currently selected domain and secret key.

- Changing domain to another domain succeeds and reflects in the status
information.

- When no domain is configured. Installing the app succeeds. No domain is shown
in the list of domains.

- When domain is changed, the certificates files in /etc/coturn/certs are
overwritten.

- Certificates have the ownership turnserver:turnserver. Public key is cert.pem
has 644 permissions. Private is pkey.pem has 600 permissions. /etc/coturn/certs
is owned by root:root.

- Let's encrypt certificates are setup immediately after install.

- Port forwarding information shows all ports except for relay ports.

- Trying to create a user with username 'turnserver' throws an error. This
happens even when coturn is not installed yet.

- After installing coturn, the configuration file /etc/coturn/freedombox.conf is
created with ownership root:turnserver and permissions 640. The directory
/etc/coturn is created with ownership root:root and permissions 755.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
[jvalleroy: Fix copied form_valid comment]
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2020-05-02 18:51:23 -04:00
Sunil Mohan Adapa
16202e6f3a
*: Update links to repository and project page
- The repository has been renamed from 'plinth' to 'freedombox'.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Joseph Nuthalapati <njoseph@riseup.net>
2020-05-01 17:14:23 +05:30
James Valleroy
41498ba9f6
d/copyright: Fix path to visual_design
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2020-04-24 16:15:58 -04:00
Sunil Mohan Adapa
ff44a7de5a
static: Don't ship visual design file and unused images
- Move all the unused image files into doc/visual_design directory.

- Reduces the size of the shipped .deb binary significantly.

Closes: #1840.

Tests performed:

- Ensure that each of the files moves are not referenced anywhere in the source
code.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2020-04-24 16:10:02 -04:00
Sunil Mohan Adapa
af5e0e1b24
debian: Remove timer to setup repositories properly
When removing systemd services, dh_installsystemd has no idea about services
present in the older versions that been removed. So, it generates no handling
scripts for those services. No convenience methods exist too.

dh_installsystemd uses deb-systemd-helper which maintains state files in
/var/lib/systemd/deb-systemd-helper-enabled/*.dsh-also. These files need to
removed apart from symlinks created in /etc/systemd/system enable services are
enabled. If the service/timer is currently running, stop it too.

Use deb-systemd-helper and deb-systemd-invoke to achieve this.

Closes: #1835

Tests performed:

- Install a freedombox version older than 20.5. Upgrade to 20.5. Notice the
incorrect symlink
/etc/systemd/system/multi-user.target.wants/freedombox-setup-repositories.timer
and also the state file
/var/lib/systemd/deb-systemd-helper-enabled/freedombox-setup-repositories.timer.dsh-also
Then upgrade to a .deb packages built with the patch. The two files will be
removed. No extra messages are warnings are printed during package upgrade.

- Install a freedombox version older than 20.5. Upgrade to .deb packages built
with this patch. Notice the same results.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2020-04-24 15:45:01 -04:00
James Valleroy
167895b537
Release v20.7 to unstable
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2020-04-20 18:39:06 -04:00
James Valleroy
ba0bb524ee
Release v20.6.1 to unstable
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2020-04-11 09:57:07 -04:00
James Valleroy
a9adc13a56
debian: Add firmware-ath9k-htc to Recommends
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2020-04-09 17:35:21 -04:00
James Valleroy
64024725be
Release v20.6 to unstable
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2020-04-06 20:53:29 -04:00
James Valleroy
30b4b67e7f
debian: Cleanup overrides for jsxc symlinks
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2020-04-06 20:52:44 -04:00
James Valleroy
dd2ba4c8fa
Release v20.5.1 to unstable
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2020-03-26 09:13:34 -04:00
James Valleroy
b7fda9d657
debian: Correct doc package names in Recommends
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2020-03-25 18:47:41 -04:00
Sunil Mohan Adapa
cd5bd5a31c
debian: Remove outdated TODO file
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2020-03-25 17:52:24 -04:00
Sunil Mohan Adapa
172f5f3160
debian: Separate binary packages for each language manual
- When there are multiple binary packages, a common practice is to install into
  debian/tmp using the Makefile and then use dh_install and .install files. This
  splits the contents installed into debian/tmp to various package directories
  debian/{package}.

- Install documentation in to /usr/share/freedombox instead of
  /usr/share/doc/freedombox. Then create a link to /usr/share/doc/freedombox/.
  This approach is recommended Debian Policy Manual in section 12.3[1] because
  it should safe for administrator to delete files in /usr/share/doc safely
  without breaking the application functionality. The doc-base must refer to the
  documentation in /usr/share/doc as per doc-base documentation.

Links

1) https://www.debian.org/doc/debian-policy/ch-docs.html#additional-documentation

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2020-03-25 17:52:22 -04:00
Sunil Mohan Adapa
58b6f0a8e1
debian: Prepare for multiple binary packages
Rename various files in debian directory so that it is clear which binary
package they are relevant for.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2020-03-25 17:52:19 -04:00
Sunil Mohan Adapa
75bd8a61f8
debian: Update doc-base to include PDF
- Fix the list of files for the HTML format.

- Add PDF format listing.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2020-03-25 17:52:16 -04:00
James Valleroy
b3b177d85b
Release v20.5 to unstable
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2020-03-23 19:43:00 -04:00
Sunil Mohan Adapa
6179d98a07
upgrades: Don't ship apt backport preferences file
- Don't ship the file preferences file as this is a violation of the Debian
policy. Lintian throws a hard error that can't be overridden. Remove the lintian
override. Remove this file using maintainer scripts when upgrading from all
version below 20.5.

- The preferences file is now renamed to 50freedombox4.pref.

- Instead write the file when the app is getting setup (on each new version).

- Don't run the setup code on daily timer, instead run the code when the app
upgrades. This ensures that as soon as freedombox package is upgraded and run,
the new preferences file is created instead of waiting for the daily timer to
run.

- From now on when the preferences change, we will increment the version number
of the upgrades app. Change the setup() for the app so that it does not
re-enable automatic upgrades every time setup() is run.

Closes: #1673.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2020-03-20 13:59:58 -04:00
James Valleroy
05fcfe2d12
Release v20.4 to unstable
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2020-03-09 20:18:29 -04:00
James Valleroy
68fbc0b70c
Release v20.3 to unstable
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2020-02-24 20:17:01 -05:00
James Valleroy
60d997b15a
Release v20.2.1 to unstable
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2020-02-21 22:46:56 -05:00
Lev Lamberov
1e6b26a63a
debian: Update Russian translation for debconf (Closes: #951440) 2020-02-17 18:54:21 -08:00
James Valleroy
8f63590882
Release v20.2 to unstable
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2020-02-10 19:23:16 -05:00
James Valleroy
964051a849
Release v20.1 to unstable
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2020-01-27 19:52:14 -05:00
James Valleroy
619ca6042f
debian: Update standards version to 4.5.0
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2020-01-27 19:41:10 -05:00
James Valleroy
4c6fa5c9e8
debian: Add Expat license to copyright
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2020-01-27 19:40:02 -05:00
James Valleroy
12a5b72ef5
debian: Rename TODO.Debian to TODO
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2020-01-27 19:37:18 -05:00
Nektarios Katakis
f3d2654a13
networks: form for configuring router
Signed-off-by: Nektarios Katakis <iam@nektarioskatakis.xyz>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2020-01-26 16:02:41 -05:00
James Valleroy
21ba450484
repro: Remove app
The repro app has been disabled for a long time. Its package has been
removed from Debian, and there is no sign of it returning soon.

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2020-01-18 20:00:43 -05:00
James Valleroy
c8a5f3727f
restore: Remove app
The restore app has always been disabled, because node-restore package
is not available in Debian (RFP #804507). There hasn't been progress
towards packaging it since 2016.

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2020-01-18 19:59:02 -05:00
James Valleroy
eaa71f056a
wireguard: Add icon
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
[sunil: Fix size of SVG, add PNG image too]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2020-01-18 13:53:12 -05:00
James Valleroy
4386ad4f13
Release v20.0 to unstable
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2020-01-13 19:12:07 -05:00
Sunil Mohan Adapa
7de78071eb
debian: Add powermgmt-base to recommends list
This package adds a single command on_ac_power to the system which is used by
unattended-upgrades to avoid running upgrades when on batter power.

Closes: #1753.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2020-01-04 12:07:54 -05:00
James Valleroy
38442ef7a0
Release v19.24 to unstable
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2019-12-30 21:18:16 -05:00
James Valleroy
b4a0c7e908
debian: Update Dutch debconf translation (Closes: #947136)
Thanks to Frans Spiesschaert for the patch.

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2019-12-30 20:52:28 -05:00
James Valleroy
fc69c8418f
debian: Update French debconf translation (Closes: #947386)
Thanks to Jean-Pierre Giraud for the patch.

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2019-12-26 13:36:44 -05:00
James Valleroy
ada1967755
Release v19.23 to unstable
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2019-12-16 18:39:08 -05:00
James Valleroy
cb176d2a5d
Release v19.22 to unstable
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2019-12-02 18:01:33 -05:00
Veiko Aasa
dbdd482e61
samba: fixes and improvements
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-12-01 11:30:35 -05:00
James Valleroy
5802d74e86
debian: Update German debconf translation (Closes: #945387)
Thanks to Helge Kreutzmann for the patch.

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2019-11-24 05:30:49 -05:00
James Valleroy
a869ef531c
Release v19.21 to unstable
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2019-11-18 19:36:34 -05:00
James Valleroy
1bd0a65e5c
d/po: Run debconf-updatepo
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2019-11-18 18:14:35 -05:00
Joseph Nuthalapati
815d3ec0e8
firstboot: reading firstboot-wizard-secret file
Explain how to read the firstboot-wizard-secret file using shell
commands. Remove output of the cat command.

Signed-off-by: Joseph Nuthalapati <njoseph@riseup.net>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-11-18 18:10:24 -05:00
James Valleroy
ca0c991562
Release v19.20 to unstable
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2019-11-04 19:26:55 -05:00
Sunil Mohan Adapa
80498919fb
doc: Add developer documentation using Sphinx
- This is completely reworked but based on /Developer page in the FreedomBox
  Manual.

- This documentation can be made available as static site on
  https://docs.freedombox.org and the /Developer page in the FreedomBox Manual
  can be dropped.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-11-02 13:51:14 -04:00
Joseph Nuthalapati
d62463247f
doc: Move English manual to manual/en directory
Signed-off-by: Joseph Nuthalapati <njoseph@riseup.net>
[sunil@medhas.org Have common top level makefile for building manual]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-10-30 19:25:02 -04:00