From owner-freebsd-ports@freebsd.org Mon Sep 19 10:59:17 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 063D8BE0FC6 for ; Mon, 19 Sep 2016 10:59:17 +0000 (UTC) (envelope-from 000.fbsd@quip.cz) Received: from elsa.codelab.cz (elsa.codelab.cz [94.124.105.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 864CF8DF; Mon, 19 Sep 2016 10:59:15 +0000 (UTC) (envelope-from 000.fbsd@quip.cz) Received: from elsa.codelab.cz (localhost [127.0.0.1]) by elsa.codelab.cz (Postfix) with ESMTP id 497B0284B0; Mon, 19 Sep 2016 12:59:12 +0200 (CEST) Received: from illbsd.quip.test (ip-86-49-16-209.net.upcbroadband.cz [86.49.16.209]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by elsa.codelab.cz (Postfix) with ESMTPSA id F1416284B6; Mon, 19 Sep 2016 12:59:10 +0200 (CEST) Subject: Re: Checking port option descriptions To: Matthew Seaman , freebsd-ports@freebsd.org References: <57DF9841.7000500@quip.cz> <2d4f9827-fa51-3950-0bcf-76d54143dd21@freebsd.org> From: Miroslav Lachman <000.fbsd@quip.cz> Message-ID: <57DFC4FE.2080303@quip.cz> Date: Mon, 19 Sep 2016 12:59:10 +0200 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:42.0) Gecko/20100101 Firefox/42.0 SeaMonkey/2.39 MIME-Version: 1.0 In-Reply-To: <2d4f9827-fa51-3950-0bcf-76d54143dd21@freebsd.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit 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, 19 Sep 2016 10:59:17 -0000 Matthew Seaman wrote on 09/19/2016 11:13: > On 09/19/16 08:48, Miroslav Lachman wrote: >> The next problem is options doing nothing to "this" port but just pull >> some other port as dependency because maintainer thinks it is useful for >> the end users to have installed it too - this should be avoided (IMHO). > > I must respectfully disagree here. Options that only affect the > run-time dependencies of a package are extremely useful. I agree that it can be useful for somebody but extremely? I don't think so and in case of pkg it is/can be opposite. >> I don't have port names in hand but I know I saw this in the past. > > Well, how about phpmyadmin as a for-instance? There are about eight PHP > modules which phpmyadmin will automagically adapt to the presence or > absence of at runtime and turn on or off corresponding bits of its user > interface. So, for example, if you have pecl-pdflib installed it will > give you options to generate a PDF diagram of your database schema. > > These are all options in the port, and they are on by default, because > why wouldn't you want the full functionality of phpmyadmin enabled? phpMyAdmin is slightly different beast which I abandoned long time ago - replaced by Adminer. And I personally don't know anybody using phpMyAdmin with full enabled options. And in a distant past phpMyAdmin has "WITHOUT WEB_DEPENDS" or something like this - which I used. While we are talking about this sort of web applications there is my experience with Adminer from ports - it can provide support for MySQL, PostgreSQL, SQLite, MSSQL and ODBC. It had no options in the past and even if you need it to access MySQL only it installs all the kind of useless dependencies. In the end of this story - we are no longer using ports versions for any PHP web applications. We are using them directly because ports were more problematic. > Well, rhetoric aside, some of those options do pull in some quite big > dependency trees. So, for instance, you can avoid pulling in all the > X11 client libraries by turning off the GD option -- of course, this > does lose you support for generating some diagrams. Yes, this is where new user are often lost - they don't know anything about why and how one checkbox can cause to compile tens of libraries making them wait half an our "just to install phpMyAdmin". But this is another story. > I do agree though that options of this type are conceptually different > to most other cases. For example, in principle there's nothing to > prevent pkg(8) throwing up a dialogue at install time and asking you > which of those run-time dependencies you want installed. Now, that > hasn't been implemented because there are questions about forcing pkg(8) > to be too interactive, which would be problematic, plus we'd need to > have a mechanism in the ports to mark these sorts of dependencies. pkg is too interactive anyway (compared to any older method) so I don't think this will be a problem. I think it will be useful to do this on install phase instead of package building phase. > From pkg(8)'s point of view, this would behave very similarly to some of > the ideas around 'sub packages' -- i.e.. having a separate packages of, > say, debug symbols or docs or examples that you could choose to install > at runtime or not. I think we can make some GUI distinction between options adding some new "compile time" functionality and "dependencies to simplify installation of many packages". This can be the case for Amavisd-new. It has a lot of dependencies options but none or few of them are really required. As I said it can be useful but then it should be marked as something that just installs another package without modifying Amavisd functionality. You still need to configure Amavisd to use them or they are autodetected. This is different for Postfix case where you must check MYSQL and compile it with MYSQL option to use it. You can't install MySQL client later and make Postfix work with it. Miroslav Lachman