public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
* RE: Multiple Cygwins/ Distributing Cygwin apps
@ 2003-11-03 10:30 kevin.lawton
  0 siblings, 0 replies; 14+ messages in thread
From: kevin.lawton @ 2003-11-03 10:30 UTC (permalink / raw)
  To: gmanenews, cygwin

Okay, John: 
Blindly cutting through all the 'philosophical arguments' and getting to the crux of the matter. 
Yes, you CAN install several different cygwins (or anything else) onto ONE machine. Techniques like this have always (AFAIK) been used in the mainframe world but, for some reason, seem to get ignored for smaller machines. 
To be a little PC-specific: 
Have more than one hard drive on your PC, or partition up your hard drive into handy chunks. There are plenty of partitioning tools around - I prefer PowerQuest's 'Partition Magic'. 
Install your op system of choice into each of the hard drives or partitions separately, hiding one partition while installing into another. 
Unhide all partitions and use a boot manager to give you a multi-boot scenario - okay, I use PowerQuest's 'Boot Magic', but there's MANY other to choose from - even Micro$oft's ! ! ! 
Now boot into one copy of your op system to install and use one version of cygwin, then re-boot into the other copy of your op system to install and use a different version of cygwin. 
Points to note: 
When performing any 'Micro$oft software updates' - like 'service packs' - hide all but the partition you are working on until after the first re-boot past the installation. The Micro$oft installer is aggressive ! 
You'll find that you can use this technique to keep one, or more, windoze partitions relatively clean and uncluttered - leading to fewer problems with windoze (like a big, messy registry). 
You don't need to have multiple windoze licenses for this technique as there is just ONE user (you), ONE machine (yours) and you can only boot and run ONE copy of windoze at a time - the other(s) being legitimate 'backup' copies. 
Of course, this technique works for op systems other than just windoze. 
Hope the above is of use to you and helps get around the problem. 
Kevin. 
   
-----Original Message-----
From: John Moore [mailto:gmanenews@tinyvital.com]
Sent: 03 November 2003 01:29
To: cygwin@cygwin.com
Subject: Multiple Cygwins/ Distributing Cygwin apps

I have done a bunch of googling and I find this subject comes up 
periodically. I have just spent many wasted hours because a vendor 
shipped a tool I have to have (customer mandate), tightly integrated 
with a cygwin that is old and has a buggy cvs. Meanwhile I am using 
another cygwin for another customer... the latest version.

For me, the inability to install two cygwins that are independent has 
already cost me a bunch of time. When I grumbled to a friend, his answer 
was "buy another machine for that application."

This is a poor answer, but I may have to. Or I'll have to find what 
magic has to be switched to instantiate one and hide the other... 
something that is mentioned in some of the email I found, but no details 
were given.

Cygwin is a great tool and it has this really neat installer so I can 
keep it up to date. But when a vendor ships a binary, that vendor must 
ship a binary Cygwin DLL, and there is no way it is going to match my 
latest version. This creates a problem.

I have seen two basic reasons stated that more than one cygwin shouldn't 
be supported:
     1) It's not an important problem
     2) Tell the vendors to always ship the latest version of cygwin, 
with the implied therat of losing market share.
     3) It's too hard or impossible to run two cygwins.

Personally, I don't buy any of these. Of course, I haven't contributed 
to this project, but over the last 35 years I have designed a lot of 
systems in a lot of OS's (or designed the OS's).

As to #1, that will become a self supporting prophecy if this situation 
continues. Either large numbers of folks will be using Cygwin, or they 
won't. Either vendors will be releasing Cygwin based products or they 
won't. If they do, and lots of people use Cygwin, it is an important 
problem. If it remains a problem, Cygwin usage will go down. After all, 
if I tell my vendor that I don't want their product because it is 
incompatible with my system, they don't care. They have lost one sale, 
but there are plenty of folks that are without Cygwin, so this is no big 
deal. If a vendor gets lots of complaints, he is going to go away from 
Cygwin. I wish my current vendor had just used Windows environment... 
then I wouldn't be facing this issue.

#2 is ridiculous, pure and simple. Vendors aren't going to spend their 
time creating and support lots of version of their software just to stay 
in sync with Cygwin. And they are going to bundle cygwin because 99% of 
their customers don't have it, and the vendor wants to create an easy 
installation for this vast majority of their customers.

#3 I don't believe either. I have heard the argument that a cygwin 
program needs to know which DLL to load and which registry entries to 
use, and that just isn't possible.

But it is actually trivial. The DLL path searched starts where the 
cygwin application starts, so that is one way to separate DLL's. A 
single environment variable can define which registry entry to use. It 
can also define the name of the shared memory segment. It could also 
name the DLL, if one wanted to go that way. Hey, that's what environment 
variables are: a way to define different environments for software.

