delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2020/06/07/03:43:58

X-Recipient: archive-cygwin AT delorie DOT com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B3677386F432
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
s=default; t=1591515789;
bh=vawpOOg8QL5crgmSy7017LMeBR58pR9+jyIFOyUPCIo=;
h=Date:To:Subject:In-Reply-To:References:List-Id:List-Unsubscribe:
List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:
From;
b=RPSH//E/n496XcqOSUjud9QorcLaI/eVEsyvwvropFzbKukqPf1IKX/n0C9ekBDLv
RCjFwHDkbFfy8WRpPbQOoo2CkpaHRqyFK5NKDNtpyUl/0/hD7jDHqpjs9DJQCB6Q2b
T/0ZnByvdClqQdQJ2I3gS67vRb/lXl742N9deAZI=
X-Original-To: cygwin AT cygwin DOT com
Delivered-To: cygwin AT cygwin DOT com
DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 910A3386F432
DKIM-Filter: OpenDKIM Filter v2.10.3 conssluserg-03.nifty.com 0577gi9w014039
X-Nifty-SrcIP: [124.155.38.192]
Date: Sun, 7 Jun 2020 16:42:52 +0900
To: cygwin AT cygwin DOT com
Subject: Re: cygwin-3.1.0 and mintty from desktop shortcut
Message-Id: <20200607164252.600bf8b688d2f543dc12f373@nifty.ne.jp>
In-Reply-To: <d5f8450c-c6cd-b790-6308-85d5d772606d@SystematicSw.ab.ca>
References: <announce DOT 20191216201131 DOT 494767-1-corinna-cygwin AT cygwin DOT com>
<87pngmx26z DOT fsf AT Rainer DOT invalid>
<20191218090415 DOT GG10310 AT calimero DOT vinschen DOT de>
<87a77pbn5j DOT fsf AT Rainer DOT invalid> <87blp2lr6p DOT fsf AT Rainer DOT invalid>
<20200311195142 DOT GH4042 AT calimero DOT vinschen DOT de>
<c3c4e96a-63bc-5b7d-5fb5-2ad21ec36cdf AT emrich-ebersheim DOT de>
<87d09htlac DOT fsf AT Rainer DOT invalid>
<20200313100325 DOT fe62798353f4c719ecf565e0 AT nifty DOT ne DOT jp>
<87v9k4e8zz DOT fsf AT Otto DOT invalid>
<20200607103528 DOT 2eaea7de72b0afaa43d0b335 AT nifty DOT ne DOT jp>
<d5f8450c-c6cd-b790-6308-85d5d772606d AT SystematicSw DOT ab DOT ca>
X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.30; i686-pc-mingw32)
Mime-Version: 1.0
X-Spam-Status: No, score=-1.2 required=5.0 tests=BAYES_00, DKIM_SIGNED,
DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_BARRACUDACENTRAL,
RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS,
TXREP autolearn=no autolearn_force=no version=3.4.2
X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on
server2.sourceware.org
X-BeenThere: cygwin AT cygwin DOT com
X-Mailman-Version: 2.1.29
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Unsubscribe: <http://cygwin.com/mailman/options/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=unsubscribe>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-request AT cygwin DOT com?subject=help>
List-Subscribe: <http://cygwin.com/mailman/listinfo/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=subscribe>
From: Takashi Yano via Cygwin <cygwin AT cygwin DOT com>
Reply-To: Takashi Yano <takashi DOT yano AT nifty DOT ne DOT jp>
Errors-To: cygwin-bounces AT cygwin DOT com
Sender: "Cygwin" <cygwin-bounces AT cygwin DOT com>

On Sun, 7 Jun 2020 00:15:59 -0600
Brian Inglis wrote:
> On 2020-06-06 19:35, Takashi Yano via Cygwin wrote:
> > On Sat, 06 Jun 2020 13:20:16 +0200
> > ASSI wrote:
> >> Takashi Yano via Cygwin writes:
> >>>> 1. Rename /usr/share/locale to something else, like local.bak.
> >>>> 2. Start mintty in the usual way.
> >>>> 3. Rename the directory from step 1 back to /usr/share/local.
> >>>> 4. Work just like the problem never existed either in the shell running
> >>>> inside the mintty or even start a new mintty.
> >>>
> >>> I guess renaming /usr/share/locale/locale.alias is enough.
> >>
> >> I've had some time to look into this problem again after having updated
> >> Cygwin to the latest and greatest.  Indeed, when
> >>
> >> /usr/share/locale/locale.alias
> >>
> >> gets renamed, the problem also goes away.  This is great because I don't
> >> really need the locale aliases for anything.  Btw, my laptop got
> >> upgraded to Win10 1909 (Enterprise) in the meantime, so the issue isn't
> >> specific to 1803 as was supected earlier.
> >>
> >> I then tried to figure out what exactly causes the problem and it turns
> >> out that it's the _presence_ of this file with the additional condition
> >> that it must not be owned by the user starting the mintty/shell.  Since
> >> I install Cygwin on my work laptop with a different (admin) account and
> >> not my (non-admin) user account, that explains why I am seeing the
> >> problem there and not on other machines.  Before you are going to
> >> suggest that it's the admin vs. non-admin rights: no, if I create a
> >> locale.alias with my user account (either as an empty file or a copy of
> >> the backup file), then the admin account is unable to start a shell in
> >> mintty successfully.  I have no idea why the ownership of a file that
> >> onnly should get read (and is readable by everyone) would have the
> >> effect I'm seeing, but maybe that gives the clue on where to look for a
> >> fix.
> > 
> > Thanks for the additional information. I tested the following steps
> > to confirm if the problem can be reproduced.
> > 
> > 1. Enable Administrator account.
> > 2. Remove all groups from account yano other than Users.
> > 3. Install cygwin for all with gettext package as Administrator.
> > 4. Run mintty from desktop shortcut as Administrator.
> > 5. Run mintty from desktop shortcut as yano.
> > 
> > Both 4 and 5 successfully open mintty window with shell.
> > 
> > I wonder what is the difference between my environment and yours.
> 
> Locale setting?
> 
> fhandler_tty.cc(fhandler_pty_slave::setup_locale)@2854 calls
> get_langinfo AT 2768 calls AT 2781
> nlsfuncs.cc(__set_locale_from_locale_alias)@1462
> which opens /usr/share/locale/locale DOT alias AT 1472.
> 
> One problem I see with that is that __set_locale_from_locale_alias is meant to
> be called when loadlocale fails with an unrecognized locale, but in
> get_langinfo AT 2778 if the locale is not found, it is defaulted to C before
> __set_locale_from_locale_alias is called, defeating the purpose:
> 
>   const char *locale = __loadlocale (&loc, LC_CTYPE, new_locale);
>   if (!locale)
>     locale = "C";
> 
>   char tmp_locale[ENCODING_LEN + 1];
>   char *ret = __set_locale_from_locale_alias (locale, tmp_locale);
>   if (ret)
>     locale = tmp_locale;

Hmm..., you are right. Furthermore, __set_locale_from_locale_alias()
here is completely unnecessary since it is already processed in
__loadlocale().

I will remove that code.

-- 
Takashi Yano <takashi DOT yano AT nifty DOT ne DOT jp>
--
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

- Raw text -


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