As called out in the linked issue below, olaris-server has a runtime dependency on ffmpeg. Unfortunately, 0.4.0 requires a custom fork of ffmpeg. While we could fetch the upstream compiled artefact or build it ourselves, the former was unpalatable and the latter prohibitively difficult. As such, we have bumped to the, yet to be released, tip of the default branch, which has merged support for upstream ffmpeg. Fixes #207877
62 lines
1.7 KiB
Nix
62 lines
1.7 KiB
Nix
{ buildGoModule
|
|
, fetchFromGitLab
|
|
, fetchzip
|
|
, ffmpeg
|
|
, installShellFiles
|
|
, lib
|
|
, makeWrapper
|
|
}:
|
|
|
|
buildGoModule rec {
|
|
pname = "olaris-server";
|
|
version = "unstable-2022-06-11";
|
|
|
|
src = fetchFromGitLab {
|
|
owner = "olaris";
|
|
repo = pname;
|
|
rev = "bdb2aeb1595c941210249164a97c12404c1ae0d8";
|
|
hash = "sha256-Uhnh6GC85ORKnfHeYNtbSA40osuscxXDF5/kXJrF2Cs=";
|
|
};
|
|
|
|
preBuild = let
|
|
olaris-react = fetchzip {
|
|
url = "https://gitlab.com/api/v4/projects/olaris%2Folaris-react/jobs/artifacts/v${version}/download?job=build";
|
|
extension = "zip";
|
|
hash = "sha256-MkxBf/mGvtiOu0e79bMpd9Z/D0eOxhzPE+bKic//viM=";
|
|
};
|
|
in ''
|
|
# cannot build olaris-react https://github.com/NixOS/nixpkgs/issues/203708
|
|
cp -r ${olaris-react} react/build
|
|
make generate
|
|
'';
|
|
|
|
ldflags = [
|
|
"-s"
|
|
"-w"
|
|
"-X gitlab.com/olaris/olaris-server/helpers.Version=${version}"
|
|
];
|
|
|
|
vendorHash = "sha256-bw8zvDGFBci9bELsxAD0otpNocBnO8aAcgyohLZ3Mv0=";
|
|
|
|
nativeBuildInputs = [ installShellFiles makeWrapper ];
|
|
|
|
# integration tests require network access
|
|
doCheck = false;
|
|
|
|
postInstall = ''
|
|
installShellCompletion --cmd olaris-server \
|
|
--bash <($out/bin/olaris-server completion bash) \
|
|
--fish <($out/bin/olaris-server completion fish) \
|
|
--zsh <($out/bin/olaris-server completion zsh)
|
|
wrapProgram $out/bin/olaris-server --prefix PATH : ${lib.makeBinPath [ffmpeg]}
|
|
'';
|
|
|
|
meta = with lib; {
|
|
description = "A media manager and transcoding server.";
|
|
homepage = "https://gitlab.com/olaris/olaris-server";
|
|
changelog = "https://gitlab.com/olaris/olaris-server/-/releases/v${version}";
|
|
license = licenses.gpl3Only;
|
|
maintainers = with maintainers; [ urandom ];
|
|
};
|
|
}
|