Now I'm probably missing some big technical problems, but I'm curious 
what they are.

I would like cygwin to allow multiple versions. I can tell from google 
that others would like this too. And vendors, especially small vendors, 
can greatly reduce their development costs if they can distribute 
command line cygwin tools rather than developing windows kluges, which 
is no doubt why we are starting to see this problem.

I multiple simultaneously functioning installs are a problem, how about 
adopting a project goal that supports multiple one-at-a-time versions of 
cygwin, and put the details in a faq or a shipped script?

Finally, regardless of how all this comes out, I want to thank those who 
have created and continue to work on cygwin. It is a great thing to have 
and I use for all of my work.

Thanks

John Moore



--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

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

* Re: Multiple cygwins/ Distributing cygwin apps
  2003-11-06 23:51 ` Multiple Cygwins/ Distributing Cygwin apps John Moore
@ 2003-11-07 16:05   ` Christopher Faylor
  0 siblings, 0 replies; 14+ messages in thread
From: Christopher Faylor @ 2003-11-07 16:05 UTC (permalink / raw)
  To: cygwin

The correct solution for dealing with multiple cygwins on your system
is to remove all of the older DLLs.

If you have a distribution which distributes cygwin and that distribution
screws up an existing cygwin installation, then complain to the people
who provided the distribution.  Their installation software is broken.

To repeat:  There is no need to keep multiple versions of the cygwin
DLL on your system.

I'm closing this thread now.

On Thu, Nov 06, 2003 at 04:51:16PM -0700, John Moore wrote:
>I now have a procedure that works on my system for allowing more than 
>one cygwin to exist on the same Windows instance at the same time (but 
>not to execute at the same time).

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

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

* Re: Multiple Cygwins/ Distributing Cygwin apps
  2003-11-03  2:20 Multiple Cygwins/ Distributing Cygwin apps John Moore
                   ` (2 preceding siblings ...)
  2003-11-03 16:38 ` Christopher Faylor
@ 2003-11-06 23:51 ` John Moore
  2003-11-07 16:05   ` Multiple cygwins/ Distributing cygwin apps Christopher Faylor
  3 siblings, 1 reply; 14+ messages in thread
From: John Moore @ 2003-11-06 23:51 UTC (permalink / raw)
  To: cygwin

I now have a procedure that works on my system for allowing more than 
one cygwin to exist on the same Windows instance at the same time (but 
not to execute at the same time). I thank several on this list and who 
replied privately for help. For my needs, this solves the problem that 
started the thread. Perhaps it can help others.

I have put the full discussion here at 
http://www.tinyvital.com/techblog/archives/000330.html#more.

Also, part of it follows below (minus the nice HTML formatting):

--------------------------------------------------------------------------

NOTE: This will not allow both Cygwin environments to operate at the 
same time, but it will allow one to switch back and forth without 
rebooting the Windows OS. I am running this on Windows2000, but it 
should work on any modern Windows OS.

If you follow this procedure and have problems, please DO NOT BOTHER the 
Cygwin maintainers, as they will NOT answer your questions. Multiple 
Cygwins are outside of their current charter.


The approach is based on the following known or suspected cygwin 
characteristics:

...cygwin conflicts occur if cygwin discovers that there are more than 
one cygwin1.dll's on your machine

...Cygwin keeps its file system mount point information in the registry.

...It appears to discover duplicate cygwins if the "wrong" dll is in the 
Windows DLL path, if the "wrong" one is pointed to by a mount point, or 
if there is a cygwin shared memory segment (always present when a cygwin 
app is running). I am not sure this is exactly right, but it is 
consistent with my observations. In any case, the following procedure 
does work for me.

.................

First, perform the following steps [Standard warning. I am not 
responsible if this screws up your system, and if you are going to mess 
with the registry, you should know what you are doing. Read the whole 
procedure before starting.]:


...Remove the current cygwin installation if there is one (you may want 
to copy all or parts of the installation to another area).

...Make sure no keys exist in the registry named "cygwin" by deleting 
them and the appropriate parent if necessary - ("Cygnus Solutions."). It 
may not be necessary to mess with the registry, but I did. If it make 
you nervious, try without it. One alternative that may be sufficient is 
issuing the cygwin command "umount -A" - obviously before you delete 
your cygwin!

...Install cygwin in the normal fashion. In my case, against Cygwin 
recommendations, I install it in "C:/".

...Choose a directory for the switch scripts. Mine is c:/localbin - 
which is used for the rest of the example.

...Start a cygwin shell and issue the following command:"

              mount -m >c:/localbin/mount-std
         This will save the mount information from the registry into a 
