Opened 7 years ago

Closed 7 years ago

#53315 closed defect (fixed)

emacs @25.1: imagemagick variant doesn't work

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: drkp (Dan Ports)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez), jeremyhu (Jeremy Huddleston Sequoia)
Port: emacs, emacs-devel

Description

Despite passing --with-imagemagick, the main.log says:

:info:configure   Does Emacs use imagemagick?                             no

Attachments (3)

main.log.bz2 (173.9 KB) - added by ryandesign (Ryan Carsten Schmidt) 7 years ago.
config.log.bz2 (32.1 KB) - added by ryandesign (Ryan Carsten Schmidt) 7 years ago.
config.log.2.bz2 (38.6 KB) - added by jeremyhu (Jeremy Huddleston Sequoia) 7 years ago.
Jeremy's (working) config.log.bz2

Download all attachments as: .zip

Change History (12)

Changed 7 years ago by ryandesign (Ryan Carsten Schmidt)

Attachment: main.log.bz2 added

Changed 7 years ago by ryandesign (Ryan Carsten Schmidt)

Attachment: config.log.bz2 added

comment:1 Changed 7 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Cc: MarcusCalhoun-Lopez added

comment:2 Changed 7 years ago by jeremyhu (Jeremy Huddleston Sequoia)

It looks ok to me:

$ port installed emacs
The following ports are currently installed:
  emacs @25.1_2+gtk+imagemagick+universal+x11 (active)

$ nm -m /opt/local/bin/emacs | grep libMagick
                 (undefined) external _AcquireExceptionInfo (from libMagickCore-6.Q16)
                 (undefined) external _CloneMagickWand (from libMagickWand-6.Q16)
                 (undefined) external _DestroyExceptionInfo (from libMagickCore-6.Q16)
                 (undefined) external _DestroyMagickWand (from libMagickWand-6.Q16)
                 (undefined) external _DestroyPixelIterator (from libMagickWand-6.Q16)
                 (undefined) external _DestroyPixelWand (from libMagickWand-6.Q16)
                 (undefined) external _DestroyString (from libMagickCore-6.Q16)
                 (undefined) external _GetMagickList (from libMagickCore-6.Q16)
                 (undefined) external _MagickCropImage (from libMagickWand-6.Q16)
                 (undefined) external _MagickExportImagePixels (from libMagickWand-6.Q16)
                 (undefined) external _MagickGetException (from libMagickWand-6.Q16)
                 (undefined) external _MagickGetImage (from libMagickWand-6.Q16)
                 (undefined) external _MagickGetImageDelay (from libMagickWand-6.Q16)
                 (undefined) external _MagickGetImageDispose (from libMagickWand-6.Q16)
                 (undefined) external _MagickGetImageHeight (from libMagickWand-6.Q16)
                 (undefined) external _MagickGetImagePage (from libMagickWand-6.Q16)
                 (undefined) external _MagickGetImageSignature (from libMagickWand-6.Q16)
                 (undefined) external _MagickGetImageWidth (from libMagickWand-6.Q16)
                 (undefined) external _MagickGetNumberImages (from libMagickWand-6.Q16)
                 (undefined) external _MagickMergeImageLayers (from libMagickWand-6.Q16)
                 (undefined) external _MagickReadImage (from libMagickWand-6.Q16)
                 (undefined) external _MagickReadImageBlob (from libMagickWand-6.Q16)
                 (undefined) external _MagickRelinquishMemory (from libMagickWand-6.Q16)
                 (undefined) external _MagickRotateImage (from libMagickWand-6.Q16)
                 (undefined) external _MagickScaleImage (from libMagickWand-6.Q16)
                 (undefined) external _MagickSetFilename (from libMagickWand-6.Q16)
                 (undefined) external _MagickSetImageBackgroundColor (from libMagickWand-6.Q16)
                 (undefined) external _MagickSetIteratorIndex (from libMagickWand-6.Q16)
                 (undefined) external _MagickWandGenesis (from libMagickWand-6.Q16)
                 (undefined) external _MagickWandTerminus (from libMagickWand-6.Q16)
                 (undefined) external _NewMagickWand (from libMagickWand-6.Q16)
                 (undefined) external _NewPixelIterator (from libMagickWand-6.Q16)
                 (undefined) external _NewPixelWand (from libMagickWand-6.Q16)
                 (undefined) external _PixelGetAlpha (from libMagickWand-6.Q16)
                 (undefined) external _PixelGetMagickColor (from libMagickWand-6.Q16)
                 (undefined) external _PixelGetNextIteratorRow (from libMagickWand-6.Q16)
                 (undefined) external _PixelSetBlue (from libMagickWand-6.Q16)
                 (undefined) external _PixelSetGreen (from libMagickWand-6.Q16)
                 (undefined) external _PixelSetIteratorRow (from libMagickWand-6.Q16)
                 (undefined) external _PixelSetMagickColor (from libMagickWand-6.Q16)
                 (undefined) external _PixelSetRed (from libMagickWand-6.Q16)
                 (undefined) external _PixelSyncIterator (from libMagickWand-6.Q16)

