diff --git a/media-gfx/gqview/Manifest b/media-gfx/gqview/Manifest new file mode 100644 index 00000000..e9762b9c --- /dev/null +++ b/media-gfx/gqview/Manifest @@ -0,0 +1 @@ +DIST gqview-2.1.5.tar.gz 1685061 SHA256 12fea494e607a69eff31cdca13d306ef1b0b3b7850be0f8b236f267d8f2e9546 SHA512 a9e184f9bfbcb789fa732f490b5b1883aaa4c153fb924e2995f36ddef2d170ad9d0695689221d7a0ccae587f5de07b34ca03fa407f774ed3505d0183bf44b555 WHIRLPOOL 04c0adab83e6a0114dd7d73c1dc6705122dfd44d5851532c59ac9c3b1a231d4110069978ba85a6f98c8675cac59c72b0304667b4e967daef4d4e9a9475d07083 diff --git a/media-gfx/gqview/files/gqview-2.1.5-format-security.patch b/media-gfx/gqview/files/gqview-2.1.5-format-security.patch new file mode 100644 index 00000000..baf88993 --- /dev/null +++ b/media-gfx/gqview/files/gqview-2.1.5-format-security.patch @@ -0,0 +1,56 @@ +Don't pass external input as format string. Detected by -Werror=format-security. + +https://bugs.gentoo.org/530630 +--- a/src/print.c ++++ b/src/print.c +@@ -1220,7 +1220,7 @@ static void print_job_ps_page_image_pixel(FILE *f, guchar *pix) + } + text[6] = '\0'; + +- fprintf(f, text); ++ fprintf(f, "%s", text); + } + static gint print_job_ps_page_image(PrintWindow *pw, GdkPixbuf *pixbuf, + gdouble x, gdouble y, gdouble w, gdouble h, +@@ -1345,7 +1345,7 @@ static const gchar *ps_text_to_hex_array(FILE *f, const gchar *text, gdouble x, + text[1] = hex_digits[*p & 0xf]; + text[2] = '\0'; + +- fprintf(f, text); ++ fprintf(f, "%s", text); + + p++; + } +--- a/src/ui_fileops.c ++++ b/src/ui_fileops.c +@@ -44,7 +44,7 @@ void print_term(const gchar *text_utf8) + gchar *text_l; + + text_l = g_locale_from_utf8(text_utf8, -1, NULL, NULL, NULL); +- printf((text_l) ? text_l : text_utf8); ++ printf("%s", (text_l) ? text_l : text_utf8); + g_free(text_l); + } + +--- a/src/view_file_icon.c ++++ b/src/view_file_icon.c +@@ -614,7 +614,7 @@ static void vficon_dnd_get(GtkWidget *widget, GdkDragContext *context, + uri_text = uri_text_from_list(list, &total, (info == TARGET_TEXT_PLAIN)); + path_list_free(list); + +- if (debug) printf(uri_text); ++ if (debug) printf("%s", uri_text); + + gtk_selection_data_set(selection_data, selection_data->target, + 8, (guchar *)uri_text, total); +--- a/src/view_file_list.c ++++ b/src/view_file_list.c +@@ -136,7 +136,7 @@ static void vflist_dnd_get(GtkWidget *widget, GdkDragContext *context, + uri_text = uri_text_from_list(list, &total, (info == TARGET_TEXT_PLAIN)); + path_list_free(list); + +- if (debug) printf(uri_text); ++ if (debug) printf("%s", uri_text); + + gtk_selection_data_set(selection_data, selection_data->target, + 8, (guchar *)uri_text, total); diff --git a/media-gfx/gqview/files/gqview-2.1.5-gcc-10.patch b/media-gfx/gqview/files/gqview-2.1.5-gcc-10.patch new file mode 100644 index 00000000..567237ce --- /dev/null +++ b/media-gfx/gqview/files/gqview-2.1.5-gcc-10.patch @@ -0,0 +1,9 @@ +--- a/src/bar_exif.h ++++ b/src/bar_exif.h +@@ -26,4 +26,4 @@ gint bar_exif_is_advanced(GtkWidget *bar); + +-const gchar **bar_exif_key_list; +-const gint bar_exif_key_count; ++extern const gchar **bar_exif_key_list; ++extern const gint bar_exif_key_count; + diff --git a/media-gfx/gqview/files/gqview-2.1.5-glibc.patch b/media-gfx/gqview/files/gqview-2.1.5-glibc.patch new file mode 100644 index 00000000..95708073 --- /dev/null +++ b/media-gfx/gqview/files/gqview-2.1.5-glibc.patch @@ -0,0 +1,39 @@ +diff --git a/Makefile.in b/Makefile.in +index 38f6b25..4d7ad2c 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -123,6 +123,7 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + INSTOBJEXT = @INSTOBJEXT@ + INTLLIBS = @INTLLIBS@ + LCMS_LIBS = @LCMS_LIBS@ ++LIBM = @LIBM@ + LDFLAGS = @LDFLAGS@ + LIBOBJS = @LIBOBJS@ + LIBS = @LIBS@ +diff --git a/configure.in b/configure.in +index 9335493..2299b4a 100644 +--- a/configure.in ++++ b/configure.in +@@ -52,6 +52,9 @@ fi + AC_SUBST(LCMS_LIBS) + AM_CONDITIONAL(HAVE_LCMS, test "$have_lcms" = "yes") + ++AC_CHECK_LIB(m, ceil, LIBM="-lm") ++AC_SUBST(LIBM) ++ + ALL_LINGUAS="ar be bg ca cs da de eo es et eu fi fr hu id it ja ko nl no pl pt_BR ro ru sk sl sv th tr uk vi zh_CN.GB2312 zh_TW" + GETTEXT_PACKAGE=$PACKAGE + AC_SUBST(GETTEXT_PACKAGE) +diff --git a/src/Makefile.am b/src/Makefile.am +index 7ce4702..5005877 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -166,7 +166,7 @@ gqview_SOURCES = \ + view_file_icon.c \ + view_file_icon.h + +-gqview_LDADD = $(GTK_LIBS) $(INTLLIBS) $(LCMS_LIBS) ++gqview_LDADD = $(GTK_LIBS) $(INTLLIBS) $(LCMS_LIBS) $(LIBM) + + EXTRA_DIST = \ + $(extra_SLIK) diff --git a/media-gfx/gqview/files/gqview-2.1.5-helpdir.patch b/media-gfx/gqview/files/gqview-2.1.5-helpdir.patch new file mode 100644 index 00000000..e72ea05a --- /dev/null +++ b/media-gfx/gqview/files/gqview-2.1.5-helpdir.patch @@ -0,0 +1,23 @@ +--- a/configure.in ++++ b/configure.in +@@ -19,8 +19,8 @@ fi + + AM_PATH_GTK_2_0(2.4.0,,AC_MSG_ERROR(GTK+ >= 2.4.0 not installed.)) + +-AC_DEFINE_UNQUOTED(GQVIEW_HELPDIR, "$prefix/share/doc/gqview-$VERSION", [Location of documentation files]) +-AC_DEFINE_UNQUOTED(GQVIEW_HTMLDIR, "$prefix/share/doc/gqview-$VERSION/html", [Location of html documentation]) ++AC_DEFINE_UNQUOTED(GQVIEW_HELPDIR, "$docdir", [Location of documentation files]) ++AC_DEFINE_UNQUOTED(GQVIEW_HTMLDIR, "$docdir/html", [Location of html documentation]) + + dnl checks for functions + AC_CHECK_FUNCS(strverscmp) +--- a/doc/Makefile.am ++++ b/doc/Makefile.am +@@ -1,6 +1,6 @@ + ## Process this file with automake to produce Makefile.in. + +-helpdir = $(datadir)/doc/gqview-$(VERSION)/html ++helpdir = $(docdir)/html + help_DATA = \ + gnu_fdl.txt \ + gqview_faq.html \ diff --git a/media-gfx/gqview/files/gqview-2.1.5-readmedir.patch b/media-gfx/gqview/files/gqview-2.1.5-readmedir.patch new file mode 100644 index 00000000..22d244b8 --- /dev/null +++ b/media-gfx/gqview/files/gqview-2.1.5-readmedir.patch @@ -0,0 +1,11 @@ +--- a/Makefile.am ++++ b/Makefile.am +@@ -5,7 +5,7 @@ DIST_SUBDIRS = src po doc + + man_MANS = gqview.1 + +-readmedir = $(datadir)/doc/gqview-$(VERSION) ++readmedir = $(docdir) + readme_DATA = README COPYING ChangeLog TODO + + desktopdir = $(datadir)/applications diff --git a/media-gfx/gqview/files/gqview-2.1.5-windows.patch b/media-gfx/gqview/files/gqview-2.1.5-windows.patch new file mode 100644 index 00000000..207f3c02 --- /dev/null +++ b/media-gfx/gqview/files/gqview-2.1.5-windows.patch @@ -0,0 +1,16 @@ +--- old/src/main.c 2006-11-01 17:28:37.000000000 +0000 ++++ new/src/main.c 2008-06-21 23:31:06.000000000 +0000 +@@ -1054,11 +1054,8 @@ + if (layout_valid(&lw)) + { + main_window_maximized = window_maximized(lw->window); +- if (!main_window_maximized) +- { +- layout_geometry_get(NULL, &main_window_x, &main_window_y, +- &main_window_w, &main_window_h); +- } ++ layout_geometry_get(NULL, &main_window_x, &main_window_y, ++ &main_window_w, &main_window_h); + } + + layout_geometry_get_dividers(NULL, &window_hdivider_pos, &window_vdivider_pos); diff --git a/media-gfx/gqview/gqview-2.1.5-r2.ebuild b/media-gfx/gqview/gqview-2.1.5-r2.ebuild new file mode 100644 index 00000000..8cbd809f --- /dev/null +++ b/media-gfx/gqview/gqview-2.1.5-r2.ebuild @@ -0,0 +1,60 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +inherit autotools xdg-utils + +DESCRIPTION="A GTK-based image browser" +HOMEPAGE="http://gqview.sourceforge.net/" +SRC_URI="mirror://sourceforge/gqview/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha amd64 ~arm ~ia64 ~mips ppc ppc64 ~sparc x86" +IUSE="" + +RDEPEND=">=x11-libs/gtk+-2.4:2 + virtual/libintl" + +DEPEND="${RDEPEND} + virtual/pkgconfig + sys-devel/gettext" + +PATCHES=( + "${FILESDIR}"/${P}-windows.patch + "${FILESDIR}"/${P}-glibc.patch + "${FILESDIR}"/${P}-gcc-10.patch + "${FILESDIR}"/${P}-helpdir.patch + "${FILESDIR}"/${P}-readmedir.patch + "${FILESDIR}"/${P}-format-security.patch +) + +src_prepare() { + default + + sed -i \ + -e '/^Encoding/d' \ + -e '/^Icon/s/\.png//' \ + -e '/^Categories/s/Application;//' \ + gqview.desktop || die + mv configure.in configure.ac || die + eautoreconf +} + +src_configure() { + econf --without-lcms +} + +src_install() { + default + # bug #30111 + docompress -x /usr/share/doc/${PF}/README +} + +pkg_postinst() { + xdg_desktop_database_update +} + +pkg_postrm() { + xdg_desktop_database_update +} diff --git a/profiles/desktop/package.accept_keywords b/profiles/desktop/package.accept_keywords index 964a4c25..6106641d 100644 --- a/profiles/desktop/package.accept_keywords +++ b/profiles/desktop/package.accept_keywords @@ -174,6 +174,7 @@ games-util/game-device-udev-rules ~amd64