script.

...Edit the script so that each mount command is an absolute windows 
style path to the mount binary for the non-standard cygwin mount.exe 
that will be installed in a later step. The absolute path is necessary 
or some mount commands will fail once the root mount path is changed. 
See the example scripts below.

...Exit ALL cygwin applications (and terminate the cygipc service or 
other daemon if they are running). This will make the shared memory 
segment go away.

...Issue the following command to hide the current cygwin installation 
from the new one to be installed:

              umount -A


...Install the new cygwin, but NOT with the same cygwin root directory 
as the "standard" one. I installed mine on H:/cygwin. This may or may 
not be an option on the distributed software.

...Start a shell from the new cygwin (to make the other script):

...mount -m >c:/localbin/mount-ven


...Edit the script so that each mount command is an absolute windows 
style path to the mount binary for the standard cygwin mount.exe.

----------------------------------------------------------------------

Now, if you are running in the non-standard cygwin environment, to 
switch to the standard environment:


...Stop all cygwin programs (including daemons) except one shell.

...In that shell, execute the mount-std script as follows (at least for 
my system):

       . c:/localbin/mount.std


...Exit from that shell

At this point you can run applications from the standard cygwn. BE 
CAREFUL not to run any applications from the other cygwin or things will 
get and stay screwed up until you end all running cygwin applications!

If you are running the the standard cygwin environment, and want to 
switch to the non-standard environment, do everything like the previous 
procedure, except invoke mount-ven. At that point, you can run anything 
from the non-standard environment ONLY (see caution above).



--------------------------------------------------------------------------------


My mount-std script:

mount -f -s -b "M:" "/mnt/cdrom"
mount -f -s -t "c:" "/cygdrive/c"
mount -f -s -t "d:" "/cygdrive/d"
mount -f -s -t "e:" "/cygdrive/e"
mount -f -s -t "f:" "/cygdrive/f"
mount -f -s -t "g:" "/cygdrive/g"
mount -f -s -t "h:" "/cygdrive/h"
mount -f -s -t "i:" "/cygdrive/i"
mount -f -s -t "u:" "/cygdrive/u"
mount -f -s -t "v:" "/cygdrive/v"
mount -f -s -t "w:" "/cygdrive/w"
h:/cygwin/bin/mount -f -s -b "C://bin" "/usr/bin"
h:/cygwin/bin/mount -f -s -b "C:/usr/X11R6/lib/X11/fonts" 
"/usr/X11R6/lib/X11/fonts"
h:/cygwin/bin/mount -f -s -b "C://lib" "/usr/lib"
h:/cygwin/bin/mount -f -s -b "C:" "/"
h:/cygwin/bin/mount -s -b --change-cygdrive-prefix "/cygdrive"



--------------------------------------------------------------------------------

My mount-ven script:

mount -f -s -b "M:" "/mnt/cdrom"
mount -f -s -t "c:" "/cygdrive/c"
mount -f -s -t "d:" "/cygdrive/d"
mount -f -s -t "e:" "/cygdrive/e"
mount -f -s -t "f:" "/cygdrive/f"
mount -f -s -t "g:" "/cygdrive/g"
mount -f -s -t "h:" "/cygdrive/h"
mount -f -s -t "i:" "/cygdrive/i"
mount -f -s -t "u:" "/cygdrive/u"
mount -f -s -t "v:" "/cygdrive/v"
mount -f -s -t "w:" "/cygdrive/w"
c:/bin/mount.exe -f -s -b "H:/cygwin/lib" "/usr/lib"
c:/bin/mount.exe -f -s -b "H:/cygwin" "/"
c:/bin/mount.exe -s -t --change-cygdrive-prefix "/cygdrive"
c:/bin/mount.exe -f -s -b "H:/cygwin/bin" "/usr/bin"




--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

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

* Re: Multiple cygwins/ Distributing cygwin apps
  2003-11-03 18:42       ` Multiple cygwins/ Distributing cygwin apps Christopher Faylor
@ 2003-11-03 23:41         ` Igor Pechtchanski
  0 siblings, 0 replies; 14+ messages in thread
From: Igor Pechtchanski @ 2003-11-03 23:41 UTC (permalink / raw)
  To: cygwin

On Mon, 3 Nov 2003, Christopher Faylor wrote:

> On Mon, Nov 03, 2003 at 12:24:20AM -0800, Brian Dessent wrote:
> >But seriously, you have to realize that this is a volunteer affair and
> >that the people involved could care less how some 3rd party perverts the
> >software, it's not their job.
>
> Can we get a new acronym here?  3PP?  I just embarrassed myself in a meeting
> by snorting out loud at this.
>
> cgf

