uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead

https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948
this can do it nicely.

Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
Anton Arapov 2021-04-03 12:58:10 +02:00 committed by Alan Daniels
commit 56de2bcd43
30691 changed files with 3076956 additions and 0 deletions

View file

@ -0,0 +1,89 @@
{ lib, stdenv, fetchFromGitHub, pkg-config, libtool
, bzip2, zlib, libX11, libXext, libXt, fontconfig, freetype, ghostscript, libjpeg, djvulibre
, lcms2, openexr, libpng, liblqr1, librsvg, libtiff, libxml2, openjpeg, libwebp, fftw, libheif, libde265
, ApplicationServices, Foundation
}:
let
arch =
if stdenv.hostPlatform.system == "i686-linux" then "i686"
else if stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "x86_64-darwin" then "x86-64"
else if stdenv.hostPlatform.system == "armv7l-linux" then "armv7l"
else if stdenv.hostPlatform.system == "aarch64-linux" || stdenv.hostPlatform.system == "aarch64-darwin" then "aarch64"
else if stdenv.hostPlatform.system == "powerpc64le-linux" then "ppc64le"
else null;
in
stdenv.mkDerivation rec {
pname = "imagemagick";
version = "6.9.12-26";
src = fetchFromGitHub {
owner = "ImageMagick";
repo = "ImageMagick6";
rev = version;
sha256 = "sha256-oNorY/93jk1v5BS1T3wqctXuzV4o8JlyZtHnsNYmO4U=";
};
outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big
outputMan = "out"; # it's tiny
enableParallelBuilding = true;
configureFlags =
[ "--with-frozenpaths" ]
++ (if arch != null then [ "--with-gcc-arch=${arch}" ] else [ "--without-gcc-arch" ])
++ lib.optional (librsvg != null) "--with-rsvg"
++ lib.optional (liblqr1 != null) "--with-lqr"
++ lib.optionals (ghostscript != null)
[ "--with-gs-font-dir=${ghostscript}/share/ghostscript/fonts"
"--with-gslib"
]
++ lib.optionals (stdenv.hostPlatform.isMinGW)
[ "--enable-static" "--disable-shared" ] # due to libxml2 being without DLLs ATM
;
nativeBuildInputs = [ pkg-config libtool ];
buildInputs =
[ zlib fontconfig freetype ghostscript
liblqr1 libpng libtiff libxml2 libheif libde265 djvulibre
]
++ lib.optionals (!stdenv.hostPlatform.isMinGW)
[ openexr librsvg openjpeg ]
++ lib.optionals stdenv.isDarwin
[ ApplicationServices Foundation ];
propagatedBuildInputs =
[ bzip2 freetype libjpeg lcms2 fftw ]
++ lib.optionals (!stdenv.hostPlatform.isMinGW)
[ libX11 libXext libXt libwebp ]
;
doCheck = false; # fails 6 out of 76 tests
postInstall = ''
(cd "$dev/include" && ln -s ImageMagick* ImageMagick)
moveToOutput "bin/*-config" "$dev"
moveToOutput "lib/ImageMagick-*/config-Q16" "$dev" # includes configure params
for file in "$dev"/bin/*-config; do
substituteInPlace "$file" --replace "${pkg-config}/bin/pkg-config -config" \
${pkg-config}/bin/${pkg-config.targetPrefix}pkg-config
substituteInPlace "$file" --replace ${pkg-config}/bin/pkg-config \
"PKG_CONFIG_PATH='$dev/lib/pkgconfig' '${pkg-config}/bin/${pkg-config.targetPrefix}pkg-config'"
done
'' + lib.optionalString (ghostscript != null) ''
for la in $out/lib/*.la; do
sed 's|-lgs|-L${lib.getLib ghostscript}/lib -lgs|' -i $la
done
'';
meta = with lib; {
homepage = "https://legacy.imagemagick.org/";
changelog = "https://legacy.imagemagick.org/script/changelog.php";
description = "A software suite to create, edit, compose, or convert bitmap images";
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ ];
license = licenses.asl20;
};
}

View file

@ -0,0 +1,133 @@
{ lib
, stdenv
, fetchFromGitHub
, pkg-config
, libtool
, bzip2
, zlib
, libX11
, libXext
, libXt
, fontconfig
, freetype
, ghostscript
, libjpeg
, djvulibre
, lcms2
, openexr
, libjxl
, libpng
, liblqr1
, libraw
, librsvg
, libtiff
, libxml2
, openjpeg
, libwebp
, libheif
, potrace
, curl
, ApplicationServices
, Foundation
, testers
, imagemagick
}:
let
arch =
if stdenv.hostPlatform.system == "i686-linux" then "i686"
else if stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "x86_64-darwin" then "x86-64"
else if stdenv.hostPlatform.system == "armv7l-linux" then "armv7l"
else if stdenv.hostPlatform.system == "aarch64-linux" || stdenv.hostPlatform.system == "aarch64-darwin" then "aarch64"
else if stdenv.hostPlatform.system == "powerpc64le-linux" then "ppc64le"
else null;
in
stdenv.mkDerivation rec {
pname = "imagemagick";
version = "7.1.0-37";
src = fetchFromGitHub {
owner = "ImageMagick";
repo = "ImageMagick";
rev = version;
hash = "sha256-Okp3oPIAEXl+fTnEw0jufSxcRU6ip+on5/IyGEjzx2E=";
};
outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big
outputMan = "out"; # it's tiny
enableParallelBuilding = true;
configureFlags =
[ "--with-frozenpaths" ]
++ (if arch != null then [ "--with-gcc-arch=${arch}" ] else [ "--without-gcc-arch" ])
++ lib.optional (librsvg != null) "--with-rsvg"
++ lib.optional (liblqr1 != null) "--with-lqr"
++ lib.optional (libjxl != null ) "--with-jxl"
++ lib.optionals (ghostscript != null)
[
"--with-gs-font-dir=${ghostscript}/share/ghostscript/fonts"
"--with-gslib"
]
++ lib.optionals stdenv.hostPlatform.isMinGW
[ "--enable-static" "--disable-shared" ] # due to libxml2 being without DLLs ATM
;
nativeBuildInputs = [ pkg-config libtool ];
buildInputs =
[
zlib
fontconfig
freetype
ghostscript
potrace
liblqr1
libpng
libraw
libtiff
libxml2
libheif
djvulibre
libjxl
]
++ lib.optionals (!stdenv.hostPlatform.isMinGW)
[ openexr librsvg openjpeg ]
++ lib.optionals stdenv.isDarwin [
ApplicationServices
Foundation
];
propagatedBuildInputs =
[ bzip2 freetype libjpeg lcms2 curl ]
++ lib.optionals (!stdenv.hostPlatform.isMinGW)
[ libX11 libXext libXt libwebp ]
;
postInstall = ''
(cd "$dev/include" && ln -s ImageMagick* ImageMagick)
moveToOutput "bin/*-config" "$dev"
moveToOutput "lib/ImageMagick-*/config-Q16HDRI" "$dev" # includes configure params
for file in "$dev"/bin/*-config; do
substituteInPlace "$file" --replace pkg-config \
"PKG_CONFIG_PATH='$dev/lib/pkgconfig' '${pkg-config}/bin/${pkg-config.targetPrefix}pkg-config'"
done
'' + lib.optionalString (ghostscript != null) ''
for la in $out/lib/*.la; do
sed 's|-lgs|-L${lib.getLib ghostscript}/lib -lgs|' -i $la
done
'';
passthru.tests.version =
testers.testVersion { package = imagemagick; };
meta = with lib; {
homepage = "http://www.imagemagick.org/";
description = "A software suite to create, edit, compose, or convert bitmap images";
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ erictapen dotlambda ];
license = licenses.asl20;
mainProgram = "magick";
};
}

View file

@ -0,0 +1,53 @@
{ config, lib, stdenv, fetchFromGitHub, pkg-config, libconfig
, gtkmm2, glibmm, libxml2, libsecret, curl, libzip
, librsvg, gst_all_1, autoreconfHook, makeWrapper
, useUnrar ? config.ahoviewer.useUnrar or false, unrar
}:
assert useUnrar -> unrar != null;
stdenv.mkDerivation rec {
pname = "ahoviewer";
version = "1.6.5";
src = fetchFromGitHub {
owner = "ahodesuka";
repo = "ahoviewer";
rev = version;
sha256 = "1avdl4qcpznvf3s2id5qi1vnzy4wgh6vxpnrz777a1s4iydxpcd8";
};
enableParallelBuilding = true;
nativeBuildInputs = [ autoreconfHook pkg-config makeWrapper ];
buildInputs = [
glibmm libconfig gtkmm2 glibmm libxml2
libsecret curl libzip librsvg
gst_all_1.gstreamer
gst_all_1.gst-plugins-good
gst_all_1.gst-libav
gst_all_1.gst-plugins-base
] ++ lib.optional useUnrar unrar;
NIX_LDFLAGS = "-lpthread";
postPatch = "patchShebangs version.sh";
postInstall = ''
wrapProgram $out/bin/ahoviewer \
--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0" \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE"
'';
meta = with lib; {
homepage = "https://github.com/ahodesuka/ahoviewer";
description = "A GTK2 image viewer, manga reader, and booru browser";
maintainers = with maintainers; [ skrzyp xzfc ];
license = licenses.mit;
# Unintentionally not working on Darwin:
# https://github.com/ahodesuka/ahoviewer/issues/62
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,76 @@
{ stdenv
, lib
, fetchFromGitHub
, appstream-glib
, desktop-file-utils
, meson
, ninja
, pantheon
, pkg-config
, python3
, vala
, vala-lint
, wrapGAppsHook
, cairo
, glib
, goocanvas3
, gtk3
, gtksourceview3
, json-glib
, libarchive
, libgee
, libxml2
}:
stdenv.mkDerivation rec {
pname = "akira";
version = "0.0.16";
src = fetchFromGitHub {
owner = "akiraux";
repo = "Akira";
rev = "v${version}";
sha256 = "sha256-qrqmSCwA0kQVFD1gzutks9gMr7My7nw/KJs/VPisa0w=";
};
nativeBuildInputs = [
appstream-glib
desktop-file-utils
meson
ninja
pkg-config
python3
vala
vala-lint
wrapGAppsHook
];
buildInputs = [
cairo
glib
goocanvas3
pantheon.granite
gtk3
gtksourceview3
json-glib
libarchive
libgee
libxml2
];
mesonFlags = [ "-Dprofile=default" ];
postPatch = ''
chmod +x build-aux/meson/post_install.py
patchShebangs build-aux/meson/post_install.py
'';
meta = with lib; {
description = "Native Linux Design application built in Vala and GTK";
homepage = "https://github.com/akiraux/Akira";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ Br1ght0ne neonfuz ] ++ teams.pantheon.members;
platforms = platforms.linux;
mainProgram = "com.github.akiraux.akira";
};
}

View file

@ -0,0 +1,41 @@
{ lib, stdenv, fetchurl, jre, runtimeShell }:
stdenv.mkDerivation rec {
pname = "alchemy";
version = "008";
enableParallelBuilding = true;
src = fetchurl {
url = "http://al.chemy.org/files/Alchemy-${version}.tar.gz";
sha256 = "0449bvdccgx1jqnws1bckzs4nv2d230523qs0jx015gi81s1q7li";
};
installPhase = ''
mkdir -p $out/bin $out/share
cp -a . $out/share/alchemy
cat >> $out/bin/alchemy << EOF
#!${runtimeShell}
cd $out/share/alchemy
${jre}/bin/java -jar Alchemy.jar "$@"
EOF
chmod +x $out/bin/alchemy
'';
meta = with lib; {
description = "Drawing application";
longDescription = ''
Alchemy is an open drawing project aimed at exploring how we can sketch,
draw, and create on computers in new ways. Alchemy isnt software for
creating finished artwork, but rather a sketching environment that
focuses on the absolute initial stage of the creation process.
Experimental in nature, Alchemy lets you brainstorm visually to explore
an expanded range of ideas and possibilities in a serendipitous way.
'';
homepage = "http://al.chemy.org/";
sourceProvenance = with sourceTypes; [ binaryBytecode ];
license = licenses.gpl3Plus;
maintainers = [ maintainers.marcweber ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,39 @@
{ stdenv, lib, fetchurl, cmake, qt4, file }:
stdenv.mkDerivation rec {
pname = "animbar";
version = "1.2";
src = fetchurl {
url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
sha256 = "0836nwcpyfdrapyj3hbg3wh149ihc26pc78h01adpc7c0r7d9pr9";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ qt4 file ];
installPhase = ''
mkdir -p $out/bin $out/share/pixmaps
cp src/animbar $out/bin
cp ../icon/* $out/share/pixmaps
'';
meta = with lib; {
description = "Create your own animation on paper and transparancy";
longDescription = ''
Animbar lets you easily create your own animation on paper and
transparancy. From a set of input images two output images are
computed, that are printed one on paper and one on
transparency. By moving the transparency over the paper you
create a fascinating animation effect. This kind of animation
technique is hundreds of years old and known under several
names: picket fence animation, barrier grid animation, Moiré
animation, to name a few.
'';
homepage = "http://animbar.mnim.org";
maintainers = with maintainers; [ leenaars ];
platforms = platforms.linux;
license = licenses.gpl3;
};
}

View file

@ -0,0 +1,70 @@
{ lib, stdenv, fetchFromGitHub, libpng, python3
, libGLU, libGL, qtbase, wrapQtAppsHook, ncurses
, cmake, flex, lemon
, makeDesktopItem, copyDesktopItems
}:
let
gitRev = "8fb4b0929ce84cf375bfb83a9d522ccd80681eaf";
gitBranch = "develop";
gitTag = "0.9.3";
in
stdenv.mkDerivation {
pname = "antimony";
version = "2020-03-28";
src = fetchFromGitHub {
owner = "mkeeter";
repo = "antimony";
rev = gitRev;
sha256 = "1s0zmq5jmhmb1wcsyaxfmii448g6x8b41mzvb1awlljj85qj0k2s";
};
patches = [ ./paths-fix.patch ];
postPatch = ''
sed -i "s,/usr/local,$out,g" \
app/CMakeLists.txt app/app/app.cpp app/app/main.cpp
sed -i "s,python3,${python3.executable}," CMakeLists.txt
'';
postInstall = lib.optionalString stdenv.isLinux ''
install -Dm644 $src/deploy/icon.svg $out/share/icons/hicolor/scalable/apps/antimony.svg
install -Dm644 ${./mimetype.xml} $out/share/mime/packages/antimony.xml
'';
buildInputs = [
libpng python3 python3.pkgs.boost
libGLU libGL qtbase ncurses
];
nativeBuildInputs = [ cmake flex lemon wrapQtAppsHook copyDesktopItems ];
desktopItems = [
(makeDesktopItem {
name = "antimony";
desktopName = "Antimony";
comment="Tree-based Modeler";
genericName = "CAD Application";
exec = "antimony %f";
icon = "antimony";
categories = [ "Graphics" "Science" "Engineering" ];
mimeTypes = [ "application/x-extension-sb" "application/x-antimony" ];
startupWMClass = "antimony";
})
];
cmakeFlags= [
"-DGITREV=${gitRev}"
"-DGITTAG=${gitTag}"
"-DGITBRANCH=${gitBranch}"
];
meta = with lib; {
description = "A computer-aided design (CAD) tool from a parallel universe";
homepage = "https://github.com/mkeeter/antimony";
license = licenses.mit;
maintainers = with maintainers; [ rnhmjoj ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="application/x-antimony">
<comment xml:lang="en">Antimony model</comment>
<glob pattern="*.sb"/>
</mime-type>
</mime-info>

View file

@ -0,0 +1,21 @@
diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt
index ddc5c9b..d80728a 100644
--- a/app/CMakeLists.txt
+++ b/app/CMakeLists.txt
@@ -158,16 +158,6 @@ target_link_libraries(${ANTIMONY_APP}
################################################################################
-execute_process(COMMAND git log --pretty=format:'%h' -n 1
- OUTPUT_VARIABLE GITREV)
-execute_process(COMMAND bash -c "git diff --quiet --exit-code || echo +"
- OUTPUT_VARIABLE GITDIFF)
-execute_process(COMMAND git describe --exact-match --tags
- OUTPUT_VARIABLE GITTAG
- ERROR_QUIET)
-execute_process(COMMAND git rev-parse --abbrev-ref HEAD
- OUTPUT_VARIABLE GITBRANCH)
-
add_definitions(-D'GITREV="${GITREV}${GITDIFF}"'
-D'GITTAG="${GITTAG}"'
-D'GITBRANCH="${GITBRANCH}"')

View file

@ -0,0 +1,73 @@
{ lib, stdenv, fetchFromGitHub, cmake, libX11, procps, python2, libdwarf, qtbase, qtwebkit, wrapQtAppsHook, libglvnd }:
stdenv.mkDerivation rec {
pname = "apitrace";
version = "7.1-572-g${builtins.substring 0 8 src.rev}";
src = fetchFromGitHub {
sha256 = "11bwb0l8cr1bf9bj1s6cbmi77d5fy4qrphj9cgmcd8jpa862anp5";
rev = "26966134f15d28f6b4a9a0a560017b3ba36d60bf";
repo = "apitrace";
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 ];
nativeBuildInputs = [ cmake wrapQtAppsHook ];
# Don't automatically wrap all binaries, I prefer to explicitly only wrap
# `qapitrace`.
dontWrapQtApps = true;
postFixup = ''
# Since https://github.com/NixOS/nixpkgs/pull/60985, we add `/run-opengl-driver[-32]`
# to the `RUNPATH` of dispatcher libraries `dlopen()` ing OpenGL drivers.
# `RUNPATH` doesn't propagate throughout the whole application, but only
# from the module performing the `dlopen()`.
#
# Apitrace wraps programs by running them with `LD_PRELOAD` pointing to `.so`
# files in $out/lib/apitrace/wrappers.
#
# Theses wrappers effectively wrap the `dlopen()` calls from `libglvnd`
# and other dispatcher libraries, and run `dlopen()` by themselves.
#
# As `RUNPATH` doesn't propagate through the whole library, and they're now the
# library doing the real `dlopen()`, they also need to have
# `/run-opengl-driver[-32]` added to their `RUNPATH`.
#
# To stay simple, we add paths for 32 and 64 bits unconditionally.
# This doesn't have an impact on closure size, and if the 32 bit drivers
# are not available, that folder is ignored.
for i in $out/lib/apitrace/wrappers/*.so
do
echo "Patching OpenGL driver path for $i"
patchelf --set-rpath "/run/opengl-driver/lib:/run/opengl-driver-32/lib:$(patchelf --print-rpath $i)" $i
done
# Theses open the OpenGL driver at runtime, but it is not listed as NEEDED libraries. They need
# a reference to libglvnd.
for i in $out/bin/eglretrace $out/bin/glretrace
do
echo "Patching RPath for $i"
patchelf --set-rpath "${lib.makeLibraryPath [libglvnd]}:$(patchelf --print-rpath $i)" $i
done
wrapQtApp $out/bin/qapitrace
'';
meta = with lib; {
homepage = "https://apitrace.github.io";
description = "Tools to trace OpenGL, OpenGL ES, Direct3D, and DirectDraw APIs";
license = licenses.mit;
platforms = platforms.linux;
};
}

View file

@ -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>

View file

@ -0,0 +1,35 @@
{ lib, stdenv, fetchzip, libpng, zlib, zopfli }:
stdenv.mkDerivation rec {
pname = "apngasm";
version = "2.91";
src = fetchzip {
url = "mirror://sourceforge/${pname}/${pname}-${version}-src.zip";
stripRoot = false;
sha256 = "0qhljqql159xkn1l83vz0q8wvzr7rjz4jnhiy0zn36pgvacg0zn1";
};
buildInputs = [ libpng zlib zopfli ];
postPatch = ''
rm -rf libpng zlib zopfli
'';
NIX_CFLAGS_LINK = "-lzopfli";
installPhase = ''
install -Dt $out/bin apngasm
'';
enableParallelBuilding = true;
meta = with lib; {
description = "Create highly optimized Animated PNG files from PNG/TGA images";
homepage = "http://apngasm.sourceforge.net/";
license = licenses.zlib;
maintainers = with maintainers; [ orivej ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,34 @@
{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, boost, libpng, zlib }:
stdenv.mkDerivation rec {
pname = "apngasm";
version = "3.1.10";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "f105b2d6024ef3113bb407d68e27e476a17fa998";
sha256 = "sha256-lTk2sTllKHRUaWPPEkC4qU5K10oRaLrdWBgN4MUGKeo=";
};
patches = [
# Fix parallel build and avoid static linking of binary.
(fetchpatch {
url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-gfx/apngasm/files/apngasm-3.1.10-static.patch?id=45fd0cde71ca2ae0e7e38ab67400d84b86b593d7";
sha256 = "sha256-eKthgInWxXEqN5PupvVf9wVQDElxsPYRFXT7pMc6vIU=";
})
];
nativeBuildInputs = [ cmake ];
buildInputs = [ boost libpng zlib ];
meta = with lib; {
description = "Create an APNG from multiple PNG files";
homepage = "https://github.com/apngasm/apngasm";
license = licenses.zlib;
maintainers = with maintainers; [ orivej ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,22 @@
{ lib, buildGoModule, fetchFromGitHub }:
buildGoModule rec {
pname = "ascii-image-converter";
version = "1.12.0";
src = fetchFromGitHub {
owner = "TheZoraiz";
repo = "ascii-image-converter";
rev = "v${version}";
sha256 = "5Sa9PqhoJ/LCAHrymqVCO4bI39mQeVa4xv1z235Cxvg=";
};
vendorSha256 = "rQS3QH9vnEbQZszG3FOr1P5HYgS63BurCNCFQTTdvZs=";
meta = with lib; {
description = "Convert images into ASCII art on the console";
homepage = "https://github.com/TheZoraiz/ascii-image-converter#readme";
license = licenses.asl20;
maintainers = [ maintainers.danth ];
};
}

View file

@ -0,0 +1,28 @@
{ lib, stdenv, fetchurl, cmake, libpng, libtiff, libjpeg, panotools, libxml2 }:
stdenv.mkDerivation rec {
pname = "autopano-sift-C";
version = "2.5.1";
src = fetchurl {
url = "mirror://sourceforge/hugin/autopano-sift-C-${version}.tar.gz";
sha256 = "0dqk8ff82gmy4v5ns5nr9gpzkc1p7c2y8c8fkid102r47wsjk44s";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ libpng libtiff libjpeg panotools libxml2 ];
patches = [
(fetchurl {
url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-gfx/autopano-sift-C/files/autopano-sift-C-2.5.1-lm.patch";
sha256 = "1bfcr5sps0ip9gl4jprji5jgf9wkczz6d2clsjjlbsy8r3ixi3lv";
})
];
meta = {
homepage = "http://hugin.sourceforge.net/";
description = "Implementation in C of the autopano-sift algorithm for automatically stitching panoramas";
license = lib.licenses.gpl2;
platforms = lib.platforms.linux;
};
}

View file

@ -0,0 +1,11 @@
{ stdenv, fetchurl }:
stdenv.mkDerivation {
pname = "autofig";
version = "0.1";
src = fetchurl {
url = "http://autotrace.sourceforge.net/tools/autofig.tar.gz";
sha256 = "11cs9hdbgcl3aamcs3149i8kvyyldmnjf6yq81kbcf8fdmfk2zdq";
};
}

View file

@ -0,0 +1,125 @@
{ lib, stdenv, fetchurl, callPackage, libpng12, imagemagick
, autoreconfHook, glib, pstoedit, pkg-config, gettext, gd, darwin
, runtimeShell }:
# TODO: Figure out why the resultant binary is somehow linked against
# libpng16.so.16 rather than libpng12.
stdenv.mkDerivation rec {
pname = "autotrace";
version = "0.31.1";
src = fetchurl {
url = "mirror://sourceforge/autotrace/AutoTrace/0.31.1/${pname}-${version}.tar.gz";
sha256 = "1xmgja5fv48mdbsa51inf7ksz36nqd6bsaybrk5xgprm6cy946js";
};
# The below commented out part is for an identically-named project
# on GitHub which appears to derive somehow from the Sourceforge
# version, but I have no idea what the lineage is of this project.
# It will build, but it segfaults when I attempt to run -centerline.
# Someone may need this for some reason, so I've left it here.
#
#src = fetchFromGitHub {
# owner = "autotrace";
# repo = "autotrace";
# rev = "b3ac8818d86943102cb4f13734e0b527c42dc45a";
# sha256 = "0z5h2mvxwckk2msi361zk1nc9fdcvxyimyc2hlyqd6h8k3p7zdi4";
#};
#postConfigure = ''
# sed -i -e "s/at_string/gchar */g" *.c
# sed -i -e "s/at_address/gpointer/g" *.c
# sed -i -e "s/at_bitmap_type/struct _at_bitmap/g" *.c
# sed -i -e "s/AT_BITMAP_BITS(bitmap)/AT_BITMAP_BITS(\&bitmap)/g" input-magick.c
#'';
autofig = callPackage ./autofig.nix {};
nativeBuildInputs = [ autoreconfHook glib autofig pkg-config gettext ];
buildInputs = [ libpng12 imagemagick pstoedit ]
++ lib.optionals stdenv.isDarwin
(with darwin.apple_sdk.frameworks; [ gd ApplicationServices ]);
postUnpack = ''
pushd $sourceRoot
autofig autotrace-config.af
popd
'';
# This complains about various m4 files, but it appears to not be an
# actual error.
preConfigure = ''
glib-gettextize --copy --force
# pstoedit-config no longer exists, it was replaced with pkg-config
mkdir wrappers
cat >wrappers/pstoedit-config <<'EOF'
#!${runtimeShell}
# replace --version with --modversion for pkg-config
args=''${@/--version/--modversion}
exec pkg-config pstoedit "''${args[@]}"
EOF
chmod +x wrappers/pstoedit-config
export PATH="$PATH:$PWD/wrappers"
'';
meta = with lib; {
homepage = "http://autotrace.sourceforge.net/";
description = "Utility for converting bitmap into vector graphics";
platforms = platforms.unix;
maintainers = with maintainers; [ hodapp ];
license = licenses.gpl2;
knownVulnerabilities = [
"CVE-2013-1953"
"CVE-2016-7392"
"CVE-2017-9151"
"CVE-2017-9152"
"CVE-2017-9153"
"CVE-2017-9154"
"CVE-2017-9155"
"CVE-2017-9156"
"CVE-2017-9157"
"CVE-2017-9158"
"CVE-2017-9159"
"CVE-2017-9160"
"CVE-2017-9161"
"CVE-2017-9162"
"CVE-2017-9163"
"CVE-2017-9164"
"CVE-2017-9165"
"CVE-2017-9166"
"CVE-2017-9167"
"CVE-2017-9168"
"CVE-2017-9169"
"CVE-2017-9170"
"CVE-2017-9171"
"CVE-2017-9172"
"CVE-2017-9173"
"CVE-2017-9174"
"CVE-2017-9175"
"CVE-2017-9176"
"CVE-2017-9177"
"CVE-2017-9178"
"CVE-2017-9179"
"CVE-2017-9180"
"CVE-2017-9181"
"CVE-2017-9182"
"CVE-2017-9183"
"CVE-2017-9184"
"CVE-2017-9185"
"CVE-2017-9186"
"CVE-2017-9187"
"CVE-2017-9188"
"CVE-2017-9189"
"CVE-2017-9190"
"CVE-2017-9191"
"CVE-2017-9192"
"CVE-2017-9193"
"CVE-2017-9194"
"CVE-2017-9195"
"CVE-2017-9196"
"CVE-2017-9197"
"CVE-2017-9198"
"CVE-2017-9199"
"CVE-2017-9200"
];
};
}

