ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] I: arepo: next steps
@ 2012-02-27 18:13 Igor Vlasenko
  2012-02-27 23:42 ` Dmitry V. Levin
  0 siblings, 1 reply; 23+ messages in thread
From: Igor Vlasenko @ 2012-02-27 18:13 UTC (permalink / raw)
  To: devel; +Cc: Vitaly Kuznetsov

Уважаемые коллеги,

В общем, так понимаю, arepo стагнировал, а это вещь нужная.
Решил, раз нет возражений, заняться arepo плотнее.

Что уже сделано:
подготовил патчи к arepo, добавляющие 
1) поддержку репозиториев без noarch компоненты (по просьбе Сергея)
2) модульный конфиг-файл для arepo, c директивой "include: |"
Отличие от прототипа в том, что поменял тип строки yaml c '>' на '|',
т.е. есть возможность задать пути с пробелами внутри.

include: |
   /home/vpupkin/Рабочий Стол/NX-client-arepo-t6.conf

Повесил заявку 
http://bugzilla.altlinux.org/show_bug.cgi?id=26985
надеюсь, эти изменения скоро будут в Сизифе.

Что хочу сделать:

I. распрямить работу arepo с apt.

arepo сейчас, чтобы узнать EPOCH-VERSION-RELEASE пакета NAME,
создает aptbox и выполняет
 apt-get install --yes --print-uris NAME
Если apt-get install завершился успешно, получаем путь к rpm
файлу в локальной файловой системе, затем открываем полученный
rpm файл с помощью python-rpm и извлекаем значения из RPM Header'а.

Это и слишком медленный путь, и слишком глючный.

Симптомы глюка:
В t6 обновился libpng12. Ожидалось, что arepo пересоберет
i586-libpng12. Однако arepo пересобрал не только i586-libpng12,
но и около 30 других пакетов, именно все имевшиеся зависящие от
i586-libpng12 пакеты, включая wine, поскольку из-за несоответствия
версий libpng12 и i586-libpng12 они оказались не устанавливаемыми 
и apt-get install --yes --print-uris завершался для них неуспешно.

Я хочу переделать этот кусок, чтобы напрямую брать данные из кеша apt.
В результате и ускорится холостой пробег arepo, и больше не будет
таких глюков, и появится возможность работать с сетевыми репозиториями.

II. вырезать из arepo.py низкоуровневую работу с rpm в отдельный
скрипт.

Собственно arepo.py пусть и дальше занимается тем, чем и занимался,
т.е. созданием и обновлением x86_32 репозитория,
а отдельный скрипт araperpm, rpm2arepo или как его назвать.py
будет заниматься конкретно созданием 
i586-name-V-R.src.rpm из name-V-R.i586.rpm.

Это не повлияет на производительность, так как специфика питона -
что любой скрипт легко выступает в роли библиотеки.
И arepo будет просто загружать rpm2arepo.py как свою библиотеку.

Это и существенно упростит отладку, и, главное, встраивать в
сборочницу весь arepo смысла не имеет, сборочнице нужна только
функциональность rpm2arepo.py. Все остальное - сборка пакетов
и менеджмент репозиториев - в сборочнице уже есть, имеющаяся
высокоуровневая часть arepo - это по сути дублирование скриптов сборчницы,
но не полное, недостаточного качества и написанное на python.

Мое предложение -- arepo надо разрезать на две части 
и встраивать в сборчницу сразу низкоуровневый скрипт конверсии rpm,
условное название rpm2arepo.py.


-- 

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



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [devel] I: arepo: next steps
  2012-02-27 18:13 [devel] I: arepo: next steps Igor Vlasenko
@ 2012-02-27 23:42 ` Dmitry V. Levin
  2012-02-28 12:12   ` Michael Shigorin
                     ` (3 more replies)
  0 siblings, 4 replies; 23+ messages in thread
From: Dmitry V. Levin @ 2012-02-27 23:42 UTC (permalink / raw)
  To: ALT Devel discussion list; +Cc: Igor Vlasenko, Vitaly Kuznetsov

