Re: mingw path/mount handling code (Was: Re: Practical method for automatic Cygwin install?)

2005-12-12 Thread Corinna Vinschen
On Dec  9 07:48, Brian Dessent wrote:
 The way I see it, in a perfect world, this library would be BSD/MIT
 licensed, or at the very least LGPL, so that foreign programs by 3PPs
 could use it unencumbered, so that they can function better with Cygwin.
 
 However, winsup/utils/path.cc is under the Cygwin license.  I don't
 suppose there is any chance of getting Redhet to relicense parts of the
 utils directory?

It's in the loop, sort of.  I'm working on getting the utils directory
relicensed for about 18 months now.  Progress is somewhat slow, though...


Corinna

-- 
Corinna Vinschen  Please, send mails regarding Cygwin to
Cygwin Project Co-Leader  cygwin AT cygwin DOT com
Red Hat, Inc.

--
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/



mingw path/mount handling code (Was: Re: Practical method for automatic Cygwin install?)

2005-12-09 Thread Brian Dessent
Christopher Faylor wrote:

 FWIW, this idea of creating a mingw libcygpath really appeals to me
 and it's been an idea I've been meaning to look at for a while.  It
 would be a library that knows how to read the mount table, and do basic
 path conversions, without depending on cygwin1.dll.  Then cygpath and
 setup.exe could both statically link to this library, and it would be
 available to other users as well.
 
 FWIW, Robert Collins and I talked about doing this years ago but it just
 suffered due to SHTDI.  I think that path.cc in the utils directory
 should be a pretty good start towards a library for reading the mount
 table.  It is what is used by strace.cc and cygcheck.cc.

I've been thinking about this a little more.

The way I see it, in a perfect world, this library would be BSD/MIT
licensed, or at the very least LGPL, so that foreign programs by 3PPs
could use it unencumbered, so that they can function better with Cygwin.

However, winsup/utils/path.cc is under the Cygwin license.  I don't
suppose there is any chance of getting Redhet to relicense parts of the
utils directory?  It seems small enough that it could be reimplemented
without a lot of hassle, but it's still extra work.

Has this topic already been discussed, or do I need to do more due
diligence on this idea?  I am considering putting some time into this
but I think GPL is not the right way to go.  Would the approximate path
be a) create, test, and debug this free-standing libcygpath
(libcygmount?), b) submit patches to cygpath and setup to use this
library?

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/



Re: mingw path/mount handling code (Was: Re: Practical method for automatic Cygwin install?)

2005-12-09 Thread Christopher Faylor
On Fri, Dec 09, 2005 at 07:48:24AM -0800, Brian Dessent wrote:
Christopher Faylor wrote:

 FWIW, this idea of creating a mingw libcygpath really appeals to me
 and it's been an idea I've been meaning to look at for a while.  It
 would be a library that knows how to read the mount table, and do basic
 path conversions, without depending on cygwin1.dll.  Then cygpath and
 setup.exe could both statically link to this library, and it would be
 available to other users as well.
 
 FWIW, Robert Collins and I talked about doing this years ago but it just
 suffered due to SHTDI.  I think that path.cc in the utils directory
 should be a pretty good start towards a library for reading the mount
 table.  It is what is used by strace.cc and cygcheck.cc.

I've been thinking about this a little more.

The way I see it, in a perfect world, this library would be BSD/MIT
licensed, or at the very least LGPL, so that foreign programs by 3PPs
could use it unencumbered, so that they can function better with Cygwin.

However, winsup/utils/path.cc is under the Cygwin license.  I don't
suppose there is any chance of getting Redhet to relicense parts of the
utils directory?  It seems small enough that it could be reimplemented
without a lot of hassle, but it's still extra work.

I think there is very small chance of that.  IIRC, some of that code is
straight out of the cygwin DLL itself.

I think that anyone who had studied the cygwin path handling code would
have a tough time proving that there was no taintedness if they tried
to produce a library under a different license.

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/



Re: mingw path/mount handling code (Was: Re: Practical method for automatic Cygwin install?)