Done: <http://cygwin.com/acronyms/#3PP>.
	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!

"I have since come to realize that being between your mentor and his route
to the bathroom is a major career booster."  -- Patrick Naughton

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

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

* Re: Multiple cygwins/ Distributing cygwin apps
  2003-11-03  8:24     ` Brian Dessent
@ 2003-11-03 18:42       ` Christopher Faylor
  2003-11-03 23:41         ` Igor Pechtchanski
  0 siblings, 1 reply; 14+ messages in thread
From: Christopher Faylor @ 2003-11-03 18:42 UTC (permalink / raw)
  To: cygwin

On Mon, Nov 03, 2003 at 12:24:20AM -0800, Brian Dessent wrote:
>But seriously, you have to realize that this is a volunteer affair and
>that the people involved could care less how some 3rd party perverts the
>software, it's not their job.

Can we get a new acronym here?  3PP?  I just embarrassed myself in a meeting
by snorting out loud at this.

cgf

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

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

* RE: Multiple cygwins/ Distributing cygwin apps
@ 2003-11-03 17:46 kevin.lawton
  0 siblings, 0 replies; 14+ messages in thread
From: kevin.lawton @ 2003-11-03 17:46 UTC (permalink / raw)
  To: cygwin

I think there is a point here, which often applies to those of us with end user clients to support. 
It is the client's choice as to which version of any particular software they have installed, not ours to dictate. We might advise that they move to latest versions, but they might counter that with arguments such as waiting for bugs to be fixed and security / compatibility to be fully tested and proven before they migrate.  
Some of our clients might like to keep pace with the latest developments, while others might prefer to stick with the tried and tested versions as long as possible. It's their choice. If we refuse to support anything but latest versions then we just lose out on most of our work opportunities. The fact that we have to support a software installation which contains an old version of something doesn't necessarily mean that the software is currently distributed with that same old version. It means that it is currently in use with the old version, which might have been distributed and installed some time ago. 
Meanwhile, we have to support them - which often involves building a system for ourselves which mimics theirs in behaviour, and therefore in software versions too. Some can afford to go to the lengths of dedicating a machine to each build. My preference is to dedicate one hard drive or partition to each build. Anyway, the whole point is that those of us involved in third-party support often have to cope with different versions of a piece of software at the same time. There are various ways of achieving this. I just illustrated one of them. 
Kevin.   
   
-----Original Message-----
From: Christopher Faylor
[mailto:cgf-no-personal-reply-please@cygwin.com]
Sent: 03 November 2003 16:38
To: cygwin@cygwin.com
Subject: Re: Multiple cygwins/ Distributing cygwin apps
   
On Sun, Nov 02, 2003 at 06:29:17PM -0700, John Moore wrote:
>Cygwin is a great tool and it has this really neat installer so I can 
>keep it up to date. But when a vendor ships a binary, that vendor must 
>ship a binary Cygwin DLL, and there is no way it is going to match my 
>latest version. This creates a problem.

- Please let us know the vendor who is releasing old versions of the
Cygwin DLL.  I want to make sure that it complies with the GPL.  If it
doesn't, our lawyers would like to talk to them.

- Newer versions of the cygwin DLL work with older applications.

- Newer versions of the cygwin DLL are better at finding other running
versions of the dll.

- Delete all but the newest version of the DLL and you are all set.

- If a vendor is releasing a product which doesn't work right because
there is a newer version of cygwin, complain to the vendor.  Their
installation is busted.
--
Please use the resources at cygwin.com rather than sending personal email.
Special for spam email harvesters: send email to aaaspam@sourceware.org
and be permanently blocked from mailing lists at sources.redhat.com

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

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

* Re: Multiple cygwins/ Distributing cygwin apps
  2003-11-03  2:20 Multiple Cygwins/ Distributing Cygwin apps John Moore
  2003-11-03  2:34 ` Gary R. Van Sickle
  2003-11-03  3:52 ` Brian Dessent
@ 2003-11-03 16:38 ` Christopher Faylor
  2003-11-06 23:51 ` Multiple Cygwins/ Distributing Cygwin apps John Moore
  3 siblings, 0 replies; 14+ messages in thread
From: Christopher Faylor @ 2003-11-03 16:38 UTC (permalink / raw)
  To: cygwin

On Sun, Nov 02, 2003 at 06:29:17PM -0700, John Moore wrote:
>Cygwin is a great tool and it has this really neat installer so I can 
>keep it up to date. But when a vendor ships a binary, that vendor must 
>ship a binary Cygwin DLL, and there is no way it is going to match my 
>latest version. This creates a problem.

- Please let us know the vendor who is releasing old versions of the
Cygwin DLL.  I want to make sure that it complies with the GPL.  If it
doesn't, our lawyers would like to talk to them.

- Newer versions of the cygwin DLL work with older applications.

- Newer versions of the cygwin DLL are better at finding other running
versions of the dll.

- Delete all but the newest version of the DLL and you are all set.

- If a vendor is releasing a product which doesn't work right because
there is a newer version of cygwin, complain to the vendor.  Their
installation is busted.
--
Please use the resources at cygwin.com rather than sending personal email.
Special for spam email harvesters: send email to aaaspam@sourceware.org
and be permanently blocked from mailing lists at sources.redhat.com

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

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

* Re: Multiple Cygwins/ Distributing Cygwin apps
  2003-11-03  6:27   ` John Moore
