Skip to content
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
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

## master

* try to catch and warn about ffi startup failures [paulschreiber]

## Version 2.3.0 (2025-12-10)

* move library_name out of the global namespace and into FFI [jcupitt]
Expand Down
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,11 @@ gem install ruby-vips

Or include `gem "ruby-vips"` in your gemfile.

ruby-vips uses FFI to call into the libvips binary, and this needs
write-execute permission to construct function wrappers. If ruby-vips fails to
start, check your systemd settings and make sure `MemoryDenyWriteExecute` is not
enabled, see https://github.com/libvips/ruby-vips/issues/439.

## Install on Windows

The gemspec will pull in the msys libvips for you, so all you need is:
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.3.0
2.3.1
8 changes: 8 additions & 0 deletions lib/vips.rb
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,14 @@ module Vips
@@is_unified = true
rescue FFI::NotFoundError
@@is_unified = false
rescue RuntimeError
$stderr.puts "ruby-vips RuntimeError"
$stderr.puts "\tFFI has been able to load a library, but unable to call"
$stderr.puts "\ta known function in that library. You may have"
$stderr.puts "\twrite-execute protection enabled, preventing FFI from"
$stderr.puts "\tmaking wrappers for function dispatch."
$stderr.puts "\tSee https://github.com/libvips/ruby-vips/issues/439"
raise
end

def self.unified?
Expand Down
2 changes: 1 addition & 1 deletion lib/vips/version.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
module Vips
VERSION = "2.3.0"
VERSION = "2.3.1"
end
Loading