View file

@ -0,0 +1,106 @@
{ lib, stdenv, makeDesktopItem, fetchurl, unzip
, gdk-pixbuf, glib, gtk3, atk, at-spi2-atk, pango, cairo, freetype, fontconfig, dbus, nss, nspr, alsa-lib, cups, expat, udev, gnome
, xorg, mozjpeg, makeWrapper, wrapGAppsHook, libuuid, at-spi2-core, libdrm, mesa, libxkbcommon
}:
stdenv.mkDerivation rec {
pname = "avocode";
version = "4.15.6";
src = fetchurl {
url = "https://media.avocode.com/download/avocode-app/${version}/avocode-${version}-linux.zip";
sha256 = "sha256-vNQT4jyMIIAk1pV3Hrp40nawFutWCv7xtwg2gU6ejy0=";
};
libPath = lib.makeLibraryPath (with xorg; [
stdenv.cc.cc.lib
at-spi2-core.out
gdk-pixbuf
glib
gtk3
atk
at-spi2-atk
pango
cairo
freetype
fontconfig
dbus
nss
nspr
alsa-lib
cups
expat
udev
libX11
libxcb
libxshmfence
libxkbcommon
libXi
libXcursor
libXdamage
libXrandr
libXcomposite
libXext
libXfixes
libXrender
libXtst
libXScrnSaver
libuuid
libdrm
mesa
]);
desktopItem = makeDesktopItem {
name = "Avocode";
exec = "avocode";
icon = "avocode";
desktopName = "Avocode";
genericName = "Design Inspector";
categories = [ "Development" ];
comment = "The bridge between designers and developers";
};
nativeBuildInputs = [makeWrapper wrapGAppsHook unzip];
buildInputs = [ gtk3 gnome.adwaita-icon-theme ];
# src is producing multiple folder on unzip so we must
# override unpackCmd to extract it into newly created folder
unpackCmd = ''
mkdir out
unzip $curSrc -d out
'';
installPhase = ''
substituteInPlace avocode.desktop.in \
--replace /path/to/avocode-dir/Avocode $out/bin/avocode \
--replace /path/to/avocode-dir/avocode.png avocode
mkdir -p share/applications share/pixmaps
mv avocode.desktop.in share/applications/avocode.desktop
mv avocode.png share/pixmaps/
rm resources/cjpeg
cp -av . $out
mkdir $out/bin
ln -s $out/avocode $out/bin/avocode
ln -s ${mozjpeg}/bin/cjpeg $out/resources/cjpeg
'';
postFixup = ''
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/avocode
for file in $(find $out -type f \( -perm /0111 -o -name \*.so\* \) ); do
patchelf --set-rpath ${libPath}:$out/ $file || true
done
'';
enableParallelBuilding = true;
meta = with lib; {
homepage = "https://avocode.com/";
description = "The bridge between designers and developers";
license = licenses.unfree;
platforms = platforms.linux;
maintainers = with maintainers; [ megheaiulian ];
};
}

View file

@ -0,0 +1,63 @@
{ mkDerivation, lib, fetchgit, qtbase, qmake, qtscript, flex, bison, qtdeclarative }:
let
version = "5.1";
src = fetchgit {
url = "https://github.com/kmkolasinski/AwesomeBump.git";
rev = "Winx32v${version}";
sha256 = "1c8b9jki0v8kzkvsvyv7q1w3s7j40br6ph15hh2xi0a1mpwckq56";
fetchSubmodules = true;
};
qtnproperty = mkDerivation {
name = "qtnproperty";
inherit src;
sourceRoot = "AwesomeBump/Sources/utils/QtnProperty";
patches = [ ./qtnproperty-parallel-building.patch ];
buildInputs = [ qtscript qtbase qtdeclarative ];
nativeBuildInputs = [ qmake flex bison ];
postInstall = ''
install -D bin-linux/QtnPEG $out/bin/QtnPEG
'';
};
in mkDerivation {
pname = "awesomebump";
inherit version;
inherit src;
buildInputs = [ qtbase qtscript qtdeclarative ];
nativeBuildInputs = [ qmake ];
preBuild = ''
ln -sf ${qtnproperty}/bin/QtnPEG Sources/utils/QtnProperty/bin-linux/QtnPEG
'';
dontWrapQtApps = true;
postInstall = ''
d=$out/libexec/AwesomeBump
mkdir -p $d
cp -vr workdir/`cat workdir/current`/bin/AwesomeBump $d/
cp -prd Bin/Configs Bin/Core $d/
# AwesomeBump expects to find Core and Configs in its current directory.
makeQtWrapper $d/AwesomeBump $out/bin/AwesomeBump \
--chdir "$d"
'';
# $ cd Sources; qmake; make ../workdir/linux-g++-dgb-gl4/obj/glwidget.o
# fatal error: properties/ImageProperties.peg.h: No such file or directory
enableParallelBuilding = false;
meta = {
homepage = "https://github.com/kmkolasinski/AwesomeBump";
description = "A program to generate normal, height, specular or ambient occlusion textures from a single image";
license = lib.licenses.gpl3Plus;
maintainers = [ lib.maintainers.eelco ];
platforms = lib.platforms.linux;
};
}

View file

@ -0,0 +1,9 @@
--- a/PEG/Flex.pri
+++ b/PEG/Flex.pri
@@ -1,5 +1,6 @@
flex.name = Flex ${QMAKE_FILE_IN}
flex.input = FLEX_SOURCES
+flex.depends = ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}.parser.cpp
flex.output = ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}.lexer.cpp
win32:flex.commands = win_flex --wincompat -o ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}.lexer.cpp ${QMAKE_FILE_IN}

View file

@ -0,0 +1,42 @@
{ lib, stdenv, fetchFromGitLab
, desktop-file-utils, shared-mime-info
, libiconv
, libX11, libXcursor, libXext, libXi
, freetype, fontconfig
, libjpeg, libpng, libtiff, libwebp
, zlib
}:
stdenv.mkDerivation rec {
pname = "azpainter";
version = "3.0.4";
src = fetchFromGitLab {
owner = "azelpg";
repo = pname;
rev = "v${version}";
hash = "sha256-2gTTF1ti9bO24d75mhwyvJISSgMKdmp+oJVmgzEQHdY=";
};
nativeBuildInputs = [
desktop-file-utils # for update-desktop-database
shared-mime-info # for update-mime-info
];
buildInputs = [
libX11 libXcursor libXext libXi
freetype fontconfig
libjpeg libpng libtiff libwebp
zlib
] ++ lib.optionals stdenv.isDarwin [ libiconv ];
enableParallelBuilding = true;
meta = with lib; {
description = "Full color painting software for illustration drawing";
homepage = "http://azsky2.html.xdomain.jp/soft/azpainter.html";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ dtzWill ];
platforms = with platforms; linux ++ darwin;
};
}

View file

@ -0,0 +1,23 @@
{lib, stdenv, fetchurl}:
stdenv.mkDerivation rec {
pname = "batik";
version = "1.14";
src = fetchurl {
url = "mirror://apache/xmlgraphics/batik/binaries/batik-bin-${version}.tar.gz";
sha256 = "sha256-D06qgb5wdS5AahnznDnAGISPCZY/CPqJdGQFRwUsRhg=";
};
meta = with lib; {
description = "Java based toolkit for handling SVG";
homepage = "https://xmlgraphics.apache.org/batik";
license = licenses.asl20;
platforms = platforms.unix;
};
installPhase = ''
mkdir $out
cp -r * $out/
'';
}

View file

@ -0,0 +1,48 @@
{ lib, stdenv, fetchurl, appimageTools, makeWrapper, electron_16 }:
stdenv.mkDerivation rec {
pname = "blockbench-electron";
version = "4.1.1";
src = fetchurl {
url = "https://github.com/JannisX11/blockbench/releases/download/v${version}/Blockbench_${version}.AppImage";
sha256 = "0mqdkjhmylrjjfrm05jv1967qqka5263fgcn9qzax08gcq93s18f";
name = "${pname}-${version}.AppImage";
};
appimageContents = appimageTools.extractType2 {
name = "${pname}-${version}";
inherit src;
};
dontUnpack = true;
dontConfigure = true;
dontBuild = true;
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
runHook preInstall
mkdir -p $out/bin $out/share/${pname} $out/share/applications
cp -a ${appimageContents}/{locales,resources} $out/share/${pname}
cp -a ${appimageContents}/blockbench.desktop $out/share/applications/${pname}.desktop
cp -a ${appimageContents}/usr/share/icons $out/share
substituteInPlace $out/share/applications/${pname}.desktop \
--replace 'Exec=AppRun' 'Exec=${pname}'
runHook postInstall
'';
postFixup = ''
makeWrapper ${electron_16}/bin/electron $out/bin/${pname} \
--add-flags $out/share/${pname}/resources/app.asar \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc ]}"
'';
meta = with lib; {
description = "A boxy 3D model editor powered by Electron";
homepage = "https://blockbench.net/";
license = licenses.gpl3Only;
maintainers = [ maintainers.ckie ];
platforms = [ "x86_64-linux" ];
};
}

View file

@ -0,0 +1,29 @@
{ lib, stdenv, fetchFromGitHub, cmake, itk, Cocoa }:
stdenv.mkDerivation rec {
pname = "c3d";
version = "unstable-2021-09-14";
src = fetchFromGitHub {
owner = "pyushkevich";
repo = pname;
rev = "cc06e6e2f04acd3d6faa3d8c9a66b499f02d4388";
sha256 = "sha256:1ql1y6694njsmdapywhppb54viyw8wdpaxxr1b3hm2rqhvwmhn52";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ itk ]
++ lib.optional stdenv.isDarwin Cocoa;
cmakeFlags = [ "-DCONVERT3D_USE_ITK_REMOTE_MODULES=OFF" ];
meta = with lib; {
homepage = "https://github.com/pyushkevich/c3d";
description = "Medical imaging processing tool";
maintainers = with maintainers; [ bcdarwin ];
platforms = platforms.unix;
license = licenses.gpl3;
broken = stdenv.isAarch64;
# /build/source/itkextras/OneDimensionalInPlaceAccumulateFilter.txx:312:10: fatal error: xmmintrin.h: No such file or directory
};
}

View file

@ -0,0 +1,76 @@
{ lib
, stdenv
, fetchFromGitHub
, desktop-file-utils
, ffmpeg
, gobject-introspection
, granite
, gtk
, imagemagick
, libgee
, libhandy
, libsecret
, libsoup
, meson
, ninja
, pkg-config
, python
, vala
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
pname = "ciano";
version = "0.2.4";
src = fetchFromGitHub {
owner = "robertsanseries";
repo = pname;
rev = version;
hash = "sha256-nubm6vBWwsHrrmvFAL/cIzYPxg9B1EhnpC79IJMNuFY=";
};
nativeBuildInputs = [
desktop-file-utils
meson
ninja
pkg-config
python
vala
wrapGAppsHook
];
buildInputs = [
ffmpeg
imagemagick
granite
gtk
];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
dontWrapGApps = true;
postFixup = let
binPath = lib.makeBinPath [
ffmpeg
imagemagick
];
in
''
wrapProgram $out/bin/com.github.robertsanseries.ciano \
--prefix PATH : ${binPath} "''${gappsWrapperArgs[@]}"
ln -s $out/bin/com.github.robertsanseries.ciano $out/bin/ciano
'';
meta = with lib; {
homepage = "https://github.com/robertsanseries/ciano";
description = "A multimedia file converter focused on simplicity";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ AndersonTorres ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,110 @@
{ lib
, stdenv
, mkDerivation
, fetchFromGitHub
, cmake
, boost
, cgal_5
, eigen
, flann
, gdal
, gmp
, LASzip
, mpfr
, pdal
, pcl
, qtbase
, qtsvg
, qttools
, tbb
, xercesc
, wrapGAppsHook
}:
mkDerivation rec {
pname = "cloudcompare";
version = "2.12.1";
src = fetchFromGitHub {
owner = "CloudCompare";
repo = "CloudCompare";
rev = "v${version}";
sha256 = "sha256-gX07Km+DNnsz5eDAC2RueMHjmIfQvgGnNOujZ/yM/vE=";
fetchSubmodules = true;
};
nativeBuildInputs = [
cmake
eigen # header-only
wrapGAppsHook
];
buildInputs = [
boost
cgal_5
flann
gdal
gmp
LASzip
mpfr
pdal
pcl
qtbase
qtsvg
qttools
tbb
xercesc
];
cmakeFlags = [
"-DCCCORELIB_USE_TBB=ON"
"-DOPTION_USE_DXF_LIB=ON"
"-DOPTION_USE_GDAL=ON"
"-DOPTION_USE_SHAPE_LIB=ON"
"-DPLUGIN_GL_QEDL=ON"
"-DPLUGIN_GL_QSSAO=ON"
"-DPLUGIN_IO_QADDITIONAL=ON"
"-DPLUGIN_IO_QCORE=ON"
"-DPLUGIN_IO_QCSV_MATRIX=ON"
"-DPLUGIN_IO_QE57=ON"
"-DPLUGIN_IO_QFBX=OFF" # Autodesk FBX SDK is gratis+proprietary; not packaged in nixpkgs
"-DPLUGIN_IO_QPDAL=ON" # required for .las/.laz support
"-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";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ nh2 ];
platforms = with platforms; linux; # only tested here; might work on others
};
}

View file

@ -0,0 +1,26 @@
{ lib, stdenv, fetchurl, wxGTK, util-linux, zlib }:
stdenv.mkDerivation rec {
pname = "comical";
version = "0.8";
src = fetchurl {
url = "mirror://sourceforge/comical/comical-${version}.tar.gz";
sha256 = "0b6527cc06b25a937041f1eb248d0fd881cf055362097036b939817f785ab85e";
};
buildInputs = [ wxGTK util-linux zlib ];
makeFlags = [ "prefix=${placeholder "out"}" ];
patches = [ ./wxgtk-2.8.patch ];
preInstall = "mkdir -pv $out/bin";
meta = {
description = "Viewer of CBR and CBZ files, often used to store scanned comics";
homepage = "http://comical.sourceforge.net/";
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ viric ];
platforms = with lib.platforms; linux;
};
}

View file

