From owner-freebsd-ports@freebsd.org Sun Dec 17 19:04:36 2017 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 C8340E9253B for ; Sun, 17 Dec 2017 19:04:36 +0000 (UTC) (envelope-from adamw@adamw.org) Received: from mailman.ysv.freebsd.org (unknown [127.0.1.3]) by mx1.freebsd.org (Postfix) with ESMTP id B2E1B7A794 for ; Sun, 17 Dec 2017 19:04:36 +0000 (UTC) (envelope-from adamw@adamw.org) Received: by mailman.ysv.freebsd.org (Postfix) id B226DE9253A; Sun, 17 Dec 2017 19:04:36 +0000 (UTC) Delivered-To: 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 B1C3FE92539 for ; Sun, 17 Dec 2017 19:04:36 +0000 (UTC) (envelope-from adamw@adamw.org) Received: from apnoea.adamw.org (apnoea.adamw.org [104.225.5.94]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "apnoea.adamw.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id AA1C67A793 for ; Sun, 17 Dec 2017 19:04:35 +0000 (UTC) (envelope-from adamw@adamw.org) Received: by apnoea.adamw.org (OpenSMTPD) with ESMTPSA id 89a25170 TLS version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO; Sun, 17 Dec 2017 12:04:33 -0700 (MST) Content-Type: text/plain; charset=us-ascii; delsp=yes; format=flowed Mime-Version: 1.0 (Mac OS X Mail 11.2 \(3445.5.20\)) Subject: Re: Option vs. flavor? From: Adam Weinberger In-Reply-To: <2e1a60e4-6800-49a9-aaca-73a1a856c7a3@rawbw.com> Date: Sun, 17 Dec 2017 12:04:22 -0700 Cc: "ports@freebsd.org" Content-Transfer-Encoding: 7bit Message-Id: <0D663E61-19C0-4855-9A00-4C3AE27CDEEE@adamw.org> References: <0CE3611A-F100-4443-93B4-68A0A83F162B@adamw.org> <2e1a60e4-6800-49a9-aaca-73a1a856c7a3@rawbw.com> To: Yuri X-Mailer: Apple Mail (2.3445.5.20) X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Dec 2017 19:04:36 -0000 > On 17 Dec, 2017, at 11:10, Yuri wrote: > > On 12/17/17 06:32, Adam Weinberger wrote: >> Ah okay. Then I'd say, make a slave port that just >> fetches/extracts/installs the data files, and an option in the Geant4 >> master port that defaults to off. Set the slave port to NO_PACKAGE. > > Ok, I will do it this way. > > >> I wouldn't go the flavor route, because the purpose of flavors is to >> generate multiple packages. The 4.5GB data files shouldn't have a >> package, so options is the way to go. > > > I was actually wondering, why the use of flavors is such a bad idea in > this case? I know that flavors weren't originally intended for this, but > it might seem that they lend themselves very well to such use. > > One can have a virtual flavor, say @withHugeData. It doesn't get built by > default because it is virtual. At the same time, somebody who needs data > can always run 'poudriere .... thepkg@withHudeData' and build the needed > flavor of the package. > > What would be the downside of such use, besides it being the use of a > completely different kind than anticipated? Hi Yuri, My reasoning is that options exist to let users configure a port to have one feature or another. The key point there is that users can choose the configuration themselves. Flavors exist to make it easier to produce multiple packages without making slave ports. The key point here is producing multiple packages. Presumably you'd set NO_PACKAGE on the massive data, so producing multiple packages isn't a benefit. If you're not looking for the builders to produce multiple packages, flavors just isn't the optimal paradigm. A NO_BUILD slave port is really easy for people who are normally pkg-only. There's no dependencies, just fetch/extract/install. I'm assuming that Geant4 has a number of dependencies, and it's a much bigger deal for people used to pkg install'ing everything. The other thing you might consider is a simple shell script to fetch and extract the data files into place. net/GeoIP does it like that (though not for size reasons). # Adam -- Adam Weinberger adamw@adamw.org http://www.adamw.org