From owner-freebsd-ports@freebsd.org Sat Nov 7 17:56:56 2015 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 270E9A289BC; Sat, 7 Nov 2015 17:56:56 +0000 (UTC) (envelope-from mailinglists@toco-domains.de) Received: from toco-domains.de (mail.toco-domains.de [IPv6:2a01:4f8:150:50a5::6]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E384B1D6C; Sat, 7 Nov 2015 17:56:55 +0000 (UTC) (envelope-from mailinglists@toco-domains.de) Received: from [192.168.1.55] (x5f764e50.dyn.telefonica.de [95.118.78.80]) by toco-domains.de (Postfix) with ESMTPA id 30C301B228DF; Sat, 7 Nov 2015 18:56:48 +0100 (CET) Subject: Re: Call for Help: need script for patching ports tree, building with poudriere To: Craig Rodrigues , "freebsd-testing@freebsd.org" , ports References: From: =?UTF-8?Q?Torsten_Z=c3=bchlsdorff?= Message-ID: <563E34C6.9010500@toco-domains.de> Date: Sat, 7 Nov 2015 18:28:38 +0100 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 Nov 2015 17:56:56 -0000 Hello Craig, > I've been working on some advanced scripting with Eitan Adler. > We are interested in experimenting with integrating Jenkins + Phabricator > using: https://wiki.jenkins-ci.org/display/JENKINS/Phabricator+Plugin > For starters, we want to see what we can accomplish with ports. > > Can someone provide a script that does the following: > > (1) Takes a patch file > (2) Applies the patch file to a checked out ports tree > (3) If patching fails, quit and report an error > (4) If patch succeeds, do a simple guess to figure out which ports were > affected > (5) Create a file build.ports.txt which lists these ports, and can be used > as input > to poudriere, by invoking: > > poudriere bulk -f build.ports.txt > > (6) In addition, run portlint, port test, and any other appropriate > scripts to > test that the patched ports following the porting style guidelines. > > For example, if the patch in this review was submitted: > https://reviews.freebsd.org/D3791 > then a build.ports.txt file with this content would be created: > > > [List of ports] > > and poudriere would be invoked to build those ports. > > Does such a script exist? I wrote myself a similar script, but it is very basic (and PHP). It: - assumes that patches are generated against /usr/ports (which makes applying much easier) - apply the patches - get the ports affected by the diff with svn diff - runs portlint - runs poudriere for many versions... - reset every change made to the portstree There are many glitches and it is not this fast, but it safe much time while i wrote port updates. I get a very simple report if everything is fine and then i submit my PR. But of course any other workflow is possible. I aimed to support multiple poudriere server to speed up the process. But i have way more ideas than time... ;) > If not, would someone by interested in working on such a script, and > providing it > via GitHub at https://github.com/freebsd/freebsd-ci/ ? I will help you, but currently (which means till the end of the year) i am very short on time. Are there any requirements to the script in language, performance, etc. ? Greetings, Torsten