@ -0,0 +1,36 @@
diff --git a/Makefile b/Makefile
index a648e72..181c47f 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
CC = `wx-config --cxx`
-LDFLAGS = `wx-config --libs` -Lunrar -lunrar -Lunzip -lminiunzip
+LDFLAGS = `wx-config --libs` -Lunrar -lunrar -Lunzip -lminiunzip -lz
INSTALL = install
INSTALL_PROGRAM = $(INSTALL)
prefix = /usr/local
diff --git a/src/ComicalApp.cpp b/src/ComicalApp.cpp
index 0c004cd..667e75e 100644
--- a/src/ComicalApp.cpp
+++ b/src/ComicalApp.cpp
@@ -28,6 +28,7 @@
#include "ComicalApp.h"
#include "ComicalFrame.h"
#include <wx/log.h>
+#include <wx/icon.h>
#if !defined(__WXMAC__) && !defined(__WXCOCOA__) && !defined(__WXMSW__) && !defined(__WXPM__)
#include "../Comical Icons/comical.xpm"
diff --git a/unzip/unzip.h b/unzip/unzip.h
index b247937..5bb6a69 100644
--- a/unzip/unzip.h
+++ b/unzip/unzip.h
@@ -50,7 +50,7 @@ extern "C" {
#endif
#ifndef _ZLIB_H
-#include "zlib.h"
+#include <zlib.h>
#endif
#ifndef _ZLIBIOAPI_H

View file

@ -0,0 +1,63 @@
{ lib
, mkDerivationWith
, python3Packages
, fetchFromGitHub
, wrapQtAppsHook
}:
mkDerivationWith python3Packages.buildPythonApplication rec {
pname = "cq-editor";
version = "0.1.1";
src = fetchFromGitHub {
owner = "CadQuery";
repo = "CQ-editor";
rev = version;
sha256 = "1970izjaa60r5cg9i35rzz9lk5c5d8q1vw1rh2skvfbf63z1hnzv";
};
patches = [
./spyder4.patch
];
propagatedBuildInputs = with python3Packages; [
cadquery
Logbook
pyqt5
pyparsing
pyqtgraph
spyder
path
qtconsole
requests
];
nativeBuildInputs = [ wrapQtAppsHook ];
preFixup = ''
makeWrapperArgs+=("''${qtWrapperArgs[@]}")
'';
checkInputs = with python3Packages; [
pytest
pytest-xvfb
pytest-mock
pytest-cov
pytest-repeat
pytest-qt
];
checkPhase = ''
pytest --no-xvfb
'';
# requires X server
doCheck = false;
meta = with lib; {
description = "CadQuery GUI editor based on PyQT";
homepage = "https://github.com/CadQuery/CQ-editor";
license = licenses.asl20;
maintainers = with maintainers; [ costrouc marcus7070 ];
};
}

View file

@ -0,0 +1,58 @@
diff --git a/cq_editor/widgets/debugger.py b/cq_editor/widgets/debugger.py
index b7398fb..d039db5 100644
--- a/cq_editor/widgets/debugger.py
+++ b/cq_editor/widgets/debugger.py
@@ -162,7 +162,7 @@ class Debugger(QObject,ComponentMixin):
def get_breakpoints(self):
- return self.parent().components['editor'].get_breakpoints()
+ return self.parent().components['editor'].debugger.get_breakpoints()
def compile_code(self,cq_script):
@@ -178,12 +178,14 @@ class Debugger(QObject,ComponentMixin):
def _exec(self, code, locals_dict, globals_dict):
with ExitStack() as stack:
- p = Path(self.parent().components['editor'].filename).dirname()
- if self.preferences['Add script dir to path'] and p:
+ fname = self.parent().components['editor'].filename
+ p = Path(fname if fname else '').abspath().dirname()
+ if self.preferences['Add script dir to path'] and p.exists():
sys.path.append(p)
stack.callback(sys.path.remove, p)
- if self.preferences['Change working dir to script dir'] and p:
+ if self.preferences['Change working dir to script dir'] and p.exists():
stack.enter_context(p)
+
exec(code, locals_dict, globals_dict)
def _inject_locals(self,module):
diff --git a/cq_editor/widgets/editor.py b/cq_editor/widgets/editor.py
index 45aa048..2763469 100644
--- a/cq_editor/widgets/editor.py
+++ b/cq_editor/widgets/editor.py
@@ -1,4 +1,4 @@
-from spyder.widgets.sourcecode.codeeditor import CodeEditor
+from spyder.plugins.editor.widgets.codeeditor import CodeEditor
from PyQt5.QtCore import pyqtSignal, QFileSystemWatcher, QTimer
from PyQt5.QtWidgets import QAction, QFileDialog
from PyQt5.QtGui import QFontDatabase
@@ -32,6 +32,8 @@ class Editor(CodeEditor,ComponentMixin):
def __init__(self,parent=None):
+ self._watched_file = None
+
super(Editor,self).__init__(parent)
ComponentMixin.__init__(self)
@@ -83,7 +85,6 @@ class Editor(CodeEditor,ComponentMixin):
# autoreload support
self._file_watcher = QFileSystemWatcher(self)
- self._watched_file = None
# we wait for 50ms after a file change for the file to be written completely
self._file_watch_timer = QTimer(self)
self._file_watch_timer.setInterval(50)

View file

@ -0,0 +1,66 @@
{ lib
, python3
, fetchFromGitHub
, wrapGAppsHook
, appstream-glib
, desktop-file-utils
, gettext
, gtk3
, meson
, ninja
, pkg-config
, gobject-introspection
, jpegoptim
, libwebp
, optipng
, pngquant
}:
python3.pkgs.buildPythonApplication rec {
pname = "curtail";
version = "1.3.0";
format = "other";
src = fetchFromGitHub {
owner = "Huluti";
repo = "Curtail";
rev = version;
sha256 = "sha256-tNk+KI+DEMR63zfcBpfPTxAFKzvGWvpa9erK9SAAtPc=";
};
nativeBuildInputs = [
wrapGAppsHook
appstream-glib
desktop-file-utils
gettext
gtk3
meson
ninja
pkg-config
];
propagatedBuildInputs = [
appstream-glib
python3.pkgs.pygobject3
gobject-introspection
gettext
];
# Currently still required for the gobject-introspection setup hook
strictDeps = false;
preInstall = ''
patchShebangs ../build-aux/meson/postinstall.py
'';
postInstall = ''
wrapProgram $out/bin/curtail --prefix PATH : ${lib.makeBinPath [ jpegoptim libwebp optipng pngquant ]}
'';
meta = with lib; {
description = "Simple & useful image compressor";
homepage = "https://github.com/Huluti/Curtail";
license = licenses.gpl3Only;
maintainers = with maintainers; [ anselmschueler ];
};
}

View file

@ -0,0 +1,150 @@
{ lib
, stdenv
, fetchurl
, libsoup
, graphicsmagick
, json-glib
, wrapGAppsHook
, cairo
, cmake
, ninja
, curl
, perl
, llvm_13
, desktop-file-utils
, exiv2
, glib
, glib-networking
, ilmbase
, gtk3
, intltool
, lcms2
, lensfun
, libX11
, libexif
, libgphoto2
, libjpeg
, libpng
, librsvg
, libtiff
, openexr_3
, osm-gps-map
, pkg-config
, sqlite
, libxslt
, openjpeg
, pugixml
, colord
, colord-gtk
, libwebp
, libsecret
, gnome
, SDL2
, ocl-icd
, pcre
, gtk-mac-integration
, isocodes
, llvmPackages
, gmic
, libavif
, icu
, jasper
, libheif
, libaom
, portmidi
, fetchpatch
, lua
}:
stdenv.mkDerivation rec {
version = "3.8.1";
pname = "darktable";
src = fetchurl {
url = "https://github.com/darktable-org/darktable/releases/download/release-${version}/darktable-${version}.tar.xz";
sha256 = "1xmyn9haagizh8qqg91bm1lx3dq1v8failxj943mipnvaj80dvl1";
};
nativeBuildInputs = [ cmake ninja llvm_13 pkg-config intltool perl desktop-file-utils wrapGAppsHook ];
buildInputs = [
cairo
curl
exiv2
glib
glib-networking
gtk3
ilmbase
lcms2
lensfun
libexif
libgphoto2
libjpeg
libpng
librsvg
libtiff
openexr_3
sqlite
libxslt
libsoup
graphicsmagick
json-glib
openjpeg
pugixml
libwebp
libsecret
SDL2
gnome.adwaita-icon-theme
osm-gps-map
pcre
isocodes
gmic
libavif
icu
jasper
libheif
libaom
portmidi
lua
] ++ lib.optionals stdenv.isLinux [
colord
colord-gtk
libX11
ocl-icd
] ++ lib.optional stdenv.isDarwin gtk-mac-integration
++ lib.optional stdenv.cc.isClang llvmPackages.openmp;
cmakeFlags = [
"-DBUILD_USERMANUAL=False"
] ++ lib.optionals stdenv.isDarwin [
"-DUSE_COLORD=OFF"
"-DUSE_KWALLET=OFF"
];
# darktable changed its rpath handling in commit
# 83c70b876af6484506901e6b381304ae0d073d3c and as a result the
# binaries can't find libdarktable.so, so change LD_LIBRARY_PATH in
# the wrappers:
preFixup =
let
libPathEnvVar = if stdenv.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH";
libPathPrefix = "$out/lib/darktable" + lib.optionalString stdenv.isLinux ":${ocl-icd}/lib";
in
''
for f in $out/share/darktable/kernels/*.cl; do
sed -r "s|#include \"(.*)\"|#include \"$out/share/darktable/kernels/\1\"|g" -i "$f"
done
gappsWrapperArgs+=(
--prefix ${libPathEnvVar} ":" "${libPathPrefix}"
)
'';
meta = with lib; {
description = "Virtual lighttable and darkroom for photographers";
homepage = "https://www.darktable.org";
license = licenses.gpl3Plus;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ goibhniu flosse mrVanDalo paperdigits ];
};
}

View file

@ -0,0 +1,39 @@
{ lib, stdenv, fetchFromGitHub, libtiff, fpc }:
stdenv.mkDerivation rec {
pname = "deskew";
version = "1.30";
src = fetchFromGitHub {
owner = "galfar";
repo = pname;
rev = "v${version}";
hash = "sha256-xghVOEMkQ/mXpOzJqMaT3SII7xneMNoFqRlqjtzmDnA=";
};
nativeBuildInputs = [ fpc ];
buildInputs = [ libtiff ];
buildPhase = ''
runHook preBuild
patchShebangs ./Scripts
pushd Scripts && ./compile.sh && popd
runHook postBuild
'';
installPhase = ''
runHook preInstall
install -Dt $out/bin Bin/deskew
runHook postInstall
'';
meta = with lib; {
description = "A command line tool for deskewing scanned text documents";
homepage = "https://galfar.vevb.net/deskew";
license = with licenses; [ mit mpl11 ];
maintainers = with maintainers; [ryantm];
platforms = platforms.all;
};
}

View file

@ -0,0 +1,11 @@
diff -ru a/app/app_procs.c b/app/app_procs.c
--- a/app/app_procs.c 2021-01-30 11:09:52.000000000 -0500
+++ b/app/app_procs.c 2021-01-30 11:11:05.000000000 -0500
@@ -785,6 +785,7 @@
if (!filename) {
g_print (_("Filename conversion failed: %s\n"), filenames[i]);
+ ++i;
continue;
}

View file

@ -0,0 +1,43 @@
{ lib, stdenv, fetchgit, autoconf, automake, libtool, gtk2, pkg-config, perlPackages,
libxml2, gettext, python2, libxml2Python, docbook5, docbook_xsl,
libxslt, intltool, libart_lgpl, withGNOME ? false, libgnomeui,
gtk-mac-integration-gtk2 }:
stdenv.mkDerivation {
pname = "dia";
version = "0.97.3.20170622";
src = fetchgit {
url = "https://gitlab.gnome.org/GNOME/dia.git";
rev = "b86085dfe2b048a2d37d587adf8ceba6fb8bc43c";
sha256 = "1fyxfrzdcs6blxhkw3bcgkksaf3byrsj4cbyrqgb4869k3ynap96";
};
patches = [
./CVE-2019-19451.patch
];
buildInputs =
[ gtk2 libxml2 gettext python2 libxml2Python docbook5
libxslt docbook_xsl libart_lgpl ]
++ lib.optional withGNOME libgnomeui
++ lib.optional stdenv.isDarwin gtk-mac-integration-gtk2;
nativeBuildInputs = [ autoconf automake libtool pkg-config intltool ]
++ (with perlPackages; [ perl XMLParser ]);
preConfigure = ''
NOCONFIGURE=1 ./autogen.sh # autoreconfHook is not enough
'';
configureFlags = lib.optional withGNOME "--enable-gnome";
hardeningDisable = [ "format" ];
meta = with lib; {
description = "Gnome Diagram drawing software";
homepage = "http://live.gnome.org/Dia";
maintainers = with maintainers; [ raskin ];
license = licenses.gpl2;
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,148 @@
{ mkDerivation, lib, fetchurl, fetchpatch, cmake, doxygen, extra-cmake-modules, wrapGAppsHook
# For `digitaglinktree`
, perl, sqlite
, qtbase
, qtxmlpatterns
, qtsvg
, qtwebengine
, akonadi-contacts
, kcalendarcore
, kconfigwidgets
, kcoreaddons
, kdoctools
, kfilemetadata
, knotifications
, knotifyconfig
, ktextwidgets
, kwidgetsaddons
, kxmlgui
, bison
, boost
, eigen
, exiv2
, ffmpeg
, flex
, graphviz
, imagemagick
, lcms2
, lensfun
, libgphoto2
, libkipi
, libksane
, liblqr1
, libqtav
, libusb1
, marble
, libGL
, libGLU
, opencv
, pcre
, threadweaver
, x265
, jasper
# For panorama and focus stacking
, enblend-enfuse
, hugin
, gnumake
, breeze-icons
, oxygen
}:
mkDerivation rec {
pname = "digikam";
version = "7.6.0";
src = fetchurl {
url = "mirror://kde/stable/${pname}/${version}/digiKam-${version}.tar.xz";
sha256 = "sha256-2OHucyHT/DE5FvUVdW4wKaxBh9xFO2kzhI1N5TFLZkE=";
};
patches = [
(fetchpatch {
name = "akonadi-22.04.patch";
url = "https://github.com/archlinux/svntogit-packages/raw/1b3c76a4482055524120f598325d90545ff9c020/trunk/akonadi-22.04.patch";
sha256 = "sha256-ittgkl2t/nAD0ci2fNYoAd4E2M6Gg0vqqjxqZugBuko=";
})
];
nativeBuildInputs = [ cmake doxygen extra-cmake-modules kdoctools wrapGAppsHook ];
buildInputs = [
bison
boost
eigen
exiv2
ffmpeg
flex
graphviz
imagemagick
lcms2
lensfun
libgphoto2
libkipi
libksane
liblqr1
libqtav
libusb1
libGL
libGLU
opencv
pcre
x265
jasper
qtbase
qtxmlpatterns
qtsvg
qtwebengine
akonadi-contacts
kcalendarcore
kconfigwidgets
kcoreaddons
kfilemetadata
knotifications
knotifyconfig
ktextwidgets
kwidgetsaddons
kxmlgui
breeze-icons
marble
oxygen
threadweaver
];
cmakeFlags = [
"-DENABLE_MYSQLSUPPORT=1"
"-DENABLE_INTERNALMYSQL=1"
"-DENABLE_MEDIAPLAYER=1"
"-DENABLE_QWEBENGINE=on"
"-DENABLE_APPSTYLES=on"
"-DCMAKE_CXX_FLAGS=-I${libksane}/include/KF5" # fix `#include <ksane_version.h>`
];
dontWrapGApps = true;
preFixup = ''
qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
qtWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ gnumake hugin enblend-enfuse ]})
qtWrapperArgs+=(--suffix DK_PLUGIN_PATH : ${placeholder "out"}/${qtbase.qtPluginPrefix}/${pname})
substituteInPlace $out/bin/digitaglinktree \
--replace "/usr/bin/perl" "${perl}/bin/perl" \
--replace "/usr/bin/sqlite3" "${sqlite}/bin/sqlite3"
'';
meta = with lib; {
description = "Photo Management Program";
license = licenses.gpl2;
homepage = "https://www.digikam.org";
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,152 @@
{ stdenv
, cmake
, fetchFromGitHub
, lib
, alsa-lib
, libGL
, libX11
, libXinerama
, libXi
, zlib
, rtaudio
, rapidjson
, ilmbase
, glm
, glfw3
, libpng
, opencolorio_1
, freetype
}:
let
# The way third-party dependencies are packaged has changed
# significantly from the 2.0.8 release. This means any packaging
# effort for the 2.0.8 release would have to be redone for the next
# release. Hence we package the git version for now and can easily
# jump onto the next release once it's available.
djvVersion = "2.0.8-unstable-2021-07-31";
djvSrc = fetchFromGitHub {
owner = "darbyjohnston";
repo = "djv";
rev = "ae31712c4f2802a874217ac194bde26287993934";
sha256 = "1qgia6vqb6fhyfj8w925xl6k6zidrp2gj5f32bpi94lwwhi6p9pd";
};
# DJV's build system tries to automatically pull in FSeq, another
# library by the DJV author.
#
# When updating, check the following file in the DJV source:
# etc/SuperBuild/cmake/Modules/BuildFSeq.cmake
#
# If there is revision or tag specified, DJV wants to use the most
# recent master version
fseqSrc = fetchFromGitHub {
owner = "darbyjohnston";
repo = "fseq";
rev = "545fac6018100f7fca474b8ee4f1efa7cbf6bf45";
sha256 = "0qfhbrzji05hh5kwgd1wvq2lbf81ylbi7v7aqk28aws27f8d2hk0";
};
djv-deps = stdenv.mkDerivation rec {
pname = "djv-dependencies";
version = djvVersion;
src = djvSrc;
sourceRoot = "source/etc/SuperBuild";
nativeBuildInputs = [ cmake ];
buildInputs = [
libGL
];
postPatch = ''
chmod -R +w .
sed -i 's,GIT_REPOSITORY https://github.com/darbyjohnston/FSeq.git,SOURCE_DIR ${fseqSrc},' \
cmake/Modules/BuildFSeq.cmake
# We pull these projects in as normal Nix dependencies. No need
# to build them again here.
sed -i CMakeLists.txt \
-e '/list(APPEND DJV_THIRD_PARTY_DEPS RapidJSON)/d' \
-e '/list(APPEND DJV_THIRD_PARTY_DEPS RtAudio)/d' \
-e '/list(APPEND DJV_THIRD_PARTY_DEPS IlmBase)/d' \
-e '/list(APPEND DJV_THIRD_PARTY_DEPS GLM)/d' \
-e '/list(APPEND DJV_THIRD_PARTY_DEPS GLFW)/d' \
-e '/list(APPEND DJV_THIRD_PARTY_DEPS ZLIB)/d' \
-e '/list(APPEND DJV_THIRD_PARTY_DEPS PNG)/d' \
-e '/list(APPEND DJV_THIRD_PARTY_DEPS FreeType)/d' \
-e '/list(APPEND DJV_THIRD_PARTY_DEPS OCIO)/d'
# The "SuperBuild" wants to build DJV right here. This is
# inconvenient, because then the `make install` target is not generated
# by CMake. We build DJV in its own derivation below. This also makes
# the build a bit more modular.
sed -i '/include(BuildDJV)/d' \
CMakeLists.txt
'';
cmakeFlags = [
"-DDJV_THIRD_PARTY_OpenEXR:BOOL=False"
"-DDJV_THIRD_PARTY_JPEG:BOOL=False"
"-DDJV_THIRD_PARTY_TIFF:BOOL=False"
];
dontInstall = true;
doCheck = true;
};
in
stdenv.mkDerivation rec {
pname = "djv";
version = djvVersion;
src = djvSrc;
nativeBuildInputs = [ cmake ];
buildInputs = [
alsa-lib
libGL
libX11
libXinerama
libXi
rapidjson
rtaudio
ilmbase
glm
glfw3
zlib.dev
libpng
freetype
opencolorio_1
djv-deps
];
postPatch = ''
chmod -R +w .
# When linking opencolorio statically this results in failing to
# pull in opencolorio's dependencies (tixml and yaml libraries). Avoid
# this by linking it statically instead.
sed -i cmake/Modules/FindOCIO.cmake \
-e 's/PATH_SUFFIXES static//' \
-e '/OpenColorIO_STATIC/d'
'';
# GLFW requires a working X11 session.
doCheck = false;
meta = with lib; {
description = "A professional review software for VFX, animation, and film production";
homepage = "https://darbyjohnston.github.io/DJV/";
platforms = platforms.linux;
maintainers = [ maintainers.blitz ];
license = licenses.bsd3;
};
}

View file

@ -0,0 +1,75 @@
{ lib, stdenv
, mkDerivation
, fetchurl
, pkg-config
, djvulibre
, qtbase
, qttools
, xorg
, libtiff
, darwin
}:
mkDerivation rec {
pname = "djview";
version = "4.10.6";
src = fetchurl {
url = "mirror://sourceforge/djvu/${pname}-${version}.tar.gz";
sha256 = "08bwv8ppdzhryfcnifgzgdilb12jcnivl4ig6hd44f12d76z6il4";
};
nativeBuildInputs = [
pkg-config
qttools
];
buildInputs = [
djvulibre
qtbase
xorg.libXt
libtiff
] ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.AGL;
configureFlags = [
"--disable-silent-rules"
"--disable-dependency-tracking"
"--with-x"
"--with-tiff"
# NOTE: 2019-09-19: experimental "--enable-npdjvu" fails
] ++ lib.optional stdenv.isDarwin "--enable-mac";
passthru = {
mozillaPlugin = "/lib/mozilla/plugins";
};
meta = with lib; {
broken = stdenv.isDarwin;
description = "A portable DjVu viewer (Qt5) and browser (nsdejavu) plugin";
homepage = "http://djvu.sourceforge.net/djview4.html";
license = licenses.gpl2;
platforms = platforms.unix;
maintainers = with maintainers; [ Anton-Latukha ];
longDescription = ''
The portable DjVu viewer (Qt5) and browser (nsdejavu) plugin.
Djview highlights:
- entirely based on the public DjVulibre api.
- entirely written in portable Qt5.
- works natively under Unix/X11, MS Windows, and macOS X.
- continuous scrolling of pages
- side-by-side display of pages
- ability to specify a url to the djview command
- all plugin and cgi options available from the command line
- all silly annotations implemented
- display thumbnails as a grid
- display outlines
- page names supported (see djvused command set-page-title)
- metadata dialog (see djvused command set-meta)
- implemented as reusable Qt widgets
nsdejavu: browser plugin for DjVu. It internally uses djview.
Has CGI-style arguments to configure the view of document (see man).
'';
};
}

View file

@ -0,0 +1,30 @@
{ lib, python3Packages }:
python3Packages.buildPythonApplication rec {
pname = "dosage";
version = "2.17";
src = python3Packages.fetchPypi {
inherit pname version;
sha256 = "0vmxgn9wd3j80hp4gr5iq06jrl4gryz5zgfdd2ah30d12sfcfig0";
};
checkInputs = with python3Packages; [
pytestCheckHook pytest-xdist responses
];
nativeBuildInputs = with python3Packages; [ setuptools-scm ];
propagatedBuildInputs = with python3Packages; [
colorama imagesize lxml requests setuptools six
];
disabled = python3Packages.pythonOlder "3.3";
meta = {
description = "A comic strip downloader and archiver";
homepage = "https://dosage.rocks/";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ toonn ];
};
}

View file

@ -0,0 +1,82 @@
{ lib
, fetchFromGitHub
, fetchpatch
, meson
, ninja
, pkg-config
, python3
, gtk3
, appstream-glib
, desktop-file-utils
, gobject-introspection
, wrapGAppsHook
, glib
, gdk-pixbuf
, pango
, gettext
, itstool
}:
python3.pkgs.buildPythonApplication rec {
pname = "drawing";
version = "1.0.0";
format = "other";
src = fetchFromGitHub {
owner = "maoschanz";
repo = pname;
rev = version;
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
gobject-introspection
meson
ninja
pkg-config
wrapGAppsHook
glib
gettext
itstool
];
buildInputs = [
glib
gtk3
gdk-pixbuf
pango
];
propagatedBuildInputs = with python3.pkgs; [
pycairo
pygobject3
];
postPatch = ''
chmod +x build-aux/meson/postinstall.py # patchShebangs requires executable file
patchShebangs build-aux/meson/postinstall.py
'';
strictDeps = false;
meta = with lib; {
description = "A free basic image editor, similar to Microsoft Paint, but aiming at the GNOME desktop";
homepage = "https://maoschanz.github.io/drawing/";
maintainers = with maintainers; [ mothsart ];
license = licenses.gpl3Plus;
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,103 @@
{ stdenv, lib, fetchurl, rpmextract, autoPatchelfHook, wrapGAppsHook
# Dynamic libraries
, alsa-lib, atk, at-spi2-atk, at-spi2-core, cairo, dbus, cups, expat
, gdk-pixbuf, glib, gtk3, libX11, libXScrnSaver, libXcomposite, libXcursor
, libXdamage, libXext, libXfixes, libXi, libXrandr, libXrender, libXtst
, libxcb, libuuid, libxshmfence, nspr, nss, pango, mesa
, systemd
}:
stdenv.mkDerivation rec {
pname = "drawio";
version = "19.0.2";
src = fetchurl {
url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/drawio-x86_64-${version}.rpm";
sha256 = "46b4e7269628100ea3c083dee75308d9746780e46eac15d2c5495fdeece7e323";
};
nativeBuildInputs = [
autoPatchelfHook
rpmextract
wrapGAppsHook
];
buildInputs = [
alsa-lib
atk
at-spi2-atk
at-spi2-core
cairo
cups
dbus
expat
gdk-pixbuf
glib
gtk3
libX11
libXScrnSaver
libXcomposite
libXcursor
libXdamage
libXext
libXfixes
libXi
libXrandr
libXrender
libxshmfence
libXtst
libxcb
libuuid
mesa # for libgbm
nspr
nss
pango
systemd
];
runtimeDependencies = [
(lib.getLib systemd)
];
dontBuild = true;
dontConfigure = true;
unpackPhase = "rpmextract ${src}";
installPhase = ''
mkdir -p $out/share
cp -r opt/drawio $out/share/
# Application icon
mkdir -p $out/share/icons/hicolor
cp -r usr/share/icons/hicolor/* $out/share/icons/hicolor/
# XDG desktop item
cp -r usr/share/applications $out/share/applications
# Symlink wrapper
mkdir -p $out/bin
ln -s $out/share/drawio/drawio $out/bin/drawio
# Update binary path
substituteInPlace $out/share/applications/drawio.desktop \
--replace /opt/drawio/drawio $out/bin/drawio
'';
doInstallCheckPhase = true;
installCheckPhase = ''
$out/bin/drawio --help > /dev/null
'';
meta = with lib; {
description = "A desktop application for creating diagrams";
homepage = "https://about.draw.io/";
license = licenses.asl20;
changelog = "https://github.com/jgraph/drawio-desktop/releases/tag/v${version}";
maintainers = with maintainers; [ darkonion0 ];
platforms = [ "x86_64-linux" ];
};
}

View file

@ -0,0 +1,36 @@
{ lib, writeTextFile, runtimeShell, drawio, xvfb-run }:
writeTextFile {
name = "${drawio.pname}-headless-${drawio.version}";
executable = true;
destination = "/bin/drawio";
text = ''
#!${runtimeShell}
# Electron really wants a configuration directory to not die with:
# "Error: Failed to get 'appData' path"
# so we give it some temp dir as XDG_CONFIG_HOME
tmpdir=$(mktemp -d)
function cleanup {
rm -rf "$tmpdir"
}
trap cleanup EXIT
# Drawio needs to run in a virtual X session, because Electron
# refuses to work and dies with an unhelpful error message otherwise:
# "The futex facility returned an unexpected error code."
XDG_CONFIG_HOME="$tmpdir" ${xvfb-run}/bin/xvfb-run ${drawio}/bin/drawio $@
'';
meta = with lib; {
description = "xvfb wrapper around drawio";
longDescription = ''
A wrapper around drawio for running in headless environments.
Runs drawio under xvfb-run, with configuration going to a temporary
directory.
'';
maintainers = with maintainers; [ qyliss tfc ];
};
}

View file

@ -0,0 +1,108 @@
{ stdenv
, lib
, mkDerivation
, fetchFromGitHub
, extra-cmake-modules
# common deps
, karchive
# client deps
, qtbase
, qtkeychain
, qtmultimedia
, qtsvg
, qttools
, libsecret
# optional client deps
, giflib
, kdnssd
, libvpx
, miniupnpc
, qtx11extras # kis
# optional server deps
, libmicrohttpd
, libsodium
, withSystemd ? stdenv.isLinux
, systemd ? null
# options
, buildClient ? true
, buildServer ? true
, buildServerGui ? true # if false builds a headless server
, buildExtraTools ? false
, enableKisTablet ? false # enable improved graphics tablet support
}:
with lib;
let
clientDeps = [
qtbase
qtkeychain
qtmultimedia
qtsvg
qttools
libsecret
# optional:
giflib # gif animation export support
kdnssd # local server discovery with Zeroconf
libvpx # WebM video export
miniupnpc # automatic port forwarding
];
serverDeps = [
# optional:
libmicrohttpd # HTTP admin api
libsodium # ext-auth support
] ++ optional withSystemd systemd;
kisDeps = [
qtx11extras
];
boolToFlag = bool:
if bool then "ON" else "OFF";
in mkDerivation rec {
pname = "drawpile";
version = "2.1.20";
src = fetchFromGitHub {
owner = "drawpile";
repo = "drawpile";
rev = version;
sha256 = "sha256-HjGsaa2BYRNxaQP9e8Z7BkVlIKByC/ta92boGbYHRWQ=";
};
nativeBuildInputs = [ extra-cmake-modules ];
buildInputs = [
karchive
]
++ optionals buildClient clientDeps
++ optionals buildServer serverDeps
++ optionals enableKisTablet kisDeps;
cmakeFlags = [
"-Wno-dev"
"-DINITSYS=systemd"
"-DCLIENT=${boolToFlag buildClient}"
"-DSERVER=${boolToFlag buildServer}"
"-DSERVERGUI=${boolToFlag buildServerGui}"
"-DTOOLS=${boolToFlag buildExtraTools}"
"-DKIS_TABLET=${boolToFlag enableKisTablet}"
];
meta = {
description = "A collaborative drawing program that allows multiple users to sketch on the same canvas simultaneously";
homepage = "https://drawpile.net/";
downloadPage = "https://drawpile.net/download/";
license = licenses.gpl3;
maintainers = with maintainers; [ fgaz ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,47 @@
{ python3Packages
, fetchFromGitHub
, lib
, jre
, qt5
, wrapQtAppsHook
}:
python3Packages.buildPythonApplication rec {
pname = "eddy";
version = "1.2.1";
src = fetchFromGitHub {
owner = "obdasystems";
repo = pname;
rev = "v${version}";
sha256 = "12j77bbva5py9bd57c80cmjvf8vll40h19n81h16lvv2r2r7jynh";
};
propagatedBuildInputs = [
qt5.qtbase
wrapQtAppsHook
python3Packages.setuptools
python3Packages.rfc3987
python3Packages.JPype1
python3Packages.pyqt5
];
# Tests fail with: ImportError: cannot import name 'QtXmlPatterns' from 'PyQt5'
doCheck = false;
preBuild = ''
export HOME=/tmp
'';
preFixup = ''
wrapQtApp "$out/bin/eddy" --prefix JAVA_HOME : ${jre}
'';
meta = with lib; {
homepage = "http://www.obdasystems.com/eddy";
description = "Graphical editor for the specification and visualization of Graphol ontologies";
license = licenses.gpl3Only;
platforms = platforms.linux;
maintainers = with maintainers; [ koslambrou ];
};
}

View file

@ -0,0 +1,77 @@
{ stdenv
, lib
, fetchFromGitHub
, rustPlatform
, installShellFiles
, makeWrapper
, pkg-config
, python3
, libGL
, libX11
, libXcursor
, libXi
, libXrandr
, libXxf86vm
, libxcb
, libxkbcommon
, wayland
, AppKit
, CoreGraphics
, CoreServices
, Foundation
, OpenGL
}:
let
rpathLibs = [
libGL
libX11
libXcursor
libXi
libXrandr
libXxf86vm
libxcb
] ++ lib.optionals stdenv.isLinux [
libxkbcommon
wayland
];
in
rustPlatform.buildRustPackage rec {
pname = "emulsion";
version = "9.0";
src = fetchFromGitHub {
owner = "ArturKovacs";
repo = pname;
rev = "v${version}";
sha256 = "sha256-Cdi+PQDHxMQG7t7iwDi6UWfDwQjjA2yiOf9p/ahBlOw=";
};
cargoSha256 = "sha256-2wiLamnGqACx1r4WJbWPCN3tvhww/rRWz8fcvAbjYE0=";
nativeBuildInputs = [
installShellFiles
makeWrapper
pkg-config
python3
];
buildInputs = rpathLibs ++ lib.optionals stdenv.isDarwin [
AppKit
CoreGraphics
CoreServices
Foundation
OpenGL
];
postFixup = lib.optionalString stdenv.isLinux ''
patchelf --set-rpath "${lib.makeLibraryPath rpathLibs}" $out/bin/emulsion
'';
meta = with lib; {
description = "A fast and minimalistic image viewer";
homepage = "https://arturkovacs.github.io/emulsion-website/";
maintainers = [ maintainers.magnetophon ];
platforms = platforms.unix;
license = licenses.mit;
};
}

View file

@ -0,0 +1,35 @@
{ lib, stdenv, fetchFromGitHub, pkg-config, libtool, autoconf, automake
, libjpeg, libexif
}:
stdenv.mkDerivation rec {
pname = "epeg";
version = "0.9.2";
src = fetchFromGitHub {
owner = "mattes";
repo = "epeg";
rev = "v${version}";
sha256 = "14bjl9v6zzac4df25gm3bkw3n0mza5iazazsi65gg3m6661x6c5g";
};
enableParallelBuilding = true;
nativeBuildInputs = [ pkg-config libtool autoconf automake ];
propagatedBuildInputs = [ libjpeg libexif ];
preConfigure = ''
./autogen.sh
'';
meta = with lib; {
homepage = "https://github.com/mattes/epeg";
description = "Insanely fast JPEG/ JPG thumbnail scaling";
platforms = platforms.linux ++ platforms.darwin;
license = {
url = "https://github.com/mattes/epeg#license";
};
maintainers = with maintainers; [ nh2 ];
};
}

View file

@ -0,0 +1,56 @@
{ lib
, rustPlatform
, fetchFromGitHub
, stdenv
, python3
, libGL
, libX11
, libXcursor
, libXi
, libXrandr
, libxcb
, libxkbcommon
, AppKit
, IOKit
}:
rustPlatform.buildRustPackage rec {
pname = "epick";
version = "0.6.0";
src = fetchFromGitHub {
owner = "vv9k";
repo = pname;
rev = version;
sha256 = "sha256-x1C8kY9VpMg7aXgC/jRsLCeUV8uRLobgjSAQdK2/sHk=";
};
cargoSha256 = "sha256-KgQOlvKRt47lg7NteqBa2DLKkDf93JTzp9EIHn3clxY=";
nativeBuildInputs = lib.optional stdenv.isLinux python3;
buildInputs = lib.optionals stdenv.isLinux [
libGL
libX11
libXcursor
libXi
libXrandr
libxcb
libxkbcommon
] ++ lib.optionals stdenv.isDarwin [
AppKit
IOKit
];
postFixup = lib.optionalString stdenv.isLinux ''
patchelf --set-rpath ${lib.makeLibraryPath buildInputs} $out/bin/epick
'';
meta = with lib; {
description = "Simple color picker that lets the user create harmonic palettes with ease";
homepage = "https://github.com/vv9k/epick";
changelog = "https://github.com/vv9k/epick/blob/${version}/CHANGELOG.md";
license = licenses.gpl3Only;
maintainers = with maintainers; [ figsoda ];
};
}

View file

@ -0,0 +1,59 @@
{ mkDerivation
, lib
, fetchFromGitHub
, makeDesktopItem
, qmake
, qtbase
, libpng
, giflib
, impy
}:
let
desktopItem = makeDesktopItem {
name = "EvilPixie";
desktopName = "EvilPixie";
exec = "evilpixie %F";
icon = "evilpixie";
genericName = "Image Editor";
categories = [ "Graphics" "2DGraphics" "RasterGraphics" ];
mimeTypes = [ "image/bmp" "image/gif" "image/jpeg" "image/jpg" "image/png" "image/x-pcx" "image/x-targa" "image/x-tga" ];
};
in mkDerivation rec {
pname = "evilpixie";
version = "0.2.1";
src = fetchFromGitHub {
owner = "bcampbell";
repo = "evilpixie";
rev = "v${version}";
sha256 = "0dwgfr8kmkfppgf5wx9i5f7fjz3gxk0ji1l06x1z4r3vj52hdbph";
};
nativeBuildInputs = [
qmake
];
buildInputs = [
qtbase
libpng
giflib
impy
];
postInstall = ''
ln -s ${desktopItem}/share/applications $out/share
install -Dm 444 icon_128x128.png $out/share/icons/hicolor/128x128/apps/evilpixie.png
'';
meta = with lib; {
description = "Pixel-oriented paint program, modelled on Deluxe Paint";
homepage = "https://github.com/bcampbell/evilpixie"; # http://evilpixie.scumways.com/ is gone
downloadPage = "https://github.com/bcampbell/evilpixie/releases";
license = licenses.gpl3Only;
maintainers = with maintainers; [ fgaz ];
platforms = platforms.all;
};
}

View file

@ -0,0 +1,29 @@
{ lib, stdenv, fetchurl, pkg-config, fltk, openexr, libGLU, libGL, ctl }:
stdenv.mkDerivation rec {
pname = "openexr_viewers";
version = "2.2.1";
src = fetchurl {
url = "mirror://savannah/openexr/openexr_viewers-${version}.tar.gz";
sha256 = "1ixx2wbjp4rvsf7h3bkja010gl1ihjrcjzy7h20jnn47ikg12vj8";
};
configurePhase = ''
./configure --prefix=$out --with-fltk-config=${fltk}/bin/fltk-config
'';
buildPhase = ''
make LDFLAGS="`fltk-config --ldflags` -lGL -lfltk_gl"
'';
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openexr fltk libGLU libGL ctl ];
meta = {
description = "Application for viewing OpenEXR images on a display at various exposure settings";
homepage = "http://openexr.com";
platforms = lib.platforms.linux;
license = lib.licenses.bsd3;
};
}

View file

@ -0,0 +1,23 @@
{ lib, stdenv, fetchurl, pkg-config, openexr, libpng12, libjpeg }:
stdenv.mkDerivation rec {
pname = "exrtools";
version = "0.4";
src = fetchurl {
url = "http://scanline.ca/exrtools/${pname}-${version}.tar.gz";
sha256 = "0jpkskqs1yjiighab4s91jy0c0qxcscwadfn94xy2mm2bx2qwp4z";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openexr libpng12 libjpeg ];
meta = with lib; {
description = "Collection of utilities for manipulating OpenEXR images";
homepage = "http://scanline.ca/exrtools";
platforms = platforms.linux;
license = licenses.mit;
maintainers = [ maintainers.juliendehos ];
};
}

View file

@ -0,0 +1,27 @@
{ lib, stdenv, fetchFromGitHub, cmake, vtk_9, libX11, libGL, Cocoa, OpenGL }:
stdenv.mkDerivation rec {
pname = "f3d";
version = "1.2.1";
src = fetchFromGitHub {
owner = "f3d-app";
repo = "f3d";
rev = "v${version}";
sha256 = "sha256-Yn1IcGWAbXjG0wJQjRimvreozFu9mf0FMwyGNYc4P+U=";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ vtk_9 ]
++ lib.optionals stdenv.isLinux [ libGL libX11 ]
++ lib.optionals stdenv.isDarwin [ Cocoa OpenGL ];
meta = with lib; {
description = "Fast and minimalist 3D viewer using VTK";
homepage = "https://f3d-app.github.io/f3d";
license = licenses.bsd3;
maintainers = with maintainers; [ bcdarwin ];
platforms = with platforms; unix;
};
}

View file

@ -0,0 +1,78 @@
{ lib
, stdenv
, fetchurl
, libjpeg
, libexif
, giflib
, libtiff
, libpng
, libwebp
, libdrm
, pkg-config
, freetype
, fontconfig
, which
, imagemagick
, curl
, sane-backends
, libXpm
, libepoxy
, poppler
, mesa
, lirc
}:
stdenv.mkDerivation rec {
pname = "fbida";
version = "2.14";
src = fetchurl {
url = "http://dl.bytesex.org/releases/fbida/fbida-${version}.tar.gz";
sha256 = "0f242mix20rgsqz1llibhsz4r2pbvx6k32rmky0zjvnbaqaw1dwm";
};
patches = [
# Upstream patch to fix build on -fno-common toolchains.
(fetchurl {
name = "no-common.patch";
url = "https://git.kraxel.org/cgit/fbida/patch/?id=1bb8a8aa29845378903f3c690e17c0867c820da2";
sha256 = "0n5vqbp8wd87q60zfwdf22jirggzngypc02ha34gsj1rd6pvwahi";
})
];
nativeBuildInputs = [ pkg-config which ];
buildInputs = [
libexif
libjpeg
libpng
giflib
freetype
fontconfig
libtiff
libwebp
imagemagick
curl
sane-backends
libdrm
libXpm
libepoxy
poppler
lirc
mesa
];
makeFlags = [ "prefix=$(out)" "verbose=yes" "STRIP=" "JPEG_VER=62" ];
postPatch = ''
sed -e 's@ cpp\>@ gcc -E -@' -i GNUmakefile
sed -e 's@$(HAVE_LINUX_FB_H)@yes@' -i GNUmakefile
'';
meta = with lib; {
description = "Image viewing and manipulation programs including fbi, fbgs, ida, exiftran and thumbnail.cgi";
homepage = "https://www.kraxel.org/blog/linux/fbida/";
license = licenses.gpl2;
maintainers = with maintainers; [ pSub ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,44 @@
{ lib, stdenv, fetchurl, makeWrapper
, xorg, imlib2, libjpeg, libpng
, curl, libexif, jpegexiforient, perl
, enableAutoreload ? !stdenv.hostPlatform.isDarwin }:
stdenv.mkDerivation rec {
pname = "feh";
version = "3.8";
src = fetchurl {
url = "https://feh.finalrewind.org/${pname}-${version}.tar.bz2";
sha256 = "1a9bsq5j9sl2drzkab0hdhnamalpaszw9mz2prz6scrr5dak8g3z";
};
outputs = [ "out" "man" "doc" ];
nativeBuildInputs = [ makeWrapper xorg.libXt ];
buildInputs = [ xorg.libX11 xorg.libXinerama imlib2 libjpeg libpng curl libexif ];
makeFlags = [
"PREFIX=${placeholder "out"}" "exif=1"
] ++ lib.optional stdenv.isDarwin "verscmp=0"
++ lib.optional enableAutoreload "inotify=1";
installTargets = [ "install" ];
postInstall = ''
wrapProgram "$out/bin/feh" --prefix PATH : "${lib.makeBinPath [ libjpeg jpegexiforient ]}" \
--add-flags '--theme=feh'
'';
checkInputs = lib.singleton (perl.withPackages (p: [ p.TestCommand ]));
doCheck = true;
meta = with lib; {
description = "A light-weight image viewer";
homepage = "https://feh.finalrewind.org/";
# released under a variant of the MIT license
# https://spdx.org/licenses/MIT-feh.html
license = licenses.mit-feh;
maintainers = with maintainers; [ viric willibutz globin ma27 ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,44 @@
{ lib
, stdenv
, fetchurl
, ghostscript
, libpng
, makeWrapper
, coreutils
, bc
, gnugrep
, gawk
, gnused
}:
stdenv.mkDerivation rec {
pname = "fig2dev";
version = "3.2.8b";
src = fetchurl {
url = "mirror://sourceforge/mcj/fig2dev-${version}.tar.xz";
sha256 = "1jv8rg71dsy00lpg434r5zqs5qrg8mxqvv2gpcjjvmzsm551d2j1";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ libpng ];
GSEXE="${ghostscript}/bin/gs";
configureFlags = [ "--enable-transfig" ];
postInstall = ''
wrapProgram $out/bin/fig2ps2tex \
--set PATH ${lib.makeBinPath [ coreutils bc gnugrep gawk ]}
wrapProgram $out/bin/pic2tpic \
--set PATH ${lib.makeBinPath [ gnused ]}
'';
meta = with lib; {
description = "Tool to convert Xfig files to other formats";
homepage = "http://mcj.sourceforge.net/";
license = licenses.xfig;
platforms = platforms.unix;
maintainers = with maintainers; [ lesuisse ];
};
}

View file

@ -0,0 +1,73 @@
{ stdenv
, lib
, fetchurl
, makeWrapper
, autoPatchelfHook
, jdk11
, makeDesktopItem
, copyDesktopItems
, runtimeShell
}:
stdenv.mkDerivation rec {
pname = "fiji";
version = "20201104-1356";
src = fetchurl {
url = "https://downloads.imagej.net/${pname}/archive/${version}/${pname}-nojre.tar.gz";
sha256 = "1jv4wjjkpid5spr2nk5xlvq3hg687qx1n5zh8zlw48y1y09c4q7a";
};
dontBuild = true;
nativeBuildInputs = [ autoPatchelfHook makeWrapper copyDesktopItems ];
buildInputs = [ stdenv.cc.cc.lib ];
desktopItems = [
(makeDesktopItem {
name = "fiji";
exec = "fiji %F";
tryExec = "fiji";
icon = "fiji";
mimeTypes = [ "image/*" ];
comment = "Scientific Image Analysis";
desktopName = "Fiji Is Just ImageJ";
genericName = "Fiji Is Just ImageJ";
categories = [ "Education" "Science" "ImageProcessing" ];
startupNotify = true;
startupWMClass = "fiji-Main";
})
];
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,fiji,share/pixmaps}
cp -R * $out/fiji
rm -f $out/fiji/jars/imagej-updater-*.jar
# Disgusting hack to stop a local desktop entry being created
cat <<EOF > $out/bin/.fiji-launcher-hack
#!${runtimeShell}
exec \$($out/fiji/ImageJ-linux64 --dry-run "\$@")
EOF
chmod +x $out/bin/.fiji-launcher-hack
makeWrapper $out/bin/.fiji-launcher-hack $out/bin/fiji \
--prefix PATH : ${lib.makeBinPath [ jdk11 ]} \
--set JAVA_HOME ${jdk11.home}
ln $out/fiji/images/icon.png $out/share/pixmaps/fiji.png
runHook postInstall
'';
meta = with lib; {
homepage = "https://imagej.net/software/fiji/";
description = "batteries-included distribution of ImageJ2, bundling a lot of plugins which facilitate scientific image analysis";
platforms = [ "x86_64-linux" ];
sourceProvenance = with sourceTypes; [ binaryBytecode ];
license = with lib.licenses; [ gpl2Plus gpl3Plus bsd2 publicDomain ];
maintainers = with maintainers; [ zane ];
};
}

View file

@ -0,0 +1,97 @@
{ lib, stdenv
, fetchFromGitLab
, alsa-lib
, bzip2
, fftw
, freeglut
, freetype
, glew
, libjack2
, libGL
, libGLU
, libjpeg
, liblo
, libpng
, libsndfile
, libtiff
, ode
, openal
, openssl
, racket_7_9
, sconsPackages
, zlib
}:
let
libs = [
alsa-lib
bzip2
fftw
freeglut
freetype
glew
libjack2
libGL
libGLU
libjpeg
liblo
libpng
libsndfile
libtiff
ode
openal
openssl
zlib
];
racket = racket_7_9;
in
stdenv.mkDerivation rec {
pname = "fluxus";
version = "0.19";
src = fetchFromGitLab {
owner = "nebogeo";
repo = "fluxus";
rev = "ba9aee218dd4a9cfab914ad78bdb6d59e9a37400";
sha256 = "0mwghpgq4n1khwlmgscirhmcdhi6x00c08q4idi2zcqz961bbs28";
};
buildInputs = [
alsa-lib
fftw
freeglut.dev
freetype
glew
libjack2
libjpeg.dev
liblo
libsndfile.dev
libtiff.dev
ode
openal
openssl.dev
racket_7_9
];
nativeBuildInputs = [ sconsPackages.scons_3_1_2 ];
patches = [ ./fix-build.patch ];
sconsFlags = [
"RacketPrefix=${racket}"
"RacketInclude=${racket}/include/racket"
"RacketLib=${racket}/lib/racket"
"LIBPATH=${lib.makeLibraryPath libs}"
"DESTDIR=build"
];
configurePhase = ''
sconsFlags+=" Prefix=$out"
'';
installPhase = ''
mkdir -p $out
cp -r build$out/* $out/
'';
meta = with lib; {
description = "Livecoding environment for 3D graphics, sound, and games";
license = licenses.gpl2;
homepage = "http://www.pawfal.org/fluxus/";
maintainers = [ maintainers.brainrape ];
};
}

View file

@ -0,0 +1,16 @@
diff --git a/SConstruct b/SConstruct
index 32cb644..0b3a208 100644
--- a/SConstruct
+++ b/SConstruct
@@ -225,6 +225,11 @@ if env['PLATFORM'] == 'posix':
["asound", "alsa/asoundlib.h"],
["openal", "AL/al.h"]]
+env.Append(ENV={'PATH': ' ' + os.environ['PATH'], })
+env.Append(LIBPATH=ARGUMENTS.get('LIBPATH', '').split(':'))
+env.Append(CCFLAGS=' ' + os.environ.get('NIX_CFLAGS_COMPILE',''))
+env.Append(CCFLAGS=' -DNULL=0')
+
################################################################################
# Make sure we have these libraries availible

View file

@ -0,0 +1,73 @@
{ lib
, stdenv
, fetchFromGitHub
, nix-update-script
, pantheon
, vala
, pkg-config
, meson
, ninja
, python3
, glib
, gsettings-desktop-schemas
, gtk3
, libgee
, libhandy
, libsoup
, json-glib
, glib-networking
, desktop-file-utils
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
pname = "fondo";
version = "1.6.1";
src = fetchFromGitHub {
owner = "calo001";
repo = pname;
rev = version;
sha256 = "sha256-JiDbkVs+EZRWRohSiuh8xFFgEhbnMYZfnZtz5Z4Wdb0=";
};
nativeBuildInputs = [
desktop-file-utils
meson
ninja
pkg-config
python3
vala
wrapGAppsHook
];
buildInputs = [
glib
glib-networking
gsettings-desktop-schemas
gtk3
json-glib
libgee
libhandy
libsoup
pantheon.granite
];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
passthru.updateScript = nix-update-script {
attrPath = pname;
};
meta = with lib; {
homepage = "https://github.com/calo001/fondo";
description = "Find the most beautiful wallpapers for your desktop";
license = licenses.agpl3Plus;
maintainers = with maintainers; [ AndersonTorres ] ++ teams.pantheon.members;
platforms = platforms.linux;
mainProgram = "com.github.calo001.fondo";
};
}

View file

@ -0,0 +1,32 @@
{ lib, mkDerivation, fetchpatch, fetchFromGitHub, cmake, qttools, qtwebkit }:
mkDerivation rec {
pname = "fontmatrix";
version = "0.6.0-qt5";
src = fetchFromGitHub {
owner = "fcoiffie";
repo = "fontmatrix";
rev = "1ff8382d8c85c18d9962918f461341ff4fe21993";
sha256 = "0yx1gbsjj9ddq1kiqplif1w5x5saw250zbmhmd4phqmaqzr60w0h";
};
# Add missing QAction include
patches = [ (fetchpatch {
url = "https://github.com/fcoiffie/fontmatrix/commit/dc6de8c414ae21516b72daead79c8db88309b102.patch";
sha256 = "092860fdyf5gq67jqfxnlgwzjgpizi6j0njjv3m62aiznrhig7c8";
})];
buildInputs = [ qttools qtwebkit ];
nativeBuildInputs = [ cmake ];
hardeningDisable = [ "format" ];
meta = with lib; {
description = "Fontmatrix is a free/libre font explorer for Linux, Windows and Mac";
homepage = "https://github.com/fontmatrix/fontmatrix";
license = licenses.gpl2Plus;
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,74 @@
{ stdenv
, lib
, fetchFromGitHub
, nix-update-script
, cmake
, pkg-config
, makeWrapper
, zlib
, libX11
, libXrandr
, libXinerama
, libXcursor
, libXi
, libXext
, libGLU
, alsa-lib
, fontconfig
, AVFoundation
, Carbon
, Cocoa
, CoreAudio
, Kernel
, OpenGL
}:
stdenv.mkDerivation rec {
pname = "foxotron";
version = "2022-03-06";
src = fetchFromGitHub {
owner = "Gargaj";
repo = "Foxotron";
rev = version;
fetchSubmodules = true;
sha256 = "sha256-w66wi+aMwQa9akfNA/1cS6UmDXPWC4OPK9BIa9Kt47A=";
};
nativeBuildInputs = [ cmake pkg-config makeWrapper ];
buildInputs = [ zlib ]
++ lib.optionals stdenv.hostPlatform.isLinux [ libX11 libXrandr libXinerama libXcursor libXi libXext alsa-lib fontconfig libGLU ]
++ lib.optionals stdenv.hostPlatform.isDarwin [ AVFoundation Carbon Cocoa CoreAudio Kernel OpenGL ];
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,lib/foxotron}
cp -R ${lib.optionalString stdenv.hostPlatform.isDarwin "Foxotron.app/Contents/MacOS/"}Foxotron \
../{config.json,Shaders,Skyboxes} $out/lib/foxotron/
wrapProgram $out/lib/foxotron/Foxotron \
--chdir "$out/lib/foxotron"
ln -s $out/{lib/foxotron,bin}/Foxotron
runHook postInstall
'';
passthru = {
updateScript = nix-update-script {
attrPath = pname;
};
};
meta = with lib; {
description = "General purpose model viewer";
longDescription = ''
ASSIMP based general purpose model viewer ("turntable") created for the
Revision 2021 3D Graphics Competition.
'';
homepage = "https://github.com/Gargaj/Foxotron";
license = licenses.unlicense;
maintainers = with maintainers; [ OPNA2608 ];
platforms = platforms.all;
};
}

View file

@ -0,0 +1,167 @@
{ lib
, stdenv
, mkDerivation
, fetchFromGitHub
, fetchpatch
, cmake
, ninja
, GitPython
, boost
, coin3d
, eigen
, gfortran
, gts
, hdf5
, libGLU
, libXmu
, libf2c
, libredwg
, libspnav
, matplotlib
, medfile
, mpi
, ode
, opencascade-occt
, pivy
, pkg-config
, ply
, pycollada
, pyside2
, pyside2-tools
, python
, pyyaml
, qtbase
, qttools
, qtwebengine
, qtx11extras
, qtxmlpatterns
, scipy
, shiboken2
, soqt
, spaceNavSupport ? stdenv.isLinux
, swig
, vtk
, wrapQtAppsHook
, xercesc
, zlib
}:
mkDerivation rec {
pname = "freecad";
version = "0.19.2";
src = fetchFromGitHub {
owner = "FreeCAD";
repo = "FreeCAD";
rev = version;
hash = "sha256-XZ+fRl3CPCIFu3nHeMTLibwwFBlG/cWpKJlI58hTAuU=";
};
nativeBuildInputs = [
cmake
ninja
pkg-config
pyside2-tools
gfortran
wrapQtAppsHook
];
buildInputs = [
GitPython # for addon manager
boost
coin3d
eigen
gts
hdf5
libGLU
libXmu
libf2c
matplotlib
medfile
mpi
ode
opencascade-occt
pivy
ply # for openSCAD file support
pycollada
pyside2
pyside2-tools
python
pyyaml # (at least for) PyrateWorkbench
qtbase
qttools
qtwebengine
qtxmlpatterns
scipy
shiboken2
soqt
swig
vtk
xercesc
zlib
] ++ lib.optionals spaceNavSupport [
libspnav
qtx11extras
];
cmakeFlags = [
"-Wno-dev" # turns off warnings which otherwise makes it hard to see what is going on
"-DBUILD_FLAT_MESH:BOOL=ON"
"-DBUILD_QT5=ON"
"-DSHIBOKEN_INCLUDE_DIR=${shiboken2}/include"
"-DSHIBOKEN_LIBRARY=Shiboken2::libshiboken"
("-DPYSIDE_INCLUDE_DIR=${pyside2}/include"
+ ";${pyside2}/include/PySide2/QtCore"
+ ";${pyside2}/include/PySide2/QtWidgets"
+ ";${pyside2}/include/PySide2/QtGui"
)
"-DPYSIDE_LIBRARY=PySide2::pyside2"
];
# This should work on both x86_64, and i686 linux
preBuild = ''
export NIX_LDFLAGS="-L${gfortran.cc}/lib64 -L${gfortran.cc}/lib $NIX_LDFLAGS";
'';
# Their main() removes PYTHONPATH=, and we rely on it.
preConfigure = ''
sed '/putenv("PYTHONPATH/d' -i src/Main/MainGui.cpp
qtWrapperArgs+=(--prefix PYTHONPATH : "$PYTHONPATH")
'';
qtWrapperArgs = [
"--set COIN_GL_NO_CURRENT_CONTEXT_CHECK 1"
"--prefix PATH : ${libredwg}/bin"
];
postFixup = ''
mv $out/share/doc $out
ln -s $out/bin/FreeCAD $out/bin/freecad
ln -s $out/bin/FreeCADCmd $out/bin/freecadcmd
'';
meta = with lib; {
homepage = "https://www.freecadweb.org/";
description = "General purpose Open Source 3D CAD/MCAD/CAx/CAE/PLM modeler";
longDescription = ''
FreeCAD is an open-source parametric 3D modeler made primarily to design
real-life objects of any size. Parametric modeling allows you to easily
modify your design by going back into your model history and changing its
parameters.
FreeCAD allows you to sketch geometry constrained 2D shapes and use them
as a base to build other objects. It contains many components to adjust
dimensions or extract design details from 3D models to create high quality
production ready drawings.
FreeCAD is designed to fit a wide range of uses including product design,
mechanical engineering and architecture. Whether you are a hobbyist, a
programmer, an experienced CAD user, a student or a teacher, you will feel
right at home with FreeCAD.
'';
license = licenses.lgpl2Plus;
maintainers = with maintainers; [ viric gebner AndersonTorres ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,48 @@
{ lib
, stdenv
, fetchurl
, libjpeg
, libGLU
, libGL
, freeglut
, zlib
, cmake
, libX11
, libxml2
, libpng
, libXxf86vm
}:
stdenv.mkDerivation rec {
pname = "freepv";
version = "0.3.0";
src = fetchurl {
url = "mirror://sourceforge/freepv/freepv-${version}.tar.gz";
sha256 = "1w19abqjn64w47m35alg7bcdl1p97nf11zn64cp4p0dydihmhv56";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ libjpeg libGLU libGL freeglut zlib libX11 libxml2 libpng libXxf86vm ];
postPatch = ''
sed -i -e '/GECKO/d' CMakeLists.txt
sed -i -e '/mozilla/d' src/CMakeLists.txt
sed -i -e '1i \
#include <cstdio>' src/libfreepv/OpenGLRenderer.cpp
sed -i -e '1i \
#include <cstring>' src/libfreepv/Image.cpp
substituteInPlace src/libfreepv/Action.h \
--replace NULL nullptr
substituteInPlace src/libfreepv/pngReader.cpp \
--replace png_set_gray_1_2_4_to_8 png_set_expand_gray_1_2_4_to_8
'';
NIX_CFLAGS_COMPILE = "-fpermissive -Wno-narrowing";
meta = {
description = "Open source panorama viewer using GL";
homepage = "http://freepv.sourceforge.net/";
license = [ lib.licenses.lgpl21 ];
};
}

View file

@ -0,0 +1,36 @@
{ lib, stdenv, fetchFromGitHub, mkDerivation, qtbase, mesa_glu }:
mkDerivation rec {
pname = "fstl";
version = "0.9.4";
buildInputs = [qtbase mesa_glu];
prePatch = ''
sed -i "s|/usr/bin|$out/bin|g" qt/fstl.pro
'';
preBuild = ''
qmake qt/fstl.pro
'';
postInstall = lib.optionalString stdenv.isDarwin ''
mkdir -p $out/Applications
mv fstl.app $out/Applications
'';
src = fetchFromGitHub {
owner = "mkeeter";
repo = "fstl";
rev = "v" + version;
sha256 = "028hzdv11hgvcpc36q5scf4nw1256qswh37xhfn5a0iv7wycmnif";
};
meta = with lib; {
description = "The fastest STL file viewer";
homepage = "https://github.com/mkeeter/fstl";
license = licenses.mit;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ tweber ];
};
}

View file

@ -0,0 +1,34 @@
{lib, stdenv, fetchurl, gtk2, perlPackages, pkg-config } :
let version = "0.4"; in
stdenv.mkDerivation {
pname = "gcolor2";
inherit version;
arch = if stdenv.hostPlatform.system == "x86_64-linux" then "amd64" else "386";
src = fetchurl {
url = "mirror://sourceforge/project/gcolor2/gcolor2/${version}/gcolor2-${version}.tar.bz2";
sha256 = "1siv54vwx9dbfcflklvf7pkp5lk6h3nn63flg6jzifz9wp0c84q6";
};
preConfigure = ''
sed -i 's/\[:space:\]/[&]/g' configure
'';
# from https://github.com/PhantomX/slackbuilds/tree/master/gcolor2/patches
patches = if stdenv.hostPlatform.system == "x86_64-linux" then
[ ./gcolor2-amd64.patch ] else
[ ];
nativeBuildInputs = [ pkg-config ];
buildInputs = [ gtk2 ]
++ (with perlPackages; [ perl XMLParser ]);
meta = {
description = "Simple GTK 2 color selector";
homepage = "http://gcolor2.sourceforge.net/";
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ notthemessiah ];
platforms = with lib.platforms; unix;
};
}

View file

@ -0,0 +1,46 @@
diff --exclude-from=/home/dang/bin/scripts/diffrc -up -ruN gcolor2-0.4.orig/src/callbacks.c gcolor2-0.4/src/callbacks.c
--- gcolor2-0.4.orig/src/callbacks.c 2005-07-12 14:06:12.000000000 -0400
+++ gcolor2-0.4/src/callbacks.c 2007-02-17 19:19:38.000000000 -0500
@@ -4,6 +4,9 @@
#include <gtk/gtk.h>
#include <stdio.h>
+#include <string.h>
+#include <glib.h>
+#include <glib/gprintf.h>
#include "callbacks.h"
#include "interface.h"
@@ -172,6 +175,9 @@ void on_copy_color_to_clipboard_activate
gtk_clipboard_set_text (cb, hex, strlen (hex));
}
+void add_rgb_file (gchar *filename, gchar *type);
+gchar* get_system_file (void);
+
void on_show_system_colors_activate (GtkMenuItem *menuitem, gpointer user_data)
{
if (gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (menuitem)))
@@ -266,6 +272,8 @@ void on_save_button_clicked (GtkButton *
gtk_widget_destroy (savedialog);
}
+void add_list_color (gchar *spec, gchar *name, gchar *type, gboolean is_new_color);
+
void add_color_to_treeview ()
{
GtkTreeView *treeview;
diff --exclude-from=/home/dang/bin/scripts/diffrc -up -ruN gcolor2-0.4.orig/src/main.c gcolor2-0.4/src/main.c
--- gcolor2-0.4.orig/src/main.c 2005-07-11 10:55:49.000000000 -0400
+++ gcolor2-0.4/src/main.c 2007-02-17 19:18:23.000000000 -0500
@@ -4,6 +4,10 @@
#include <gtk/gtk.h>
#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <glib.h>
+#include <glib/gprintf.h>
#include "interface.h"
#include "support.h"

View file

@ -0,0 +1,55 @@
{ lib, stdenv
, fetchFromGitLab
, meson
, ninja
, gettext
, pkg-config
, libxml2
, gtk3
, libportal-gtk3
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
pname = "gcolor3";
version = "2.4.0";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "World";
repo = "gcolor3";
rev = "v${version}";
sha256 = "rHIAjk2m3Lkz11obgNZaapa1Zr2GDH7XzgzuAJmq+MU=";
};
nativeBuildInputs = [
meson
ninja
gettext
pkg-config
libxml2 # xml-stripblanks preprocessing of GResource
wrapGAppsHook
];
buildInputs = [
gtk3
libportal-gtk3
];
postPatch = ''
chmod +x meson_install.sh # patchShebangs requires executable file
patchShebangs meson_install.sh
# https://gitlab.gnome.org/World/gcolor3/merge_requests/151
substituteInPlace meson.build --replace "dependency(${"\n"} 'libportal'" "dependency(${"\n"} 'libportal-gtk3'"
substituteInPlace src/gcolor3-color-selection.c --replace "libportal/portal-gtk3.h" "libportal-gtk3/portal-gtk3.h"
'';
meta = with lib; {
description = "A simple color chooser written in GTK3";
homepage = "https://gitlab.gnome.org/World/gcolor3";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ jtojnar ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,78 @@
{ lib, stdenv, fetchFromGitHub, pkg-config, autoconf, automake, gettext, intltool
, gtk3, lcms2, exiv2, libchamplain, clutter-gtk, ffmpegthumbnailer, fbida
, wrapGAppsHook, fetchpatch, doxygen
, nix-update-script
}:
stdenv.mkDerivation rec {
pname = "geeqie";
version = "1.7.3";
src = fetchFromGitHub {
owner = "BestImageViewer";
repo = "geeqie";
rev = "v${version}";
sha256 = "sha256-O+yz/uNxueR+naEJG8EZ+k/JutRjJ5wwbB9DYb8YNLw=";
};
patches = [
# Do not build the changelog as this requires markdown.
(fetchpatch {
name = "geeqie-1.4-goodbye-changelog.patch";
url = "https://src.fedoraproject.org/rpms/geeqie/raw/132fb04a1a5e74ddb333d2474f7edb9a39dc8d27/f/geeqie-1.4-goodbye-changelog.patch";
sha256 = "00a35dds44kjjdqsbbfk0x9y82jspvsbpm2makcm1ivzlhjjgszn";
})
];
postPatch = ''
patchShebangs .
'';
preConfigure = "./autogen.sh";
nativeBuildInputs =
[ pkg-config autoconf automake gettext intltool
wrapGAppsHook doxygen
];
buildInputs = [
gtk3 lcms2 exiv2 libchamplain clutter-gtk ffmpegthumbnailer fbida
];
postInstall = ''
# Allow geeqie to find exiv2 and exiftran, necessary to
# losslessly rotate JPEG images.
sed -i $out/lib/geeqie/geeqie-rotate \
-e '1 a export PATH=${lib.makeBinPath [ exiv2 fbida ]}:$PATH'
'';
enableParallelBuilding = true;
passthru = {
updateScript = nix-update-script {
attrPath = pname;
};
};
meta = with lib; {
description = "Lightweight GTK based image viewer";
longDescription =
''
Geeqie is a lightweight GTK based image viewer for Unix like
operating systems. It features: EXIF, IPTC and XMP metadata
browsing and editing interoperability; easy integration with other
software; geeqie works on files and directories, there is no need to
import images; fast preview for many raw image formats; tools for
image comparison, sorting and managing photo collection. Geeqie was
initially based on GQview.
'';
license = licenses.gpl2Plus;
homepage = "https://www.geeqie.org/";
maintainers = with maintainers; [ jfrankenau pSub markus1189 ];
platforms = platforms.gnu ++ platforms.linux;
};
}

View file

@ -0,0 +1,187 @@
{ stdenv
, lib
, fetchurl
, substituteAll
, autoreconfHook
, pkg-config
, intltool
, babl
, gegl
, gtk2
, glib
, gdk-pixbuf
, isocodes
, pango
, cairo
, freetype
, fontconfig
, lcms
, libpng
, libjpeg
, poppler
, poppler_data
, libtiff
, libmng
, librsvg
, libwmf
, zlib
, libzip
, ghostscript
, aalib
, shared-mime-info
, python2
, libexif
, gettext
, makeWrapper
, gtk-doc
, xorg
, glib-networking
, libmypaint
, gexiv2
, harfbuzz
, mypaint-brushes1
, libwebp
, libheif
, libgudev
, openexr
, AppKit
, Cocoa
, gtk-mac-integration-gtk2
}:
let
python = python2.withPackages (pp: [ pp.pygtk ]);
in stdenv.mkDerivation rec {
pname = "gimp";
version = "2.10.30";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "http://download.gimp.org/pub/gimp/v${lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
sha256 = "iIFdqnbtfUJ37rNTNYuvoRbNL80shh2VuVE1wdUrZ9w=";
};
patches = [
# to remove compiler from the runtime closure, reference was retained via
# gimp --version --verbose output
(substituteAll {
src = ./remove-cc-reference.patch;
cc_version = stdenv.cc.cc.name;
})
# Use absolute paths instead of relying on PATH
# to make sure plug-ins are loaded by the correct interpreter.
./hardcode-plugin-interpreters.patch
];
nativeBuildInputs = [
autoreconfHook # hardcode-plugin-interpreters.patch changes Makefile.am
pkg-config
intltool
gettext
makeWrapper
gtk-doc
];
buildInputs = [
babl
gegl
gtk2
glib
gdk-pixbuf
pango
cairo
gexiv2
harfbuzz
isocodes
freetype
fontconfig
lcms
libpng
libjpeg
poppler
poppler_data
libtiff
openexr
libmng
librsvg
libwmf
zlib
libzip
ghostscript
aalib
shared-mime-info
libwebp
libheif
python
# Duplicated here because python.withPackages does not expose the dev output with pkg-config files
python2.pkgs.pygtk
libexif
xorg.libXpm
glib-networking
libmypaint
mypaint-brushes1
] ++ lib.optionals stdenv.isDarwin [
AppKit
Cocoa
gtk-mac-integration-gtk2
] ++ lib.optionals stdenv.isLinux [
libgudev
];
# needed by gimp-2.0.pc
propagatedBuildInputs = [
gegl
];
configureFlags = [
"--without-webkit" # old version is required
"--disable-check-update"
"--with-bug-report-url=https://github.com/NixOS/nixpkgs/issues/new"
"--with-icc-directory=/run/current-system/sw/share/color/icc"
# fix libdir in pc files (${exec_prefix} needs to be passed verbatim)
"--libdir=\${exec_prefix}/lib"
];
enableParallelBuilding = true;
doCheck = true;
NIX_CFLAGS_COMPILE = lib.optional stdenv.isDarwin "-DGDK_OSX_BIG_SUR=16";
# Check if librsvg was built with --disable-pixbuf-loader.
PKG_CONFIG_GDK_PIXBUF_2_0_GDK_PIXBUF_MODULEDIR = "${librsvg}/${gdk-pixbuf.moduleDir}";
preConfigure = ''
# The check runs before glib-networking is registered
export GIO_EXTRA_MODULES="${glib-networking}/lib/gio/modules:$GIO_EXTRA_MODULES"
'';
postFixup = ''
wrapProgram $out/bin/gimp-${lib.versions.majorMinor version} \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE"
'';
passthru = rec {
# The declarations for `gimp-with-plugins` wrapper,
# used for determining plug-in installation paths
majorVersion = "${lib.versions.major version}.0";
targetLibDir = "lib/gimp/${majorVersion}";
targetDataDir = "share/gimp/${majorVersion}";
targetPluginDir = "${targetLibDir}/plug-ins";
targetScriptDir = "${targetDataDir}/scripts";
# probably its a good idea to use the same gtk in plugins ?
gtk = gtk2;
};
meta = with lib; {
description = "The GNU Image Manipulation Program";
homepage = "https://www.gimp.org/";
maintainers = with maintainers; [ jtojnar ];
license = licenses.gpl3Plus;
platforms = platforms.unix;
mainProgram = "gimp";
};
}

View file

@ -0,0 +1,11 @@
--- a/plug-ins/pygimp/Makefile.am
+++ b/plug-ins/pygimp/Makefile.am
@@ -157,7 +157,7 @@ install-interp-file:
echo 'python=$(PYBIN_PATH)' > '$(DESTDIR)$(pyinterpfile)'
echo 'python2=$(PYBIN_PATH)' >> '$(DESTDIR)$(pyinterpfile)'
echo '/usr/bin/python=$(PYBIN_PATH)' >> '$(DESTDIR)$(pyinterpfile)'
- echo ":Python:E::py::`basename $(PYTHON)`:" >> '$(DESTDIR)$(pyinterpfile)'
+ echo ":Python:E::py::$(PYTHON):" >> '$(DESTDIR)$(pyinterpfile)'
install-data-local: install-env-file install-interp-file

View file

@ -0,0 +1,306 @@
# Use `gimp-with-plugins` package for GIMP with all plug-ins.
# If you just want a subset of plug-ins, you can specify them explicitly:
# `gimp-with-plugins.override { plugins = with gimpPlugins; [ gap ]; }`.
{ config, lib, pkgs }:
let
inherit (pkgs) stdenv fetchurl fetchpatch pkg-config intltool glib fetchFromGitHub;
in
lib.makeScope pkgs.newScope (self:
let
# Use GIMP from the scope.
inherit (self) gimp;
pluginDerivation = attrs: let
name = attrs.name or "${attrs.pname}-${attrs.version}";
in stdenv.mkDerivation ({
prePhases = "extraLib";
extraLib = ''
installScripts(){
mkdir -p $out/${gimp.targetScriptDir}/${name};
for p in "$@"; do cp "$p" -r $out/${gimp.targetScriptDir}/${name}; done
}
installPlugin() {
# The base name of the first argument is the plug-in name and the main executable.
# GIMP only allows a single plug-in per directory:
# https://gitlab.gnome.org/GNOME/gimp/-/commit/efae55a73e98389e38fa0e59ebebcda0abe3ee96
pluginDir=$out/${gimp.targetPluginDir}/$(basename "$1")
install -Dt "$pluginDir" "$@"
}
'';
# Override installation paths.
PKG_CONFIG_GIMP_2_0_GIMPLIBDIR = "${placeholder "out"}/${gimp.targetLibDir}";
PKG_CONFIG_GIMP_2_0_GIMPDATADIR = "${placeholder "out"}/${gimp.targetDataDir}";
}
// attrs
// {
name = "${gimp.pname}-plugin-${name}";
buildInputs = [
gimp
gimp.gtk
glib
] ++ (attrs.buildInputs or []);
nativeBuildInputs = [
pkg-config
intltool
] ++ (attrs.nativeBuildInputs or []);
}
);
scriptDerivation = {src, ...}@attrs : pluginDerivation ({
prePhases = "extraLib";
dontUnpack = true;
installPhase = ''
runHook preInstall
installScripts ${src}
runHook postInstall
'';
} // attrs);
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
*/
name = "gap-2.6.0";
src = fetchurl {
url = "https://ftp.gimp.org/pub/gimp/plug-ins/v2.6/gap/gimp-gap-2.6.0.tar.bz2";
sha256 = "1jic7ixcmsn4kx2cn32nc5087rk6g8xsrz022xy11yfmgvhzb0ql";
};
NIX_LDFLAGS = "-lm";
hardeningDisable = [ "format" ];
meta = with lib; {
description = "The GIMP Animation Package";
homepage = "https://www.gimp.org";
# The main code is given in GPLv3, but it has ffmpeg in it, and I think ffmpeg license
# falls inside "free".
license = with licenses; [ gpl3 free ];
};
};
farbfeld = pluginDerivation rec {
pname = "farbfeld";
version = "unstable-2019-08-12";
src = fetchFromGitHub {
owner = "ids1024";
repo = "gimp-farbfeld";
rev = "5feacebf61448bd3c550dda03cd08130fddc5af4";
sha256 = "1vmw7k773vrndmfffj0m503digdjmkpcqy2r3p3i5x0qw9vkkkc6";
};
installPhase = ''
installPlugin farbfeld
'';
meta = {
description = "Gimp plug-in for the farbfeld image format";
homepage = "https://github.com/ids1024/gimp-farbfeld";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ sikmir ];
};
};
fourier = pluginDerivation rec {
/* menu:
Filters/Generic/FFT Forward
Filters/Generic/FFT Inverse
*/
pname = "fourier";
version = "0.4.3";
src = fetchurl {
url = "https://www.lprp.fr/files/old-web/soft/gimp/${pname}-${version}.tar.gz";
sha256 = "0mf7f8vaqs2madx832x3kcxw3hv3w3wampvzvaps1mkf2kvrjbsn";
};
buildInputs = with pkgs; [ fftw ];
postPatch = ''
substituteInPlace Makefile --replace '$(GCC)' '$(CC)'
# The tarball contains a prebuilt binary.
make clean
'';
installPhase = ''
runHook preInstall
installPlugin fourier
runHook postInstall
'';
meta = with lib; {
description = "GIMP plug-in to do the fourier transform";
homepage = "https://people.via.ecp.fr/~remi/soft/gimp/gimp_plugin_en.php3#fourier";
license = with licenses; [ gpl3Plus ];
};
};
resynthesizer = pluginDerivation rec {
/* menu:
Edit/Fill with pattern seamless...
Filters/Enhance/Heal selection...
Filters/Enhance/Heal transparency...
Filters/Enhance/Sharpen by synthesis...
Filters/Enhance/Uncrop...
Filters/Map/Style...
Filters/Render/Texture...
*/
pname = "resynthesizer";
version = "2.0.3";
buildInputs = with pkgs; [ fftw ];
nativeBuildInputs = with pkgs; [ autoreconfHook ];
makeFlags = [ "GIMP_LIBDIR=${placeholder "out"}/${gimp.targetLibDir}" ];
src = fetchFromGitHub {
owner = "bootchk";
repo = "resynthesizer";
rev = "v${version}";
sha256 = "1jwc8bhhm21xhrgw56nzbma6fwg59gc8anlmyns7jdiw83y0zx3j";
};
};
texturize = pluginDerivation {
pname = "texturize";
version = "2.2+unstable=2021-12-03";
src = fetchFromGitHub {
owner = "lmanul";
repo = "gimp-texturize";
rev = "9ceff0d411cda018108e5477320669b8d00d811e";
sha256 = "haYS0K3oAPlHtHB8phOCX5/gtWq9uiVQhG5ZhAFX0t0=";
};
nativeBuildInputs = with pkgs; [
meson
ninja
gettext
];
};
waveletSharpen = pluginDerivation {
/* menu:
Filters/Enhance/Wavelet sharpen
*/
name = "wavelet-sharpen-0.1.2";
NIX_LDFLAGS = "-lm";
src = fetchurl {
url = "https://github.com/pixlsus/registry.gimp.org_static/raw/master/registry.gimp.org/files/wavelet-sharpen-0.1.2.tar.gz";
sha256 = "0vql1k67i21g5ivaa1jh56rg427m0icrkpryrhg75nscpirfxxqw";
};
installPhase = "installPlugin src/wavelet-sharpen"; # TODO translations are not copied .. How to do this on nix?
};
lqrPlugin = pluginDerivation rec {
/* menu:
Layer/Liquid Rescale
*/
pname = "lqr-plugin";
version = "0.7.2";
buildInputs = with pkgs; [ liblqr1 ];
src = fetchFromGitHub {
owner = "carlobaldassi";
repo = "gimp-lqr-plugin";
rev = "v${version}";
sha256 = "81ajdZ2zQi/THxnBlSeT36tVTEzrS1YqLGpHMhFTKAo=";
};
};
gmic = pkgs.gmic-qt.override {
variant = "gimp";
};
gimplensfun = pluginDerivation rec {
version = "unstable-2018-10-21";
name = "gimplensfun-${version}";
src = fetchFromGitHub {
owner = "seebk";
repo = "GIMP-Lensfun";
rev = "1c5a5c1534b5faf098b7441f8840d22835592f17";
sha256 = "1jj3n7spkjc63aipwdqsvq9gi07w13bb1v8iqzvxwzld2kxa3c8w";
};
buildInputs = with pkgs; [ lensfun gexiv2 ];
installPhase = "
installPlugin gimp-lensfun
";
meta = {
description = "GIMP plugin to correct lens distortion using the lensfun library and database";
homepage = "http://lensfun.sebastiankraft.net/";
license = lib.licenses.gpl3Plus;
maintainers = [ ];
platforms = lib.platforms.gnu ++ lib.platforms.linux;
};
};
/* =============== simple script files ==================== */
# also have a look at enblend-enfuse in all-packages.nix
exposureBlend = scriptDerivation {
name = "exposure-blend";
src = fetchurl {
url = "http://tir.astro.utoledo.edu/jdsmith/code/eb/exposure-blend.scm";
sha256 = "1b6c9wzpklqras4wwsyw3y3jp6fjmhnnskqiwm5sabs8djknfxla";
};
meta.broken = true;
};
lightning = scriptDerivation {
name = "Lightning";
src = fetchurl {
url = "https://github.com/pixlsus/registry.gimp.org_static/raw/master/registry.gimp.org/files/Lightning.scm";
sha256 = "c14a8f4f709695ede3f77348728a25b3f3ded420da60f3f8de3944b7eae98a49";
};
};
})

