summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans de Graaff <graaff@gentoo.org>2022-04-23 09:19:24 +0200
committerHans de Graaff <graaff@gentoo.org>2022-04-23 10:00:48 +0200
commita365584cb6dff560fb2a51151fb51038242ce6fe (patch)
tree5badae69d8c7420a5826aacf6c54168b4bef8b37 /dev-ruby/rmagick
parentdev-ruby/rkelly-remix: enable ruby31 (diff)
downloadgentoo-a365584cb6dff560fb2a51151fb51038242ce6fe.tar.gz
gentoo-a365584cb6dff560fb2a51151fb51038242ce6fe.tar.bz2
gentoo-a365584cb6dff560fb2a51151fb51038242ce6fe.zip
dev-ruby/rmagick: add 4.2.5
Signed-off-by: Hans de Graaff <graaff@gentoo.org>
Diffstat (limited to 'dev-ruby/rmagick')
-rw-r--r--dev-ruby/rmagick/Manifest1
-rw-r--r--dev-ruby/rmagick/files/rmagick-4.2.5-empty-rpath.patch30
-rw-r--r--dev-ruby/rmagick/rmagick-4.2.5.ebuild84
3 files changed, 115 insertions, 0 deletions
diff --git a/dev-ruby/rmagick/Manifest b/dev-ruby/rmagick/Manifest
index 20709690a851..1ec823e0c499 100644
--- a/dev-ruby/rmagick/Manifest
+++ b/dev-ruby/rmagick/Manifest
@@ -1,3 +1,4 @@
DIST rmagick-4.2.2.tar.gz 1984143 BLAKE2B 8b8119a0002c48f3a289f72d4bbea6ac86cbecb287b34ddc14ca126fd2d951a34aefa39d68603dc4c9de674d346e47ef9e3b2c8ed96a5bc081373a4184a3ec40 SHA512 0a6a30a631786ea310d2c8add297abd527588be755d021143d6c64fbb597006aefef859c374604f8d26b0f8b1f6cd8a5f1cdd6489772ee713c71681f3980c7fd
DIST rmagick-4.2.3.tar.gz 1984440 BLAKE2B 32dea4b8ed7d2385537ac5d67d48e3431e3f398c146b01308cc44ab6b4ad5e851292c22e373307bd2193a299f94a2a2f91b0a7d534825990cc5e1458a9efff7d SHA512 3465afc5c9a93e45511463b1f7eda00fd243f17041cf52b5cb54ceb05ff22cb6e23ea2b15d080ae31bca5daebdd92c28364ada73ea0cf6ea56cb1ec5fe1aa184
DIST rmagick-4.2.4.tar.gz 1984584 BLAKE2B 8f3a737b851e16e16b6b010ea9f76ae14715661630eb877ca4204a71d67603967e5ca4eebdb9d8dea4caa880d049b78f525b6596feea9f866d7396fc550fb410 SHA512 89d5b616b6ce5187ac31356c44abea23aab0054e08ed00d390e3c74d1cdca421bc1ceb6708e5434858f3194756bf14b445d1331216480be5f8c072f65a889198
+DIST rmagick-4.2.5.tar.gz 1984865 BLAKE2B 5a96967da0583ca6d16252fd3e93162cc31b4b125875e16334436c2ec54cb9b739d4a0e0e08547a6218312ce844b3b78cca5f63cf4b81ae3f15abbf9816ceac8 SHA512 55835e43bf583c6c53431849caa54900902d0d63f21c7f70b0bdbcfbe69d16a71d433d1d9b949bf68ed36f6fc7f18ae512f0e96c26ff1c63a68bbc83446b52d8
diff --git a/dev-ruby/rmagick/files/rmagick-4.2.5-empty-rpath.patch b/dev-ruby/rmagick/files/rmagick-4.2.5-empty-rpath.patch
new file mode 100644
index 000000000000..13defdd24099
--- /dev/null
+++ b/dev-ruby/rmagick/files/rmagick-4.2.5-empty-rpath.patch
@@ -0,0 +1,30 @@
+commit fef59858eaba843b876c5b5f253f623ddb4d0f1c
+Author: Hans de Graaff <hans@degraaff.org>
+Date: Sat Apr 23 08:54:42 2022 +0200
+
+ Guard against an empty rpath
+
+ Some ImageMagick installations (e.g. on Gentoo Linux when installed
+ with the package manager) don't return any -L options in pkg-config.
+ Including an empty rpath is a security risk and should be avoided.
+
+ Fixes #1332
+
+diff --git a/ext/RMagick/extconf.rb b/ext/RMagick/extconf.rb
+index 7b4ce1ad..3eef6cbd 100644
+--- a/ext/RMagick/extconf.rb
++++ b/ext/RMagick/extconf.rb
+@@ -69,11 +69,12 @@ module RMagick
+
+ libdir = `pkg-config --libs-only-L #{$magick_package}`.chomp.sub('-L', '')
+ ldflags = "#{ENV['LDFLAGS']} " + `pkg-config --libs #{$magick_package}`.chomp
++ rpath = libdir.empty? ? '' : "-Wl,-rpath,#{libdir}"
+
+ # Save flags
+ $CPPFLAGS = "#{ENV['CPPFLAGS']} " + `pkg-config --cflags #{$magick_package}`.chomp
+ $LOCAL_LIBS = "#{ENV['LIBS']} " + `pkg-config --libs #{$magick_package}`.chomp
+- $LDFLAGS = "#{ldflags} -Wl,-rpath,#{libdir}"
++ $LDFLAGS = "#{ldflags} #{rpath}"
+
+ unless try_link("int main() { }")
+ # if linker does not recognizes '-Wl,-rpath,somewhere' option, it revert to original option
diff --git a/dev-ruby/rmagick/rmagick-4.2.5.ebuild b/dev-ruby/rmagick/rmagick-4.2.5.ebuild
new file mode 100644
index 000000000000..9bb20e982c14
--- /dev/null
+++ b/dev-ruby/rmagick/rmagick-4.2.5.ebuild
@@ -0,0 +1,84 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+USE_RUBY="ruby26 ruby27 ruby30 ruby31"
+
+RUBY_FAKEGEM_RECIPE_TEST="rspec3"
+
+RUBY_FAKEGEM_TASK_DOC=""
+
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
+
+RUBY_FAKEGEM_GEMSPEC="rmagick.gemspec"
+
+RUBY_FAKEGEM_EXTENSIONS=(ext/RMagick/extconf.rb)
+
+MY_PV=RMagick_${PV//\./-}
+
+inherit ruby-fakegem
+
+DESCRIPTION="An interface between Ruby and the ImageMagick(TM) image processing library"
+HOMEPAGE="https://github.com/rmagick/rmagick"
+SRC_URI="https://github.com/rmagick/rmagick/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
+RUBY_S="rmagick-${MY_PV}"
+
+LICENSE="Artistic"
+SLOT="4"
+KEYWORDS="~amd64 ~hppa ~ppc ~ppc64 ~x86"
+IUSE="doc"
+
+RDEPEND+=" >=media-gfx/imagemagick-6.9.0:="
+DEPEND+=" test? ( >=media-gfx/imagemagick-7.1.0:=[jpeg,lqr,lcms,postscript,tiff,webp] )"
+
+PATCHES=( "${FILESDIR}/${P}-empty-rpath.patch" )
+
+all_ruby_prepare() {
+ # Avoid unused dependency on rake-compiler. This also avoids an
+ # extra compile during tests.
+ sed -i -e '/extensiontask/ s:^:#:' \
+ -e '/ExtensionTask/,/end/ s:^:#:' \
+ -e '/compile/ s:^:#:' Rakefile || die
+ sed -i -e '/pry/ s:^:#:' spec/spec_helper.rb || die
+ sed -i -e 's/git ls-files/find */' ${RUBY_FAKEGEM_GEMSPEC} || die
+
+ # Squelch harmless warning about imagemagick installation.
+ sed -i -e '/prefix/ s:ImageMagick:ImageMagick-6:' ext/RMagick/extconf.rb || die
+
+ # Reading PDFs is not allowed by the default Gentoo security policy for imagemagick
+ #sed -i -e '/can read PDF file/askip "Not allowed by Gentoo security policy"' spec/rmagick/image/read_spec.rb || die
+
+ # Update version number hardcoded in tests
+ sed -i -e 's/"7.0"/"7.1"/' spec/rmagick/image/channel_mean_spec.rb || die
+
+ # Create directory used for a test
+ mkdir tmp
+}
+
+each_ruby_test() {
+ # Borrowed from media-gfx/gscan2pdf
+ # Needed to avoid test failures on e.g. ppc, bug #815856
+ # (Unclear why it doesn't manifest on amd64 here at least)
+ local confdir="${HOME}/.config/ImageMagick"
+ mkdir -p "${confdir}" || die
+ cat > "${confdir}/policy.xml" <<-EOT || die
+ <policymap>
+ <policy domain="coder" rights="read|write" pattern="PDF" />
+ <policy domain="coder" rights="read" pattern="PS" />
+ </policymap>
+ EOT
+
+ RSPEC_VERSION="3" ruby-ng_rspec
+}
+
+all_ruby_install() {
+ all_fakegem_install
+
+ docinto examples
+ dodoc examples/*
+
+ if use doc ; then
+ docinto .
+ dodoc -r doc
+ fi
+}