Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I'm not sure why install.sh builds bluez from source rather than taking the system packaged one, but it's a good example of one of the ways nix will be really useful here. If we needed to change bluez, we can do so without conflicting with the system bluez that is installed.
The same goes for OpenSSL. While I've elected to take a patch to allow the use of the latest OpenSSL, the references to OpenSSL could easily be changed from
openssl
toopenssl_3_0
.Protobuf is pinned, as newer version require building with C++ 17 or greater by editing CMakeLists.txt
to contain
SET(CMAKE_CXX_STANDARD 17)
.Currently, this lacks a devShell, and I'd like to leave that for a future followup as it's not something I have much experience with currently. Build environments for individual packages can be realised by requesting one for the package in question.
nix develop -L .#packages.<SYSTEM>.<PACKAGE>
, and is mostly useful to run through nix build phases, rather than being a generic dev environment.Dash can be built on x86_64 with,
nix build -L .#packages.x86_64-linux.openDsh_dash_nonnixos
, and a symlink to the store location will be at./result
.It might make since to move the package declarations of aasdk and openauto to the respective packages as it would likely make overriding them locally easier as it would be possible to pass --override-input with a path during
nix flake lock
, but that also complicates the handling of qtgstreamer and h264bitstream, and makes it more difficult to see how this all works together, so it's probably also better as a change to be made when that added complexity comes with a clear benefit.For non-NixOS, openDsh_dash_nonnixos is the package to use as it's a script that is wrapping the dash executable to include opengl drivers from nixpkgs.
I tested this with the latest Raspberry Pi OS (bookworm) on a RPi4 4GB, and launched dash from a Sway (Wayland) environment.