From 2f80a58bdd2f724cb0a373febf47e81c2f2495ee Mon Sep 17 00:00:00 2001 From: Francesco Gazzetta Date: Tue, 8 Mar 2022 18:29:32 +0100 Subject: [PATCH] faircamp: init at unstable-2022-01-19 --- pkgs/applications/misc/faircamp/default.nix | 56 ++++++++++++++++++++ pkgs/applications/misc/faircamp/test-wav.nix | 14 +++++ pkgs/top-level/all-packages.nix | 2 + 3 files changed, 72 insertions(+) create mode 100644 pkgs/applications/misc/faircamp/default.nix create mode 100644 pkgs/applications/misc/faircamp/test-wav.nix diff --git a/pkgs/applications/misc/faircamp/default.nix b/pkgs/applications/misc/faircamp/default.nix new file mode 100644 index 000000000000..4486381b8b34 --- /dev/null +++ b/pkgs/applications/misc/faircamp/default.nix @@ -0,0 +1,56 @@ +{ lib +, rustPlatform +, fetchgit +, makeWrapper +, ffmpeg +, callPackage +, unstableGitUpdater +}: + +rustPlatform.buildRustPackage { + pname = "faircamp"; + version = "unstable-2022-01-19"; + + # TODO when switching to a stable release, use fetchFromGitea and add a + # version test. Meanwhile, fetchgit is used to make unstableGitUpdater work. + src = fetchgit { + url = "https://codeberg.org/simonrepp/faircamp.git"; + rev = "f8ffc7a35a12251b83966b35c63f72b4912f75a9"; + sha256 = "sha256-9t42+813IPLUChbLkcwzoCr7FXSL1g+ZG6I3d+7pmec="; + }; + + cargoHash = "sha256-24ALBede3W8rjlBRdtL0aazRyK1RmNLdHF/bt5i4S5Y="; + + nativeBuildInputs = [ + makeWrapper + ]; + + postInstall = '' + wrapProgram $out/bin/faircamp \ + --prefix PATH : ${lib.makeBinPath [ ffmpeg ]} + ''; + + passthru.tests.wav = callPackage ./test-wav.nix { }; + + passthru.updateScript = unstableGitUpdater { }; + + meta = with lib; { + description = "A self-hostable, statically generated bandcamp alternative"; + longDescription = '' + Faircamp takes a directory on your disk - your Catalog - and from it + produces a fancy-looking (and technically simple and completely static) + website, which presents your music in a way similar to how popular + commercial service bandcamp does it. + + You can upload the files faircamp generates to any webspace - no database + and no programming language support (PHP or such) is required. If your + webspace supports SSH access, faircamp can be configured to upload your + website for you automatically, otherwise you can use FTP or whichever + means you prefer to do that manually. + ''; + homepage = "https://codeberg.org/simonrepp/faircamp"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ fgaz ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/applications/misc/faircamp/test-wav.nix b/pkgs/applications/misc/faircamp/test-wav.nix new file mode 100644 index 000000000000..8a9d2eaa2f35 --- /dev/null +++ b/pkgs/applications/misc/faircamp/test-wav.nix @@ -0,0 +1,14 @@ +{ stdenv +, faircamp +, ffmpeg +}: + +stdenv.mkDerivation { + name = "faircamp-test-wav"; + meta.timeout = 60; + buildCommand = '' + mkdir album + ${ffmpeg}/bin/ffmpeg -f lavfi -i "sine=frequency=440:duration=1" album/track.wav + ${faircamp}/bin/faircamp --build-dir $out + ''; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0bc874b8c879..b3f0a81ed287 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -25449,6 +25449,8 @@ with pkgs; f1viewer = callPackage ../applications/video/f1viewer {}; + faircamp = callPackage ../applications/misc/faircamp { }; + fasttext = callPackage ../applications/science/machine-learning/fasttext { }; fbmenugen = callPackage ../applications/misc/fbmenugen { };