From: Tom Hughes Date: Wed, 9 Mar 2022 18:58:54 +0000 (+0000) Subject: Merge pull request #3486 from tomhughes/vips X-Git-Tag: live~1714 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/99f5d5159542171d5b3549a2cf0f0d801ea5d88b?hp=d6f8302eaeac711f8738c956f46c92de9743fed3 Merge pull request #3486 from tomhughes/vips Switch to using vips for image processing --- diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index ef569e3e1..d4a721ff6 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -7,7 +7,7 @@ jobs: name: Ubuntu ${{ matrix.ubuntu }}, Ruby ${{ matrix.ruby }} strategy: matrix: - ubuntu: [18.04, 20.04] + ubuntu: [20.04] ruby: [2.7, 3.0] runs-on: ubuntu-${{ matrix.ubuntu }} env: @@ -37,7 +37,7 @@ jobs: - name: Install packages run: | sudo apt-get -yqq update - sudo apt-get -yqq install memcached + sudo apt-get -yqq install memcached libvips-dev - name: Install gems run: | gem install bundler diff --git a/Dockerfile b/Dockerfile index 40ad730cd..aae65c2bb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,13 +10,12 @@ RUN apt-get update \ default-jre-headless \ file \ firefox-geckodriver \ - imagemagick \ libarchive-dev \ libffi-dev \ libgd-dev \ - libmagickwand-dev \ libpq-dev \ libsasl2-dev \ + libvips-dev \ libxml2-dev \ libxslt1-dev \ locales \ diff --git a/INSTALL.md b/INSTALL.md index 68b0d120e..3d591c92d 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -24,7 +24,6 @@ of packages required before you can get the various gems installed. * Ruby 2.7+ * PostgreSQL 9.1+ -* ImageMagick * Bundler (see note below about [developer Ruby setup](#rbenv)) * Javascript Runtime @@ -33,10 +32,10 @@ These can be installed on Ubuntu 20.04 or later with: ``` sudo apt-get update sudo apt-get install ruby2.7 libruby2.7 ruby2.7-dev \ - libmagickwand-dev libxml2-dev libxslt1-dev nodejs \ + libvips-dev libxml2-dev libxslt1-dev nodejs \ apache2 apache2-dev build-essential git-core firefox-geckodriver \ postgresql postgresql-contrib libpq-dev libsasl2-dev \ - imagemagick libffi-dev libgd-dev libarchive-dev libbz2-dev yarnpkg + libffi-dev libgd-dev libarchive-dev libbz2-dev yarnpkg sudo gem2.7 install bundler ``` @@ -51,8 +50,8 @@ sudo dnf install ruby ruby-devel rubygem-rdoc rubygem-bundler rubygems \ libxml2-devel nodejs \ gcc gcc-c++ git \ postgresql postgresql-server postgresql-contrib libpq-devel \ - perl-podlators ImageMagick libffi-devel gd-devel libarchive-devel \ - bzip2-devel nodejs-yarn + perl-podlators libffi-devel gd-devel libarchive-devel \ + bzip2-devel nodejs-yarn vips-devel ``` If you didn't already have PostgreSQL installed then create a PostgreSQL instance and start the server: @@ -90,7 +89,7 @@ Installing other dependencies: * Install Homebrew from https://brew.sh/ * Install the latest version of Ruby: `brew install ruby` -* Install other dependencies: `brew install imagemagick libxml2 gd yarn pngcrush optipng pngquant jhead jpegoptim gifsicle svgo advancecomp` +* Install other dependencies: `brew install libxml2 gd yarn pngcrush optipng pngquant jhead jpegoptim gifsicle svgo advancecomp vips` * Install Bundler: `gem install bundler` (you might need to `sudo gem install bundler` if you get an error about permissions - or see note below about [developer Ruby setup](#rbenv)) You will need to tell `bundler` that `libxml2` is installed in a Homebrew location. If it uses the system-installed one then you will get errors installing the `libxml-ruby` gem later on. diff --git a/config/initializers/new_framework_defaults_7_0.rb b/config/initializers/new_framework_defaults_7_0.rb index e41b6c7d1..79a3a2cf0 100644 --- a/config/initializers/new_framework_defaults_7_0.rb +++ b/config/initializers/new_framework_defaults_7_0.rb @@ -80,7 +80,7 @@ Rails.application.config.action_controller.raise_on_open_redirects = true # generate variants to use image processing macros and ruby-vips # operations. See the upgrading guide for detail on the changes required. # The `:mini_magick` option is not deprecated; it's fine to keep using it. -# Rails.application.config.active_storage.variant_processor = :vips +Rails.application.config.active_storage.variant_processor = :vips # If you're upgrading and haven't set `cookies_serializer` previously, your cookie serializer # was `:marshal`. Convert all cookies to JSON, using the `:hybrid` formatter. diff --git a/script/vagrant/setup/provision.sh b/script/vagrant/setup/provision.sh index 6d7e51d6a..c17ddd1d6 100644 --- a/script/vagrant/setup/provision.sh +++ b/script/vagrant/setup/provision.sh @@ -17,10 +17,10 @@ apt-get upgrade -y # install packages as explained in INSTALL.md apt-get install -y ruby2.7 libruby2.7 ruby2.7-dev \ - libmagickwand-dev libxml2-dev libxslt1-dev nodejs yarnpkg \ + libxml2-dev libxslt1-dev nodejs yarnpkg \ apache2 apache2-dev build-essential git-core firefox-geckodriver \ - postgresql postgresql-contrib libpq-dev \ - libsasl2-dev imagemagick libffi-dev libgd-dev libarchive-dev libbz2-dev + postgresql postgresql-contrib libpq-dev libvips-dev \ + libsasl2-dev libffi-dev libgd-dev libarchive-dev libbz2-dev gem2.7 install rake gem2.7 install --version "~> 2.1.4" bundler