summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'media-gfx/gqview')
-rw-r--r--media-gfx/gqview/files/gqview-2.1.5-format-security.patch56
-rw-r--r--media-gfx/gqview/files/gqview-2.1.5-gcc-10.patch9
-rw-r--r--media-gfx/gqview/files/gqview-2.1.5-helpdir.patch23
-rw-r--r--media-gfx/gqview/files/gqview-2.1.5-readmedir.patch11
-rw-r--r--media-gfx/gqview/gqview-2.1.5-r2.ebuild62
-rw-r--r--media-gfx/gqview/metadata.xml4
6 files changed, 165 insertions, 0 deletions
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 000000000000..baf88993a1f3
--- /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 000000000000..567237ce7b38
--- /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-helpdir.patch b/media-gfx/gqview/files/gqview-2.1.5-helpdir.patch
new file mode 100644
index 000000000000..e72ea05a213b
--- /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 000000000000..22d244b8c91f
--- /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/gqview-2.1.5-r2.ebuild b/media-gfx/gqview/gqview-2.1.5-r2.ebuild
new file mode 100644
index 000000000000..f64729a5a87a
--- /dev/null
+++ b/media-gfx/gqview/gqview-2.1.5-r2.ebuild
@@ -0,0 +1,62 @@
+# 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 \
+ --docdir="${EPREFIX}"/usr/share/doc/${PF} \
+ --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/media-gfx/gqview/metadata.xml b/media-gfx/gqview/metadata.xml
index 7a971df73744..c5c6c04060e1 100644
--- a/media-gfx/gqview/metadata.xml
+++ b/media-gfx/gqview/metadata.xml
@@ -5,6 +5,10 @@
<email>graphics@gentoo.org</email>
<name>Gentoo Graphics Project</name>
</maintainer>
+ <maintainer type="person">
+ <email>slyfox@gentoo.org</email>
+ <name>Sergei Trofimovich</name>
+ </maintainer>
<upstream>
<remote-id type="sourceforge">gqview</remote-id>
</upstream>