comment:3 Changed 7 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Cc: jeremyhu added

comment:4 Changed 7 years ago by jeremyhu (Jeremy Huddleston Sequoia)

I get:

  Does Emacs use imagemagick?                             yes

Added my config.log as well.

Changed 7 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Attachment: config.log.2.bz2 added

Jeremy's (working) config.log.bz2

comment:5 Changed 7 years ago by jeremyhu (Jeremy Huddleston Sequoia)

You have:

:info:configure checking for getpagesize... yes
:info:configure checking for working mmap... yes
:info:configure checking for main in -lXbsd... no
:info:configure checking for pthread library... none needed
:info:configure checking for lgetfilecon in -lselinux... no
:info:configure checking sys/inotify.h usability... no
:info:configure checking sys/inotify.h presence... no
:info:configure checking for sys/inotify.h... no
:info:configure checking for KQUEUE... no
:info:configure checking for library containing kqueue... none required
:info:configure checking for jpeglib 6b or later... -ljpeg
:info:configure checking for library containing inflateEnd... -lz
:info:configure checking for dladdr... yes
:info:configure checking for dlfunc... no
:info:configure checking for LIBXML2... yes

The same section of configure for me is:

checking for getpagesize... yes
checking for working mmap... yes
checking for main in -lXbsd... no
checking for pthread library... none needed
checking for Xkb... yes
checking for XrmSetDatabase... yes
checking for XScreenResourceString... yes
checking for XScreenNumberOfScreen... yes
checking X11 version 6... 6 or newer
checking for RSVG... yes
checking for IMAGEMAGICK... yes
checking for MagickExportImagePixels... yes
checking for MagickMergeImageLayers... yes
checking for GTK... yes
checking whether GTK compiles... yes
configure: WARNING: Your version of Gtk+ will have problems with
       closing open displays.  This is no problem if you just use
       one display, but if you use more than one and close one of them
       Emacs may crash.
       See http://bugzilla.gnome.org/show_bug.cgi?id=85715
