ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Igor Vlasenko <vlasenko@imath.kiev.ua>
To: ALT Linux Team development discussions <devel@lists.altlinux.org>
Cc: Vladimir Lettiev <thecrux@gmail.com>
Subject: Re: [devel] СБорка perl
Date: Tue, 2 Nov 2010 22:49:18 +0200
Message-ID: <20101102204916.GA29154@dad.imath.kiev.ua> (raw)
In-Reply-To: <20101102123341.GA8439@truecrux.org>

On Tue, Nov 02, 2010 at 03:33:41PM +0300, Vladimir Lettiev wrote:
> Думаю по этому списку можно начинать готовить работа (viy@ ?)
Ready!

Нужные утилиты собраны в пакет girar-nmu.
Я планирую допилить этот пакет и рассказать на wiki как им 
пользоваться, на примере задачи обновить perl.

Хотя пакет еще не готов (сорри!), забегу наперед и расскажу,
как им уже сейчас можно пользоваться, поскольку у вас уже есть
список пакетов и сортировка транзакции.

в girar-nmu есть утилита girar-nmu-prepare. Вызов выглядит как
$ girar-nmu-prepare \
 --changelog '- rebuild with new perl' \
 --hook ./perl_51x_upgrade.pl \
 `cat src.rpm.list`
где в файле src.rpm.list указаны пути к src.rpm пакетов,
__в том числе и собирающихся из git__, которые необходимо добавить 
в task, a ./perl_51x_upgrade.pl -- это нижеприведенный скрипт на перл 
для моей библиотечки RPM::Source::Editor, который реализует
указанный вами алгоритм. 

