summary refs log tree commit diff
path: root/pkgs/development/lua-modules
diff options
context:
space:
mode:
authorgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>2023-07-19 00:02:11 +0000
committerGitHub <noreply@github.com>2023-07-19 00:02:11 +0000
commit7f01b5d24b1f4a1eb9c340a17e9564ffaa74c907 (patch)
tree7cfe302b7dd4a6dd84fbce1e219c5c889607d07a /pkgs/development/lua-modules
parentacbec64db04bb2ed82a2bd6a2e9cb1f1d3a6cbf9 (diff)
parent9baeb193078a376b5ab28fc0a83112341f48e4e2 (diff)
Merge master into staging-next
Diffstat (limited to 'pkgs/development/lua-modules')
-rw-r--r--pkgs/development/lua-modules/generated-packages.nix31
-rw-r--r--pkgs/development/lua-modules/magick.patch53
-rw-r--r--pkgs/development/lua-modules/overrides.nix20
3 files changed, 104 insertions, 0 deletions
diff --git a/pkgs/development/lua-modules/generated-packages.nix b/pkgs/development/lua-modules/generated-packages.nix
index 10601dbd7a4af..e8b4be7dfd5db 100644
--- a/pkgs/development/lua-modules/generated-packages.nix
+++ b/pkgs/development/lua-modules/generated-packages.nix
@@ -2416,6 +2416,37 @@ buildLuarocksPackage {
   };
 }) {};
 
+magick = callPackage({ fetchgit, buildLuarocksPackage, lua }:
+buildLuarocksPackage {
+  pname = "magick";
+  version = "1.6.0-1";
+  knownRockspec = (fetchurl {
+    url    = "mirror://luarocks/magick-1.6.0-1.rockspec";
+    sha256 = "1pg150xsxnqvlhxpiy17s9hm4dkc84v46mlwi9rhriynqz8qks9w";
+  }).outPath;
+  src = fetchgit ( removeAttrs (builtins.fromJSON ''{
+  "url": "https://github.com/leafo/magick.git",
+  "rev": "6971fa700c4d392130492a3925344b51c7cc54aa",
+  "date": "2022-03-10T20:02:11-08:00",
+  "path": "/nix/store/fpl99q09zg3qnk4kagxk1djabl1dm47l-magick",
+  "sha256": "01b9qsz27f929rz5z7vapqhazxak74sichdwkjwb219nlhrwfncm",
+  "fetchLFS": false,
+  "fetchSubmodules": true,
+  "deepClone": false,
+  "leaveDotGit": false
+}
+ '') ["date" "path"]) ;
+
+  disabled = (lua.luaversion != "5.1");
+  propagatedBuildInputs = [ lua ];
+
+  meta = {
+    homepage = "git://github.com/leafo/magick.git";
+    description = "Lua bindings to ImageMagick & GraphicsMagick for LuaJIT using FFI";
+    license.fullName = "MIT";
+  };
+}) {};
+
 markdown = callPackage({ buildLuarocksPackage, luaAtLeast, fetchgit, luaOlder, lua }:
 buildLuarocksPackage {
   pname = "markdown";
diff --git a/pkgs/development/lua-modules/magick.patch b/pkgs/development/lua-modules/magick.patch
new file mode 100644
index 0000000000000..41b5ed98c7f0c
--- /dev/null
+++ b/pkgs/development/lua-modules/magick.patch
@@ -0,0 +1,53 @@
+diff --git a/magick/wand/lib.lua b/magick/wand/lib.lua
+index 21940a0..0d103dc 100644
+--- a/magick/wand/lib.lua
++++ b/magick/wand/lib.lua
+@@ -134,15 +134,6 @@ get_filters = function()
+   local prefixes = {
+     "/usr/include/ImageMagick",
+     "/usr/local/include/ImageMagick",
+-    unpack((function()
+-      local _accum_0 = { }
+-      local _len_0 = 1
+-      for p in get_flags():gmatch("-I([^%s]+)") do
+-        _accum_0[_len_0] = p
+-        _len_0 = _len_0 + 1
+-      end
+-      return _accum_0
+-    end)())
+   }
+   for _index_0 = 1, #prefixes do
+     local p = prefixes[_index_0]
+@@ -204,12 +195,7 @@ try_to_load = function(...)
+           break
+         end
+       end
+-      if pcall(function()
+-        out = ffi.load(name)
+-      end) then
+-        return out
+-      end
+-      _continue_0 = true
++      return ffi.load(name)
+     until true
+     if not _continue_0 then
+       break
+@@ -217,17 +203,7 @@ try_to_load = function(...)
+   end
+   return error("Failed to load ImageMagick (" .. tostring(...) .. ")")
+ end
+-lib = try_to_load("MagickWand", function()
+-  local lname = get_flags():match("-l(MagickWand[^%s]*)")
+-  local suffix
+-  if ffi.os == "OSX" then
+-    suffix = ".dylib"
+-  elseif ffi.os == "Windows" then
+-    suffix = ".dll"
+-  else
+-    suffix = ".so"
+-  end
+-  return lname and "lib" .. lname .. suffix
++lib = try_to_load("@nix_wand@", function()
+ end)
+ return {
+   lib = lib,
diff --git a/pkgs/development/lua-modules/overrides.nix b/pkgs/development/lua-modules/overrides.nix
index 102fcd85bcb5c..50dbcdecc6932 100644
--- a/pkgs/development/lua-modules/overrides.nix
+++ b/pkgs/development/lua-modules/overrides.nix
@@ -15,6 +15,7 @@
 , gnulib
 , gnum4
 , gobject-introspection
+, imagemagick
 , installShellFiles
 , lib
 , libevent
@@ -477,6 +478,25 @@ with prev;
     ];
   });
 
+  magick = prev.magick.overrideAttrs (oa: {
+    buildInputs = oa.buildInputs ++ [
+      imagemagick
+    ];
+
+    # Fix MagickWand not being found in the pkg-config search path
+    patches = [
+      ./magick.patch
+    ];
+
+    postPatch = ''
+      substituteInPlace magick/wand/lib.lua \
+        --replace @nix_wand@ ${imagemagick}/lib/libMagickWand-7.Q16HDRI.so
+    '';
+
+    # Requires ffi
+    meta.broken = !isLuaJIT;
+  });
+
   mpack = prev.mpack.overrideAttrs (drv: {
     buildInputs = (drv.buildInputs or []) ++ [ libmpack ];
     env = {