checking whether GTK_TYPE_FILE_SELECTION is declared... yes
checking for gtk_file_selection_new... yes
checking whether GTK_TYPE_HANDLE_BOX is declared... yes
checking for gtk_handle_box_new... yes
checking whether GTK_TYPE_TEAROFF_MENU_ITEM is declared... yes
checking for gtk_tearoff_menu_item_new... yes
checking for gtk_widget_get_window... yes
checking for gtk_widget_set_has_window... yes
checking for gtk_dialog_get_action_area... yes
checking for gtk_widget_get_sensitive... yes
checking for gtk_widget_get_mapped... yes
checking for gtk_adjustment_get_page_size... yes
checking for gtk_orientable_set_orientation... yes
checking for gtk_window_set_has_resize_grip... no
checking for GSETTINGS... yes
checking whether GSettings is in gio... yes
checking for GCONF... yes
checking for GOBJECT... yes
checking for lgetfilecon in -lselinux... no
checking sys/inotify.h usability... no
checking sys/inotify.h presence... no
checking for sys/inotify.h... no
checking for KQUEUE... no
checking for library containing kqueue... none required
checking for FONTCONFIG... yes
checking for XFT... yes
checking for XRenderQueryExtension in -lXrender... yes
checking for X11/Xft/Xft.h... yes
checking for XftFontOpen in -lXft... yes
checking for FREETYPE... yes
checking X11/Xlib-xcb.h usability... yes
checking X11/Xlib-xcb.h presence... yes
checking for X11/Xlib-xcb.h... yes
checking for xcb_translate_coordinates in -lxcb... yes
checking for XGetXCBConnection in -lX11-xcb... yes
checking X11/xpm.h usability... yes
checking X11/xpm.h presence... yes
checking for X11/xpm.h... yes
checking for XpmReadFileToPixmap in -lXpm... yes
checking for XpmReturnAllocPixels preprocessor define... yes
checking for jpeglib 6b or later... -ljpeg
checking for library containing inflateEnd... -lz
checking for dladdr... yes
checking for dlfunc... no
checking for png... yes
checking whether png_longjmp is declared... yes
checking tiffio.h usability... yes
checking tiffio.h presence... yes
checking for tiffio.h... yes
checking for TIFFGetVersion in -ltiff... yes
checking gif_lib.h usability... yes
checking gif_lib.h presence... yes
checking for gif_lib.h... yes
checking for GifMakeMapObject in -lgif... no
checking for EGifPutExtensionLast in -lgif... yes
checking X11/SM/SMlib.h usability... yes
checking X11/SM/SMlib.h presence... yes
checking for X11/SM/SMlib.h... yes
checking for SmcOpenConnection in -lSM... yes
checking for XRANDR... yes
checking for XINERAMA... yes
checking for XFIXES... yes
checking for LIBXML2... yes

I suspect that emacs imagemagick support depends on either X11 or GTK

comment:6 Changed 7 years ago by jeremyhu (Jeremy Huddleston Sequoia)

HAVE_IMAGEMAGICK=no
if test "${HAVE_X11}" = "yes" || test "${HAVE_NS}" = "yes" || test "${HAVE_W32}" = "yes"; then
  if test "${with_imagemagick}" != "no"; then
    ## 6.3.5 is the earliest version known to work; see Bug#17339.
    ## 6.8.2 makes Emacs crash; see Bug#13867.
    IMAGEMAGICK_MODULE="Wand >= 6.3.5 Wand != 6.8.2"
    EMACS_CHECK_MODULES([IMAGEMAGICK], [$IMAGEMAGICK_MODULE])
    AC_SUBST(IMAGEMAGICK_CFLAGS)
    AC_SUBST(IMAGEMAGICK_LIBS)

    if test $HAVE_IMAGEMAGICK = yes; then
      AC_DEFINE(HAVE_IMAGEMAGICK, 1, [Define to 1 if using imagemagick.])
      OLD_CFLAGS=$CFLAGS
      OLD_LIBS=$LIBS
      CFLAGS="$CFLAGS $IMAGEMAGICK_CFLAGS"
      LIBS="$IMAGEMAGICK_LIBS $LIBS"
      AC_CHECK_FUNCS(MagickExportImagePixels MagickMergeImageLayers)
      CFLAGS=$OLD_CFLAGS
      LIBS=$OLD_LIBS
    fi
  fi
fi

Yeah, --with-imagemagick requires either --with-x11 or --with-ns.

comment:7 Changed 7 years ago by ryandesign (Ryan Carsten Schmidt)

Ok, so the imagemagick variant needs to require the x11 variant in the emacs and emacs-devel subports, but not in the emacs-app and emacs-app-devel subports. Probably easiest to define the variant twice.

comment:8 Changed 7 years ago by drkp (Dan Ports)

Status: newaccepted

comment:9 Changed 7 years ago by drkp (Dan Ports)

Resolution: fixed
Status: acceptedclosed

In f43b6afe/macports-ports:

emacs: make imagemagick variant require either +x11 or emacs-app

Closes: #53315

Note: See TracTickets for help on using tickets.