public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
* Re: Problem with cygwin1.dll and xfree
       [not found] <000301c226b5$6dec3d50$a701a8c0@earthlink.net>
@ 2002-07-09  6:46 ` Rasjid Wilcox
  2002-07-09 10:13   ` Charles Wilson
  0 siblings, 1 reply; 4+ messages in thread
From: Rasjid Wilcox @ 2002-07-09  6:46 UTC (permalink / raw)
  To: cygwin-xfree; +Cc: cygwin

On Tue, 9 Jul 2002 5:26 am, Dr. Wayne Keen wrote:
[Post on cygwin-xfree@cygwin.com]
> I know I have run into problems a couple of times with programs that
> have windows installers that somehow like to assume that you don't
> already have Cygwin on your machine.
>
> The first time I installed Octave, it replaced my Cygwin with some
> minimal installation it needed to support itself.
>
> Something not as severe happended when I ran an Windows installation
> program for Ruby.
>
> Eventually....I learned to just go ahead and build things myself
> within Cygwin.

<rave>

The main reason I stopped distributing the original version of my Minimal 
Cygwin-XFree86 for XDMCP only install was my gradual (and slightly belated) 
understanding of this problem.  And it was only because of discussions on the 
cygwin-xfree mailing list that I discovered this problem at all.

Personally, I think the requirement for there to be only a *single* 
cygwin1.dll needs to be *far* more strongly emphasised on the Cygwin website, 
in somewhere prominent (like on http://www.cygwin.com/index.html).

As the porting of open-source software from Linux/Unix to Windows becomes more 
common, unless things change this problem is only going to get worse.

The problem here is that many developers are going to want to distribute their 
program Windows ports via a Windows installer, not via Setup.exe.  And they 
are going to want their program to install as transparently as possible, so 
they are going to provide their own copy of the cygwin1.dll on the assumption 
that the user probably wont already have one.  This is generally true 
currently, but will become less true as time goes by.

I know that the Windows port of MySQL relies on the cygwin1.dll.  And in my 
wanderings I have seen several others (Ruby and Octave are mentioned above).  
It is no good if each program puts the cygwin1.dll in it own directory, since 
if two of the programs are running at the same time there may be problems.  
It is even worse if they all try and put it in system directory, since then 
who knows what version you will end up with.  And regardless of what happens, 
if the user either has or later installs Cygwin via Setup.exe there will be 
problems.

The only long term solution that I can think of is to make it possible 
(perhaps it already is) for the Windows installer to use an automated version 
of Setup.exe, that without any interaction from the user (unless absolutely 
necessary) will install or update (if required) the cygwin1.dll in a 
Setup.exe compatible way.

That way, if I install program A which depends on the cygwin1.dll, and then 
install program B (which has an older version of cygwin1.dll) it just leaves 
the newer version there.  If I then install program C which requires a newer 
version, the dll is then updated by the automated setup.exe.  If I then 
install Cygwin via Setup.exe, it just notices that I already have the 
cygwin1.dll and only updates it if necessary.

I think that basically what would be required would be to enable Setup.exe to 
be controlled by a config file (similar to a RedHat kickstart file), and have 
its GUI not displayed unless there was a problem and user interaction was 
required.

The other thing required is education.  Existing projects that use the 
cygwin1.dll need to be informed of the issue and encouraged (gently) to help 
do something about it.  And the information about the conflicting dll problem 
needs to be much more 'in the face' of potential cygwin1.dll users.

No doubt, ideally all cygwin based programs should be installed via Setup.exe, 
and then the problem goes away.  Realistically, that is not going to happen.  
'Ordinary' Windows users (as opposed to cygwin users) like Windows 
installers.  And when programs that use the cygwin1.dll start crashing 
randomly due to multiple cygwin1.dll copies, Joe Windows User will simply see 
an open source program failing to work, and decide that he will stay with 
closed source programs after all.  That is what concerns me the most.

Anyway, that is my 2 cents on the issue.  Perhaps this has already been 
discussed in depth before and/or is already implemented or in the process of 
being implemented, and if so my apologies if I'm wasting bandwidth.  I'm not 
subscribed to the cygwin list, only cygwin-xfree.  I'm CC'ing the cygwin 
list, since I think it is fundamentally a cygwin issue, not an Cygwin-XFree 
issue, although of course it effects anything that depends on cygwin.

</rave>

> So, one message that probably should leak out is to avoid Windows
> binaries that mention anything about Cygwin.  :-)

I would be inclined to check anything that was developed on Unix/Linux first 
and then ported to Windows, even if they fail to mention Cygwin, and even if 
it is closed source.  But perhaps I'm just paranoid.  ;-)

Rasjid.



--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

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

* Re: Problem with cygwin1.dll and xfree
  2002-07-09  6:46 ` Problem with cygwin1.dll and xfree Rasjid Wilcox
@ 2002-07-09 10:13   ` Charles Wilson
  2002-07-09 11:01     ` Charles Wilson
  2002-07-09 16:56     ` Robert Collins
  0 siblings, 2 replies; 4+ messages in thread