[-- Attachment #1: Type: text/plain, Size: 2514 bytes --]

Hi,

On Mon, Feb 27, 2012 at 08:13:16PM +0200, Igor Vlasenko wrote:
> Уважаемые коллеги,
> 
> В общем, так понимаю, arepo стагнировал, а это вещь нужная.

Есть другая точка зрения: репозиторий, который сейчас называется сейчас
x86_32 (и который на всякий случай предстоит переименовать во избежание
коллизий с настоящим x86_32) - это вещь нужная, но его формированием
должна заниматься та же самая система, которая обрабатывает задания, чтобы
обеспечить должную актуальность, полноту и целостность этого репозитория.

Можно дать этой части сборочницы имя arepo, можно не давать названия, сути
это не меняет.

На эту тему у нас есть следующие мысли.

У этого условного girar-builder-arepo, очевидно, будет совсем другая
архитектура.  Его роль - во время обработки задания, по окончании
тестирования нового состояния репозитория автоматически определить, какие
arepo-пакеты нужно создать, сгенерировать эти пакеты, и сформировать новое
состояние arepo-репозитория.

Определение пакетов определяется следующими принципами:
- noarch-пакеты не участвуют в рассмотрении;
- пакеты обрабатываются по одной из двух схем:
  + arepo-библиотеки: если i586.rpm и x86_64.rpm отличаются по составу
    файлов в каталоге /usr/lib, то в arepo-пакет попадают все файлы из
    каталога /usr/lib пакета i586.rpm, которых нет в пакете x86_64.rpm;
  + arepo-программы: если x86_64.rpm нет (или он есть, но нам заранее
    известно, что его не следует учитывать), то в arepo-пакет попадают
    все файлы из пакета i586.rpm; 
- пустые arepo-пакеты не создаются.

Зависимости arepo-библиотек вычисляются следующим образом:
- requires:
  + копируются все set-version-зависимости из i586.rpm;
  + добавляется NEVR-зависимость на x86_64.rpm;
- provides:
  + копируются все set-version-зависимости из i586.rpm;
  + добавляется стандартная self-NEVR-зависимость;

Зависимости arepo-программ вычисляются следующим образом:
- requires:
  + к зависимостям на имена пакетов, которые есть в новом состоянии
    arepo-репозитория, добавляется arepo-префикс;
  + остальные зависимости копируются из i586.rpm без изменений;
- provides:
  + копируется все без изменений, за исключением self-NEVR-зависимости,
    вместо которой добавляется своя стандартная.

Хочется обойтись простым перекладыванием заголовков и файлов, без
использования rpmbuild'а и прочих вычислений произвольного кода в
изолированной среде.

Все это пока что мысли, которые еще предстоит проверить на практике.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [devel] I: arepo: next steps
  2012-02-27 23:42 ` Dmitry V. Levin
@ 2012-02-28 12:12   ` Michael Shigorin
  2012-02-28 12:32   ` Vitaly Kuznetsov
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 23+ messages in thread
From: Michael Shigorin @ 2012-02-28 12:12 UTC (permalink / raw)
  To: ALT Devel discussion list

On Tue, Feb 28, 2012 at 03:42:09AM +0400, Dmitry V. Levin wrote:
> Хочется обойтись простым перекладыванием заголовков и файлов,
> без использования rpmbuild'а и прочих вычислений произвольного
> кода в изолированной среде.

rpmrebuild не смотрел часом?

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [devel] I: arepo: next steps
  2012-02-27 23:42 ` Dmitry V. Levin
  2012-02-28 12:12   ` Michael Shigorin
@ 2012-02-28 12:32   ` Vitaly Kuznetsov
  2012-02-28 17:41     ` Igor Vlasenko
  2012-02-28 14:04   ` Dmitry V. Levin
  2012-02-28 17:09   ` Igor Vlasenko
  3 siblings, 1 reply; 23+ messages in thread
From: Vitaly Kuznetsov @ 2012-02-28 12:32 UTC (permalink / raw)
  To: ALT Devel discussion list, Igor Vlasenko

On Tue, 28 Feb 2012 03:42:09 +0400, Dmitry V. Levin wrote:
> Hi,
>
> On Mon, Feb 27, 2012 at 08:13:16PM +0200, Igor Vlasenko wrote:
>> Уважаемые коллеги,
>>
>> В общем, так понимаю, arepo стагнировал, а это вещь нужная.
>
> Есть другая точка зрения: репозиторий, который сейчас называется 
> сейчас
> x86_32 (и который на всякий случай предстоит переименовать во 
> избежание
> коллизий с настоящим x86_32) - это вещь нужная, но его формированием
> должна заниматься та же самая система, которая обрабатывает задания, 
> чтобы
> обеспечить должную актуальность, полноту и целостность этого 
> репозитория.
> ...

Hi,

спасибо, это как раз то, что я хотел написать. Я попробую в ближайшее 
время поиграться с python-rpm и понять, можем ли бы им сформировать 
правильную rpm-ку. Если сможем, то мы получим очень приличную скорость. 
Это важно как минимум для бутстрапа (когда мы будем перепаковывать весь 
репозитоий).



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [devel] I: arepo: next steps
  2012-02-27 23:42 ` Dmitry V. Levin
  2012-02-28 12:12   ` Michael Shigorin
  2012-02-28 12:32   ` Vitaly Kuznetsov
@ 2012-02-28 14:04   ` Dmitry V. Levin
  2012-03-01 12:09     ` Vitaly Kuznetsov
  2012-02-28 17:09   ` Igor Vlasenko
  3 siblings, 1 reply; 23+ messages in thread
From: Dmitry V. Levin @ 2012-02-28 14:04 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 349 bytes --]

On Tue, Feb 28, 2012 at 03:42:09AM +0400, Dmitry V. Levin wrote:
> Зависимости arepo-библиотек вычисляются следующим образом:
> - requires:
>   + копируются все set-version-зависимости из i586.rpm;

  + зависимости на имена пакетов, которые есть в новом состоянии
    arepo-репозитория, копируются с добавлением arepo-префикса;


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [devel] I: arepo: next steps
  2012-02-27 23:42 ` Dmitry V. Levin
                     ` (2 preceding siblings ...)
  2012-02-28 14:04   ` Dmitry V. Levin
@ 2012-02-28 17:09   ` Igor Vlasenko
  3 siblings, 0 replies; 23+ messages in thread
From: Igor Vlasenko @ 2012-02-28 17:09 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Tue, Feb 28, 2012 at 03:42:09AM +0400, Dmitry V. Levin wrote:
> Есть другая точка зрения: репозиторий, который сейчас называется сейчас
> x86_32 (и который на всякий случай предстоит переименовать во избежание
> коллизий с настоящим x86_32) - это вещь нужная, но его формированием
> должна заниматься та же самая система, которая обрабатывает задания, чтобы
> обеспечить должную актуальность, полноту и целостность этого репозитория.

Почему другая точка зрения? Я и сам так думаю. :)
Просто доступа к сборочнице у меня нет, и все, что я мог предложить -
работу с имеющимся arepo.

-- 

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



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [devel] I: arepo: next steps
  2012-02-28 12:32   ` Vitaly Kuznetsov
@ 2012-02-28 17:41     ` Igor Vlasenko
  2012-02-28 18:59       ` Vitaly Kuznetsov
  0 siblings, 1 reply; 23+ messages in thread
From: Igor Vlasenko @ 2012-02-28 17:41 UTC (permalink / raw)
  To: ALT Linux Team development discussions; +Cc: Vitaly Kuznetsov

On Tue, Feb 28, 2012 at 04:32:57PM +0400, Vitaly Kuznetsov wrote:
> спасибо, это как раз то, что я хотел написать. Я попробую в
> ближайшее время поиграться с python-rpm и понять, можем ли бы им
> сформировать правильную rpm-ку. Если сможем, то мы получим очень
> приличную скорость. Это важно как минимум для бутстрапа (когда мы
> будем перепаковывать весь репозитоий).

О, замечательно. В этом случае, мне, наверное, 
нет смысла копаться в коде arepo-1, который вскоре,
похоже, полностью устареет.

Будем ждать arepo-2 :)


