Date: Tue, 21 Feb 2017 19:19:09 +0100 From: Tijl Coosemans <tijl@FreeBSD.org> To: "Mikhail T." <mi+thun@aldan.algebra.com> Cc: Mathieu Arnold <mat@FreeBSD.org>, Jan Beich <jbeich@freebsd.org>, ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: Re: Misuse of PORTREVISION (Re: svn commit: r434379 - head/multimedia/x265) Message-ID: <20170221191909.1639f628@kalimero.tijl.coosemans.org> In-Reply-To: <17b5afa1-c0b4-a79e-aea1-d0ae918469e8@aldan.algebra.com> References: <20170218210541.82AA915F6@freefall.freebsd.org> <f23cecfc-d669-e62b-1916-1e16e66fb3eb@aldan.algebra.com> <a9be8749-360f-15fb-aa75-93a378371c51@FreeBSD.org> <d5e81c35-41fe-4f5c-4f45-e069d93ce911@aldan.algebra.com> <fee7b990-45db-1e52-22d8-fb1b21e9c030@FreeBSD.org> <17b5afa1-c0b4-a79e-aea1-d0ae918469e8@aldan.algebra.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 21 Feb 2017 11:24:07 -0500 "Mikhail T." <mi+thun@aldan.algebra.com> wrote: > On 21.02.2017 11:16, Mathieu Arnold wrote: >> When using poudriere, you do not need to bump PORTREVISION, it will >> rebuild everything that needs rebuilding, and then, when you run pkg >> upgrade, pkg will force the reinstallation of packages because a >> dependencing shlib version was changed. > I thought so, thanks for the confirmation. >> Like I said, the problem is only with portmaster and portupgrade, not >> all our tools. I have used poudriere + pkg upgrade exclusively for 3+ >> years, and never had a problem shlib version changes. > Why then is the bumping of PORTREVISION still mandatory? We are > pessimizing things for the users of correctly-functioning tools to help > those using the broken ones. And ensure, the broken tools will never be > fixed all along. We do still support regular "make install clean" right? Doing a PORTREVISION bump is the way we inform users to rebuild that port. Without that they would have to look for library version changes all the time. The ports tree is a layer around upstream build systems. If we're going to require additional layers like poudriere to actually use the ports tree, then the ports tree is a failure or at least lacking functionality. Poudriere does not rebuild everything that needs to be rebuilt by the way. It just always rebuilds everything, full stop. The only proper way (imho) to avoid PORTREVISION bumps on dependent ports is to put rebuild signals in the port Makefile, perhaps like this: VERSION=0 AGE=0 On every backwards compatible update, increment both VERSION and AGE. On every incompatible update, increment VERSION and set AGE=0. A package that depends on a version older than VERSION-AGE needs to be rebuilt. This can be refined further: (This is how libtool deals with library versions.) VERSION=0 AGE=0 REVISION=0 On every minor update that does not add new functionality that dependent ports would have to be rebuilt for to use it, increment REVISION. On every backwards compatible update that adds new functionality that dependent ports need to be rebuilt for to use it, increment VERSION and AGE and set REVISION=0. On every incompatible update, increment VERSION and set AGE=0 and REVISION=0. A package that depends on a version older than VERSION-AGE needs to be rebuilt. A package that depends on a version older than VERSION may be rebuilt to pick up new functionality. Poudriere could also use such information to be a bit smarter about what it rebuilds.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20170221191909.1639f628>