Commit graph

25 commits

Author SHA1 Message Date
Benedikt
94d174c33d
Discovery: Refactor and add Avahi DBus backend (#1347)
* discovery: use opaque error type for DnsSdError

This helps to decouple discovery and core by not leaking implementation
details of the zeroconf backend into Error conversion impls in core.

* discovery: map all MDNS/DNS-SD errors to DiscoveryError::DnsSdError

previously, libmdns errors would use a generic conversion
from std::io::Error to core::Error

* discovery: use an opaque type for the handle to the DNS-SD service

* discovery: make features additive

i.e. add with-libmdns instead of using not(with-dns-sd).

The logic is such that enabling with-dns-sd in addition to the default
with-libmdns will still end up using dns-sd, as before.
If only with-libmdns is enabled, that will be the default.
If none of the features is enabled, attempting to build a `Discovery`
will yield an error.

* discovery: add --zeroconf-backend CLI flag

* discovery: Add minimal Avahi zeroconf backend

* bump MSRV to 1.75

required by zbus >= 4

* discovery: ensure that server and dns-sd backend shutdown gracefully

Previously, on drop the the shutdown_tx/close_tx, it wasn't guaranteed
the corresponding tasks would continue to be polled until they actually
completed their shutdown.

Since dns_sd::Service is not Send and non-async, and because libmdns is
non-async, put them on their own threads.

* discovery: use a shared channel for server and zeroconf status messages

* discovery: add Avahi reconnection logic

This deals gracefully with the case where the Avahi daemon is restarted
or not running initially.

* discovery: allow running when compiled without zeroconf backend...

...but exit with an error if there's no way to authenticate

* better error messages for invalid options with no short flag
2024-10-26 16:45:02 +02:00
Aleksandar
1ac238eae9
Update contrib/Dockerfile image (#1367)
Some checks failed
test / cargo fmt (push) Failing after 39s
test / cargo +${{ matrix.toolchain }} clippy (${{ matrix.os }}) (ubuntu-latest, stable) (push) Has been skipped
test / cargo +${{ matrix.toolchain }} check (${{ matrix.os }}) (false, ubuntu-latest, 1.74) (push) Has been skipped
test / cargo +${{ matrix.toolchain }} check (${{ matrix.os }}) (false, ubuntu-latest, stable) (push) Has been skipped
test / cargo +${{ matrix.toolchain }} check (${{ matrix.os }}) (true, ubuntu-latest, beta) (push) Has been skipped
test / cargo +${{ matrix.toolchain }} check (${{ matrix.os }}) (windows-latest, 1.74) (push) Has been skipped
test / cargo +${{ matrix.toolchain }} check (${{ matrix.os }}) (windows-latest, stable) (push) Has been skipped
test / cross +${{ matrix.toolchain }} build ${{ matrix.target }} (ubuntu-latest, aarch64-unknown-linux-gnu, 1.74) (push) Has been skipped
test / cross +${{ matrix.toolchain }} build ${{ matrix.target }} (ubuntu-latest, aarch64-unknown-linux-gnu, stable) (push) Has been skipped
test / cross +${{ matrix.toolchain }} build ${{ matrix.target }} (ubuntu-latest, armv7-unknown-linux-gnueabihf, 1.74) (push) Has been skipped
test / cross +${{ matrix.toolchain }} build ${{ matrix.target }} (ubuntu-latest, armv7-unknown-linux-gnueabihf, stable) (push) Has been skipped
test / cross +${{ matrix.toolchain }} build ${{ matrix.target }} (ubuntu-latest, riscv64gc-unknown-linux-gnu, 1.74) (push) Has been skipped
test / cross +${{ matrix.toolchain }} build ${{ matrix.target }} (ubuntu-latest, riscv64gc-unknown-linux-gnu, stable) (push) Has been skipped
2024-10-09 13:21:53 +02:00
yubiuser
dcd592bafb
Update MSRV to 1.74.0 and sysinfo to 0.31.3
Signed-off-by: yubiuser <github@yubiuser.dev>
2024-08-27 23:16:48 +02:00
Dariusz Olszewski
4f8a84e7cb Docker cross compile - remove MIPS target platform
Signed-off-by: Dariusz Olszewski <starypatyk@users.noreply.github.com>
2024-06-11 20:55:27 +02:00
Christian König
b0170d142b
Bump MSRV to 1.73
Signed-off-by: Christian König <ckoenig@posteo.de>
2024-06-10 18:50:38 +00:00
Dariusz Olszewski
799bc38094 Fix building Docker image for cross-compilation:
* Debian stretch packages are now available only from archive.debian.org
* Use rust 1.71 - MIPS target demoted to tier 3 at 1.72

Signed-off-by: Dariusz Olszewski <starypatyk@users.noreply.github.com>
(cherry picked from commit 3c0d998825)
2024-06-09 22:26:37 +02:00
Gabriel Pajot
262fc2e820 fix: working armv6hf docker image for cross-compiling 2024-03-11 10:36:12 +01:00
francesco
4a4f5d0add Fixes libpulse backend linking error by installing libpulse0 package for all architectures (excepts mipsel, which remains broken) 2023-03-25 19:28:47 +01:00
JasonLG1979
8545f361c4 Major Events Overhaul
Special thanks to @eladyn for all of their help and suggestions.

* Add all player events to `player_event_handler.rs`

* Move event handler code to `player_event_handler.rs`

* Add session events

* Clean up and de-noise events and event firing

* Added metadata support via a TrackChanged event

* Add `event_handler_example.py`

* Handle invalid track start positions by just starting the track from the beginning

* Add repeat support to `spirc.rs`

* Add `disconnect`, `set_position_ms` and `set_volume` to `spirc.rs`

* Set `PlayStatus` to the correct value when Player is loading to avoid blanking out the controls when `self.play_status` is `LoadingPlay` or `LoadingPause` in `spirc.rs`

* Handle attempts to play local files better by basically ignoring attempts to load them in `handle_remote_update` in `spirc.rs`

* Add an event worker thread that runs async to the main thread(s) but sync to itself to prevent potential data races for event consumers.

* Get rid of (probably harmless) `.unwrap()` in `main.rs`

* Ensure that events are emited in a logical order and at logical times

* Handle invalid and disappearing devices better

* Ignore SpircCommands unless we're active with the exception of ShutDown
2022-09-17 16:21:10 -05:00
Felix Storm
a08efbc2f6 fix contrib/docker-build-pi-armv6hf.sh 2022-08-12 17:42:03 +02:00
Mateusz Mojsiejuk
67836b5b02 Added arm64 target to docker run examples. Also removed
feature quotes as they're not nessesary and don't match
the non-quoted examples of targets in the WIKI
2021-12-14 21:23:13 +01:00
Tom Vincent
bbd575ed23
Harden systemd service, update restart policy (#888) 2021-11-26 19:49:50 +01:00
Hugo Osvaldo Barrera
51a697201b
Include a systemd.service file to run as a user (#800)
Include a systemd.service file to run as a user

This new `systemd.service` file allows running and controlling the service as
an unpriviledged user (generally, as part of a user session).
2021-06-18 11:40:44 +02:00
Ash
5e304e68c9
Merge pull request #390 from ashthespy/crossbuild
Add `pkg-config` to docker build container
2019-11-04 15:21:34 +01:00
ashthespy
939fc583e7 Help pkg-config with explicit paths 2019-11-01 17:01:58 +01:00
Daniel Frieling
303037a7c9 add pkg-config and some configuration to Dockerfile.Rpi to allow cross-compilation 2019-09-25 21:44:32 +02:00
ashthespy
06680f106c Add pkg-config to docker build container 2019-07-16 19:36:20 +02:00
Daniel Romero
4f8ea66207 Add Dockerfile.Rpi which creates a librespot docker image which can be used on the RPI directly. 2018-07-13 10:21:31 +02:00
ashthespy
24cd9aa581 Add a armv6hf crossbuild target
Tweak `armv6hf` crossbuild script

Fix example typo in Dockerfile

Changed File permissions
2018-03-10 19:10:34 +01:00
Anton Voyl
d01b7a4736 Add aarch64 as a cross-compilation target (#194) 2017-06-08 12:31:06 +01:00
Johan Anderholm
6daedde0e9 Add mipsel as a cross-compilation target. 2017-03-05 04:17:43 -08:00
Paul Lietar
9b781f74b3 Update Dockerfile and README to not use syntex anymore 2017-02-22 15:02:36 +00:00
Paul Lietar
a4ad1e7757 Add git to the Dockerfile
It is necessary for vergen to work
2017-02-22 14:51:51 +00:00
Paul Lietar
5aab6b884a fixup! Add Dockerfile for cross compilation 2017-02-17 10:30:23 +00:00
Paul Lietar
f5a4feeb90 Add Dockerfile for cross compilation 2017-02-16 21:38:48 +00:00