From owner-freebsd-ports@FreeBSD.ORG Tue Jun 26 08:56:14 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 08BC5106564A for ; Tue, 26 Jun 2012 08:56:14 +0000 (UTC) (envelope-from mva@FreeBSD.org) Received: from smtprelay01.ispgateway.de (smtprelay01.ispgateway.de [80.67.31.39]) by mx1.freebsd.org (Postfix) with ESMTP id 8CBF98FC16 for ; Tue, 26 Jun 2012 08:56:13 +0000 (UTC) Received: from [80.67.16.116] (helo=webmailfront01.ispgateway.de) by smtprelay01.ispgateway.de with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.68) (envelope-from ) id 1SjRZE-0002MT-3X for freebsd-ports@FreeBSD.org; Tue, 26 Jun 2012 10:56:12 +0200 Received: from 83.246.65.143 ([83.246.65.143]) by webmail.df.eu (Horde Framework) with HTTP; Tue, 26 Jun 2012 10:56:12 +0200 Date: Tue, 26 Jun 2012 10:56:12 +0200 Message-ID: <20120626105612.Horde.ZsWMSbuWis5P6XksFCay6xA@webmail.df.eu> From: Marcus von Appen To: freebsd-ports@FreeBSD.org References: <4FE8E4A4.9070507@gmail.com> <20120626065732.GH41054@ithaqua.etoilebsd.net> <20120626092645.Horde.HytQbVNNcXdP6WQ1aMtjoMA@webmail.df.eu> <4FE96BA0.6040005@infracaninophile.co.uk> <20120626103400.Horde.8frYBVNNcXdP6XP4ZP-0deA@webmail.df.eu> <20120626084433.GJ41054@ithaqua.etoilebsd.net> In-Reply-To: <20120626084433.GJ41054@ithaqua.etoilebsd.net> User-Agent: Internet Messaging Program (IMP) H4 (5.0.19) Content-Type: text/plain; charset=ISO-8859-1; format=flowed; DelSp=Yes MIME-Version: 1.0 Content-Disposition: inline X-Df-Sender: ZnJlZWJzZEBzeXNmYXVsdC5vcmc= Cc: 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 08:56:14 -0000 Baptiste Daroussin : > On Tue, Jun 26, 2012 at 10:34:00AM +0200, Marcus von Appen wrote: >> Matthew Seaman : >> >> > On 26/06/2012 08:26, Marcus von Appen wrote: >> >>>> 1. Ports are not modular >> > >> >>> What do you mean by modular? if you are speaking about subpackages it >> >>> is coming, >> >>> but it takes time >> > >> >> I hope, we are not talking about some Debian-like approach here (foo-bin, >> >> foo-dev, foo-doc, ....). >> > >> > Actually, yes -- that's pretty much exactly what we're talking about >> > here. Why do you feel subpackages would be a bad thing? >> >> Because it makes installing ports more complex, causes maintainers to rip >> upstream installation routines apart, and burdens users with >> additional tasks >> to perform for what particular benefit (except saving some disk space)? >> >> If I want to do some development the Debian way, I would need to do the >> following: >> >> - install foo-bin (if it ships with binaries) >> - install foo-lib (libraries, etc.) >> - install foo-dev (headers, etc.) >> - install foo-doc (API docs) >> >> With the ports I am currently doing: >> >> - install foo >> > > yes but you do not allow to install 2 packages one depending on > mysql51 and one > depending on mysql55, there will be conflicts on dependency just because of > developpement files, the runtime can be made not to conflict. But I can't install mysql51-dev and mysql55-dev. Resolving those conflicts by e.g. introducing unique prefixes would be much better. Shouldn't we rather find a solid concept for avoiding CONFLICT entries by using e.g. improved prefixes, instead of starting to split packages, which does not add any noticeable benefit (at least I can't see one yet). > I trust maintainers to no abuse package splitting and do it when it > make sense. > > In the case you give I would probably split the package that way: > foo (everything needed in runtime: bin + libraries) If the libs of e.g. mysql51 and mysql55 are named similar, we still have the same problem as mentioned above and end up with additionaly hackery, which better would be placed elsewhere. > foo-dev (everything needed for developper: headers, static > libraries, pkg-config > stuff, libtool stuff, API docs) > foo-docs (all user documentation about the runtime) For which version? 51, 55? Again, we need some prefix hackery to keep that clean and allow a side-by-side installation. Although I refer to your example, it is not limited to it. The same applies to other ports, which install multiple versions. I doubt, that splitting ports is the right way to go here, since it does not solve the initial problem. As long as there are CONFLICTs, splitting just tries to circumvent them. Instead we should handle them right from the start. We did it with some success (and still existing regressions) for e.g. lang/python. So we surely can take our time to edge out some guidelines and best practices for avoiding CONFLICTs. Cheers Marcus