sxiv: update to 1.3-git and fix runtime behaviour
The fix involves using imlib2 built with giflib instead of a libungif. Initially I split imlib2 into two but other distros seem to build imlib2 with giflib already and everything still builds with giflib version so I migrated imlib2 to giflib all together. Closes #4622
This commit is contained in:
parent
7c605db462
commit
de96fb7cc7
@ -1,25 +0,0 @@
|
|||||||
From b901236261dc717dc08ed10f63e2d5cd3f3031f8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Bart=C5=82omiej=20Piotrowski?= <b@bpiotrowski.pl>
|
|
||||||
Date: Tue, 27 May 2014 11:46:06 +0200
|
|
||||||
Subject: [PATCH] Fix build with giflib >= 5.1.0.
|
|
||||||
|
|
||||||
---
|
|
||||||
image.c | 4 ++++
|
|
||||||
1 file changed, 4 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/image.c b/image.c
|
|
||||||
index e62a69f..7eec544 100644
|
|
||||||
--- a/image.c
|
|
||||||
+++ b/image.c
|
|
||||||
@@ -278,7 +278,11 @@ bool img_load_gif(img_t *img, const fileinfo_t *file)
|
|
||||||
}
|
|
||||||
} while (rec != TERMINATE_RECORD_TYPE);
|
|
||||||
|
|
||||||
+#if defined(GIFLIB_MAJOR) && GIFLIB_MAJOR >= 5 && GIFLIB_MINOR >= 1
|
|
||||||
+ DGifCloseFile(gif, NULL);
|
|
||||||
+#else
|
|
||||||
DGifCloseFile(gif);
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
if (err && !file->loaded)
|
|
||||||
warn("corrupted gif file: %s", file->name);
|
|
@ -1,20 +1,21 @@
|
|||||||
{ stdenv, fetchurl, libX11, imlib2, giflib }:
|
{ stdenv, fetchgit, libX11, imlib2, giflib, libexif }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "sxiv-1.2";
|
version = "1.3-git";
|
||||||
|
name = "sxiv-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchgit {
|
||||||
url = "https://github.com/muennich/sxiv/archive/v1.2.tar.gz";
|
url = "git@github.com:muennich/sxiv.git";
|
||||||
name = "${name}.tar.gz";
|
rev = "f55d9f4283f7133ab5a137fc04ee19d1df62fafb";
|
||||||
sha256 = "1wwcxy2adc67xd8x6c2sayy1cjcwrv2lvv1iwln7y4w992gbcxmc";
|
sha256 = "85f734f40fdc837514b72694de12bac92fe130286fa6f1dc374e94d575ca8280";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [ ./146.patch ];
|
postUnpack = ''
|
||||||
|
substituteInPlace $sourceRoot/Makefile \
|
||||||
buildInputs = [ libX11 imlib2 giflib ];
|
--replace /usr/local $out
|
||||||
|
'';
|
||||||
prePatch = ''sed -i "s@/usr/local@$out@" Makefile'';
|
|
||||||
|
|
||||||
|
buildInputs = [ libX11 imlib2 giflib libexif ];
|
||||||
meta = {
|
meta = {
|
||||||
description = "Simple X Image Viewer";
|
description = "Simple X Image Viewer";
|
||||||
homepage = "https://github.com/muennich/sxiv";
|
homepage = "https://github.com/muennich/sxiv";
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ stdenv, fetchurl, x11, libjpeg, libtiff, libungif, libpng, bzip2, pkgconfig }:
|
{ stdenv, fetchurl, x11, libjpeg, libtiff, giflib, libpng, bzip2, pkgconfig }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "imlib2-1.4.6";
|
name = "imlib2-1.4.6";
|
||||||
@ -8,10 +8,14 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "0x1j0ylpclkp8cfpwfpkjywqz124bqskyxbw8pvwzkv2gmrbwldg";
|
sha256 = "0x1j0ylpclkp8cfpwfpkjywqz124bqskyxbw8pvwzkv2gmrbwldg";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ x11 libjpeg libtiff libungif libpng bzip2 ];
|
buildInputs = [ x11 libjpeg libtiff giflib libpng bzip2 ];
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [ pkgconfig ];
|
||||||
|
|
||||||
|
# From
|
||||||
|
# https://github.com/PhantomX/slackbuilds/blob/master/imlib2/patches/imlib2-giflib51.patch
|
||||||
|
patches = [ ./giflib51.patch ];
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
substituteInPlace imlib2-config.in \
|
substituteInPlace imlib2-config.in \
|
||||||
--replace "@my_libs@" ""
|
--replace "@my_libs@" ""
|
||||||
|
64
pkgs/development/libraries/imlib2/giflib51.patch
Normal file
64
pkgs/development/libraries/imlib2/giflib51.patch
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
diff -ruN imlib2-1.4.6.orig/src/modules/loaders/loader_gif.c imlib2-1.4.6/src/modules/loaders/loader_gif.c
|
||||||
|
--- imlib2-1.4.6.orig/src/modules/loaders/loader_gif.c 2013-12-21 10:16:10.000000000 +0000
|
||||||
|
+++ imlib2-1.4.6/src/modules/loaders/loader_gif.c 2014-05-27 09:52:35.857291512 +0000
|
||||||
|
@@ -36,7 +36,7 @@
|
||||||
|
#endif
|
||||||
|
if (fd < 0)
|
||||||
|
return 0;
|
||||||
|
- gif = DGifOpenFileHandle(fd);
|
||||||
|
+ gif = DGifOpenFileHandle(fd, NULL);
|
||||||
|
if (!gif)
|
||||||
|
{
|
||||||
|
close(fd);
|
||||||
|
@@ -60,13 +60,13 @@
|
||||||
|
h = gif->Image.Height;
|
||||||
|
if (!IMAGE_DIMENSIONS_OK(w, h))
|
||||||
|
{
|
||||||
|
- DGifCloseFile(gif);
|
||||||
|
+ DGifCloseFile(gif, NULL);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
rows = malloc(h * sizeof(GifRowType *));
|
||||||
|
if (!rows)
|
||||||
|
{
|
||||||
|
- DGifCloseFile(gif);
|
||||||
|
+ DGifCloseFile(gif, NULL);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
for (i = 0; i < h; i++)
|
||||||
|
@@ -78,7 +78,7 @@
|
||||||
|
rows[i] = malloc(w * sizeof(GifPixelType));
|
||||||
|
if (!rows[i])
|
||||||
|
{
|
||||||
|
- DGifCloseFile(gif);
|
||||||
|
+ DGifCloseFile(gif, NULL);
|
||||||
|
for (i = 0; i < h; i++)
|
||||||
|
{
|
||||||
|
if (rows[i])
|
||||||
|
@@ -150,7 +150,7 @@
|
||||||
|
im->data = (DATA32 *) malloc(sizeof(DATA32) * w * h);
|
||||||
|
if (!im->data)
|
||||||
|
{
|
||||||
|
- DGifCloseFile(gif);
|
||||||
|
+ DGifCloseFile(gif, NULL);
|
||||||
|
free(rows);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
@@ -181,7 +181,7 @@
|
||||||
|
last_per = (int)per;
|
||||||
|
if (!(progress(im, (int)per, 0, last_y, w, i)))
|
||||||
|
{
|
||||||
|
- DGifCloseFile(gif);
|
||||||
|
+ DGifCloseFile(gif, NULL);
|
||||||
|
for (i = 0; i < h; i++)
|
||||||
|
{
|
||||||
|
free(rows[i]);
|
||||||
|
@@ -198,7 +198,7 @@
|
||||||
|
{
|
||||||
|
progress(im, 100, 0, last_y, w, h);
|
||||||
|
}
|
||||||
|
- DGifCloseFile(gif);
|
||||||
|
+ DGifCloseFile(gif, NULL);
|
||||||
|
for (i = 0; i < h; i++)
|
||||||
|
{
|
||||||
|
free(rows[i]);
|
@ -10447,9 +10447,7 @@ let
|
|||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
sxiv = callPackage ../applications/graphics/sxiv {
|
sxiv = callPackage ../applications/graphics/sxiv { };
|
||||||
giflib = giflib_5_0;
|
|
||||||
};
|
|
||||||
|
|
||||||
bittorrentSync = callPackage ../applications/networking/bittorrentsync { };
|
bittorrentSync = callPackage ../applications/networking/bittorrentsync { };
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user