From owner-freebsd-ports@FreeBSD.ORG Mon Nov 8 01:50:48 2010 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 463D4106566B; Mon, 8 Nov 2010 01:50:48 +0000 (UTC) (envelope-from lists@eitanadler.com) Received: from mail-iw0-f182.google.com (mail-iw0-f182.google.com [209.85.214.182]) by mx1.freebsd.org (Postfix) with ESMTP id CF7468FC0A; Mon, 8 Nov 2010 01:50:47 +0000 (UTC) Received: by iwn39 with SMTP id 39so5483211iwn.13 for ; Sun, 07 Nov 2010 17:50:47 -0800 (PST) Received: by 10.42.76.8 with SMTP id c8mr3068016ick.29.1289181046773; Sun, 07 Nov 2010 17:50:46 -0800 (PST) MIME-Version: 1.0 Received: by 10.231.143.15 with HTTP; Sun, 7 Nov 2010 17:50:26 -0800 (PST) From: Eitan Adler Date: Sun, 7 Nov 2010 20:50:26 -0500 Message-ID: To: freebsd ports , portmgr@freebsd.org Content-Type: text/plain; charset=UTF-8 Cc: Subject: RFC/CFT dialog(1) replacement for ports infrastructure 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: Mon, 08 Nov 2010 01:50:48 -0000 I've been working on a replacement for dialog(1) as used in ports for make config. It provides a number of benefits over the existing infrastructure 1) It supports always-on "long descriptions" 2) Supports mutually exclusive options. 3) Support's user-input freeform options 4) Supports the license infrastructure - the configuration screen provided the ability to view and accept/reject the port's license 5) It is released under the MIT license (thus avoiding the GPLed dialog) 6) Since it doesn't rely on dialog we have a lot more control over it. If we needed to do something it would be easier Please note that this is currently a backend feature only. There are NO port facing or user facing configuration changes at this time. bsd.options.mk would have to be changed to have this implemented. The source code is available at https://isis.poly.edu/~eitan/files/d4p-version8.2/ Makefile - a makefile to build the standalone binary. It would obviously be included in the build system with significant changes. dialog4ports.c - the main source file dialog4ports.h - the main header file nolicence.sh - runs the program without a license to accept withlicence.sh - runs the program with a license to accept info.txt - random junk used for testing lic.txt - random junk used for testing n.txt - random junk used for testing I've been discussing this program on EFnet's #bsdports with largely positive feedback. I'm now looking for more eyes to review the program and more people to test it. Are there any situations on which this program would fail? What would it take for this tool to become the new config screen for ports? Are there any non-bikeshead objections? If yes what can I do to resolve them? If no what is the next step for me to take? If you have a specific feature request for the tool and it it is something integrable I might do it, but I want to avoid the "I want every feature so lets put it in" problem. A few people have asked me to turn this into a generic dialog(1) replacement. This is not the goal of this program, but I would not against making such a library in the future. Making such a library requires a very different program than I had in mind - so please don't bring this up for now. I'll consider doing it as a GSOC project. -- Eitan Adler