toxic: 0.15.1 -> 0.16.0
[NixPkgs.git] / pkgs / by-name / sh / shotcut / package.nix
bloba3746c8edc1fdd53f750b37fa8a2dc5fb028103e
2   lib,
3   fetchFromGitHub,
4   stdenv,
5   substituteAll,
6   SDL2,
7   frei0r,
8   ladspaPlugins,
9   gettext,
10   mlt,
11   jack1,
12   pkg-config,
13   fftw,
14   qt6,
15   cmake,
16   darwin,
17   gitUpdater,
18   ffmpeg,
20 stdenv.mkDerivation (finalAttrs: {
21   pname = "shotcut";
22   version = "24.11.17";
24   src = fetchFromGitHub {
25     owner = "mltframework";
26     repo = "shotcut";
27     rev = "refs/tags/v${finalAttrs.version}";
28     hash = "sha256-sOBGLQYRGHcXNoKTmqbBqmheUFHe7p696BTCiwtF5JY=";
29   };
31   nativeBuildInputs = [
32     pkg-config
33     cmake
34     qt6.wrapQtAppsHook
35   ];
37   buildInputs = [
38     SDL2
39     frei0r
40     ladspaPlugins
41     gettext
42     mlt
43     fftw
44     qt6.qtbase
45     qt6.qttools
46     qt6.qtmultimedia
47     qt6.qtcharts
48     qt6.qtwayland
49   ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.apple_sdk.frameworks.Cocoa ];
51   env.NIX_CFLAGS_COMPILE = "-DSHOTCUT_NOUPGRADE";
53   cmakeFlags = [ "-DSHOTCUT_VERSION=${finalAttrs.version}" ];
55   patches = [
56     (substituteAll {
57       inherit mlt ffmpeg;
58       src = ./fix-mlt-ffmpeg-path.patch;
59     })
60   ];
62   qtWrapperArgs = [
63     "--set FREI0R_PATH ${frei0r}/lib/frei0r-1"
64     "--set LADSPA_PATH ${ladspaPlugins}/lib/ladspa"
65     "--prefix LD_LIBRARY_PATH : ${
66       lib.makeLibraryPath ([ SDL2 ] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ jack1 ])
67     }"
68   ];
70   postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
71     mkdir $out/Applications $out/bin
72     mv $out/Shotcut.app $out/Applications/Shotcut.app
73     ln -s $out/Applications/Shotcut.app/Contents/MacOS/Shotcut $out/bin/shotcut
74   '';
76   passthru.updateScript = gitUpdater { rev-prefix = "v"; };
78   meta = {
79     description = "Free, open source, cross-platform video editor";
80     longDescription = ''
81       An official binary for Shotcut, which includes all the
82       dependencies pinned to specific versions, is provided on
83       http://shotcut.org.
85       If you encounter problems with this version, please contact the
86       nixpkgs maintainer(s). If you wish to report any bugs upstream,
87       please use the official build from shotcut.org instead.
88     '';
89     homepage = "https://shotcut.org";
90     license = lib.licenses.gpl3Plus;
91     maintainers = with lib.maintainers; [
92       woffs
93       peti
94     ];
95     platforms = lib.platforms.unix;
96     mainProgram = "shotcut";
97   };