View file

@ -0,0 +1,200 @@
ls diff --git focusblur-3.2.6/src/aaa.h focusblur-3.2.6/src/aaa.h
index 4a6d90b..c74cab2 100644
--- focusblur-3.2.6/src/aaa.h
+++ focusblur-3.2.6/src/aaa.h
@@ -19,8 +19,7 @@
#ifndef __AAA_H__
#define __AAA_H__
-#include <glib/gmacros.h>
-#include <glib/gtypes.h>
+#include <glib.h>
G_BEGIN_DECLS
diff --git focusblur-3.2.6/src/brush.h focusblur-3.2.6/src/brush.h
index 685b253..8778fec 100644
--- focusblur-3.2.6/src/brush.h
+++ focusblur-3.2.6/src/brush.h
@@ -22,7 +22,7 @@
#ifndef __FOCUSBLUR_BRUSH_H__
#define __FOCUSBLUR_BRUSH_H__
-#include <glib/gtypes.h>
+#include <glib.h>
#include "focusblurtypes.h"
G_BEGIN_DECLS
diff --git focusblur-3.2.6/src/depthmap.h focusblur-3.2.6/src/depthmap.h
index 78f5e99..baee540 100644
--- focusblur-3.2.6/src/depthmap.h
+++ focusblur-3.2.6/src/depthmap.h
@@ -22,7 +22,7 @@
#ifndef __FOCUSBLUR_DEPTHMAP_H__
#define __FOCUSBLUR_DEPTHMAP_H__
-#include <glib/gtypes.h>
+#include <glib.h>
#include "focusblurtypes.h"
#include "focusblurenums.h"
diff --git focusblur-3.2.6/src/diffusion.h focusblur-3.2.6/src/diffusion.h
index 07ffe4b..3c1e4b9 100644
--- focusblur-3.2.6/src/diffusion.h
+++ focusblur-3.2.6/src/diffusion.h
@@ -23,7 +23,7 @@
#define __FOCUSBLUR_DIFFUSION_H__
-#include <glib/gtypes.h>
+#include <glib.h>
#include "focusblur.h"
#include "focusblurtypes.h"
diff --git focusblur-3.2.6/src/fftblur.h focusblur-3.2.6/src/fftblur.h
index 124bcba..cd809fa 100644
--- focusblur-3.2.6/src/fftblur.h
+++ focusblur-3.2.6/src/fftblur.h
@@ -23,8 +23,7 @@
#define __FOCUSBLUR_FFTBLUR_H__
-#include <glib/gmacros.h>
-#include <glib/gtypes.h>
+#include <glib.h>
#include <libgimpwidgets/gimpwidgetstypes.h>
#include "focusblurparam.h"
diff --git focusblur-3.2.6/src/fftblurbuffer.h focusblur-3.2.6/src/fftblurbuffer.h
index b34d682..42e6380 100644
--- focusblur-3.2.6/src/fftblurbuffer.h
+++ focusblur-3.2.6/src/fftblurbuffer.h
@@ -28,8 +28,7 @@
#endif
#include <fftw3.h>
-#include <glib/gmacros.h>
-#include <glib/gtypes.h>
+#include <glib.h>
#include <gtk/gtkstyle.h>
#include <libgimp/gimptypes.h>
#include <libgimpwidgets/gimpwidgetstypes.h>
diff --git focusblur-3.2.6/src/fftblurproc.h focusblur-3.2.6/src/fftblurproc.h
index 495572d..10a34f4 100644
--- focusblur-3.2.6/src/fftblurproc.h
+++ focusblur-3.2.6/src/fftblurproc.h
@@ -23,8 +23,7 @@
#define __FOCUSBLUR_FFTBLUR_PROC_H__
-#include <glib/gmacros.h>
-#include <glib/gtypes.h>
+#include <glib.h>
#include "focusblurtypes.h"
diff --git focusblur-3.2.6/src/focusblur.h focusblur-3.2.6/src/focusblur.h
index 54ca40a..d7e13a6 100644
--- focusblur-3.2.6/src/focusblur.h
+++ focusblur-3.2.6/src/focusblur.h
@@ -22,7 +22,7 @@
#ifndef __FOCUSBLUR_H__
#define __FOCUSBLUR_H__
-#include <glib/gmacros.h>
+#include <glib.h>
G_BEGIN_DECLS
diff --git focusblur-3.2.6/src/focusblurparam.h focusblur-3.2.6/src/focusblurparam.h
index 64c887b..32865b4 100644
--- focusblur-3.2.6/src/focusblurparam.h
+++ focusblur-3.2.6/src/focusblurparam.h
@@ -22,8 +22,7 @@
#ifndef __FOCUSBLUR_PARAM_H__
#define __FOCUSBLUR_PARAM_H__
-#include <glib/gmacros.h>
-#include <glib/gtypes.h>
+#include <glib.h>
#include <gtk/gtkstyle.h>
#include <libgimp/gimptypes.h>
diff --git focusblur-3.2.6/src/focusblurstock.h focusblur-3.2.6/src/focusblurstock.h
index 15f3603..cfc0567 100644
--- focusblur-3.2.6/src/focusblurstock.h
+++ focusblur-3.2.6/src/focusblurstock.h
@@ -22,7 +22,7 @@
#ifndef __FOCUSBLUR_STOCK_H__
#define __FOCUSBLUR_STOCK_H__
-#include <glib/gtypes.h>
+#include <glib.h>
G_BEGIN_DECLS
diff --git focusblur-3.2.6/src/focusblurtypes.h focusblur-3.2.6/src/focusblurtypes.h
index 0954c60..1531c84 100644
--- focusblur-3.2.6/src/focusblurtypes.h
+++ focusblur-3.2.6/src/focusblurtypes.h
@@ -22,7 +22,7 @@
#ifndef __FOCUSBLUR_TYPES_H__
#define __FOCUSBLUR_TYPES_H__
-#include <glib/gmacros.h>
+#include <glib.h>
G_BEGIN_DECLS
diff --git focusblur-3.2.6/src/interface.h focusblur-3.2.6/src/interface.h
index 6defd27..e819c60 100644
--- focusblur-3.2.6/src/interface.h
+++ focusblur-3.2.6/src/interface.h
@@ -22,7 +22,7 @@
#ifndef __FOCUSBLUR_INTERFACE_H__
#define __FOCUSBLUR_INTERFACE_H__
-#include <glib/gtypes.h>
+#include <glib.h>
#include "focusblurtypes.h"
diff --git focusblur-3.2.6/src/render.h focusblur-3.2.6/src/render.h
index febbd24..a501f1e 100644
--- focusblur-3.2.6/src/render.h
+++ focusblur-3.2.6/src/render.h
@@ -24,7 +24,7 @@
#include "config.h"
-#include <glib/gtypes.h>
+#include <glib.h>
//#include <libgimp/gimp.h>
#include <libgimp/gimpui.h>
diff --git focusblur-3.2.6/src/shine.h focusblur-3.2.6/src/shine.h
index c5a3621..86b4c09 100644
--- focusblur-3.2.6/src/shine.h
+++ focusblur-3.2.6/src/shine.h
@@ -22,7 +22,7 @@
#ifndef __FOCUSBLUR_SHINE_H__
#define __FOCUSBLUR_SHINE_H__
-#include <glib/gtypes.h>
+#include <glib.h>
#include <libgimp/gimptypes.h>
#include "focusblurtypes.h"
diff --git focusblur-3.2.6/src/source.h focusblur-3.2.6/src/source.h
index 50d34ca..8eec35c 100644
--- focusblur-3.2.6/src/source.h
+++ focusblur-3.2.6/src/source.h
@@ -24,7 +24,7 @@
#include "config.h"
-#include <glib/gtypes.h>
+#include <glib.h>
#include <libgimp/gimptypes.h>
#include "focusblurtypes.h"

