From owner-freebsd-ports@FreeBSD.ORG Wed May 30 19:32:09 2012 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B4C7B1065673; Wed, 30 May 2012 19:32:09 +0000 (UTC) (envelope-from rflynn@acsalaska.net) Received: from mailhub.rachie.is-a-geek.net (rachie.is-a-geek.net [66.230.99.27]) by mx1.freebsd.org (Postfix) with ESMTP id 51D9F8FC1A; Wed, 30 May 2012 19:32:09 +0000 (UTC) Received: from [127.0.0.1] (squeeze.lan.rachie.is-a-geek.net [192.168.2.30]) by mailhub.rachie.is-a-geek.net (Postfix) with ESMTP id 3F32C7E84F; Wed, 30 May 2012 11:32:06 -0800 (AKDT) Message-ID: <4FC675B3.9020204@acsalaska.net> Date: Wed, 30 May 2012 21:32:03 +0200 From: Mel Flynn User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20120428 Thunderbird/12.0.1 MIME-Version: 1.0 To: Doug Barton References: <4FBA618A.1050707@freebsd.org> <20120521155736.GA79323@DataIX.net> <4FBA6FEB.1000706@quip.cz> <4FC45D40.4060200@FreeBSD.org> <4FC4AC34.70902@acsalaska.net> <4FC501F9.8080304@FreeBSD.org> In-Reply-To: <4FC501F9.8080304@FreeBSD.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: Michael Scheidell , Miroslav Lachman <000.fbsd@quip.cz>, freebsd-ports@freebsd.org Subject: Re: PHP 5.4.0 : lang/php54 X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 May 2012 19:32:09 -0000 On 29-5-2012 19:06, Doug Barton wrote: > On 5/29/2012 4:00 AM, Mel Flynn wrote: >> On 29-5-2012 7:23, Doug Barton wrote: >> Not too hard for leaf ports. But with ports that are depended on, there >> is always a default, whether it's named that way or not. You're just >> changing the problem slightly: > > Not slight at all. I have dealt with many iterations of mass-updates to > many systems caused by the silliness we're talking about here. If > everyone affected by the lang/php debacle currently had been able to > simply set WITH_PHP_VER= 53 prior to the default changing in order to > stay at lang/php53, the introduction of lang/php54 would have been a no-op. Right. The issue I'm talking about is that fixing the problem of staying with a version, introduces a problem for people that have their software up-to-date and don't use deprecated features. Instead of simply upgrading they now have to jump through hoops of changing origins on multiple ports and their depending ports. Each time a new perl version is introduced or the default changes there are failure reports and compared to php, perl is easy as the modules have a single prefix (p5-) vs the versioned prefix now used by the php ports. >> 2) All ports that depend on "the previous default version" are assumed >> to be working with "the new default version". > > Hopelessly naive. And demonstrably untrue in the case of PHP. No, it's the assumption made by the ports system as is - both now and if you'd version all PHP ports. Maintainers get a heads up of a new version, but in practice not all have the time to fully test if their application is ready for it and the ones not being able to test in time are simply "assumed to be working". >> Instead of an "omfg I >> don't wanna upgrade" problem, you have an "I installed php-foo but it >> don't work!" problem and an additional "how do I upgrade to the new >> version?" problem. > > The latter problem is soluble. Making the first problem go away is critical. Stating it, doesn't make it true. Fact is that right now, again, people that have their applications in shape have zero problems upgrading. I can easily state that people that don't want to upgrade can put a +IGNOREME in their respective ports or simply not run upgrades, but the fact of the matter is that the solution that satisfies all isn't that easy. First of all, php is an oddball in the interpreted languages, since it's loadable module directory is not based on release versions but API compatibility. While in theory that's a good thing, it also means that if the module API does not change, that the dependency tracking of the port system fails, as the module will be in exactly the same spot for version X as version Y. Possible solution here is to force depending packages to use a pkg_info-based dependency. Secondly, it also installs only a fraction of it's bundled modules in the main port. This complicates the logic should you decide to use a single PKGPREFIX for for the different extensions as the distinfo, WRKSRC and possibly dependencies has to be set properly. Some packages have moved from pecl- to the main distribution in the past, which makes things even more complicated. Some lessons may be learned from Perl here, though I'm not sure if they have actually moved compiled modules from CPAN into the main source. Finally, if you have a vast number of machines to worry about, know how the php port works and see trouble ahead because of incompatibilities introduced, then why on earth are you not using a local version of the port and merge at your own leisure? -- Mel