ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: "Dmitry V. Levin" <ldv@altlinux.org>
To: ALT Devel discussion list <devel@lists.altlinux.org>
Subject: Re: [devel] I: gyle --test-only by default
Date: Sun, 24 Mar 2019 02:17:53 +0300
Message-ID: <20190323231753.GA25748@altlinux.org> (raw)
In-Reply-To: <CA+qzen=nT7uY-s08tLSLYeHoRUKq2EvawLrd_FP5rFgQjkaRjg@mail.gmail.com>

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

On Thu, Mar 21, 2019 at 06:58:09AM +0300, Alexey Tourbin wrote:
> On Wed, Mar 20, 2019 at 3:40 PM Dmitry V. Levin wrote:
[...]
> > У нас очень дорогая проверка того, входит ли пакет A в сборочное окружение
> > пакета B.
> 
> Она не очень дорогая. При генерации /var/cache/apt/pkgcache.bin 2
> секунды уходит на распаковку pkglist.classic.xz, но это не подавляюще
> много. По-моему, проверку нельзя легко и сильно удешевить.

Для того, чтобы выяснить, входит ли пакет A в сборочное окружение пакета B,
нам в общем случае нужно вычислить это сборочное окружение пакета B.
Сейчас для этого надо
- создать базовый чрут;
- распаковать спек-файл пакета B, извлечь из него BuildRequires(pre),
  установить по ним пакеты;
- распаковать исходный код, вычислить BuildRequires, вычислить по ним
  пакеты.

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

Но если нам уже известно сборочное окружение каждого исходного пакета
для текущего состояния репозитория, то вычисление сборочного окружения
каждого исходного пакета для следующего состояния репозитория можно
оптимизировать.

> > > По сути, это классическая задача поиска путей в графе и @viy уже
> > > много раз писал на эту тему и то, как её алгоритмизировать.
> >
> > Для того, чтобы эту задачу решать быстро, насколько я понимаю,
> > надо упростить зависимости и отказаться от apt в пользу инструментов,
> > заточенных на решение этой задачи.
> 
> Если совсем извести двусмысленные зависимости, то тогда отпадает
> потребность в логике выбора, и такой инструмент становится более
> реальным. Но ведь двусмысленные зависимости, вроде autoconf_2.13 и
> autoconf_2.60, существуют специально. Чтобы эта специальная логика
> выбора отрабатывала когда надо и немножко облегчала жизнь.

С одной стороны да.  С другой стороны, на практике пакету с зависимостью
на autoconf вряд ли подойдёт любой autoconf.  В конечном итоге мы
отказались от альтернатив для autoconf, automake, libtool и gcc,
поскольку множественность вариантов для этих зависимостей не нужна.

> Ну и потом специальный инструмент всё равно не сможет работать чисто
> на pkglist'ах, есть же еще RPMS.hasher, который надо сканировать, и
> генерировать общее состояние, где RPMS.hasher перекрывает основной
> репозиторий; и значит всё равно появляется выбор. Получается
> подозрительно похоже на apt.

В таком варианте да.  А если обновлять pkglist'ы после каждого сабтаска
и не сканировать RPMS.hasher?  Если не генерить pkglist'ы с нуля, а патчить,
это не должно быть долго.


-- 
ldv

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 801 bytes --]

  parent reply	other threads:[~2019-03-23 23:17 UTC|newest]

