about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/video/aegisub/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/video/aegisub/default.nix')
-rw-r--r--nixpkgs/pkgs/applications/video/aegisub/default.nix131
1 files changed, 131 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/video/aegisub/default.nix b/nixpkgs/pkgs/applications/video/aegisub/default.nix
new file mode 100644
index 000000000000..64c7dc20f355
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/aegisub/default.nix
@@ -0,0 +1,131 @@
+{ config
+, stdenv
+, fetchurl
+, fetchpatch
+, libX11
+, wxGTK
+, libiconv
+, fontconfig
+, freetype
+, libGLU
+, libGL
+, libass
+, fftw
+, ffms
+, ffmpeg_3
+, pkg-config
+, zlib
+, icu
+, boost
+, intltool
+
+, spellcheckSupport ? true
+, hunspell ? null
+
+, automationSupport ? true
+, lua ? null
+
+, openalSupport ? false
+, openal ? null
+
+, alsaSupport ? stdenv.isLinux
+, alsaLib ? null
+
+, pulseaudioSupport ? config.pulseaudio or stdenv.isLinux
+, libpulseaudio ? null
+
+, portaudioSupport ? false
+, portaudio ? null
+}:
+
+assert spellcheckSupport -> (hunspell != null);
+assert automationSupport -> (lua != null);
+assert openalSupport -> (openal != null);
+assert alsaSupport -> (alsaLib != null);
+assert pulseaudioSupport -> (libpulseaudio != null);
+assert portaudioSupport -> (portaudio != null);
+
+with stdenv.lib;
+stdenv.mkDerivation
+ rec {
+  pname = "aegisub";
+  version = "3.2.2";
+
+  src = fetchurl {
+    url = "http://ftp.aegisub.org/pub/releases/${pname}-${version}.tar.xz";
+    sha256 = "11b83qazc8h0iidyj1rprnnjdivj1lpphvpa08y53n42bfa36pn5";
+  };
+
+  patches = [
+    # Compatibility with ICU 59
+    (fetchpatch {
+      url = "https://github.com/Aegisub/Aegisub/commit/dd67db47cb2203e7a14058e52549721f6ff16a49.patch";
+      sha256 = "07qqlckiyy64lz8zk1as0vflk9kqnjb340420lp9f0xj93ncssj7";
+    })
+
+    # Compatbility with Boost 1.69
+    (fetchpatch {
+      url = "https://github.com/Aegisub/Aegisub/commit/c3c446a8d6abc5127c9432387f50c5ad50012561.patch";
+      sha256 = "1n8wmjka480j43b1pr30i665z8hdy6n3wdiz1ls81wyv7ai5yygf";
+    })
+  ];
+
+  nativeBuildInputs = [
+    pkg-config
+    intltool
+  ];
+
+  buildInputs = with stdenv.lib; [
+    libX11
+    wxGTK
+    fontconfig
+    freetype
+    libGLU
+    libGL
+    libass
+    fftw
+    ffms
+    ffmpeg_3
+    zlib
+    icu
+    boost
+    libiconv
+  ]
+    ++ optional spellcheckSupport hunspell
+    ++ optional automationSupport lua
+    ++ optional openalSupport openal
+    ++ optional alsaSupport alsaLib
+    ++ optional pulseaudioSupport libpulseaudio
+    ++ optional portaudioSupport portaudio
+    ;
+
+  enableParallelBuilding = true;
+
+  hardeningDisable = [ "bindnow" "relro" ];
+
+  # compat with icu61+ https://github.com/unicode-org/icu/blob/release-64-2/icu4c/readme.html#L554
+  CXXFLAGS = [ "-DU_USING_ICU_NAMESPACE=1" ];
+
+  # this is fixed upstream though not yet in an officially released version,
+  # should be fine remove on next release (if one ever happens)
+  NIX_LDFLAGS = "-lpthread";
+
+  postInstall = "ln -s $out/bin/aegisub-* $out/bin/aegisub";
+
+  meta = {
+    description = "An advanced subtitle editor";
+    longDescription = ''
+      Aegisub is a free, cross-platform open source tool for creating and
+      modifying subtitles. Aegisub makes it quick and easy to time subtitles to
+      audio, and features many powerful tools for styling them, including a
+      built-in real-time video preview.
+    '';
+    homepage = "http://www.aegisub.org/";
+    # The Aegisub sources are itself BSD/ISC,
+    # but they are linked against GPL'd softwares
+    # - so the resulting program will be GPL
+    license = licenses.bsd3;
+    maintainers = [ maintainers.AndersonTorres ];
+    platforms = [ "i686-linux" "x86_64-linux" ];
+  };
+}