This is the mail archive of the
cygwin-xfree@cygwin.com
mailing list for the Cygwin XFree86 project.
Re: Bug in startxwin.bat after installing with setup.exe in win98SE
- From: Harold L Hunt <huntharo at msu dot edu>
- To: cygwin-xfree at cygwin dot com
- Date: Fri, 12 Jul 2002 16:37:56 EDT
- Subject: Re: Bug in startxwin.bat after installing with setup.exe in win98SE
Jehan <nahor@bravobrava.com> said:
> Harold L Hunt wrote:
> > Okay, if you are so smart, explain to me how I can put a drive letter into a
> > batch file that is expected to work on computers where Cygwin could be
> > installed on ``c:\cygwin'' or ``d:\cygwin''? I certainly could not put ``c''
> > as the drive, nor could I put ``d'' as the drive. So, what do you suggest?
>
> First, I'm not trying to bash you (how could I, we are fellow
> Cgwin/XFree programmers *grin*) but I'm trying to understand your
> motivation. So here is my question: in what sense is "\cygwin" better
> "c:\cygwin"? I mean, I used to install cygwin in "c:\program
> files\cygwin". So neither "\cygwin" nor "c:\cygwin" would work. But
> then, when I see just "\cygwin", I think a unix path (I know, the "\"
> isn't a "/", but I'm a little dumb sometimes :p). So at first, I
> overlooked it. I'm pretty sure that if I had seend "c:\cygwin", I would
> have thought of changing it.
> The other thing too is that "\cygwin" is sort of a bastard. It's not a
> full path because it doesn't have the drive letter. It's not a relative
> path because it doesn't start from the current directory but from the
> root of the current drive.
> Last, with "\cygwin", the batch file works sometimes (the current drive
> is where cygwin is) and sometimes it doesn't (wrong current drive). As a
> programmer, I prefer things that always crash or never do.
> So, in this light, as my personal opinion (which doesn't matter anymore
> now that I have cygwin in "c:\cygwin" ;p ), would be to use an full
> absolute path.
>
Unfortunately you cannot use a relative path (e.g. ..\..\.., which gets \bin
appended on it to point to /bin) because that causes bash (or whatever shell
you launch in xterm) to have a relative path the Cygwin binaries. Thus you
can no longer run Cygwin binaries if you change out of the /usr/X11R6/bin
directory, because your relative path to the Cygwin binaries is now incorrect.
So, we have to use an absolute path, which is why why need something like
c:\cygwin. We go one further an change this to \cygwin because we used to get
weekly complaints like, ``yikes, cygwin1.dll could not be found, cause i am
l33t and i installed to d:\cygwin''. We do not get regular complaints
anymore, so \cygwin is an improvement over c:\cygwin.
Now, about not being able to see things that you are looking for in a file: I
wrote two paragraphs! of comments about setting the path correctly, and in
those comments there does appear a c:\cygwin. I cannot help someone if they
are skimming so fast as to completely miss all of that.
I will admit one current problem with startxwin.bat: the User's Guide is out
of date so we do not recommend that new users read it to install
Cygwin/XFree86. Unfortunately this means that people do not see, repeatedly,
my recommendations that they install Cygwin in c:\cygwin that are in the
User's Guide.
One idea is that we could try to parse the return from ``chdir'', which gives,
for example:
C:\cygwin\usr\X11R6\bin>chdir
C:\cygwin\usr\X11R6\bin
It would be pretty easy to construct a location for /bin or /usr/bin from the
output of chdir, but then we are back to the Catch-22 that we would need
Cygwin binaries in order to find the location of the Cygwin binaries.
>
> > Okay, okay, so you are thinking, ``just use cygpath, duh''. However, if I
> > could use ``cygpath'', then that implies that I already know where the Cygwin
> > binaries are located since I just ran one of them. But, I don't know where
> > the Cygwin binaries are located, as that is why we are guessing what the
path is.
>
> Can the batch file be created via the installation script? Then you're
> environment would be cygwin and not windows, wouldn't it? The thing I
> don't know there would be the "cr/lf" vs "lf" thing.
>
>
> >>That's no excuse to fail to fix a known problem.
>
> Bernard,
> And "not having a better solution", is it a good excuse? It's always
> easy to critize but critizing doesn't make the world to go forward.
>
>
> > Huh? There are things in life that are worth spending time on because they
> > will have a large effect, and there are things in life that are not worth
> > spending time on because they will have almost no effect whatsoever. Changing
> > the startxwin.bat file to allow people to run it from a location other than
> > where it is installed to (which has got to be obvious to most users as doing
> > something that was not intended), is one of those things that will have almost
> > no effect. You are going to have to do a lot better than that if you expect
> > me to keep my gleaming white ass in a dimly lit room programming when I could
> > be sitting outside by the pool, getting a tan, and drinking a beer.
> >
> > Man, if you are going to try to one-up the maintainer in public, you had damn
> > well better be giving a complete solution, rather than trying to suggest that
> > the maintainer creates one himself. Because in the latter case you just open
> > yourself up to off-topic ranting like I just did. Yes, this makes me feel
> > better when I get to write funny things about how I don't like to program.
> > So, in a way, you have done me a good service. Thank you :)
>
> Go harold, go!! Kill him :). You know what is better than "sitting
> outside by the pool, getting a tan, and drinking a beer"? It sitting
> outside by the pool, getting a tan, drinking a beer and watching a fight
> game! :)
>
> Jehan
Heh heh... What is a ``fight game''? Are you referring to boxing?
Harold