Unverified Commit cf54e9c8 authored by jopejoe1's avatar jopejoe1 Committed by GitHub
Browse files

opentoonz: drop (#459721)

parents d8b1af6e 7e8ad0e7
Loading
Loading
Loading
Loading
+0 −147
Original line number Diff line number Diff line
{
  boost,
  cmake,
  fetchFromGitHub,
  libglut,
  freetype,
  glew,
  libsForQt5,
  libjpeg,
  libmypaint,
  libpng,
  libusb1,
  lz4,
  xz,
  lzo,
  openblas,
  opencv,
  pkg-config,
  lib,
  stdenv,
  superlu,
  libtiff,
  zlib,
}:
let
  libtiff-ver = "4.0.3"; # The version in thirdparty/tiff-*
  opentoonz-ver = "1.7.1";

  src = fetchFromGitHub {
    owner = "opentoonz";
    repo = "opentoonz";
    rev = "v${opentoonz-ver}";
    hash = "sha256-5iXOvh4QTv+G0fjEHU62u7QCee+jbvKhK0+fQXbdJis=";
  };

  opentoonz-opencv = opencv.override {
    inherit libtiff;
  };

  opentoonz-libtiff = stdenv.mkDerivation {
    pname = "libtiff";
    version = "${libtiff-ver}-opentoonz";

    inherit src;
    outputs = [
      "bin"
      "dev"
      "out"
      "man"
      "doc"
    ];

    nativeBuildInputs = [ pkg-config ];
    propagatedBuildInputs = [
      zlib
      libjpeg
      xz
    ];

    postUnpack = ''
      sourceRoot="$sourceRoot/thirdparty/tiff-${libtiff-ver}"
    '';

    # opentoonz uses internal libtiff headers
    postInstall = ''
      cp libtiff/{tif_config,tif_dir,tiffiop}.h $dev/include
    '';

    meta = libtiff.meta // {
      knownVulnerabilities = [
        ''
          Do not open untrusted files with Opentoonz:
          Opentoonz uses an old custom fork of tibtiff from 2012 that is known to
          be affected by at least these 50 vulnerabilities:
            CVE-2012-4564 CVE-2013-4232 CVE-2013-4243 CVE-2013-4244 CVE-2014-8127
            CVE-2014-8128 CVE-2014-8129 CVE-2014-8130 CVE-2014-9330 CVE-2015-1547
            CVE-2015-8781 CVE-2015-8782 CVE-2015-8783 CVE-2015-8784 CVE-2015-8870
            CVE-2016-3620 CVE-2016-3621 CVE-2016-3623 CVE-2016-3624 CVE-2016-3625
            CVE-2016-3631 CVE-2016-3632 CVE-2016-3633 CVE-2016-3634 CVE-2016-3658
            CVE-2016-3945 CVE-2016-3990 CVE-2016-3991 CVE-2016-5102 CVE-2016-5314
            CVE-2016-5315 CVE-2016-5316 CVE-2016-5318 CVE-2016-5319 CVE-2016-5321
            CVE-2016-5322 CVE-2016-5323 CVE-2016-6223 CVE-2016-9453 CVE-2016-9532
            CVE-2017-9935 CVE-2017-9937 CVE-2018-10963 CVE-2018-5360
            CVE-2019-14973 CVE-2019-17546 CVE-2020-35521 CVE-2020-35522
            CVE-2020-35523 CVE-2020-35524
          More info at https://github.com/opentoonz/opentoonz/issues/4193
        ''
      ];
      maintainers = with lib.maintainers; [ chkno ];
    };
  };
in
stdenv.mkDerivation {
  inherit src;

  pname = "opentoonz";
  version = opentoonz-ver;

  nativeBuildInputs = [
    cmake
    pkg-config
    libsForQt5.wrapQtAppsHook
  ];

  buildInputs = [
    boost
    libglut
    freetype
    glew
    libjpeg
    libmypaint
    libpng
    opentoonz-libtiff
    libusb1
    lz4
    xz
    lzo
    openblas
    opentoonz-opencv
    libsForQt5.qtbase
    libsForQt5.qtmultimedia
    libsForQt5.qtscript
    libsForQt5.qtserialport
    superlu
  ];

  postUnpack = "sourceRoot=$sourceRoot/toonz";

  cmakeDir = "../sources";
  cmakeFlags = [
    "-DCMAKE_SKIP_BUILD_RPATH=ON"
    "-DTIFF_INCLUDE_DIR=${opentoonz-libtiff.dev}/include"
    "-DTIFF_LIBRARY=${opentoonz-libtiff.out}/lib/libtiff.so"
    (lib.cmakeBool "CMAKE_SKIP_BUILD_RPATH" true)
  ];

  postInstall = ''
    sed -i '/cp -r .*stuff/a\    chmod -R u+w $HOME/.config/OpenToonz/stuff' $out/bin/opentoonz
  '';

  meta = {
    description = "Full-featured 2D animation creation software";
    homepage = "https://opentoonz.github.io/";
    license = lib.licenses.bsd3;
    maintainers = with lib.maintainers; [ chkno ];
  };
}