RE: cygwin.com suggestions

2002-03-14 Thread Robert Collins

> -Original Message-
> From: [EMAIL PROTECTED] 
> 
> Here are a couple of suggestions for making the cygwin.com 
> website more 
> helpful.

Thanks for your suggestions, feedback on them in-line.
 
> 1) Include the current version number of setup.exe on the front page. 
> Otherwise, there is no way for the infrequent visitor to the 
> website to 
> know if setup.exe has been updated other than to re-download 
> and run it.

Setup.exe will warn you if it is out of date - the online data includes
the current version of setup.exe in the ini file. Having the version
number on the website is thus redudant.
 
> 2) Include in the FAQ (or somewhere) a section on "How to 
> Safely Update the 
> Cygwin dll". Probably just "shut down all cygwin apps, 
> including daemons", 
> but it would be useful to know for sure.

The next release of setup.exe automatically address's this and will
replace in-use .dll's.
 
> 3) Include or link those instructions in announcements of new 
> Cygwin dll 
> releases.
> 
> Do these make sense?

They do, but as you can see we already have in place other measures to
address the same issues. 

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/




Re: cygwin.com suggestions

2002-03-15 Thread Andrew DeFaria

Robert Collins wrote:

>>2) Include in the FAQ (or somewhere) a section on "How to 
>>Safely Update the 
>>Cygwin dll". Probably just "shut down all cygwin apps, 
>>including daemons", 
>>but it would be useful to know for sure.
> 
> The next release of setup.exe automatically address's this and will
> replace in-use .dll's.

Really? How does it do that? Because I was under the impression that if 
a program was running you cannot replace it's .exe file (or .dll file) 
because it was opened exclusively by Windows. How do you get around that?




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




Re: cygwin.com suggestions

2002-03-15 Thread Larry Hall (RFK Partners, Inc)

At 02:58 PM 3/15/2002, Andrew DeFaria wrote:
>Robert Collins wrote:
>
>>>2) Include in the FAQ (or somewhere) a section on "How to Safely Update the Cygwin 
>dll". Probably just "shut down all cygwin apps, including daemons", but it would be 
>useful to know for sure.
>>The next release of setup.exe automatically address's this and will
>>replace in-use .dll's.
>
>Really? How does it do that? Because I was under the impression that if a program was 
>running you cannot replace it's .exe file (or .dll file) because it was opened 
>exclusively by Windows. How do you get around that?


Same way as Windows installers work.  Just schedule the DLL to be moved in 
after reboot.



Larry Hall  [EMAIL PROTECTED]
RFK Partners, Inc.  http://www.rfk.com
838 Washington Street   (508) 893-9779 - RFK Office
Holliston, MA 01746 (508) 893-9889 - FAX


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




Re: cygwin.com suggestions

2002-03-15 Thread Andrew DeFaria

Larry Hall (RFK Partners, Inc) wrote:

> At 02:58 PM 3/15/2002, Andrew DeFaria wrote:
> 
>>Robert Collins wrote:
>>
>>
2) Include in the FAQ (or somewhere) a section on "How to Safely Update the Cygwin 
>dll". Probably just "shut down all cygwin apps, including daemons", but it would be 
>useful to know for sure.

>>>The next release of setup.exe automatically address's this and will
>>>replace in-use .dll's.
>>>
>>Really? How does it do that? Because I was under the impression that if a program 
>was running you cannot replace it's .exe file (or .dll file) because it was opened 
>exclusively by Windows. How do you get around that?
> 
> Same way as Windows installers work.  Just schedule the DLL to be moved in 
> after reboot.

But that doesn't really replace the current DLL. IOW the changes are not 
effective until one reboots. Personally I find this a crummy way to do 
things but perhaps that's all that can be done.




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




Re: cygwin.com suggestions

2002-03-15 Thread Chris January

> 2) Include in the FAQ (or somewhere) a section on "How to Safely
Update the Cygwin dll". Probably just "shut down all cygwin apps, including
daemons", but it would be useful to know for sure.
> 
> >>>The next release of setup.exe automatically address's this and will
> >>>replace in-use .dll's.
> >>>
> >>Really? How does it do that? Because I was under the impression that if
a program was running you cannot replace it's .exe file (or .dll file)
because it was opened exclusively by Windows. How do you get around that?
> >
> > Same way as Windows installers work.  Just schedule the DLL to be moved
in
> > after reboot.
>
> But that doesn't really replace the current DLL. IOW the changes are not
> effective until one reboots. Personally I find this a crummy way to do
> things but perhaps that's all that can be done.
Under Win NT/2k/XP it is actually possible to replace a DLL file that's
currently in use without rebooting. You rename the existing file to
something else, then copy the new file in its place. Then add the old file
to the MoveFileEx list of files to delete on reboot. That way the new file
is installed straight away.

