From: "Денис Смирнов" <mithraen@altlinux.ru>
To: devel@altlinux.ru
Cc: sisyphus@altlinux.ru
Subject: [devel] Мусор в Requires
Date: Mon, 1 Mar 2004 01:13:33 +0300
Message-ID: <20040229221333.GC5036@localhost.localdomain> (raw)
[-- Attachment #1: Type: text/plain, Size: 2968 bytes --]
Поглядел я тут в requires пакетов, и подумалсь мне -- их же можно в 2-3 раза
короче сделать!
У меня родилось несколько предложений по очистке requires.
1. Убиение дупов. Периодически в разных пакетах я вижу полосы из нескольких
/bin/sh, иногда и другие пакеты также дупятся. Это хоть и некритично, но
"неаккуратненько" (c) известный анекдот
Предложение -- в findreq перед тем, как отдавать список найденых requires
его отсортировать и почистить (sort|uniq)
2. Если требется, например libc.so.6 и libc.so.6(GLIBC_2.0), то первая запись
явно не имеет смысла ни для apt, ни для rpm (любой пакет которой provides
второй вариант обязательно будет provides первый вариант, насколько я понимаю).
Решение: для каждой зависимости вида lib([a-z]+).so.(\d+)\(.*\) удалять
зависимость вида lib$1.so.$2
3. Привожу пример:
- libc.so.6
- libc.so.6(GLIBC_2.0)
- libc.so.6(GLIBC_2.1)
- libc.so.6(GLIBC_2.1.2)
- libc.so.6(GLIBC_2.1.3)
- libc.so.6(GLIBC_2.2)
Красиво? Логика мне подсказывает, что лишь последняя запись здесь имеет смысл.
Точно такая же извращённая ситуация со многими другими библиотеками (сходу
вспоминаю libdl, libm, libacl).
4. Разборки с glibc-core.
Существуют такие полезные библиотеки как libm.so и libdl.so. Зависимости на
них встречаются часто, однако находятся они в glibc-core. Так как у меня есть
большие сомнения, что когда-либо эти библиотеки (вернее их glibc-версии)
будут отделены от glibc-core, то я предлагаю сделать так:
Если есть, зависимость на libc.so.6(GLIBC_2.2), то зависимости на:
libm.so.6
libdl.so.6
libm.so.6(GLIBC_2.1) (или любую другую версию _не больше_ чем требует libc)
libdl.so.6(GLIBC_2.1) (или любую другую версию _не больше_ чем требует libc)
5. libXXX и libXXX.so.Y
Логика мне подсказывает, что вторая зависимость такого вида чаще всего
является лишь уточнением первой.
Предложение: в подобных ситуациях удалять первую зависимость.
6. Есть пары пакетов, один из которых всегда требует другого. Обычно это
какая-то программа, и основная библиотека, на которой она построена. Кроме
того есть пакеты, всегда представляющие пару provides (например sh, который
предоставляет sh и /bin/sh).
Примеры:
- tcl и libtcl
- tk и libtk
- acl и libacl
- sh и /bin/sh
Предложение: добавить механизм замен пар (или групп) пакетов на один, например:
tcl + libtcl -> tcl
tk + libtk -> tk
acl + libacl -> acl
sh + /bin/sh -> sh
Реализация каждой их этих оптимизаций достаточно простая (всё вместе займёт
пару часов, не считая тестирования), и я пока не вижу ни одного негативного
побочного эффекта от этой фичи.
Зато есть два основных позитивных, это уменьшение размера apt и rpm баз,
увеличения скорости работы apt, увеличение скорости работы hasher'а.
Вопрос -- оно нам надо? В смысле -- я могу это сделать, но это имеет смысл
только при включении результата в Сизиф (и пользу от него мы получим только
после ближайшей полной пересборки Сизифа).
--
С уважением, Денис
http://freesource.info
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
next reply other threads:[~2004-02-29 22:13 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-02-29 22:13 Денис Смирнов [this message]
2004-02-29 22:20 ` [devel] Мусор в requires Денис Смирнов
2004-02-29 23:12 ` Денис Смирнов
2004-03-01 4:25 ` [devel] Re: Мусор в Requires Alexey Tourbin
2004-03-01 17:01 ` [devel] Мусор в quis Денис Смирнов
2004-03-01 8:32 ` [devel] Мусор в Requires Andrey Orlov
2004-03-01 16:53 ` [devel] Мусор в quis Денис Смирнов
2004-03-01 21:59 ` Andrey Orlov
2004-03-02 10:44 ` Денис Смирнов
2004-03-02 11:42 ` Dmitry V. Levin
2004-03-01 17:24 ` [devel] Re: Мусор в Requires 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=20040229221333.GC5036@localhost.localdomain \
--to=mithraen@altlinux.ru \
--cc=devel@altlinux.ru \
--cc=sisyphus@altlinux.ru \
/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