summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorChuan Ji2020-05-20 00:59:01 -0700
committerChuan Ji2020-05-20 00:59:01 -0700
commit0b08822f6ce608d626c0c6850c41f22586499d9d (patch)
tree4d82fe82b9e074cd279e2191940119cc500ec315
parent31a7d680ee71628c6401c7d2d039c97fc8362475 (diff)
downloadaur-0b08822f6ce608d626c0c6850c41f22586499d9d.tar.gz
Add missing make dependencies and patch for MuPDF for GCC 10.
-rw-r--r--.SRCINFO6
-rw-r--r--PKGBUILD13
-rw-r--r--mupdf-1.16.1-freeglut-fg_gl2-gcc-10.patch80
3 files changed, 96 insertions, 3 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 66c3657ed67f..d24f34436bfc 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -10,6 +10,10 @@ pkgbase = jfbview-git
arch = aarch64
license = Apache
makedepends = cmake
+ makedepends = mesa
+ makedepends = glu
+ makedepends = libxi
+ makedepends = libxrandr
depends = ncurses
depends = imlib2
conflicts = jfbpdf
@@ -17,7 +21,9 @@ pkgbase = jfbview-git
replaces = jfbpdf
replaces = jfbview
source = git+https://github.com/jichu4n/jfbview.git
+ source = mupdf-1.16.1-freeglut-fg_gl2-gcc-10.patch
sha512sums = SKIP
+ sha512sums = 069c8150402fc463def14ff5690ecfe8a376579ad8319bf79f90823a04799bef1bfa25e79b759a0e027595a114bd3cf48f613541eeb2eec2c85e31d2105062f6
pkgname = jfbview-git
diff --git a/PKGBUILD b/PKGBUILD
index 16f6e8779644..7e6127825c2f 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -7,12 +7,18 @@ pkgdesc="PDF and image viewer for the Linux framebuffer"
arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64')
url="https://github.com/jichu4n/jfbview"
license=('Apache')
-makedepends=('cmake')
+makedepends=('cmake' 'mesa' 'glu' 'libxi' 'libxrandr')
depends=('ncurses' 'imlib2')
conflicts=('jfbpdf' 'jfbview')
replaces=('jfbpdf' 'jfbview')
-source=("git+${url}.git")
-sha512sums=('SKIP')
+source=(
+ "git+${url}.git"
+ 'mupdf-1.16.1-freeglut-fg_gl2-gcc-10.patch'
+)
+sha512sums=(
+ 'SKIP'
+ '069c8150402fc463def14ff5690ecfe8a376579ad8319bf79f90823a04799bef1bfa25e79b759a0e027595a114bd3cf48f613541eeb2eec2c85e31d2105062f6'
+)
_pkgname='jfbview'
pkgver() {
@@ -23,6 +29,7 @@ pkgver() {
prepare() {
cd "${srcdir}/${_pkgname}"
git submodule update --init --recursive
+ patch -d vendor/mupdf --forward --strip=1 --input="${srcdir}/mupdf-1.16.1-freeglut-fg_gl2-gcc-10.patch"
}
build(){
diff --git a/mupdf-1.16.1-freeglut-fg_gl2-gcc-10.patch b/mupdf-1.16.1-freeglut-fg_gl2-gcc-10.patch
new file mode 100644
index 000000000000..c9c37e2efac2
--- /dev/null
+++ b/mupdf-1.16.1-freeglut-fg_gl2-gcc-10.patch
@@ -0,0 +1,80 @@
+From 5791564dd934d193df771a0a7c52013e9f456aa1 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyfox@gentoo.org>
+Date: Tue, 21 Jan 2020 22:33:49 +0000
+Subject: [PATCH] fg_gl2: fix build failure against gcc-10
+
+On gcc-10 (and gcc-9 -fno-common) build fails as:
+
+```
+[ 31%] Linking C executable bin/Lorenz_static
+/usr/bin/cmake -E cmake_link_script CMakeFiles/Lorenz_static.dir/link.txt --verbose=1
+/usr/lib/ccache/bin/cc -Wall -pedantic -rdynamic CMakeFiles/Lorenz_static.dir/progs/demos/Lorenz/lorenz.c.o \
+ -o bin/Lorenz_static -lGLU -lGL -lm -lX11 -lXrandr -lXxf86vm -lXi -lm lib/libglut.a -lGL -lm -lX11 -lXrandr -lXxf86vm -lXi
+ld: lib/libglut.a(fg_gl2.c.o):(.bss+0x0):
+ multiple definition of `fghGenBuffers'; lib/libglut.a(fg_window.c.o):(.bss+0x0): first defined here
+ld: lib/libglut.a(fg_gl2.c.o):(.bss+0x8):
+ multiple definition of `fghDeleteBuffers'; lib/libglut.a(fg_window.c.o):(.bss+0x8): first defined here
+```
+
+Note: duplicate definition comes here from 'fg_gl2.h'.
+The fix is to move declaration to a 'fg_gl2.c' file.
+
+gcc-10 will change the default from -fcommon to fno-common:
+https://gcc.gnu.org/PR85678.
+
+The error also happens if CFLAGS=-fno-common passed explicitly.
+
+Bug: https://bugs.gentoo.org/705840
+Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
+---
+ freeglut/freeglut/src/fg_gl2.c | 12 ++++++++++++
+ freeglut/freeglut/src/fg_gl2.h | 14 +++++++-------
+ 2 files changed, 19 insertions(+), 7 deletions(-)
+
+--- a/thirdparty/freeglut/src/fg_gl2.c
++++ b/thirdparty/freeglut/src/fg_gl2.c
+@@ -27,6 +27,18 @@
+ #include "fg_internal.h"
+ #include "fg_gl2.h"
+
++#ifdef GL_ES_VERSION_2_0
++/* Use existing functions on GLES 2.0 */
++#else
++FGH_PFNGLGENBUFFERSPROC fghGenBuffers;
++FGH_PFNGLDELETEBUFFERSPROC fghDeleteBuffers;
++FGH_PFNGLBINDBUFFERPROC fghBindBuffer;
++FGH_PFNGLBUFFERDATAPROC fghBufferData;
++FGH_PFNGLENABLEVERTEXATTRIBARRAYPROC fghEnableVertexAttribArray;
++FGH_PFNGLDISABLEVERTEXATTRIBARRAYPROC fghDisableVertexAttribArray;
++FGH_PFNGLVERTEXATTRIBPOINTERPROC fghVertexAttribPointer;
++#endif
++
+ void FGAPIENTRY glutSetVertexAttribCoord3(GLint attrib) {
+ if (fgStructure.CurrentWindow != NULL)
+ fgStructure.CurrentWindow->Window.attribute_v_coord = attrib;
+--- a/thirdparty/freeglut/src/fg_gl2.h
++++ b/thirdparty/freeglut/src/fg_gl2.h
+@@ -67,13 +67,13 @@ typedef void (APIENTRY *FGH_PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index);
+ typedef void (APIENTRY *FGH_PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint);
+ typedef void (APIENTRY *FGH_PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
+
+-FGH_PFNGLGENBUFFERSPROC fghGenBuffers;
+-FGH_PFNGLDELETEBUFFERSPROC fghDeleteBuffers;
+-FGH_PFNGLBINDBUFFERPROC fghBindBuffer;
+-FGH_PFNGLBUFFERDATAPROC fghBufferData;
+-FGH_PFNGLENABLEVERTEXATTRIBARRAYPROC fghEnableVertexAttribArray;
+-FGH_PFNGLDISABLEVERTEXATTRIBARRAYPROC fghDisableVertexAttribArray;
+-FGH_PFNGLVERTEXATTRIBPOINTERPROC fghVertexAttribPointer;
++extern FGH_PFNGLGENBUFFERSPROC fghGenBuffers;
++extern FGH_PFNGLDELETEBUFFERSPROC fghDeleteBuffers;
++extern FGH_PFNGLBINDBUFFERPROC fghBindBuffer;
++extern FGH_PFNGLBUFFERDATAPROC fghBufferData;
++extern FGH_PFNGLENABLEVERTEXATTRIBARRAYPROC fghEnableVertexAttribArray;
++extern FGH_PFNGLDISABLEVERTEXATTRIBARRAYPROC fghDisableVertexAttribArray;
++extern FGH_PFNGLVERTEXATTRIBPOINTERPROC fghVertexAttribPointer;
+
+ # endif
+
+--
+2.25.0
+