Thread overview: 100+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-17 12:03 [devel] I: gyle: --fail-early " Dmitry V. Levin
2019-03-17 12:30 ` Yuri Sedunov
2019-03-17 12:36   ` Dmitry V. Levin
2019-03-18  6:36 ` Ivan A. Melnikov
2019-03-18 11:56   ` Dmitry V. Levin
2019-03-18  2:03     ` [devel] I: gyle --test-only " Dmitry V. Levin
2019-03-18  5:10       ` Anton Farygin
2019-03-18  7:55       ` Sergey V Turchin
2019-03-19  9:22       ` Andrey Cherepanov
2019-03-19  9:42         ` Paul Wolneykien
2019-03-19  9:51           ` Andrey Cherepanov
2019-03-19  9:59             ` Anton Farygin
2019-03-19 10:03               ` Grigory Ustinov
2019-03-19 10:06                 ` Michael Shigorin
2019-03-19 10:15                   ` Alexey V. Vissarionov
2019-03-19 10:36                     ` Andrey Cherepanov
2019-03-19 10:43                       ` Anton Farygin
2019-03-19 19:14                       ` Alexey V. Vissarionov
2019-03-19 21:05                         ` Igor Vlasenko
2019-03-19 21:25                           ` Anton Farygin
2019-03-19 21:36                             ` Alexey V. Vissarionov
2019-03-20  7:22                               ` Sergey V Turchin
2019-03-20  7:32                                 ` Sergey V Turchin
2019-03-20 10:07                                   ` Igor Vlasenko
2019-03-20 10:20                                     ` Sergey V Turchin
2019-03-20 10:34                                     ` Sergey Afonin
2019-03-20 10:55                                       ` Igor Vlasenko
2019-03-20 12:08                                         ` Sergey Afonin
2019-03-20 13:14                                           ` Igor Vlasenko
2019-03-21  4:50                                             ` Anton Farygin
2019-03-21  7:59                                               ` Andrey Savchenko
2019-03-21  8:14                                                 ` Anton Farygin
2019-03-21  3:37                                         ` Alexey Tourbin
2019-03-19 21:43                             ` Igor Vlasenko
2019-03-20  4:22                               ` Anton Farygin
2019-03-20 10:09                                 ` Igor Vlasenko
2019-03-20 10:22                                   ` Sergey V Turchin
2019-03-20 12:28                                   ` Dmitry V. Levin
2019-03-20 13:01                                     ` Igor Vlasenko
2019-03-20 13:05                                       ` Dmitry V. Levin
2019-03-21  0:31                                         ` Dmitry V. Levin
2019-03-21  4:36                                           ` [devel] железо на сборочнице Anton Farygin
2019-03-21  5:55                                             ` Sergey Afonin
2019-03-19 21:42                         ` [devel] I: gyle --test-only by default Dmitry V. Levin
2019-03-20  9:18                           ` Alexey V. Vissarionov
2019-03-20  9:42                             ` Anton Farygin
2019-03-20  9:46                               ` Anton Farygin
2019-03-20 10:06                             ` Sergey V Turchin
2019-03-20 10:38                             ` Ivan Zakharyaschev
2019-03-20 11:08                               ` Igor Vlasenko
2019-03-20 11:21                               ` Alexey V. Vissarionov
2019-03-20 11:51                               ` Andrey Savchenko
2019-03-20 12:03                                 ` Aleksey Novodvorsky
2019-03-20 12:33                                   ` Andrey Savchenko
2019-03-20 12:48                                     ` Dmitry V. Levin
2019-03-20 13:01                                       ` Andrey Savchenko
2019-03-20 13:09                                         ` Dmitry V. Levin
2019-03-20 13:16                                           ` Andrey Savchenko
2019-03-20 13:24                                             ` [devel] предлагаю продолжить летом (was: I: gyle --test-only by default) Michael Shigorin
2019-03-20 13:29                                               ` Andrey Savchenko
2019-03-20 13:31                                               ` Igor Vlasenko
2019-03-20 13:34                                           ` [devel] I: gyle --test-only by default Alexey V. Vissarionov
2019-03-20 12:33                                   ` Alexey V. Vissarionov
2019-03-20 12:37                                 ` Ivan Zakharyaschev
2019-03-20 12:39                                 ` Dmitry V. Levin
2019-03-20 12:47                                   ` Andrey Savchenko
2019-03-20 12:51                                     ` Dmitry V. Levin
2019-03-20 12:56                                       ` Andrey Savchenko
2019-03-20 13:04                                         ` Dmitry V. Levin
2019-03-20 13:09                                           ` Andrey Savchenko
2019-03-20 13:16                                             ` Anton Farygin
2019-03-20 15:39                                             ` Dmitry V. Levin
2019-03-20 23:50                                               ` Andrey Savchenko
2019-03-21  0:18                                                 ` Dmitry V. Levin
2019-03-20 13:56                                         ` Sergey V Turchin
2019-03-20 13:12                                   ` Alexey V. Vissarionov
2019-03-21  3:58                                   ` Alexey Tourbin
2019-03-21  4:24                                     ` Alexey V. Vissarionov
2019-03-23 23:17                                     ` Dmitry V. Levin [this message]
2019-03-20 12:57                             ` Dmitry V. Levin
2019-03-20 13:33                               ` Alexey V. Vissarionov
2019-03-20 13:52                                 ` Sergey V Turchin
2019-03-19 10:15                   ` Grigory Ustinov
2019-03-19 11:37                     ` Anton V. Boyarshinov
2019-03-19 12:12                       ` Grigory Ustinov
2019-03-19 17:40                     ` Ivan Zakharyaschev
2019-03-19 10:09                 ` Anton Farygin
2019-03-19 10:59                 ` Andrey Savchenko
2019-03-19 11:03                   ` Anton Farygin
2019-03-19 11:05                     ` Andrey Savchenko
2019-03-19 11:11                       ` Anton Farygin
2019-03-19 11:15                         ` Andrey Cherepanov
2019-03-19 11:20                           ` Anton Farygin
2019-03-19 11:28                             ` Andrey Cherepanov
2019-03-19 11:38                               ` Anton Farygin
2019-03-19 12:00                                 ` Andrey Cherepanov
2019-03-19 12:01                                   ` Anton Farygin
2019-03-19 12:05                                     ` Anton Farygin
2019-03-18 12:31     ` [devel] I: gyle: --fail-early " Anton Farygin
2019-03-18 13:28 ` [devel] I: gyle: --test-early, --fail-only " Michael Shigorin

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=20190323231753.GA25748@altlinux.org \
    --to=ldv@altlinux.org \
    --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