From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS autolearn=no autolearn_force=no version=3.4.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789550829; x=1790155629; darn=lists.altlinux.org; h=in-reply-to:content-transfer-encoding:content-disposition :content-type:mime-version:references:message-id:subject:to:from :date:sender:from:to:cc:subject:date:message-id:reply-to :content-type; bh=gcExqu+nB5w8Ba8r/b8toqEG1AsoT9pchoduSHWZdMs=; b=FndEoRWXw85Zv0eGBTBn2sTiylfyLQIXIMAQ6OtX/miXRdVG/e+4bW8nkedPb7wN2I 2Wn61F/TqqBqi4FIIJatVMgCso1dn1OB9KMGHHLAF/h4zCW4Rob2n12H4GvXHZHsA52F M0lhpVomdRzeZktieKwN+ewh0dg8HEb06FBm2/u8fGKvHaIyAjASuH0t/dYO5GL5hAse ngc7GTsE0mDAprk7oXOiocBzWefBWlfGNLBqM5mrli+QI3tbC6fLeh2MbWebOnG5wKFg DKjksGSJZ9vLVih2qOW1gGz3+vYxduoq+I+kwXD1y+rKXf6/gtEhs6mb3MS+IX/p4Oag lLEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789550829; x=1790155629; h=in-reply-to:content-transfer-encoding:content-disposition :content-type:mime-version:references:message-id:subject:to:from :date:sender:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=gcExqu+nB5w8Ba8r/b8toqEG1AsoT9pchoduSHWZdMs=; b=xRzpM7/+IC9TbUENJ/tlJRHf9TThs8wNUhOwLm1W0iw7tmquRGXWOOQk89C4aETk4t j4c4qSjZZIVVQmAp7YM+o6DjBy1/gQjCLdtL+UNbFrtsI+eDx9YAfU5NZpuDzxi7i0rH eSgpPYkO05L/QMzUJuZxcx8tvqWDH578Z7dng64/Mt0l+b5mkx00PGeA17wbwnm5MBNb 5DD3ZIeYWRW0cTrz2TZ23CEWKPxAqs2Owu3+GvIIsRF8xTLe4bmA9L5N2xqFwdupzarg SERHkGy9DOc5/u1CFQt1uxbNGUMGNs9ly4bGxhH07SiWXIMiD/DtgKwE5Aaweg55L4cl JgWg== X-Gm-Message-State: AFuF++kR9fSLA30/Jt2gIgrutvRpqN/V/ihr6QaOGytCZHwJ5Re0/nO7 auCpllyTNLa6JHiYZZEQlz8VdTMILCv/NYJnXmWR5e2VBWzcR/Plxm9RJgqjVQ== X-Gm-Gg: AYBFou2GLqgp9khiAW6df03vyjRQEfpXoievmFhNCnAbHAtAnCWB0H1gKOmkK6x2Yrm 40XnIWvd3tAhfAdrzaPLRAGot1AjZOV/XHkBD/i1DtVG2ZOFhYrNZp0AXIYYiXoapjFuFSiOw5Z fJ7XGQFr7CSR88+IKFftbUSifHT/QM113QgYbljqS2CChbwOoVxUtG0RLqxOQAYd87lkPK4Kx8e tg6Wf3SE/CrpHyMJj2GDASWQpWYN+LZOBu0lL1SiJlweGC86IwvvsLJCEbQ3OgesZnx7i59HNYo mOlkEkCFj/jxRRhfj8aVBz0QKr9f1FfrppoxpxqTkeWX+mkXO/EJq/TSVhUTOT4TtCNRJA4BZoM UiQutZ2YLvOD7fwCMwGny908a0aza+v4DpQLBu2ICJztbWMxgAqzxH0FyyERPEH7w5vfiSdsbfo u2sTMbfeW5wA8gBKN+QfiQV3z/sqPhNESKckH3PRCRHPFSBGnybPJtLvvSxKwX4YwEzfpY3B+38 zbYKc0CLRTz3A== X-Received: by 2002:a05:6512:3f09:b0:5b7:6665:1028 with SMTP id 2adb3069b0e04-5b8b63d4f55mr468653e87.9.1789550828357; Wed, 16 Sep 2026 02:27:08 -0700 (PDT) Sender: "Ivan A. Melnikov" Date: Wed, 16 Sep 2026 13:27:04 +0400 From: "Ivan A. Melnikov" To: ALT Linux Team development discussions Message-ID: References: <3e15901e-87fb-45f9-bc6d-f854bd6d6124@altlinux.org> <4e05fcdf-b728-42da-b95d-e8fca0bf3ad4@basealt.ru> <81284764-f719-4b6e-8672-102e342e72e5@altlinux.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <81284764-f719-4b6e-8672-102e342e72e5@altlinux.org> Subject: Re: [devel] =?utf-8?b?0KDQsNGB0YjQuNGA0LXQvdC40LUg0YTRg9C90LrRhtC4?= =?utf-8?b?0L7QvdCw0LvRjNC90L7RgdGC0LggcnBtLWJ1aWxkLXJ1c3Q=?= X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Sep 2026 09:27:11 -0000 Archived-At: List-Archive: List-Post: On Wed, Sep 16, 2026 at 12:11:13PM +0300, Rx wrote: > 15.09.2026 16:39, Anton Farygin пишет: > > On 9/15/26 15:55, Rx wrote: > > > > > > > > >           Для добавления возможности вендоринга spec-файл должен > > >           содержать: > > > > > > # При отключенном вендоринге брать vendor/ из заранее > > > подготовленного архива. > > > %{!?_enable_rust_vendoring: Source1: vendor.tar } > > > > > > BuildRequires(pre): rpm-build-rust > > > # При активном вендоринге, установить программу для вендоринга. > > > # По умолчанию %rust_vendor использует cargo-vendor-alt из > > > cargo-vendor-filterer. > > > %{?_enable_rust_vendoring: > > > BuildRequires: cargo-vendor-filterer > > > } > > > > > > %prep > > > # Аналогично Source1. > > > %setup %{!?_enable_rust_vendoring:-a1} > > > %rust_prep > > > > > Т.е. для вендоринга внутри hasher нужна сеть, соответственно это не > > сработает без специальным образом запущенного hasher. > > Альтернативой было бы монтирование локального зеркала внутрь hasher или > установка нескольких сотен noarch/srpm в сборочную среду. В любом из этих > случаев нужна автоматизация на уровне Spec-файла. > > А так предложенный подход ничем ни отличается от Packaging/Vendoring > . Единственное отличие это > уход от полностью ручного запуска вендоринга к запуску вендоринга при помощи > средств RPM. По-моему мнению это неплохое начало для того, чтобы в будущем > можно было отказаться от вендоринга целиком. > > > Очень похоже на python, но там понятно когда расползаются зависимости, а > > здесь забытый вендоринг про себя что-то скажет ? > > За соотвестивием зависимостей следит Cargo, особенно если при сборке будет > указан --locked или --frozen: > > error: no matching package named `adler2` found > location searched: directory source `/usr/src/RPM/BUILD/resvg-0.48.1/vendor` > (which is replacing registry `crates-io`) > required by package `miniz_oxide v0.8.9` >     ... which satisfies dependency `miniz_oxide = "^0.8"` (locked to 0.8.9) > of package `png v0.18.1` > note: offline mode (via `--frozen`) can sometimes cause surprising > resolution failures > help: if this error is too confusing you may wish to retry without > `--frozen` > error: Bad exit status from /usr/src/tmp/rpmb-tmp.LiwVrM (%build) > > Если речь в поддержании зависимостей в свежем состоянии, то это больше > вопрос к сборочной инфраструктуре. На текущий момент из всех пакетов которые > я смотрел от разных мейнтейнеров повторный вендоринг с более > свежими**зависимостями был в одном или двух пакетах, и то, я предполагаю это > связано с исправлением ошибки в Cargo в решателе зависимостей, которая > привела к падению. В идеальном мире, повторный вендоринг нужно делать при > каждом новом релизе Cargo и при появлении новых версий зависимрстей. > > Надёжных путей решения этой два: > > 1.  Мы адаптируем подход Fedora и пакуем несколько тысяч почти никому > ненужных пакетов. Таким образом за поддержанием свежести > зависимостей следит APT, RPM и Cargo. > 2.  Мы организуем собственную инфраструктуру вокруг доверенного > зеркала и позволяем Cargo перед пересборкой самому решать какие > зависимости нужны. > > Первый подход хорош тем, что позволяет автоматизировать установку > C-библиотек в сборочную среду. Ещё такие пакеты становятся очевидным местом для применения дистрибутивных патчей, например обеспечивающих поддержку loongarch64 (ох сколько раз были пропатчены одни и те же crate в разных пакетах) и e2k. Другой пример -- исправления, связаные с безопасностью. > Первым минусом является построение велосипеда > поверх другого велосипеда, где за совместимостью зависимостей следят два > инструмента. Вторым минусом является, то что для каждого целевого пакета > придётся паковать с сотню новых пакетов, на каждую версию целевого пакета, > не забывая периодически обновлять сборочные зависимости, не забывая при этом > патчить старые пакеты. Третьим минусом является засорение репозитория > ненужными пакетами, которые сами по себе имеют очень узкий круг применения, > например если пользователю обязательно нужно, чтобы все зависимости > ставились только через apt-rpm. Такое засорение можно обойти, выделив эти пакеты в отдельный компонент. > Второй подход хорош тем, что в нём будет проще поддерживать зависимости и > синхронизацию с основным репозиторием crates.io. Если для некоторых пакетов > придётся делать отдельные патчи под ALT, будь то уязвимости или поддержка > сторонних библиотек, можно будет связать эти патчи с конкретным пакетом, а > не с его десятой разновдиностью. С пользовательской точки зрения доверенное > зеркало будет куда проще использовать при сборке собственных проектов нежели > чем при использовании сотен RPM пакетов. Минусом является, то что частичную > синхронизацию с RPM всё же придётся сделать. > > Тем не менее оба варианта, являются сторонами одной медали, где главное > отличие это Cargo vs APT/RPM. В любом из случаев нужно будет продумывать > инфраструктуру, как и что должно работать. -- wbr, iv m.