From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 049F213877A for ; Mon, 16 Jun 2014 09:44:17 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 41663E0D08; Mon, 16 Jun 2014 09:44:11 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 5F24DE0CE4 for ; Mon, 16 Jun 2014 09:44:10 +0000 (UTC) Received: from [192.168.1.33] (198.Red-2-137-229.dynamicIP.rima-tde.net [2.137.229.198]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: pacho) by smtp.gentoo.org (Postfix) with ESMTPSA id E7CCF33FDA2 for ; Mon, 16 Jun 2014 09:44:08 +0000 (UTC) Message-ID: <1402911843.2466.7.camel@belkin5> Subject: Re: [gentoo-dev] Subslots: should they be bumped like SONAME or on any ABI changes? From: Pacho Ramos To: gentoo-dev@lists.gentoo.org Date: Mon, 16 Jun 2014 11:44:03 +0200 In-Reply-To: <20140614164151.45afb5ca@pomiot.lan> References: <20140614164151.45afb5ca@pomiot.lan> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.12.3 Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@lists.gentoo.org Reply-to: gentoo-dev@lists.gentoo.org Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-Archives-Salt: 139aa3a9-cfdf-4537-8d85-09ab4a316535 X-Archives-Hash: ce8d80c335cf8f1d16248ce7e22cb30b El sáb, 14-06-2014 a las 16:41 +0200, Michał Górny escribió: > Hi, > > Some time ago we've got bug #510780 [1] asking us to bump subslot > on LLVM even though the new version was ABI-compatible with previous > one. It was because it introduced new APIs which applications could > make use of. Since I believe this is a wider issue, I would like to > know the opinion of our community about this. > > More specifically: do we want subslots to change only when backwards- > incompatible ABI changes are done -- alike SONAME -- or whenever any > ABI change is done? The problem seems a bit complex. > > Considering the libtool versioning, there are two kinds of library > bumps relevant to us: > > 1) when ABI is altered in backwards-compatible way (so old stuff is not > touched), > > 2) when ABI is altered in backwards-incompatible way. > > Option 1) corresponds to bumping minor libtool version, option 2) to > bumping SONAME. I think most of the packages follow SONAME in subslots > and therefore care only about 2). > > If we decide to keep bumping subslots only when SONAME changes, this > has two implications: > > a) new features introduced libraries are not used by packages built > prior to upgrading the library, > > b) packages built after upgrading the library may be broken when it is > downgraded (if they use the newer ABI). > > I think a) is not *that* a big deal since usually new ABIs involve new > APIs, and those involve code changes in the reverse dependency. Then we > can usually assume that the new version of reverse dependency will be > added (and therefore upgraded to) after the library in question. > > I have no strong opinion about b). This is a known issue with SONAMEs, > and I'm not sure if we really support people downgrading. It is worth > noting, however, that sometimes we ourselves force downgrades due to > issues with new versions. > > If we decide to bump subslots to match major+minor ABI version, we > force the reverse dependencies to always use the ABI corresponding to > installed library version. However, this means that we force much more > rebuilds than necessary. > > For example, glib-2 often introduces new APIs while packages obviously > don't use them immediately or at all. We will be forcing rebuild of > every reverse dependency at glib-2 upgrade, while the user will most > likely need to wait for another version bump (and rebuild) to get > the new glib-2 features used. > > What do you think? > > [1]:https://bugs.gentoo.org/show_bug.cgi?id=510780 > I would opt for forcing rebuilds only when necessary, I mean, when not rebuilding them will cause issues. If people want to force packages to use latest glib-2 (for example), I guess they can do that "manually" (as the case of people rebuilding everything on every major gcc update)