unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* How do I make windows emacs display PNG and JPEG images?
@ 2014-12-29  7:54 Steinar Bang
  2014-12-29 15:58 ` Eli Zaretskii
  0 siblings, 1 reply; 6+ messages in thread
From: Steinar Bang @ 2014-12-29  7:54 UTC (permalink / raw)
  To: help-gnu-emacs

 Windows 8 Home Edition 64bit
 GNU Emacs 24.3.1 (i386-mingw-nt6.2.9200) of 2013-03-17 on MARVIN
 From ezwinports[1]:
  jpeg-v9a-w32-bin.zip
  libpng-1.6.12-w32-bin.zip

I have downloaded the jpeg and libpng zip files from ezwinports[1] and
unpacked them and put the following .dll files in the emacs bin
directory:
 libpng16-16.dll (dated: 2014-06-21)
 zlib1.dll       (dated: 2008-07-13)
 libjpeg-9.dll   (dated: 2014-06-21)

However, emacs still starts up without PNG and JPEG support.  The
following expressions both eval to nil in the scratch buffer:
 (image-type-available-p 'jpeg)
 (image-type-available-p 'png)

Is there a way to debug this further?  Do I have to copy some of the exe
files as well as the dll files?

Thanks!


- Steinar

[1] http://sourceforge.net/projects/ezwinports/files/



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: How do I make windows emacs display PNG and JPEG images?
  2014-12-29  7:54 How do I make windows emacs display PNG and JPEG images? Steinar Bang
@ 2014-12-29 15:58 ` Eli Zaretskii
  2014-12-30  7:47   ` Steinar Bang
  0 siblings, 1 reply; 6+ messages in thread
From: Eli Zaretskii @ 2014-12-29 15:58 UTC (permalink / raw)
  To: help-gnu-emacs

> From: Steinar Bang <sb@dod.no>
> Date: Mon, 29 Dec 2014 08:54:31 +0100
> 
>  Windows 8 Home Edition 64bit
>  GNU Emacs 24.3.1 (i386-mingw-nt6.2.9200) of 2013-03-17 on MARVIN
>  From ezwinports[1]:
>   jpeg-v9a-w32-bin.zip
>   libpng-1.6.12-w32-bin.zip
> 
> I have downloaded the jpeg and libpng zip files from ezwinports[1] and
> unpacked them and put the following .dll files in the emacs bin
> directory:
>  libpng16-16.dll (dated: 2014-06-21)
>  zlib1.dll       (dated: 2008-07-13)
>  libjpeg-9.dll   (dated: 2014-06-21)

You should put _all_ the files in bin/ that you find in the *.zip
files, not just select DLLs.

Also, the date of zlib1.dll looks old.

But I don't think these are the reasons for your problems.

> However, emacs still starts up without PNG and JPEG support.  The
> following expressions both eval to nil in the scratch buffer:
>  (image-type-available-p 'jpeg)
>  (image-type-available-p 'png)
> 
> Is there a way to debug this further?  Do I have to copy some of the exe
> files as well as the dll files?

What are the versions of the libraries against which the Emacs binary
was built?  Look at the values of the variables libpng-version and
libjpeg-version: do they match the versions of the DLLs you installed?
(There's some explanation of this near line 200 of w32-win.el.)



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: How do I make windows emacs display PNG and JPEG images?
  2014-12-29 15:58 ` Eli Zaretskii
@ 2014-12-30  7:47   ` Steinar Bang
  2014-12-30 15:52     ` Eli Zaretskii
  0 siblings, 1 reply; 6+ messages in thread
From: Steinar Bang @ 2014-12-30  7:47 UTC (permalink / raw)
  To: help-gnu-emacs

>>>>> Eli Zaretskii <eliz@gnu.org>:

> You should put _all_ the files in bin/ that you find in the *.zip
> files, not just select DLLs.

Ok.  I added the config files of libpng as well, but it didn't make any
difference.

Why do the .exe files need to be copied. Are the .exe files loaded and
code in them executed? Or is the DLLs' location used to find the .exe
files to execute in a separate process?

> Also, the date of zlib1.dll looks old.

