connman-gtk: fix FTBFS with GCC-14 (incompatible pointer types) (#376077)
[NixPkgs.git] / pkgs / by-name / mu / multiplex / package.nix
blob6e09a526741d42207896a4df18b67834016d5a93
2   lib,
3   buildGoModule,
4   fetchFromGitHub,
5   pkg-config,
6   gobject-introspection,
7   blueprint-compiler,
8   wrapGAppsHook4,
9   libadwaita,
12 buildGoModule rec {
13   pname = "multiplex";
14   version = "0.1.6";
16   src = fetchFromGitHub {
17     owner = "pojntfx";
18     repo = "multiplex";
19     rev = "v${version}";
20     hash = "sha256-zU4Lnc66wY5lFxy82Mg52WSEGRyoEk9LY6E7LmeuKHs=";
21   };
23   vendorHash = "sha256-fS5wdBe1vuqaUBPcxLzhCMRztW8eq+MGojMVWlOZO+U=";
25   nativeBuildInputs = [
26     pkg-config
27     gobject-introspection
28     blueprint-compiler
29     wrapGAppsHook4
30   ];
32   buildInputs = [ libadwaita ];
34   # generate files requested by go:generate
35   # don't generate in goModules because buildInputs isn't available
36   preBuild = ''
37     if [[ ! $name == *"-go-modules" ]]; then
38       go generate ./internal/resources/resources.go
39     fi
40   '';
42   postInstall = ''
43     install -Dm644 -t $out/share/applications com.pojtinger.felicitas.Multiplex.desktop
44     install -Dm644 -t $out/share/metainfo internal/resources/com.pojtinger.felicitas.Multiplex.metainfo.xml
45     # The provided pixmap icons appears to be a bit blurry so not installing them
46     install -Dm644 docs/icon.svg $out/share/icons/hicolor/scalable/apps/com.pojtinger.felicitas.Multiplex.svg
47     install -Dm644 docs/icon-symbolic.svg $out/share/icons/hicolor/symbolic/apps/com.pojtinger.felicitas.Multiplex-symbolic.svg
48   '';
50   meta = {
51     description = "Watch torrents with your friends";
52     longDescription = ''
53       Multiplex is an app to watch torrents together, providing an experience similar
54       to Apple's SharePlay and Amazon's Prime Video Watch Party.
56       It enables you to:
57       - Stream any file directly using a wide range of video and audio formats with
58         the mpv video player.
59       - Host online watch parties while preserving your privacy by synchronizing
60         video playback with friends without a central server using weron.
61       - Bypass internet restrictions by optionally separating the hTorrent HTTP to
62         BitTorrent gateway and user interface into two separate components.
63     '';
64     homepage = "https://github.com/pojntfx/multiplex";
65     license = with lib.licenses; [
66       agpl3Plus
67       cc0
68     ];
69     mainProgram = "multiplex";
70     maintainers = with lib.maintainers; [ aleksana ];
71   };