unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Stephen Leake <stephen_leake@stephe-leake.org>
To: Eli Zaretskii <eliz@gnu.org>
Cc: ofv@wanadoo.es, emacs-devel@gnu.org
Subject: Re: png in emacs 25 mingw64
Date: Sat, 16 Apr 2016 15:34:16 -0500	[thread overview]
Message-ID: <867ffxjnsn.fsf_-_@stephe-leake.org> (raw)
In-Reply-To: <83lh4dbuav.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 16 Apr 2016 15:40:56 +0300")


TLDR; I usually have Cygwin in the PATH as well; it has shell tools I
can't get in Mingw (yet). It turns out that is the problem; if I run my
build of Emacs from a Mingw64 shell (no Cygwin in PATH), it can show
PNGs.

More details below.

Question; exactly which path is searched for DLLs? I have two:

PATH from the parent process

exec-path after editing in ~/.emacs

The png image is opened well after ~/.emacs is processed, so does it
look on the edited exec-path for the dll?

Or does the dll search take place during startup, in which case it is
the parent PATH (or exec-path before editing in ~/.emacs).

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Stephen Leake <stephen_leake@stephe-leake.org>
>> Cc: ofv@wanadoo.es,  emacs-devel@gnu.org
>> Date: Sat, 16 Apr 2016 07:17:25 -0500
>> 
>> Eli Zaretskii <eliz@gnu.org> writes:
>> 
>> >> From: Stephen Leake <stephen_leake@stephe-leake.org>
>> >> Date: Fri, 15 Apr 2016 16:37:33 -0500
>> >> Cc: emacs-devel@gnu.org
>> >>
>> >> One thing I'd like to fix; my build of emacs 25 does not display png
>> >> files. The binary pretest install does. I'd like to figure out the
>> >> difference.
>> >
>> > Are both binaries in the same directory?
>> 
>> My build is in c:/Projects/emacs/emacs-25-build-mingw64/src (I don't
>> install, so I can easily switch versions), with libpng16-16.dll in
>> d:/msys64/mingw54/bin in PATH.
>> 
>> The error message is "Cannot display image: (Invalid image
>> specification)". I traced thru some of the code that tries to open
>> the image; image.c init-image-library returns nil. I haven't tried
>> running under the debugger to go further.
>> 
>> config.h sets HAVE_PNG true.
>> 
>> 
>> The pretest binary is in d:/Apps/emacs-25.0.90/bin, both emacs.exe and
>> libpng16-16.dll; mingw64 is _not_ in PATH.
>> 
>> cygwin "diff" says the two dlls differ.
>
> So this is the root cause, right there: the DLLs differ.  

I don't see why that has to be the problem; the difference could be in
some date.

> Where did
> you get them?  

One from the MSYS2 distribution, the other from the pretest binary,
which may have been built with the MSYS2 distribution, but I'm not sure.


>Are both 64-bit DLLs? Are they both MinGW DLLs?

I don't know how to tell.

>> depends.exe on emacs and libpng (both builds) reports no obvious errors
>> (it seems there is always something missing on windows; I assume those
>> are optional Windows components).
>
> I didn't mean errors.  Libpng should depend on zlib DLL; 

Yes; zlib1.dll

>do you have
> it? 

Yes; in the respective distributions.

>is it good? 

I don't know how to tell. I guess I need to find some other Mingw64
program that uses it?

>is there only one zlib DLL?

In PATH for each build, yes. Although "type -a zlib1.dll" says "not
found", so it's hard to be sure.

>> The libpng comes from the msys2 package manager, so I assume it's all
>> consistent.
>
> Does it come with zlib DLL, or did you install zlib DLL separately?
> If the latter, they could be inconsistent.

Still from the package manager. Yes, the packages could be inconsistent
with each other.

>> Yes, I figured it was some obscure dll issue, which is why I have not
>> tried to track it down yet. Since the problem is not present in the
>> pretest, I figured it's a problem with my setup, not the Emacs sources,
>> so I did not report a bug.
>
> I don't understand why you (and others) use different PATH
> arrangements to run different binaries, and have multiple versions of
> support DLLs.  

If I want to use the Mingw distribution, I use that path.

If I want to use the Emacs pretest binary distribution, I use that path.

I do _not_ mix distributions.

I have no idea how the Emacs pretest was built; simply assuming it is
the same as my current Mingw installation is almost guarranteed to be
false.

