2023-03-13 18:53:59 +00:00
|
|
|
{ stdenv
|
|
|
|
, fetchurl
|
|
|
|
, ffmpeg-headless
|
|
|
|
, lib
|
2023-04-07 13:36:13 +00:00
|
|
|
, nixosTests
|
2023-03-13 18:53:59 +00:00
|
|
|
, stateDirectory ? "/var/lib/castopod"
|
|
|
|
}:
|
|
|
|
stdenv.mkDerivation {
|
|
|
|
pname = "castopod";
|
|
|
|
version = "1.6.4";
|
|
|
|
|
|
|
|
src = fetchurl {
|
|
|
|
url = "https://code.castopod.org/adaures/castopod/uploads/ce56d4f149242f12bedd20f9a2b0916d/castopod-1.6.4.tar.gz";
|
|
|
|
sha256 = "080jj91yxbn3xsbs0sywzwa2f5in9bp9qi2zwqcfqpaxlq9ga62v";
|
|
|
|
};
|
|
|
|
|
|
|
|
dontBuild = true;
|
|
|
|
dontFixup = true;
|
|
|
|
|
|
|
|
postPatch = ''
|
|
|
|
# not configurable at runtime unfortunately:
|
|
|
|
substituteInPlace app/Config/Paths.php \
|
|
|
|
--replace "__DIR__ . '/../../writable'" "'${stateDirectory}/writable'"
|
|
|
|
|
|
|
|
# configuration file must be writable, place it to ${stateDirectory}
|
|
|
|
substituteInPlace modules/Install/Controllers/InstallController.php \
|
|
|
|
--replace "ROOTPATH" "'${stateDirectory}/'"
|
|
|
|
substituteInPlace public/index.php spark \
|
|
|
|
--replace "DotEnv(ROOTPATH)" "DotEnv('${stateDirectory}')"
|
|
|
|
|
|
|
|
# ffmpeg is required for Video Clips feature
|
|
|
|
substituteInPlace modules/MediaClipper/VideoClipper.php \
|
|
|
|
--replace "ffmpeg" "${ffmpeg-headless}/bin/ffmpeg"
|
|
|
|
substituteInPlace modules/Admin/Controllers/VideoClipsController.php \
|
|
|
|
--replace "which ffmpeg" "echo ${ffmpeg-headless}/bin/ffmpeg"
|
|
|
|
'';
|
|
|
|
|
|
|
|
installPhase = ''
|
|
|
|
mkdir -p $out/share/castopod
|
|
|
|
cp -r . $out/share/castopod
|
|
|
|
'';
|
|
|
|
|
2023-04-07 13:36:13 +00:00
|
|
|
passthru.tests.castopod = nixosTests.castopod;
|
2023-03-13 18:53:59 +00:00
|
|
|
passthru.updateScript = ./update.sh;
|
|
|
|
|
|
|
|
meta = with lib; {
|
|
|
|
description = "An open-source hosting platform made for podcasters who want to engage and interact with their audience";
|
|
|
|
homepage = "https://castopod.org";
|
|
|
|
license = licenses.agpl3Only;
|
|
|
|
maintainers = with maintainers; [ alexoundos misuzu ];
|
|
|
|
platforms = platforms.all;
|
|
|
|
};
|
|
|
|
}
|