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 --]
next prev 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