-- 

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



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [devel] I: arepo: next steps
  2012-02-28 17:41     ` Igor Vlasenko
@ 2012-02-28 18:59       ` Vitaly Kuznetsov
  2012-02-28 19:08         ` Led
  0 siblings, 1 reply; 23+ messages in thread
From: Vitaly Kuznetsov @ 2012-02-28 18:59 UTC (permalink / raw)
  To: devel

On Tue, 28 Feb 2012 19:41:15 +0200, Igor Vlasenko wrote:
> On Tue, Feb 28, 2012 at 04:32:57PM +0400, Vitaly Kuznetsov wrote:
>> спасибо, это как раз то, что я хотел написать. Я попробую в
>> ближайшее время поиграться с python-rpm и понять, можем ли бы им
>> сформировать правильную rpm-ку. Если сможем, то мы получим очень
>> приличную скорость. Это важно как минимум для бутстрапа (когда мы
>> будем перепаковывать весь репозитоий).
>
> О, замечательно. В этом случае, мне, наверное,
> нет смысла копаться в коде arepo-1, который вскоре,
> похоже, полностью устареет.
>
> Будем ждать arepo-2 :)

В взглянул на python-rpm и rpmrebuild. Первый, похоже, вообще не имеет 
интерфейса для записи заголовков rpm. Второй решает немного другую 
задачу - восстанавливает rpm из установленного состояния (т.е. 
проворачивает фарш обратно).
Нам нужен немного другой инструмент: взять rpm-файл, отредактировать 
заголовки и содержимое, сохранить как новый rpm-файл. Мне пока такой 
найти не удалось. Вижу два возможных варианта решения:
1) Реализовать такой инструмент на librpm-е (муторно)
2) Таки билдить результирующий rpm с помощью rpmbuild-а. В общем случае 
данный подход требует новой хешерницы для каждого пакета, но мы можем 
использовать дополнительное знание о том, что спек-файл является вовсе 
не произвольным, а только что нами сформированным. Его можно попытаться 
сформировать таким образом, чтобы никакого выполнения произвольного кода 
не происходило (выписываем все Requires/Provides вручную, глушим все 
автопоисковики,...). Тогда будет возможно всю перепаковку для всей 
репозиторной транзакции (или вообще для всего репозитория в период 
бутстрапа) выполнить последовательно в одной и той же хешернице: создаём 
спек, специальным образом извлекаем файлы из исходного пакета, формируем 
новый пакет. Это должно быть достаточно быстро.



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [devel] I: arepo: next steps
  2012-02-28 18:59       ` Vitaly Kuznetsov