From: Charles Wilson @ 2002-07-09 10:13 UTC (permalink / raw)
  To: cygwin; +Cc: cygwin



Rasjid Wilcox wrote:


> That way, if I install program A which depends on the cygwin1.dll, and then 
> install program B (which has an older version of cygwin1.dll) it just leaves 
> the newer version there.  If I then install program C which requires a newer 
> version, the dll is then updated by the automated setup.exe.  If I then 
> install Cygwin via Setup.exe, it just notices that I already have the 
> cygwin1.dll and only updates it if necessary.
> 
> I think that basically what would be required would be to enable Setup.exe to 
> be controlled by a config file (similar to a RedHat kickstart file), and have 
> its GUI not displayed unless there was a problem and user interaction was 
> required.
> 
>


This is a good idea -- and the skeleton is already there.  What you need is
   1) first, command-line options that can completely control setup's 
behavior from start to finish.  Robert wrote and entirely separate 
GPL'ed option handler in OO C++ (all existing getopt/popt 
implementations are C, or C-dressed-up-as-C++).  There are even a few 
commandline options already implemented.  It just needs fleshing out

   2) Then, add the ability to read all of those options from a config 
file, including pkgs-to-install.  (This may actually already exist as 
part of Roberts GetOpt++ project)

So, help out with #1 above. <g>

--Chuck





--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

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

* Re: Problem with cygwin1.dll and xfree
  2002-07-09 10:13   ` Charles Wilson
@ 2002-07-09 11:01     ` Charles Wilson
  2002-07-09 16:56     ` Robert Collins
  1 sibling, 0 replies; 4+ messages in thread
From: Charles Wilson @ 2002-07-09 11:01 UTC (permalink / raw)
  To: Rasjid Wilcox; +Cc: cygwin



Rasjid Wilcox wrote:


> That way, if I install program A which depends on the cygwin1.dll, and then 
> install program B (which has an older version of cygwin1.dll) it just leaves 
> the newer version there.  If I then install program C which requires a newer 
> version, the dll is then updated by the automated setup.exe.  If I then 
> install Cygwin via Setup.exe, it just notices that I already have the 
> cygwin1.dll and only updates it if necessary.
> 
> I think that basically what would be required would be to enable Setup.exe to 
> be controlled by a config file (similar to a RedHat kickstart file), and have 
> its GUI not displayed unless there was a problem and user interaction was 
> required.
> 
>


This is a good idea -- and the skeleton is already there.  What you need is
   1) first, command-line options that can completely control setup's 
behavior from start to finish.  Robert wrote and entirely separate 
GPL'ed option handler in OO C++ (all existing getopt/popt 
implementations are C, or C-dressed-up-as-C++).  There are even a few 
commandline options already implemented.  It just needs fleshing out

   2) Then, add the ability to read all of those options from a config 
file, including pkgs-to-install.  (This may actually already exist as 
part of Roberts GetOpt++ project)

So, help out with #1 above. <g>

--Chuck




--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

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

* Re: Problem with cygwin1.dll and xfree
  2002-07-09 10:13   ` Charles Wilson
  2002-07-09 11:01     ` Charles Wilson
@ 2002-07-09 16:56     ` Robert Collins
  1 sibling, 0 replies; 4+ messages in thread
From: Robert Collins @ 2002-07-09 16:56 UTC (permalink / raw)
  To: cygwin


"Charles Wilson" <cwilson@ece.gatech.edu> wrote in message
news:3D2B092F.1030606@ece.gatech.edu...

> > I think that basically what would be required would be to enable
Setup.exe to
> > be controlled by a config file (similar to a RedHat kickstart file), and
have
> > its GUI not displayed unless there was a problem and user interaction
was
> > required.
..
> This is a good idea -- and the skeleton is already there.  What you need
is
>    1) first, command-line options that can completely control setup's
> behavior from start to finish.  Robert wrote and entirely separate
> GPL'ed option handler in OO C++ (all existing getopt/popt
> implementations are C, or C-dressed-up-as-C++).  There are even a few
> commandline options already implemented.  It just needs fleshing out

Yup. And the majority are trivial to add. The list-of-packages-to-install
collection is the (slightly) hard one as GetOpt++ has no 'native' interface
for that at the moment. However I've implemented such a collection twice now
using GetOpt++ for other projects, and am about ready to provide a generic
interface in GetOpt++.

>    2) Then, add the ability to read all of those options from a config
> file, including pkgs-to-install.  (This may actually already exist as
> part of Roberts GetOpt++ project)

It's not a deliberate inclusion, but consider that a command collection
takes argc, argv arguments. Parse the file into strings, treating unquoted
spaces and line breaks as new strings. Place pointers to those cstrings in a
vector and it's all done.

Rob


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

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

end of thread, other threads:[~2002-07-09 23:31 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <000301c226b5$6dec3d50$a701a8c0@earthlink.net>
2002-07-09  6:46 ` Problem with cygwin1.dll and xfree Rasjid Wilcox
2002-07-09 10:13   ` Charles Wilson
2002-07-09 11:01     ` Charles Wilson
2002-07-09 16:56     ` Robert Collins

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