Regards
Chris



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




RE: cygwin.com suggestions

2002-03-15 Thread Stephano Mariani

You cannot rename the existing file if it is in use. I found out the
hard way :)

Stephano Mariani

> -Original Message-
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] On
Behalf
> Of Chris January
> Sent: Friday, 15 March 2002 11:34 PM
> To: [EMAIL PROTECTED]
> Subject: Re: cygwin.com suggestions
> 
> > >>>>2) Include in the FAQ (or somewhere) a section on "How to Safely
> Update the Cygwin dll". Probably just "shut down all cygwin apps,
> including
> daemons", but it would be useful to know for sure.
> > >>>>
> > >>>The next release of setup.exe automatically address's this and
will
> > >>>replace in-use .dll's.
> > >>>
> > >>Really? How does it do that? Because I was under the impression
that
> if
> a program was running you cannot replace it's .exe file (or .dll file)
> because it was opened exclusively by Windows. How do you get around
that?
> > >
> > > Same way as Windows installers work.  Just schedule the DLL to be
> moved
> in
> > > after reboot.
> >
> > But that doesn't really replace the current DLL. IOW the changes are
not
> > effective until one reboots. Personally I find this a crummy way to
do
> > things but perhaps that's all that can be done.
> Under Win NT/2k/XP it is actually possible to replace a DLL file
that's
> currently in use without rebooting. You rename the existing file to
> something else, then copy the new file in its place. Then add the old
file
> to the MoveFileEx list of files to delete on reboot. That way the new
file
> is installed straight away.
> 
> Regards
> Chris
> 
> 
> 
> --
> 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/




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




Re: cygwin.com suggestions

2002-03-15 Thread Christopher Faylor

On Fri, Mar 15, 2002 at 11:34:07PM -, Chris January wrote:
>Under Win NT/2k/XP it is actually possible to replace a DLL file that's
>currently in use without rebooting. You rename the existing file to
>something else, then copy the new file in its place. Then add the old file
>to the MoveFileEx list of files to delete on reboot. That way the new file
>is installed straight away.

it's possible to install a new version of the cygwin DLL over an in-use
version in some cases.  However, you'll cause problems for all running
cygwin apps if you use this method.

It's safer to reboot.

cgf

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




RE: cygwin.com suggestions

2002-03-15 Thread Robert Collins



> -Original Message-
> From: Chris January [mailto:[EMAIL PROTECTED]] 
> Sent: Saturday, March 16, 2002 10:34 AM

> > But that doesn't really replace the current DLL. IOW the 
> changes are 
> > not effective until one reboots. Personally I find this a 
> crummy way to do things but perhaps that's all that can be done.

> Under Win NT/2k/XP it is actually possible to replace a DLL 
> file that's currently in use without rebooting.
No its not - a rename operation on a memorymapped file fails. It's under
win16 *cough* win9x->Me that memorymapped files can be renamed or
deleted.

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/




RE: cygwin.com suggestions

2002-03-15 Thread Robert Collins



> -Original Message-
> From: Andrew DeFaria [mailto:[EMAIL PROTECTED]] 
> Sent: Saturday, March 16, 2002 10:06 AM

> > Same way as Windows installers work.  Just schedule the DLL to be 
> > moved in
> > after reboot.
> 
> But that doesn't really replace the current DLL. IOW the 
> changes are not 
> effective until one reboots. Personally I find this a crummy 
> way to do 
> things but perhaps that's all that can be done.

I think crummy is a little harsh. And yes, other than shutting down all
process's using a file, this is the best that can be done (*).

Rob

*: Well, it's possible that a file system filter driver that redirects
the access to a new file for subsequent opens could provide equivalent
functionality to a linux style delete/replace of in-use files. However I
don't know whether the file system cache/file mapping logic sit above or
below such filters... if they sit above the filter (And I suspect they
do), then the filter would never get invoked, and the file would still
appear to be there.


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




Re: cygwin.com suggestions

2002-03-15 Thread Christopher Faylor

On Sat, Mar 16, 2002 at 12:48:41PM +1100, Robert Collins wrote:
>
>
>> -Original Message-
>> From: Chris January [mailto:[EMAIL PROTECTED]] 
>> Sent: Saturday, March 16, 2002 10:34 AM
>
>> > But that doesn't really replace the current DLL. IOW the 
>> changes are 
>> > not effective until one reboots. Personally I find this a 
>> crummy way to do things but perhaps that's all that can be done.
>
>> Under Win NT/2k/XP it is actually possible to replace a DLL 
>> file that's currently in use without rebooting.
>No its not - a rename operation on a memorymapped file fails. It's under
>win16 *cough* win9x->Me that memorymapped files can be renamed or
>deleted.

