From owner-freebsd-ports@freebsd.org Mon Oct 3 16:29:05 2016 Return-Path: Delivered-To: freebsd-ports@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C0326AF4B67 for ; Mon, 3 Oct 2016 16:29:05 +0000 (UTC) (envelope-from list1@gjunka.com) Received: from msa1.earth.yoonka.com (yoonka.com [185.24.122.233]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "msa1.earth.yoonka.com", Issuer "msa1.earth.yoonka.com" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 7D387628; Mon, 3 Oct 2016 16:29:05 +0000 (UTC) (envelope-from list1@gjunka.com) Received: from crayon2.yoonka.com (crayon2.yoonka.com [10.70.7.20]) (authenticated bits=0) by msa1.earth.yoonka.com (8.15.2/8.15.2) with ESMTPSA id u93GT3wa041140 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Mon, 3 Oct 2016 16:29:03 GMT (envelope-from list1@gjunka.com) Subject: Re: dependency explosions To: Mathieu Arnold , freebsd-ports@freebsd.org References: <2df71272-7b98-ad73-650a-3ec70beb71d5@freebsd.org> <19d248ae-8919-fdc9-84e8-ff90ae761e6f@gjunka.com> <20161003151148.4860ca1a@curlew.lan> <6d1eb20d-4597-8176-3dbd-661648a6a03c@gjunka.com> <6bb0a476-ed26-1bdd-5ec5-0d6e2adf0b76@FreeBSD.org> From: Grzegorz Junka Message-ID: <1d50327a-161a-8ec8-9065-fc853ed79a13@gjunka.com> Date: Mon, 3 Oct 2016 16:29:03 +0000 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 MIME-Version: 1.0 In-Reply-To: <6bb0a476-ed26-1bdd-5ec5-0d6e2adf0b76@FreeBSD.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Oct 2016 16:29:05 -0000 On 03/10/2016 14:48, Mathieu Arnold wrote: > Le 03/10/2016 à 16:29, Grzegorz Junka a écrit : >> On 03/10/2016 14:11, Mike Clarke wrote: >>> On Mon, 3 Oct 2016 13:11:43 +0000 >>> Grzegorz Junka wrote: >>> >>>> Shouldn't all packages default to noX dependencies? If I am not >>>> mistaken >>>> FreeBSD is predominantly a server-side system, with X running only >>>> occasionally >>> I'd disagree with that. I don't know whether or not the majority of >>> FreeBSD installations are servers or personal computers but the chances >>> are that the majority of server installations will have relatively few >>> packages installed whereas most PC's are likely to make use of far >>> more packages and are also likely to be using X. Building from ports >>> to get the required options would be a much bigger task for these >>> installations than it would be for the servers. >>> >> I have been wondering if it would be possible to have two distinct set >> of packages compiled automatically, one tailored for X and one for the >> console. It seems that requirements of both environment are quite >> opposite. The server-side requires small amount of packages without X >> because it wants to run the system headless, as long as possible and >> without interruptions and restarts. Whereas the X/PC environment >> always wants to have everything latest and newest. In the Linux world >> they would just create a new distribution, even in the BSD world there >> is PC-BSD/TrueOS. But we have ports and can re-use the same base for >> two distinctive set of packages. I don't believe we can create >> pre-compiled packages for FreeBSD in such a way, that both camps are >> happy (which this thread is one of many signs of). > The FreeBSD project cannot provide more than one set of packages. If we > went that way, we would end up having to provide, say, [with X, without > X]x[apache 2.2, apache 2.4]x[php56, php70]x[postgresql 9.3, 9.4, 9.5, > 9.6]x[insert 5 flavors of mysql]x[openssl, libressl]... I'm sure I can > find other kind of options, and that is already 320 sets. > Right now, we build packages for > [9,10,11,12]x[amd64,i386]x[head,quarterly], that's 16 different sets, > and we mostly manage to build them over and over again, every two days. > Imagine how long it would take to build 320 sets. > You are trying to take that into extreme to ridicule this as an option. You can't possibly build 320 sets, even if you had enough build machines, because each set would need to contain incompatible packages. If you choose, say, php56 as the default, then you can't possibly install a package that depends on php70. The amount of combinations would expand exponentially. It would be like having 320 different incompatible sets of packages to test. The same with packages that depend on X. Sure, if you install emacs-nox11 you can still install other packages that depend on X, but at some point it would start to break, e.g. you wouldn't be able to install ImageMagick-nox11 and ImageMagick at the same time. What I proposed is to have two sets of packages, one for server use (noX, maybe other defaults) and one for desktop use (X, multimedia, maybe other defaults). You usually don't switch a machine that's working as a desktop workstation to suddenly become a rack server in some data center. Grzegorz