@ 2012-02-28 19:08         ` Led
  2012-02-28 20:38           ` Vitaly Kuznetsov
  0 siblings, 1 reply; 23+ messages in thread
From: Led @ 2012-02-28 19:08 UTC (permalink / raw)
  To: ALT Linux Team development discussions



On Tuesday 28 February 2012 20:59:42 Vitaly Kuznetsov wrote:
> On Tue, 28 Feb 2012 19:41:15 +0200, Igor Vlasenko wrote:
> > On Tue, Feb 28, 2012 at 04:32:57PM +0400, Vitaly Kuznetsov wrote:
> >> спасибо, это как раз то, что я хотел написать. Я попробую в
> >> ближайшее время поиграться с python-rpm и понять, можем ли бы им
> >> сформировать правильную rpm-ку. Если сможем, то мы получим очень
> >> приличную скорость. Это важно как минимум для бутстрапа (когда мы
> >> будем перепаковывать весь репозитоий).
> >
> > О, замечательно. В этом случае, мне, наверное,
> > нет смысла копаться в коде arepo-1, который вскоре,
> > похоже, полностью устареет.
> >
> > Будем ждать arepo-2 :)
>
> В взглянул на python-rpm и rpmrebuild. Первый, похоже, вообще не имеет
> интерфейса для записи заголовков rpm. Второй решает немного другую
> задачу - восстанавливает rpm из установленного состояния (т.е.
> проворачивает фарш обратно).
> Нам нужен немного другой инструмент: взять rpm-файл, отредактировать
> заголовки и содержимое, сохранить как новый rpm-файл.

Вот как раз это rpmrebuild и делает.

-- 
Led

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [devel] I: arepo: next steps
  2012-02-28 19:08         ` Led
@ 2012-02-28 20:38           ` Vitaly Kuznetsov
  2012-02-28 21:33             ` Led
  0 siblings, 1 reply; 23+ messages in thread
From: Vitaly Kuznetsov @ 2012-02-28 20:38 UTC (permalink / raw)
  To: devel

On Tue, 28 Feb 2012 21:08:35 +0200, Led wrote:
> On Tuesday 28 February 2012 20:59:42 Vitaly Kuznetsov wrote:
>> On Tue, 28 Feb 2012 19:41:15 +0200, Igor Vlasenko wrote:
>> > On Tue, Feb 28, 2012 at 04:32:57PM +0400, Vitaly Kuznetsov wrote:
>> >> спасибо, это как раз то, что я хотел написать. Я попробую в
>> >> ближайшее время поиграться с python-rpm и понять, можем ли бы им
>> >> сформировать правильную rpm-ку. Если сможем, то мы получим очень
>> >> приличную скорость. Это важно как минимум для бутстрапа (когда мы
>> >> будем перепаковывать весь репозитоий).
>> >
>> > О, замечательно. В этом случае, мне, наверное,
>> > нет смысла копаться в коде arepo-1, который вскоре,
>> > похоже, полностью устареет.
>> >
>> > Будем ждать arepo-2 :)
>>
>> В взглянул на python-rpm и rpmrebuild. Первый, похоже, вообще не 
>> имеет
>> интерфейса для записи заголовков rpm. Второй решает немного другую
>> задачу - восстанавливает rpm из установленного состояния (т.е.
>> проворачивает фарш обратно).
>> Нам нужен немного другой инструмент: взять rpm-файл, отредактировать
>> заголовки и содержимое, сохранить как новый rpm-файл.
>
> Вот как раз это rpmrebuild и делает.

Я правильно понимаю, что мы говорим о 
http://sourceforge.net/projects/rpmrebuild/ ? "rpmrebuild is a tool to 
build an RPM file from a package that has already been installed." Он 
правда умеет работать с неустановленными rpm-ами? Если да, то это очень 
интересно, можно не изобретать очередной велосипед. Если нет, то не 
проканает: на каждый пакет потребуется отдельная хешерница, установка 
зависимостей, ... -- это может быть достаточно долго.



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [devel] I: arepo: next steps
  2012-02-28 20:38           ` Vitaly Kuznetsov