It works fine on XP.  I do it on an almost daily basis when I'm
installing new DLLs.

It worked fine on NT 4 and W2K, too.

I just verified this by doing the following command:

cd c:\cygwin\bin
mv cygwin1.dll cygwinfoo.dll

cgf

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




RE: cygwin.com suggestions

2002-03-15 Thread Robert Collins

> -Original Message-
> From: Christopher Faylor [mailto:[EMAIL PROTECTED]] 
> Sent: Saturday, March 16, 2002 2:29 PM

> >No its not - a rename operation on a memorymapped file fails. It's 
> >under win16 *cough* win9x->Me that memorymapped files can be 
> renamed or 
> >deleted.
> 
> It works fine on XP.  I do it on an almost daily basis when 
> I'm installing new DLLs.
> 
> It worked fine on NT 4 and W2K, too.
> 
> I just verified this by doing the following command:
> 
> cd c:\cygwin\bin
> mv cygwin1.dll cygwinfoo.dll

Strange. I'll look more deeply at what I've observed before then.

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




RE: cygwin.com suggestions

2002-03-15 Thread Gary R. Van Sickle

[snip]

> > But that doesn't really replace the current DLL. IOW the
> > changes are not
> > effective until one reboots. Personally I find this a crummy
> > way to do
> > things but perhaps that's all that can be done.
>
> I think crummy is a little harsh. And yes, other than shutting down all
> process's using a file, this is the best that can be done (*).
>
> Rob
>
> *: Well, it's possible that a file system filter driver that redirects
> the access to a new file for subsequent opens could provide equivalent
> functionality to a linux style delete/replace of in-use files. However I
> don't know whether the file system cache/file mapping logic sit above or
> below such filters... if they sit above the filter (And I suspect they
> do), then the filter would never get invoked, and the file would still
> appear to be there.
>

PAIN! WINDOWS... DRIVERS! FILE... SYSTEM... AHA!!!

Actually I was thinking this would be a perfect job for that snazzy new daemon
coming down the pike; queue the file in question up with the daemon, and have
the daemon wait until nobody's looking (i.e. nothing's using the
file-to-be-replaced), and then swap the new one in.  The daemon could replace
itself in a somewhat similar manner; the new daemon would send the old daemon a
signal to shut down and then replace it with itself when Windows eventually let
go of it.

--
Gary R. Van Sickle
Brewer.  Patriot.


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




RE: cygwin.com suggestions

2002-03-15 Thread Robert Collins



> -Original Message-
> From: Gary R. Van Sickle [mailto:[EMAIL PROTECTED]] 
> Sent: Saturday, March 16, 2002 4:14 PM

> PAIN! WINDOWS... DRIVERS! FILE... SYSTEM... AHA!!!
> 
> Actually I was thinking this would be a perfect job for that 
> snazzy new daemon coming down the pike; queue the file in 
> question up with the daemon, and have the daemon wait until 
> nobody's looking (i.e. nothing's using the 
> file-to-be-replaced), and then swap the new one in.  The 
> daemon could replace itself in a somewhat similar manner; the 
> new daemon would send the old daemon a signal to shut down 
> and then replace it with itself when Windows eventually let go of it.

Yeah... I've actually written proof-of-concept code for setup.exe to do
just that. (Imagine setup.exe self-updating and living in /usr/bin.)

However there are a number of things that make me go urgh with this.
1) new-foo exports symbol bar that is needed by the post-install script.
When should the script run? 
(This is an issue today btw).
2) new-foo exports symbol bar that is needed by other userland app. How
do we tell the user that they can't run that app until all programs have
been shut down?
3) It's similar to the file-delete-queue hack in cygwin, and whilst that
is quite successful, it's not seamless. 

I'd rather be _real_ simple about it. I.e. Offer a choice: reboot after
the install or close app foo now. The user does one or the other, not a
hybrid (close app foo after the install).

Of course, a patch to do it will be treated very differently to ideas
:}.

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/




Re: cygwin.com suggestions

2002-03-16 Thread Christopher Faylor

On Sat, Mar 16, 2002 at 04:30:06PM +1100, Robert Collins wrote:
>I'd rather be _real_ simple about it.  I.e.  Offer a choice: reboot
>after the install or close app foo now.  The user does one or the
>other, not a hybrid (close app foo after the install).

I think those are the only sane choices, actually, since replacing a
cygwin DLL while it is in use will potentially have disastrous
consequences.  You might be able to get away with doing it with
something like bash, but even that is a potential problem.

>Of course, a patch to do it will be treated very differently to ideas
>:}.

Hmm.  I like the sound of that.

cgf

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