This is the mail archive of the cygwin-xfree@cygwin.com mailing list for the Cygwin XFree86 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: ghostscript weirdness


On Mon, 6 Sep 2004, sven geier wrote:

> Igor Pechtchanski <pechtcha <at> cs.nyu.edu> writes:
>
> >You also need to make sure that /usr/X11R6/bin/gs gets picked up before
> >/usr/bin/gs (i.e., that /usr/X11R6/bin is in your PATH before /usr/bin --
> >which is usually done by default by /etc/profile.d/00xorg-x11-base.sh).
>
> So I finally has a little time to look at this, and there's a lot of things
> broken here apparently. In sequence:
>
> 1)
> [snip]
> IOW somewhere during startup the X11 directories get put in the path,
> then some other stuff gets prepended or such, then the order is wrong
> but the 00xorg file never does anything about this.
>
> Bug.

Quite possibly.  <http://cygwin.com/acronyms/#PTC>.

> 2)
> [snip]
>
> I start "gs" by hand and Windows throws me an alert box that the
> application cannot run because "libICE.dll" was not found. A bit of
> googling finds that this is supposedly in /usr/X11R6/bin, but a 'find
> /usr/X11R6 -name libICE\* -a - print" on my disk finds it in .../lib:
>
> [18:59] Sven [ice:X11R6/bin] > find /usr/X11R6 -name libICE\* -a -print
> /usr/X11R6/lib/libICE-6.dll.a
> /usr/X11R6/lib/libICE.dll.a

Wrong.  Niether of the above is a DLL -- they're what's called "import
libraries" that allow linking with a DLL.  The DLL may not even be named
"libICE.dll", FWIW (and isn't, in the newer package versions).

> Maybe that was changed recently?
> Bug?

I believe this is a bug in ghostscript-x11 dependencies.  The gs
executable was linked against an older version of the ICE library, back
when it was still provided under the name of libICE.dll.  The Cygwin
package search page at <http://cygwin.com/packages/> (which is where you
should have gone instead of searching your hard drive, which only works
when the package is already installed on your system) shows that
libICE.dll is in the XFree86-lib-compat package, and the ghostscript-x11
package should depend on that.  It doesn't, so the required package isn't
installed automatically.  The workaround is to install the package
yourself.

> 3)
>
> At this point I'm a little puzzled what to do next.
>
> - I include /usr/X11R6/lib in my $PATH:
>      No effect.
> - I symlink "ln -s /usr/X11R6/lib/libICE-6.dll.a /usr/X11R6/bin/libICE.dll.a":
>      No effect.

As I said above, ".dll" != ".dll.a".
Also FYI, symlinks to DLLs don't work in any case, since the Windows
dynamic loader doesn't grok Cygwin symlinks.

> - I *copy* the damn dll into /usr/X11R6/bin :
>      No effect.

It would have worked if you'd copied the actual DLL instead of the import
library.

> 4)
>
> I am now going to uninstall everything related to X and/or ghostscript
> and then reinstall from scratch. But I think something got broken there
> somewhere recently. During the transition to Xorg, maybe? Can someone
> confirm or deny that ghostscript actually works when it is part of a
> completely fresh, new, pristine cygwin install that is performed right
> now (i.e. doesn't run on some legacy files that happen to be floating
> around)?

I believe it shouldn't work on a pristine install, but since I don't use
it, I'll let someone else confirm or deny it.  I also think that once
ghostscript-x11 is made to depend on XFree86-lib-compat, it likely *will*
work on a pristine install.  You can check all the DLLs that are required
for the gs.exe in ghostscript-x11 by running "cygcheck
/usr/X11R6/bin/gs.exe".

HTH,
	Igor
-- 
				http://cs.nyu.edu/~pechtcha/
      |\      _,,,---,,_		pechtcha@cs.nyu.edu
ZZZzz /,`.-'`'    -.  ;-;;,_		igor@watson.ibm.com
     |,4-  ) )-,_. ,\ (  `'-'		Igor Pechtchanski, Ph.D.
    '---''(_/--'  `-'\_) fL	a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

"Happiness lies in being privileged to work hard for long hours in doing
whatever you think is worth doing."  -- Dr. Jubal Harshaw


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]