delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2008/04/10/04:59:40

X-Recipient: archive-cygwin AT delorie DOT com
X-Spam-Check-By: sourceware.org
Date: Thu, 10 Apr 2008 10:59:06 +0200
From: Corinna Vinschen <corinna-cygwin AT cygwin DOT com>
To: cygwin AT cygwin DOT com
Subject: Re: -11: Problem at 1st start when "cygwin.bat" is run by Nullsoft-Installer
Message-ID: <20080410085906.GC548@calimero.vinschen.de>
Reply-To: cygwin AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
References: <OF095BCD61 DOT E9CDAC5C-ONC1257427 DOT 002AD48F-C1257427 DOT 002AE6F9 AT de DOT ibm DOT com>
MIME-Version: 1.0
In-Reply-To: <OF095BCD61.E9CDAC5C-ONC1257427.002AD48F-C1257427.002AE6F9@de.ibm.com>
User-Agent: Mutt/1.5.16 (2007-06-09)
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

On Apr 10 09:48, Christoph Herdeg wrote:
> Hello List,
> 
> We have made up an unattended installer package for cygwin using Nullsoft
> Installer. This package works on all x32 and x64 versions of Windows 2000,
> XP and Server 2003. Testing with Windows Server 2008 we discovered a
> problem: At the end of the installation, cygwin.bat is executed by the
> Nullsoft Installer. Normally bash should open and all shellscripts residing
> in /etc/profile.d should be run automagically (the script /etc/profile
> collects and runs them). In our case it doesn't - at least on 1st start -
> instead the following error message is displayed:
> 
> "bash: cannot create temp file for here document: Bad address"
> 
> Then bash jumps to the standard prompt. If we now start cygwin a 2nd time
> by executing cygwin.bat (directly or via the desktop icon), the scripts in
> /etc/profile.d are run as they are proposed to. Also they are run normally,
> if the Nullsoft Installer exits before starting cygwin.bat and we start the
> batch manually (directly or via the desktop icon).
> 
> Upgrading the package "base-files-3.7-1.tar.bz2" to unpack a modified
> /etc/profile resulted that the $TMP and $TEMP variables seem to be
> correctly set to "/cygdrive/c/Users/ADMINI~1/AppData/Local/Temp". Setting
> an FullAccess-ACL for the Windows user "everyone" on this directory didn't
> change the behaviour. Using "set -x" in the modified /etc/profile did not
> produce any other errors.
> 
> - Is it possible that Cygwin's mapping of
> "c:\Users\ADMINI~1/AppData/Local/Temp" to
> "/cygdrive/c/Users/ADMINI~1/AppData/Local/Temp" doesn't yet exist at the
> time the error occurs?

No.  The environment is converted before the shell is doing something
on its own accord.

Is it possible that the cygdrive prefix doesn't exist when cygwin.bat is
called the first time?  So far the installer is responsible for creating
the mount points and the cygdrive prefix in the registry.  And after that,
before calling cygwin.bat, the installer should run the postinstall scripts
in /etc/postinstall.

> - Are there any known changes between the previous Windows versions and
> Windows Server 2008 being able to cause a different behaviour when "a
> program is started manually" vs. "a program is started by another program";
> eg. different User / security / environmental context?

Not that I'm aware of.  What Cygwin version are you using?  Anything
before 1.5.25-11 is a bad idea to use on Windows 2008.

> - Would it be possible for the Cygwin developers to implement the usage of
> a /tmp independet from it's windows pendant to cure this?

The usage of $TEMP/$TMP/$TMPDIR has nothing to do with Cygwin.  The
Cygwin DLL itself has no need for a tmp dir.  The reason it's used is
that bash honors (at least) $TMPDIR.  One workaround would be to delete
these environment variables before bash is called.  But, of course, this
doesn't help to track down the actual cause of the problem.

> - Are there any other steps I could try or does anyone of you perhaps have
> a solution?

I have no idea what's causing your problem.  I assume you will have to
debug it, using GDB, strace or sysinternal's tools.  The above error
message does not tell us anything useful, except that an invalid address
has been used *somewhere*.  Some debugging effort would be required
here, sorry.


Corinna

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

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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019