opentoonz: 1.4.0 -> 1.5.0

(The qtbase diamond-dependency problem was resolved in 4bac8a7a00)
This commit is contained in:
Scott Worley 2021-06-07 15:59:24 -07:00
parent d87b72206a
commit a20e31bf09
4 changed files with 40 additions and 17 deletions

View file

@ -1,6 +1,6 @@
{ boost, cmake, fetchFromGitHub, freeglut, freetype, glew, libjpeg, libmypaint
, libpng, libtiff, libusb1, lz4, xz, lzo, openblas, pkg-config, qtbase
, qtmultimedia, qtscript, lib, stdenv, superlu, wrapQtAppsHook, }:
, libpng, libtiff, libusb1, lz4, xz, lzo, openblas, opencv, pkg-config, qtbase
, qtmultimedia, qtscript, qtserialport, lib, stdenv, superlu, wrapQtAppsHook, }:
let source = import ./source.nix { inherit fetchFromGitHub; };
in stdenv.mkDerivation rec {
inherit (source) src;
@ -24,9 +24,11 @@ in stdenv.mkDerivation rec {
xz
lzo
openblas
opencv
qtbase
qtmultimedia
qtscript
qtserialport
superlu
];

View file

@ -2,20 +2,38 @@
# opentoonz requires its own modified version of libtiff. We still build it as
# a separate package
# 1. For visibility for tools like vulnix, and
# 2. To avoid a diamond-dependency problem with qt linking the normal libtiff
# and opentoonz linking qt and this modified libtiff, we build a qt against
# this modified libtiff as well.
# 2. To avoid a diamond-dependency problem with opencv linking the normal libtiff
# and opentoonz linking opencv and this modified libtiff, we build an opencv
# against this modified libtiff as well.
#
# We use a separate mkDerivation rather than a minimal libtiff.overrideAttrs
# because the main libtiff builds with cmake and this version of libtiff was
# forked before libtiff gained CMake build capability (added in libtiff-4.0.5).
{ lib, fetchFromGitHub, stdenv, pkg-config, zlib, libjpeg, xz, libtiff, }:
{ fetchFromGitHub, libtiff }:
let source = import ./source.nix { inherit fetchFromGitHub; };
in libtiff.overrideAttrs (old: {
inherit (source) src;
in stdenv.mkDerivation {
pname = "libtiff";
version = source.versions.libtiff + "-opentoonz";
postUnpack = (old.postUnpack or "") + ''
inherit (source) src;
outputs = [ "bin" "dev" "out" "man" "doc" ];
nativeBuildInputs = [ pkg-config ];
propagatedBuildInputs = [ zlib libjpeg xz ];
postUnpack = ''
sourceRoot="$sourceRoot/thirdparty/tiff-${source.versions.libtiff}"
'';
# opentoonz uses internal libtiff headers
postInstall = (old.postInstall or "") + ''
postInstall = ''
cp libtiff/{tif_config,tif_dir,tiffiop}.h $dev/include
'';
})
meta = libtiff.meta // {
maintainers = with lib.maintainers; [ chkno ];
};
}

View file

@ -3,14 +3,14 @@
{ fetchFromGitHub, }: rec {
versions = {
opentoonz = "1.4.0";
libtiff = "4.0.3";
opentoonz = "1.5.0";
libtiff = "4.0.3"; # The version in thirdparty/tiff-*
};
src = fetchFromGitHub {
owner = "opentoonz";
repo = "opentoonz";
rev = "v${versions.opentoonz}";
sha256 = "0vgclx2yydsm5i2smff3fj8m750nhf35wfhva37kywgws01s189b";
sha256 = "1rw30ksw3zjph1cwxkfvqj0330v8wd4333gn0fdf3cln1w0549lk";
};
}

View file

@ -27591,9 +27591,12 @@ with pkgs;
opentimestamps-client = python3Packages.callPackage ../tools/misc/opentimestamps-client {};
opentoonz = (qt514.overrideScope' (_: _: {
libtiff = callPackage ../applications/graphics/opentoonz/libtiff.nix { };
})).callPackage ../applications/graphics/opentoonz { };
opentoonz = let
opentoonz-libtiff = callPackage ../applications/graphics/opentoonz/libtiff.nix { };
in qt5.callPackage ../applications/graphics/opentoonz {
libtiff = opentoonz-libtiff;
opencv = opencv.override { libtiff = opentoonz-libtiff; };
};
opentabletdriver = callPackage ../tools/X11/opentabletdriver { };