From owner-svn-ports-all@FreeBSD.ORG Mon Aug 11 15:33:45 2014 Return-Path: Delivered-To: svn-ports-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 692EC514 for ; Mon, 11 Aug 2014 15:33:45 +0000 (UTC) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4BF7028DB for ; Mon, 11 Aug 2014 15:33:45 +0000 (UTC) Received: from bdrewery (uid 1298) (envelope-from bdrewery@freebsd.org) id 438 by freefall.freebsd.org (DragonFly Mail Agent v0.9+); Mon, 11 Aug 2014 15:33:45 +0000 Received: (qmail 57320 invoked from network); 11 Aug 2014 10:33:43 -0500 Received: from unknown (HELO roundcube.xk42.net) (10.10.5.5) by sweb.xzibition.com with SMTP; 11 Aug 2014 10:33:43 -0500 MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Mon, 11 Aug 2014 10:33:43 -0500 From: Bryan Drewery To: Vsevolod Stakhov Subject: Re: svn commit: r364287 - head/ports-mgmt/pkg-devel Organization: FreeBSD In-Reply-To: <53E7D193.3090305@FreeBSD.org> References: <53e39939.55bc.4ca5432c@svn.freebsd.org> <20140807172841.58633e63@kalimero.tijl.coosemans.org> <53E3A468.5050603@FreeBSD.org> <53E3AC0C.5020904@gmx.de> <53E3AD09.2050000@FreeBSD.org> <53E3B3B5.9000104@gmx.de> <53E3B6D8.9080101@FreeBSD.org> <53E590AC.4020105@FreeBSD.org> <53E7A512.8050008@FreeBSD.org> <53E7D193.3090305@FreeBSD.org> Message-ID: <88dcf721a5ea4bccfb3cf424da694c72@shatow.net> X-Sender: bdrewery@FreeBSD.org User-Agent: Roundcube Webmail/1.0.1 Cc: svn-ports-head@freebsd.org, Tijl Coosemans , Matthias Andree , svn-ports-all@freebsd.org, ports-committers@freebsd.org X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Aug 2014 15:33:45 -0000 On 2014-08-10 15:09, Vsevolod Stakhov wrote: > On 10.08.2014 20:40, Bryan Drewery wrote: >> On 2014-08-10 12:00, Vsevolod Stakhov wrote: >>> Bryan, >>> >>> On 09/08/14 04:08, Bryan Drewery wrote: >>>> On 8/7/2014 12:26 PM, Vsevolod Stakhov wrote: >>>>> On 07/08/14 18:13, Matthias Andree wrote: >>>>>> Am 07.08.2014 um 18:44 schrieb Vsevolod Stakhov: >>>>>> >>>>>>> On 07/08/14 17:40, Matthias Andree wrote: >>>>>>>> Am 07.08.2014 um 18:08 schrieb Vsevolod Stakhov: >>>>>>>> >>>>>> [skipped] >>>> >>>> I'm not convinced about this change. We have fixed the >>>> wine-devel-i386 >>>> which was unrelated to soname version. >>>> >>>> Will stripping .so.* break automatic reinstalling when shlibs >>>> change? >>>> That is a critical feature. >>>> >>> >>> I think, I've described in details the current issue with that at >>> #pkgng@freenode. Briefly, this change does not break "automatic >>> reinstalling when shlibs change" as it doesn't work now. >> >> If it "does't work now" it needs to be fixed. This is a regression >> over >> 1.2. Not automatically reinstalling packages when dependent shlibs >> change breaks a lot of packages. Port revision bumps do not always >> occur. Auto reinstalling for changed SHLIBS and OPTIONS is very >> important. > > See below. > >> Poudriere will automatically rebuild packages if their dependencies >> are >> updated regardless of a revision bump. If no bump occurs, yet a shlib >> is >> bumped, the package is updated. Pkg 1.2 would detect this and >> reinstall >> the packages depending on that shlib. If we are now ignoring the >> version, and it doesn't work otherwise, then we are leaving people >> with >> broken systems where the only way to handle it is 'pkg upgrade -f' >> every >> time. >> >> I understand the problem you describe of .so.X vs .so.X.Y, but this >> functionality was present during most of the RC and 1.3 releases >> right? >> It was changed due to wine? The wine issue is unrelated and is now >> fixed. I would think the more safe route would be to strip .X.* and >> keep >> .X rather than strip the entire version. > > The problem with .so was *not* related to wine. It was related to > inconsistency between provides and requires. And as far as I see it is > *not* fixed yet. > > Regarding auto install... > I would like to repeat here what I have written prior to 1.3 release: > > >> Let me explain the situation with pkg. Pkg needs to find so called >> ``upgrade chains'' that are used to upgrade packages. To find out >> packages that are suitable for upgrade we use origins in pkg 1.2 and >> name~origin in pkg 1.3. >> >> However, each package is identified by a special field called >> `manifestdigest'. In pkg 1.2, this field is just sha256(manifest). >> Unfortunately, this means that if *any* field of a package is changed >> a >> version bump is required. By fields I mean files and directories as >> well >> which leads thus to a policy where we need to bump a revision even if >> we >> have meaningless changes in the files a package provides (that happens >> after this particular change). >> >> With pkg 1.3 this behaviour has been changed to recognize the >> following >> fields only: >> >> * name >> * origin >> * version >> * arch >> * maintainer >> * www >> * message >> * comment >> * options >> >> Hence, I think that with the release 1.3 of pkg we should define >> revision bump policy to reflect this change. > > So I asked *many* times (in irc, mailing lists, private conversations) > what fields are considered to be significant, but got only few good > suggestion. And now, after 1.3 is released, changing that requires > more testing: > > https://github.com/freebsd/pkg/pull/911 > > This patch, for example, does this. But I haven't tested it yet and I > don't know what side effects could it cause. > > Nonetheless, doesn't our ports policy defines to bump PORTREVISION in > all cases that modifies a resulting package? Shlib provides/requires > changing is definitely such a change. So you blame now pkg that it > follows the current policy, don't you? I explained this in private to someone else as well... Yes it is the policy, but it is a different thing with packages. If a bump is missed for ports users it is not a big problem as they can remedy it with portmaster by rebuilding ports depending on the changed shlib. Package users have no way to fix their packages, so the remote must have rebuilt them to link to the new library so the user can have a working system without needing to checkout ports every time a committer is lazy about chases. Without a bump, or pkg handling it, it would result in the user being forced to reinstall packages one by one or with upgrade -f, or saving all shlibs in /usr/local/lib/compat/pkg. It's an ugly situation. I dislike how it is all handled honestly. It destroys the idea of a reproducible package. -- Regards, Bryan Drewery