mirror of
https://github.com/YACReader/yacreader
synced 2025-05-28 03:10:27 -04:00
Build and install 7z.so, loading Codecs/Rar.so is broken
Also use multistage builds to have smaller images
This commit is contained in:
parent
fc853630d8
commit
f0c142b300
@ -129,22 +129,8 @@ QLibrary *YACReader::load7zLibrary()
|
|||||||
auto yacreader7zPath = QString(LIBDIR) + "/yacreader/7z.so";
|
auto yacreader7zPath = QString(LIBDIR) + "/yacreader/7z.so";
|
||||||
QFileInfo sevenzlibrary(yacreader7zPath);
|
QFileInfo sevenzlibrary(yacreader7zPath);
|
||||||
if (sevenzlibrary.exists()) {
|
if (sevenzlibrary.exists()) {
|
||||||
auto rarPath = QString(LIBDIR) + "/yacreader/Codecs/Rar.so";
|
|
||||||
QFileInfo rarCodec(rarPath);
|
|
||||||
if (rarCodec.exists()) {
|
|
||||||
QLibrary *rarLibrary = new QLibrary(rarPath);
|
|
||||||
rarLibrary->load();
|
|
||||||
}
|
|
||||||
|
|
||||||
return new QLibrary(yacreader7zPath);
|
return new QLibrary(yacreader7zPath);
|
||||||
} else {
|
} else {
|
||||||
auto rarPath = QString(LIBDIR) + "/7zip/Codecs/Rar.so";
|
|
||||||
QFileInfo rarCodec(rarPath);
|
|
||||||
if (rarCodec.exists()) {
|
|
||||||
QLibrary *rarLibrary = new QLibrary(rarPath);
|
|
||||||
rarLibrary->load();
|
|
||||||
}
|
|
||||||
|
|
||||||
return new QLibrary(QString(LIBDIR) + "/7zip/7z.so");
|
return new QLibrary(QString(LIBDIR) + "/7zip/7z.so");
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
FROM ghcr.io/linuxserver/baseimage-ubuntu:noble
|
FROM ghcr.io/linuxserver/baseimage-ubuntu:noble AS builder
|
||||||
|
|
||||||
# version, it can be a TAG or a branch
|
# version, it can be a TAG or a branch
|
||||||
ARG YACR_VERSION="develop"
|
ARG YACR_VERSION="develop"
|
||||||
@ -73,20 +73,34 @@ RUN cd /src/git/YACReaderLibraryServer && \
|
|||||||
make && \
|
make && \
|
||||||
make install
|
make install
|
||||||
|
|
||||||
# clean up
|
# install 7z.so with RAR support
|
||||||
RUN cd / && \
|
RUN echo "Building and installing 7z.so with RAR support..." && \
|
||||||
apt-get clean && \
|
cd "/src/git/compressed_archive/lib7zip/CPP/7zip/Bundles/Format7zF" && \
|
||||||
apt-get purge -y build-essential g++ gcc git make qmake6 qtchooser unzip wget && \
|
make -f makefile.gcc && \
|
||||||
apt-get -y autoremove && \
|
mkdir -p /app/lib/7zip && \
|
||||||
|
cp ./_o/7z.so /app/lib/7zip
|
||||||
|
|
||||||
|
# Stage 2: Runtime stage
|
||||||
|
FROM ghcr.io/linuxserver/baseimage-ubuntu:noble
|
||||||
|
|
||||||
|
# env variables
|
||||||
|
ENV APPNAME="YACReaderLibraryServer"
|
||||||
|
ENV HOME="/config"
|
||||||
|
LABEL maintainer="luisangelsm"
|
||||||
|
|
||||||
|
# Copy the built application from the builder stage
|
||||||
|
COPY --from=builder /app /app
|
||||||
|
|
||||||
|
# runtime packages
|
||||||
|
RUN apt-get update && \
|
||||||
apt-get install -y --no-install-recommends \
|
apt-get install -y --no-install-recommends \
|
||||||
dos2unix \
|
libqt6core5compat6 \
|
||||||
libqt6core5compat6-dev \
|
libpoppler-qt6-3t64 \
|
||||||
libpoppler-qt6-dev && \
|
qt6-image-formats-plugins \
|
||||||
rm -rf \
|
libqt6network6t64 \
|
||||||
/src \
|
libqt6sql6-sqlite && \
|
||||||
/tmp/* \
|
apt-get clean && \
|
||||||
/var/cache/apt \
|
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
/var/lib/apt/lists/*
|
|
||||||
|
|
||||||
# set ENV
|
# set ENV
|
||||||
ENV LC_ALL="en_US.UTF-8" \
|
ENV LC_ALL="en_US.UTF-8" \
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-noble
|
FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-noble AS builder
|
||||||
|
|
||||||
# version, it can be a TAG or a branch
|
# version, it can be a TAG or a branch
|
||||||
ARG YACR_VERSION="develop"
|
ARG YACR_VERSION="develop"
|
||||||
@ -65,17 +65,38 @@ RUN cd /src/git/YACReaderLibraryServer && \
|
|||||||
qmake PREFIX=/app CONFIG+="7zip server_standalone" YACReaderLibraryServer.pro && \
|
qmake PREFIX=/app CONFIG+="7zip server_standalone" YACReaderLibraryServer.pro && \
|
||||||
make && \
|
make && \
|
||||||
make install
|
make install
|
||||||
|
|
||||||
|
# install 7z.so with RAR support
|
||||||
|
RUN echo "Building and installing 7z.so with RAR support..." && \
|
||||||
|
cd "/src/git/compressed_archive/lib7zip/CPP/7zip/Bundles/Format7zF" && \
|
||||||
|
make -f makefile.gcc && \
|
||||||
|
mkdir -p /app/lib/7zip && \
|
||||||
|
cp ./_o/7z.so /app/lib/7zip
|
||||||
|
|
||||||
# clean up
|
FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-noble
|
||||||
RUN cd / && \
|
|
||||||
|
# env variables
|
||||||
|
ENV APPNAME="YACReaderLibraryServer"
|
||||||
|
ENV HOME="/config"
|
||||||
|
LABEL maintainer="luisangelsm"
|
||||||
|
|
||||||
|
# Copy the built application from the builder stage
|
||||||
|
COPY --from=builder /app /app
|
||||||
|
|
||||||
|
# runtime packages
|
||||||
|
RUN apt-get update && \
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
libqt5core5a \
|
||||||
|
libqt5network5 \
|
||||||
|
libqt5script5 \
|
||||||
|
libqt5sql5-sqlite \
|
||||||
|
libqt5sql5 \
|
||||||
|
libqt5svg5 \
|
||||||
|
libsqlite3-0 \
|
||||||
|
libpoppler-qt5-1 \
|
||||||
|
qt5-image-formats-plugins && \
|
||||||
apt-get clean && \
|
apt-get clean && \
|
||||||
apt-get purge -y build-essential g++ git make qt5-qmake unzip wget && \
|
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
apt-get -y autoremove && \
|
|
||||||
rm -rf \
|
|
||||||
/src \
|
|
||||||
/tmp/* \
|
|
||||||
/var/cache/apt \
|
|
||||||
/var/lib/apt/lists/*
|
|
||||||
|
|
||||||
# set ENV
|
# set ENV
|
||||||
ENV LC_ALL="en_US.UTF-8" \
|
ENV LC_ALL="en_US.UTF-8" \
|
||||||
|
Loading…
Reference in New Issue
Block a user