Hello community,
here is the log from the commit of package feh for openSUSE:Factory checked in at 2017-12-29 18:52:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/feh (Old)
and /work/SRC/openSUSE:Factory/.feh.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "feh"
Fri Dec 29 18:52:31 2017 rev:17 rq:560480 version:2.23
Changes:
--------
--- /work/SRC/openSUSE:Factory/feh/feh.changes 2017-11-08 15:15:53.741427805 +0100
+++ /work/SRC/openSUSE:Factory/.feh.new/feh.changes 2017-12-29 18:52:49.351931415 +0100
@@ -1,0 +2,16 @@
+Fri Dec 29 01:07:11 UTC 2017 - jengelh@inai.de
+
+- Ensure neutrality of description.
+
+-------------------------------------------------------------------
+Thu Dec 28 21:45:30 UTC 2017 - avindra@opensuse.org
+
+- update to 2.23
+ * Fix broken thumbnail/index windows when using --scale-down
+ * Use Imlib2 as in-memory image cache (default size: 4MiB)
+ noticable performance improvements, especially in small
+ slideshows
+ * Add --cache-size option to set Imlib2 image cache size
+- rebase feh-makefile_optflags.patch
+
+-------------------------------------------------------------------
Old:
----
feh-2.22.2.tar.bz2
feh-2.22.2.tar.bz2.asc
New:
----
feh-2.23.tar.bz2
feh-2.23.tar.bz2.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ feh.spec ++++++
--- /var/tmp/diff_new_pack.lDQVU2/_old 2017-12-29 18:52:50.159699416 +0100
+++ /var/tmp/diff_new_pack.lDQVU2/_new 2017-12-29 18:52:50.163698268 +0100
@@ -17,9 +17,9 @@
Name: feh
-Version: 2.22.2
+Version: 2.23
Release: 0
-Summary: Fast and Lightweight Image Viewer
+Summary: X11 image viewer
License: MIT AND LGPL-2.0+
Group: Productivity/Graphics/Viewers
Url: http://feh.finalrewind.org/
@@ -48,11 +48,12 @@
Requires(postun): hicolor-icon-theme
%description
-feh is a versatile and fast image viewer using imlib2, the
-premier image file handling library. feh has many features,
-from simple single file viewing, to multiple file modes using
-a slideshow or multiple windows. feh supports the creation of
-montages as index prints with many user-configurable options.
+feh is an X11 image viewer aimed mostly at console users. It does not
+have a fancy GUI, but simply displays images. It is controlled via
+commandline arguments and configurable key/mouse actions. feh has
+multiple file modes using a slideshow or multiple windows. It
+supports the creation of montages as index prints with many
+user-configurable options.
%prep
%setup -q
++++++ feh-2.22.2.tar.bz2 -> feh-2.23.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-2.22.2/ChangeLog new/feh-2.23/ChangeLog
--- old/feh-2.22.2/ChangeLog 2017-11-07 17:40:24.000000000 +0100
+++ new/feh-2.23/ChangeLog 2017-12-28 19:28:35.000000000 +0100
@@ -1,3 +1,11 @@
+Thu, 28 Dec 2017 19:26:29 +0100
+
+* Release v2.23
+ * Fix broken thumbnail/index windows when using --scale-down
+ * Use Imlib2 in-memory image cache (default cache size: 4MiB). This allows
+ for significant performance improvements especially in small slideshows
+ * Add --cache-size option to set Imlib2 image cache size
+
Tue, 07 Nov 2017 17:36:26 +0100 Daniel Friesel
* Release v2.22.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-2.22.2/config.mk new/feh-2.23/config.mk
--- old/feh-2.22.2/config.mk 2017-11-07 17:40:24.000000000 +0100
+++ new/feh-2.23/config.mk 2017-12-28 19:28:35.000000000 +0100
@@ -1,5 +1,5 @@
PACKAGE ?= feh
-VERSION ?= 2.22.2
+VERSION ?= 2.23
app ?= 0
cam ?= 0
@@ -37,6 +37,9 @@
CFLAGS ?= -g -O2
CFLAGS += -Wall -Wextra -pedantic
+# Settings for glibc >= 2.19 - may need to be adjusted for other systems
+CFLAGS += -std=c11 -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500
+
ifeq (${curl},1)
CFLAGS += -DHAVE_LIBCURL
LDLIBS += -lcurl
@@ -76,7 +79,7 @@
MAN_EXIF = disabled
endif
-MAN_DATE ?= November 07, 2017
+MAN_DATE ?= December 28, 2017
# Uncomment this to use dmalloc
#CFLAGS += -DWITH_DMALLOC
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-2.22.2/man/feh.pre new/feh-2.23/man/feh.pre
--- old/feh-2.22.2/man/feh.pre 2017-11-07 17:40:24.000000000 +0100
+++ new/feh-2.23/man/feh.pre 2017-12-28 19:28:35.000000000 +0100
@@ -205,6 +205,16 @@
.
Create borderless windows.
.
+.It Cm --cache-size Ar size
+.
+Set Imlib2 in-memory cache to
+.Ar size
+MiB. A higher cache size can
+significantly improve performance especially for small slide shows, however at
+the cost of increased memory consumption.
+.Ar size
+must be between 0 and 2048 MiB and defaults to 4.
+.
.It Cm -P , --cache-thumbnails
.
Enable thumbnail caching in
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-2.22.2/src/gib_hash.c new/feh-2.23/src/gib_hash.c
--- old/feh-2.22.2/src/gib_hash.c 2017-11-07 17:40:24.000000000 +0100
+++ new/feh-2.23/src/gib_hash.c 2017-12-28 19:28:35.000000000 +0100
@@ -26,6 +26,7 @@
#include "gib_hash.h"
#include "utils.h"
#include "debug.h"
+#include
gib_hash_node *gib_hash_node_new(char *key, void *data)
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-2.22.2/src/help.raw new/feh-2.23/src/help.raw
--- old/feh-2.22.2/src/help.raw 2017-11-07 17:40:24.000000000 +0100
+++ new/feh-2.23/src/help.raw 2017-12-28 19:28:35.000000000 +0100
@@ -20,7 +20,7 @@
-g, --geometry WxH[+X+Y] Limit the window size to DIMENSION[+OFFSET]
-f, --filelist FILE Load/save images from/to the FILE filelist
-|, --start-at FILENAME Start at FILENAME in the filelist
- -p, --preload Remove unlaodable files from the internal filelist
+ -p, --preload Remove unloadable files from the internal filelist
before attempting to display anything
-., --scale-down Automatically scale down images to fit screen size
-F, --fullscreen Make the window full screen
@@ -94,6 +94,7 @@
--min-dimension WxH Only show images with width >= W and height >= H
--max-dimension WxH Only show images with width <= W and height <= H
--scroll-step COUNT scroll COUNT pixels when movement key is pressed
+ --cache-size NUM imlib cache size in mebibytes (0 .. 2048)
MONTAGE MODE OPTIONS
-X, --ignore-aspect Set thumbnail to specified width/height without
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-2.22.2/src/imlib.c new/feh-2.23/src/imlib.c
--- old/feh-2.22.2/src/imlib.c 2017-11-07 17:40:24.000000000 +0100
+++ new/feh-2.23/src/imlib.c 2017-12-28 19:28:35.000000000 +0100
@@ -131,6 +131,8 @@
imlib_context_set_operation(IMLIB_OP_COPY);
wmDeleteWindow = XInternAtom(disp, "WM_DELETE_WINDOW", False);
+ imlib_set_cache_size(opt.cache_size * 1024 * 1024);
+
/* Initialise random numbers */
srand(getpid() * time(NULL) % ((unsigned int) -1));
@@ -254,6 +256,16 @@
return(0);
}
+ /*
+ * By default, Imlib2 unconditionally loads a cached file without checking
+ * if it was modified on disk. However, feh (or rather its users) should
+ * expect image changes to appear at the next reload. So we tell Imlib2 to
+ * always check the file modification time and only use a cached image if
+ * the mtime was not changed. The performance penalty is usually negligible.
+ */
+ imlib_context_set_image(*im);
+ imlib_image_set_changes_on_disk();
+
#ifdef HAVE_LIBEXIF
int orientation = 0;
ExifData *exifData = exif_data_new_from_file(file->filename);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-2.22.2/src/options.c new/feh-2.23/src/options.c
--- old/feh-2.22.2/src/options.c 2017-11-07 17:40:24.000000000 +0100
+++ new/feh-2.23/src/options.c 2017-12-28 19:28:35.000000000 +0100
@@ -27,6 +27,7 @@
#include "feh.h"
#include "filelist.h"
#include "options.h"
+#include
static void check_options(void);
static void feh_getopt_theme(int argc, char **argv);
@@ -67,6 +68,7 @@
opt.jump_on_resort = 1;
opt.screen_clip = 1;
+ opt.cache_size = 4;
#ifdef HAVE_LIBXINERAMA
/* if we're using xinerama, then enable it by default */
opt.xinerama = 1;
@@ -409,6 +411,7 @@
{"xinerama-index", 1, 0, 239},
{"insecure" , 0, 0, 240},
{"no-recursive" , 0, 0, 241},
+ {"cache-size" , 1, 0, 243},
{0, 0, 0, 0}
};
int optch = 0, cmdx = 0;
@@ -771,6 +774,14 @@
break;
case 241:
opt.recursive = 0;
+ break;
+ case 243:
+ opt.cache_size = atoi(optarg);
+ if (opt.cache_size < 0)
+ opt.cache_size = 0;
+ if (opt.cache_size > 2048)
+ opt.cache_size = 2048;
+ break;
default:
break;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-2.22.2/src/options.h new/feh-2.23/src/options.h
--- old/feh-2.22.2/src/options.h 2017-11-07 17:40:24.000000000 +0100
+++ new/feh-2.23/src/options.h 2017-12-28 19:28:35.000000000 +0100
@@ -117,6 +117,9 @@
/* signed in case someone wants to invert scrolling real quick */
int scroll_step;
+ // imlib cache size in mebibytes
+ int cache_size;
+
unsigned int min_width, min_height, max_width, max_height;
unsigned char mode;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/feh-2.22.2/src/winwidget.c new/feh-2.23/src/winwidget.c
--- old/feh-2.22.2/src/winwidget.c 2017-11-07 17:40:24.000000000 +0100
+++ new/feh-2.23/src/winwidget.c 2017-12-28 19:28:35.000000000 +0100
@@ -455,7 +455,7 @@
|| (winwid->has_rotated)))
feh_draw_checks(winwid);
- if (!winwid->full_screen && opt.zoom_mode
+ if (!winwid->full_screen && opt.zoom_mode && (winwid->type != WIN_TYPE_THUMBNAIL)
&& (winwid->zoom == 1.0) && ! (opt.geom_flags & (WidthValue | HeightValue))
&& (winwid->w > winwid->im_w) && (winwid->h > winwid->im_h))
feh_calc_needed_zoom(&(winwid->zoom), winwid->im_w, winwid->im_h, winwid->w, winwid->h);
@@ -464,14 +464,14 @@
* In case of a resize, the geomflags (and im_w, im_h) get updated by
* the ConfigureNotify handler.
*/
- if (need_center && !winwid->full_screen
+ if (need_center && !winwid->full_screen && (winwid->type != WIN_TYPE_THUMBNAIL)
&& (opt.geom_flags & (WidthValue | HeightValue))
&& ((winwid->w < winwid->im_w) || (winwid->h < winwid->im_h)))
feh_calc_needed_zoom(&(winwid->zoom), winwid->im_w, winwid->im_h, winwid->w, winwid->h);
- if (resize && (winwid->full_screen
- || (opt.geom_flags & (WidthValue | HeightValue)))) {
+ if (resize && (winwid->type != WIN_TYPE_THUMBNAIL) &&
+ (winwid->full_screen || (opt.geom_flags & (WidthValue | HeightValue)))) {
int smaller; /* Is the image smaller than screen? */
int max_w = 0, max_h = 0;
@@ -1008,7 +1008,7 @@
void winwidget_free_image(winwidget w)
{
if (w->im)
- gib_imlib_free_image_and_decache(w->im);
+ gib_imlib_free_image(w->im);
w->im = NULL;
w->im_w = 0;
w->im_h = 0;
++++++ feh-makefile_optflags.patch ++++++
--- /var/tmp/diff_new_pack.lDQVU2/_old 2017-12-29 18:52:51.699257242 +0100
+++ /var/tmp/diff_new_pack.lDQVU2/_new 2017-12-29 18:52:51.703256093 +0100
@@ -3,11 +3,11 @@
src/Makefile | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
-Index: feh-2.17.1/config.mk
+Index: b/config.mk
===================================================================
---- feh-2.17.1.orig/config.mk
-+++ feh-2.17.1/config.mk
-@@ -31,8 +31,8 @@ icon_dir = ${ICON_PREFIX}/hicolor
+--- a/config.mk
++++ b/config.mk
+@@ -34,8 +34,8 @@ icon_dir = ${ICON_PREFIX}/hicolor
scalable_icon_dir = ${icon_dir}/scalable/apps
# default CFLAGS
@@ -16,12 +16,12 @@
+OPTFLAGS = -g -O2
+CFLAGS += -Wall -Wextra -pedantic $(OPTFLAGS)
- ifeq (${curl},1)
- CFLAGS += -DHAVE_LIBCURL
-Index: feh-2.17.1/src/Makefile
+ # Settings for glibc >= 2.19 - may need to be adjusted for other systems
+ CFLAGS += -std=c11 -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500
+Index: b/src/Makefile
===================================================================
---- feh-2.17.1.orig/src/Makefile
-+++ feh-2.17.1/src/Makefile
+--- a/src/Makefile
++++ b/src/Makefile
@@ -7,7 +7,7 @@ I_SRCS = ${shell echo *.raw}
I_DSTS = ${I_SRCS:.raw=.inc}