ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Alexey Tourbin <alexey.tourbin@gmail.com>
To: ALT Linux Team development discussions <devel@lists.altlinux.org>
Subject: Re: [devel] [#166699] rpm-4.13-rc1 + rpmbuild-4.0.4-alt + apt-rpm
Date: Thu, 21 Jul 2016 04:09:35 +0300
Message-ID: <CA+qzen=1yFOahcmOfewpBfxCEM=rpR1AjdG2WA40Eq3=DwK8Rg@mail.gmail.com> (raw)
In-Reply-To: <20160719145811.GI2134@glebfm.cloud.tilaa.com>

2016-07-19 17:58 GMT+03:00 Gleb Fotengauer-Malinovskiy <glebfm@altlinux.org>:
> Всем привет!
>
> Завершена первая стадия переноса наших фич [1] на современную версию rpm.
> Идея первой стадии состоит в том, чтобы можно было использовать для
> установки новый rpm, а для сборки привычный нам altrpm.

На мой взгляд, для этого изменения, с учетом его сложности, не имеется
достаточных оснований - по крайней мере, если усматривать эти
основания в области каких-то реальных улучшений при сборке или при
установке пакетов, а не в области получения денег за первую, вторую и
все последующие стадии работ. Ниже упоминается совместимость с RH, но
не разъясняется, что это такое. Поскольку rpm является инструментом
нижнего уровня (управления пакетами), то никакой особенной
совместимости для пользователя и не нужно: ему, как правило, вообще
противопоказано запускать rpm вручную. Попытка сделать из rpm
инструмент более высокого уровня ведет ко всяким нелепостям: помню,
Vitus Wagner первым делом попытался импортировать свой PGP-ключ в базу
/var/lib/rpmdb, и отсутствие совместимости с RH - ключ не
импортируется - его, так сказать, неприятно удивило.

Вообще, в области улучшения rpm многие ходячие идеи на поверку
оказываются нелепостями. Помню еще читал тезисы доклада Дениса
Силакова. Он пишет: "пользователи могут заметить прирост
производительности при установке пакетов на многоядерных машинах, где
RPM5 способен выполнять параллельно несколько действий на разных ядрах
процессора". На самом деле самым узким местом при серийной установке
пакетов является скорость распаковки lzma payload, которая в несколько
раз меньше скорости записи на жесткий диск; распараллелить распаковку
lzma никак нельзя. Силаков дальше пишет: "В настоящее время
распараллеливание используется при обработке групп пакетов (для
проверки их подписей, контрольных сумм и тому подобного). Возможность
использования параллелизма на более низком уровне (например, для
разархивирования содержимого пакета — одного из наиболее затратных по
времени действий) исследуется, однако внедрение подобных механизмов
сопряжено с существенными техническими трудностями и требует
тщательного тестирования." Но ведь проверка подписей выполняется на
более высоком уровне - на уровне репозитория (средствами apt). Если
репозиторий (как функция от входящих в него пакетов) подписан, то на
уровне rpm подписи самих пакетов уже проверять не надо. А
распараллеливание файловых операций при установке - да, невозможно и
требует тщательного тестирования.

Контрольный вопрос: а что там в rpm-4.13 с Epoch? В старом rpm когда
есть Provides c Epoch, то Requires без Epoch (вида Requires: N =
V[-R]) трактуется как Requires: {MATCH_ANY_EPOCH_OR_NO_EPOCH}:V[-R].
Таким образом, если мы хотим привязаться к апстримной версии, то нам
не нужно знать эпоху пакета. В новом rpm вроде бы потом сделали что во
всех зависимостях отсутствующий Epoch принудительно трактуется как
Epoch=0. Так что логика привязки к апстримной версии работать больше
не будет.

Я еще временами обдумывал, как можно улучшить set-версии, а именно,
как можно к символам добавить поддержку прототипов/сигнатур (наподобие
C++ mangling, но для C-функции). Если интересует, могу подробнее
написать о положении дел в этой области.

  parent reply	other threads:[~2016-07-21  1:09 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-19 14:58 ` Gleb Fotengauer-Malinovskiy
2016-07-20  8:22   ` Sergey Afonin
2016-07-20 11:45       ` Aleksey Novodvorsky
2016-07-20 14:20         ` Sergey Afonin
2016-07-20 14:33           ` Aleksey Novodvorsky
2016-07-25 12:25             ` Vitaly Lipatov
2016-07-20 14:13       ` Sergey Afonin
2016-07-20 14:41     ` Gleb Fotengauer-Malinovskiy
2016-07-21  1:09   ` Alexey Tourbin [this message]
2016-08-07  7:18     ` Alexey Tourbin
2016-08-07  7:25       ` Hihin Ruslan
2016-08-07  7:30       ` Andrew Clark
2016-08-07  7:39         ` Alexey Tourbin
2016-08-07  7:46           ` Hihin Ruslan
2016-08-07  8:06             ` Alexey Tourbin
2016-08-07  8:13               ` Hihin Ruslan
2016-08-07  9:58               ` Hihin Ruslan
2016-08-07 14:11                   ` Hihin Ruslan
2016-08-07 14:31                     ` [devel] %{?epoch:%epoch:} Dmitry V. Levin
2016-08-07 16:38                       ` Hihin Ruslan
2016-08-07 16:47                         ` Dmitry V. Levin
2016-08-07 17:34             ` [devel] [#166699] rpm-4.13-rc1 + rpmbuild-4.0.4-alt + apt-rpm Alexey Tourbin
2016-08-07 18:36               ` Hihin Ruslan
2016-08-07  8:06           ` Andrew Clark
2016-08-07  8:34             ` Alexey Tourbin
2016-08-07 11:08               ` Andrew Clark
2016-08-07 18:59                 ` Alexey Tourbin
2016-08-08  6:13                   ` Andrew Clark
2016-08-08  8:26                     ` Igor Zubkov
2016-08-08  8:41                       ` Andrew Clark
2016-08-08  9:11                         ` Alexey Gladkov
2016-08-09 13:22                           ` Alexey Tourbin
2016-08-09 14:42                             ` Alexey Gladkov
2016-08-08  9:17                         ` Igor Zubkov
2016-08-08  9:25                           ` Andrew Clark
2016-08-08  9:42                             ` Igor Zubkov
2016-08-08  9:44                               ` Andrew Clark

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='CA+qzen=1yFOahcmOfewpBfxCEM=rpR1AjdG2WA40Eq3=DwK8Rg@mail.gmail.com' \
    --to=alexey.tourbin@gmail.com \
    --cc=devel@lists.altlinux.org \
    /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