@ 2012-02-28 21:33             ` Led
  2012-02-28 22:20               ` Michael Shigorin
                                 ` (2 more replies)
  0 siblings, 3 replies; 23+ messages in thread
From: Led @ 2012-02-28 21:33 UTC (permalink / raw)
  To: ALT Linux Team development discussions



On Tuesday 28 February 2012 22:38:23 Vitaly Kuznetsov wrote:
> On Tue, 28 Feb 2012 21:08:35 +0200, Led wrote:
> > On Tuesday 28 February 2012 20:59:42 Vitaly Kuznetsov wrote:
> >> On Tue, 28 Feb 2012 19:41:15 +0200, Igor Vlasenko wrote:
> >> > On Tue, Feb 28, 2012 at 04:32:57PM +0400, Vitaly Kuznetsov wrote:
> >> >> спасибо, это как раз то, что я хотел написать. Я попробую в
> >> >> ближайшее время поиграться с python-rpm и понять, можем ли бы им
> >> >> сформировать правильную rpm-ку. Если сможем, то мы получим очень
> >> >> приличную скорость. Это важно как минимум для бутстрапа (когда мы
> >> >> будем перепаковывать весь репозитоий).
> >> >
> >> > О, замечательно. В этом случае, мне, наверное,
> >> > нет смысла копаться в коде arepo-1, который вскоре,
> >> > похоже, полностью устареет.
> >> >
> >> > Будем ждать arepo-2 :)
> >>
> >> В взглянул на python-rpm и rpmrebuild. Первый, похоже, вообще не
> >> имеет
> >> интерфейса для записи заголовков rpm. Второй решает немного другую
> >> задачу - восстанавливает rpm из установленного состояния (т.е.
> >> проворачивает фарш обратно).
> >> Нам нужен немного другой инструмент: взять rpm-файл, отредактировать
> >> заголовки и содержимое, сохранить как новый rpm-файл.
> >
> > Вот как раз это rpmrebuild и делает.
>
> Я правильно понимаю, что мы говорим о
> http://sourceforge.net/projects/rpmrebuild/ ? "rpmrebuild is a tool to
> build an RPM file from a package that has already been installed." Он
> правда умеет работать с неустановленными rpm-ами? Если да, то это очень
> интересно, можно не изобретать очередной велосипед. Если нет, то не
> проканает: на каждый пакет потребуется отдельная хешерница, установка
> зависимостей, ... -- это может быть достаточно долго.

Я правильно понимаю, что выполнить

apt-get install rpmrebuild
man rpmrebuild

- это очень сложная для вас задача?

-- 
Led

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [devel] I: arepo: next steps
  2012-02-28 21:33             ` Led
@ 2012-02-28 22:20               ` Michael Shigorin
  2012-02-28 22:23               ` Dmitry V. Levin
  2012-02-29  6:09               ` Vitaly Kuznetsov
  2 siblings, 0 replies; 23+ messages in thread
From: Michael Shigorin @ 2012-02-28 22:20 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Tue, Feb 28, 2012 at 11:33:23PM +0200, Led wrote:
> > Я правильно понимаю, что мы говорим о
> > http://sourceforge.net/projects/rpmrebuild/ ? "rpmrebuild is
> > a tool to build an RPM file from a package that has already
> > been installed." Он правда умеет работать с неустановленными
> > rpm-ами? Если да, то это очень интересно, можно не изобретать

-p

> Я правильно понимаю, что выполнить [...] man rpmrebuild

Саш, если у софтины кривоватое описание на сайте,
а ты прочёл и знаешь -- продуктивней сразу подсказать,
что "да" и в какую сторону читать.

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [devel] I: arepo: next steps
  2012-02-28 21:33             ` Led
  2012-02-28 22:20               ` Michael Shigorin
@ 2012-02-28 22:23               ` Dmitry V. Levin
  2012-02-28 22:34                 ` Led
  2012-02-29  6:09               ` Vitaly Kuznetsov
  2 siblings, 1 reply; 23+ messages in thread
From: Dmitry V. Levin @ 2012-02-28 22:23 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 1391 bytes --]

On Tue, Feb 28, 2012 at 11:33:23PM +0200, Led wrote:
> On Tuesday 28 February 2012 22:38:23 Vitaly Kuznetsov wrote:
> > On Tue, 28 Feb 2012 21:08:35 +0200, Led wrote:
[...]
> > > Вот как раз это rpmrebuild и делает.
> >
> > Я правильно понимаю, что мы говорим о
> > http://sourceforge.net/projects/rpmrebuild/ ? "rpmrebuild is a tool to
> > build an RPM file from a package that has already been installed." Он
> > правда умеет работать с неустановленными rpm-ами? Если да, то это очень
> > интересно, можно не изобретать очередной велосипед. Если нет, то не
> > проканает: на каждый пакет потребуется отдельная хешерница, установка
> > зависимостей, ... -- это может быть достаточно долго.
> 
> Я правильно понимаю, что выполнить
> 
> apt-get install rpmrebuild
> man rpmrebuild
> 
> - это очень сложная для вас задача?

Это несекъюрно, мы предпочитаем
$ hsh-install man rpmrebuild && hsh-run --pty man rpmrebuild
:-)