2005-12-09 Thread Brian Dessent
Christopher Faylor wrote:

 I think there is very small chance of that.  IIRC, some of that code is
 straight out of the cygwin DLL itself.
 
 I think that anyone who had studied the cygwin path handling code would
 have a tough time proving that there was no taintedness if they tried
 to produce a library under a different license.

Crud.  Well I suppose from a code reuse standpoint it would still make
sense to factor out that stuff so that setup and cygcheck (and anything
else GPL) can share it.  But without a relicensed version it still means
that 3PPs that want to gracefully distribute Cygwin stuff have to write
all the mount table stuff themselves (or run /bin/mount, which I guess
is the mantra anyway.)

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/



Re: mingw path/mount handling code (Was: Re: Practical method for automatic Cygwin install?)

2005-12-09 Thread Christopher Faylor
On Fri, Dec 09, 2005 at 08:29:06AM -0800, Brian Dessent wrote:
Christopher Faylor wrote:
I think there is very small chance of that.  IIRC, some of that code is
straight out of the cygwin DLL itself.

I think that anyone who had studied the cygwin path handling code would
have a tough time proving that there was no taintedness if they tried
to produce a library under a different license.

Crud.  Well I suppose from a code reuse standpoint it would still make
sense to factor out that stuff so that setup and cygcheck (and anything
else GPL) can share it.

Remember that cygcheck and strace are already sharing the code in
path.cc.  It's not clear to me what more needs to be done except
possibly handle symlinks.

But without a relicensed version it still means that 3PPs that want to
gracefully distribute Cygwin stuff have to write all the mount table
stuff themselves (or run /bin/mount, which I guess is the mantra
anyway.)

...or run cygpath.

FWIW, the basic problem with Red Hat these days is getting them to pay
any attention to cygwin at all.  The corporate VP in legal who used to
be at least somewhat responsive to my cygwin queries has moved on to
other concerns within the company and, from what I've heard, no one else
seems inclined to answer questions.  You know that cygwin runs on Windoze
(or is it Window$?) after all.

So, even if there was a chance that someone in Red Hat could make the
recommendation to release the path.cc source code under a looser
license, it is extremely unlikely that you could get an official
corporate response on the matter.

What fun.

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/



Re: Practical method for automatic Cygwin install?

2005-11-23 Thread Christopher Faylor
On Tue, Nov 22, 2005 at 09:51:56PM -0600, William J. Leslie wrote:
Note: I am rephrasing the question I asked last time (for which the
conversation drifted into GPL and licensing issues).

My program depends on cygwin DLLs, my installer must make sure these
dependencies are satisfied.  I've heard that installing private copies of
cygwin DLLs can lead to version mismatches. Instead of installing private
copies of the cygwin DLLs, my installer will install a complete (but minimal)
cygwin installation to c:\cygwin.

There are a few issues that I am not sure how to deal with:

1) How to determine whether or not cygwin is already installed? If so, what
is the prefix path (e.g. c:\cygwin)?

Right now, the only way to do it is to query the registry.  I think I'm
convinced that cygwin will always need to add something to the registry
so the concept of querying the registry to find out if cygwin is
installed should be useful for the foreseeable future, even if the
location to query might change (and what a hue and cry there will be if
it does change).

It is possible to copy the cygwin DLL to a system and just have it work,
though, so what I would do is:

0) Look at the current installer to see how it does things.

1) Try running mount --version to see if it is the cygwin version.  If it
succeeds and the word cygwin shows up in the output, then cygwin is installed.
This assumes that mount is in the path.

2) Look in the registry (in the currently used location) for the cygwin
root directory.  See if the bin directory under this location contains
cygwin1.dll.  If it succeeds, then cygwin is installed.

2) If cygwin is already installed, what optional packages are present? What
versions?

Use the same method as the current setup (and cygcheck) to determine
what packages are installed.

3) If cygwin is NOT installed, how do we install it, without setup.exe
prompts?  (I have a gut feeling that it's a bit more complicated than just
untarring packages.)

