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=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.1 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ya.ru; s=mail; t=1717386104; bh=4w9O97glVgbybt6yT+C8aOOkW6Vemjhm7JC2MgTDZ1w=; h=In-Reply-To:From:Date:References:To:Subject:Message-ID; b=Jj0QyCDv7qWI6pn/m1JLRfjwxDy6+9l9RQwOFej+nhsUDpZK2z7wQix4sy83t1+IT myMnlSCezNDMFmVI8/YH0UmI/imcNG4YuafGA2ffxeCQ4fGfFSMLZGrHM7+TZ9IPW3 j//mCN9gUyRstETnQR/TCRnfnbiQd0SP6afnzMVA= Authentication-Results: mail-nwsmtp-smtp-production-main-51.vla.yp-c.yandex.net; dkim=pass header.i=@ya.ru Message-ID: <9effa045-c217-4b84-bade-710bf15e3fd9@ya.ru> Date: Mon, 3 Jun 2024 10:41:43 +0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: devel@lists.altlinux.org References: <960fe3c1-e305-4440-89e5-3825018b4a0f@gmail.com> Content-Language: ru From: =?UTF-8?B?0JDQvdGC0L7QvSDQnNC40LTRjtC60L7Qsg==?= In-Reply-To: <960fe3c1-e305-4440-89e5-3825018b4a0f@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: Re: [devel] I: usrmerge 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: Mon, 03 Jun 2024 03:41:47 -0000 Archived-At: List-Archive: List-Post: 03.06.2024 05:20, Leonid Krivoshein пишет: > > > On 6/3/24 01:02, Arseny Maslennikov wrote: >> On Mon, Jun 03, 2024 at 12:32:11AM +0300, Leonid Krivoshein wrote: >>> Доброго времени! >>> >>> >>> On 3/27/24 15:54, Arseny Maslennikov wrote: >>>> On Sat, Mar 16, 2024 at 04:24:44PM +0300, Arseny Maslennikov wrote: >>>>> On Sat, Feb 03, 2024 at 12:38:44AM +0300, Arseny Maslennikov wrote: >>>>>> === Сначала о пакетах === >>>>>> >>>>>> Во-первых, не хотелось бы обновлять сотню пакетов в одной >>>>>> транзакции с пакетом filesystem, содержащим вместо /bin, /sbin, >>>>>> ... симлинки. Чтобы этого избежать, надо добиться, чтобы пакеты, >>>>>> кладущие что-либо в эти каталоги (вне %_prefix), >>>>>> устанавливались и на merged, и на unmerged, и на split[1]. >>>>>> Для этого планируется ввести brp-модуль, который при сборке >>>>>> пакета, если в %buildroot лежит что-то в соотв. каталогах вне >>>>>> префикса, создаст копию этого файла в аналогичном месте под >>>>>> префиксом. >>>>>> Можно было бы вместо копии делать ссылку, но оказалось, что нет: >>>>>> * (упакованные в cpio) симлинк поверх файла или файл поверх симлинка нельзя >>>>>>     установить на merged-usr, т. е. поверх друг друга; >>>>>> * (упакованные в cpio) хардлинки нельзя установить на >>>>>>     split-usr-иерархию, потому что они придутся на разные ФС, и >>>>>>     rpm не сможет их расщепить (изготовить одинаковые inode). >>>>>> Это позволило снизить количество пакетов с файлами в /bin и >>>>>> /sbin, для которых потребуются ручные изменения, с 90 до ~20. >>>>>> >>>>>> [1] https://www.altlinux.org/Usrmerge#%D0%93%D0%BB%D0%BE%D1%81%D1%81%D0%B0%D1%80%D0%B8%D0%B9 >>>>> Почти реализовано (ждём install checks). >>>>> https://git.altlinux.org/tasks/327286 >>>>> Можно коммитить задание, как только будет готово к коммиту и при >>>>> отсутствии иных возражений. >>>>> >>>>> Прошу одобрений от: >>>> Спасибо! Одобрения получены. >>>> Сегодня задание войдёт в репозиторий. >>>> >>> Прошу прощения за тупой вопрос, но я нигде не нашёл прямой рекомендации >>> использовать в качестве шебанга, например, /usr/bin/bash. Благодаря симлинку >>> ведь и старые шебанги будут корректно обрабатываться? Или не совсем так? А >>> что с зависимостями на /bin/bash? >> Работать скрипт будет одинаково вне зависимости от того, какой из двух >> путей написан в первой строке после #!. >> >> А вот с т. з. зависимостей в наших пакетах не всё равно, что туда >> писать. Что в скрипте написано, на то буквально и возникнет зависимость >> (по ссылке /bin и /sbin не проходит). В случае с sh и bash там обычно >> путь без %_prefix. > > В этом месте я совсем запутался. (( Как правильно делать? > > 1. Оставлять старые шебанги с /bin или лучше менять их на /usr/bin? > 2. Что из этого предпочтительно использовать в Requires: /bin/sh или /usr/bin/sh? > 3. В Requires и в других видах зависимостей лучше не использовать макрос %_prefix? > 4. Будут ли хоть как-то удовлетворяться зависимости по путям в /bin? Например, если в скрипте шебанг без /usr, а в спеке нет AutoReq: noshebang, будут ли корректно проставляться зависимости на /usr/bin/sh? > > Отдельный интересный вопрос про скрипты, которые будут залетать в stage1 с вероятно другой иерархией, но видимо не для этой рассылки. > В stage1, который готовит make-initrd, usr-merge иерархия. Так что никакой проблемы нет. -- С уважением, Антон Мидюков