View file

@ -0,0 +1,13 @@
diff --git a/app/gimp-version.c b/app/gimp-version.c
index 3d1894a036..48bb670b64 100644
--- a/app/gimp-version.c
+++ b/app/gimp-version.c
@@ -230,7 +230,7 @@ gimp_version (gboolean be_verbose,
GIMP_BUILD_ID,
gimp_version_get_revision (),
GIMP_BUILD_PLATFORM_FAMILY,
- CC_VERSION,
+ "@cc_version@",
lib_versions);
g_free (lib_versions);

View file

@ -0,0 +1,31 @@
{ lib, symlinkJoin, gimp, makeWrapper, gimpPlugins, gnome, plugins ? null}:
let
allPlugins = lib.filter (pkg: lib.isDerivation pkg && !pkg.meta.broken or false) (lib.attrValues gimpPlugins);
selectedPlugins = lib.filter (pkg: pkg != gimpPlugins.gimp) (if plugins == null then allPlugins else plugins);
extraArgs = map (x: x.wrapArgs or "") selectedPlugins;
versionBranch = lib.versions.majorMinor gimp.version;
in symlinkJoin {
name = "gimp-with-plugins-${gimp.version}";
paths = [ gimp ] ++ selectedPlugins;
nativeBuildInputs = [ makeWrapper ];
postBuild = ''
for each in gimp-${versionBranch} gimp-console-${versionBranch}; do
wrapProgram $out/bin/$each \
--set GIMP2_PLUGINDIR "$out/lib/gimp/2.0" \
--set GIMP2_DATADIR "$out/share/gimp/2.0" \
--prefix GTK_PATH : "${gnome.gnome-themes-extra}/lib/gtk-2.0" \
${toString extraArgs}
done
set +x
for each in gimp gimp-console; do
ln -sf "$each-${versionBranch}" $out/bin/$each
done
'';
inherit (gimp) meta;
}

