Skip to content

Commit 036b7a5

Browse files
chore: Bump ImageMagick v6 to v7 (#27125)
* chore: Bump ImageMagick v6 to v7 * add clarification comment * add libomp5 for ImageMagick * resolve merge conflict
1 parent 8a1e248 commit 036b7a5

File tree

5 files changed

+21
-6
lines changed

5 files changed

+21
-6
lines changed

Brewfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
brew 'clamav' # anti-virus scanner
22
brew 'coreutils' # gnu coreutils
33
brew 'docker-compose'
4-
brew 'imagemagick@6'
4+
brew 'imagemagick@7'
55
brew 'memcached'
66
brew 'poppler' # pdf rendering
77
brew 'redis'

Dockerfile

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ COPY modules/ modules/
88
RUN find modules -type f ! \( -name Gemfile -o -name "*.gemspec" -o -path "*/lib/*/version.rb" \) -delete && \
99
find modules -type d -empty -delete
1010

11+
# ImageMagick 7 is not available on Bookwork
12+
# This can be replaced with the imagemagick-7 package if using Trixie
13+
FROM dpokidov/imagemagick:7.1.1-47-bookworm AS imagemagick
14+
1115
FROM rubyimg
1216

1317
# Allow for setting ENV vars via --build-arg
@@ -25,12 +29,23 @@ WORKDIR /app
2529

2630
RUN apt-get update --fix-missing \
2731
&& apt-get install -y poppler-utils build-essential libpq-dev libffi-dev libyaml-dev git curl wget unzip ca-certificates ca-certificates-java openssl file \
28-
imagemagick pdftk tesseract-ocr \
32+
pdftk tesseract-ocr \
33+
libpng16-16 libjpeg62-turbo libtiff6 libfreetype6 libfontconfig1 ghostscript libgomp1 libomp5 libde265-0 libx265-199 liblcms2-2 libgif7 libbrotli1 libxext6 \
2934
&& apt-get clean \
3035
&& rm -rf /var/cache/apt/archives/* /var/lib/apt/lists/* /tmp/* /var/tmp/*
3136

37+
# Copy ImageMagick 7 and its dependencies from dpokidov/imagemagick
38+
COPY --from=imagemagick /usr/local/bin/magick /usr/local/bin/magick
39+
COPY --from=imagemagick /usr/local/lib/ /usr/local/lib/
40+
COPY --from=imagemagick /usr/local/etc/ImageMagick-7/ /usr/local/etc/ImageMagick-7/
41+
COPY --from=imagemagick /usr/local/share/ImageMagick-7/ /usr/local/share/ImageMagick-7/
42+
RUN ln -s /usr/local/bin/magick /usr/local/bin/convert \
43+
&& ln -s /usr/local/bin/magick /usr/local/bin/identify \
44+
&& ln -s /usr/local/bin/magick /usr/local/bin/mogrify \
45+
&& ldconfig
46+
3247
# Relax ImageMagick PDF security. See https://stackoverflow.com/a/59193253.
33-
RUN sed -i '/rights="none" pattern="PDF"/d' /etc/ImageMagick-6/policy.xml
48+
RUN sed -i '/rights="none" pattern="PDF"/d' /usr/local/etc/ImageMagick-7/policy.xml
3449

3550

3651
# Install fwdproxy.crt into trust store

bin/merge_imagemagick_policy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
require 'nokogiri'
22

3-
original_policy_path = '/etc/ImageMagick-6/policy.xml'
3+
original_policy_path = '/usr/local/etc/ImageMagick-7/policy.xml'
44
new_policy_path = '/app/config/imagemagick/policies/new-policy.xml'
55

66
policy1 = Nokogiri::XML(File.read(original_policy_path)) { |config| config.default_xml.noblanks }

spec/lib/common/convert_to_pdf_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def test_converted_to_pdf
3838
let(:file) { create(:claim_evidence, file_path: 'spec/fixtures/pdf_fill/extras.pdf').file }
3939

4040
it 'stills be pdf and not run convert' do
41-
expect(MiniMagick::Tool::Convert).not_to receive(:new)
41+
expect(MiniMagick).not_to receive(:convert)
4242
test_converted_to_pdf
4343
end
4444
end

spec/lib/shrine/plugins/validate_correct_form_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def errors
3737

3838
before do
3939
allow(instance).to receive(:get).and_return(attachment)
40-
allow(MiniMagick::Tool::Convert).to receive(:new)
40+
allow(MiniMagick).to receive(:convert)
4141
end
4242

4343
context 'with correct form' do

0 commit comments

Comments
 (0)