From owner-freebsd-ports@FreeBSD.ORG Wed Mar 4 22:41:58 2015 Return-Path: Delivered-To: ports@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 2FC4A556 for ; Wed, 4 Mar 2015 22:41:58 +0000 (UTC) Received: from gw.catspoiler.org (cl-1657.chi-02.us.sixxs.net [IPv6:2001:4978:f:678::2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B0D0AD99 for ; Wed, 4 Mar 2015 22:41:57 +0000 (UTC) Received: from FreeBSD.org (mousie.catspoiler.org [192.168.101.2]) by gw.catspoiler.org (8.13.3/8.13.3) with ESMTP id t24Mfmmn060556 for ; Wed, 4 Mar 2015 14:41:52 -0800 (PST) (envelope-from truckman@FreeBSD.org) Message-Id: <201503042241.t24Mfmmn060556@gw.catspoiler.org> Date: Wed, 4 Mar 2015 14:41:48 -0800 (PST) From: Don Lewis Subject: proper DOXYGEN option default value To: ports@FreeBSD.org MIME-Version: 1.0 Content-Type: TEXT/plain; charset=us-ascii X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Mar 2015 22:41:58 -0000 I maintain a number of ports that use doxygen to generate their documentation. They all list DOXYGEN in OPTIONS_DEFAULT so that the packages will include documentation. I recently received a PR for one of those ports that mentioned that most users don't require the documentation and pointed out that anyone building the port will find it is very painful because of the amount of time it takes to build doxygen and all of its dependencies (primarily all the TeX stuff). It's been my experience that there is enough churn in the dependencies that the whole mess needs to get rebuilt fairly frequently. As I see it, the pros and cons of listing DOXYGEN in OPTIONS_DEFAULT are: Pros: * Users who need the documentation can use the binary packages if they desire * This option gets regular exercise on the build cluster Cons: * A bit of extra load on the ports build cluster to install doxygen and its dependencies as a BUILD_DEPENDS for each supported OS version and architecture * The packages are a bit larger * A bit more space is consumed on the user's machine because documentation is installed, even if they don't need it * Users building from ports have to build and install doxygen and it's dependencies unless they take measures to avoid it, either by disabling the option for each port or adding OPTIONS_UNSET=DOXYGEN to their /etc/make.conf to do this globally The pros and cons of removing DOXYGEN from OPTIONS_DEFAULT: Pros: * Less load on the ports build cluster * Smaller packages * Less space consumed on most user machines * Users building from ports who do not need the documentation don't pay the doxygen penalty without taking any special measures Cons: * Anyone who does need the documentation has to build from the port and pay the cost of building and installing doxygen and its dependencies. * The DOXYGEN option would not get regular testing and could be subject to bit rot. Ideally, the documentation could be built and packaged separately. It could even be NO_ARCH. Unfortunately, at this time this would require adding a bunch of new ports just for the documentation. Since these ports only generate HTML documentation, it might be helpful to have a doxygen-lite port that has GRAPHVIZ and LATEX disabled, and use that as a BUILD_DEPENDS. That introduces the problem of conflicts between doxygen and doxygen-lite if someone who builds from ports needs the full featured doxygen for other purposes. Since we have neither of the above, should I leave my ports as-is, or should I disable DOXYGEN by default?