Skip to content

Commit

Permalink
Merge pull request #71 from mariux64/addlibtiff
Browse files Browse the repository at this point in the history
going static
  • Loading branch information
wwwutz authored Jan 21, 2025
2 parents c7d4571 + ffef375 commit 3a4ec1d
Show file tree
Hide file tree
Showing 18 changed files with 418 additions and 7 deletions.
93 changes: 93 additions & 0 deletions README.bug
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
Error in pixReadMemTiff: function not present
Error in pixReadMem: tiff: no pix returned
Error in pixaGenerateFontFromString: pix not made
Error in bmfCreate: font pixa not made

pixReadMemTiff ist aus leptonica

leptonica : build/leptonica-1.85.0/src/tiffio.c : pixReadMemTiff(const l_uint8 *cdata

"function not present" kommt aus build/leptonica-1.85.0/src/tiffiostub.c

tiffiostub.c wird eingebunden, anstatt tiffio.c wenn HAVE_LIBJPEG nicht defniert ist

52: #if !HAVE_LIBTIFF || !HAVE_LIBJPEG /* defined in environ.h */

config.log @ leptonica sagt: finde pkg-config libtiff-4 nicht
"No package 'libtiff-4' found"

configure:14837: checking for libtiff-4
configure:14844: $PKG_CONFIG --exists --print-errors "libtiff-4"
Package libtiff-4 was not found in the pkg-config search path.

- wir bauen jetzt leptonica so lange, bis der libtiff findet
+ is da : ~/2135-debug/tiff-4.7.0/lib/pkgconfig/libtiff-4.pc
+ das profile von tiff- setzt auch den PKG_CONFIG_PATH:
paperless@server:~/git/paperless-baremetal$ cat ~/2135-debug/tiff-4.7.0/profile
PATH=/home/paperless/2135-debug/tiff-4.7.0/bin:$PATH
PKG_CONFIG_PATH=/home/paperless/2135-debug/tiff-4.7.0/lib/pkgconfig${PKG_CONFIG_PATH:+:}${PKG_CONFIG_PATH:-}
LD_LIBRARY_PATH=/home/paperless/2135-debug/tiff-4.7.0/lib${LD_LIBRARY_PATH:+:}${LD_LIBRARY_PATH:-}

+ das profile von tiff wird in leptonica gesourced

+ exportiere jetzt mal PKG_CONFIG_PATH

- er meckert er würde jetzt libjpeg.so.7 nicht finden.
"/bin/ld: ../src/.libs/libleptonica.so: undefined reference to `jpeg_start_decompress@LIBJPEG_7.0'"
+ die gibts aber:
paperless@server:~/git/paperless-baremetal$ find ~/2135-debug/ | grep jpeg.so
/home/paperless/2135-debug/libjpeg-turbo-3.1.0/lib/libjpeg.so.7.4.0
+ Im PKG_CONFIG_PATH steht sie auch drin
+ config.log auch alles OK:
JPEG_CFLAGS='-I/home/paperless/2135-debug/libjpeg-turbo-3.1.0/include'
JPEG_LIBS='-L/home/paperless/2135-debug/libjpeg-turbo-3.1.0/lib -ljpeg'
PKG_CONFIG_PATH='/home/paperless/2135-debug/imagemagick-7.1.1-41/lib/pkgconfig:/home/paperless/2135-debug/tiff-4.7.0/lib/pkgconfig:/home/paperless/2135-debug/libjpeg-turbo-3.1.0/lib/pkgconfig'
#define HAVE_LIBJPEG 1
- diffs zwischen 'notiff und nojepg,
+ config.log: sollte gehen, kennt HAVE_LIBTIFF und HAVE_LIBJPEG, alles korrekt
+ config_auto.h: auch ok
+ config.status: auch ok
+ Makefile: auch ok
eventuell bindet der grundsätzlich die JPEG_CFLAGS nicht ein ?
ich find nix
mal ab hier mit 1.84.1 ? Nope.

die libs stimmen auch...:
+ nm ./libjpegturbo-3.1.0/lib/libjpeg.so.7.4.0 | grep jpeg_calc_output_dimensions
000000000004ace0 T jpeg_calc_output_dimensions
symbol ist in text (code) section (T).
nm ./leptonica-1.85.0/lib/libleptonica.so.6.0.0 | grep jpeg_calc_output_dimensions
U jpeg_calc_output_dimensions@LIBJPEG_7.0
undefined, also extern (U)
nm ./libjpegturbo-3.1.0/bin/djpeg | grep jpeg_calc_output_dimensions
U jpeg_calc_output_dimensions@LIBJPEG_7.0
ldd ./libjpegturbo-3.1.0/bin/djpeg
linux-vdso.so.1 (0x00007ffda8d52000)
libjpeg.so.7 => /home/paperless/2135-debug/libjpegturbo-3.1.0/lib/libjpeg.so.7 (0x00007f61f9078000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f61f8e00000)
/lib64/ld-linux-x86-64.so.2 (0x00007f61f914a000)
versuchen wir mal static libjpeg
+ leptonica baut durch
- tesseract failed:
/bin/ld: /home/paperless/2135-debug/leptonica-1.85.0/lib/libleptonica.a(writefile.o): warning: relocation against `NumImageFileFormatExtensions' in read-only section `.text'
/bin/ld: /home/paperless/2135-debug/leptonica-1.85.0/lib/libleptonica.a(colorspace.o): relocation R_X86_64_PC32 against symbol `LeptMsgSeverity' can not be used when making a shared object; recompile with -fPIC
/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
- --with-pic bei leptonica ...
... hmmm... ich glaube ich bin wieder an anfang....

+ ./manage.py migrate
SystemCheckError: System check identified some issues:

ERRORS:
?: The selected ocr language deu is not installed. Paperless cannot OCR your documents without it. Please fix PAPERLESS_OCR_LANGUAGE.
?: The selected ocr language eng is not installed. Paperless cannot OCR your documents without it. Please fix PAPERLESS_OCR_LANGUAGE.

- ./tesseract-5.5.0/bin/tesseract: error while loading shared libraries: libjpeg.so.62: cannot open shared object file: No such file or directory

- clean build auf 2.13.5.1
- jbig2enc failed
checking for findFileFormatStream in -lleptonica... no
Error! Leptonica not detected.


8 changes: 8 additions & 0 deletions README.dot
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,20 @@ digraph depends {
JE [ label="jbig2enc" ]
JD [ label="jbig2dec" ]
NG [ label="nginx" ]
JP [ label="libjpegturbo" ]
TI [ label="libtiff" ]
WP [ label="libwebp" ]

SQ -> PY

PY -> NO
SQ -> NO


TI -> WP

{ JP, WP } -> FF

FF -> PN

FF -> UN
Expand Down
5 changes: 5 additions & 0 deletions README.todo
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@ dependency tree:

dot REAME.dot

bug:

libtiff sollte den LD_LIBRARY_PATH setzen, siehe /home/paperless/2.13.5.1/zbar-0.23.93/profile, sonst findet er zwar die header files zum compilieren aber er lädt /usr/lib/libtiff ... und die ist alt.


bug:
☐ https://github.com/jonaswinkler/paperless-ng/issues/1490
☐ https://github.com/paperless-ngx/paperless-ngx/discussions/3090
Expand Down
14 changes: 13 additions & 1 deletion build.profile
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,18 @@ BUILD_nginx_SRCURL="https://beehive.molgen.mpg.de/89773c781ff0c2cd876b03bbc094c2
BUILD_libfontttf=liberation-fonts-ttf-2.1.5
BUILD_libfontttf_SRCURL="https://beehive.molgen.mpg.de/31b453e0b77bacde410a34a725b34f8a/${BUILD_libfontttf}.tar.gz"

# SRCURL=""https://download.osgeo.org/libtiff/tiff-4.7.0.tar.gz"/${BUILD_ffmpeg}.tar.gz"
BUILD_libtiff=tiff-4.7.0
BUILD_libtiff_SRCURL="https://beehive.molgen.mpg.de/3a0fa4a270a4a192b08913f88d0cfbdd/${BUILD_libtiff}.tar.gz"

# SRCURL="https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/3.1.0/libjpeg-turbo-3.1.0.tar.gz"
BUILD_libjpegturbo=libjpegturbo-3.1.0
BUILD_libjpegturbo_SRCURL="https://beehive.molgen.mpg.de/ed3fb4bb4cf794898f11a6d30c54b479/libjpeg-turbo-3.1.0.tar.gz"

# SRCURL="https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.5.0.tar.gz"
BUILD_libwebp=libwebp-1.5.0
BUILD_libwebp_SRCURL[0]="https://beehive.molgen.mpg.de/8f659e426eaa2aeec4b36bc9ea43b3f3/${BUILD_libwebp}.tar.gz"

# gits
BUILD_imagemagick=imagemagick-7.1.1-41
BUILD_imagemagick_SRCURL="https://github.com/ImageMagick/ImageMagick.git"
Expand All @@ -70,7 +82,7 @@ BUILD_tessdata=tessdata_best-4.1.0
BUILD_tessdata_SRCURL="https://github.com/tesseract-ocr/tessdata_best.git"
BUILD_tessconfigs_SRCURL="https://github.com/tesseract-ocr/tessconfigs.git"

BUILD_jbig2enc=jbig2enc-0.28-17-gea05019
BUILD_jbig2enc=jbig2enc-0.30-14-g6019f5f
BUILD_jbig2enc_SRCURL="https://github.com/agl/jbig2enc.git"

BUILD_jbig2dec=jbig2dec-0.20
Expand Down
2 changes: 1 addition & 1 deletion build.sudo
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ PKGS=(
autoconf
autopoint
cargo
cmake
g++
git
imagemagick-6.q16
Expand All @@ -21,7 +22,6 @@ PKGS=(
libpq-dev
libreadline-dev
libssl-dev
libtiff-dev
libtool
ninja-build
yasm
Expand Down
3 changes: 3 additions & 0 deletions buildall.sh
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,9 @@ popd
[ -d "${BUILD_DIR}/${BUILD_redis}" ] || ./redis.build.sh
[ -d "${BUILD_DIR}/${BUILD_python}" ] || ./Python.build.sh
[ -d "${BUILD_DIR}/${BUILD_node}" ] || ./node.build.sh
[ -d "${BUILD_DIR}/${BUILD_libjpegturbo}" ] || ./libjpegturbo.build.sh
[ -d "${BUILD_DIR}/${BUILD_libtiff}" ] || ./libtiff.build.sh
[ -d "${BUILD_DIR}/${BUILD_libwebp}" ] || ./libwebp.build.sh
[ -d "${BUILD_DIR}/${BUILD_ffmpeg}" ] || ./ffmpeg.build.sh
[ -d "${BUILD_DIR}/${BUILD_imagemagick}" ] || ./imagemagick.build.sh
[ -d "${BUILD_DIR}/${BUILD_pngquant}" ] || ./pngquant.build.sh
Expand Down
10 changes: 10 additions & 0 deletions checkversions.sh
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,14 @@ if [[ -e "$PROJECT"/profile ]]; then
pngquant -V
mtype pngquant
}
function exec_BUILD_libwebp () {
webpinfo -version
mtype webpinfo
}
function exec_BUILD_libjpegturbo () {
cjpeg -version
mtype cjpeg
}

fi

Expand Down Expand Up @@ -224,6 +232,8 @@ BUILD_sqlite
BUILD_nginx
BUILD_tesseract
BUILD_tessdata
BUILD_libwebp
BUILD_libjpegturbo
BUILD_jbig2dec
BUILD_jbig2enc
BUILD_leptonica
Expand Down
3 changes: 3 additions & 0 deletions ffmpeg.build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ set -u

. build.profile

. ${PREFIX}/${BUILD_libjpegturbo}/profile
. ${PREFIX}/${BUILD_libwebp}/profile

function B_FFMPEG {

SRCURL="${BUILD_ffmpeg_SRCURL}"
Expand Down
6 changes: 5 additions & 1 deletion imagemagick.build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,10 @@ set -u

. build.profile

. ${PREFIX}/${BUILD_libjpegturbo}/profile
. ${PREFIX}/${BUILD_ffmpeg}/profile
. ${PREFIX}/${BUILD_libtiff}/profile
. ${PREFIX}/${BUILD_libwebp}/profile

function B_IMAGEMAGICK {

Expand Down Expand Up @@ -58,7 +61,8 @@ local _conf=(
--without-x
)

./configure "${_conf[@]}"
LDFLAGS=" $(PKG_CONFIG_PATH=${PKG_CONFIG_PATH} pkg-config --libs libjpeg)" \
PKG_CONFIG_PATH=${PKG_CONFIG_PATH:-} ./configure "${_conf[@]}"

make install

Expand Down
41 changes: 38 additions & 3 deletions jbig2enc.build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ set -u
. build.profile

. ${PREFIX}/${BUILD_python}/profile
. ${PREFIX}/${BUILD_libwebp}/profile
. ${PREFIX}/${BUILD_libjpegturbo}/profile
. ${PREFIX}/${BUILD_libtiff}/profile
. ${PREFIX}/${BUILD_leptonica}/profile

function B_JBIG2ENC {
Expand Down Expand Up @@ -38,16 +41,48 @@ pushd ${BUILD_PKG}

local _conf=(
--prefix ${PREFIX}
--with-pic
# --disable-shared
)

LDFLAGS=$(PKG_CONFIG_PATH=${PKG_CONFIG_PATH} pkg-config --libs-only-L lept)
# LDFLAGS="$(PKG_CONFIG_PATH=${PKG_CONFIG_PATH} pkg-config --libs-only-L lept)"
# export

# LEPTONICA_CFLAGS="$(PKG_CONFIG_PATH=${PKG_CONFIG_PATH} pkg-config --cflags lept)"
# export

# LEPTONICA_LIBS="$(PKG_CONFIG_PATH=${PKG_CONFIG_PATH} pkg-config --libs lept)"

LDFLAGS="$(PKG_CONFIG_PATH=${PKG_CONFIG_PATH} pkg-config --libs libtiff-4)"
LDFLAGS+=" $(PKG_CONFIG_PATH=${PKG_CONFIG_PATH} pkg-config --libs lept)"
LDFLAGS+=" $(PKG_CONFIG_PATH=${PKG_CONFIG_PATH} pkg-config --libs libjpeg)"
LDFLAGS+=" $(PKG_CONFIG_PATH=${PKG_CONFIG_PATH} pkg-config --libs libwebp)"
export LDFLAGS
CPPFLAGS="-I${PROJECT}/${BUILD_leptonica}/include"

CFLAGS="-I${PROJECT}/${BUILD_leptonica}/include"
CFLAGS+=" -I${PROJECT}/${BUILD_libtiff}/include"
CFLAGS+=" -I${PROJECT}/${BUILD_libwebp}/include"
export CFLAGS

CPPFLAGS=${CFLAGS}
export CPPFLAGS

LIBS='-lm -lleptonica -ltiff -ljpeg -lwebp -lsharpyuv -lpng -lz -lzstd -llzma'
export LIBS

# LDFLAGS+=" $(PKG_CONFIG_PATH=${PKG_CONFIG_PATH} pkg-config --libs-only-L libtiff-4)"
#LDFLAGS+=" $(PKG_CONFIG_PATH=${PKG_CONFIG_PATH} pkg-config --libs libtiff-4)"
# export LDFLAGS

# CPPFLAGS="-I${PROJECT}/${BUILD_leptonica}/include"
#CFLAGS+=" -I${PROJECT}/${BUILD_libtiff}/include"
# export CPPFLAGS

#export PKG_CONFIG_PATH

./autogen.sh

./configure "${_conf[@]}"
PKG_CONFIG_PATH=${PKG_CONFIG_PATH} ./configure "${_conf[@]}"

make -j ${NPROC} install

Expand Down
23 changes: 23 additions & 0 deletions leptonica.build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ set -u

. build.profile

. ${PREFIX}/${BUILD_libjpegturbo}/profile
. ${PREFIX}/${BUILD_libtiff}/profile
. ${PREFIX}/${BUILD_libwebp}/profile
. ${PREFIX}/${BUILD_imagemagick}/profile

function B_LEPTONICA {
Expand All @@ -21,15 +24,35 @@ mkdir -p $PREFIX
cat >$PREFIX/profile <<-EOF
PATH=${PREFIX}/bin:\$PATH
PKG_CONFIG_PATH=${PROJECT}/${BUILD_PKG}/lib/pkgconfig\${PKG_CONFIG_PATH:+:}\${PKG_CONFIG_PATH:-}
LD_LIBRARY_PATH=${PROJECT}/${BUILD_PKG}/lib\${LD_LIBRARY_PATH:+:}\${LD_LIBRARY_PATH:-}
EOF

test -e ${BUILD_PKG}.tar.gz || wget -nv ${SRCURL} -O ${BUILD_PKG}.tar.gz
test -d ${BUILD_PKG} || mkdir -pv ${BUILD_PKG} && tar -xf ${BUILD_PKG}.tar.gz --strip-components=1 -C ${BUILD_PKG}

cd ${BUILD_PKG}

#local _conf=(
# -DCMAKE_INSTALL_PREFIX=${PREFIX}
# -DENABLE_OPENJPEG=OFF
#)

#rm -rf b
#mkdir b
#pushd b
#PKG_CONFIG_PATH=${PKG_CONFIG_PATH} cmake .. "${_conf[@]}"
#make -j "${NPROC}" install
# wtf
#mv -v ${PREFIX}/lib/pkgconfig/lept_Release.pc ${PREFIX}/lib/pkgconfig/lept.pc
#popd

export PKG_CONFIG_PATH

local _conf=(
--prefix ${PREFIX}
--without-libopenjpeg
--disable-shared
--with-pic
)

./configure "${_conf[@]}"
Expand Down
Loading

0 comments on commit 3a4ec1d

Please sign in to comment.