Поскольку rpmrebuild существенным образом использует rpmbuild, я считаю
этот подход небезопасным.  Используемый в rpmrebuild метод - сдампить все
необходимое в спек, а потом выполнить rpmbuild - это довольно рискованная
процедура с точки зрения выполнения произвольного кода.  В нынешней
реализации не видно попыток с этим бороться путем квотирования всего и
вся, и я, честно говоря, не уверен, что нам стоит идти этим путем.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [devel] I: arepo: next steps
  2012-02-28 22:23               ` Dmitry V. Levin
@ 2012-02-28 22:34                 ` Led
  2012-02-28 23:04                   ` Dmitry V. Levin
  0 siblings, 1 reply; 23+ messages in thread
From: Led @ 2012-02-28 22:34 UTC (permalink / raw)
  To: ALT Linux Team development discussions



On Wednesday 29 February 2012 00:23:16 Dmitry V. Levin wrote:
> On Tue, Feb 28, 2012 at 11:33:23PM +0200, Led wrote:
> > On Tuesday 28 February 2012 22:38:23 Vitaly Kuznetsov wrote:
> > > On Tue, 28 Feb 2012 21:08:35 +0200, Led wrote:
>
> [...]
>
> > > > Вот как раз это rpmrebuild и делает.
> > >
> > > Я правильно понимаю, что мы говорим о
> > > http://sourceforge.net/projects/rpmrebuild/ ? "rpmrebuild is a tool to
> > > build an RPM file from a package that has already been installed." Он
> > > правда умеет работать с неустановленными rpm-ами? Если да, то это очень
> > > интересно, можно не изобретать очередной велосипед. Если нет, то не
> > > проканает: на каждый пакет потребуется отдельная хешерница, установка
> > > зависимостей, ... -- это может быть достаточно долго.
> >
> > Я правильно понимаю, что выполнить
> >
> > apt-get install rpmrebuild
> > man rpmrebuild
> >
> > - это очень сложная для вас задача?
>
> Это несекъюрно, мы предпочитаем
> $ hsh-install man rpmrebuild && hsh-run --pty man rpmrebuild
>
> :-)
>
> Поскольку rpmrebuild существенным образом использует rpmbuild, я считаю
> этот подход небезопасным.  Используемый в rpmrebuild метод - сдампить все
> необходимое в спек, а потом выполнить rpmbuild - это довольно рискованная
> процедура с точки зрения выполнения произвольного кода.  В нынешней
> реализации не видно попыток с этим бороться путем квотирования всего и
> вся, и я, честно говоря, не уверен, что нам стоит идти этим путем.

Какой "произвольный код" может оказаться в преамбуле и секции %files спека?
Секций %prep, %build, %install в этом спеке отсутствуют или же их можно принудительно обнулить.
Или я не понимаю о чём вы гворите -
hsh-install man _что_ && hsh-run --pty man _что_
прочитать?:)

-- 
Led

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [devel] I: arepo: next steps
  2012-02-28 22:34                 ` Led
@ 2012-02-28 23:04                   ` Dmitry V. Levin
  2012-02-28 23:28                     ` Led
  0 siblings, 1 reply; 23+ messages in thread
From: Dmitry V. Levin @ 2012-02-28 23:04 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 1131 bytes --]

On Wed, Feb 29, 2012 at 12:34:39AM +0200, Led wrote:
> On Wednesday 29 February 2012 00:23:16 Dmitry V. Levin wrote:
[...]
> > Поскольку rpmrebuild существенным образом использует rpmbuild, я считаю
> > этот подход небезопасным.  Используемый в rpmrebuild метод - сдампить все
> > необходимое в спек, а потом выполнить rpmbuild - это довольно рискованная
> > процедура с точки зрения выполнения произвольного кода.  В нынешней
> > реализации не видно попыток с этим бороться путем квотирования всего и
> > вся, и я, честно говоря, не уверен, что нам стоит идти этим путем.
> 
> Какой "произвольный код" может оказаться в преамбуле и секции %files спека?

