Package Details: llpp 42-1

Git Clone URL: https://aur.archlinux.org/llpp.git (read-only, click to copy)
Package Base: llpp
Description: opengl accelerated pdf viewer based on mupdf
Upstream URL: https://github.com/criticic/llpp
Keywords: mupdf opengl pdf viewer
Licenses: GPL3
Submitter: polyzen
Maintainer: stek
Last Packager: stek
Votes: 9
Popularity: 0.000575
First Submitted: 2022-05-14 17:01 (UTC)
Last Updated: 2024-04-04 20:07 (UTC)

Dependencies (17)

Required by (0)

Sources (1)

Pinned Comments

stek commented on 2024-04-12 15:01 (UTC) (edited on 2024-04-12 15:07 (UTC) by stek)

If llpp doesn't start and instead produces an error like

cannot create context: incompatible header (1.23.11) and library (1.24.1) versions

or

error while loading shared libraries: libmupdf.so.24.0: cannot open shared object file: No such file or directory

this likely means that the version of libmupdf used to build llpp does not agree with the currently installed one.

This can be fixed by rebuilding llpp (with makepkg -C, or if you're using an AUR helper, whatever the "clean build" option is there). If this doesn't help, please leave a comment here or report upstream.

cynik commented on 2022-09-18 07:05 (UTC)

I have updated it to my fork at: https://github.com/criticic/llpp

Latest Comments

1 2 3 Next › Last »

ordnael commented on 2025-06-10 08:04 (UTC) (edited on 2025-06-10 08:08 (UTC) by ordnael)

This builds correctly with libmupdf 1.26.2-1. Just added a sed line to update pdf_embedded_file_params and pdf_get_embedded_file_params to their current names.

# Maintainer: Florian Stecker <oss@florianstecker.net>
# Contributor: Sagnik Mandal <criticic>
# Contributor: Daniel M. Capella <polyzen@archlinux.org>
# Contributor: Eli Schwartz <eschwartz@archlinux.org>
# Contributor: earnestly

pkgname=llpp
pkgver=42
pkgrel=1
pkgdesc='opengl accelerated pdf viewer based on mupdf'
arch=('x86_64')
url=https://github.com/criticic/llpp
_commit=dbf07cf23e006d4bcb23469b41da50697c1907b8
license=('GPL3')
depends=('freetype2' 'gumbo-parser' 'jbig2dec' 'libgl' 'libjpeg' 'openjpeg2' 'libmupdf')
makedepends=('asciidoc' 'git' 'ocaml' 'ocaml-lablgl')
optdepends=('djvulibre: for llppac djvu conversion'
        'ghostscript: for llppac ps, dvi, and djvu conversion'
        'imagemagick: for llppac image conversion'
        'inotify-tools: for the llpp.inotify autoreload wrapper'
        'librsvg: for llppac svg conversion'
        'unoconv: for llppac office conversion')
options=('!strip' '!debug')
source=("git+$url#commit=$_commit")
b2sums=('SKIP')

prepare() {
  cd $pkgname
  sed -i -e 's/pdf_get_embedded_file_params/pdf_get_filespec_params/' -e 's/pdf_embedded_file_params/pdf_filespec_params/' link.c
}

build() {
  cd $pkgname
  bash ./build.bash build
  bash ./build.bash build doc
}

package() {
  cd $pkgname
  install -Dt "$pkgdir"/usr/bin build/llpp misc/llpp{.inotify,ac}
  install -Dm644 -t "$pkgdir"/usr/share/applications misc/llpp.desktop
  install -Dm644 -t "$pkgdir"/usr/share/man/man1 build/doc/*.1
}

doctorcolossus commented on 2025-06-09 12:55 (UTC) (edited on 2025-06-09 12:59 (UTC) by doctorcolossus)

getting the error below trying to build with the latest libmupdf 1.26.2-1:

./link.c: In function ‘loadpage’:
./link.c:475:28: warning: ‘calloc’ sizes specified with ‘sizeof’ in the earlier argument and not in the later argument [-Wcalloc-transposed-args]
  475 |     page = calloc (sizeof (struct page), 1);
      |                            ^~~~~~
./link.c:475:28: note: earlier argument should specify number of elements, later size of each element
./link.c: In function ‘ml_getfileannot’:
./link.c:2562:5: error: unknown type name ‘pdf_embedded_file_params’
 2562 |     pdf_embedded_file_params file_params;
      |     ^~~~~~~~~~~~~~~~~~~~~~~~
./link.c:2563:5: error: implicit declaration of function ‘pdf_get_embedded_file_params’; did you mean ‘pdf_add_embedded_file’? [-Wimplicit-function-declaration]
 2563 |     pdf_get_embedded_file_params (state.ctx, fs, &file_params);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |     pdf_add_embedded_file
./link.c:2564:42: error: request for member ‘filename’ in something not a structure or union
 2564 |     ret_v = caml_copy_string (file_params.filename);
      |                                          ^
In file included from ./link.c:38:
./link.c: In function ‘ml_savefileannot’:
/usr/lib/ocaml/caml/memory.h:278:29: warning: unused variable ‘caml__frame’ [-Wunused-variable]
  278 |   struct caml__roots_block *caml__frame = *caml_local_roots_ptr
      |                             ^~~~~~~~~~~
/usr/lib/ocaml/caml/memory.h:289:3: note: in expansion of macro ‘CAMLparam0’
  289 |   CAMLparam0 (); \
      |   ^~~~~~~~~~
./link.c:2572:5: note: in expansion of macro ‘CAMLparam3’
 2572 |     CAMLparam3 (ptr_v, n_v, path_v);
      |     ^~~~~~~~~~
ocamlc -ccopt "-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -g -std=c11 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-6 -pthread -I/usr/include/openjpeg-2.5 -Wall -Wextra -pedantic -O2 -D_POSIX_C_SOURCE -DGL_H='<GL/gl.h>' -DTEXT_TYPE=GL_TEXTURE_RECTANGLE_ARB -MMD -MF build/link.o.dep -MT_" -o build/link.o -c ./link.c failed
build failed

I am able to build successfully after downgrading libmupdf to 1.25.6-1.

stek commented on 2024-04-12 15:01 (UTC) (edited on 2024-04-12 15:07 (UTC) by stek)

If llpp doesn't start and instead produces an error like

cannot create context: incompatible header (1.23.11) and library (1.24.1) versions

or

error while loading shared libraries: libmupdf.so.24.0: cannot open shared object file: No such file or directory

this likely means that the version of libmupdf used to build llpp does not agree with the currently installed one.

This can be fixed by rebuilding llpp (with makepkg -C, or if you're using an AUR helper, whatever the "clean build" option is there). If this doesn't help, please leave a comment here or report upstream.

txtsd commented on 2023-12-26 08:29 (UTC)

@urldog Could you post the entire log please?

urldog commented on 2023-12-26 05:07 (UTC) (edited on 2023-12-26 05:10 (UTC) by urldog)

trying to install this on arch running inside podman (distrobox) fails with this error:

(...)    
    : Running post-transaction hooks...
    (1/3) Arming ConditionNeedsUpdate...
    (2/3) Distrobox hook /etc/distrobox-post-hook.sh...
    (3/3) Distrobox hook /usr/share/libalpm/scripts/distrobox_post_hook.sh...
    ==> ERROR: Running makepkg as root is not allowed as it can cause permanent,
    catastrophic damage to your system.
     -> error making: ocaml-lablgl-exit status 10
    ==> ERROR: Running makepkg as root is not allowed as it can cause permanent,
    catastrophic damage to your system.
     -> error making: llpp-exit status 10
    error: target not found: ocaml-lablgl
     -> Failed to install the following packages. Manual intervention is required:
    ocaml-lablgl - exit status 10
    llpp - exit status 10
    exit status 1

It might be because podman is rootless and the install seems to be wanting to install things as root.

txtsd commented on 2023-11-10 17:28 (UTC)

Good job @temhelk!

@stek: I created a patch for you to apply so this package builds again. It's co-authored by @temhelk and credited as such. You could also add me as co-maintainer, and I can take care of updating this package. I maintain a bunch at ankylosaurus.

From d19e0fa02e3c7500dc2bb9da8f13f01e7b1bf8bc Mon Sep 17 00:00:00 2001
From: txtsd <code@ihavea.quest>
Date: Fri, 10 Nov 2023 22:52:56 +0530
Subject: [PATCH] upgpkg: llpp 41-4

Add patch to allow building

Co-authored-by: temhelk <temhelk@gmail.com>
Signed-off-by: txtsd <code@ihavea.quest>
---
 .SRCINFO                            |  4 +++-
 0001-fix-Allow-building-again.patch | 30 +++++++++++++++++++++++++++++
 PKGBUILD                            | 14 +++++++++++---
 3 files changed, 44 insertions(+), 4 deletions(-)
 create mode 100644 0001-fix-Allow-building-again.patch

diff --git a/.SRCINFO b/.SRCINFO
index 81bebe3..a84e0ad 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
 pkgbase = llpp
    pkgdesc = opengl accelerated pdf viewer based on mupdf
    pkgver = 41
-   pkgrel = 3
+   pkgrel = 4
    url = https://github.com/criticic/llpp
    arch = x86_64
    license = GPL3
@@ -24,6 +24,8 @@ pkgbase = llpp
    optdepends = unoconv: for llppac office conversion
    options = !strip
    source = git+https://github.com/criticic/llpp#branch=latest
+   source = 0001-fix-Allow-building-again.patch
    b2sums = SKIP
+   b2sums = 3d74eea6f6ac29ecae5a3055b70205b1e2601027f1f4473dadab595170d9f57a3d5948d6d6f9897ef5d60417998ef788d8242ea18612e8bd0e921520b2fc93df

 pkgname = llpp
diff --git a/0001-fix-Allow-building-again.patch b/0001-fix-Allow-building-again.patch
new file mode 100644
index 0000000..518126b
--- /dev/null
+++ b/0001-fix-Allow-building-again.patch
@@ -0,0 +1,30 @@
+From f12488495f8d562d63a745c036e9ae4c757f7bf1 Mon Sep 17 00:00:00 2001
+From: txtsd <code@ihavea.quest>
+Date: Fri, 10 Nov 2023 22:45:59 +0530
+Subject: [PATCH] fix: Allow building again
+
+Signed-off-by: txtsd <code@ihavea.quest>
+---
+ build.bash | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/build.bash b/build.bash
+index 0db5fbb..7830f6c 100755
+--- a/build.bash
++++ b/build.bash
+@@ -37,7 +37,11 @@ mudeps=('freetype2' 'gumbo' 'harfbuzz' 'libjpeg' 'libopenjp2' 'x11' 'zlib')
+ 
+ mkdir -p $outd/{$wsid,lablGL}
+ 
+-isfresh() { test "$(<$1.past)" = "$2"; } 2>/dev/null
++isfresh() {
++    test -f "$1.past" || return 1
++    test "$(<$1.past)" = "$2"
++} 2>/dev/null
++
+ 
+ mbt=${mbt:-release}
+ test -n "${gmk:-}" && gmk=false || gmk=true
+-- 
+2.42.1
+
diff --git a/PKGBUILD b/PKGBUILD
index bd28248..7d8fb1a 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,4 +1,5 @@
 # Maintainer: Florian Stecker <oss@florianstecker.net>
+# Contributor: txtsd <aur.archlinux@ihavea.quest>
 # Contributor: Sagnik Mandal <criticic>
 # Contributor: Daniel M. Capella <polyzen@archlinux.org>
 # Contributor: Eli Schwartz <eschwartz@archlinux.org>
@@ -6,7 +7,7 @@

 pkgname=llpp
 pkgver=41
-pkgrel=3
+pkgrel=4
 pkgdesc='opengl accelerated pdf viewer based on mupdf'
 arch=('x86_64')
 url=https://github.com/criticic/llpp
@@ -21,8 +22,15 @@ optdepends=('djvulibre: for llppac djvu conversion'
             'librsvg: for llppac svg conversion'
             'unoconv: for llppac office conversion')
 options=('!strip')
-source=("git+$cloneurl#branch=latest")
-b2sums=('SKIP')
+source=("git+$cloneurl#branch=latest"
+        "0001-fix-Allow-building-again.patch")
+b2sums=('SKIP'
+        '3d74eea6f6ac29ecae5a3055b70205b1e2601027f1f4473dadab595170d9f57a3d5948d6d6f9897ef5d60417998ef788d8242ea18612e8bd0e921520b2fc93df')
+
+prepare() {
+    cd $pkgname
+    patch -Np1 -i "../0001-fix-Allow-building-again.patch"
+}

 build() {
   cd $pkgname
-- 
2.42.1

temhelk commented on 2023-11-10 16:40 (UTC) (edited on 2023-11-10 16:41 (UTC) by temhelk)

I also have this "build failed" problem. I tried to investigate this (even though I'm not that familiar with bash) and I think I found what causes that issue.

The call to this function makes the script exit:

isfresh() { test "$(<$1.past)" = "$2"; } 2>/dev/null

And if I understand correctly it happens because it tries to read the content of the file "$1.past" that doesn't exist when you build it the first time.

After changing the function to that:

isfresh() {
    test -f "$1.past" || return 1
    test "$(<$1.past)" = "$2"
} 2>/dev/null

it seems to work and builds the application.

txtsd commented on 2023-11-09 03:27 (UTC)

Same error as @rvalles when building.

When trying to run the exiting installed version I get: cannot create context: incompatible header (1.23.4) and library (1.23.5) versions

rvalles commented on 2023-11-09 02:46 (UTC)

build failed

Seems to be near the top of the build script. Quite the useless choice of error string.

urldog commented on 2023-10-25 08:46 (UTC)

It installs fine, but when running it I get:

$ llpp llpp: error while loading shared libraries: libmupdf.so: cannot open shared object file: No such file or directory

Any idea why?