ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Igor Vlasenko <vlasenko@imath.kiev.ua>
To: devel@lists.altlinux.org
Cc: Vitaly Kuznetsov <vitty@altlinux.ru>
Subject: [devel] I: arepo: next steps
Date: Mon, 27 Feb 2012 20:13:16 +0200
Message-ID: <20120227181316.GA8941@dad.imath.kiev.ua> (raw)

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

В общем, так понимаю, 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



             reply	other threads:[~2012-02-27 18:13 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-27 18:13 Igor Vlasenko [this message]
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

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=20120227181316.GA8941@dad.imath.kiev.ua \
    --to=vlasenko@imath.kiev.ua \
    --cc=devel@lists.altlinux.org \
    --cc=vitty@altlinux.ru \
    /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