diff options
Diffstat (limited to 'pkgs/applications/graphics')
30 files changed, 838 insertions, 150 deletions
diff --git a/pkgs/applications/graphics/ImageMagick/7.0.nix b/pkgs/applications/graphics/ImageMagick/7.0.nix index 7a8cae9bf81aa..b4c06ae77192e 100644 --- a/pkgs/applications/graphics/ImageMagick/7.0.nix +++ b/pkgs/applications/graphics/ImageMagick/7.0.nix @@ -29,7 +29,7 @@ , curl , ApplicationServices , Foundation -, testVersion +, testers , imagemagick }: @@ -45,13 +45,13 @@ in stdenv.mkDerivation rec { pname = "imagemagick"; - version = "7.1.0-26"; + version = "7.1.0-31"; src = fetchFromGitHub { owner = "ImageMagick"; repo = "ImageMagick"; rev = version; - hash = "sha256-q1CL64cfyb5fN9aVYJfls+v0XRFd4jH+B8n+UJqPE1I="; + hash = "sha256-Pf+x3TnmvKTCDL3dGLyAr6JUl5E3BRi/XW/dkuCr2YA="; }; outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big @@ -64,9 +64,7 @@ stdenv.mkDerivation rec { ++ (if arch != null then [ "--with-gcc-arch=${arch}" ] else [ "--without-gcc-arch" ]) ++ lib.optional (librsvg != null) "--with-rsvg" ++ lib.optional (liblqr1 != null) "--with-lqr" - # libjxl is broken on aarch64 (see meta.broken in libjxl) for now, - # let's disable it for now to unbreak the imagemagick build. - ++ lib.optional (libjxl != null && !stdenv.isAarch64) "--with-jxl" + ++ lib.optional (libjxl != null ) "--with-jxl" ++ lib.optionals (ghostscript != null) [ "--with-gs-font-dir=${ghostscript}/share/ghostscript/fonts" @@ -92,11 +90,8 @@ stdenv.mkDerivation rec { libxml2 libheif djvulibre + libjxl ] - # libjxl is broken on aarch64 (see meta.broken in libjxl) for now, - # let's disable it for now to unbreak the imagemagick build. - ++ lib.optionals (!stdenv.isAarch64) - [ libjxl ] ++ lib.optionals (!stdenv.hostPlatform.isMinGW) [ openexr librsvg openjpeg ] ++ lib.optionals stdenv.isDarwin [ @@ -125,7 +120,7 @@ stdenv.mkDerivation rec { ''; passthru.tests.version = - testVersion { package = imagemagick; }; + testers.testVersion { package = imagemagick; }; meta = with lib; { homepage = "http://www.imagemagick.org/"; diff --git a/pkgs/applications/graphics/apitrace/default.nix b/pkgs/applications/graphics/apitrace/default.nix index f842cf6f5c4b8..756f0da9f3481 100644 --- a/pkgs/applications/graphics/apitrace/default.nix +++ b/pkgs/applications/graphics/apitrace/default.nix @@ -11,6 +11,12 @@ stdenv.mkDerivation rec { owner = "apitrace"; }; + patches = [ + # glibc 2.34 compat + # derived from https://github.com/apitrace/apitrace/commit/d28a980802ad48568c87da02d630c8babfe163bb + ./glibc-2.34-compat.patch + ]; + # LD_PRELOAD wrappers need to be statically linked to work against all kinds # of games -- so it's fine to use e.g. bundled snappy. buildInputs = [ libX11 procps python2 libdwarf qtbase qtwebkit ]; diff --git a/pkgs/applications/graphics/apitrace/glibc-2.34-compat.patch b/pkgs/applications/graphics/apitrace/glibc-2.34-compat.patch new file mode 100644 index 0000000000000..3f8cebe030c04 --- /dev/null +++ b/pkgs/applications/graphics/apitrace/glibc-2.34-compat.patch @@ -0,0 +1,13 @@ +diff --git a/wrappers/dlsym.cpp b/wrappers/dlsym.cpp +index 2eda082..0c0c8ee 100644 +--- a/wrappers/dlsym.cpp ++++ b/wrappers/dlsym.cpp +@@ -34,7 +34,7 @@ + #include "os.hpp" + + +-#ifdef __GLIBC__ ++#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ < 34 + + + #include <dlfcn.h> diff --git a/pkgs/applications/graphics/awesomebump/default.nix b/pkgs/applications/graphics/awesomebump/default.nix index 4d79f10a9e10f..e7bc474e17d34 100644 --- a/pkgs/applications/graphics/awesomebump/default.nix +++ b/pkgs/applications/graphics/awesomebump/default.nix @@ -46,7 +46,7 @@ in mkDerivation { # AwesomeBump expects to find Core and Configs in its current directory. makeQtWrapper $d/AwesomeBump $out/bin/AwesomeBump \ - --run "cd $d" + --chdir "$d" ''; # $ cd Sources; qmake; make ../workdir/linux-g++-dgb-gl4/obj/glwidget.o diff --git a/pkgs/applications/graphics/cloudcompare/default.nix b/pkgs/applications/graphics/cloudcompare/default.nix index cd3f026dfa098..6a6820240f4a9 100644 --- a/pkgs/applications/graphics/cloudcompare/default.nix +++ b/pkgs/applications/graphics/cloudcompare/default.nix @@ -1,13 +1,16 @@ { lib , mkDerivation , fetchFromGitHub +, fetchpatch , cmake -, dxflib +, boost +, cgal_5 , eigen , flann , gdal +, gmp , LASzip -, libLAS +, mpfr , pdal , pcl , qtbase @@ -15,36 +18,43 @@ , qttools , tbb , xercesc +, wrapGAppsHook }: mkDerivation rec { pname = "cloudcompare"; - # Released version(v2.11.3) doesn't work with packaged PCL. - version = "unstable-2021-10-14"; + version = "2.12.0"; src = fetchFromGitHub { owner = "CloudCompare"; repo = "CloudCompare"; - rev = "1f65ba63756e23291ae91ff52d04da468ade8249"; - sha256 = "x1bDjFjXIl3r+yo1soWvRB+4KGP50/WBoGlrH013JQo="; - # As of writing includes (https://github.com/CloudCompare/CloudCompare/blob/a1c589c006fc325e8b560c77340809b9c7e7247a/.gitmodules): - # * libE57Format - # * PoissonRecon - # * CCCoreLib + rev = "v${version}"; + sha256 = "sha256-hu3ckVocExi9lvxelHAwKb/MZacH4CcCE+vIzElgP/A="; fetchSubmodules = true; }; + patches = [ + # fix issues compiling on aarch64. remove once upgraded past 2.12.0 + (fetchpatch { + url = "https://github.com/CloudCompare/CloudCompare/commit/7e71861fdbd6ea704add5ba69343f47d8fc3d5ae.patch"; + sha256 = "sha256-CRUPjxtKUbsqOyYsjKF+dRZ+E3rqrv5mS3ZaOay2wk8="; + }) + ]; + nativeBuildInputs = [ cmake eigen # header-only + wrapGAppsHook ]; buildInputs = [ - dxflib + boost + cgal_5 flann gdal + gmp LASzip - libLAS + mpfr pdal pcl qtbase @@ -72,9 +82,32 @@ mkDerivation rec { "-DPLUGIN_IO_QPHOTOSCAN=ON" "-DPLUGIN_IO_QRDB=OFF" # Riegl rdblib is proprietary; not packaged in nixpkgs + "-DCCCORELIB_USE_CGAL=ON" # enables Delauney triangulation support "-DPLUGIN_STANDARD_QPCL=ON" # Adds PCD import and export support + "-DPLUGIN_STANDARD_QANIMATION=ON" + "-DPLUGIN_STANDARD_QBROOM=ON" + "-DPLUGIN_STANDARD_QCANUPO=ON" + "-DPLUGIN_STANDARD_QCOMPASS=ON" + "-DPLUGIN_STANDARD_QCSF=ON" + "-DPLUGIN_STANDARD_QFACETS=ON" + "-DPLUGIN_STANDARD_QHOUGH_NORMALS=ON" + "-DEIGEN_ROOT_DIR=${eigen}/include/eigen3" # needed for hough normals + "-DPLUGIN_STANDARD_QHPR=ON" + "-DPLUGIN_STANDARD_QM3C2=ON" + "-DPLUGIN_STANDARD_QMPLANE=ON" + "-DPLUGIN_STANDARD_QPOISSON_RECON=ON" + "-DPLUGIN_STANDARD_QRANSAC_SD=ON" + "-DPLUGIN_STANDARD_QSRA=ON" + "-DPLUGIN_STANDARD_QCLOUDLAYERS=ON" ]; + dontWrapGApps = true; + + # fix file dialogs crashing on non-NixOS (and avoid double wrapping) + preFixup = '' + qtWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; + meta = with lib; { description = "3D point cloud and mesh processing software"; homepage = "https://cloudcompare.org"; diff --git a/pkgs/applications/graphics/cq-editor/default.nix b/pkgs/applications/graphics/cq-editor/default.nix index 33bae268c8a62..bb157ad18db03 100644 --- a/pkgs/applications/graphics/cq-editor/default.nix +++ b/pkgs/applications/graphics/cq-editor/default.nix @@ -27,7 +27,7 @@ mkDerivationWith python3Packages.buildPythonApplication rec { pyparsing pyqtgraph spyder - pathpy + path qtconsole requests ]; diff --git a/pkgs/applications/graphics/darktable/default.nix b/pkgs/applications/graphics/darktable/default.nix index e950d5e36f5ca..0fe5a0b183e8c 100644 --- a/pkgs/applications/graphics/darktable/default.nix +++ b/pkgs/applications/graphics/darktable/default.nix @@ -14,6 +14,7 @@ , desktop-file-utils , exiv2 , glib +, glib-networking , ilmbase , gtk3 , intltool @@ -71,6 +72,7 @@ stdenv.mkDerivation rec { curl exiv2 glib + glib-networking gtk3 ilmbase lcms2 diff --git a/pkgs/applications/graphics/drawing/default.nix b/pkgs/applications/graphics/drawing/default.nix index 40c651ac25705..cd92a0d39ec76 100644 --- a/pkgs/applications/graphics/drawing/default.nix +++ b/pkgs/applications/graphics/drawing/default.nix @@ -1,5 +1,6 @@ { lib , fetchFromGitHub +, fetchpatch , meson , ninja , pkg-config @@ -29,6 +30,16 @@ python3.pkgs.buildPythonApplication rec { sha256 = "sha256-qNaljtuA5E/QaLJ9QILPRQCqOvKmX4ZGq/0z5unA8KA="; }; + patches = [ + # Fix build with meson 0.61, can be removed on next update. + # https://github.com/NixOS/nixpkgs/issues/167584 + (fetchpatch { + url = "https://github.com/maoschanz/drawing/commit/6dd271089af76b69322500778e3ad6615a117dcc.patch"; + sha256 = "sha256-4pKWm3LYstVxZ4+gGsZDfM4K+7WBY8EYjylzc/CQZmo="; + includes = [ "data/meson.build" "help/meson.build" ]; + }) + ]; + nativeBuildInputs = [ appstream-glib desktop-file-utils diff --git a/pkgs/applications/graphics/drawio/default.nix b/pkgs/applications/graphics/drawio/default.nix index e53030428e61d..f93e415bcd63d 100644 --- a/pkgs/applications/graphics/drawio/default.nix +++ b/pkgs/applications/graphics/drawio/default.nix @@ -11,11 +11,11 @@ stdenv.mkDerivation rec { pname = "drawio"; - version = "17.2.4"; + version = "17.4.2"; src = fetchurl { url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/drawio-x86_64-${version}.rpm"; - sha256 = "sha256-dKl7DxNneoQEL+QhZmpfQCd15RoeDRnkZt3sv8t2KM4="; + sha256 = "294f99d9060bc394490b20d2ddab75ed5c0166d7960850f065eb8897ef31a2e3"; }; nativeBuildInputs = [ diff --git a/pkgs/applications/graphics/foxotron/default.nix b/pkgs/applications/graphics/foxotron/default.nix index 39fb78b317f18..f60ea4ea90c8c 100644 --- a/pkgs/applications/graphics/foxotron/default.nix +++ b/pkgs/applications/graphics/foxotron/default.nix @@ -48,7 +48,7 @@ stdenv.mkDerivation rec { cp -R ${lib.optionalString stdenv.hostPlatform.isDarwin "Foxotron.app/Contents/MacOS/"}Foxotron \ ../{config.json,Shaders,Skyboxes} $out/lib/foxotron/ wrapProgram $out/lib/foxotron/Foxotron \ - --run "cd $out/lib/foxotron" + --chdir "$out/lib/foxotron" ln -s $out/{lib/foxotron,bin}/Foxotron runHook postInstall diff --git a/pkgs/applications/graphics/geeqie/default.nix b/pkgs/applications/graphics/geeqie/default.nix index 037cf7c8ed624..98103efab64f3 100644 --- a/pkgs/applications/graphics/geeqie/default.nix +++ b/pkgs/applications/graphics/geeqie/default.nix @@ -6,13 +6,13 @@ stdenv.mkDerivation rec { pname = "geeqie"; - version = "1.7.2"; + version = "1.7.3"; src = fetchFromGitHub { owner = "BestImageViewer"; repo = "geeqie"; rev = "v${version}"; - sha256 = "sha256-Abr7trlms6bxOAqE6xNKRv51TBGNilNdBhUZUg7OTKY="; + sha256 = "sha256-O+yz/uNxueR+naEJG8EZ+k/JutRjJ5wwbB9DYb8YNLw="; }; patches = [ diff --git a/pkgs/applications/graphics/gimp/plugins/default.nix b/pkgs/applications/graphics/gimp/plugins/default.nix index fe1afe5b07b64..79760bb31a650 100644 --- a/pkgs/applications/graphics/gimp/plugins/default.nix +++ b/pkgs/applications/graphics/gimp/plugins/default.nix @@ -5,7 +5,7 @@ { config, lib, pkgs }: let - inherit (pkgs) stdenv fetchurl pkg-config intltool glib fetchFromGitHub; + inherit (pkgs) stdenv fetchurl fetchpatch pkg-config intltool glib fetchFromGitHub; in lib.makeScope pkgs.newScope (self: @@ -66,6 +66,45 @@ in # Allow overriding GIMP package in the scope. inherit (pkgs) gimp; + bimp = pluginDerivation rec { + /* menu: + File/Batch Image Manipulation... + */ + pname = "bimp"; + version = "2.6"; + + src = fetchFromGitHub { + owner = "alessandrofrancesconi"; + repo = "gimp-plugin-bimp"; + rev = "v${version}"; + hash = "sha256-IJ3+/9UwxJTRo0hUdzlOndOHwso1wGv7Q4UuhbsFkco="; + }; + + patches = [ + # Allow overriding installation path + # https://github.com/alessandrofrancesconi/gimp-plugin-bimp/pull/311 + (fetchpatch { + url = "https://github.com/alessandrofrancesconi/gimp-plugin-bimp/commit/098edb5f70a151a3f377478fd6e0d08ed56b8ef7.patch"; + sha256 = "2Afx9fmdn6ztbsll2f2j7mfffMWYWyr4BuBy9ySV6vM="; + }) + ]; + + nativeBuildInputs = with pkgs; [ which ]; + + installFlags = [ + "SYSTEM_INSTALL_DIR=${placeholder "out"}/${gimp.targetPluginDir}/bimp" + ]; + + installTargets = [ "install-admin" ]; + + meta = with lib; { + description = "Batch Image Manipulation Plugin for GIMP"; + homepage = "https://github.com/alessandrofrancesconi/gimp-plugin-bimp"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ ]; + }; + }; + gap = pluginDerivation { /* menu: Video diff --git a/pkgs/applications/graphics/gscan2pdf/default.nix b/pkgs/applications/graphics/gscan2pdf/default.nix index 9d8ae0c8d35f9..214688b56f899 100644 --- a/pkgs/applications/graphics/gscan2pdf/default.nix +++ b/pkgs/applications/graphics/gscan2pdf/default.nix @@ -10,11 +10,11 @@ with lib; perlPackages.buildPerlPackage rec { pname = "gscan2pdf"; - version = "2.12.5"; + version = "2.12.6"; src = fetchurl { url = "mirror://sourceforge/gscan2pdf/gscan2pdf-${version}.tar.xz"; - sha256 = "sha256-MFWW9DTJ/svtgN3fbw+zeGpgg3pgIoC9jZ1HkG5p6sc="; + sha256 = "sha256-9ntpUEM3buT3EhneXz9G8bibvzOnEK6Xt0jJcTvLKT0="; }; nativeBuildInputs = [ wrapGAppsHook ]; @@ -111,8 +111,6 @@ perlPackages.buildPerlPackage rec { # # Looks like you failed 1 test of 1. # t/169_import_scan.t ........................... Dubious, test returned 1 (wstat 256, 0x100) rm t/169_import_scan.t - # t/1604_import_multipage_DjVu.t ................ Dubious, test returned 255 (wstat 65280, 0xff00) - rm t/1604_import_multipage_DjVu.t # Disable a test which passes but reports an incorrect status # t/0601_Dialog_Scan.t .......................... All 14 subtests passed diff --git a/pkgs/applications/graphics/hydrus/default.nix b/pkgs/applications/graphics/hydrus/default.nix index 1d0cf4bec7d08..5a25ad3998f71 100644 --- a/pkgs/applications/graphics/hydrus/default.nix +++ b/pkgs/applications/graphics/hydrus/default.nix @@ -10,14 +10,14 @@ python3Packages.buildPythonPackage rec { pname = "hydrus"; - version = "478"; + version = "482"; format = "other"; src = fetchFromGitHub { owner = "hydrusnetwork"; repo = "hydrus"; - rev = "v${version}"; - sha256 = "sha256-ZsQzKc2fOFTzI/kBS8ws2+XT9kRAn4L55n1EZgVy4Kk="; + rev = "refs/tags/v${version}"; + sha256 = "sha256-b7zMHwsyZv4dCn4Gd/2a+MHhT3IHISJup/zm95pEcQ4="; }; nativeBuildInputs = [ diff --git a/pkgs/applications/graphics/imgbrd-grabber/default.nix b/pkgs/applications/graphics/imgbrd-grabber/default.nix index 59d1e6817bd9e..b9f838c016f82 100644 --- a/pkgs/applications/graphics/imgbrd-grabber/default.nix +++ b/pkgs/applications/graphics/imgbrd-grabber/default.nix @@ -33,12 +33,12 @@ stdenv.mkDerivation rec { buildInputs = [ openssl - makeWrapper libpulseaudio typescript ]; nativeBuildInputs = [ + makeWrapper qtmultimedia qtbase qtdeclarative diff --git a/pkgs/applications/graphics/inkscape/default.nix b/pkgs/applications/graphics/inkscape/default.nix index 0958676cc99bd..d29d1d65346e5 100644 --- a/pkgs/applications/graphics/inkscape/default.nix +++ b/pkgs/applications/graphics/inkscape/default.nix @@ -48,6 +48,7 @@ let lxml pillow scour + pyserial ]); in stdenv.mkDerivation rec { diff --git a/pkgs/applications/graphics/jpegrescan/default.nix b/pkgs/applications/graphics/jpegrescan/default.nix index 1a7320bf6930e..f96742e6c067b 100644 --- a/pkgs/applications/graphics/jpegrescan/default.nix +++ b/pkgs/applications/graphics/jpegrescan/default.nix @@ -28,8 +28,12 @@ stdenv.mkDerivation rec { propagatedBuildInputs = [ perlPackages.FileSlurp ]; + nativeBuildInputs = [ + makeWrapper + ]; + buildInputs = [ - perl libjpeg_turbo makeWrapper + perl libjpeg_turbo ]; meta = with lib; { diff --git a/pkgs/applications/graphics/mypaint/default.nix b/pkgs/applications/graphics/mypaint/default.nix index 7b83bdec8c6bc..b93b4794db81f 100644 --- a/pkgs/applications/graphics/mypaint/default.nix +++ b/pkgs/applications/graphics/mypaint/default.nix @@ -1,5 +1,6 @@ { lib , fetchFromGitHub +, fetchpatch , gtk3 , gettext , json_c @@ -31,6 +32,15 @@ in buildPythonApplication rec { fetchSubmodules = true; }; + patches = [ + # Fix build due to setuptools issue. + # https://github.com/mypaint/mypaint/pull/1183 + (fetchpatch { + url = "https://github.com/mypaint/mypaint/commit/423950bec96d6057eac70442de577364d784a847.patch"; + sha256 = "OxJJOi20bFMRibL59zx6svtMrkgeMYyEvbdSXbZHqpc="; + }) + ]; + nativeBuildInputs = [ gettext pkg-config diff --git a/pkgs/applications/graphics/openboard/default.nix b/pkgs/applications/graphics/openboard/default.nix index 084787d6315be..0725acd2379d8 100644 --- a/pkgs/applications/graphics/openboard/default.nix +++ b/pkgs/applications/graphics/openboard/default.nix @@ -33,11 +33,10 @@ in mkDerivation rec { }; patches = [ - # Poppler requires at least C++17 + # Fix build with poppler >= 22.01 (fetchpatch { - name = "use-c-17-for-pdf-on-linux-builds"; - url = "https://aur.archlinux.org/cgit/aur.git/plain/use-c-17-for-pdf-on-linux-builds.patch?h=openboard"; - sha256 = "sha256-M6HigpOo8ul7qaub4cd7/ATUc85HezEyKyDuzsrZvC8="; + url = "https://github.com/OpenBoard-org/OpenBoard/commit/3a9b043e0fafec08e4123f362dcb7750f7476b59.patch"; + sha256 = "sha256-yD163FK79HBU1W7m6sLxhfsRo4r/38zYTFWgeyqwU1o="; }) ]; diff --git a/pkgs/applications/graphics/openscad/default.nix b/pkgs/applications/graphics/openscad/default.nix index 413e16718216e..2379962bb55f7 100644 --- a/pkgs/applications/graphics/openscad/default.nix +++ b/pkgs/applications/graphics/openscad/default.nix @@ -59,6 +59,10 @@ mkDerivation rec { enableParallelBuilding = true; + preBuild = '' + make objects/parser.cxx + ''; + postInstall = lib.optionalString stdenv.isDarwin '' mkdir $out/Applications mv $out/bin/*.app $out/Applications diff --git a/pkgs/applications/graphics/pixeluvo/default.nix b/pkgs/applications/graphics/pixeluvo/default.nix index d88be43698446..0c90b786baca9 100644 --- a/pkgs/applications/graphics/pixeluvo/default.nix +++ b/pkgs/applications/graphics/pixeluvo/default.nix @@ -50,6 +50,7 @@ stdenv.mkDerivation rec { description = "A Beautifully Designed Image and Photo Editor for Windows and Linux"; homepage = "http://www.pixeluvo.com/"; license = licenses.unfree; + platforms = [ "x86_64-linux" ]; maintainers = with maintainers; [ wolfangaukang ]; }; } diff --git a/pkgs/applications/graphics/rawtherapee/default.nix b/pkgs/applications/graphics/rawtherapee/default.nix index 7d1acc1dcd69a..494180fdb598d 100644 --- a/pkgs/applications/graphics/rawtherapee/default.nix +++ b/pkgs/applications/graphics/rawtherapee/default.nix @@ -16,6 +16,9 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake pkg-config wrapGAppsHook ]; + # This patch is upstream; remove it in 5.9. + patches = [ ./fix-6324.patch ]; + buildInputs = [ pixman libpthreadstubs gtkmm3 libXau libXdmcp lcms2 libiptcdata libcanberra-gtk3 fftw expat pcre libsigcxx lensfun librsvg diff --git a/pkgs/applications/graphics/rawtherapee/fix-6324.patch b/pkgs/applications/graphics/rawtherapee/fix-6324.patch new file mode 100644 index 0000000000000..fa324c2c9389b --- /dev/null +++ b/pkgs/applications/graphics/rawtherapee/fix-6324.patch @@ -0,0 +1,356 @@ +See: + https://github.com/Beep6581/RawTherapee/issues/6324 + https://github.com/Beep6581/RawTherapee/commit/2e0137d54243eb729d4a5f939c4320ec8f8f415d + +diff --git a/rtengine/canon_cr3_decoder.cc b/rtengine/canon_cr3_decoder.cc +index 6274154cb..98c743dad 100644 +--- a/rtengine/canon_cr3_decoder.cc ++++ b/rtengine/canon_cr3_decoder.cc +@@ -662,7 +662,7 @@ std::uint32_t _byteswap_ulong(std::uint32_t x) + #endif + + struct LibRaw_abstract_datastream { +- IMFILE* ifp; ++ rtengine::IMFILE* ifp; + + void lock() + { +diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc +index 812f122b3..5da696af2 100644 +--- a/rtengine/dcraw.cc ++++ b/rtengine/dcraw.cc +@@ -2025,7 +2025,7 @@ void CLASS phase_one_load_raw_c() + #endif + { + int len[2], pred[2]; +- IMFILE ifpthr = *ifp; ++ rtengine::IMFILE ifpthr = *ifp; + ifpthr.plistener = nullptr; + + #ifdef _OPENMP +@@ -3380,7 +3380,7 @@ void CLASS sony_arw2_load_raw() + { + uchar *data = new (std::nothrow) uchar[raw_width + 1]; + merror(data, "sony_arw2_load_raw()"); +- IMFILE ifpthr = *ifp; ++ rtengine::IMFILE ifpthr = *ifp; + int pos = ifpthr.pos; + ushort pix[16]; + +@@ -6394,7 +6394,7 @@ int CLASS parse_tiff_ifd (int base) + unsigned sony_curve[] = { 0,0,0,0,0,4095 }; + unsigned *buf, sony_offset=0, sony_length=0, sony_key=0; + struct jhead jh; +-/*RT*/ IMFILE *sfp; ++/*RT*/ rtengine::IMFILE *sfp; + /*RT*/ int pana_raw = 0; + + if (tiff_nifds >= sizeof tiff_ifd / sizeof tiff_ifd[0]) +@@ -6958,7 +6958,7 @@ it under the terms of the one of two licenses as you choose: + fread (buf, sony_length, 1, ifp); + sony_decrypt (buf, sony_length/4, 1, sony_key); + sfp = ifp; +-/*RT*/ ifp = fopen (buf, sony_length); ++/*RT*/ ifp = rtengine::fopen (buf, sony_length); + // if ((ifp = tmpfile())) { + // fwrite (buf, sony_length, 1, ifp); + // fseek (ifp, 0, SEEK_SET); +@@ -7264,7 +7264,7 @@ void CLASS parse_external_jpeg() + { + const char *file, *ext; + char *jname, *jfile, *jext; +-/*RT*/ IMFILE *save=ifp; ++/*RT*/ rtengine::IMFILE *save=ifp; + + ext = strrchr (ifname, '.'); + file = strrchr (ifname, '/'); +@@ -7292,7 +7292,7 @@ void CLASS parse_external_jpeg() + *jext = '0'; + } + if (strcmp (jname, ifname)) { +-/*RT*/ if ((ifp = fopen (jname))) { ++/*RT*/ if ((ifp = rtengine::fopen (jname))) { + // if ((ifp = fopen (jname, "rb"))) { + if (verbose) + fprintf (stderr,_("Reading metadata from %s ...\n"), jname); +diff --git a/rtengine/dcraw.h b/rtengine/dcraw.h +index 89c1fcaff..f25157088 100644 +--- a/rtengine/dcraw.h ++++ b/rtengine/dcraw.h +@@ -73,7 +73,7 @@ public: + + protected: + int exif_base, ciff_base, ciff_len; +- IMFILE *ifp; ++ rtengine::IMFILE *ifp; + FILE *ofp; + short order; + const char *ifname; +@@ -125,7 +125,7 @@ protected: + int cur_buf_size; // buffer size + uchar *cur_buf; // currently read block + int fillbytes; // Counter to add extra byte for block size N*16 +- IMFILE *input; ++ rtengine::IMFILE *input; + struct int_pair grad_even[3][41]; // tables of gradients + struct int_pair grad_odd[3][41]; + ushort *linealloc; +@@ -278,7 +278,7 @@ void parse_redcine(); + class getbithuff_t + { + public: +- getbithuff_t(DCraw *p,IMFILE *&i, unsigned &z):parent(p),bitbuf(0),vbits(0),reset(0),ifp(i),zero_after_ff(z){} ++ getbithuff_t(DCraw *p,rtengine::IMFILE *&i, unsigned &z):parent(p),bitbuf(0),vbits(0),reset(0),ifp(i),zero_after_ff(z){} + unsigned operator()(int nbits, ushort *huff); + + private: +@@ -288,7 +288,7 @@ private: + DCraw *parent; + unsigned bitbuf; + int vbits, reset; +- IMFILE *&ifp; ++ rtengine::IMFILE *&ifp; + unsigned &zero_after_ff; + }; + getbithuff_t getbithuff; +@@ -296,7 +296,7 @@ getbithuff_t getbithuff; + class nikbithuff_t + { + public: +- explicit nikbithuff_t(IMFILE *&i):bitbuf(0),errors(0),vbits(0),ifp(i){} ++ explicit nikbithuff_t(rtengine::IMFILE *&i):bitbuf(0),errors(0),vbits(0),ifp(i){} + void operator()() {bitbuf = vbits = 0;}; + unsigned operator()(int nbits, ushort *huff); + unsigned errorCount() { return errors; } +@@ -309,7 +309,7 @@ private: + } + unsigned bitbuf, errors; + int vbits; +- IMFILE *&ifp; ++ rtengine::IMFILE *&ifp; + }; + nikbithuff_t nikbithuff; + +@@ -378,7 +378,7 @@ void parse_qt (int end); + // ph1_bithuff(int nbits, ushort *huff); + class ph1_bithuff_t { + public: +- ph1_bithuff_t(DCraw *p, IMFILE *i, short &o):order(o),ifp(i),bitbuf(0),vbits(0){} ++ ph1_bithuff_t(DCraw *p, rtengine::IMFILE *i, short &o):order(o),ifp(i),bitbuf(0),vbits(0){} + unsigned operator()(int nbits, ushort *huff); + unsigned operator()(int nbits); + unsigned operator()(); +@@ -412,7 +412,7 @@ private: + } + + short ℴ +- IMFILE* const ifp; ++ rtengine::IMFILE* const ifp; + UINT64 bitbuf; + int vbits; + }; +@@ -430,11 +430,11 @@ void nokia_load_raw(); + + class pana_bits_t{ + public: +- pana_bits_t(IMFILE *i, unsigned &u, unsigned enc): ++ pana_bits_t(rtengine::IMFILE *i, unsigned &u, unsigned enc): + ifp(i), load_flags(u), vbits(0), encoding(enc) {} + unsigned operator()(int nbits, unsigned *bytes=nullptr); + private: +- IMFILE *ifp; ++ rtengine::IMFILE *ifp; + unsigned &load_flags; + uchar buf[0x4000]; + int vbits; +diff --git a/rtengine/dfmanager.cc b/rtengine/dfmanager.cc +index 1fb1d2e1b..951df2248 100644 +--- a/rtengine/dfmanager.cc ++++ b/rtengine/dfmanager.cc +@@ -540,7 +540,7 @@ std::vector<badPix> *DFManager::getHotPixels ( const std::string &mak, const std + + int DFManager::scanBadPixelsFile( Glib::ustring filename ) + { +- FILE *file = fopen( filename.c_str(), "r" ); ++ FILE *file = ::fopen( filename.c_str(), "r" ); + + if( !file ) { + return false; +diff --git a/rtengine/myfile.cc b/rtengine/myfile.cc +index 842766dcf..2321d18bb 100644 +--- a/rtengine/myfile.cc ++++ b/rtengine/myfile.cc +@@ -70,7 +70,7 @@ int munmap(void *start, size_t length) + + #ifdef MYFILE_MMAP + +-IMFILE* fopen (const char* fname) ++rtengine::IMFILE* rtengine::fopen (const char* fname) + { + int fd; + +@@ -123,13 +123,13 @@ IMFILE* fopen (const char* fname) + return mf; + } + +-IMFILE* gfopen (const char* fname) ++rtengine::IMFILE* rtengine::gfopen (const char* fname) + { + return fopen(fname); + } + #else + +-IMFILE* fopen (const char* fname) ++rtengine::IMFILE* rtengine::fopen (const char* fname) + { + + FILE* f = g_fopen (fname, "rb"); +@@ -152,7 +152,7 @@ IMFILE* fopen (const char* fname) + return mf; + } + +-IMFILE* gfopen (const char* fname) ++rtengine::IMFILE* rtengine::gfopen (const char* fname) + { + + FILE* f = g_fopen (fname, "rb"); +@@ -176,7 +176,7 @@ IMFILE* gfopen (const char* fname) + } + #endif //MYFILE_MMAP + +-IMFILE* fopen (unsigned* buf, int size) ++rtengine::IMFILE* rtengine::fopen (unsigned* buf, int size) + { + + IMFILE* mf = new IMFILE; +@@ -190,7 +190,7 @@ IMFILE* fopen (unsigned* buf, int size) + return mf; + } + +-void fclose (IMFILE* f) ++void rtengine::fclose (IMFILE* f) + { + #ifdef MYFILE_MMAP + +@@ -207,7 +207,7 @@ void fclose (IMFILE* f) + delete f; + } + +-int fscanf (IMFILE* f, const char* s ...) ++int rtengine::fscanf (IMFILE* f, const char* s ...) + { + // fscanf not easily wrapped since we have no terminating \0 at end + // of file data and vsscanf() won't tell us how many characters that +@@ -253,7 +253,7 @@ int fscanf (IMFILE* f, const char* s ...) + } + + +-char* fgets (char* s, int n, IMFILE* f) ++char* rtengine::fgets (char* s, int n, IMFILE* f) + { + + if (f->pos >= f->size) { +@@ -270,7 +270,7 @@ char* fgets (char* s, int n, IMFILE* f) + return s; + } + +-void imfile_set_plistener(IMFILE *f, rtengine::ProgressListener *plistener, double progress_range) ++void rtengine::imfile_set_plistener(IMFILE *f, rtengine::ProgressListener *plistener, double progress_range) + { + f->plistener = plistener; + f->progress_range = progress_range; +@@ -278,7 +278,7 @@ void imfile_set_plistener(IMFILE *f, rtengine::ProgressListener *plistener, doub + f->progress_current = 0; + } + +-void imfile_update_progress(IMFILE *f) ++void rtengine::imfile_update_progress(IMFILE *f) + { + if (!f->plistener || f->progress_current < f->progress_next) { + return; +diff --git a/rtengine/myfile.h b/rtengine/myfile.h +index 423edea9a..c655696e6 100644 +--- a/rtengine/myfile.h ++++ b/rtengine/myfile.h +@@ -30,8 +30,6 @@ namespace rtengine + + class ProgressListener; + +-} +- + struct IMFILE { + int fd; + ssize_t pos; +@@ -141,3 +139,5 @@ inline unsigned char* fdata(int offset, IMFILE* f) + + int fscanf (IMFILE* f, const char* s ...); + char* fgets (char* s, int n, IMFILE* f); ++ ++} +diff --git a/rtengine/rtthumbnail.cc b/rtengine/rtthumbnail.cc +index 9da601e2a..097b9e711 100644 +--- a/rtengine/rtthumbnail.cc ++++ b/rtengine/rtthumbnail.cc +@@ -1922,7 +1922,7 @@ bool Thumbnail::writeImage (const Glib::ustring& fname) + + Glib::ustring fullFName = fname + ".rtti"; + +- FILE* f = g_fopen (fullFName.c_str (), "wb"); ++ FILE* f = ::g_fopen (fullFName.c_str (), "wb"); + + if (!f) { + return false; +@@ -1965,7 +1965,7 @@ bool Thumbnail::readImage (const Glib::ustring& fname) + return false; + } + +- FILE* f = g_fopen(fullFName.c_str (), "rb"); ++ FILE* f = ::g_fopen(fullFName.c_str (), "rb"); + + if (!f) { + return false; +@@ -2191,7 +2191,7 @@ bool Thumbnail::writeData (const Glib::ustring& fname) + return false; + } + +- FILE *f = g_fopen (fname.c_str (), "wt"); ++ FILE *f = ::g_fopen (fname.c_str (), "wt"); + + if (!f) { + if (settings->verbose) { +@@ -2214,7 +2214,7 @@ bool Thumbnail::readEmbProfile (const Glib::ustring& fname) + embProfile = nullptr; + embProfileLength = 0; + +- FILE* f = g_fopen (fname.c_str (), "rb"); ++ FILE* f = ::g_fopen (fname.c_str (), "rb"); + + if (f) { + if (!fseek (f, 0, SEEK_END)) { +@@ -2242,7 +2242,7 @@ bool Thumbnail::writeEmbProfile (const Glib::ustring& fname) + { + + if (embProfileData) { +- FILE* f = g_fopen (fname.c_str (), "wb"); ++ FILE* f = ::g_fopen (fname.c_str (), "wb"); + + if (f) { + fwrite (embProfileData, 1, embProfileLength, f); +@@ -2257,7 +2257,7 @@ bool Thumbnail::writeEmbProfile (const Glib::ustring& fname) + bool Thumbnail::readAEHistogram (const Glib::ustring& fname) + { + +- FILE* f = g_fopen(fname.c_str(), "rb"); ++ FILE* f = ::g_fopen(fname.c_str(), "rb"); + + if (!f) { + aeHistogram.reset(); +@@ -2280,7 +2280,7 @@ bool Thumbnail::writeAEHistogram (const Glib::ustring& fname) + { + + if (aeHistogram) { +- FILE* f = g_fopen (fname.c_str (), "wb"); ++ FILE* f = ::g_fopen (fname.c_str (), "wb"); + + if (f) { + fwrite (&aeHistogram[0], 1, (65536 >> aeHistCompression)*sizeof (aeHistogram[0]), f); diff --git a/pkgs/applications/graphics/shotwell/default.nix b/pkgs/applications/graphics/shotwell/default.nix index 56d41d3dd503b..098d330f004a1 100644 --- a/pkgs/applications/graphics/shotwell/default.nix +++ b/pkgs/applications/graphics/shotwell/default.nix @@ -41,11 +41,11 @@ stdenv.mkDerivation rec { pname = "shotwell"; - version = "0.30.14"; + version = "0.30.15"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "sha256-McLkgzkI02GcssNnWgXw2lnCuqduKLkFOF/VbADBKJU="; + sha256 = "sha256-OlKtYLEC2g31902wMcRdTM8mNRPJVGFu4WZL9PTpvck="; }; nativeBuildInputs = [ diff --git a/pkgs/applications/graphics/skanpage/default.nix b/pkgs/applications/graphics/skanpage/default.nix index 17a228808972f..bee04cbad52c1 100644 --- a/pkgs/applications/graphics/skanpage/default.nix +++ b/pkgs/applications/graphics/skanpage/default.nix @@ -30,7 +30,7 @@ mkDerivation rec { description = "KDE utility to scan images and multi-page documents"; homepage = "https://apps.kde.org/skanpage"; license = licenses.gpl2Plus; - maintainers = with maintainers; [ samuelgrf ]; + maintainers = with maintainers; [ ]; platforms = platforms.linux; }; } diff --git a/pkgs/applications/graphics/synfigstudio/default.nix b/pkgs/applications/graphics/synfigstudio/default.nix index 2b9fee974b377..57f3560233609 100644 --- a/pkgs/applications/graphics/synfigstudio/default.nix +++ b/pkgs/applications/graphics/synfigstudio/default.nix @@ -103,10 +103,10 @@ stdenv.mkDerivation { preConfigure = "./bootstrap.sh"; - nativeBuildInputs = [ pkg-config autoreconfHook gettext ]; + nativeBuildInputs = [ pkg-config autoreconfHook gettext makeWrapper ]; buildInputs = [ ETL boost cairo glibmm gtk3 gtkmm3 imagemagick intltool - libjack2 libsigcxx libxmlxx makeWrapper mlt-qt5 + libjack2 libsigcxx libxmlxx mlt-qt5 synfig which gnome.adwaita-icon-theme ]; diff --git a/pkgs/applications/graphics/unigine-sanctuary/default.nix b/pkgs/applications/graphics/unigine-sanctuary/default.nix new file mode 100644 index 0000000000000..25d10d6166783 --- /dev/null +++ b/pkgs/applications/graphics/unigine-sanctuary/default.nix @@ -0,0 +1,97 @@ +{ lib +, stdenv +, fetchurl +, makeWrapper +, autoPatchelfHook +, libX11 +, libXext +, libXrandr +, libXinerama +, libglvnd +, openal +, glibc +, makeDesktopItem +, copyDesktopItems +, imagemagick +, liberation_ttf +}: +stdenv.mkDerivation rec{ + pname = "unigine-sanctuary"; + version = "2.3"; + + src = fetchurl { + url = "https://m12-assets.unigine.com/d/Unigine_Sanctuary-${version}.run"; + sha256 = "1m9r79q33hx213zg3c2kknnc7hi8jp2h88s9qynny4k4rg8vpa18"; + }; + + libPath = lib.makeLibraryPath [ + libglvnd + openal + glibc + ]; + + installPhase = '' + bash $src --target ${pname}-${version} + + install -D -m 0755 ${pname}-${version}/bin/libUnigine_x86.so $out/lib/unigine/sanctuary/bin/libUnigine_x86.so + install -D -m 0755 ${pname}-${version}/bin/Sanctuary $out/lib/unigine/sanctuary/bin/Sanctuary + install -D -m 0755 ${pname}-${version}/1024x768_windowed.sh $out/bin/Sanctuary + + cp -R ${pname}-${version}/data $out/lib/unigine/sanctuary + + wrapProgram $out/bin/Sanctuary \ + --prefix LD_LIBRARY_PATH : ${libPath}:$out/lib/unigine/sanctuary/bin \ + --run "cd $out/lib/unigine/sanctuary" + + convert -size 256x256 xc:Transparent -define gradient:center="128,128" -define gradient:vector="128,128 128,128" \ + -define gradient:radii="128,128" -fill radial-gradient:'rgb(164,0,0)-rgb(67,1,3)' \ + -draw "roundRectangle 0,0 256,256 50,50" ${pname}-${version}/icon.png + convert ${pname}-${version}/icon.png -size 181.991x181.991 -font ${liberation_ttf}/share/fonts/truetype/LiberationSans-Regular.ttf \ + -pointsize 181.991 -define gradient:center="128,128" -define gradient:vector="128,128 128,128" \ + -define gradient:radii="46.6974,46.6974" -fill radial-gradient:'rgb(249,197,46)-rgb(218,144,31)' \ + -stroke none -strokewidth 4.54977 -draw 'text 69.3061,194.247 "S"' ${pname}-${version}/icon.png + + for RES in 16 24 32 48 64 128 256; do + mkdir -p $out/share/icons/hicolor/"$RES"x"$RES"/apps + convert ${pname}-${version}/icon.png -resize "$RES"x"$RES" $out/share/icons/hicolor/"$RES"x"$RES"/apps/Sanctuary.png + done + convert ${pname}-${version}/icon.png -resize 128x128 $out/share/icons/Sanctuary.png + + runHook postInstall + ''; + + desktopItems = [ + (makeDesktopItem { + name = "Sanctuary"; + exec = "Sanctuary"; + genericName = "A GPU Stress test tool from the UNIGINE"; + icon = "Sanctuary"; + desktopName = "Sanctuary Benchmark"; + }) + ]; + + nativeBuildInputs = [ + autoPatchelfHook + makeWrapper + imagemagick + copyDesktopItems + ]; + + buildInputs = [ + stdenv.cc.cc + libX11 + libXext + libXrandr + libXinerama + ]; + + dontUnpack = true; + + meta = { + description = "The Unigine Heaven GPU benchmarking tool"; + homepage = "https://benchmark.unigine.com/sanctuary"; + license = lib.licenses.unfree; + maintainers = [ lib.maintainers.BarinovMaxim ]; + platforms = [ "x86_64-linux" "i686-linux" ]; + }; +} diff --git a/pkgs/applications/graphics/unigine-tropics/default.nix b/pkgs/applications/graphics/unigine-tropics/default.nix new file mode 100644 index 0000000000000..1057c2fa6cad7 --- /dev/null +++ b/pkgs/applications/graphics/unigine-tropics/default.nix @@ -0,0 +1,95 @@ +{ lib +, stdenv +, fetchurl +, makeWrapper +, autoPatchelfHook +, libX11 +, libXext +, libXrandr +, libXinerama +, libglvnd +, openal +, glibc +, makeDesktopItem +, copyDesktopItems +, imagemagick +}: +let + version = "1.3"; +in +stdenv.mkDerivation { + pname = "unigine-tropics"; + inherit version; + + src = fetchurl { + url = "http://m12-assets.unigine.com/d/Unigine_Tropics-${version}.run"; + sha256 = "0icasdp46fjnic7gk83pknjx0gpap9j202dm0llcfg5zin5kbq7x"; + }; + + libPath = lib.makeLibraryPath [ + libglvnd + openal + glibc + ]; + + installPhase = '' + bash $src --target $name + + install -D -m 0755 $name/bin/libUnigine_x86.so $out/lib/unigine/tropics/bin/libUnigine_x86.so + install -D -m 0755 $name/bin/Tropics $out/lib/unigine/tropics/bin/Tropics + install -D -m 0755 $name/1024x768_windowed.sh $out/bin/Tropics + + cp -R $name/data $out/lib/unigine/tropics + + wrapProgram $out/bin/Tropics \ + --prefix LD_LIBRARY_PATH : $libPath:$out/lib/unigine/tropics/bin \ + --run "cd $out/lib/unigine/tropics" + + convert -size 256x256 xc:Transparent -fill gradient:'dodgerblue-white' -stroke Transparent -draw "roundrectangle 0,0 256,256 50,50" $name/icon.png + convert $name/icon.png -fill white -stroke white -draw "polygon 69.2564,84.1261 117.9,84.1261 117.9,206.56 138.1,206.56 138.1,84.1261 186.744,84.1261 186.744,65.9877 69.2564,65.9877 69.2564,84.1261" $name/icon.png + + for RES in 16 24 32 48 64 128 256 + do + mkdir -p $out/share/icons/hicolor/"$RES"x"$RES"/apps + convert $name/icon.png -resize "$RES"x"$RES" $out/share/icons/hicolor/"$RES"x"$RES"/apps/Tropics.png + done + convert $name/icon.png -resize 128x128 $out/share/icons/Tropics.png + + runHook postInstall + ''; + + desktopItems = [ + (makeDesktopItem { + name = "Tropics"; + exec = "Tropics"; + genericName = "A GPU Stress test tool from the UNIGINE"; + icon = "Tropics"; + desktopName = "Tropics Benchmark"; + }) + ]; + + nativeBuildInputs = [ + autoPatchelfHook + makeWrapper + imagemagick + copyDesktopItems + ]; + + buildInputs = [ + stdenv.cc.cc + libX11 + libXext + libXrandr + libXinerama + ]; + + dontUnpack = true; + + meta = { + description = "The Unigine Heaven GPU benchmarking tool"; + homepage = "https://benchmark.unigine.com/tropics"; + license = lib.licenses.unfree; + maintainers = [ lib.maintainers.BarinovMaxim ]; + platforms = [ "x86_64-linux" "i686-linux" ]; + }; +} diff --git a/pkgs/applications/graphics/unigine-valley/default.nix b/pkgs/applications/graphics/unigine-valley/default.nix index 3187f573de704..9b51373178e44 100644 --- a/pkgs/applications/graphics/unigine-valley/default.nix +++ b/pkgs/applications/graphics/unigine-valley/default.nix @@ -1,10 +1,15 @@ -{ lib, stdenv, fetchurl +{ lib +, stdenv +, fetchurl -# Build-time dependencies + # Build-time dependencies , makeWrapper , file +, makeDesktopItem +, imagemagick +, copyDesktopItems -# Runtime dependencies + # Runtime dependencies , fontconfig , freetype , libX11 @@ -12,104 +17,120 @@ , libXinerama , libXrandr , libXrender -, libGL -, openal}: +, libglvnd +, openal +}: let version = "1.0"; - arch = if stdenv.hostPlatform.system == "x86_64-linux" then - "x64" - else if stdenv.hostPlatform.system == "i686-linux" then - "x86" - else - throw "Unsupported platform ${stdenv.hostPlatform.system}"; - + arch = + if stdenv.hostPlatform.system == "x86_64-linux" then + "x64" + else if stdenv.hostPlatform.system == "i686-linux" then + "x86" + else + throw "Unsupported platform ${stdenv.hostPlatform.system}"; in - stdenv.mkDerivation rec { - pname = "unigine-valley"; - inherit version; - - src = fetchurl { - url = "http://assets.unigine.com/d/Unigine_Valley-${version}.run"; - sha256 = "5f0c8bd2431118551182babbf5f1c20fb14e7a40789697240dcaf546443660f4"; - }; - - sourceRoot = "Unigine_Valley-${version}"; - instPath = "lib/unigine/valley"; - - nativeBuildInputs = [file makeWrapper]; - - libPath = lib.makeLibraryPath [ - stdenv.cc.cc # libstdc++.so.6 - fontconfig - freetype - libX11 - libXext - libXinerama - libXrandr - libXrender - libGL - openal - ]; - - unpackPhase = '' - runHook preUnpack - - cp $src extractor.run - chmod +x extractor.run - ./extractor.run --target $sourceRoot - - runHook postUnpack - ''; - - patchPhase = '' - runHook prePatch - - # Patch ELF files. - elfs=$(find bin -type f | xargs file | grep ELF | cut -d ':' -f 1) - for elf in $elfs; do - patchelf --set-interpreter ${stdenv.cc.libc}/lib/ld-linux-x86-64.so.2 $elf || true - done - - runHook postPatch - ''; - - installPhase = '' - runHook preInstall - - instdir=$out/${instPath} - - # Install executables and libraries - mkdir -p $instdir/bin - install -m 0755 bin/browser_${arch} $instdir/bin - install -m 0755 bin/libApp{Stereo,Surround,Wall}_${arch}.so $instdir/bin - install -m 0755 bin/libGPUMonitor_${arch}.so $instdir/bin - install -m 0755 bin/libQt{Core,Gui,Network,WebKit,Xml}Unigine_${arch}.so.4 $instdir/bin - install -m 0755 bin/libUnigine_${arch}.so $instdir/bin - install -m 0755 bin/valley_${arch} $instdir/bin - install -m 0755 valley $instdir - - # Install other files - cp -R data documentation $instdir - - # Install and wrap executable - mkdir -p $out/bin - install -m 0755 valley $out/bin/valley - wrapProgram $out/bin/valley \ - --run "cd $instdir" \ - --prefix LD_LIBRARY_PATH : /run/opengl-driver/lib:$instdir/bin:$libPath - - runHook postInstall - ''; - - stripDebugList = ["${instPath}/bin"]; - - meta = { - description = "The Unigine Valley GPU benchmarking tool"; - homepage = "https://unigine.com/products/benchmarks/valley/"; - license = lib.licenses.unfree; # see also: $out/$instPath/documentation/License.pdf - maintainers = [ lib.maintainers.kierdavis ]; - platforms = ["x86_64-linux" "i686-linux"]; - }; - } + +stdenv.mkDerivation rec { + pname = "unigine-valley"; + inherit version; + + src = fetchurl { + url = "https://m11-assets.unigine.com/d/Unigine_Valley-${version}.run"; + sha256 = "5f0c8bd2431118551182babbf5f1c20fb14e7a40789697240dcaf546443660f4"; + }; + + sourceRoot = "Unigine_Valley-${version}"; + instPath = "lib/unigine/valley"; + + nativeBuildInputs = [ file makeWrapper imagemagick copyDesktopItems ]; + + libPath = lib.makeLibraryPath [ + stdenv.cc.cc # libstdc++.so.6 + fontconfig + freetype + libX11 + libXext + libXinerama + libXrandr + libXrender + libglvnd + openal + ]; + + unpackPhase = '' + runHook preUnpack + + cp $src extractor.run + chmod +x extractor.run + ./extractor.run --target $sourceRoot + + runHook postUnpack + ''; + + postPatch = '' + # Patch ELF files. + elfs=$(find bin -type f | xargs file | grep ELF | cut -d ':' -f 1) + for elf in $elfs; do + patchelf --set-interpreter ${stdenv.cc.libc}/lib/ld-linux-x86-64.so.2 $elf || true + done + ''; + + installPhase = '' + runHook preInstall + + instdir=$out/${instPath} + mkdir -p $out/share/icons/hicolor $out/share/applications $out/bin $instdir/bin + + # Install executables and libraries + install -m 0755 bin/browser_${arch} $instdir/bin + install -m 0755 bin/libApp{Stereo,Surround,Wall}_${arch}.so $instdir/bin + install -m 0755 bin/libGPUMonitor_${arch}.so $instdir/bin + install -m 0755 bin/libQt{Core,Gui,Network,WebKit,Xml}Unigine_${arch}.so.4 $instdir/bin + install -m 0755 bin/libUnigine_${arch}.so $instdir/bin + install -m 0755 bin/valley_${arch} $instdir/bin + install -m 0755 valley $instdir + install -m 0755 valley $out/bin/valley + + # Install other files + cp -R data documentation $instdir + + # Install and wrap executable + wrapProgram $out/bin/valley \ + --chdir "$instdir" \ + --prefix LD_LIBRARY_PATH : /run/opengl-driver/lib:$instdir/bin:$libPath + + # Make desktop Icon + convert $out/lib/unigine/valley/data/launcher/icon.png -resize 128x128 $out/share/icons/Valley.png + for RES in 16 24 32 48 64 128 256 + do + mkdir -p $out/share/icons/hicolor/"$RES"x"$RES"/apps + convert $out/lib/unigine/valley/data/launcher/icon.png -resize "$RES"x"$RES" $out/share/icons/hicolor/"$RES"x"$RES"/apps/Valley.png + done + + runHook postInstall + ''; + + desktopItems = [ + (makeDesktopItem { + name = "Valley"; + exec = "valley"; + genericName = "A GPU Stress test tool from the UNIGINE"; + icon = "Valley"; + desktopName = "Valley Benchmark"; + }) + ]; + + stripDebugList = [ "${instPath}/bin" ]; + + meta = { + description = "The Unigine Valley GPU benchmarking tool"; + homepage = "https://unigine.com/products/benchmarks/valley/"; + license = lib.licenses.unfree; # see also: $out/$instPath/documentation/License.pdf + maintainers = [ lib.maintainers.kierdavis ]; + platforms = [ "x86_64-linux" "i686-linux" ]; + }; +} + diff --git a/pkgs/applications/graphics/yed/default.nix b/pkgs/applications/graphics/yed/default.nix index d2873f6414288..0385c5db9d86b 100644 --- a/pkgs/applications/graphics/yed/default.nix +++ b/pkgs/applications/graphics/yed/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "yEd"; - version = "3.21.1"; + version = "3.22"; src = fetchzip { url = "https://www.yworks.com/resources/yed/demo/${pname}-${version}.zip"; - sha256 = "1jw28hkd7p0n660gid8yh5y0kdcz6ycn4hsgjlf0pq48x9kv6w0c"; + sha256 = "sha256-GHYdvWie2k9YarS9DaA4bExswV3UQ26O8+7K/6yvtac="; }; nativeBuildInputs = [ makeWrapper unzip wrapGAppsHook ]; |