(DO NOT MERGE) OpenRaster (.ora) decoder support (#2342)
* Started work on OpenRaster (.ora) decoder
* Fix Zip libary name, fix tab indenting in config,
change format type of ORA files from implict to explict.
* Rename var used for libzip to avoid conflict with Window Zip,
created header for libzip support, decoding from ORA now works
as expected
* Fix tabbing of libzip in configure, rename variables to snake_case,
update metainfo of returned image to match that of the ORA file
instead of the temporary PNG file.
* Made ora.c ANSI C compatible, Add entry for ORA with no decoder
instead of adding no entires when the required libaries are not
installed.
diff --git a/MagickCore/config.h_vms b/MagickCore/config.h_vms
index 6e74de2..dfa63b1 100755
--- a/MagickCore/config.h_vms
+++ b/MagickCore/config.h_vms
@@ -233,6 +233,9 @@
/* Define if you have WMF library */
#undef MAGICKCORE_WMF_DELEGATE
+/* Define if you have LIBZIP library */
+#undef MAGICKCORE_LIBZIP_DELEGATE
+
/* Define if you have sys_errlist in libc */
#undef MAGICKCORE_HAVE_SYS_ERRLIST
diff --git a/MagickCore/static.h b/MagickCore/static.h
index c03f965..0077ee2 100644
--- a/MagickCore/static.h
+++ b/MagickCore/static.h
@@ -119,6 +119,7 @@
RegisterNULLImage(void),
RegisterP7Image(void),
RegisterPBMImage(void),
+ RegisterORAImage(void),
RegisterOTBImage(void),
RegisterPALMImage(void),
RegisterPANGOImage(void),
@@ -287,6 +288,7 @@
UnregisterNULLImage(void),
UnregisterP7Image(void),
UnregisterPBMImage(void),
+ UnregisterORAImage(void),
UnregisterOTBImage(void),
UnregisterPALMImage(void),
UnregisterPANGOImage(void),
diff --git a/Makefile.in b/Makefile.in
index c6e0816..112698c 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -557,43 +557,44 @@
coders/mono.h coders/mpc.c coders/mpc.h coders/mpeg.c \
coders/mpeg.h coders/mpr.c coders/mpr.h coders/msl.c \
coders/msl.h coders/mtv.c coders/mtv.h coders/mvg.c \
- coders/mvg.h coders/null.c coders/null.h coders/otb.c \
- coders/otb.h coders/palm.c coders/palm.h coders/pango.c \
- coders/pango.h coders/pattern.c coders/pattern.h coders/pcd.c \
- coders/pcd.h coders/pcl.c coders/pcl.h coders/pcx.c \
- coders/pcx.h coders/pdb.c coders/pdb.h coders/pdf.c \
- coders/pdf.h coders/pes.c coders/pes.h coders/pgx.c \
- coders/pgx.h coders/pict.c coders/pict.h coders/pix.c \
- coders/pix.h coders/plasma.c coders/plasma.h coders/png.h \
- coders/pnm.c coders/pnm.h coders/ps2.c coders/ps2.h \
- coders/ps3.c coders/ps3.h coders/ps.c coders/psd.c \
- coders/psd.h coders/psd-private.h coders/ps.h coders/pwp.c \
- coders/pwp.h coders/raw.c coders/raw.h coders/rgb.c \
- coders/rgb.h coders/rgf.c coders/rgf.h coders/rla.c \
- coders/rla.h coders/rle.c coders/rle.h coders/scr.c \
- coders/screenshot.c coders/screenshot.h coders/scr.h \
- coders/sct.c coders/sct.h coders/sfw.c coders/sfw.h \
- coders/sgi.c coders/sgi.h coders/sixel.c coders/sixel.h \
- coders/stegano.c coders/stegano.h coders/sun.c coders/sun.h \
- coders/svg.c coders/svg.h coders/tga.c coders/tga.h \
- coders/thumbnail.c coders/thumbnail.h coders/tiff.h \
- coders/tile.c coders/tile.h coders/tim2.c coders/tim2.h \
- coders/tim.c coders/tim.h coders/ttf.c coders/ttf.h \
- coders/txt.c coders/txt.h coders/uil.c coders/uil.h \
- coders/url.c coders/url.h coders/uyvy.c coders/uyvy.h \
- coders/vicar.c coders/vicar.h coders/vid.c coders/vid.h \
- coders/viff.c coders/viff.h coders/vips.c coders/vips.h \
- coders/wbmp.c coders/wbmp.h coders/webp.h coders/wmf.h \
- coders/wpg.c coders/wpg.h coders/xbm.c coders/xbm.h \
- coders/xc.c coders/xcf.c coders/xcf.h coders/xc.h coders/x.h \
- coders/xpm.c coders/xpm.h coders/xps.c coders/xps.h \
- coders/xtrn.c coders/xtrn.h coders/xwd.h coders/ycbcr.c \
- coders/ycbcr.h coders/yuv.c coders/yuv.h coders/dps.c \
- coders/djvu.c coders/exr.c coders/flif.c coders/fpx.c \
- coders/clipboard.c coders/emf.c coders/heic.c coders/jbig.c \
- coders/jpeg.c coders/jp2.c coders/jxl.c coders/png.c \
- coders/ept.c coders/tiff.c coders/webp.c coders/wmf.c \
- coders/x.c coders/xwd.c filters/analyze.c
+ coders/mvg.h coders/null.c coders/null.h coders/ora.c \
+ coders/ora.h coders/otb.c coders/otb.h coders/palm.c \
+ coders/palm.h coders/pango.c coders/pango.h coders/pattern.c \
+ coders/pattern.h coders/pcd.c coders/pcd.h coders/pcl.c \
+ coders/pcl.h coders/pcx.c coders/pcx.h coders/pdb.c \
+ coders/pdb.h coders/pdf.c coders/pdf.h coders/pes.c \
+ coders/pes.h coders/pgx.c coders/pgx.h coders/pict.c \
+ coders/pict.h coders/pix.c coders/pix.h coders/plasma.c \
+ coders/plasma.h coders/png.h coders/pnm.c coders/pnm.h \
+ coders/ps2.c coders/ps2.h coders/ps3.c coders/ps3.h \
+ coders/ps.c coders/psd.c coders/psd.h coders/psd-private.h \
+ coders/ps.h coders/pwp.c coders/pwp.h coders/raw.c \
+ coders/raw.h coders/rgb.c coders/rgb.h coders/rgf.c \
+ coders/rgf.h coders/rla.c coders/rla.h coders/rle.c \
+ coders/rle.h coders/scr.c coders/screenshot.c \
+ coders/screenshot.h coders/scr.h coders/sct.c coders/sct.h \
+ coders/sfw.c coders/sfw.h coders/sgi.c coders/sgi.h \
+ coders/sixel.c coders/sixel.h coders/stegano.c \
+ coders/stegano.h coders/sun.c coders/sun.h coders/svg.c \
+ coders/svg.h coders/tga.c coders/tga.h coders/thumbnail.c \
+ coders/thumbnail.h coders/tiff.h coders/tile.c coders/tile.h \
+ coders/tim2.c coders/tim2.h coders/tim.c coders/tim.h \
+ coders/ttf.c coders/ttf.h coders/txt.c coders/txt.h \
+ coders/uil.c coders/uil.h coders/url.c coders/url.h \
+ coders/uyvy.c coders/uyvy.h coders/vicar.c coders/vicar.h \
+ coders/vid.c coders/vid.h coders/viff.c coders/viff.h \
+ coders/vips.c coders/vips.h coders/wbmp.c coders/wbmp.h \
+ coders/webp.h coders/wmf.h coders/wpg.c coders/wpg.h \
+ coders/xbm.c coders/xbm.h coders/xc.c coders/xcf.c \
+ coders/xcf.h coders/xc.h coders/x.h coders/xpm.c coders/xpm.h \
+ coders/xps.c coders/xps.h coders/xtrn.c coders/xtrn.h \
+ coders/xwd.h coders/ycbcr.c coders/ycbcr.h coders/yuv.c \
+ coders/yuv.h coders/dps.c coders/djvu.c coders/exr.c \
+ coders/flif.c coders/fpx.c coders/clipboard.c coders/emf.c \
+ coders/heic.c coders/jbig.c coders/jpeg.c coders/jp2.c \
+ coders/jxl.c coders/png.c coders/ept.c coders/tiff.c \
+ coders/webp.c coders/wmf.c coders/x.c coders/xwd.c \
+ filters/analyze.c
am__objects_1 = MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-accelerate.lo \
MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-animate.lo \
MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-annotate.lo \
@@ -763,6 +764,7 @@
coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-mtv.lo \
coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-mvg.lo \
coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-null.lo \
+ coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ora.lo \
coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-otb.lo \
coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-palm.lo \
coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-pango.lo \
@@ -1419,6 +1421,13 @@
$(AM_CFLAGS) $(CFLAGS) $(coders_null_la_LDFLAGS) $(LDFLAGS) -o \
$@
@WITH_MODULES_TRUE@am_coders_null_la_rpath = -rpath $(codersdir)
+coders_ora_la_DEPENDENCIES = $(MAGICKCORE_LIBS) $(am__DEPENDENCIES_1)
+am_coders_ora_la_OBJECTS = coders/ora_la-ora.lo
+coders_ora_la_OBJECTS = $(am_coders_ora_la_OBJECTS)
+coders_ora_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(coders_ora_la_LDFLAGS) $(LDFLAGS) -o $@
+@WITH_MODULES_TRUE@am_coders_ora_la_rpath = -rpath $(codersdir)
coders_otb_la_DEPENDENCIES = $(MAGICKCORE_LIBS)
am_coders_otb_la_OBJECTS = coders/otb_la-otb.lo
coders_otb_la_OBJECTS = $(am_coders_otb_la_OBJECTS)
@@ -2300,6 +2309,7 @@
coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-mtv.Plo \
coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-mvg.Plo \
coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-null.Plo \
+ coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ora.Plo \
coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-otb.Plo \
coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-palm.Plo \
coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-pango.Plo \
@@ -2432,6 +2442,7 @@
coders/$(DEPDIR)/mtv_la-mtv.Plo \
coders/$(DEPDIR)/mvg_la-mvg.Plo \
coders/$(DEPDIR)/null_la-null.Plo \
+ coders/$(DEPDIR)/ora_la-ora.Plo \
coders/$(DEPDIR)/otb_la-otb.Plo \
coders/$(DEPDIR)/palm_la-palm.Plo \
coders/$(DEPDIR)/pango_la-pango.Plo \
@@ -2574,39 +2585,39 @@
$(coders_mpeg_la_SOURCES) $(coders_mpr_la_SOURCES) \
$(coders_msl_la_SOURCES) $(coders_mtv_la_SOURCES) \
$(coders_mvg_la_SOURCES) $(coders_null_la_SOURCES) \
- $(coders_otb_la_SOURCES) $(coders_palm_la_SOURCES) \
- $(coders_pango_la_SOURCES) $(coders_pattern_la_SOURCES) \
- $(coders_pcd_la_SOURCES) $(coders_pcl_la_SOURCES) \
- $(coders_pcx_la_SOURCES) $(coders_pdb_la_SOURCES) \
- $(coders_pdf_la_SOURCES) $(coders_pes_la_SOURCES) \
- $(coders_pgx_la_SOURCES) $(coders_pict_la_SOURCES) \
- $(coders_pix_la_SOURCES) $(coders_plasma_la_SOURCES) \
- $(coders_png_la_SOURCES) $(coders_pnm_la_SOURCES) \
- $(coders_ps_la_SOURCES) $(coders_ps2_la_SOURCES) \
- $(coders_ps3_la_SOURCES) $(coders_psd_la_SOURCES) \
- $(coders_pwp_la_SOURCES) $(coders_raw_la_SOURCES) \
- $(coders_rgb_la_SOURCES) $(coders_rgf_la_SOURCES) \
- $(coders_rla_la_SOURCES) $(coders_rle_la_SOURCES) \
- $(coders_scr_la_SOURCES) $(coders_sct_la_SOURCES) \
- $(coders_sfw_la_SOURCES) $(coders_sgi_la_SOURCES) \
- $(coders_sixel_la_SOURCES) $(coders_stegano_la_SOURCES) \
- $(coders_sun_la_SOURCES) $(coders_svg_la_SOURCES) \
- $(coders_tga_la_SOURCES) $(coders_thumbnail_la_SOURCES) \
- $(coders_tiff_la_SOURCES) $(coders_tile_la_SOURCES) \
- $(coders_tim_la_SOURCES) $(coders_tim2_la_SOURCES) \
- $(coders_ttf_la_SOURCES) $(coders_txt_la_SOURCES) \
- $(coders_uil_la_SOURCES) $(coders_url_la_SOURCES) \
- $(coders_uyvy_la_SOURCES) $(coders_vicar_la_SOURCES) \
- $(coders_vid_la_SOURCES) $(coders_viff_la_SOURCES) \
- $(coders_vips_la_SOURCES) $(coders_wbmp_la_SOURCES) \
- $(coders_webp_la_SOURCES) $(coders_wmf_la_SOURCES) \
- $(coders_wpg_la_SOURCES) $(coders_x_la_SOURCES) \
- $(coders_xbm_la_SOURCES) $(coders_xc_la_SOURCES) \
- $(coders_xcf_la_SOURCES) $(coders_xpm_la_SOURCES) \
- $(coders_xps_la_SOURCES) $(coders_xtrn_la_SOURCES) \
- $(coders_xwd_la_SOURCES) $(coders_ycbcr_la_SOURCES) \
- $(coders_yuv_la_SOURCES) $(filters_analyze_la_SOURCES) \
- $(Magick___demo_analyze_SOURCES) \
+ $(coders_ora_la_SOURCES) $(coders_otb_la_SOURCES) \
+ $(coders_palm_la_SOURCES) $(coders_pango_la_SOURCES) \
+ $(coders_pattern_la_SOURCES) $(coders_pcd_la_SOURCES) \
+ $(coders_pcl_la_SOURCES) $(coders_pcx_la_SOURCES) \
+ $(coders_pdb_la_SOURCES) $(coders_pdf_la_SOURCES) \
+ $(coders_pes_la_SOURCES) $(coders_pgx_la_SOURCES) \
+ $(coders_pict_la_SOURCES) $(coders_pix_la_SOURCES) \
+ $(coders_plasma_la_SOURCES) $(coders_png_la_SOURCES) \
+ $(coders_pnm_la_SOURCES) $(coders_ps_la_SOURCES) \
+ $(coders_ps2_la_SOURCES) $(coders_ps3_la_SOURCES) \
+ $(coders_psd_la_SOURCES) $(coders_pwp_la_SOURCES) \
+ $(coders_raw_la_SOURCES) $(coders_rgb_la_SOURCES) \
+ $(coders_rgf_la_SOURCES) $(coders_rla_la_SOURCES) \
+ $(coders_rle_la_SOURCES) $(coders_scr_la_SOURCES) \
+ $(coders_sct_la_SOURCES) $(coders_sfw_la_SOURCES) \
+ $(coders_sgi_la_SOURCES) $(coders_sixel_la_SOURCES) \
+ $(coders_stegano_la_SOURCES) $(coders_sun_la_SOURCES) \
+ $(coders_svg_la_SOURCES) $(coders_tga_la_SOURCES) \
+ $(coders_thumbnail_la_SOURCES) $(coders_tiff_la_SOURCES) \
+ $(coders_tile_la_SOURCES) $(coders_tim_la_SOURCES) \
+ $(coders_tim2_la_SOURCES) $(coders_ttf_la_SOURCES) \
+ $(coders_txt_la_SOURCES) $(coders_uil_la_SOURCES) \
+ $(coders_url_la_SOURCES) $(coders_uyvy_la_SOURCES) \
+ $(coders_vicar_la_SOURCES) $(coders_vid_la_SOURCES) \
+ $(coders_viff_la_SOURCES) $(coders_vips_la_SOURCES) \
+ $(coders_wbmp_la_SOURCES) $(coders_webp_la_SOURCES) \
+ $(coders_wmf_la_SOURCES) $(coders_wpg_la_SOURCES) \
+ $(coders_x_la_SOURCES) $(coders_xbm_la_SOURCES) \
+ $(coders_xc_la_SOURCES) $(coders_xcf_la_SOURCES) \
+ $(coders_xpm_la_SOURCES) $(coders_xps_la_SOURCES) \
+ $(coders_xtrn_la_SOURCES) $(coders_xwd_la_SOURCES) \
+ $(coders_ycbcr_la_SOURCES) $(coders_yuv_la_SOURCES) \
+ $(filters_analyze_la_SOURCES) $(Magick___demo_analyze_SOURCES) \
$(Magick___demo_button_SOURCES) $(Magick___demo_demo_SOURCES) \
$(Magick___demo_detrans_SOURCES) $(Magick___demo_flip_SOURCES) \
$(Magick___demo_gravity_SOURCES) \
@@ -2664,39 +2675,39 @@
$(coders_mpeg_la_SOURCES) $(coders_mpr_la_SOURCES) \
$(coders_msl_la_SOURCES) $(coders_mtv_la_SOURCES) \
$(coders_mvg_la_SOURCES) $(coders_null_la_SOURCES) \
- $(coders_otb_la_SOURCES) $(coders_palm_la_SOURCES) \
- $(coders_pango_la_SOURCES) $(coders_pattern_la_SOURCES) \
- $(coders_pcd_la_SOURCES) $(coders_pcl_la_SOURCES) \
- $(coders_pcx_la_SOURCES) $(coders_pdb_la_SOURCES) \
- $(coders_pdf_la_SOURCES) $(coders_pes_la_SOURCES) \
- $(coders_pgx_la_SOURCES) $(coders_pict_la_SOURCES) \
- $(coders_pix_la_SOURCES) $(coders_plasma_la_SOURCES) \
- $(coders_png_la_SOURCES) $(coders_pnm_la_SOURCES) \
- $(coders_ps_la_SOURCES) $(coders_ps2_la_SOURCES) \
- $(coders_ps3_la_SOURCES) $(coders_psd_la_SOURCES) \
- $(coders_pwp_la_SOURCES) $(coders_raw_la_SOURCES) \
- $(coders_rgb_la_SOURCES) $(coders_rgf_la_SOURCES) \
- $(coders_rla_la_SOURCES) $(coders_rle_la_SOURCES) \
- $(coders_scr_la_SOURCES) $(coders_sct_la_SOURCES) \
- $(coders_sfw_la_SOURCES) $(coders_sgi_la_SOURCES) \
- $(coders_sixel_la_SOURCES) $(coders_stegano_la_SOURCES) \
- $(coders_sun_la_SOURCES) $(coders_svg_la_SOURCES) \
- $(coders_tga_la_SOURCES) $(coders_thumbnail_la_SOURCES) \
- $(coders_tiff_la_SOURCES) $(coders_tile_la_SOURCES) \
- $(coders_tim_la_SOURCES) $(coders_tim2_la_SOURCES) \
- $(coders_ttf_la_SOURCES) $(coders_txt_la_SOURCES) \
- $(coders_uil_la_SOURCES) $(coders_url_la_SOURCES) \
- $(coders_uyvy_la_SOURCES) $(coders_vicar_la_SOURCES) \
- $(coders_vid_la_SOURCES) $(coders_viff_la_SOURCES) \
- $(coders_vips_la_SOURCES) $(coders_wbmp_la_SOURCES) \
- $(coders_webp_la_SOURCES) $(coders_wmf_la_SOURCES) \
- $(coders_wpg_la_SOURCES) $(coders_x_la_SOURCES) \
- $(coders_xbm_la_SOURCES) $(coders_xc_la_SOURCES) \
- $(coders_xcf_la_SOURCES) $(coders_xpm_la_SOURCES) \
- $(coders_xps_la_SOURCES) $(coders_xtrn_la_SOURCES) \
- $(coders_xwd_la_SOURCES) $(coders_ycbcr_la_SOURCES) \
- $(coders_yuv_la_SOURCES) $(filters_analyze_la_SOURCES) \
- $(Magick___demo_analyze_SOURCES) \
+ $(coders_ora_la_SOURCES) $(coders_otb_la_SOURCES) \
+ $(coders_palm_la_SOURCES) $(coders_pango_la_SOURCES) \
+ $(coders_pattern_la_SOURCES) $(coders_pcd_la_SOURCES) \
+ $(coders_pcl_la_SOURCES) $(coders_pcx_la_SOURCES) \
+ $(coders_pdb_la_SOURCES) $(coders_pdf_la_SOURCES) \
+ $(coders_pes_la_SOURCES) $(coders_pgx_la_SOURCES) \
+ $(coders_pict_la_SOURCES) $(coders_pix_la_SOURCES) \
+ $(coders_plasma_la_SOURCES) $(coders_png_la_SOURCES) \
+ $(coders_pnm_la_SOURCES) $(coders_ps_la_SOURCES) \
+ $(coders_ps2_la_SOURCES) $(coders_ps3_la_SOURCES) \
+ $(coders_psd_la_SOURCES) $(coders_pwp_la_SOURCES) \
+ $(coders_raw_la_SOURCES) $(coders_rgb_la_SOURCES) \
+ $(coders_rgf_la_SOURCES) $(coders_rla_la_SOURCES) \
+ $(coders_rle_la_SOURCES) $(coders_scr_la_SOURCES) \
+ $(coders_sct_la_SOURCES) $(coders_sfw_la_SOURCES) \
+ $(coders_sgi_la_SOURCES) $(coders_sixel_la_SOURCES) \
+ $(coders_stegano_la_SOURCES) $(coders_sun_la_SOURCES) \
+ $(coders_svg_la_SOURCES) $(coders_tga_la_SOURCES) \
+ $(coders_thumbnail_la_SOURCES) $(coders_tiff_la_SOURCES) \
+ $(coders_tile_la_SOURCES) $(coders_tim_la_SOURCES) \
+ $(coders_tim2_la_SOURCES) $(coders_ttf_la_SOURCES) \
+ $(coders_txt_la_SOURCES) $(coders_uil_la_SOURCES) \
+ $(coders_url_la_SOURCES) $(coders_uyvy_la_SOURCES) \
+ $(coders_vicar_la_SOURCES) $(coders_vid_la_SOURCES) \
+ $(coders_viff_la_SOURCES) $(coders_vips_la_SOURCES) \
+ $(coders_wbmp_la_SOURCES) $(coders_webp_la_SOURCES) \
+ $(coders_wmf_la_SOURCES) $(coders_wpg_la_SOURCES) \
+ $(coders_x_la_SOURCES) $(coders_xbm_la_SOURCES) \
+ $(coders_xc_la_SOURCES) $(coders_xcf_la_SOURCES) \
+ $(coders_xpm_la_SOURCES) $(coders_xps_la_SOURCES) \
+ $(coders_xtrn_la_SOURCES) $(coders_xwd_la_SOURCES) \
+ $(coders_ycbcr_la_SOURCES) $(coders_yuv_la_SOURCES) \
+ $(filters_analyze_la_SOURCES) $(Magick___demo_analyze_SOURCES) \
$(Magick___demo_button_SOURCES) $(Magick___demo_demo_SOURCES) \
$(Magick___demo_detrans_SOURCES) $(Magick___demo_flip_SOURCES) \
$(Magick___demo_gravity_SOURCES) \
@@ -3155,6 +3166,8 @@
# Automagically reconfigure libtool
LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LIBZIP_CFLAGS = @LIBZIP_CFLAGS@
+LIBZIP_LIBS = @LIBZIP_LIBS@
LIBZSTD_CFLAGS = @LIBZSTD_CFLAGS@
LIBZSTD_LIBS = @LIBZSTD_LIBS@
LIB_BIN_BASEDIRNAME = @LIB_BIN_BASEDIRNAME@
@@ -3765,6 +3778,8 @@
coders/mvg.h \
coders/null.c \
coders/null.h \
+ coders/ora.c \
+ coders/ora.h \
coders/otb.c \
coders/otb.h \
coders/palm.c \
@@ -3980,6 +3995,7 @@
coders/mtv.h \
coders/mvg.h \
coders/null.h \
+ coders/ora.h \
coders/otb.h \
coders/palm.h \
coders/pango.h \
@@ -4103,6 +4119,7 @@
@WITH_MODULES_TRUE@ coders/mtv.la \
@WITH_MODULES_TRUE@ coders/mvg.la \
@WITH_MODULES_TRUE@ coders/null.la \
+@WITH_MODULES_TRUE@ coders/ora.la \
@WITH_MODULES_TRUE@ coders/otb.la \
@WITH_MODULES_TRUE@ coders/palm.la \
@WITH_MODULES_TRUE@ coders/pango.la \
@@ -4586,6 +4603,12 @@
coders_null_la_LDFLAGS = $(MODULECOMMONFLAGS)
coders_null_la_LIBADD = $(MAGICKCORE_LIBS)
+# ORA coder module
+coders_ora_la_SOURCES = coders/ora.c
+coders_ora_la_CPPFLAGS = $(MAGICK_CODER_CPPFLAGS)
+coders_ora_la_LDFLAGS = $(MODULECOMMONFLAGS)
+coders_ora_la_LIBADD = $(MAGICKCORE_LIBS) $(LIBZIP_LIBS)
+
# OTB coder module
coders_otb_la_SOURCES = coders/otb.c
coders_otb_la_CPPFLAGS = $(MAGICK_CODER_CPPFLAGS)
@@ -6796,6 +6819,8 @@
coders/$(am__dirstamp) coders/$(DEPDIR)/$(am__dirstamp)
coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-null.lo: \
coders/$(am__dirstamp) coders/$(DEPDIR)/$(am__dirstamp)
+coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ora.lo: \
+ coders/$(am__dirstamp) coders/$(DEPDIR)/$(am__dirstamp)
coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-otb.lo: \
coders/$(am__dirstamp) coders/$(DEPDIR)/$(am__dirstamp)
coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-palm.lo: \
@@ -7382,6 +7407,11 @@
coders/null.la: $(coders_null_la_OBJECTS) $(coders_null_la_DEPENDENCIES) $(EXTRA_coders_null_la_DEPENDENCIES) coders/$(am__dirstamp)
$(AM_V_CCLD)$(coders_null_la_LINK) $(am_coders_null_la_rpath) $(coders_null_la_OBJECTS) $(coders_null_la_LIBADD) $(LIBS)
+coders/ora_la-ora.lo: coders/$(am__dirstamp) \
+ coders/$(DEPDIR)/$(am__dirstamp)
+
+coders/ora.la: $(coders_ora_la_OBJECTS) $(coders_ora_la_DEPENDENCIES) $(EXTRA_coders_ora_la_DEPENDENCIES) coders/$(am__dirstamp)
+ $(AM_V_CCLD)$(coders_ora_la_LINK) $(am_coders_ora_la_rpath) $(coders_ora_la_OBJECTS) $(coders_ora_la_LIBADD) $(LIBS)
coders/otb_la-otb.lo: coders/$(am__dirstamp) \
coders/$(DEPDIR)/$(am__dirstamp)
@@ -8182,6 +8212,7 @@
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-mtv.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-mvg.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-null.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ora.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-otb.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-palm.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-pango.Plo@am__quote@ # am--include-marker
@@ -8314,6 +8345,7 @@
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/mtv_la-mtv.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/mvg_la-mvg.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/null_la-null.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/ora_la-ora.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/otb_la-otb.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/palm_la-palm.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/pango_la-pango.Plo@am__quote@ # am--include-marker
@@ -9458,6 +9490,13 @@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-null.lo `test -f 'coders/null.c' || echo '$(srcdir)/'`coders/null.c
+coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ora.lo: coders/ora.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ora.lo -MD -MP -MF coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ora.Tpo -c -o coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ora.lo `test -f 'coders/ora.c' || echo '$(srcdir)/'`coders/ora.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ora.Tpo coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ora.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='coders/ora.c' object='coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ora.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ora.lo `test -f 'coders/ora.c' || echo '$(srcdir)/'`coders/ora.c
+
coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-otb.lo: coders/otb.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-otb.lo -MD -MP -MF coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-otb.Tpo -c -o coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-otb.lo `test -f 'coders/otb.c' || echo '$(srcdir)/'`coders/otb.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-otb.Tpo coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-otb.Plo
@@ -10648,6 +10687,13 @@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(coders_null_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coders/null_la-null.lo `test -f 'coders/null.c' || echo '$(srcdir)/'`coders/null.c
+coders/ora_la-ora.lo: coders/ora.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(coders_ora_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coders/ora_la-ora.lo -MD -MP -MF coders/$(DEPDIR)/ora_la-ora.Tpo -c -o coders/ora_la-ora.lo `test -f 'coders/ora.c' || echo '$(srcdir)/'`coders/ora.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) coders/$(DEPDIR)/ora_la-ora.Tpo coders/$(DEPDIR)/ora_la-ora.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='coders/ora.c' object='coders/ora_la-ora.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(coders_ora_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coders/ora_la-ora.lo `test -f 'coders/ora.c' || echo '$(srcdir)/'`coders/ora.c
+
coders/otb_la-otb.lo: coders/otb.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(coders_otb_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coders/otb_la-otb.lo -MD -MP -MF coders/$(DEPDIR)/otb_la-otb.Tpo -c -o coders/otb_la-otb.lo `test -f 'coders/otb.c' || echo '$(srcdir)/'`coders/otb.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) coders/$(DEPDIR)/otb_la-otb.Tpo coders/$(DEPDIR)/otb_la-otb.Plo
@@ -12601,6 +12647,7 @@
-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-mtv.Plo
-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-mvg.Plo
-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-null.Plo
+ -rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ora.Plo
-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-otb.Plo
-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-palm.Plo
-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-pango.Plo
@@ -12733,6 +12780,7 @@
-rm -f coders/$(DEPDIR)/mtv_la-mtv.Plo
-rm -f coders/$(DEPDIR)/mvg_la-mvg.Plo
-rm -f coders/$(DEPDIR)/null_la-null.Plo
+ -rm -f coders/$(DEPDIR)/ora_la-ora.Plo
-rm -f coders/$(DEPDIR)/otb_la-otb.Plo
-rm -f coders/$(DEPDIR)/palm_la-palm.Plo
-rm -f coders/$(DEPDIR)/pango_la-pango.Plo
@@ -13085,6 +13133,7 @@
-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-mtv.Plo
-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-mvg.Plo
-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-null.Plo
+ -rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ora.Plo
-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-otb.Plo
-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-palm.Plo
-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-pango.Plo
@@ -13217,6 +13266,7 @@
-rm -f coders/$(DEPDIR)/mtv_la-mtv.Plo
-rm -f coders/$(DEPDIR)/mvg_la-mvg.Plo
-rm -f coders/$(DEPDIR)/null_la-null.Plo
+ -rm -f coders/$(DEPDIR)/ora_la-ora.Plo
-rm -f coders/$(DEPDIR)/otb_la-otb.Plo
-rm -f coders/$(DEPDIR)/palm_la-palm.Plo
-rm -f coders/$(DEPDIR)/pango_la-pango.Plo
diff --git a/coders/Make.com b/coders/Make.com
index 9bc5967..4c1cfe0 100755
--- a/coders/Make.com
+++ b/coders/Make.com
@@ -82,6 +82,7 @@
$call Make mtv.c
$call Make mvg.c
$call Make null.c
+$call Make ora.c
$call Make otb.c
$call Make palm.c
$call Make pango.c
@@ -154,7 +155,7 @@
cmyk,cut,dcm,dds,debug,dib,dng,dps,dpx,emf,ept,exr,fax,fd,fits,fpx,gif, -
gradient,gray,hald,histogram,hrz,html,icon,info,inline,ipl,jbig,jpeg,jp2, -
jnx,json,hdr,label,cals,caption,palm,mac,magick,map,mat,matte,pango,rgf, -
- meta,miff,mpc,mpr,msl,mpeg,mono,mtv,mvg,null,otb,pattern,pcd,pcl,pcx,pdb, -
+ meta,miff,mpc,mpr,msl,mpeg,mono,mtv,mvg,null,ora,otb,pattern,pcd,pcl,pcx,pdb, -
pdf,pes,pict,pix,plasma,png,pnm,preview,ps,ps2,ps3,psd,pwp,raw,rgb,rla,rle, -
sct,sfw,sgi,stegano,sun,svg,tga,thumbnail,tiff,tile,tim,tim2,ttf,txt,uil,url, -
uyvy,vicar,vid,viff,wbmp,webp,wmf,wpg,x,xbm,xc,xcf,xpm,xps,xwd,ycbcr,yuv, -
diff --git a/coders/Makefile.am b/coders/Makefile.am
index f7ad884..0ce9422 100644
--- a/coders/Makefile.am
+++ b/coders/Makefile.am
@@ -230,6 +230,8 @@
coders/mvg.h \
coders/null.c \
coders/null.h \
+ coders/ora.c \
+ coders/ora.h \
coders/otb.c \
coders/otb.h \
coders/palm.c \
@@ -445,6 +447,7 @@
coders/mtv.h \
coders/mvg.h \
coders/null.h \
+ coders/ora.h \
coders/otb.h \
coders/palm.h \
coders/pango.h \
@@ -568,6 +571,7 @@
coders/mtv.la \
coders/mvg.la \
coders/null.la \
+ coders/ora.la \
coders/otb.la \
coders/palm.la \
coders/pango.la \
@@ -1053,6 +1057,12 @@
coders_null_la_LDFLAGS = $(MODULECOMMONFLAGS)
coders_null_la_LIBADD = $(MAGICKCORE_LIBS)
+# ORA coder module
+coders_ora_la_SOURCES = coders/ora.c
+coders_ora_la_CPPFLAGS = $(MAGICK_CODER_CPPFLAGS)
+coders_ora_la_LDFLAGS = $(MODULECOMMONFLAGS)
+coders_ora_la_LIBADD = $(MAGICKCORE_LIBS) $(LIBZIP_LIBS)
+
# OTB coder module
coders_otb_la_SOURCES = coders/otb.c
coders_otb_la_CPPFLAGS = $(MAGICK_CODER_CPPFLAGS)
diff --git a/coders/coders-list.h b/coders/coders-list.h
index db23cce..6775d8d 100644
--- a/coders/coders-list.h
+++ b/coders/coders-list.h
@@ -110,6 +110,7 @@
AddMagickCoder(MTV)
AddMagickCoder(MVG)
AddMagickCoder(NULL)
+AddMagickCoder(ORA)
AddMagickCoder(OTB)
AddMagickCoder(PALM)
AddMagickCoder(PANGO)
diff --git a/coders/coders.h b/coders/coders.h
index 163bfee..dc07920 100644
--- a/coders/coders.h
+++ b/coders/coders.h
@@ -113,6 +113,7 @@
#include "coders/mtv.h"
#include "coders/mvg.h"
#include "coders/null.h"
+#include "coders/ora.h"
#include "coders/otb.h"
#include "coders/palm.h"
#include "coders/pango.h"
diff --git a/coders/ora.c b/coders/ora.c
new file mode 100644
index 0000000..86bc16f
--- /dev/null
+++ b/coders/ora.c
@@ -0,0 +1,332 @@
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% %
+% %
+% OOOOOOO RRRRRR A %
+% O O R R A A %
+% O O R R A A %
+% O O RRRRRR A A %
+% O O R R AAAAAAA %
+% O O R R A A %
+% OOOOOOO R R A A %
+% %
+% %
+% Read OpenRaster (.ora) files %
+% %
+% OpenRaster spec: %
+% https://www.freedesktop.org/wiki/Specifications/OpenRaster/ %
+% %
+% Implementer %
+% Christopher Chianelli %
+% August 2020 %
+% %
+% %
+% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization %
+% dedicated to making software imaging solutions freely available. %
+% %
+% You may not use this file except in compliance with the License. You may %
+% obtain a copy of the License at %
+% %
+% https://imagemagick.org/script/license.php %
+% %
+% Unless required by applicable law or agreed to in writing, software %
+% distributed under the License is distributed on an "AS IS" BASIS, %
+% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. %
+% See the License for the specific language governing permissions and %
+% limitations under the License. %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
+*/
+
+/*
+ Include declarations.
+*/
+#include "MagickCore/studio.h"
+#include "MagickCore/blob.h"
+#include "MagickCore/blob-private.h"
+#include "MagickCore/constitute.h"
+#include "MagickCore/exception.h"
+#include "MagickCore/exception-private.h"
+#include "MagickCore/image.h"
+#include "MagickCore/image-private.h"
+#include "MagickCore/list.h"
+#include "MagickCore/magick.h"
+#include "MagickCore/memory_.h"
+#include "MagickCore/module.h"
+#include "MagickCore/quantum-private.h"
+#include "MagickCore/static.h"
+#include "MagickCore/resource_.h"
+#include "MagickCore/string_.h"
+#include "MagickCore/utility.h"
+
+#if defined(MAGICKCORE_LIBZIP_DELEGATE)
+#include <zip.h>
+#endif
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% %
+% %
+% R e a d O R A I m a g e %
+% %
+% %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ReadORAImage reads an ORA file in the most basic way possible: by
+% reading it as a ZIP File and extracting the mergedimage.png file
+% from it (see https://www.freedesktop.org/wiki/Specifications/OpenRaster/Draft/FileLayout/)
+% it, which is then passed to ReadPNGImage.
+%
+% The format of the ReadORAImage method is:
+%
+% Image *ReadORAImage(const ImageInfo *image_info,ExceptionInfo *exception)
+%
+% A description of each parameter follows:
+%
+% o image_info: the image info.
+%
+% o exception: return any errors or warnings in this structure.
+%
+*/
+
+#if defined(__cplusplus) || defined(c_plusplus)
+extern "C" {
+#endif
+
+#if defined(__cplusplus) || defined(c_plusplus)
+}
+#endif
+
+#if defined(MAGICKCORE_PNG_DELEGATE)
+#if defined(MAGICKCORE_LIBZIP_DELEGATE)
+static Image *ReadORAImage(const ImageInfo *image_info,ExceptionInfo *exception)
+{
+#define MaxBufferExtent 8192
+
+ char
+ image_data_buffer[MaxBufferExtent];
+
+ const char
+ *MERGED_IMAGE_PATH = "mergedimage.png";
+
+ FILE
+ *file;
+
+ Image
+ *image_metadata,
+ *out_image;
+
+ ImageInfo
+ *read_info;
+
+ int
+ unique_file;
+
+ zip_t
+ *zip_archive;
+
+ zip_file_t
+ *merged_image_file;
+
+ zip_uint64_t
+ read_bytes,
+ offset;
+
+ int zipError;
+
+ struct stat stat_info;
+
+ image_metadata=AcquireImage(image_info,exception);
+ read_info=CloneImageInfo(image_info);
+ SetImageInfoBlob(read_info,(void *) NULL,0);
+
+ stat(image_info->filename, &stat_info);
+
+ zip_archive = zip_open(image_info->filename, ZIP_RDONLY, &zipError);
+ if (zip_archive == NULL) {
+ ThrowFileException(exception,FileOpenError,"UnableToOpenFile",
+ image_info->filename);
+ read_info=DestroyImageInfo(read_info);
+ image_metadata=DestroyImage(image_metadata);
+ return((Image *) NULL);
+ }
+
+ merged_image_file = zip_fopen(zip_archive, MERGED_IMAGE_PATH, ZIP_FL_UNCHANGED);
+ if (merged_image_file == NULL) {
+ ThrowFileException(exception,FileOpenError,"UnableToOpenFile",
+ image_info->filename);
+ read_info=DestroyImageInfo(read_info);
+ image_metadata=DestroyImage(image_metadata);
+ zip_discard(zip_archive);
+ return((Image *) NULL);
+ }
+
+ /* Get a temporary file to write the mergedimage.png of the ZIP to */
+ (void) CopyMagickString(read_info->magick, "PNG", MagickPathExtent);
+ unique_file = AcquireUniqueFileResource(read_info->unique);
+ (void) CopyMagickString(read_info->filename, read_info->unique,
+ MagickPathExtent);
+
+ if (unique_file != -1)
+ file=fdopen(unique_file,"wb");
+ if ((unique_file == -1) || (file == (FILE *) NULL))
+ {
+ ThrowFileException(exception,FileOpenError,"UnableToCreateTemporaryFile",
+ read_info->filename);
+ read_info=DestroyImageInfo(read_info);
+ image_metadata=DestroyImage(image_metadata);
+ zip_fclose(merged_image_file);
+ zip_discard(zip_archive);
+ return((Image *) NULL);
+ }
+
+ /* Write the uncompressed mergedimage.png to the temporary file */
+ offset = 0;
+ do
+ {
+ read_bytes = zip_fread(merged_image_file, image_data_buffer + offset, MaxBufferExtent - offset);
+ if (read_bytes == -1) {
+ ThrowFileException(exception,FileOpenError,"UnableToCreateTemporaryFile",
+ read_info->filename);
+ fclose(file);
+ RelinquishUniqueFileResource(read_info->filename);
+ read_info=DestroyImageInfo(read_info);
+ image_metadata=DestroyImage(image_metadata);
+ zip_fclose(merged_image_file);
+ zip_discard(zip_archive);
+ zip_fclose(merged_image_file);
+ return((Image *) NULL);
+ }
+ if (read_bytes == 0) {
+ /* Write up to offset of image_data_buffer to temp file */
+ if (!fwrite(image_data_buffer,offset,1,file)) {
+ ThrowFileException(exception,FileOpenError,"UnableToCreateTemporaryFile",
+ read_info->filename);
+ fclose(file);
+ RelinquishUniqueFileResource(read_info->filename);
+ read_info=DestroyImageInfo(read_info);
+ image_metadata=DestroyImage(image_metadata);
+ zip_fclose(merged_image_file);
+ zip_discard(zip_archive);
+ zip_fclose(merged_image_file);
+ return((Image *) NULL);
+ }
+ }
+ else if (read_bytes == MaxBufferExtent - offset) {
+ /* Write the entirely of image_data_buffer to temp file */
+ if (!fwrite(image_data_buffer,MaxBufferExtent,1,file)) {
+ ThrowFileException(exception,FileOpenError,"UnableToCreateTemporaryFile",
+ read_info->filename);
+ fclose(file);
+ RelinquishUniqueFileResource(read_info->filename);
+ read_info=DestroyImageInfo(read_info);
+ image_metadata=DestroyImage(image_metadata);
+ zip_fclose(merged_image_file);
+ zip_discard(zip_archive);
+ zip_fclose(merged_image_file);
+ return((Image *) NULL);
+ }
+ offset = 0;
+ }
+ else {
+ offset += read_bytes;
+ }
+ }
+ while (read_bytes > 0);
+
+ zip_fclose(merged_image_file);
+ zip_discard(zip_archive);
+ fclose(file);
+
+ /* delegate to ReadImage to read mergedimage.png */
+ out_image = ReadImage(read_info, exception);
+ RelinquishUniqueFileResource(read_info->filename);
+ read_info=DestroyImageInfo(read_info);
+
+ /* Update fields of image from fields of png_image */
+ if (image_metadata != NULL && out_image != NULL) {
+ (void) CopyMagickString(out_image->filename, image_metadata->filename,
+ MagickPathExtent);
+ (void) CopyMagickString(out_image->magick_filename,
+ image_metadata->magick_filename, MagickPathExtent);
+ out_image->timestamp = time(&stat_info.st_mtime);
+ (void) CopyMagickString(out_image->magick, image_metadata->magick,
+ MagickPathExtent);
+ out_image->extent = stat_info.st_size;
+ DestroyImage(image_metadata);
+ }
+ return out_image;
+}
+#endif /* #if defined(MAGICKCORE_LIBZIP_DELEGATE) */
+#endif /* defined(MAGICKCORE_PNG_DELEGATE) */
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% %
+% %
+% R e g i s t e r O R A I m a g e %
+% %
+% %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% RegisterORAImage() adds attributes for the ORA image format to
+% the list of supported formats. The attributes include the image format
+% tag, a method to read and/or write the format, whether the format
+% supports the saving of more than one frame to the same file or blob,
+% whether the format supports native in-memory I/O, and a brief
+% description of the format.
+%
+% The format of the RegisterORAImage method is:
+%
+% size_t RegisterORAImage(void)
+%
+*/
+ModuleExport size_t RegisterORAImage(void)
+{
+ MagickInfo
+ *entry;
+
+ entry=AcquireMagickInfo("ORA","ORA","OpenRaster format");
+
+#if defined(MAGICKCORE_PNG_DELEGATE)
+#if defined(MAGICKCORE_LIBZIP_DELEGATE)
+ entry->decoder=(DecodeImageHandler *) ReadORAImage;
+#endif
+#endif
+
+ entry->format_type=ExplicitFormatType;
+ (void) RegisterMagickInfo(entry);
+ return(MagickImageCoderSignature);
+}
+
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% %
+% %
+% U n r e g i s t e r O R A I m a g e %
+% %
+% %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% UnregisterORAImage() removes format registrations made by the
+% ORA module from the list of supported formats.
+%
+% The format of the UnregisterORAImage method is:
+%
+% UnregisterORAImage(void)
+%
+*/
+ModuleExport void UnregisterORAImage(void)
+{
+ (void) UnregisterMagickInfo("ORA");
+}
diff --git a/coders/ora.h b/coders/ora.h
new file mode 100644
index 0000000..21eeb8b
--- /dev/null
+++ b/coders/ora.h
@@ -0,0 +1,29 @@
+/*
+ Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+ dedicated to making software imaging solutions freely available.
+
+ You may not use this file except in compliance with the License. You may
+ obtain a copy of the License at
+
+ https://imagemagick.org/script/license.php
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+#include "coders/coders-private.h"
+#define MagickORAHeaders
+
+#define MagickORAAliases
+
+#if defined(__cplusplus) || defined(c_plusplus)
+extern "C" {
+#endif
+
+MagickCoderExports(ORA)
+
+#if defined(__cplusplus) || defined(c_plusplus)
+}
+#endif
diff --git a/config/config.h.in b/config/config.h.in
index fc60343..f83deda 100644
--- a/config/config.h.in
+++ b/config/config.h.in
@@ -12,6 +12,9 @@
/* Define if you have the bzip2 library */
#undef BZLIB_DELEGATE
+/* Define if you have the libzip library */
+#undef LIBZIP_DELEGATE
+
/* Define if you have CAIRO library */
#undef CAIRO_DELEGATE
diff --git a/configure b/configure
index e43ec4e..2f58d5e 100755
--- a/configure
+++ b/configure
@@ -882,6 +882,10 @@
ZSTD_DELEGATE_TRUE
LIBZSTD_LIBS
LIBZSTD_CFLAGS
+LIBZIP_DELEGATE_FALSE
+LIBZIP_DELEGATE_TRUE
+LIBZIP_LIBS
+LIBZIP_CFLAGS
ZLIB_DELEGATE_FALSE
ZLIB_DELEGATE_TRUE
ZLIB_LIBS
@@ -1205,6 +1209,7 @@
with_bzlib
with_x
with_zlib
+with_libzip
with_zstd
with_apple_font_dir
with_autotrace
@@ -1262,6 +1267,8 @@
XMKMF
ZLIB_CFLAGS
ZLIB_LIBS
+LIBZIP_CFLAGS
+LIBZIP_LIBS
LIBZSTD_CFLAGS
LIBZSTD_LIBS
AUTOTRACE_CFLAGS
@@ -2019,6 +2026,7 @@
--without-bzlib disable BZLIB support
--with-x use the X Window System
--without-zlib disable ZLIB support
+ --without-libzip disable libzip support
--without-zstd disable ZSTD support
--with-apple-font-dir=DIR
Apple font directory
@@ -2081,6 +2089,9 @@
XMKMF Path to xmkmf, Makefile generator for X Window System
ZLIB_CFLAGS C compiler flags for ZLIB, overriding pkg-config
ZLIB_LIBS linker flags for ZLIB, overriding pkg-config
+ LIBZIP_CFLAGS
+ C compiler flags for LIBZIP, overriding pkg-config
+ LIBZIP_LIBS linker flags for LIBZIP, overriding pkg-config
LIBZSTD_CFLAGS
C compiler flags for LIBZSTD, overriding pkg-config
LIBZSTD_LIBS
@@ -4566,7 +4577,7 @@
MAGICK_VERSION=7.0.10-26
-MAGICK_GIT_REVISION=17501:3f353426f:20200801
+MAGICK_GIT_REVISION=17505:9b7bef169:20200801
# Substitute library versioning
@@ -22784,7 +22795,7 @@
# Enable build using delegate libraries built in subdirectories rather than installed
-# delegate libraries (bzlib fftw fpx gslib jp2 jbig jpeg lcms lzma png tiff ttf wmf xml zlib)
+# delegate libraries (bzlib fftw fpx gslib jp2 jbig jpeg lcms lzma png tiff ttf wmf xml zlib zip)
# Check whether --enable-delegate-build was given.
if test "${enable_delegate_build+set}" = set; then :
enableval=$enable_delegate_build; enable_delegate_build=$enableval
@@ -27066,7 +27077,7 @@
# Most delegates have includes in the same directory as the library, but not all...
#
# Includes
- for dir in bzlib fftw fpx gslib/src jp2 jbig/libjbig jpeg lcms/include lzma magick openjp2/include png tiff/libtiff ttf/include wand webp/src wmf/include xml/include zlib; do
+ for dir in zip bzlib fftw fpx gslib/src jp2 jbig/libjbig jpeg lcms/include lzma magick openjp2/include png tiff/libtiff ttf/include wand webp/src wmf/include xml/include zlib; do
if test -d "$builddir/$dir"; then
CPPFLAGS="$CPPFLAGS -I$builddir/$dir"
else
@@ -27077,7 +27088,7 @@
done
# Libraries
- for dir in bzlib fftw fpx gslib/src jbig/libjbig jpeg lcms/src lzma magick openjp2 png tiff/libtiff ttf/objs wand webp wmf/src xml zlib; do
+ for dir in zip bzlib fftw fpx gslib/src jbig/libjbig jpeg lcms/src lzma magick openjp2 png tiff/libtiff ttf/objs wand webp wmf/src xml zlib; do
if test -d "$builddir/$dir/.libs"; then
LDFLAGS="$LDFLAGS -L$builddir/$dir/.libs"
else
@@ -29043,6 +29054,125 @@
#
+# Check for libzip
+#
+
+# Check whether --with-libzip was given.
+if test "${with_libzip+set}" = set; then :
+ withval=$with_libzip; with_libzip=$withval
+else
+ with_libzip='yes'
+fi
+
+
+if test "$with_libzip" != 'yes'; then
+ DISTCHECK_CONFIG_FLAGS="${DISTCHECK_CONFIG_FLAGS} --with-libzip=$with_libzip "
+fi
+
+have_libzip='no'
+LIBZIP_CFLAGS=""
+LIBZIP_LIBS=""
+LIBZIP_PKG=""
+if test "x$with_libzip" = "xyes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: -------------------------------------------------------------" >&5
+$as_echo "-------------------------------------------------------------" >&6; }
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libzip >= 1.0.0" >&5
+$as_echo_n "checking for libzip >= 1.0.0... " >&6; }
+
+if test -n "$LIBZIP_CFLAGS"; then
+ pkg_cv_LIBZIP_CFLAGS="$LIBZIP_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libzip >= 1.0.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "libzip >= 1.0.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_LIBZIP_CFLAGS=`$PKG_CONFIG --cflags "libzip >= 1.0.0" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$LIBZIP_LIBS"; then
+ pkg_cv_LIBZIP_LIBS="$LIBZIP_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libzip >= 1.0.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "libzip >= 1.0.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_LIBZIP_LIBS=`$PKG_CONFIG --libs "libzip >= 1.0.0" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ LIBZIP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libzip >= 1.0.0" 2>&1`
+ else
+ LIBZIP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libzip >= 1.0.0" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$LIBZIP_PKG_ERRORS" >&5
+
+ have_libzip=no
+elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ have_libzip=no
+else
+ LIBZIP_CFLAGS=$pkg_cv_LIBZIP_CFLAGS
+ LIBZIP_LIBS=$pkg_cv_LIBZIP_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ have_libzip=yes
+fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
+$as_echo "" >&6; }
+fi
+
+if test "$have_libzip" = 'yes'; then
+
+$as_echo "#define LIBZIP_DELEGATE 1" >>confdefs.h
+
+ CFLAGS="$LIBZIP_CFLAGS $CFLAGS"
+ LIBS="$LIBZIP_LIBS $LIBS"
+fi
+
+ if test "$have_libzip" = 'yes'; then
+ LIBZIP_DELEGATE_TRUE=
+ LIBZIP_DELEGATE_FALSE='#'
+else
+ LIBZIP_DELEGATE_TRUE='#'
+ LIBZIP_DELEGATE_FALSE=
+fi
+
+
+
+
+
+
+#
# Check for ZSTD
#
@@ -36414,6 +36544,9 @@
if test "$have_xml" = 'yes' ; then
MAGICK_DELEGATES="$MAGICK_DELEGATES xml"
fi
+if test "$have_libzip" = 'yes' ; then
+ MAGICK_DELEGATES="$MAGICK_DELEGATES libzip"
+fi
if test "$have_zlib" = 'yes' ; then
MAGICK_DELEGATES="$MAGICK_DELEGATES zlib"
fi
@@ -36557,9 +36690,9 @@
#
if test "$build_modules" != 'no'; then
- MAGICK_DEP_LIBS="$USER_LIBS $LCMS_LIBS $FREETYPE_LIBS $RAQM_LIBS $LQR_LIBS $FFTW_LIBS $XML_LIBS $FLIF_LIBS $FONTCONFIG_LIBS $XEXT_LIBS $IPC_LIBS $X11_LIBS $XT_LIBS $LZMA_LIBS $BZLIB_LIBS $ZLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $WS2_32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
+ MAGICK_DEP_LIBS="$USER_LIBS $LCMS_LIBS $FREETYPE_LIBS $RAQM_LIBS $LQR_LIBS $FFTW_LIBS $XML_LIBS $FLIF_LIBS $FONTCONFIG_LIBS $XEXT_LIBS $IPC_LIBS $X11_LIBS $XT_LIBS $LZMA_LIBS $BZLIB_LIBS $LIBZIP_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $WS2_32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
else
- MAGICK_DEP_LIBS="$USER_LIBS $JBIG_LIBS $LCMS_LIBS $TIFF_LIBS $FREETYPE_LIBS $RAQM_LIBS $JPEG_LIBS $JXL_LIBS $GS_LIBS $LQR_LIBS $PNG_LIBS $AUTOTRACE_LIBS $DJVU_LIBS $FFTW_LIBS $FLIF_LIBS $FPX_LIBS $FONTCONFIG_LIBS $HEIF_LIBS $WEBPMUX_LIBS $WEBP_LIBS $WMF_LIBS $DPS_LIBS $XEXT_LIBS $XT_LIBS $IPC_LIBS $X11_LIBS $LZMA_LIBS $BZLIB_LIBS $OPENEXR_LIBS $LIBOPENJP2_LIBS $PANGO_LIBS $RAW_R_LIBS $RSVG_LIBS $XML_LIBS $GVC_LIBS $ZLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $WS2_32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
+ MAGICK_DEP_LIBS="$USER_LIBS $JBIG_LIBS $LCMS_LIBS $TIFF_LIBS $FREETYPE_LIBS $RAQM_LIBS $JPEG_LIBS $JXL_LIBS $GS_LIBS $LQR_LIBS $PNG_LIBS $AUTOTRACE_LIBS $DJVU_LIBS $FFTW_LIBS $FLIF_LIBS $FPX_LIBS $FONTCONFIG_LIBS $HEIF_LIBS $WEBPMUX_LIBS $WEBP_LIBS $WMF_LIBS $DPS_LIBS $XEXT_LIBS $XT_LIBS $IPC_LIBS $X11_LIBS $LZMA_LIBS $BZLIB_LIBS $OPENEXR_LIBS $LIBOPENJP2_LIBS $PANGO_LIBS $RAW_R_LIBS $RSVG_LIBS $XML_LIBS $GVC_LIBS $ZLIB_LIBS $LIBZIP_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $WS2_32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
fi
MAGICK_EXTRA_DEP_LIBS="$GOMP_LIBS"
@@ -36861,6 +36994,10 @@
as_fn_error $? "conditional \"ZLIB_DELEGATE\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${LIBZIP_DELEGATE_TRUE}" && test -z "${LIBZIP_DELEGATE_FALSE}"; then
+ as_fn_error $? "conditional \"LIBZIP_DELEGATE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${ZSTD_DELEGATE_TRUE}" && test -z "${ZSTD_DELEGATE_FALSE}"; then
as_fn_error $? "conditional \"ZSTD_DELEGATE\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -39629,7 +39766,7 @@
HEIC --with-heic=$with_heic $have_heic
JBIG --with-jbig=$with_jbig $have_jbig
JPEG v1 --with-jpeg=$with_jpeg $have_jpeg
- JPEG XL --with-jxl=$with_jxl $have_jxl
+ JPEG XL --with-jxl=$with_jxl $have_jxl
LCMS --with-lcms=$with_lcms $have_lcms
LQR --with-lqr=$with_lqr $have_lqr
LTDL --with-ltdl=$with_ltdl $have_ltdl
@@ -39649,6 +39786,7 @@
X11 --with-x=$with_x $have_x
XML --with-xml=$with_xml $have_xml
ZLIB --with-zlib=$with_zlib $have_zlib
+ LIBZIP --with-libzip=$with_libzip $have_libzip
ZSTD --with-zstd=$with_zstd $have_zstd
Delegate program configuration:
@@ -39727,7 +39865,7 @@
HEIC --with-heic=$with_heic $have_heic
JBIG --with-jbig=$with_jbig $have_jbig
JPEG v1 --with-jpeg=$with_jpeg $have_jpeg
- JPEG XL --with-jxl=$with_jxl $have_jxl
+ JPEG XL --with-jxl=$with_jxl $have_jxl
LCMS --with-lcms=$with_lcms $have_lcms
LQR --with-lqr=$with_lqr $have_lqr
LTDL --with-ltdl=$with_ltdl $have_ltdl
@@ -39747,6 +39885,7 @@
X11 --with-x=$with_x $have_x
XML --with-xml=$with_xml $have_xml
ZLIB --with-zlib=$with_zlib $have_zlib
+ LIBZIP --with-libzip=$with_libzip $have_libzip
ZSTD --with-zstd=$with_zstd $have_zstd
Delegate program configuration:
diff --git a/configure.ac b/configure.ac
index 88c31a9..f3023b6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -615,7 +615,7 @@
AM_CONDITIONAL(WITH_MODULES, test "$build_modules" != 'no')
# Enable build using delegate libraries built in subdirectories rather than installed
-# delegate libraries (bzlib fftw fpx gslib jp2 jbig jpeg lcms lzma png tiff ttf wmf xml zlib)
+# delegate libraries (bzlib fftw fpx gslib jp2 jbig jpeg lcms lzma png tiff ttf wmf xml zlib zip)
AC_ARG_ENABLE([delegate-build],
[AC_HELP_STRING([--enable-delegate-build],
[look for delegate libraries in build directory])],
@@ -1174,7 +1174,7 @@
# Most delegates have includes in the same directory as the library, but not all...
#
# Includes
- for dir in bzlib fftw fpx gslib/src jp2 jbig/libjbig jpeg lcms/include lzma magick openjp2/include png tiff/libtiff ttf/include wand webp/src wmf/include xml/include zlib; do
+ for dir in zip bzlib fftw fpx gslib/src jp2 jbig/libjbig jpeg lcms/include lzma magick openjp2/include png tiff/libtiff ttf/include wand webp/src wmf/include xml/include zlib; do
if test -d "$builddir/$dir"; then
CPPFLAGS="$CPPFLAGS -I$builddir/$dir"
else
@@ -1185,7 +1185,7 @@
done
# Libraries
- for dir in bzlib fftw fpx gslib/src jbig/libjbig jpeg lcms/src lzma magick openjp2 png tiff/libtiff ttf/objs wand webp wmf/src xml zlib; do
+ for dir in zip bzlib fftw fpx gslib/src jbig/libjbig jpeg lcms/src lzma magick openjp2 png tiff/libtiff ttf/objs wand webp wmf/src xml zlib; do
if test -d "$builddir/$dir/.libs"; then
LDFLAGS="$LDFLAGS -L$builddir/$dir/.libs"
else
@@ -1578,6 +1578,42 @@
dnl ===========================================================================
#
+# Check for libzip
+#
+AC_ARG_WITH([libzip],
+ [AC_HELP_STRING([--without-libzip],
+ [disable libzip support])],
+ [with_libzip=$withval],
+ [with_libzip='yes'])
+
+if test "$with_libzip" != 'yes'; then
+ DISTCHECK_CONFIG_FLAGS="${DISTCHECK_CONFIG_FLAGS} --with-libzip=$with_libzip "
+fi
+
+have_libzip='no'
+LIBZIP_CFLAGS=""
+LIBZIP_LIBS=""
+LIBZIP_PKG=""
+if test "x$with_libzip" = "xyes"; then
+ AC_MSG_RESULT([-------------------------------------------------------------])
+ PKG_CHECK_MODULES(LIBZIP,[libzip >= 1.0.0], have_libzip=yes, have_libzip=no)
+ AC_MSG_RESULT([])
+fi
+
+if test "$have_libzip" = 'yes'; then
+ AC_DEFINE(LIBZIP_DELEGATE,1,Define if you have libzip library)
+ CFLAGS="$LIBZIP_CFLAGS $CFLAGS"
+ LIBS="$LIBZIP_LIBS $LIBS"
+fi
+
+AM_CONDITIONAL(LIBZIP_DELEGATE, test "$have_libzip" = 'yes')
+AC_SUBST(LIBZIP_CFLAGS)
+AC_SUBST(LIBZIP_LIBS)
+
+
+dnl ===========================================================================
+
+#
# Check for ZSTD
#
AC_ARG_WITH([zstd],
@@ -3817,6 +3853,9 @@
if test "$have_xml" = 'yes' ; then
MAGICK_DELEGATES="$MAGICK_DELEGATES xml"
fi
+if test "$have_libzip" = 'yes' ; then
+ MAGICK_DELEGATES="$MAGICK_DELEGATES libzip"
+fi
if test "$have_zlib" = 'yes' ; then
MAGICK_DELEGATES="$MAGICK_DELEGATES zlib"
fi
@@ -3872,9 +3911,9 @@
#
if test "$build_modules" != 'no'; then
- MAGICK_DEP_LIBS="$USER_LIBS $LCMS_LIBS $FREETYPE_LIBS $RAQM_LIBS $LQR_LIBS $FFTW_LIBS $XML_LIBS $FLIF_LIBS $FONTCONFIG_LIBS $XEXT_LIBS $IPC_LIBS $X11_LIBS $XT_LIBS $LZMA_LIBS $BZLIB_LIBS $ZLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $WS2_32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
+ MAGICK_DEP_LIBS="$USER_LIBS $LCMS_LIBS $FREETYPE_LIBS $RAQM_LIBS $LQR_LIBS $FFTW_LIBS $XML_LIBS $FLIF_LIBS $FONTCONFIG_LIBS $XEXT_LIBS $IPC_LIBS $X11_LIBS $XT_LIBS $LZMA_LIBS $BZLIB_LIBS $LIBZIP_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $WS2_32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
else
- MAGICK_DEP_LIBS="$USER_LIBS $JBIG_LIBS $LCMS_LIBS $TIFF_LIBS $FREETYPE_LIBS $RAQM_LIBS $JPEG_LIBS $JXL_LIBS $GS_LIBS $LQR_LIBS $PNG_LIBS $AUTOTRACE_LIBS $DJVU_LIBS $FFTW_LIBS $FLIF_LIBS $FPX_LIBS $FONTCONFIG_LIBS $HEIF_LIBS $WEBPMUX_LIBS $WEBP_LIBS $WMF_LIBS $DPS_LIBS $XEXT_LIBS $XT_LIBS $IPC_LIBS $X11_LIBS $LZMA_LIBS $BZLIB_LIBS $OPENEXR_LIBS $LIBOPENJP2_LIBS $PANGO_LIBS $RAW_R_LIBS $RSVG_LIBS $XML_LIBS $GVC_LIBS $ZLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $WS2_32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
+ MAGICK_DEP_LIBS="$USER_LIBS $JBIG_LIBS $LCMS_LIBS $TIFF_LIBS $FREETYPE_LIBS $RAQM_LIBS $JPEG_LIBS $JXL_LIBS $GS_LIBS $LQR_LIBS $PNG_LIBS $AUTOTRACE_LIBS $DJVU_LIBS $FFTW_LIBS $FLIF_LIBS $FPX_LIBS $FONTCONFIG_LIBS $HEIF_LIBS $WEBPMUX_LIBS $WEBP_LIBS $WMF_LIBS $DPS_LIBS $XEXT_LIBS $XT_LIBS $IPC_LIBS $X11_LIBS $LZMA_LIBS $BZLIB_LIBS $OPENEXR_LIBS $LIBOPENJP2_LIBS $PANGO_LIBS $RAW_R_LIBS $RSVG_LIBS $XML_LIBS $GVC_LIBS $ZLIB_LIBS $LIBZIP_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $WS2_32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
fi
MAGICK_EXTRA_DEP_LIBS="$GOMP_LIBS"
AC_SUBST(MAGICK_DEP_LIBS)
@@ -4033,7 +4072,7 @@
HEIC --with-heic=$with_heic $have_heic
JBIG --with-jbig=$with_jbig $have_jbig
JPEG v1 --with-jpeg=$with_jpeg $have_jpeg
- JPEG XL --with-jxl=$with_jxl $have_jxl
+ JPEG XL --with-jxl=$with_jxl $have_jxl
LCMS --with-lcms=$with_lcms $have_lcms
LQR --with-lqr=$with_lqr $have_lqr
LTDL --with-ltdl=$with_ltdl $have_ltdl
@@ -4053,6 +4092,7 @@
X11 --with-x=$with_x $have_x
XML --with-xml=$with_xml $have_xml
ZLIB --with-zlib=$with_zlib $have_zlib
+ LIBZIP --with-libzip=$with_libzip $have_libzip
ZSTD --with-zstd=$with_zstd $have_zstd
Delegate program configuration: