Merge pull request #283513 from YMSTNT/init-fcast
fcast-receiver: init at 1.0.14; nixos/fcast-receiver: init module
This commit is contained in:
commit
dd1ddc55ba
|
@ -131,6 +131,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
|
||||||
|
|
||||||
- [transfer-sh](https://github.com/dutchcoders/transfer.sh), a tool that supports easy and fast file sharing from the command-line. Available as [services.transfer-sh](#opt-services.transfer-sh.enable).
|
- [transfer-sh](https://github.com/dutchcoders/transfer.sh), a tool that supports easy and fast file sharing from the command-line. Available as [services.transfer-sh](#opt-services.transfer-sh.enable).
|
||||||
|
|
||||||
|
- [FCast Receiver](https://fcast.org), an open-source alternative to Chromecast and AirPlay. Available as [programs.fcast-receiver](#opt-programs.fcast-receiver.enable).
|
||||||
|
|
||||||
- [MollySocket](https://github.com/mollyim/mollysocket) which allows getting Signal notifications via UnifiedPush.
|
- [MollySocket](https://github.com/mollyim/mollysocket) which allows getting Signal notifications via UnifiedPush.
|
||||||
|
|
||||||
- [Suwayomi Server](https://github.com/Suwayomi/Suwayomi-Server), a free and open source manga reader server that runs extensions built for [Tachiyomi](https://tachiyomi.org). Available as [services.suwayomi-server](#opt-services.suwayomi-server.enable).
|
- [Suwayomi Server](https://github.com/Suwayomi/Suwayomi-Server), a free and open source manga reader server that runs extensions built for [Tachiyomi](https://tachiyomi.org). Available as [services.suwayomi-server](#opt-services.suwayomi-server.enable).
|
||||||
|
|
|
@ -179,6 +179,7 @@
|
||||||
./programs/environment.nix
|
./programs/environment.nix
|
||||||
./programs/evince.nix
|
./programs/evince.nix
|
||||||
./programs/extra-container.nix
|
./programs/extra-container.nix
|
||||||
|
./programs/fcast-receiver.nix
|
||||||
./programs/feedbackd.nix
|
./programs/feedbackd.nix
|
||||||
./programs/file-roller.nix
|
./programs/file-roller.nix
|
||||||
./programs/firefox.nix
|
./programs/firefox.nix
|
||||||
|
|
31
nixos/modules/programs/fcast-receiver.nix
Normal file
31
nixos/modules/programs/fcast-receiver.nix
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.programs.fcast-receiver;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
meta = {
|
||||||
|
maintainers = pkgs.fcast-receiver.meta.maintainers;
|
||||||
|
};
|
||||||
|
|
||||||
|
options.programs.fcast-receiver = {
|
||||||
|
enable = mkEnableOption (lib.mdDoc "FCast Receiver");
|
||||||
|
openFirewall = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
description = lib.mdDoc ''
|
||||||
|
Open ports needed for the functionality of the program.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
package = mkPackageOption pkgs "fcast-receiver" { };
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
environment.systemPackages = [ cfg.package ];
|
||||||
|
networking.firewall = mkIf cfg.openFirewall {
|
||||||
|
allowedTCPPorts = [ 46899 ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
64
pkgs/by-name/fc/fcast-receiver/package.nix
Normal file
64
pkgs/by-name/fc/fcast-receiver/package.nix
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
{ lib
|
||||||
|
, buildNpmPackage
|
||||||
|
, fetchFromGitLab
|
||||||
|
, makeDesktopItem
|
||||||
|
, copyDesktopItems
|
||||||
|
, makeWrapper
|
||||||
|
, electron
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildNpmPackage rec {
|
||||||
|
pname = "fcast-receiver";
|
||||||
|
version = "1.0.14";
|
||||||
|
|
||||||
|
src = fetchFromGitLab {
|
||||||
|
domain = "gitlab.futo.org";
|
||||||
|
owner = "videostreaming";
|
||||||
|
repo = "fcast";
|
||||||
|
rev = "c7a1cb27c470870df50dbf0de00a133061298d46";
|
||||||
|
hash = "sha256-9xF1DZ2wt6zMoUQywmvnNN3Z8m4GhOFJElENhozF9c8=";
|
||||||
|
};
|
||||||
|
|
||||||
|
sourceRoot = "${src.name}/receivers/electron";
|
||||||
|
|
||||||
|
makeCacheWritable = true;
|
||||||
|
|
||||||
|
npmDepsHash = "sha256-gpbFZ8rKYR/GUY1l4eH5io/lz6FpJLUTl5h8q3haxvw=";
|
||||||
|
|
||||||
|
env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
|
||||||
|
|
||||||
|
desktopItems = [
|
||||||
|
(makeDesktopItem {
|
||||||
|
name = pname;
|
||||||
|
desktopName = "FCast Receiver";
|
||||||
|
genericName = "Media Streaming Receiver";
|
||||||
|
exec = "fcast-receiver";
|
||||||
|
icon = "fcast-receiver";
|
||||||
|
comment = "FCast Receiver, an open-source media streaming receiver";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
copyDesktopItems
|
||||||
|
makeWrapper
|
||||||
|
];
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
install -Dm644 $out/lib/node_modules/fcast-receiver/app.png $out/share/pixmaps/fcast-receiver.png
|
||||||
|
|
||||||
|
makeWrapper ${electron}/bin/electron $out/bin/fcast-receiver \
|
||||||
|
--add-flags $out/lib/node_modules/fcast-receiver/dist/bundle.js
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "FCast Receiver, an open-source media streaming receiver";
|
||||||
|
longDescription = ''
|
||||||
|
FCast Receiver is a receiver for an open-source media streaming protocol, FCast, an alternative to Chromecast and AirPlay.
|
||||||
|
'';
|
||||||
|
homepage = "https://fcast.org/";
|
||||||
|
license = licenses.gpl3;
|
||||||
|
maintainers = with maintainers; [ ymstnt ];
|
||||||
|
mainProgram = "fcast-receiver";
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user