View file

@ -0,0 +1,51 @@
{ lib, stdenv, fetchurl, fetchpatch, barcode, gnome, autoreconfHook
, gtk3, gtk-doc, libxml2, librsvg , libtool, libe-book, gsettings-desktop-schemas
, intltool, itstool, makeWrapper, pkg-config, yelp-tools
}:
stdenv.mkDerivation rec {
pname = "glabels";
version = "3.4.1";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q";
};
patches = [
# Pull patch pending upstream inclusion for -fno-common toolchain support:
# https://github.com/jimevins/glabels/pull/76
(fetchpatch {
name = "fno-common.patch";
url = "https://github.com/jimevins/glabels/commit/f64e3f34e3631330fff2fb48ab271ff9c6160229.patch";
sha256 = "13q6g4bxzvzwjnvzkvijds2b6yvc4xqbdwgqnwmj65ln6ngxz8sa";
})
];
nativeBuildInputs = [ autoreconfHook pkg-config makeWrapper intltool ];
buildInputs = [
barcode gtk3 gtk-doc yelp-tools
gnome.gnome-common gsettings-desktop-schemas
itstool libxml2 librsvg libe-book libtool
];
preFixup = ''
wrapProgram "$out/bin/glabels-3" \
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
'';
passthru = {
updateScript = gnome.updateScript {
packageName = pname;
versionPolicy = "none";
};
};
meta = with lib; {
description = "Create labels and business cards";
homepage = "https://github.com/jimevins/glabels";
license = with licenses; [ gpl3Plus lgpl3Plus ];
platforms = platforms.unix;
maintainers = [ maintainers.nico202 ];
};
}