It's not a lot more complicated than that.  You have to get dependencies
right and you have to deal with post install scripts.

4) If cygwin is installed, but some optional packages need version upgrades,
how do we accomplish that?

As Gary said in another message, it sounds like the best way to
accomplish what you want is to augment setup.exe and make sure that your
changes show up in the official version.  You contribute to setup.exe
via the cygwin-apps mailing list.  Maybe you might want to peruse the
archives of that mailing list to see how that happens.

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/



Re: Practical method for automatic Cygwin install?

2005-11-23 Thread Igor Pechtchanski
On Wed, 23 Nov 2005, Christopher Faylor wrote:

 On Tue, Nov 22, 2005 at 09:51:56PM -0600, William J. Leslie wrote:
 Note: I am rephrasing the question I asked last time (for which the
 conversation drifted into GPL and licensing issues).
 
 My program depends on cygwin DLLs, my installer must make sure these
 dependencies are satisfied.  I've heard that installing private copies of
 cygwin DLLs can lead to version mismatches. Instead of installing private
 copies of the cygwin DLLs, my installer will install a complete (but minimal)
 cygwin installation to c:\cygwin.
 
 There are a few issues that I am not sure how to deal with:
 
 1) How to determine whether or not cygwin is already installed? If so, what
 is the prefix path (e.g. c:\cygwin)?

 Right now, the only way to do it is to query the registry.  I think I'm
 convinced that cygwin will always need to add something to the registry
 so the concept of querying the registry to find out if cygwin is
 installed should be useful for the foreseeable future, even if the
 location to query might change (and what a hue and cry there will be if
 it does change).

 It is possible to copy the cygwin DLL to a system and just have it work,
 though, so what I would do is:

 0) Look at the current installer to see how it does things.

 1) Try running mount --version to see if it is the cygwin version.
 If it succeeds and the word cygwin shows up in the output, then cygwin
 is installed. This assumes that mount is in the path.

 2) Look in the registry (in the currently used location) for the cygwin
 root directory.  See if the bin directory under this location contains
 cygwin1.dll.  If it succeeds, then cygwin is installed.

Or you could look at how setup.exe/cygcheck does it and help extract the
mount code into a library that could be linked into other apps.

 2) If cygwin is already installed, what optional packages are present?
 What versions?

 Use the same method as the current setup (and cygcheck) to determine
 what packages are installed.

 3) If cygwin is NOT installed, how do we install it, without setup.exe
 prompts?  (I have a gut feeling that it's a bit more complicated than
 just untarring packages.)

 It's not a lot more complicated than that.  You have to get dependencies
 right and you have to deal with post install scripts.

And you have to make sure that whatever non-Cygwin application/library you
use to untar packages understands and can create Cygwin symlinks and hard
links (optional, copies would work just as well).

 4) If cygwin is installed, but some optional packages need version
 upgrades, how do we accomplish that?

 As Gary said in another message, it sounds like the best way to
 accomplish what you want is to augment setup.exe and make sure that your
 changes show up in the official version.  You contribute to setup.exe
 via the cygwin-apps mailing list.  Maybe you might want to peruse the
 archives of that mailing list to see how that happens.

Another thing that I don't recall mentioned in this thread is that
setup.exe has an unattended mode (which is not scriptable, but that could
be alleviated with custom setup.ini files).  The GUI will still pop up,
but user interaction isn't really necessary.
Igor
-- 
http://cs.nyu.edu/~pechtcha/
  |\  _,,,---,,_[EMAIL PROTECTED]