@ 2003-11-03  8:24     ` Brian Dessent
  2003-11-03 18:42       ` Multiple cygwins/ Distributing cygwin apps Christopher Faylor
  0 siblings, 1 reply; 14+ messages in thread
From: Brian Dessent @ 2003-11-03  8:24 UTC (permalink / raw)
  To: cygwin

John Moore wrote:

> I installed Cygwin #1 on C: and Cygwin #2 on H:. I'll have to try the
> mount trick as the easy way to switch them. However, I don't think it
> will work when you first install Cygwin #2, as it will detect the keys
> and complain that a Cygwin is already present!

If you unmount everything then there should be no registry keys to
detect.

> It may also be necessary to change the Windows path (again, I don't know
> if the Cygwin installer did this or the vendor did it).

'Pure' cygwin doesn't mess with your Windows path at all.  Instead,
/etc/profile prepends the Cygwin paths to your Windows path.  If both
Cygwins do it this way there should be no conflict, as this method only
sets the path for that bash session, it's not a global change.  However,
if this vendor's package adds the Cygwin paths to your Windows path then
that could be a problem, but there's nothing that says you can't just
undo that and set it in one of the bash startup files instead.

> Ran the tool manufacturer's install, telling it to put cygwin stuff on
> H. Somehow it decided that my cygwin home directory should be
> c:/documents and settings/username.

You're not tied to what the installer makes it, you know.  There are two
places where the home directory is set: in one of the startup scripts
(probably /etc/profile) where the HOME variable is set and exported, and
the appropriate field in /etc/passwd, which is only really used by a few
things.  If you change both of these you can put your home directory
whereever you please.

> Renamed the Cygwin paths in the registry to something else (put an X on
> the end).
> 
> rebooted.
> 
> Installed cygwin using the installer. It failed with a windows abort
> message about find.exe!

You probably need to unmount, not just rename the paths.  Otherwise
setup.exe will be confused.

> tried a few utilities from cygwin. Got a complaint about having 2
> cygwin1.dll's.

As always, you must ensure that there's only one cygwin1.dll in the path
at any given time, and that it's the correct one.  If you remove all
cygwin related things from the Windows path and then add the Cygwin
paths in the bash startup scripts then this should be manageable.

> Everything worked except cvs, which failed in ssh client mode (against a 
> server at the office) with a garbled message. This cvs.exe had worked 
> before. This cygwin was from a cygwin grabbed by the nifty little 
> unresizeable (grrr) utility within the last few days.

The latest setup snapshots are resizeable, BTW.

> I will check and see if the vendor included the source to the tool (I
> doubt it, btw). But good grief, I shouldn't have to recompile the damn
> thing just to use it.

> What I would love to see is a complete procedure for doing this sort
of 
> thing posted in a cygwin FAQ.

I don't think you will ever see this added to an official Cygwin FAQ
because what you're doing is unsupported as heck.  Your complaint should
be with the vendor, really.  Cygwin can hardly be responsible for a
third party making some customized environment that locks you into some
old version of the DLL.  None of the Cygwin developers are going to want
to touch this issue with a 10-foot pole.  They support the
setup.exe-blessed environment with the current packages from a
sources.redhat.com mirror... Anything else and you're either on your own
or you need to get support from the vendor.  To expect the Cygwin
developers to have any interest in debugging a 3rd party environment
over which they have no control is asking a lot -- especially since
they're such a mean bunch <g>.

But seriously, you have to realize that this is a volunteer affair and
that the people involved could care less how some 3rd party perverts the
software, it's not their job.  So, it's not surprising that there are
not instructions anywhere on how to jerryrig two Cygwins, and that doing
so is not exactly easy.  It's not meant to be.  It's not meant to be
anything, really, it's just unsupported.  Not that it's not possible,
just that it's not a configuration that the official Cygwin folks care
to deal with.

Brian

(If I've misrepresented any of the 'official' Cygwin feelings on this
matter then please correct me.)

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

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

