Skip to content

going static #71

Merged
merged 12 commits into from
Jan 21, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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