View file

@ -0,0 +1,200 @@
{ stdenv
, lib
, fetchFromGitHub
, substituteAll
, pkg-config
, intltool
, babl
, gegl
, gtk2
, glib
, gdk-pixbuf
, isocodes
, pango
, cairo
, freetype
, fontconfig
, lcms
, libpng
, libjpeg
, poppler
, poppler_data
, libtiff
, libmng
, librsvg
, libwmf
, zlib
, libzip
, ghostscript
, aalib
, shared-mime-info
, python2
, libexif
, gettext
, xorg
, glib-networking
, libmypaint
, gexiv2
, harfbuzz
, mypaint-brushes1
, libwebp
, libheif
, libgudev
, openexr
, AppKit
, Cocoa
, gtk-mac-integration-gtk2
, libxslt
, automake
, autoconf
, libtool
, makeWrapper
, autoreconfHook
, gtk-doc
, graphviz
}:
let
python = python2.withPackages (pp: [ pp.pygtk ]);
in
stdenv.mkDerivation rec {
pname = "glimpse";
version = "0.2.0";
outputs = [ "out" "dev" ];
src = fetchFromGitHub {
owner = "glimpse-editor";
repo = "Glimpse";
rev = "v${version}";
sha256 = "sha256-qbZQmAo7fuJWWbn0QTyxAwAenZOdsGueUq5/3IV8Njc=";
};
patches = [
# to remove compiler from the runtime closure, reference was retained via
# gimp --version --verbose output
(substituteAll {
src = ./remove-cc-reference.patch;
cc_version = stdenv.cc.cc.name;
})
../gimp/hardcode-plugin-interpreters.patch
];
postPatch = ''
ln -s ${gtk-doc}/share/gtk-doc/data/gtk-doc.make .
'';
nativeBuildInputs = [
autoreconfHook
pkg-config
intltool
gettext
automake
autoconf
makeWrapper
gtk-doc
libxslt
libtool
];
buildInputs = [
babl
gegl
gtk2
glib
gdk-pixbuf
pango
cairo
gexiv2
harfbuzz
isocodes
freetype
fontconfig
lcms
libpng
libjpeg
poppler
poppler_data
libtiff
openexr
libmng
librsvg
libwmf
zlib
libzip
ghostscript
aalib
shared-mime-info
libwebp
libheif
python
libexif
xorg.libXpm
glib-networking
libmypaint
mypaint-brushes1
] ++ lib.optionals stdenv.isDarwin [
AppKit
Cocoa
gtk-mac-integration-gtk2
] ++ lib.optionals stdenv.isLinux [
libgudev
];
# needed by gimp-2.0.pc
propagatedBuildInputs = [
gegl
];
# Check if librsvg was built with --disable-pixbuf-loader.
PKG_CONFIG_GDK_PIXBUF_2_0_GDK_PIXBUF_MODULEDIR = "${librsvg}/${gdk-pixbuf.moduleDir}";
preAutoreconf = ''
# The check runs before glib-networking is registered
export GIO_EXTRA_MODULES="${glib-networking}/lib/gio/modules:$GIO_EXTRA_MODULES"
'';
postFixup = ''
wrapProgram $out/bin/glimpse-${lib.versions.majorMinor version} \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
--prefix PATH ":" ${ lib.makeBinPath [ graphviz ] }
'';
passthru = rec {
# The declarations for `glimpse-with-plugins` wrapper,
# used for determining plug-in installation paths
majorVersion = "2.0";
targetPluginDir = "lib/glimpse/${majorVersion}/plug-ins";
targetScriptDir = "share/glimpse/${majorVersion}/scripts";
targetDataDir = "share/gimp/${majorVersion}";
targetLibDir = "lib/gimp/${majorVersion}";
# probably its a good idea to use the same gtk in plugins ?
gtk = gtk2;
};
configureFlags = [
"--without-webkit" # old version is required
"--with-bug-report-url=https://github.com/NixOS/nixpkgs/issues/new"
"--with-icc-directory=/run/current-system/sw/share/color/icc"
# fix libdir in pc files (${exec_prefix} needs to be passed verbatim)
"--libdir=\${exec_prefix}/lib"
];
# on Darwin,
# test-eevl.c:64:36: error: initializer element is not a compile-time constant
doCheck = !stdenv.isDarwin;
enableParallelBuilding = true;
meta = with lib; {
description = "An open source image editor based on the GNU Image Manipulation Program";
longDescription = ''
Glimpse is an open source image editor based on the GNU Image Manipulation Program (GIMP). The goal is to experiment with new ideas and expand the use of free software.
'';
homepage = "https://glimpse-editor.org";
maintainers = with maintainers; [ ashkitten erictapen ];
license = licenses.gpl3Plus;
platforms = platforms.unix;
mainProgram = "glimpse";
};
}

View file

@ -0,0 +1,11 @@
# Use `glimpse-with-plugins` package for Glimpse with all plug-ins.
# If you just want a subset of plug-ins, you can specify them explicitly:
# `glimpse-with-plugins.override { plugins = with glimpsePlugins; [ gap ]; }`.
{ gimpPlugins, glimpse }:
# This attrs can be extended in the future if there happen to be glimpse-only
# plugins or some that need further modification in order to work with Glimpse.
gimpPlugins.overrideScope' (self: super: {
gimp = glimpse;
})

View file

@ -0,0 +1,13 @@
diff --git a/app/gimp-version.c b/app/gimp-version.c
index b584398231..1b40a1570f 100644
--- a/app/gimp-version.c
+++ b/app/gimp-version.c
@@ -230,7 +230,7 @@ gimp_version (gboolean be_verbose,
GIMP_BUILD_ID,
gimp_version_get_revision (),
GIMP_BUILD_PLATFORM_FAMILY,
- CC_VERSION,
+ "@cc_version@",
lib_versions);
g_free (lib_versions);

View file

@ -0,0 +1,32 @@
{ lib, symlinkJoin, glimpse, makeWrapper, glimpsePlugins, gnome, plugins ? null }:
let
allPlugins = lib.filter (pkg: lib.isDerivation pkg && !pkg.meta.broken or false) (lib.attrValues glimpsePlugins);
selectedPlugins = if plugins == null then allPlugins else plugins;
extraArgs = map (x: x.wrapArgs or "") selectedPlugins;
versionBranch = lib.versions.majorMinor glimpse.version;
in
symlinkJoin {
name = "glimpse-with-plugins-${glimpse.version}";
paths = [ glimpse ] ++ selectedPlugins;
nativeBuildInputs = [ makeWrapper ];
postBuild = ''
for each in glimpse-${versionBranch} glimpse-console-${versionBranch}; do
wrapProgram $out/bin/$each \
--set GIMP2_PLUGINDIR "$out/lib/glimpse/2.0" \
--set GIMP2_DATADIR "$out/share/glimpse/2.0" \
--prefix GTK_PATH : "${gnome.gnome-themes-extra}/lib/gtk-2.0" \
${toString extraArgs}
done
for each in glimpse glimpse-console; do
ln -sf "$each-${versionBranch}" $out/bin/$each
done
'';
inherit (glimpse) meta;
}

View file

@ -0,0 +1,70 @@
{ stdenv
, lib
, fetchFromGitLab
, gettext
, meson
, ninja
, pkg-config
, python3
, rustPlatform
, wrapGAppsHook4
, appstream-glib
, desktop-file-utils
, glib
, gtk4
, libadwaita
}:
stdenv.mkDerivation rec {
pname = "gnome-obfuscate";
version = "0.0.7";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "World";
repo = "Obfuscate";
rev = version;
sha256 = "sha256-jEMOg2yHi6K57XhA/7hkwwvedmikoB8pGV3ka+jixq8=";
};
cargoDeps = rustPlatform.fetchCargoTarball {
inherit src;
name = "${pname}-${version}";
sha256 = "sha256-P04BeidLXouPLzT/vsa4VC5AOENF0W4gqXqzdmRFhmE=";
};
nativeBuildInputs = [
gettext
glib
meson
ninja
pkg-config
python3
rustPlatform.cargoSetupHook
rustPlatform.rust.cargo
rustPlatform.rust.rustc
wrapGAppsHook4
];
buildInputs = [
appstream-glib
desktop-file-utils
glib
gtk4
libadwaita
];
postPatch = ''
patchShebangs build-aux/meson_post_install.py
'';
meta = with lib; {
description = "Censor private information";
homepage = "https://gitlab.gnome.org/World/obfuscate";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ fgaz ];
platforms = platforms.all;
};
}

View file