That's what PATH is for.

>Isn't it clear that by doing so you create your own DLL
> hell?  

No, I'm avoiding it by not mixing distributions.

>It's much better to have just one copy of each support DLL, in
> a place that is always on PATH.

That would be nice. I can do that on Debian, that has only one package
manager, and a rigorous distribution policy.

I could do that on Windows by only using MSYS2. But then I would not be
able to use the Emacs pretest.


Hmm. I do usually have Cygwin in the PATH as well; it has shell tools I
can't get in Mingw (yet). It turns out that is the problem; if I run my
build of Emacs from a Mingw64 shell (no Cygwin in PATH), it can show
PNGs.

So your point about mixing distributions is valid; I was not being
careful enough. Most of the time it's not a problem (this is the first
problem I can remember).

-- 
-- Stephe



  reply	other threads:[~2016-04-16 20:34 UTC|newest]

Thread overview: 119+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-23 22:11 Build failure for Emacs master Angelo Graziosi
2016-02-23 23:14 ` Paul Eggert
2016-02-24  0:23   ` Angelo Graziosi
2016-02-24  3:42 ` Eli Zaretskii
2016-02-24  9:36   ` Angelo Graziosi
2016-02-24 10:20     ` Angelo Graziosi
2016-02-24 17:37       ` Eli Zaretskii
2016-02-24 22:20         ` Angelo Graziosi
2016-02-25 16:43           ` Eli Zaretskii
2016-03-04 21:50             ` Angelo Graziosi
2016-03-05  7:25               ` Eli Zaretskii
2016-03-05 13:53                 ` Angelo Graziosi
2016-03-05 20:59                 ` Angelo Graziosi
2016-03-06  3:35                   ` Eli Zaretskii
2016-03-06 16:55                     ` Eli Zaretskii
2016-03-06 22:00                       ` Angelo Graziosi
2016-03-06 17:37                     ` Andy Moreton
2016-03-06 17:54                       ` Eli Zaretskii
2016-04-12  0:36                 ` Angelo Graziosi
2016-04-12 11:36                   ` Phillip Lord
2016-04-12 20:54                     ` Angelo Graziosi
2016-04-12 22:52                       ` MS-Windows warnings (was build failure) " Paul Eggert
2016-04-12 23:36                         ` Angelo Graziosi
2016-04-13  5:49                         ` Yuri Khan
2016-04-13 15:26                         ` Eli Zaretskii
2016-04-13 18:06                           ` Paul Eggert
2016-04-13 19:16                             ` Eli Zaretskii
2016-04-19 15:46                         ` Davis Herring
2016-04-19 16:04                           ` Eli Zaretskii
2016-04-19 19:19                             ` Davis Herring
2016-04-12 15:28                   ` Build failure " Eli Zaretskii
2016-04-12 21:00                     ` Angelo Graziosi
2016-04-12 21:49                     ` Andy Moreton
2016-04-13  2:37                       ` Eli Zaretskii
2016-04-13 23:11                         ` Andy Moreton
2016-04-14  7:32                           ` Phillip Lord
2016-04-14 16:06                             ` Paul Eggert
2016-04-14 16:19                               ` Eli Zaretskii
2016-04-14 16:50                                 ` O_BINARY and emacs_open (was: Build failure for Emacs master) Paul Eggert
2016-04-15 11:08                               ` Build failure for Emacs master Phillip Lord
2016-04-15 14:40                                 ` Eli Zaretskii
2016-04-18 19:08                                   ` Phillip Lord
2016-04-18 19:33                                     ` Eli Zaretskii
2016-04-18 20:05                                       ` Phillip Lord
2016-04-18 21:10                                         ` Paul Eggert
2016-04-20  8:18                                           ` Phillip Lord
2016-04-20 15:05                                             ` Eli Zaretskii
2016-04-20 16:55                                               ` Phillip Lord
2016-04-20 17:41                                                 ` Eli Zaretskii
2016-04-20 17:59                                                 ` Andy Moreton
2016-04-21 10:46                                                   ` Phillip Lord
2016-04-14 16:35                           ` Eli Zaretskii
2016-04-14 17:06                             ` Andy Moreton
2016-04-14 17:48                               ` Eli Zaretskii
2016-04-14 18:40                                 ` Andy Moreton
2016-04-14 19:31                                   ` Eli Zaretskii
2016-04-14 20:30                                     ` Andy Moreton
2016-04-15  7:29                                       ` Eli Zaretskii
2016-04-15  8:18                                         ` Andy Moreton
2016-04-15 14:38                                           ` Eli Zaretskii
2016-04-15 15:36                                             ` Andy Moreton
2016-04-18  8:31                                             ` Angelo Graziosi
2016-04-18 18:30                                               ` Eli Zaretskii
2016-04-18 23:48                                                 ` Andy Moreton
2016-04-19  9:58                                                 ` Angelo Graziosi
2016-04-19 14:39                                                   ` Eli Zaretskii
2016-04-19 21:15                                                     ` Angelo Graziosi
2016-04-19 21:18                                                     ` Angelo Graziosi
2016-04-19 21:20                                                     ` Angelo Graziosi
2016-04-20  0:26                                                       ` Paul Eggert
2016-04-20 14:25                                                         ` Angelo Graziosi
2016-04-12 22:42                     ` Angelo Graziosi
2016-04-13 20:12                     ` Angelo Graziosi
2016-04-13 21:32                       ` Paul Eggert
2016-04-13 22:00                         ` Angelo Graziosi
2016-04-14  1:31                           ` Paul Eggert
2016-04-14  8:03                             ` Angelo Graziosi
2016-04-14 15:30                               ` Eli Zaretskii
2016-04-14 15:58                                 ` Building Emacs on MSYS2 (was: Build failure for Emacs master) Óscar Fuentes
2016-04-14 16:09                                   ` Building Emacs on MSYS2 Paul Eggert
2016-04-14 16:13                                     ` Óscar Fuentes
2016-04-14 16:21                                       ` Eli Zaretskii
2016-04-14 16:46                                         ` Óscar Fuentes
2016-04-14 17:26                                           ` Eli Zaretskii
2016-04-14 20:09                                             ` Óscar Fuentes
2016-04-15 15:03                                               ` Paul Eggert
2016-04-15 15:37                                                 ` Óscar Fuentes
2016-04-15 17:30                                                   ` Paul Eggert
2016-04-15 17:58                                                     ` Óscar Fuentes
2016-04-15 19:15                                                       ` Paul Eggert
2016-04-15 19:40                                                         ` Óscar Fuentes
2016-04-15 20:03                                                           ` Eli Zaretskii
2016-04-15 20:20                                                             ` Óscar Fuentes
2016-04-15 20:49                                                               ` Eli Zaretskii
2016-04-15 21:37                                                               ` Stephen Leake
2016-04-15 22:11                                                                 ` Óscar Fuentes
2016-04-16  6:42                                                                   ` Eli Zaretskii
2016-04-17 21:46                                                                     ` Fixing imagemagick on W32 Stephen Leake
2016-04-18  2:28                                                                       ` Eli Zaretskii
2016-04-16  6:30                                                                 ` Building Emacs on MSYS2 Eli Zaretskii
2016-04-16 12:17                                                                   ` Stephen Leake
2016-04-16 12:40                                                                     ` Eli Zaretskii
2016-04-16 20:34                                                                       ` Stephen Leake [this message]
2016-04-16 21:02                                                                         ` png in emacs 25 mingw64 Stephen Leake
2016-04-17  2:46                                                                           ` Eli Zaretskii
2016-04-17  2:45                                                                         ` Eli Zaretskii
2016-04-18 12:32                                                                 ` Building Emacs on MSYS2 Phillip Lord
2016-04-15 19:42                                                       ` Stefan Monnier
2016-04-15 20:17                                                         ` Óscar Fuentes
2016-04-15 21:22                                                           ` Stefan Monnier
2016-04-14 16:15                                   ` Building Emacs on MSYS2 (was: Build failure for Emacs master) Eli Zaretskii
2016-04-14 16:43                                     ` Building Emacs on MSYS2 Óscar Fuentes
2016-04-14 17:35                                       ` Eli Zaretskii
2016-04-14 16:36                             ` Build failure for Emacs master Angelo Graziosi
2016-04-14 16:39                               ` Paul Eggert
2016-04-14  1:38                         ` Stefan Monnier
2016-04-14  2:04                           ` John Wiegley
2016-04-14 14:41                           ` Paul Eggert
2016-02-24 17:31     ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=867ffxjnsn.fsf_-_@stephe-leake.org \
    --to=stephen_leake@stephe-leake.org \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=ofv@wanadoo.es \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

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).