* Re: Multiple Cygwins/ Distributing Cygwin apps
  2003-11-03  3:52 ` Brian Dessent
@ 2003-11-03  6:27   ` John Moore
  2003-11-03  8:24     ` Brian Dessent
  0 siblings, 1 reply; 14+ messages in thread
From: John Moore @ 2003-11-03  6:27 UTC (permalink / raw)
  To: cygwin

Brian Dessent wrote:

> John Moore wrote:
> 
> 
>>For me, the inability to install two cygwins that are independent has
>>already cost me a bunch of time. When I grumbled to a friend, his answer
>>was "buy another machine for that application."
> 
> 
> I have not tried this per se, but I don't see what's stopping you from
> having as many Cygwins installed as you want.  Now, I'm not saying that
> you could USE more than one at a time, due to the fact that only a
> single Cygwin1.dll can be active at any given time -- and I wouldn't
> expect this to change before the heat death of the universe.  But the
> only thing that Cygwin touches outside of its install path is the mount
> table in the registry, and this is easily removed/replaced with mount
> and umount.
How about the Windows PATH environment variable? I think it messes with 
that (if not, then the vendor software did it).
> 
> So, if I were doing this, I would install Cygwin #1 to \cygwin, then
> "mount -m > mounts.txt ; umount -A", then install Cygwin #2 to \cygwin-b
> or whatever, and so on.  To switch between them just unmount everything
> and remount the other one.
I installed Cygwin #1 on C: and Cygwin #2 on H:. I'll have to try the 
mount trick as the easy way to switch them. However, I don't think it 
will work when you first install Cygwin #2, as it will detect the keys 
and complain that a Cygwin is already present!

It may also be necessary to change the Windows path (again, I don't know 
if the Cygwin installer did this or the vendor did it).

In my case, to get my old environment to work, I did the following:

Cleaned out ALL cygwins from registry and disk.

Rebooted Win2K.

Ran the tool manufacturer's install, telling it to put cygwin stuff on 
H. Somehow it decided that my cygwin home directory should be 
c:/documents and settings/username.

Renamed the Cygwin paths in the registry to something else (put an X on 
the end).

rebooted.

Installed cygwin using the installer. It failed with a windows abort 
message about find.exe!

tried a few utilities from cygwin. Got a complaint about having 2 
cygwin1.dll's.

Cleaned out the Windows PATH setting of those cygwin-on-H drive paths.

Rebooted.

Tried the install again. Same failure.

Copied my archived copy of my C Cygwin back to C.

Everything worked except cvs, which failed in ssh client mode (against a 
server at the office) with a garbled message. This cvs.exe had worked 
before. This cygwin was from a cygwin grabbed by the nifty little 
unresizeable (grrr) utility within the last few days.

Downloaded the latest cvs from cvshome.org and put it in /bin in place 
of the current one.

Now, finally, I have something that seems to work.

I will check and see if the vendor included the source to the tool (I 
doubt it, btw). But good grief, I shouldn't have to recompile the damn 
thing just to use it.

I haven't yet tried to reactivate the tool cygwin (cygwin #1), which 
should be interesting.

What I would love to see is a complete procedure for doing this sort of 
thing posted in a cygwin FAQ.

I could have just gone with the vendor's cygwin, but the damned thing 
was out of date, and its cvs didn't work (something odd there that would 
  involve more diagnosis than I have time for until a current crisis is 
over). Furthermore, the idea of being hostage to some random tool 
vendor's "OS" as my primary work environment is offensive to me. In this 
case, the tool is an ARM cross assembler bundled with a JTAG interface 
(software and hardware).

I love cygwin. I have used it ever since MKS Toolkit got expensive and I 
discovered this alternative. I typically run 6 MKS bash shell windows at 
once on three monitors while working. I was a pure Unix user (started 
Unix on a PC-XT!) until the early '90s when the availability of a lot of 
applications forced me to Windows. Cygwin lets me have my cake and eat 
it too... almost.
> 
> Additionally, these vendors must have shipped you source to everything
> compiled against Cygwin1.dll, or else they are in violation of the GPL. 
> So, you should be able to recompile everything against the latest DLL,
> and just use a single installation.  The exception is if they purchased
> the Cygwin buy-out license from Redhat.
> 
> Brian
> 



--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

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

* Re: Multiple Cygwins/ Distributing Cygwin apps
  2003-11-03  2:20 Multiple Cygwins/ Distributing Cygwin apps John Moore
  2003-11-03  2:34 ` Gary R. Van Sickle
@ 2003-11-03  3:52 ` Brian Dessent
  2003-11-03  6:27   ` John Moore
  2003-11-03 16:38 ` Christopher Faylor
  2003-11-06 23:51 ` Multiple Cygwins/ Distributing Cygwin apps John Moore
  3 siblings, 1 reply; 14+ messages in thread