Я еще добавил замену %perl_vendor_man1dir на %_man1dir, 
так как у меня создалось впечатление, что этот макрос Алексей 
собрался убить. Если не так, то 
$section->subst(qr'\%perl_vendor_man1dir','%_man1dir');
можно выбросить.
#--------------------------------------------
#!/usr/bin/perl -w
push @SPECHOOKS, 
sub {
    my ($spec) = @_;
    my $man1found=0;
    foreach my $section ($spec->get_sections()) {
	if ($section->get_type() eq 'file') {
	    $section->exclude(qr'\%perl_vendor_man3dir');
	    $man1found||=$section->match(qr'\%perl_vendor_man1dir');
	    # is %perl_vendor_man1dir going to be killed too?
	    $section->subst(qr'\%perl_vendor_man1dir','%_man1dir');
	}
    }
    if ($man1found) {
	my $installsec=$spec->get_section('install');
	unless ($installsec) {
	    warn "Oops! no \%install section :(";
	    return;
	}
	if ($installsec->match(qr'\%perl_vendor_build')) {
	    $installsec->subst(qr'^\s*\%perl_vendor_build','%perl_vendor_build INSTALLMAN1DIR=%_man1dir');
	    $spec->get_section('package','')->push_body('
# automatically added during perl 5.8 -> 5.10 upgrade.
# perl-podlators is required for pod2man conversion.
BuildRequires: perl-podlators
');
	}
    }
};
#---------------------------------------
Нажать, как говорится, enter, и
в результате в папках будут лежать готовые для добавления в task:
в OUT.SRPMS -- src.rpm, их надо будет rpm --sign *, rsync -avp * git.alt:
и добавлять как add srpm <...>.src.rpm
а OUT.gits -- клонированные git репозитарии с готовым nmu.
в girar-nmu есть утилита girar-nmu-task-add-git.
добавить в task сборку из git можно одной командой:
girar-nmu-task-add-git OUT.gits/path/to/git [task number]

К сожалению, вам пока еще останется небольшой, но кусок работы -
заскриптовать добавление задач в task, чтобы оно проходило 
в том порядке, как указано у вас в списке.

В будущем все работы - сортировку и заливку в task будет выполнять
утилита, но пока еще не доделано. Объявлю, когда будет готово.

Извиняюсь, что анонсирую недоделанное, решил, что
вам нет смысла ждать готовности  --- уверен, заскриптовать 
добавление задач в task в правильном порядке для вас не проблема.

--
Dr. Igor Vlasenko
--------------------
Topology Department
Institute of Math
Kiev, Ukraine




  parent reply	other threads:[~2010-11-02 20:49 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-24 22:52 [devel] Обещанный список пакетов для пересборки Денис Смирнов
2010-10-24 23:03 ` Dmitry V. Levin
2010-10-25  1:04   ` Денис Смирнов
2010-10-25  9:34     ` Dmitry V. Levin
2010-10-25  9:41       ` Денис Смирнов
2010-10-25  9:58         ` Dmitry V. Levin
2010-10-25 10:35           ` Terechkov Evgenii
2010-10-25 11:27           ` Денис Смирнов
2010-10-25  6:22   ` Денис Смирнов
2010-10-26  5:32   ` Денис Смирнов
2010-10-27 10:20     ` Vladimir Lettiev
2010-10-27 10:36       ` Dmitry V. Levin
2010-10-27 11:24         ` Vladimir Lettiev
2010-10-28 15:20         ` [devel] СБорка perl Vladimir Lettiev
2010-10-31 13:30           ` Dmitry V. Levin
2010-10-31 14:22             ` Vladimir Lettiev
2010-10-31 14:31               ` Dmitry V. Levin
2010-10-31 16:22                 ` Vladimir Lettiev
2010-11-01 14:56                   ` Igor Vlasenko
2010-11-01 15:04                     ` Dmitry V. Levin
2010-11-01 17:24                     ` Vladimir Lettiev
2010-11-01 19:06                       ` Dmitry V. Levin
2010-11-02  7:13           ` Sergey Y. Afonin
2010-11-02  8:15             ` Vladimir Lettiev
2010-11-02 11:44               ` Sergey Y. Afonin
2010-11-02 12:33                 ` Vladimir Lettiev
2010-11-02 12:42                   ` Sergey Y. Afonin
2010-11-02 20:49                   ` Igor Vlasenko [this message]
2010-11-03 17:01                     ` Igor Vlasenko
2010-11-04  8:58                       ` Vladimir Lettiev
2010-11-04  9:02                         ` Andrey Rahmatullin
2010-11-04  9:33                           ` Vladimir Lettiev
2010-11-04  9:35                             ` Andrey Rahmatullin
2010-11-04  9:45                               ` Vladimir Lettiev
2010-11-04  9:47                                 ` Andrey Rahmatullin
2010-11-04  9:50                                   ` Andrey Rahmatullin
2010-11-04 10:01                                 ` Mikhail Efremov
2010-11-04 14:08                         ` [devel] Сборка perl #30303 Dmitry V. Levin
2010-11-04 14:30                           ` Igor Vlasenko
2010-11-09 19:19                           ` Vladimir Lettiev
2010-11-09 19:33                             ` Anton Farygin
2010-11-09 22:08                             ` Alexey I. Froloff
2010-11-10 10:54                               ` Vladimir Lettiev
2010-11-12 13:07                             ` Igor Vlasenko
2010-11-12 13:23                               ` Sergei Epiphanov
2010-11-12 13:32                                 ` Igor Vlasenko
2010-11-12 13:43                                   ` Igor Vlasenko
2010-11-12 13:57                                     ` Sergei Epiphanov
2010-11-14 23:53                             ` Dmitry V. Levin
2010-11-05 15:32                   ` [devel] СБорка perl Денис Смирнов
2010-11-05 16:46                     ` Vladimir Lettiev
2010-11-05 16:58                       ` Денис Смирнов
2010-11-01 11:22 ` [devel] Обещанный список пакетов для пересборки REAL

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20101102204916.GA29154@dad.imath.kiev.ua \
    --to=vlasenko@imath.kiev.ua \
    --cc=devel@lists.altlinux.org \
    --cc=thecrux@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git