From owner-freebsd-ports@FreeBSD.ORG Mon Dec 15 22:25:16 2014 Return-Path: Delivered-To: ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id EB164298; Mon, 15 Dec 2014 22:25:15 +0000 (UTC) Received: from mail-la0-x22c.google.com (mail-la0-x22c.google.com [IPv6:2a00:1450:4010:c03::22c]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 564B2381; Mon, 15 Dec 2014 22:25:15 +0000 (UTC) Received: by mail-la0-f44.google.com with SMTP id gd6so10398562lab.17 for ; Mon, 15 Dec 2014 14:25:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=/tjgg/cCk5JmhuFnnqvgNd0pd5Ij5ASgBjUZRT65Ghs=; b=Xc7sprFsZeFUlugPUnnQmcSc8/aqXXcawY9URhFfD9KU2nc06hMjcL4koRaX67kMmR qU7YU7Yat71bwyxnskwqxZyhCkB1YhLdbFTSInnZXmRpsM8AC2Vo6Hpq9zNNj9g3rEjJ 9EDHjGkQyE1AgH/c79bLMq3N1wa/IKTz35/ZeGDzeBfSzqJIyloFNjLmEij5aTImp72o oDPVUjgKYuWRO9Oy5JQ1RsjRH97hMQ4nCVA2MAVQVLz9gibPaLArr/FwqsIuannRO5YO BFVqRajAdRKUJiakvrbjHrInIyZApbqK6WqZQ7ApYXLW60Gwyy+c4iUg0uIxKXuttiP0 m0GQ== MIME-Version: 1.0 X-Received: by 10.112.63.99 with SMTP id f3mr32002333lbs.47.1418682313470; Mon, 15 Dec 2014 14:25:13 -0800 (PST) Sender: crodr001@gmail.com Received: by 10.112.130.168 with HTTP; Mon, 15 Dec 2014 14:25:13 -0800 (PST) In-Reply-To: <59D51E6C-A7CF-4443-A384-CC7F442A94FF@mu.org> References: <548F2678.7040903@freebsd.org> <59D51E6C-A7CF-4443-A384-CC7F442A94FF@mu.org> Date: Mon, 15 Dec 2014 14:25:13 -0800 X-Google-Sender-Auth: sjBpx-TG9kgR1edM1zFBSpUeDdc Message-ID: Subject: Re: poudriere: bulk.sh: cpdup: Permission denied From: Craig Rodrigues To: Alfred Perlstein Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.18-1 Cc: FreeBSD Ports , Alfred Perlstein , Bryan Drewery 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: Mon, 15 Dec 2014 22:25:16 -0000 On Mon, Dec 15, 2014 at 1:50 PM, Alfred Perlstein wrote: > > Spent some time trying to do things using PS4 variable but it was for > naught because $LINENO and $0 don't work properly in PS4 as far as I can > tell in our version of Bourne shell. Bash on the other hand seems to have > better support for expanding useful things into PS4, however it's still > very poor as compared to the facilities of let's say Python or Ruby or > probably even Javascript. > > I hear now that poudriere is being migrated to C of all things which IMO > is a huge mistake. Almost as bad as having it in shell. > I'm not 100% sure of the history, but I think that poudriere was originally intended to replace the scripts that the portmgr team used to build the official FreeBSD ports tree. It was written to not depend on any other ports or scripting language not in the FreeBSD base system to avoid breaking in case the ports broke. Most of it is in Bourne shell, but cpdup is in C for performance. As it is right now, poudriere I think meets the needs of the portmgr team, with those constraints. poudriere has become a generally useful tool for anyone (not just portmgr) to build the FreeBSD ports tree, because of its intimate knowledge of the FreeBSD ports Makefile rules and dependencies. That's why I integrated it into the FreeNAS build, which built around 200 ports. For the general user, having poudriere (or a similar tool) in another high level language would be perfectly fine. If there was a Python, ruby, node.js version of poudriere that worked, I would have integrated it into the FreeNAS build, with no problem. Lately, I have been building packages for Debian systems, and their build scripts are a mix of Python and bash scripts. I've also been building packages for Homebrew on MacOS X which is based on a Ruby build system. While each system has its quirks, both systems do work and are actively maintained, and life goes on. It would definitely be possible to have a poudriere-like tool written in another high-level language. The implementation details of poudriere basically boils down to the requirements and personal preferences/biases of the people working on these tools. -- Craig