From: Brian Dessent @ 2003-11-03  3:52 UTC (permalink / raw)
  To: cygwin

John Moore wrote:

> For me, the inability to install two cygwins that are independent has
> already cost me a bunch of time. When I grumbled to a friend, his answer
> was "buy another machine for that application."

I have not tried this per se, but I don't see what's stopping you from
having as many Cygwins installed as you want.  Now, I'm not saying that
you could USE more than one at a time, due to the fact that only a
single Cygwin1.dll can be active at any given time -- and I wouldn't
expect this to change before the heat death of the universe.  But the
only thing that Cygwin touches outside of its install path is the mount
table in the registry, and this is easily removed/replaced with mount
and umount.

So, if I were doing this, I would install Cygwin #1 to \cygwin, then
"mount -m > mounts.txt ; umount -A", then install Cygwin #2 to \cygwin-b
or whatever, and so on.  To switch between them just unmount everything
and remount the other one.

Additionally, these vendors must have shipped you source to everything
compiled against Cygwin1.dll, or else they are in violation of the GPL. 
So, you should be able to recompile everything against the latest DLL,
and just use a single installation.  The exception is if they purchased
the Cygwin buy-out license from Redhat.

Brian

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

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

* RE: Multiple Cygwins/ Distributing Cygwin apps
  2003-11-03  2:51   ` Igor Pechtchanski
@ 2003-11-03  3:12     ` Gary R. Van Sickle
  0 siblings, 0 replies; 14+ messages in thread
From: Gary R. Van Sickle @ 2003-11-03  3:12 UTC (permalink / raw)
  To: cygwin

> On Sun, 2 Nov 2003, Gary R. Van Sickle wrote:
> 
> > [snip]
> > > Cygwin is a great tool and it has this really neat installer so I can
> > > keep it up to date.
> >
> > Could somebody *PLEASE* put this quote at the top of the main 
> Cygwin page?!?!?!?
> > "Really neat installer", wowzers, that's a first and a half! ;-)
> 
> Gary, this referred to the non-resizeable chooser, so will soon be
> out-of-date.  The newer snapshots, once the initial excitement wears off,
> will be branded messy and buggy and a disgrace to the project.  I'd like
> to be wrong, but...
> 	Igor

I know, that's why I want this unsolicited praise saved for posterity! ;-)

-- 
Gary R. Van Sickle


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

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

* RE: Multiple Cygwins/ Distributing Cygwin apps
  2003-11-03  2:34 ` Gary R. Van Sickle
@ 2003-11-03  2:51   ` Igor Pechtchanski
  2003-11-03  3:12     ` Gary R. Van Sickle
  0 siblings, 1 reply; 14+ messages in thread
From: Igor Pechtchanski @ 2003-11-03  2:51 UTC (permalink / raw)
  To: Gary R. Van Sickle; +Cc: cygwin

On Sun, 2 Nov 2003, Gary R. Van Sickle wrote:

> [snip]
> > Cygwin is a great tool and it has this really neat installer so I can
> > keep it up to date.
>
> Could somebody *PLEASE* put this quote at the top of the main Cygwin page?!?!?!?
> "Really neat installer", wowzers, that's a first and a half! ;-)

Gary, this referred to the non-resizeable chooser, so will soon be
out-of-date.  The newer snapshots, once the initial excitement wears off,
will be branded messy and buggy and a disgrace to the project.  I'd like
to be wrong, but...
	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!

"I have since come to realize that being between your mentor and his route
to the bathroom is a major career booster."  -- Patrick Naughton

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

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

* RE: Multiple Cygwins/ Distributing Cygwin apps
  2003-11-03  2:20 Multiple Cygwins/ Distributing Cygwin apps John Moore
@ 2003-11-03  2:34 ` Gary R. Van Sickle
  2003-11-03  2:51   ` Igor Pechtchanski
  2003-11-03  3:52 ` Brian Dessent
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 14+ messages in thread
From: Gary R. Van Sickle @ 2003-11-03  2:34 UTC (permalink / raw)
  To: cygwin

[snip]
> Cygwin is a great tool and it has this really neat installer so I can
> keep it up to date.

Could somebody *PLEASE* put this quote at the top of the main Cygwin page?!?!?!?
"Really neat installer", wowzers, that's a first and a half! ;-)

--
Gary R. Van Sickle


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

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

* Multiple Cygwins/ Distributing Cygwin apps
@ 2003-11-03  2:20 John Moore
  2003-11-03  2:34 ` Gary R. Van Sickle
                   ` (3 more replies)
  0 siblings, 4 replies; 14+ messages in thread
