ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Anton Farygin <rider@basealt.ru>
To: devel@lists.altlinux.org
Subject: Re: [devel] [devel-ports] renoarch: noarch.rpm -> src.rpm
Date: Mon, 15 Nov 2021 18:02:56 +0300
Message-ID: <7345237b-9064-d20b-15a9-5f4b92b03ce9@basealt.ru> (raw)
In-Reply-To: <20211115132109.bq5t2jhg4lzveeox@titan.localdomain>

On 15.11.2021 16:21, Ivan A. Melnikov wrote:
> On Mon, Nov 15, 2021 at 03:15:18PM +0300, Anton Farygin wrote:
>> On 15.11.2021 14:14, Ivan A. Melnikov wrote:
>>> К тому же, как тут пишет рядом rider@, эту задачу сложно
>>> формализовать. Зависимости могут быть неточными (когда
>>> написано BR: foo, а на самом деле требуется foo > 2.0),
>>> специфичными для платформы и так далее. Циклы надо как-то
>>> разрывать опять же.
>> На самом деле нужно написать solver, который будет разделять бинарные
>> жёсткие зависимости и сборочные зависимости.
>>
>> unmet'ы при сборке вылезают из-за бинарых (библиотечных) зависимостей и
>> именно по ним исходные пакеты надо упорядочивать.
>>
>> Мы сделали попытку написать такой solver (oneandhalf опция в rdb), но циклы
>> оно всё равно рвать не умеет.
>>
>> По идее можно попробовать добавить параметр к запросу, который позволит
>> порвать циклы вручную. Или опцию, которая будет искать и рвать все
>> циклические зависимости и сортировать без их учёта).
>>
>> Последнее мне нравится больше всего, т.к. всё равно приходится с этими
>> пакетами что-то делать для сборки.
> У меня тоже сделана подобная штука. Сначала определяется множество
> пакетов исходного репозитория (скажем, Sisyphus x86_64), такое, что
> их совместная сборка в целевой репозиторий
> (скажем, sisyphus_riscv64) не порождает новых
> анметов ни по сборочным, ни по бинарным зависимостям, ну и естественно
> содержащее нужные пакеты. Потом происходит попытка упорядочить эти
> для задачи пакеты по принципу "пакет А собирается
> раншье пакета Б, если результаты сборки пакета А попадают в сборочный
> chroot пакета Б". Сборочный chroot обсчитывается нагло замыканием
> сборочных зависимостей через обход в ширину графа зависимостей
> в исходном репозитории, совсем не так, как
> это делает apt, но для моих целей примерного сходства достаточно.
>
> Циклы при упорядочивании рвутся где придётся, но записываются
> и показываются отдельно от списка пакетов, чтобы можно было
> оценить ужас происходящего и что-то с этим сделать.
>
> Есть опции вида "игнорировать зависимость foo от bar" (чтобы
> порвать какой-то цикл в конкретном месте) и "игнорировать
> все зависимости на foo". Последняя более полезна и спользуется
> почти всё время.
>
> Чаще всего это даже работает.

А давай сравним вывод ?
curl 
'https://rdb.altlinux.org/api/package/what_depends_src?packages=ocaml&branch=sisyphus&depth=1&dptype=both&finite_package=false&onea
ndhalf=true'|jq  -r '.dependencies[].name'


Как у тебя получилось отсортировать все пакеты, которые зависят по 
сборки и runtime от ocaml (включая те, что из него собираются) ?




  reply	other threads:[~2021-11-15 15:02 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-13 21:26 [devel] " Michael Shigorin
2021-11-13 21:38 ` Dmitry V. Levin
2022-07-19 11:26   ` Michael Shigorin
2021-11-13 22:37 ` Anton Farygin
2021-11-16 10:09   ` Michael Shigorin
2021-11-15 11:14 ` [devel] [devel-ports] " Ivan A. Melnikov
2021-11-15 12:15   ` Anton Farygin
2021-11-15 13:21     ` Ivan A. Melnikov
2021-11-15 15:02       ` Anton Farygin [this message]
2021-11-16 10:29       ` Michael Shigorin
2021-11-16  9:50 ` [devel] renoarch: noarch.rpm -> src.rpm (собственно скрипт) 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=7345237b-9064-d20b-15a9-5f4b92b03ce9@basealt.ru \
    --to=rider@basealt.ru \
    --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