From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on sa.int.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-1.2 required=5.0 tests=AWL,BAYES_00, DNS_FROM_OPENWHOIS, RCVD_IN_SORBS_WEB, SPF_PASS autolearn=no version=3.2.5 Date: Wed, 26 Oct 2011 19:56:57 +0300 From: Igor Vlasenko To: ALT Linux Team development discussions Message-ID: <20111026165657.GA21060@dad.imath.kiev.ua> References: <20111024073821.GA32650@ssh.git.altlinux.org> <20111024223629.GJ7975@altlinux.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20111024223629.GJ7975@altlinux.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-imath-kiev-ua-MailScanner-Information: Please contact the ISP for more information X-imath-kiev-ua-MailScanner-ID: 020BB4B0040.AF6F8 X-imath-kiev-ua-MailScanner: Found to be clean X-imath-kiev-ua-MailScanner-From: vlasenko@imath.kiev.ua Subject: Re: [devel] [#56408] DONE (try 52) perl.git=5.14.2-alt1 srpm=perl-Filter-1.39-alt1.src.rpm ... X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Oct 2011 16:57:04 -0000 Archived-At: List-Archive: List-Post: On Tue, Oct 25, 2011 at 02:36:31AM +0400, Alexey Tourbin wrote: > Некоторые соображения об автоматической сборке пакетов. [...] Ок, список пожаланий принят. Мое вмдение - что робот - это инструмент, и желание пользователя - закон. Ему нужна гибкость, чтобы точно и корректно выполнять приказы хозяина. в свое время, чтобы достичь гибкости, я начал с того, что создал для предметной области специализированный язык для манипуляции в спек-файлах и исходных пакетах, в виде набора объектных методов на perl, и далее на этом языке начал писать различные роботы и конвертеры. Теперь я понимаю свою задачу в том, чтобы выпустиь этот специализированный язык в массы - продумать и стабилизировать, чтобы был как можно более простым, и тщательно документировать. Чтобы им можно было пользоваться всем желающим. Чтобы быстрее и удобнее было выучить начала perl плюс познакомиться с примерами и документацией на специализированный язык, чем выполнять какую-то операцию вручную над 20+ пакетами или писать свой робот с нуля. Пока у меня фаза продумывания и стабилизации. На примере пожеланий Алексея к роботу. Как бы я постарался реализовать эти пожелания. Тупое обновление версии встроено в утилиту srpmnmu. Допустим, скачали новые исходники $ wget -c 'http://cpan.org.ua/authors/id/J/JF/JFEARN/XML-TreeBuilder-4.1.tar.gz' теперь вызываем $ srpmnmu --changelog '- CPAN update' --version 4.1 \ --copy_to_sources ./XML-TreeBuilder-4.1.tar.gz \ /var/ftp/pub/Linux/ALT/Sisyphus/files/SRPMS/perl-XML-TreeBuilder-3.09-alt3.1.src.rpm Записан: perl-XML-TreeBuilder-4.1-alt1.src.rpm Теперь, например, хотим включить _unpackaged_files_terminate_build. Создаем файл unpackaged_files_terminate_build.pl такого содержания: -------unpackaged_files_terminate_build.pl------------ #!/usr/bin/perl push @SPECHOOKS, sub { my ($spec) = @_; my $mainsec=$spec->main_section; $mainsec->unshift_body('%define _unpackaged_files_terminate_build 1'."\n") unless ($mainsec->match_body(qr'_unpackaged_files_terminate_build'); }; ------------------------------------------------------ этот файл можно включить в предыдущий вызов с помощью опции --hook unpackaged_files_terminate_build.pl или, например, использовать его отдельно для NMU по добавлению в пакеты этой опции. сразу на 1300+ пакетов: $ girar-nmu-prepare --changelog '- NMU: enabled _unpackaged_files_terminate_build' --hook unpackaged_files_terminate_build.pl /ALT/Sisyphus/files/SRPMS/perl-* Таких hook'ов можно добавить в опции сколько угодно, например, добавление BuildRequires: в результате анализа искходников, делая при желании робот более "умным", или, наоборот, не добавлять, чтобы поведение робота было максимально тупым. Идея в том, что специализированный язык для предметной области позволяет гораздо проще получать новую функциональность. За бортом этого краткого введения остались вопросы анализа пересобранных пакетов, как то недоукомплектации, переукомплектации, которые имеет смысл выполнять отдельными утилитами и вызывать в обвязке. -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.