summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app-text/llpp/Manifest1
-rw-r--r--app-text/llpp/files/llpp-26b-WM_CLASS.patch41
-rw-r--r--app-text/llpp/llpp-26b.ebuild86
3 files changed, 128 insertions, 0 deletions
diff --git a/app-text/llpp/Manifest b/app-text/llpp/Manifest
index abff6c4dd4ea..cbc881550cc5 100644
--- a/app-text/llpp/Manifest
+++ b/app-text/llpp/Manifest
@@ -1 +1,2 @@
DIST llpp-23.tar.gz 159922 SHA256 83bf72ad88f0532a0163a6dc9bd285ad5ce8604116ec64764738cdb066748927 SHA512 ef89bead66c22ed218a4f7eb06f6f7d9b1d48f6ab6ef4785a5dc73ad486cdf4a5b1131a8a8cec9020e9caa14468528d9f27c88a29ab221e13c9c55616d20c296 WHIRLPOOL e2c5468b744e71036745de63e9172b32cfa7cb2aae3c61c2a71d0ffe8b3a8b0e2502ff300d1a23446619353c6e43b7b6e051a6126ddc45b1997213c67cfd2764
+DIST llpp-26b.tar.gz 169385 SHA256 1c14c794cefddc38c2acb72233ded21380184333571c9b2b01cfc108c9068798 SHA512 ce7d743d8ec998a93cf272083dc5926ce6a250aee6ac768814f511ecb309ffe94fb0e2561ca1778e1c7fbd5824545477937618c8e66d32fd273f9b5e5e3fd143 WHIRLPOOL 2f5c85d56cf1ba3c33012fe7c9b783fb343b752a28ffef56bef2e82d560489e55f0fe090261f6582fc1a28fad0b5260e1dc7abe3e106ed24b74ff355def6cb0b
diff --git a/app-text/llpp/files/llpp-26b-WM_CLASS.patch b/app-text/llpp/files/llpp-26b-WM_CLASS.patch
new file mode 100644
index 000000000000..e99d9a4e4e5a
--- /dev/null
+++ b/app-text/llpp/files/llpp-26b-WM_CLASS.patch
@@ -0,0 +1,41 @@
+--- llpp-26b/link.c
++++ llpp-26b/link.c
+@@ -4392,6 +4392,31 @@
+ return caml_copy_string (FZ_VERSION);
+ }
+
++#if !defined (_WIN32) && !defined (__APPLE__)
++#undef pixel
++#include <X11/X.h>
++#include <X11/Xlib.h>
++#include <X11/Xutil.h>
++#include <GL/glx.h>
++
++static void set_wm_class (void)
++{
++ Display *dpy;
++ Window win;
++ XClassHint hint;
++
++ dpy = XOpenDisplay (getenv ("DISPLAY"));
++ DefaultScreen (dpy);
++ hint.res_name = "llpp";
++ hint.res_class = "llpp";
++ win = glXGetCurrentDrawable ();
++ XSetClassHint (dpy, win, &hint);
++ XCloseDisplay (dpy);
++}
++#else
++#define set_wm_class()
++#endif
++
+ CAMLprim void ml_init (value csock_v, value params_v)
+ {
+ CAMLparam2 (csock_v, params_v);
+@@ -4460,5 +4485,6 @@
+ errx (1, "pthread_create: %s", strerror (ret));
+ }
+
++ set_wm_class ();
+ CAMLreturn0;
+ }
diff --git a/app-text/llpp/llpp-26b.ebuild b/app-text/llpp/llpp-26b.ebuild
new file mode 100644
index 000000000000..fc38b4614cc1
--- /dev/null
+++ b/app-text/llpp/llpp-26b.ebuild
@@ -0,0 +1,86 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils multilib toolchain-funcs vcs-snapshot
+
+DESCRIPTION="graphical PDF viewer which aims to superficially resemble less(1)"
+HOMEPAGE="http://repo.or.cz/w/llpp.git"
+SRC_URI="http://repo.or.cz/llpp.git/snapshot/606ca0f5b7d9c1f031e558c17d66591daa04e3a4.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="+ocamlopt static"
+
+LIB_DEPEND=">=app-text/mupdf-1.11:0=[static-libs]
+ media-libs/openjpeg:2[static-libs]
+ media-libs/fontconfig:1.0[static-libs]
+ media-libs/freetype:2[static-libs]
+ media-libs/jbig2dec[static-libs]
+ sys-libs/zlib[static-libs]
+ virtual/jpeg:0[static-libs]
+ x11-libs/libX11[static-libs]"
+RDEPEND="x11-misc/xsel
+ !static? ( ${LIB_DEPEND//\[static-libs]} )"
+DEPEND="${RDEPEND}
+ static? ( ${LIB_DEPEND}
+ app-arch/bzip2[static-libs]
+ media-libs/libXcm[static-libs]
+ x11-libs/libXau[static-libs]
+ x11-libs/libXdmcp[static-libs]
+ x11-libs/libXmu[static-libs] )
+ >=dev-lang/ocaml-4.02[ocamlopt?]
+ dev-ml/lablgl[glut,ocamlopt?]"
+
+RESTRICT="!ocamlopt? ( strip )"
+
+PATCHES=( "${FILESDIR}"/${PN}-26b-WM_CLASS.patch )
+
+src_compile() {
+ local ocaml=$(usex ocamlopt ocamlopt.opt ocamlc.opt)
+ local cmo=$(usex ocamlopt cmx cmo)
+ local cma=$(usex ocamlopt cmxa cma)
+ local ccopt="$(freetype-config --cflags ) -O -include ft2build.h -D_GNU_SOURCE -DUSE_FONTCONFIG -std=c99 -Wextra -Wall -pedantic-errors -Wunused-parameter -Wsign-compare -Wshadow"
+ if use static ; then
+ local cclib=""
+ local slib=""
+ local spath=( ${EROOT}usr/$(get_libdir) $($(tc-getPKG_CONFIG) --libs-only-L --static mupdf x11 ${egl} | sed 's:-L::g') )
+ for slib in $($(tc-getPKG_CONFIG) --libs-only-l --static mupdf x11 ${egl} fontconfig) -ljpeg -ljbig2dec ; do
+ case ${slib} in
+ -lm|-ldl|-lpthread)
+ einfo "${slib}: shared"
+ cclib+="${slib} " ;;
+ *)
+ local ccnew=$(find ${spath} -name "lib${slib/-l}.a")
+ einfo "${slib}: use ${ccnew}"
+ cclib+="${ccnew} " ;;
+ esac
+ done
+ else
+ local cclib="$($(tc-getPKG_CONFIG) --libs mupdf x11 ${egl} fontconfig) -lpthread"
+ fi
+
+ verbose() { echo "$@" >&2 ; "$@" || die ; }
+ verbose sh mkhelp.sh KEYS ${PV} > help.ml
+ verbose printf 'let version ="%s";;\n' ${PV} >> help.ml
+ verbose ${ocaml} -c -o link.o -ccopt "${ccopt}" link.c
+ verbose ${ocaml} -c -o keys.${cmo} keys.ml
+ verbose ${ocaml} -c -o help.${cmo} help.ml
+ verbose ${ocaml} -c -o utils.${cmo} utils.ml
+ verbose ${ocaml} -c -o wsi/x11/wsi.cmi wsi/x11/wsi.mli
+ verbose ${ocaml} -c -o wsi/x11/wsi.${cmo} -I wsi/x11 wsi/x11/wsi.ml
+ verbose ${ocaml} -c -o parser.${cmo} parser.ml
+ verbose ${ocaml} -c -o config.${cmo} -I +lablGL -I wsi/x11 config.ml
+ verbose ${ocaml} -c -o main.${cmo} -I +lablGL -I wsi/x11 main.ml
+ verbose ${ocaml} $(usex ocamlopt "" -custom) -o llpp -I +lablGL -I wsi/x11 \
+ str.${cma} unix.${cma} lablgl.${cma} link.o \
+ -cclib "${cclib}" \
+ help.${cmo} utils.${cmo} parser.${cmo} wsi.${cmo} config.${cmo} main.${cmo}
+}
+
+src_install() {
+ dobin ${PN} misc/${PN}ac
+ dodoc KEYS README Thanks
+}