Date: Mon, 15 Dec 2014 14:25:13 -0800 From: Craig Rodrigues <rodrigc@FreeBSD.org> To: Alfred Perlstein <bright@mu.org> Cc: FreeBSD Ports <ports@freebsd.org>, Alfred Perlstein <alfred@freebsd.org>, Bryan Drewery <bdrewery@freebsd.org> Subject: Re: poudriere: bulk.sh: cpdup: Permission denied Message-ID: <CAG=rPVeQP9egZkcOY2Sa5z-vF%2Bd_xdaFK7shDzskWZwHAhvHAw@mail.gmail.com> In-Reply-To: <59D51E6C-A7CF-4443-A384-CC7F442A94FF@mu.org> References: <548F2678.7040903@freebsd.org> <CAG=rPVeoGLaDX1cEp9sHMOM9PmC36x1ztuaRuTgJvGU6T13MhQ@mail.gmail.com> <59D51E6C-A7CF-4443-A384-CC7F442A94FF@mu.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Dec 15, 2014 at 1:50 PM, Alfred Perlstein <bright@mu.org> 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAG=rPVeQP9egZkcOY2Sa5z-vF%2Bd_xdaFK7shDzskWZwHAhvHAw>