@ -0,0 +1,126 @@
{ lib, stdenv
, fetchurl
, at-spi2-core
, babl
, dbus
, desktop-file-utils
, dleyna-renderer
, gdk-pixbuf
, gegl
, geocode-glib
, gettext
, gexiv2
, gfbgraph
, glib
, gnome-online-accounts
, gnome
, gobject-introspection
, grilo
, grilo-plugins
, gsettings-desktop-schemas
, gtk3
, itstool
, libdazzle
, libhandy
, libgdata
, libxml2
, meson
, ninja
, nixosTests
, pkg-config
, python3
, tracker
, tracker-miners
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
pname = "gnome-photos";
version = "42.0";
outputs = [ "out" "installedTests" ];
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "JcsoFCUZnex7BF8T8y+PlgNMsMuLlNlvnf+vT1vmhVE=";
};
patches = [
./installed-tests-path.patch
];
nativeBuildInputs = [
desktop-file-utils
gettext
gobject-introspection # for setup hook
glib # for setup hook
itstool
libxml2
meson
ninja
pkg-config
(python3.withPackages (pkgs: with pkgs; [
dogtail
pygobject3
pyatspi
]))
wrapGAppsHook
];
buildInputs = [
babl
dbus
dleyna-renderer
gdk-pixbuf
gegl
geocode-glib
gexiv2
gfbgraph
glib
gnome-online-accounts
grilo
grilo-plugins
gsettings-desktop-schemas
gtk3
libdazzle
libhandy
libgdata
tracker
tracker-miners # For 'org.freedesktop.Tracker.Miner.Files' GSettings schema
at-spi2-core # for tests
];
mesonFlags = [
"-Dinstalled_tests=true"
"-Dinstalled_test_prefix=${placeholder "installedTests"}"
];
postPatch = ''
chmod +x meson_post_install.py
patchShebangs meson_post_install.py
patchShebangs tests/basic.py
'';
postFixup = ''
wrapGApp "${placeholder "installedTests"}/libexec/installed-tests/gnome-photos/basic.py"
'';
passthru = {
updateScript = gnome.updateScript {
packageName = pname;
};
tests = {
installed-tests = nixosTests.installed-tests.gnome-photos;
};
};
meta = with lib; {
description = "Access, organize and share your photos";
homepage = "https://wiki.gnome.org/Apps/Photos";
license = licenses.gpl3Plus;
maintainers = teams.gnome.members;
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,23 @@
diff --git a/meson.build b/meson.build
index dee932dc..f8851913 100644
--- a/meson.build
+++ b/meson.build
@@ -16,8 +16,8 @@
photos_docdir = join_paths(photos_datadir, 'doc', meson.project_name())
photos_libdir = join_paths(photos_prefix, get_option('libdir'), meson.project_name())
-photos_installed_test_metadir = join_paths(photos_datadir, 'installed-tests', meson.project_name())
-photos_installed_test_execdir = join_paths(photos_libexecdir, 'installed-tests', meson.project_name())
+photos_installed_test_metadir = join_paths(get_option('installed_test_prefix'), 'share', 'installed-tests', meson.project_name())
+photos_installed_test_execdir = join_paths(get_option('installed_test_prefix'), 'libexec', 'installed-tests', meson.project_name())
photos_namespace = 'org.gnome.Photos'
diff --git a/meson_options.txt b/meson_options.txt
index f34b5cc0..8e09970b 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,2 +1,3 @@
option('dogtail', type: 'boolean', value: true, description: 'test using dogtail')
option('installed_tests', type: 'boolean', value: false, description: 'Enable installation of some test cases')
+option('installed_test_prefix', type: 'string', value: '', description: 'Prefix for installed tests')

View file

@ -0,0 +1,24 @@
{ stdenv, lib, fetchurl, pkg-config
}:
stdenv.mkDerivation rec {
pname = "gnuclad";
version = "0.2.4";
src = fetchurl {
url = "https://launchpad.net/gnuclad/trunk/${lib.versions.majorMinor version}/+download/${pname}-${version}.tar.gz";
sha256 = "0ka2kscpjff7gflsargv3r9fdaxhkf3nym9mfaln3pnq6q7fwdki";
};
NIX_CFLAGS_COMPILE = lib.optional stdenv.cc.isGNU "-Wno-error=catch-value";
nativeBuildInputs = [ pkg-config ];
meta = with lib; {
homepage = "https://launchpad.net/gnuclad";
description = "gnuclad tries to help the environment by creating trees. Its primary use will be generating cladogram trees for the GNU/Linux distro timeline project";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ mog ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,33 @@
{ lib, stdenv, fetchurl, tk }:
stdenv.mkDerivation rec {
pname = "gocr";
version = "0.52";
src = fetchurl {
url = "https://www-e.uni-magdeburg.de/jschulen/ocr/gocr-${version}.tar.gz";
sha256 = "11l6gds1lrm8lwrrsxnm5fjlwz8q1xbh896cprrl4psz21in946z";
};
buildFlags = [ "all" "libs" ];
installFlags = [ "libdir=/lib/" ]; # Specify libdir so Makefile will also install library.
preInstall = "mkdir -p $out/lib";
postInstall = ''
for i in pgm2asc.h gocr.h; do
install -D -m644 src/$i $out/include/gocr/$i
done
'';
preFixup = ''
sed -i -e 's|exec wish|exec ${tk}/bin/wish|' $out/bin/gocr.tcl
'';
meta = {
homepage = "http://jocr.sourceforge.net/";
description = "GPL Optical Character Recognition";
license = lib.licenses.gpl2;
platforms = lib.platforms.linux;
};
}

View file

@ -0,0 +1,36 @@
{ lib, stdenv, fetchFromGitHub, scons, pkg-config, wrapGAppsHook
, glfw3, gtk3, libpng12 }:
stdenv.mkDerivation rec {
pname = "goxel";
version = "0.10.8";
src = fetchFromGitHub {
owner = "guillaumechereau";
repo = "goxel";
rev = "v${version}";
sha256 = "sha256-M9H9SV8xmU7Jw5rEdV0gfloIEBvWmWSuH+BCrowpf2M=";
};
patches = [ ./disable-imgui_ini.patch ];
nativeBuildInputs = [ scons pkg-config wrapGAppsHook ];
buildInputs = [ glfw3 gtk3 libpng12 ];
NIX_LDFLAGS = "-lpthread";
buildPhase = ''
make release
'';
installPhase = ''
install -D ./goxel $out/bin/goxel
'';
meta = with lib; {
description = "Open Source 3D voxel editor";
homepage = "https://guillaumechereau.github.io/goxel/";
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = with maintainers; [ tilpner ];
};
}

View file

@ -0,0 +1,13 @@
diff --git a/src/gui.cpp b/src/gui.cpp
index 9b7236c..a8a11b2 100644
--- a/src/gui.cpp
+++ b/src/gui.cpp
@@ -314,6 +314,8 @@ static void init_ImGui(const inputs_t *inputs)
ImGuiIO& io = ImGui::GetIO();
io.DeltaTime = 1.0f/60.0f;
+ io.IniFilename = NULL;
+
io.KeyMap[ImGuiKey_Tab] = KEY_TAB;
io.KeyMap[ImGuiKey_LeftArrow] = KEY_LEFT;
io.KeyMap[ImGuiKey_RightArrow] = KEY_RIGHT;

View file

@ -0,0 +1,30 @@
{ lib, stdenv, fetchurl, intltool, pkg-config, gtk2, fetchpatch }:
stdenv.mkDerivation rec {
pname = "gpicview";
version = "0.2.4";
src = fetchurl {
url = "mirror://sourceforge/lxde/gpicview-${version}.tar.gz";
sha256 = "1svcy1c8bgk0pl12yhyv16h2fl52x5vzzcv57z6qdcv5czgvgglr";
};
patches = [
(fetchpatch {
url = "https://raw.githubusercontent.com/nonas/debian-clang/master/buildlogs/gpicview/gpicview-0.2.4/debian/patches/clang_FTBFS_Wreturn-type.patch";
sha256 = "02dm966bplnv10knpdx7rlpjipk884156ggd9ij05zhza0jl8xcs";
})
];
nativeBuildInputs = [ pkg-config ];
buildInputs = [ intltool gtk2 ];
meta = with lib; {
description = "A simple and fast image viewer for X";
homepage = "http://lxde.sourceforge.net/gpicview/";
license = licenses.gpl2;
maintainers = with maintainers; [ lovek323 ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,28 @@
{ lib, stdenv, fetchurl, pkg-config, gtk2, libpng }:
stdenv.mkDerivation rec {
pname = "gqview";
version = "2.1.5";
src = fetchurl {
url = "mirror://sourceforge/gqview/gqview-${version}.tar.gz";
sha256 = "0ilm5s7ps9kg4f5hzgjhg0xhn6zg0v9i7jnd67zrx9h7wsaa9zhj";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [ gtk2 libpng ];
hardeningDisable = [ "format" ];
NIX_CFLAGS_COMPILE = "-fcommon";
NIX_LDFLAGS = "-lm";
meta = with lib; {
description = "A fast image viewer";
homepage = "http://gqview.sourceforge.net";
license = licenses.gpl2;
platforms = platforms.unix;
maintainers = with maintainers; [ ];
};
}

View file

@ -0,0 +1,35 @@
{ lib, stdenv, fetchurl, SDL, SDL_image, SDL_ttf, zlib, libpng, pkg-config, lua5 }:
stdenv.mkDerivation rec {
version = "2.4.2035";
pname = "grafx2";
src = fetchurl {
url = "https://grafx2.googlecode.com/files/${pname}-${version}-src.tgz";
sha256 = "0svsy6rqmdj11b400c242i2ixihyz0hds0dgicqz6g6dcgmcl62q";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [ SDL SDL_image SDL_ttf libpng zlib lua5 ];
preBuild = "cd src";
# Workaround build failure on -fno-common toolchains like upstream
# gcc-10. Otherwise build fails as:
# ld: ../obj/unix/tiles.o:/build/grafx2/src/global.h:306: multiple definition of
# `Main_selector'; ../obj/unix/main.o:/build/grafx2/src/global.h:306: first defined here
NIX_CFLAGS_COMPILE = "-fcommon";
preInstall = '' mkdir -p "$out" '';
installPhase = ''make install prefix="$out"'';
meta = {
description = "Bitmap paint program inspired by the Amiga programs Deluxe Paint and Brilliance";
homepage = "http://pulkomandy.tk/projects/GrafX2";
license = lib.licenses.gpl2;
platforms = [ "x86_64-linux" "i686-linux" ];
maintainers = [];
};
}

View file

@ -0,0 +1,37 @@
{ lib, stdenv, graphicsmagick }:
stdenv.mkDerivation {
pname = "graphicsmagick-imagemagick-compat";
inherit (graphicsmagick) version;
dontUnpack = true;
buildPhase = "true";
utils = [
"composite"
"conjure"
"convert"
"identify"
"mogrify"
"montage"
"animate"
"display"
"import"
];
# TODO: symlink libraries?
installPhase = ''
mkdir -p "$out"/bin
mkdir -p "$out"/share/man/man1
for util in ''${utils[@]}; do
ln -s ${graphicsmagick}/bin/gm "$out/bin/$util"
ln -s ${graphicsmagick}/share/man/man1/gm.1.gz "$out/share/man/man1/$util.1.gz"
done
'';
meta = {
description = "ImageMagick interface for GraphicsMagick";
license = lib.licenses.free;
platforms = lib.platforms.all;
};
}

View file

@ -0,0 +1,63 @@
{ lib, stdenv, fetchurl, bzip2, freetype, graphviz, ghostscript
, libjpeg, libpng, libtiff, libxml2, zlib, libtool, xz, libX11
, libwebp, quantumdepth ? 8, fixDarwinDylibNames, nukeReferences
, runCommand
, graphicsmagick # for passthru.tests
}:
stdenv.mkDerivation rec {
pname = "graphicsmagick";
version = "1.3.38";
src = fetchurl {
url = "mirror://sourceforge/graphicsmagick/GraphicsMagick-${version}.tar.xz";
sha256 = "sha256-1gzZ21k1HSucsZvrRDFwrKoo8HPRPSWPZ7NidjXjJnU=";
};
patches = [
./disable-popen.patch
];
configureFlags = [
"--enable-shared"
"--with-frozenpaths"
"--with-quantum-depth=${toString quantumdepth}"
"--with-gslib=yes"
];
buildInputs =
[ bzip2 freetype ghostscript graphviz libjpeg libpng libtiff libX11 libxml2
zlib libtool libwebp
];
nativeBuildInputs = [ xz nukeReferences ]
++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
# Remove CFLAGS from the binaries to avoid closure bloat.
# In the past we have had -dev packages in the closure of the binaries soley due to the string references.
postConfigure = ''
nuke-refs -e $out ./magick/magick_config.h
'';
postInstall = ''
sed -i 's/-ltiff.*'\'/\'/ $out/bin/*
'';
passthru = {
tests = {
issue-157920 = runCommand "issue-157920-regression-test" {
buildInputs = [ graphicsmagick ];
} ''
gm convert ${graphviz}/share/graphviz/doc/pdf/neatoguide.pdf jpg:$out
'';
};
};
meta = {
homepage = "http://www.graphicsmagick.org";
description = "Swiss army knife of image processing";
license = lib.licenses.mit;
platforms = lib.platforms.all;
mainProgram = "gm";
};
}

View file

@ -0,0 +1,12 @@
http://permalink.gmane.org/gmane.comp.security.oss.general/19669
--- a/magick/blob.c Sat Nov 07 14:49:16 2015 -0600
+++ b/magick/blob.c Sun May 29 14:12:57 2016 -0500
@@ -68,6 +68,7 @@
*/
#define DefaultBlobQuantum 65541
+#undef HAVE_POPEN
/*
Enum declarations.

View file

@ -0,0 +1,131 @@
{ lib, fetchurl, perlPackages, wrapGAppsHook,
# libs
librsvg, sane-backends, sane-frontends,
# runtime dependencies
imagemagick, libtiff, djvulibre, poppler_utils, ghostscript, unpaper, pdftk,
# test dependencies
xvfb-run, liberation_ttf, file, tesseract }:
with lib;
perlPackages.buildPerlPackage rec {
pname = "gscan2pdf";
version = "2.12.6";
src = fetchurl {
url = "mirror://sourceforge/gscan2pdf/gscan2pdf-${version}.tar.xz";
sha256 = "sha256-9ntpUEM3buT3EhneXz9G8bibvzOnEK6Xt0jJcTvLKT0=";
};
nativeBuildInputs = [ wrapGAppsHook ];
buildInputs =
[ librsvg sane-backends sane-frontends ] ++
(with perlPackages; [
Gtk3
Gtk3ImageView
Gtk3SimpleList
Cairo
CairoGObject
Glib
GlibObjectIntrospection
GooCanvas2
GraphicsTIFF
IPCSystemSimple
LocaleCodes
LocaleGettext
PDFBuilder
ImagePNGLibpng
ImageSane
SetIntSpan
ImageMagick
ConfigGeneral
ListMoreUtils
HTMLParser
ProcProcessTable
LogLog4perl
TryTiny
DataUUID
DateCalc
IOString
FilesysDf
SubOverride
]);
postPatch = let
fontSubstitute = "${liberation_ttf}/share/fonts/truetype/LiberationSans-Regular.ttf";
in ''
# Required for the program to properly load its SVG assets
substituteInPlace bin/gscan2pdf \
--replace "/usr/share" "$out/share"
# Substitute the non-free Helvetica font in the tests
sed -i 's|-pointsize|-font ${fontSubstitute} -pointsize|g' t/*.t
'';
postInstall = ''
# Remove impurity
find $out -type f -name "*.pod" -delete
# Add runtime dependencies
wrapProgram "$out/bin/gscan2pdf" \
--prefix PATH : "${sane-backends}/bin" \
--prefix PATH : "${imagemagick}/bin" \
--prefix PATH : "${libtiff}/bin" \
--prefix PATH : "${djvulibre}/bin" \
--prefix PATH : "${poppler_utils}/bin" \
--prefix PATH : "${ghostscript}/bin" \
--prefix PATH : "${unpaper}/bin" \
--prefix PATH : "${pdftk}/bin"
'';
enableParallelBuilding = true;
installTargets = [ "install" ];
outputs = [ "out" "man" ];
checkInputs = [
imagemagick
libtiff
djvulibre
poppler_utils
ghostscript
unpaper
pdftk
xvfb-run
file
tesseract # tests are expecting tesseract 3.x precisely
] ++ (with perlPackages; [
TestPod
]);
checkPhase = ''
# Temporarily disable a dubiously failing test:
# t/169_import_scan.t ........................... 1/1
# # Failed test 'variable-height scan imported with expected size'
# # at t/169_import_scan.t line 50.
# # got: '179'
# # expected: '296'
# # 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
# Disable a test which passes but reports an incorrect status
# t/0601_Dialog_Scan.t .......................... All 14 subtests passed
# t/0601_Dialog_Scan.t (Wstat: 139 Tests: 14 Failed: 0)
# Non-zero wait status: 139
rm t/0601_Dialog_Scan.t
xvfb-run -s '-screen 0 800x600x24' \
make test
'';
meta = {
description = "A GUI to produce PDFs or DjVus from scanned documents";
homepage = "http://gscan2pdf.sourceforge.net/";
license = licenses.gpl3;
maintainers = with maintainers; [ pacien ];
};
}

View file

@ -0,0 +1,113 @@
{ lib, stdenv
, fetchurl
, gnome
, pkg-config
, meson
, ninja
, exiv2
, libheif
, libjpeg
, libtiff
, gst_all_1
, libraw
, libsoup
, libsecret
, glib
, gtk3
, gsettings-desktop-schemas
, libchamplain
, librsvg
, libwebp
, json-glib
, webkitgtk
, lcms2
, bison
, flex
, clutter-gtk
, wrapGAppsHook
, shared-mime-info
, python3
, desktop-file-utils
, itstool
}:
stdenv.mkDerivation rec {
pname = "gthumb";
version = "3.12.2";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "sha256-l/iv5SJTUhZUHrvx47VG0Spr6zio8OuF8m5naTSq1CU=";
};
nativeBuildInputs = [
bison
desktop-file-utils
flex
itstool
meson
ninja
pkg-config
python3
wrapGAppsHook
];
buildInputs = [
clutter-gtk
exiv2
glib
gnome.adwaita-icon-theme
gsettings-desktop-schemas
gst_all_1.gst-plugins-base
(gst_all_1.gst-plugins-good.override { gtkSupport = true; })
gst_all_1.gst-libav
gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-ugly
gtk3
json-glib
lcms2
libchamplain
libheif
libjpeg
libraw
librsvg
libsecret
libsoup
libtiff
libwebp
webkitgtk
];
mesonFlags = [
"-Dlibchamplain=true"
];
postPatch = ''
chmod +x gthumb/make-gthumb-h.py
patchShebangs data/gschemas/make-enums.py \
gthumb/make-gthumb-h.py \
po/make-potfiles-in.py \
postinstall.py \
gthumb/make-authors-tab.py
'';
preFixup = ''
gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "${shared-mime-info}/share")
'';
passthru = {
updateScript = gnome.updateScript {
packageName = pname;
versionPolicy = "odd-unstable";
};
};
meta = with lib; {
homepage = "https://wiki.gnome.org/Apps/Gthumb";
description = "Image browser and viewer for GNOME";
platforms = platforms.linux;
license = licenses.gpl2Plus;
maintainers = [ maintainers.mimame ];
};
}

View file

@ -0,0 +1,30 @@
{ lib, stdenv, libpng, fetchFromGitHub, pkg-config }:
let
version = "1.0.1";
in
stdenv.mkDerivation {
pname = "guetzli";
inherit version;
src = fetchFromGitHub {
owner = "google";
repo = "guetzli";
rev = "v${version}";
sha256 = "1wy9wfvyradp0aigfv8yijvj0dgb5kpq2yf2xki15f605jc1r5dm";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [ libpng ];
installPhase = ''
mkdir -p $out/bin
install bin/Release/guetzli $out/bin/
'';
meta = {
description = "Perceptual JPEG encoder";
longDescription = "Guetzli is a JPEG encoder that aims for excellent compression density at high visual quality.";
homepage = "https://github.com/google/guetzli";
license = lib.licenses.asl20;
platforms = lib.platforms.x86_64;
maintainers = [ lib.maintainers.seppeljordan ];
};
}

View file

@ -0,0 +1,34 @@
{ lib, stdenv, fetchFromGitHub
, cmake, halide
, libpng, libjpeg, libtiff, libraw
}:
stdenv.mkDerivation rec {
pname = "hdr-plus";
version = "unstable-2021-12-10";
src = fetchFromGitHub {
owner = "timothybrooks";
repo = "hdr-plus";
rev = "0ab70564493bdbcd5aca899b5885505d0c824435";
sha256 = "sha256-QV8bGxkwFpbNzJG4kmrWwFQxUo2XzLPnoI1e32UmM6g=";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ halide libpng libjpeg libtiff libraw ];
installPhase = ''
for bin in hdrplus stack_frames; do
install -Dm755 $bin $out/bin/$bin
done
'';
meta = with lib; {
description = "Burst photography pipeline based on Google's HDR+";
homepage = "https://www.timothybrooks.com/tech/hdr-plus/";
license = licenses.mit;
maintainers = with maintainers; [ OPNA2608 ];
platforms = platforms.all;
};
}

View file

@ -0,0 +1,76 @@
{ lib
, mkDerivation
, fetchpatch
, fetchFromGitHub
, cmake
, extra-cmake-modules
, qtbase
, wrapQtAppsHook
, libraw
, exiv2
, zlib
, alglib
, pkg-config
, makeDesktopItem
, copyDesktopItems
}:
mkDerivation rec {
pname = "hdrmerge";
version = "unstable-2020-11-12";
src = fetchFromGitHub {
owner = "jcelaya";
repo = "hdrmerge";
rev = "f5a2538cffe3e27bd9bea5d6a199fa211d05e6da";
sha256 = "1bzf9wawbdvdbv57hnrmh0gpjfi5hamgf2nwh2yzd4sh1ssfa8jz";
};
nativeBuildInputs = [
cmake
pkg-config
wrapQtAppsHook
copyDesktopItems
];
buildInputs = [ qtbase libraw exiv2 zlib alglib ];
cmakeFlags = [
"-DALGLIB_DIR:PATH=${alglib}"
];
patches = [
(fetchpatch {
# patch FindAlglib.cmake to respect ALGLIB_DIR
# see https://github.com/jcelaya/hdrmerge/pull/213
name = "patch-hdrmerge-CMake.patch";
url = "https://github.com/mkroehnert/hdrmerge/commit/472b2dfe7d54856158aea3d5412a02d0bab1da4c.patch";
sha256 = "0jc713ajr4w08pfbi6bva442prj878nxp1fpl9112i3xj34x9sdi";
})
];
desktopItems = [
(makeDesktopItem {
name = "HDRMerge";
genericName = "HDR raw image merge";
desktopName = "HDRMerge";
comment = meta.description;
icon = "hdrmerge";
exec = "hdrmerge %F";
categories = [ "Graphics" ];
mimeTypes = [ "image/x-dcraw" "image/x-adobe-dng" ];
terminal = false;
})
];
postInstall = ''
install -Dm444 ../data/images/icon.png $out/share/icons/hicolor/128x128/apps/hdrmerge.png
'';
meta = with lib; {
homepage = "https://github.com/jcelaya/hdrmerge";
description = "Combines two or more raw images into an HDR";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = [ maintainers.paperdigits ];
};
}

View file

@ -0,0 +1,33 @@
{ stdenv, lib, fetchFromGitHub
, imagemagick, pkg-config, wayland, wayland-protocols
}:
stdenv.mkDerivation {
pname = "hello-wayland-unstable";
version = "2020-07-27";
src = fetchFromGitHub {
owner = "emersion";
repo = "hello-wayland";
rev = "501d0851cfa7f21c780c0eb52f0a6b23f02918c5";
sha256 = "0dz6przqp57kw8ycja3gw6jp9x12217nwbwdpgmvw7jf0lzhk4xr";
};
nativeBuildInputs = [ imagemagick pkg-config ];
buildInputs = [ wayland wayland-protocols ];
installPhase = ''
runHook preBuild
mkdir -p $out/bin
install hello-wayland $out/bin
runHook postBuild
'';
meta = with lib; {
description = "Hello world Wayland client";
homepage = "https://github.com/emersion/hello-wayland";
maintainers = with maintainers; [ qyliss ];
license = licenses.mit;
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,97 @@
{ lib
, stdenv
, cmake
, fetchurl
, gnumake
, makeWrapper
, pkg-config
, autopanosiftc
, boost
, cairo
, enblend-enfuse
, exiv2
, fftw
, flann
, gettext
, glew
, ilmbase
, lcms2
, lensfun
, libjpeg
, libpng
, libtiff
, libX11
, libXi
, libXmu
, libGLU
, libGL
, openexr
, panotools
, perlPackages
, sqlite
, vigra
, wxGTK
, zlib
}:
stdenv.mkDerivation rec {
pname = "hugin";
version = "2021.0.0";
src = fetchurl {
url = "mirror://sourceforge/hugin/hugin-${version}.tar.bz2";
sha256 = "sha256-BHrqin+keESzTvJ8GdO2l+hJOdyx/bvrLCBGIbZu6tk=";
};
buildInputs = [
boost
cairo
exiv2
fftw
flann
gettext
glew
ilmbase
lcms2
lensfun
libjpeg
libpng
libtiff
libX11
libXi
libXmu
libGLU
libGL
openexr
panotools
sqlite
vigra
wxGTK
zlib
];
nativeBuildInputs = [ cmake makeWrapper pkg-config ];
# disable installation of the python scripting interface
cmakeFlags = [ "-DBUILD_HSI:BOOl=OFF" ];
NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR";
postInstall = ''
for p in $out/bin/*; do
wrapProgram "$p" \
--suffix PATH : ${autopanosiftc}/bin \
--suffix PATH : ${enblend-enfuse}/bin \
--suffix PATH : ${gnumake}/bin \
--suffix PATH : ${perlPackages.ImageExifTool}/bin
done
'';
meta = with lib; {
homepage = "http://hugin.sourceforge.net/";
description = "Toolkit for stitching photographs and assembling panoramas, together with an easy to use graphical front end";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ hrdinka ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,117 @@
{ lib
, fetchFromGitHub
, wrapQtAppsHook
, miniupnpc_2
, ffmpeg
, enableSwftools ? false
, swftools
, python3Packages
}:
python3Packages.buildPythonPackage rec {
pname = "hydrus";
version = "487";
format = "other";
src = fetchFromGitHub {
owner = "hydrusnetwork";
repo = "hydrus";
rev = "refs/tags/v${version}";
sha256 = "sha256-4FYUIEk8KJO4nqONNpLUtxAMud3vdfl50zbKQxC5Hw4=";
};
nativeBuildInputs = [
wrapQtAppsHook
python3Packages.mkdocs-material
];
propagatedBuildInputs = with python3Packages; [
beautifulsoup4
cbor2
chardet
cloudscraper
html5lib
lxml
lz4
nose
numpy
opencv4
pillow
psutil
pylzma
pyopenssl
pyside2
pysocks
pythonPackages.mpv
pyyaml
qtpy
requests
send2trash
service-identity
six
twisted
];
checkInputs = with python3Packages; [ nose mock httmock ];
# most tests are failing, presumably because we are not using test.py
checkPhase = ''
nosetests $src/hydrus/test \
-e TestClientAPI \
-e TestClientConstants \
-e TestClientDaemons \
-e TestClientData \
-e TestClientDB \
-e TestClientDBDuplicates \
-e TestClientDBTags \
-e TestClientImageHandling \
-e TestClientImportOptions \
-e TestClientListBoxes \
-e TestClientMigration \
-e TestClientNetworking \
-e TestClientTags \
-e TestClientThreading \
-e TestDialogs \
-e TestFunctions \
-e TestHydrusNetwork \
-e TestHydrusNATPunch \
-e TestHydrusSerialisable \
-e TestHydrusServer \
-e TestHydrusSessions \
-e TestServer \
'';
outputs = [ "out" "doc" ];
installPhase = ''
# Move the hydrus module and related directories
mkdir -p $out/${python3Packages.python.sitePackages}
mv {hydrus,static} $out/${python3Packages.python.sitePackages}
mkdocs build -d help
mv help $out/doc/
# install the hydrus binaries
mkdir -p $out/bin
install -m0755 server.py $out/bin/hydrus-server
install -m0755 client.py $out/bin/hydrus-client
'' + lib.optionalString enableSwftools ''
mkdir -p $out/${python3Packages.python.sitePackages}/bin
# swfrender seems to have to be called sfwrender_linux
# not sure if it can be loaded through PATH, but this is simpler
# $out/python3Packages.python.sitePackages/bin is correct NOT .../hydrus/bin
ln -s ${swftools}/bin/swfrender $out/${python3Packages.python.sitePackages}/bin/swfrender_linux
'';
dontWrapQtApps = true;
preFixup = ''
makeWrapperArgs+=("''${qtWrapperArgs[@]}")
makeWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ ffmpeg miniupnpc_2 ]})
'';
meta = with lib; {
description = "Danbooru-like image tagging and searching system for the desktop";
license = licenses.wtfpl;
homepage = "https://hydrusnetwork.github.io/hydrus/";
maintainers = with maintainers; [ dandellion evanjs ];
};
}

View file

@ -0,0 +1,37 @@
{ lib, stdenv, fetchurl, fetchpatch, wrapGAppsHook4
, cargo, desktop-file-utils, meson, ninja, pkg-config, rustc
, gdk-pixbuf, glib, gtk4, gtksourceview5, libadwaita
}:
stdenv.mkDerivation rec {
pname = "icon-library";
version = "0.0.11";
src = fetchurl {
url = "https://gitlab.gnome.org/World/design/icon-library/uploads/93d183b17d216bbed7b03b2f3698059c/icon-library-${version}.tar.xz";
sha256 = "1zrcnc5dn5fgcl3vklfpbp3m0qzi2n2viw59vw5fhwkysvp670y7";
};
patches = [
# Fix build with meson 0.61
# data/meson.build:85:0: ERROR: gnome.compile_resources takes exactly 2 arguments, but got 3.
# https://gitlab.gnome.org/World/design/icon-library/-/merge_requests/54
(fetchpatch {
url = "https://gitlab.gnome.org/World/design/icon-library/-/commit/c629dbf6670f9bb0b98ff21c17110489b58f5c85.patch";
sha256 = "UKC1CPaM58/z0zINN794luWZdoFx1zGxETPb8VtbO3E=";
})
];
nativeBuildInputs = [
cargo desktop-file-utils meson ninja pkg-config rustc wrapGAppsHook4
];
buildInputs = [ gdk-pixbuf glib gtk4 gtksourceview5 libadwaita ];
meta = with lib; {
homepage = "https://gitlab.gnome.org/World/design/icon-library";
description = "Symbolic icons for your apps";
maintainers = with maintainers; [ qyliss ];
license = licenses.gpl3Plus;
platforms = platforms.unix;
};
}

Some files were not shown because too many files have changed in this diff Show more