Ok, hm... sorry, the date is actually 2013-09-20, the 2008-07-13 date
was for zip.exe (I looked at the wrong file in dired).

> But I don't think these are the reasons for your problems.

Ok.

> What are the versions of the libraries against which the Emacs binary
> was built?  Look at the values of the variables libpng-version and
> libjpeg-version: do they match the versions of the DLLs you installed?

libpng-version's value is 10403
No match for libjpeg-version.

Sysinternals sigcheck couldn't find any version number in the DLLs (see below)

> (There's some explanation of this near line 200 of w32-win.el.)

No w32-win.el in the lisp directory.

locate-library says:
 No library w32-win in search path
 No library w32-win.el in search path

Here are the sysinternals sigcheck results for the libpng and libjpeg
DLLs:

c:\ProgramFiles\emacs-24.3\bin>sigcheck -q -a libpng16-16.dll
c:\ProgramFiles\emacs-24.3\bin\libpng16-16.dll:
        Verified:       Unsigned
        Link date:      10:40 21.06.2014
        Publisher:      n/a
        Description:    n/a
        Product:        n/a
        Prod version:   n/a
        File version:   n/a
        MachineType:    32-bit
        Binary Version: n/a
        Original Name:  n/a
        Internal Name:  n/a
        Copyright:      n/a
        Comments:       n/a
        Entropy:        6.584

c:\ProgramFiles\emacs-24.3\bin>sigcheck -q -a libjpeg-9.dll
c:\ProgramFiles\emacs-24.3\bin\libjpeg-9.dll:
        Verified:       Unsigned
        Link date:      11:28 21.06.2014
        Publisher:      n/a
        Description:    n/a
        Product:        n/a
        Prod version:   n/a
        File version:   n/a
        MachineType:    32-bit
        Binary Version: n/a
        Original Name:  n/a
        Internal Name:  n/a
        Copyright:      n/a
        Comments:       n/a
        Entropy:        6.323



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: How do I make windows emacs display PNG and JPEG images?
  2014-12-30  7:47   ` Steinar Bang
@ 2014-12-30 15:52     ` Eli Zaretskii
  2014-12-31 11:20       ` Steinar Bang
  0 siblings, 1 reply; 6+ messages in thread
From: Eli Zaretskii @ 2014-12-30 15:52 UTC (permalink / raw)
  To: help-gnu-emacs

> From: Steinar Bang <sb@dod.no>
> Date: Tue, 30 Dec 2014 08:47:37 +0100
> 
> >>>>> Eli Zaretskii <eliz@gnu.org>:
> 
> > You should put _all_ the files in bin/ that you find in the *.zip
> > files, not just select DLLs.
> 
> Ok.  I added the config files of libpng as well, but it didn't make any
> difference.

I didn't think it will.

> Why do the .exe files need to be copied. Are the .exe files loaded and
> code in them executed? Or is the DLLs' location used to find the .exe
> files to execute in a separate process?

Neither.  And in this case, the non-DLL files in bin/ are not needed.

But in general, you are advised to unzip the entire *-bin.zip archive
and keep all of it, because some packages come with data files and
additional bits and pieces that are needed for flawless operation.

The *-bin.zip files include everything that "make install" installs,
so if you omit some files, you in effect have an incomplete
installation.  If you are familiar with the package internals and know
what you are doing, feel free to remove what you think is
unnecessary.  Otherwise, my recommendation is to keep all of it.  It
is safer.

> > What are the versions of the libraries against which the Emacs binary
> > was built?  Look at the values of the variables libpng-version and
> > libjpeg-version: do they match the versions of the DLLs you installed?
> 
> libpng-version's value is 10403
> No match for libjpeg-version.

Right, that's the problem.  You need libpng14-14.dll or libpng14.dll
for PNG, and jpeg62.dll for JPEG.  See w32-win.el for the full list.

> Sysinternals sigcheck couldn't find any version number in the DLLs (see below)

It's not recorded there, it's recorded in the name of the DLL.

> > (There's some explanation of this near line 200 of w32-win.el.)
> 
> No w32-win.el in the lisp directory.
> 
> locate-library says:
>  No library w32-win in search path
>  No library w32-win.el in search path

It's in lisp/term/, where all the *-win.el files are kept.  Or maybe
you have a compressed w32-win.el.gz there.



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: How do I make windows emacs display PNG and JPEG images?
  2014-12-30 15:52     ` Eli Zaretskii
@ 2014-12-31 11:20       ` Steinar Bang
  2014-12-31 16:27         ` Eli Zaretskii
  0 siblings, 1 reply; 6+ messages in thread
From: Steinar Bang @ 2014-12-31 11:20 UTC (permalink / raw)
  To: help-gnu-emacs

>>>>> Eli Zaretskii <eliz@gnu.org>:

>> libpng-version's value is 10403
>> No match for libjpeg-version.

> Right, that's the problem.  You need libpng14-14.dll or libpng14.dll
> for PNG, and jpeg62.dll for JPEG.  See w32-win.el for the full list.

I couldn't find old versions of the DLLs somewhere on the ezwinports
sites? (I looked for an "Old Releases" folder that sourceforge sites
sometimes have, but couldn't find it).

So what I did was to install emacs 24.4 (emacs-24.4-bin-i686-pc-mingw32)
from here:
 http://ftp.gnu.org/pub/gnu/emacs/windows/

For 24.4 from above:
 libpng-version's value is 10612
 libjpeg-version's value is 90

Then I copied in the entire bin directory contents of the unzips pf
these ezwinports packages into the emacs-24.4-bin-i686-pc-mingw32/bin
directory:
 gnutls-3.3.11-w32-bin.zipgnutls-3.3.11-w32-bin.zip
 jpeg-v9a-w32-bin.zip
 libpng-1.6.12-w32-bin.zip
 libxml2-2.7.8-w32-bin.zip

And now PNGs display fine inlined in Gnus, and JPEGs probably will as
well, when I encounter them, because:
 (image-type-available-p 'jpeg)
 (image-type-available-p 'png)
both returns t.

Thanks, Eli!

[snip!]
>>> (There's some explanation of this near line 200 of w32-win.el.)

>> No w32-win.el in the lisp directory.

>> locate-library says:
>>  No library w32-win in search path
>>  No library w32-win.el in search path

> It's in lisp/term/, where all the *-win.el files are kept.  Or maybe
> you have a compressed w32-win.el.gz there.

Found it as lisp/term/w32-win.el on 24.3 (ie. uncompressed) and as
share/emacs/24.4/lisp/term/w32-win.el (also uncompressed) on 24.4.

Thanks!



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: How do I make windows emacs display PNG and JPEG images?
  2014-12-31 11:20       ` Steinar Bang
@ 2014-12-31 16:27         ` Eli Zaretskii
  0 siblings, 0 replies; 6+ messages in thread
From: Eli Zaretskii @ 2014-12-31 16:27 UTC (permalink / raw)
  To: help-gnu-emacs

> From: Steinar Bang <sb@dod.no>
> Date: Wed, 31 Dec 2014 12:20:49 +0100
> 
> >>>>> Eli Zaretskii <eliz@gnu.org>:
> 
> >> libpng-version's value is 10403
> >> No match for libjpeg-version.
> 
> > Right, that's the problem.  You need libpng14-14.dll or libpng14.dll
> > for PNG, and jpeg62.dll for JPEG.  See w32-win.el for the full list.
> 
> I couldn't find old versions of the DLLs somewhere on the ezwinports
> sites? (I looked for an "Old Releases" folder that sourceforge sites
> sometimes have, but couldn't find it).

You did the right thing -- upgraded your Emacs instead -- but should
you need old versions in the future, you will probably find them via
the "wayback machine" site.  I find it invaluable in getting hands on
old files and pages that are no longer available anywhere.

I deliberately delete old versions from the ezwinports site to avoid
getting people into DLL hell.



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2014-12-31 16:27 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-12-29  7:54 How do I make windows emacs display PNG and JPEG images? Steinar Bang
2014-12-29 15:58 ` Eli Zaretskii
2014-12-30  7:47   ` Steinar Bang
2014-12-30 15:52     ` Eli Zaretskii
2014-12-31 11:20       ` Steinar Bang
2014-12-31 16:27         ` Eli Zaretskii

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).