* [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-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 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
* 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 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-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-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-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-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
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