Skip to content

Handle colorspace conflicts with OpenJPEG #28

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 46 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,16 +1,58 @@
FROM debian:buster AS builder

ENV DEBIAN_FRONTEND="noninteractive"

# Enable deb-src repos so we can retrieve the packages used to build libopenjp2:
RUN sed -i -e '/^deb/p; s/^deb /deb-src /' /etc/apt/sources.list

RUN apt-get update -qqy && apt-get dist-upgrade -qqy && apt-get install -qqy quilt devscripts ca-certificates ca-certificates-java && apt-get build-dep -qy libopenjp2-tools

RUN adduser --system --group builder
RUN install -d -o builder -g builder /build

USER builder

WORKDIR /build

RUN apt-get source openjpeg2

WORKDIR /build/openjpeg2-2.3.0
ENV QUILT_PATCHES=debian/patches

# Add the patch from https://github.com/uclouvain/openjpeg/issues/1207
COPY handle_colorspace_conflicts.patch /build/

# Apply the patch to the local source directory
RUN quilt import /build/handle_colorspace_conflicts.patch
RUN quilt push -a -v

# Build all of the openjpeg2 packages
RUN debuild -uc -us

FROM debian:buster

ENV CANTALOUPE_VERSION=4.1.5
ENV CANTALOUPE_VERSION=4.1.11

EXPOSE 8182

VOLUME /imageroot

# Update packages and install tools
RUN apt-get update -qy && apt-get dist-upgrade -qy && \
apt-get install -qy --no-install-recommends curl imagemagick \
libopenjp2-tools ffmpeg unzip default-jre-headless && \
apt-get -qqy autoremove && apt-get -qqy autoclean
apt-get install -qy --no-install-recommends \
ca-certificates ca-certificates-java \
curl \
imagemagick \
unzip \
default-jre-headless \
&& apt-get -qqy autoremove && apt-get -qqy autoclean

COPY LOC-ROOT-CA-1.crt /usr/local/share/ca-certificates/
RUN update-ca-certificates

# Install the patched openjpeg2 tools
COPY --from=builder /build/*.deb /tmp/
RUN dpkg -i /tmp/libopenjp2-*.deb /tmp/libopenjp2-tools-*.deb

# Run non privileged
RUN adduser --system cantaloupe
Expand Down
33 changes: 33 additions & 0 deletions LOC-ROOT-CA-1.crt
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
-----BEGIN CERTIFICATE-----
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
-----END CERTIFICATE-----
13 changes: 13 additions & 0 deletions handle_colorspace_conflicts.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
--- a/src/bin/common/color.c 2019-08-08 00:45:01.903651387 +0200
+++ b/src/bin/common/color.c 2019-08-08 00:39:24.442674016 +0200
@@ -488,6 +488,10 @@
if (out_space == cmsSigRgbData) { /* enumCS 16 */
unsigned int i, nr_comp = image->numcomps;

+ if (nr_comp < 3) { /* GRAY or GRAYA, not RGB or RGBA */
+ cmsCloseProfile(in_prof);
+ return;
+ }
if (nr_comp > 4) {
nr_comp = 4;
}