Например, любой текстовый тэг может содержать %макрос и вообще
произвольный %(код); некоторые из них не пройдут проверку sisyphus_check'ом
на более ранней стадии, но такие тэги как %summary, %description, %url,
%files могут содержать почти что угодно.  Понятно, что их все, наверное,
можно заквотить, но сам факт использования rpmbuild, который фактически
делает eval, открывает разные возможности, не все их которых я могу
назвать навскидку.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [devel] I: arepo: next steps
  2012-02-28 23:04                   ` Dmitry V. Levin
@ 2012-02-28 23:28                     ` Led
  2012-04-04 23:08                       ` Dmitry V. Levin
  0 siblings, 1 reply; 23+ messages in thread
From: Led @ 2012-02-28 23:28 UTC (permalink / raw)
  To: ALT Devel discussion list



On Wednesday 29 February 2012 01:04:33 Dmitry V. Levin wrote:
> On Wed, Feb 29, 2012 at 12:34:39AM +0200, Led wrote:
> > On Wednesday 29 February 2012 00:23:16 Dmitry V. Levin wrote:
>
> [...]
>
> > > Поскольку rpmrebuild существенным образом использует rpmbuild, я считаю
> > > этот подход небезопасным.  Используемый в rpmrebuild метод - сдампить
> > > все необходимое в спек, а потом выполнить rpmbuild - это довольно
> > > рискованная процедура с точки зрения выполнения произвольного кода.  В
> > > нынешней реализации не видно попыток с этим бороться путем квотирования
> > > всего и вся, и я, честно говоря, не уверен, что нам стоит идти этим
> > > путем.
> >
> > Какой "произвольный код" может оказаться в преамбуле и секции %files
> > спека?
>
> Например, любой текстовый тэг может содержать %макрос и вообще
> произвольный %(код);

rpmrebuild экранирует все '%' в генерируемом спеке.

> некоторые из них не пройдут проверку sisyphus_check'ом 
> на более ранней стадии, но такие тэги как %summary, %description, %url,
> %files могут содержать почти что угодно.  Понятно, что их все, наверное,
> можно заквотить, но сам факт использования rpmbuild, который фактически
> делает eval, открывает разные возможности, не все их которых я могу
> назвать навскидку.

-- 
Led

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [devel] I: arepo: next steps
  2012-02-28 21:33             ` Led
  2012-02-28 22:20               ` Michael Shigorin
  2012-02-28 22:23               ` Dmitry V. Levin
@ 2012-02-29  6:09               ` Vitaly Kuznetsov
  2012-02-29  8:31                 ` Michael Shigorin
  2012-02-29 11:51                 ` Led
  2 siblings, 2 replies; 23+ messages in thread
From: Vitaly Kuznetsov @ 2012-02-29  6:09 UTC (permalink / raw)
  To: devel

On Tue, 28 Feb 2012 23:33:23 +0200, Led wrote:
>
> Я правильно понимаю, что выполнить
>
> apt-get install rpmrebuild
> man rpmrebuild
>
> - это очень сложная для вас задача?

Получить ответ от человека, реально использовавшего инструмент для меня 
предпочтительней. Но если ответить на прямой вопрос так сложно, то я не 
очень понимаю, зачем советовать инструмент.



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [devel] I: arepo: next steps
  2012-02-29  6:09               ` Vitaly Kuznetsov
@ 2012-02-29  8:31                 ` Michael Shigorin
  2012-02-29 12:45                   ` Vitaly Kuznetsov
  2012-02-29 11:51                 ` Led
  1 sibling, 1 reply; 23+ messages in thread
From: Michael Shigorin @ 2012-02-29  8:31 UTC (permalink / raw)
  To: devel

On Wed, Feb 29, 2012 at 10:09:39AM +0400, Vitaly Kuznetsov wrote:
> Но если ответить на прямой вопрос так сложно,
> то я не очень понимаю, зачем советовать инструмент.

Посоветовал я и, чгря, не ожидал такого.

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [devel] I: arepo: next steps
  2012-02-29  6:09               ` Vitaly Kuznetsov
  2012-02-29  8:31                 ` Michael Shigorin
@ 2012-02-29 11:51                 ` Led
  1 sibling, 0 replies; 23+ messages in thread
From: Led @ 2012-02-29 11:51 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Wednesday 29 February 2012 08:09:39 Vitaly Kuznetsov wrote:
> On Tue, 28 Feb 2012 23:33:23 +0200, Led wrote:
> > Я правильно понимаю, что выполнить
> >
> > apt-get install rpmrebuild
> > man rpmrebuild
> >
> > - это очень сложная для вас задача?
>
> Получить ответ от человека, реально использовавшего инструмент для меня
> предпочтительней.

Вы его получили:
>> > взять rpm-файл, отредактировать
>> >заголовки и содержимое, сохранить как новый rpm-файл.
> > Вот как раз это rpmrebuild и делает.

-- 
Led

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [devel] I: arepo: next steps
  2012-02-29  8:31                 ` Michael Shigorin
@ 2012-02-29 12:45                   ` Vitaly Kuznetsov
  0 siblings, 0 replies; 23+ messages in thread
From: Vitaly Kuznetsov @ 2012-02-29 12:45 UTC (permalink / raw)
  To: devel

On Wed, 29 Feb 2012 10:31:57 +0200, Michael Shigorin wrote:
> On Wed, Feb 29, 2012 at 10:09:39AM +0400, Vitaly Kuznetsov wrote:
>> Но если ответить на прямой вопрос так сложно,
>> то я не очень понимаю, зачем советовать инструмент.
>
> Посоветовал я и, чгря, не ожидал такого.