ZZZzz /,`.-'`'-.  ;-;;,_[EMAIL PROTECTED]
 |,4-  ) )-,_. ,\ (  `'-'   Igor Pechtchanski, Ph.D.
'---''(_/--'  `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

If there's any real truth it's that the entire multidimensional infinity
of the Universe is almost certainly being run by a bunch of maniacs. /DA

--
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/



Re: Practical method for automatic Cygwin install?

2005-11-23 Thread Brian Dessent
Igor Pechtchanski wrote:

 Or you could look at how setup.exe/cygcheck does it and help extract the
 mount code into a library that could be linked into other apps.

FWIW, this idea of creating a mingw libcygpath really appeals to me
and it's been an idea I've been meaning to look at for a while.  It
would be a library that knows how to read the mount table, and do basic
path conversions, without depending on cygwin1.dll.  Then cygpath and
setup.exe could both statically link to this library, and it would be
available to other users as well.

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/



Re: Practical method for automatic Cygwin install?

2005-11-23 Thread Christopher Faylor
On Wed, Nov 23, 2005 at 01:30:37PM -0800, Brian Dessent wrote:
Igor Pechtchanski wrote:
Or you could look at how setup.exe/cygcheck does it and help extract
the mount code into a library that could be linked into other apps.

FWIW, this idea of creating a mingw libcygpath really appeals to me
and it's been an idea I've been meaning to look at for a while.  It
would be a library that knows how to read the mount table, and do basic
path conversions, without depending on cygwin1.dll.  Then cygpath and
setup.exe could both statically link to this library, and it would be
available to other users as well.

FWIW, Robert Collins and I talked about doing this years ago but it just
suffered due to SHTDI.  I think that path.cc in the utils directory
should be a pretty good start towards a library for reading the mount
table.  It is what is used by strace.cc and cygcheck.cc.

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/



RE: Practical method for automatic Cygwin install?

2005-11-22 Thread Gary R. Van Sickle
 From: William J. Leslie
 Sent: Tuesday, November 22, 2005 9:52 PM
 Subject: Practical method for automatic Cygwin install?
 
 = = = = = = = 
 = =
 Note: I am rephrasing the question I asked last time (for 
 which the conversation drifted into GPL and licensing issues).
 
 My program depends on cygwin DLLs, my installer must make 
 sure these dependencies are satisfied.  I've heard that 
 installing private copies of cygwin DLLs can lead to version 
 mismatches. Instead of installing private copies of the 
 cygwin DLLs, my installer will install a complete (but 
 minimal) cygwin installation to c:\cygwin.
 
 There are a few issues that I am not sure how to deal with:
 
 1) How to determine whether or not cygwin is already 
 installed? If so, what is the prefix path (e.g. c:\cygwin)?
 

There's currently not a great way to do that.  Somebody just asked the same
question(s), see that thread.

 2) If cygwin is already installed, what optional packages are 
 present? What versions?
 

If I read another thread right, there may or may not be a way to do this in
the near future, assuming you've got #1.

 3) If cygwin is NOT installed, how do we install it, without 
 setup.exe prompts?  (I have a gut feeling that it's a bit 
 more complicated than just untarring packages.)
 

I believe this can now be done with sufficiently-doctored setup.ini files.
I've never tried it myself.

 4) If cygwin is installed, but some optional packages need 
 version upgrades, how do we accomplish that?
 

Via the normal means, i.e. the Cygwin setup utility.

 Probably any developer who has tried to release software for 
 the cygwin environment has thought about this.  Users demand 
 absolute automation of the installer; I can't tell them to do 
 stuff like:
 
 This package requires cygwin. Please go install Cygwin from 
 www.cygwin.com, and click Retry when you're finished.
 

When all is said and done, I rather suspect you're going to have to.

 Nope, that would not be acceptable; it MUST be automatic! But 
 apparently Cygwin's setup utility cannot be automated, only 
 GUI-based.  Surely there are ways for installers like mine to 
 install cygwin without having to worry about the messy 
 details.  Or maybe not.  Does anyone know?


I do.  There's no software that's ever been written that didn't have to
worry about the messy details, and installing Cygwin and a bunch of
utilities in a manner which is not officially supported is probably at the
top of that list.  It sounds to me that what you really should do is release
your software as a Cygwin package, and then work on adding the functionality
you need to Cygwin's setup.exe. 
 
 Thank You
 Will

-- 
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/