From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 100818 invoked by alias); 7 Nov 2016 14:13:43 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 100795 invoked by uid 89); 7 Nov 2016 14:13:42 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=cal, backward, Their, Hx-languages-length:1792 X-HELO: mx1.redhat.com Subject: Re: [RFC][PATCH v4 06/11] Provide backward compatibility for strftime family (bug 10871). To: Rafal Luzynski , libc-alpha@sourceware.org References: <758885038.1799972.1477615768169@poczta.nazwa.pl> <71b7640e-55b0-06a5-1dff-b0fcbaf0eea9@redhat.com> <1458120697.2205845.1478343189427@poczta.nazwa.pl> From: Florian Weimer Message-ID: <238ab162-7ff7-d90e-9f95-630ac413a064@redhat.com> Date: Mon, 07 Nov 2016 14:13:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: <1458120697.2205845.1478343189427@poczta.nazwa.pl> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-SW-Source: 2016-11/txt/msg00233.txt.bz2 On 11/05/2016 11:53 AM, Rafal Luzynski wrote: > 4.11.2016 14:40 Florian Weimer wrote: >> >> >> On 10/28/2016 02:49 AM, Rafal Luzynski wrote: >>> As %OB format specifier has been added to strftime/wcsftime >>> family of functions backward compatibility implementation must be >>> provided for older binaries which assume that %B returns >>> a month name in the nominative case. >> >> I think this is a misuse of symbol versioning. Why would I want to pick >> up this change when compiling from source, but not for existing binaries? >> >> Florian > > There may be applications which rely on the fact that "%B" > returns the month name in a nominative case. An example is cal(1) > which has been pointed out in [1]. Their source code should be > changed to use "%OB" but it cannot be expected from the existing > binaries. > You could also ask how to provide the backward compatibility > for the applications compiled from source. Yes, that's what I'm concerned about. > I think it's impossible and it's been kinda agreed in [2]. I think we should strive to provide backwards compatibility for applications and not alter the meaning of %B, and rather change %c to use %OB (or whatever the source of the month name in genitive ends up to be) instead of %B. One example where this matters is German. If POSIX requires that %B returns the genitive case, as has been suggested, then all applications which currently use %B are broken because I have yet to see a mechanically generated German date string which actually needs the genitive case. In current usage, they only occur in phrases such “on the last Sunday of November”. Does this clarify my position? Thanks, Florian