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 - jeng...@inai.de + +- Ensure neutrality of description. + +------------------------------------------------------------------- +Thu Dec 28 21:45:30 UTC 2017 - avin...@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 <derf+...@finalrewind.org> * 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 <strings.h> 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 <strings.h> 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}