fbpdf functionality in arch in wayland gnome mutter
LaptopDev ***@***.***> wrote:
I have tried the AUR package and get the same exact behavior of empty output in my kitty terminal. What terminal are you using?
Fbpdf won't work, if X is running.
Ali
Originally posted by @aligrudi in https://github.com/aligrudi/fbpdf/issues/15#issuecomment-2589843276
@aligrudi Why does fbpdf not work if x is running?
Okay I have unset DISPLAY hoping that would launch it but then I get a linking error
xwayland info:
laptop:~$ Xwayland -version
The X.Org Foundation Xwayland Version 24.1.4 (12401004)
X Protocol Version 11, Revision 0
laptop:~$ ^C
laptop:~$ env | grep DISPLAY
WAYLAND_DISPLAY=wayland-0
GNOME_SETUP_DISPLAY=:1
DISPLAY=:0
Header incompatabilities
laptop:~/source/git/fbpdf$ realpath fbpdf
/home/user/source/git/fbpdf/fbpdf
laptop:~/Downloads$ unset DISPLAY && /home/user/source/git/fbpdf/fbpdf 'Patterns of Debate Failure and Types of Debate outcomes.pdf'
cannot create context: incompatible header (1.25.1) and library (1.25.2) versions
Segmentation fault (core dumped)
but I back linked
laptop:/usr/lib$ ls |grep mupdf
libmupdf.so
libmupdf.so.25.1
libmupdf.so.25.2
libmupdfcpp.so
libmupdfcpp.so.25.2
laptop:/usr/lib$ file libmupdf.so.25.1
libmupdf.so.25.1: symbolic link to /usr/lib/libmupdf.so.25.2
laptop:/usr/lib$
LaptopDev @.***> wrote:
xwayland info:
laptop:~$ Xwayland -version The X.Org Foundation Xwayland Version 24.1.4 (12401004) X Protocol Version 11, Revision 0 laptop:~$ ^C laptop:~$ env | grep DISPLAY WAYLAND_DISPLAY=wayland-0 GNOME_SETUP_DISPLAY=:1 DISPLAY=:0
When X11 or Wayland is using the graphics card via DRM, the framebuffer device does not work.
Header incompatabilities
laptop:~/source/git/fbpdf$ realpath fbpdf /home/user/source/git/fbpdf/fbpdf laptop:~/Downloads$ unset DISPLAY && /home/user/source/git/fbpdf/fbpdf 'Patterns of Debate Failure and Types of Debate outcomes.pdf' cannot create context: incompatible header (1.25.1) and library (1.25.2) versions Segmentation fault (core dumped)But I back linked
laptop:/usr/lib$ ls |grep mupdf libmupdf.so libmupdf.so.25.1 libmupdf.so.25.2 libmupdfcpp.so libmupdfcpp.so.25.2 laptop:/usr/lib$ file libmupdf.so.25.1 libmupdf.so.25.1: symbolic link to /usr/lib/libmupdf.so.25.2 laptop:/usr/lib$
This seems like a linking problem (the program being linked with one version of the library and executed with another).
Ali
Could you please provide the minimal cc command required to compile and link fbpdf directly without make, which includes specific flags and dependencies?
This seems like a linking problem (the program being linked with one version of the library and executed with another).
I removed some dependencies and compiled each object file and am incurring a previous issue in earlier attempts to install the program.
Compiling step by step
laptop:~/source/git/fbpdf$ ls
LICENSE Makefile README djvulibre.c doc.h draw.c draw.h fbpdf.1 fbpdf.c mupdf.c poppler.c
laptop:~/source/git/fbpdf$ cc -c -Wall -O2 -I./include fbpdf.c -o fbpdf.o
laptop:~/source/git/fbpdf$ cc -c -Wall -O2 -I./include mupdf.c -o mupdf.o
laptop:~/source/git/fbpdf$ cc -c -Wall -O2 -I./include draw.c -o draw.o
laptop:~/source/git/fbpdf$ cc -o fbpdf fbpdf.o mupdf.o draw.o -L./lib -lmupdf -lmupdf-third -lmupdf-pkcs7 -lmupdf-threads -lm
/usr/bin/ld: cannot find -lmupdf-third: No such file or directory
/usr/bin/ld: cannot find -lmupdf-pkcs7: No such file or directory
/usr/bin/ld: cannot find -lmupdf-threads: No such file or directory
collect2: error: ld returned 1 exit status
laptop:~/source/git/fbpdf$ cc -o fbpdf fbpdf.o mupdf.o draw.o -L./lib -lmupdf -lm
laptop:~/source/git/fbpdf$ ls
LICENSE Makefile README djvulibre.c doc.h draw.c draw.h draw.o fbpdf fbpdf.1 fbpdf.c fbpdf.o mupdf.c mupdf.o poppler.c
laptop:~/source/git/fbpdf$ ldd fbpdf
linux-vdso.so.1 (0x00007ffde8dda000)
libmupdf.so.25.2 => /usr/lib/libmupdf.so.25.2 (0x00007cde8a600000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007cde8a511000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007cde8a320000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00007cde8d4b9000)
libgumbo.so.2 => /usr/lib/libgumbo.so.2 (0x00007cde8a2c7000)
libharfbuzz.so.0 => /usr/lib/libharfbuzz.so.0 (0x00007cde8a1a8000)
libjpeg.so.8 => /usr/lib/libjpeg.so.8 (0x00007cde8a10a000)
libz.so.1 => /usr/lib/libz.so.1 (0x00007cde8a0f1000)
libjbig2dec.so.0 => /usr/lib/libjbig2dec.so.0 (0x00007cde8a0d1000)
libopenjp2.so.7 => /usr/lib/libopenjp2.so.7 (0x00007cde8a05f000)
libleptonica.so.6 => /usr/lib/libleptonica.so.6 (0x00007cde89c00000)
libtesseract.so.5 => /usr/lib/libtesseract.so.5 (0x00007cde89800000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007cde89400000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007cde8a031000)
/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007cde8d5ba000)
libbz2.so.1.0 => /usr/lib/libbz2.so.1.0 (0x00007cde8a01e000)
libpng16.so.16 => /usr/lib/libpng16.so.16 (0x00007cde89fe3000)
libbrotlidec.so.1 => /usr/lib/libbrotlidec.so.1 (0x00007cde89fd4000)
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00007cde896b0000)
libgraphite2.so.3 => /usr/lib/libgraphite2.so.3 (0x00007cde89fb2000)
libgif.so.7 => /usr/lib/libgif.so.7 (0x00007cde89fa7000)
libtiff.so.6 => /usr/lib/libtiff.so.6 (0x00007cde89f1a000)
libwebp.so.7 => /usr/lib/libwebp.so.7 (0x00007cde89b8d000)
libwebpmux.so.3 => /usr/lib/libwebpmux.so.3 (0x00007cde89f0e000)
libarchive.so.13 => /usr/lib/libarchive.so.13 (0x00007cde8932b000)
libcurl.so.4 => /usr/lib/libcurl.so.4 (0x00007cde8925b000)
libgomp.so.1 => /usr/lib/libgomp.so.1 (0x00007cde89208000)
libbrotlicommon.so.1 => /usr/lib/libbrotlicommon.so.1 (0x00007cde89eeb000)
libpcre2-8.so.0 => /usr/lib/libpcre2-8.so.0 (0x00007cde89169000)
libzstd.so.1 => /usr/lib/libzstd.so.1 (0x00007cde8908a000)
liblzma.so.5 => /usr/lib/liblzma.so.5 (0x00007cde89057000)
libjbig.so.2.1 => /usr/lib/libjbig.so.2.1 (0x00007cde89edd000)
libsharpyuv.so.0 => /usr/lib/libsharpyuv.so.0 (0x00007cde89ed4000)
libcrypto.so.3 => /usr/lib/libcrypto.so.3 (0x00007cde88a00000)
libacl.so.1 => /usr/lib/libacl.so.1 (0x00007cde89b84000)
liblz4.so.1 => /usr/lib/liblz4.so.1 (0x00007cde8968b000)
libxml2.so.2 => /usr/lib/libxml2.so.2 (0x00007cde88f0a000)
libnghttp3.so.9 => /usr/lib/libnghttp3.so.9 (0x00007cde889dd000)
libnghttp2.so.14 => /usr/lib/libnghttp2.so.14 (0x00007cde889b3000)
libidn2.so.0 => /usr/lib/libidn2.so.0 (0x00007cde88991000)
libssh2.so.1 => /usr/lib/libssh2.so.1 (0x00007cde88946000)
libpsl.so.5 => /usr/lib/libpsl.so.5 (0x00007cde88ef6000)
libssl.so.3 => /usr/lib/libssl.so.3 (0x00007cde8886a000)
libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x00007cde88817000)
libicuuc.so.75 => /usr/lib/libicuuc.so.75 (0x00007cde8861b000)
libunistring.so.5 => /usr/lib/libunistring.so.5 (0x00007cde88438000)
libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00007cde88373000)
libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x00007cde88346000)
libcom_err.so.2 => /usr/lib/libcom_err.so.2 (0x00007cde89b7e000)
libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x00007cde88338000)
libkeyutils.so.1 => /usr/lib/libkeyutils.so.1 (0x00007cde89b77000)
libresolv.so.2 => /usr/lib/libresolv.so.2 (0x00007cde88326000)
libicudata.so.75 => /usr/lib/libicudata.so.75 (0x00007cde86400000)
laptop:~/source/git/fbpdf$
/usr/lib
laptop:/usr/lib$ ls |grep mupdf
libmupdf.so
libmupdf.so.25.1
libmupdf.so.25.2
libmupdfcpp.so
libmupdfcpp.so.25.2
laptop:/usr/lib$ ls -l /usr/lib/libmupdf.so
lrwxrwxrwx 1 root root 16 Dec 16 15:01 /usr/lib/libmupdf.so -> libmupdf.so.25.2
laptop:/usr/lib$ file libmupdf.so.25.2
libmupdf.so.25.2: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=28ab13ca10163a8fd7f3a904f4297a15f8869052, stripped
laptop:/usr/lib$ ldd /home/user/source/git/fbpdf/fbpdf |grep mupdf
libmupdf.so.25.2 => /usr/lib/libmupdf.so.25.2 (0x000074db90800000)
laptop:/usr/lib$
Looks like it will run / partially runs
laptop:/usr/lib$ cd /home/user/source/git/fbpdf/
laptop:~/source/git/fbpdf$ ./fbpdf
usage: fbpdf [-r rotation] [-z zoom x10] [-p page] filename
Ensuring not x11 running prior to command send:
laptop:~/source/git/fbpdf$ unset DISPLAY
laptop:~/source/git/fbpdf$ env |grep DISPLAY
WAYLAND_DISPLAY=wayland-0
GNOME_SETUP_DISPLAY=:1
laptop:~/source/git/fbpdf$ ./fbpdf '/home/user/Downloads/Patterns of Debate Failure and Types of Debate outcomes.pdf'
blank when ran:
LaptopDev @.***> wrote:
Could you please provide the minimal cc command required to compile and link fbpdf directly without
make?
The Makefile itself includes commands for building and linking fbpdf. I suggest keeping only one version of the mupdf library and removing the other, before building fbpdf.
Ali
When X11 or Wayland is using the graphics card via DRM, the framebuffer device does not work.
Oh I'm sorry, I didn't understand that framebuffer applications are designed to run in a real TTY, I can run fbpdf outside of GDM with control+alt+F3.
I initially was interested in fbpdf with mupdf because I thought it would be a bit easier to work with digital books quickly from within a kitty terminal in my desktop environment. I asked a chatbot, it suggest I'd want to use xvfb but want to know if that's right or what you'd recommend if you have suggestions.
Thanks