Проехали, за совет спасибо, он действительно ценный. Буду пробовать.


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [devel] I: arepo: next steps
  2012-02-28 14:04   ` Dmitry V. Levin
@ 2012-03-01 12:09     ` Vitaly Kuznetsov
  2012-03-01 12:10       ` Vitaly Kuznetsov
  0 siblings, 1 reply; 23+ messages in thread
From: Vitaly Kuznetsov @ 2012-03-01 12:09 UTC (permalink / raw)
  To: ALT Devel discussion list

On Tue, 28 Feb 2012 18:04:01 +0400, Dmitry V. Levin wrote:
> ...

Я тут немножко поигрался в написание arepo-плагина для rpmrepackage. Из 
обнаруженного:
1) Оставлять надо не только set-зависимости, все soname-зависиимости 
могут быть полезны.
2) Скрипты в исходном пакете следует оставлять только для prog-mode. В 
lib-mode они могут не отработать ввиду отсутствия файлов.
3) Мне не очевидно, что делать с Conflicts/Obsoletes. В частности, если 
такой пакет присутствует в новом состоянии репозитория, то, вероятно, 
следует добавить arepo-префикс. Если же он отсутствует, то тут 
существует три варианта: оставить как есть, добавить arepo-префикс и 
удвоить (с arepo-префиксом и без). Я пока склоняюсь к последнему 
варианту для prog-mode и ко второму для lib-mode.

Требуется проведение масштабного эксперимента по перепаковке всего 
репозитория для осознания возможных проблем (анметы, неустанавливающиеся 
пакеты, ошибки...).


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [devel] I: arepo: next steps
  2012-03-01 12:09     ` Vitaly Kuznetsov
@ 2012-03-01 12:10       ` Vitaly Kuznetsov
  0 siblings, 0 replies; 23+ messages in thread
From: Vitaly Kuznetsov @ 2012-03-01 12:10 UTC (permalink / raw)
  To: devel

On Thu, 01 Mar 2012 16:09:17 +0400, Vitaly Kuznetsov wrote:
> On Tue, 28 Feb 2012 18:04:01 +0400, Dmitry V. Levin wrote:
>> ...
>
> Я тут немножко поигрался в написание arepo-плагина для rpmrepackage.

rpmrebuild конечно же.


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [devel] I: arepo: next steps
  2012-02-28 23:28                     ` Led
@ 2012-04-04 23:08                       ` Dmitry V. Levin
  0 siblings, 0 replies; 23+ messages in thread
From: Dmitry V. Levin @ 2012-04-04 23:08 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 1155 bytes --]

On Wed, Feb 29, 2012 at 01:28:45AM +0200, Led wrote:
> On Wednesday 29 February 2012 01:04:33 Dmitry V. Levin wrote:
> > On Wed, Feb 29, 2012 at 12:34:39AM +0200, Led wrote:
> > > On Wednesday 29 February 2012 00:23:16 Dmitry V. Levin wrote:
> >
> > [...]
> >
> > > > Поскольку rpmrebuild существенным образом использует rpmbuild, я считаю
> > > > этот подход небезопасным.  Используемый в rpmrebuild метод - сдампить
> > > > все необходимое в спек, а потом выполнить rpmbuild - это довольно
> > > > рискованная процедура с точки зрения выполнения произвольного кода.  В
> > > > нынешней реализации не видно попыток с этим бороться путем квотирования
> > > > всего и вся, и я, честно говоря, не уверен, что нам стоит идти этим
> > > > путем.
> > >
> > > Какой "произвольный код" может оказаться в преамбуле и секции %files
> > > спека?
> >
> > Например, любой текстовый тэг может содержать %макрос и вообще
> > произвольный %(код);
> 
> rpmrebuild экранирует все '%' в генерируемом спеке.

Он не экранирует их в секции %files.  Мы обошли это выкидыванием
из рассмотрения файлов, пути которых содержат такие символы.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2012-04-04 23:08 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-02-27 18:13 [devel] I: arepo: next steps Igor Vlasenko
2012-02-27 23:42 ` Dmitry V. Levin
2012-02-28 12:12   ` Michael Shigorin
2012-02-28 12:32   ` Vitaly Kuznetsov
2012-02-28 17:41     ` Igor Vlasenko
2012-02-28 18:59       ` Vitaly Kuznetsov
2012-02-28 19:08         ` Led
2012-02-28 20:38           ` Vitaly Kuznetsov
2012-02-28 21:33             ` Led
2012-02-28 22:20               ` Michael Shigorin
2012-02-28 22:23               ` Dmitry V. Levin
2012-02-28 22:34                 ` Led
2012-02-28 23:04                   ` Dmitry V. Levin
2012-02-28 23:28                     ` Led
2012-04-04 23:08                       ` Dmitry V. Levin
2012-02-29  6:09               ` Vitaly Kuznetsov
2012-02-29  8:31                 ` Michael Shigorin
2012-02-29 12:45                   ` Vitaly Kuznetsov
2012-02-29 11:51                 ` Led
2012-02-28 14:04   ` Dmitry V. Levin
2012-03-01 12:09     ` Vitaly Kuznetsov
2012-03-01 12:10       ` Vitaly Kuznetsov
2012-02-28 17:09   ` Igor Vlasenko

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