From: John Moore @ 2003-11-03  2:20 UTC (permalink / raw)
  To: cygwin

I have done a bunch of googling and I find this subject comes up 
periodically. I have just spent many wasted hours because a vendor 
shipped a tool I have to have (customer mandate), tightly integrated 
with a cygwin that is old and has a buggy cvs. Meanwhile I am using 
another cygwin for another customer... the latest version.

For me, the inability to install two cygwins that are independent has 
already cost me a bunch of time. When I grumbled to a friend, his answer 
was "buy another machine for that application."

This is a poor answer, but I may have to. Or I'll have to find what 
magic has to be switched to instantiate one and hide the other... 
something that is mentioned in some of the email I found, but no details 
were given.

Cygwin is a great tool and it has this really neat installer so I can 
keep it up to date. But when a vendor ships a binary, that vendor must 
ship a binary Cygwin DLL, and there is no way it is going to match my 
latest version. This creates a problem.

I have seen two basic reasons stated that more than one cygwin shouldn't 
be supported:
     1) It's not an important problem
     2) Tell the vendors to always ship the latest version of cygwin, 
with the implied therat of losing market share.
     3) It's too hard or impossible to run two cygwins.

Personally, I don't buy any of these. Of course, I haven't contributed 
to this project, but over the last 35 years I have designed a lot of 
systems in a lot of OS's (or designed the OS's).

As to #1, that will become a self supporting prophecy if this situation 
continues. Either large numbers of folks will be using Cygwin, or they 
won't. Either vendors will be releasing Cygwin based products or they 
won't. If they do, and lots of people use Cygwin, it is an important 
problem. If it remains a problem, Cygwin usage will go down. After all, 
if I tell my vendor that I don't want their product because it is 
incompatible with my system, they don't care. They have lost one sale, 
but there are plenty of folks that are without Cygwin, so this is no big 
deal. If a vendor gets lots of complaints, he is going to go away from 
Cygwin. I wish my current vendor had just used Windows environment... 
then I wouldn't be facing this issue.

#2 is ridiculous, pure and simple. Vendors aren't going to spend their 
time creating and support lots of version of their software just to stay 
in sync with Cygwin. And they are going to bundle cygwin because 99% of 
their customers don't have it, and the vendor wants to create an easy 
installation for this vast majority of their customers.

#3 I don't believe either. I have heard the argument that a cygwin 
program needs to know which DLL to load and which registry entries to 
use, and that just isn't possible.

But it is actually trivial. The DLL path searched starts where the 
cygwin application starts, so that is one way to separate DLL's. A 
single environment variable can define which registry entry to use. It 
can also define the name of the shared memory segment. It could also 
name the DLL, if one wanted to go that way. Hey, that's what environment 
variables are: a way to define different environments for software.

Now I'm probably missing some big technical problems, but I'm curious 
what they are.

I would like cygwin to allow multiple versions. I can tell from google 
that others would like this too. And vendors, especially small vendors, 
can greatly reduce their development costs if they can distribute 
command line cygwin tools rather than developing windows kluges, which 
is no doubt why we are starting to see this problem.

I multiple simultaneously functioning installs are a problem, how about 
adopting a project goal that supports multiple one-at-a-time versions of 
cygwin, and put the details in a faq or a shipped script?

Finally, regardless of how all this comes out, I want to thank those who 
have created and continue to work on cygwin. It is a great thing to have 
and I use for all of my work.

Thanks

John Moore



--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

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

end of thread, other threads:[~2003-11-07 16:05 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-11-03 10:30 Multiple Cygwins/ Distributing Cygwin apps kevin.lawton
  -- strict thread matches above, loose matches on Subject: below --
2003-11-03 17:46 Multiple cygwins/ Distributing cygwin apps kevin.lawton
2003-11-03  2:20 Multiple Cygwins/ Distributing Cygwin apps John Moore
2003-11-03  2:34 ` Gary R. Van Sickle
2003-11-03  2:51   ` Igor Pechtchanski
2003-11-03  3:12     ` Gary R. Van Sickle
2003-11-03  3:52 ` Brian Dessent
2003-11-03  6:27   ` John Moore
2003-11-03  8:24     ` Brian Dessent
2003-11-03 18:42       ` Multiple cygwins/ Distributing cygwin apps Christopher Faylor
2003-11-03 23:41         ` Igor Pechtchanski
2003-11-03 16:38 ` Christopher Faylor
2003-11-06 23:51 ` Multiple Cygwins/ Distributing Cygwin apps John Moore
2003-11-07 16:05   ` Multiple cygwins/ Distributing cygwin apps Christopher Faylor

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