From owner-freebsd-ports@FreeBSD.ORG Tue Jun 26 10:42:20 2012 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C71DC1065670 for ; Tue, 26 Jun 2012 10:42:20 +0000 (UTC) (envelope-from m.seaman@infracaninophile.co.uk) Received: from smtp.infracaninophile.co.uk (smtp6.infracaninophile.co.uk [IPv6:2001:8b0:151:1:3cd3:cd67:fafa:3d78]) by mx1.freebsd.org (Postfix) with ESMTP id 3AF4F8FC0C for ; Tue, 26 Jun 2012 10:42:20 +0000 (UTC) Received: from seedling.black-earth.co.uk (seedling.black-earth.co.uk [81.187.76.163]) (authenticated bits=0) by smtp.infracaninophile.co.uk (8.14.5/8.14.5) with ESMTP id q5QAgGpv035771 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Tue, 26 Jun 2012 11:42:16 +0100 (BST) (envelope-from m.seaman@infracaninophile.co.uk) X-DKIM: OpenDKIM Filter v2.5.2 smtp.infracaninophile.co.uk q5QAgGpv035771 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=infracaninophile.co.uk; s=201001-infracaninophile; t=1340707336; bh=BGXnR29cPWkw+m0ZosTyOxfmINgPj+8EaFfZvkoUSjA=; h=Date:From:To:CC:Subject:References:In-Reply-To:Content-Type: Message-ID:Mime-Version; b=uZ/tmo597t+BKwFDBMNTRrS1rE4hIfKRSQPjSvVCOCs7esGH8rV43hHwUO1jmvFZ3 dXSHt0xc8k8QKgHmHunOuyo6JhWlnBHuzEJ/sf1UJGrMzFQGAVkildHT0cVeMa+OI/ eEx2qMD/RpvGzATefbkhNFoHccpOazS8S+WZc/VE= Message-ID: <4FE99200.7050107@infracaninophile.co.uk> Date: Tue, 26 Jun 2012 11:42:08 +0100 From: Matthew Seaman User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:13.0) Gecko/20120614 Thunderbird/13.0.1 MIME-Version: 1.0 To: Andrea Venturoli References: <4FE8E4A4.9070507@gmail.com> <20120626065732.GH41054@ithaqua.etoilebsd.net> <20120626092645.Horde.HytQbVNNcXdP6WQ1aMtjoMA@webmail.df.eu> <4FE96BA0.6040005@infracaninophile.co.uk> <4FE97008.2060501@netfence.it> <4FE97AE1.9080109@infracaninophile.co.uk> <4FE9817C.7020905@netfence.it> In-Reply-To: <4FE9817C.7020905@netfence.it> X-Enigmail-Version: 1.4.2 OpenPGP: id=60AE908C Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enigD3C4B492E470DC398508AB17" X-Virus-Scanned: clamav-milter 0.97.5 at lucid-nonsense.infracaninophile.co.uk X-Virus-Status: Clean X-Spam-Status: No, score=-1.8 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00, DKIM_ADSP_ALL,DKIM_SIGNED,T_DKIM_INVALID autolearn=no version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on lucid-nonsense.infracaninophile.co.uk Cc: freebsd-ports@freebsd.org Subject: Re: Port system "problems" 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: Tue, 26 Jun 2012 10:42:20 -0000 This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enigD3C4B492E470DC398508AB17 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On 26/06/2012 10:31, Andrea Venturoli wrote: > On 06/26/12 11:03, Matthew Seaman wrote: >=20 >> Yes, it will multiply the number of ports. By three is about right, >> given that most ports will only have port-docs and port-examples >> sub-ports. However, first of all, you are assuming that the effort >> required to install each of those sub-ports is the same as it is to >> install a single port now. That is simply not the case. >=20 > Not exactly. > I still didn't get the details, so I might speak nonsense, however... >=20 > The "effort" will be 3x processing time for portupgrade (or whatever) t= o > update the package database 3 times as much as before. > I remember the big X.org split up: going from a few ports to tens of > them slowed down an installation/upgrade process by an order of > magnitude (or even more). The X.org split up is an extreme case -- it went from three or four ports to several hundred ports as I recall. Yes, that made a big difference, because they were all individual ports and all of the processing steps required to install a port had to be repeated for each of them. Sub-ports should be much more efficient, as there's a lot of the work involved in installing which is a one-time thing when installing port plus some collection of sub-ports. Also remember that this whole change is driven in part by the switch to pkgng, and that uses a completely different package database system to the current ports. I can't say for certain that it will be a lot faster, because as far as I know, no one has done a properly designed study of the difference in performance. However anecdotal evidence is that it does seem quite a lot faster. >> A typical example would involve client-server apps -- so mysqlNN-serve= r >> becomes a sub-port of mysqlNN-client. You get to check a box saying >> 'install the server as well as the client' when you go to install >> mysqlNN. Similarly all those php5-XYZ modules become sub-ports of >> lang/php5. >=20 > We had this in the past: a php-extension port with options to include > each extension or leave it out. > Each time we needed to add a missing extension, we needed to reconfigur= e > this port and rebuild all. > Now we have each extension in its own port and I think it's much better= =2E > I just hope we don't get back to that. >=20 >=20 >=20 > What I anticipate will often happen is installing some port, finding ou= t > that some part is missing, install the missing part, repeat that severa= l > times. > I just hope I'm wrong (and again, it is at all possible that I am wrong= > here). Yes, you raise a valid point. Should you have to compile and maybe reinstall all of php5 just to add some extra modules? Clearly not. This isn't going to be a problem for people that use binary packages, because they can just download and install the extra module from the standard pkg repositories on the net. What about people that want to compile their own? They certainly should not be relegated to second-class citizens even in this bright new dawn of pkgng. Well, part of the answer is under development: http://wiki.freebsd.org/ports/StageDir With this, you can create packages without having to install them. You can equally well create sub-packages without having to install them. So, you might compile all of the php5 sub-packages, but only install some of them. The rest you keep stashed away somewhere, so that when you suddenly discover a pressing need to add php5-shiny to your existing collection of php-related bits, it's just a matter of 'pkg add php5-shiny= '. Cheers, Matthew --=20 Dr Matthew J Seaman MA, D.Phil. 7 Priory Courtyard Flat 3 PGP: http://www.infracaninophile.co.uk/pgpkey Ramsgate JID: matthew@infracaninophile.co.uk Kent, CT11 9PW --------------enigD3C4B492E470DC398508AB17 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.16 (Darwin) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk/pkgcACgkQ8Mjk52CukIzySgCgjPePreiFjAospfBfnCOloHnk CfYAn2vRxJpogmti/L76IO9ncMhKoSYB =yKaP -----END PGP SIGNATURE----- --------------enigD3C4B492E470DC398508AB17--