Vote #81365
完了Gantt PNG export ignores imagemagick_convert_command
0%
説明
Gantt PNG export uses ImageMagick's convert command, but it ignores imagemagick_convert_command in configration.yml.
Steps to reproduce:
- Set incorrect command name (e.g. @/usr/bin/_convert@) to imagemagick_convert_command in configration.yml
- Restart Redmine
- Export gantt to PNG. It should not work because imagemagick_convert_command is wrong, but it works fine.
journals
It seems that you can set the path of Imagemagick's client command to @MiniMagick.cli_path@.
https://rubydoc.info/github/minimagick/minimagick/MiniMagick/Configuration#cli_path-instance_method
I created a patch.
<pre><code class="diff">
diff --git a/lib/redmine/helpers/gantt.rb b/lib/redmine/helpers/gantt.rb
index 122013e5a..7d078298c 100644
--- a/lib/redmine/helpers/gantt.rb
+++ b/lib/redmine/helpers/gantt.rb
@@ -395,6 +395,9 @@ module Redmine
Redmine::Configuration['minimagick_font_path'].presence ||
Redmine::Configuration['rmagick_font_path'].presence
img = MiniMagick::Image.create(".#{format}", false)
+ if Redmine::Configuration['imagemagick_convert_command'].present?
+ MiniMagick.cli_path = File.dirname(Redmine::Configuration['imagemagick_convert_command'])
+ end
MiniMagick::Tool::Convert.new do |gc|
gc.size('%dx%d' % [subject_width + g_width + 1, height])
gc.xc('white')
</code></pre>
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
I tried this patch on #35424 but that did not fix the issue. Maybe something else is happening, but I'm not enough of a connoisseur :-)
--------------------------------------------------------------------------------
Setting the target version to 4.1.6.
--------------------------------------------------------------------------------
Patch committed, thanks!
The patch can fix some issues when the @convert@ command is not available in the global path, but the binary always must be named @convert@.
Based on the example from #35424, setting @imagemagick_convert_command: /usr/local/bin/convert@ will generate the following:
* @MiniMagick.cli_path@ (used for Gantt PNG) will be set to @/usr/local/bin@ and MiniMagick will look after @convert@ binary inside that path.
* For thumbnail generation, it will be used the exact path from configuration: @/usr/local/bin/convert@.
In case of a different binary name (@convert2@ for example), the Gantt PNG will not work.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
related_issues
relates,Reopened,35424,https://www.redmine.org/boards/2/topics/65661