ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Alexey Tourbin <at@altlinux.ru>
To: ALT Devel discussion list <devel@lists.altlinux.org>
Subject: Re: [devel] /etc/ld.so.cache
Date: Fri, 12 Sep 2008 00:38:23 +0400
Message-ID: <20080911203823.GL6477@altlinux.org> (raw)
In-Reply-To: <20080911202012.GC16087@wo.int.altlinux.org>

[-- Attachment #1: Type: text/plain, Size: 2873 bytes --]

On Fri, Sep 12, 2008 at 12:20:12AM +0400, Dmitry V. Levin wrote:
> > > > Кстати, возможно, имеет ли смысл использовать 'ldconfig -X'.
> > > > Перестановка симлинков (по отношению к rpm пакетам) -- очень
> > > > сомнительная фича (и она даёт проблему в %post_ldconfig при
> > > > даунгрейде библиотек).
> > > 
> > > Это объезд для пакетов, в которых забыли упаковать эти ссылки.
> > 
> > А есть ли такие пакеты?  Ведь lib.prov выставляет provides на soname
> > только в том случае, если имя файла/симлинка совпадает с названием
> > сонейма.
> 
> Этот объезд гораздо старше lib.prov

Понятно.

> > $ /usr/lib/rpm/lib.prov -vv /lib64/libglib-2.0.so.0*
> > lib.prov: processing /lib64/libglib-2.0.so.0
> > libglib-2.0.so.0()(64bit)
> > libglib-2.0.so.0(GLIB_2.8)(64bit)
> > libglib-2.0.so.0(GLIB_2.10)(64bit)
> > libglib-2.0.so.0(GLIB_2.12)(64bit)
> > libglib-2.0.so.0(GLIB_2.14)(64bit)
> > libglib-2.0.so.0(GLIB_2.15.6)(64bit)
> > lib.prov: processing /lib64/libglib-2.0.so.0.1600.5
> > $ 
> > 
> > Если бы мы забыли запаковать симлинк /lib64/libglib-2.0.so.0,
> > то бинарик /lib64/libglib-2.0.so.0.1600.5 не дал бы provides;
> > пакет, в котором забыли запаковать "значащий" симлинк, либо даст
> > анметы, либо просто этот сонейм никому не нужен (так что симлинк
> > можно и не делать).
> 
> OK, есть ещё какие-нибудь основания запускать ldconfig таким образом,
> как это делается в пакетах сейчас?

В перспективе (но, наверное, не самой ближайшей) стоит отказаться
от вызова ldconfig в пакетах и сделать posttrans trigger.  Кстати,
там уже можно вызывать ldconfig и без опции -X, потому что при окончании
транзакции проблемы даунгрейда библиотек не существует (старые файлы
полностью удалены).  Так что даже можно обслужить и левые пакеты.

Кстати, вот как это сделано в Мандриве (glibc-2.8-1.20080520.5mnb2.src.rpm),
glibc.spec:
  1015  # automatic ldconfig cache update on rpm installs/removals
  1016  # (see http://wiki.mandriva.com/en/Rpm_filetriggers)
  1017  install -d %buildroot%{_var}/lib/rpm/filetriggers
  1018  cat > %buildroot%{_var}/lib/rpm/filetriggers/ldconfig.filter << EOF
  1019  ^.((/lib|/usr/lib)(64)?/[^/]*\.so\.|/etc/ld.so.conf.d/[^/]*\.conf)
  1020  EOF
  1021  cat > %buildroot%{_var}/lib/rpm/filetriggers/ldconfig.script << EOF
  1022  #!/bin/sh
  1023  ldconfig -X
  1024  EOF
  1025  chmod 755 %buildroot%{_var}/lib/rpm/filetriggers/ldconfig.script

Кривовато, конечно (как и многое в Мандриве), можно сделать чуть лучше.
В идеале, конечно, нужен триггер не по файлам, а по provides.

Кстати, вот чем мне не понравился именно такой подход к реализации.
С одной стороны, они вделывают regcomp() в librpm, по-видимому, чтобы
избежать лишних зависимостей на уровне exec (внутренний glob+grep сидит
в librpm).  C другой стороны, им не удаётся отказаться от /bin/sh даже
для ldconfig.

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

  reply	other threads:[~2008-09-11 20:38 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-08  9:51 [devel] posttrans filetriggers [2] Alexey Tourbin
2008-09-08 12:07 ` Igor Vlasenko
2008-09-08 13:49 ` [devel] libgtk+2 Dmitry V. Levin
2008-09-08 13:55   ` Alexey Rusakov
2008-09-08 14:18   ` Yuri N. Sedunov
2008-09-08 14:23     ` Dmitry V. Levin
2008-09-08 14:42       ` Yuri N. Sedunov
2008-09-08 14:46         ` Dmitry V. Levin
2008-09-08 15:15           ` Yuri N. Sedunov
2008-09-08 15:21             ` Mikhail Gusarov
2008-09-08 15:24             ` Andrey Rahmatullin
2008-09-08 15:26             ` Alexey Rusakov
2008-09-08 15:41               ` Yuri N. Sedunov
2008-09-08 15:46                 ` Dmitry V. Levin
2008-09-08 15:54                   ` Yuri N. Sedunov
2008-09-09 10:05                     ` Sergey V Turchin
2008-09-08 15:27             ` Dmitry V. Levin
2008-09-11 19:25   ` [devel] /etc/ld.so.cache Alexey Tourbin
2008-09-11 19:58     ` Dmitry V. Levin
2008-09-11 20:16       ` Alexey Tourbin
2008-09-11 20:20         ` Dmitry V. Levin
2008-09-11 20:38           ` Alexey Tourbin [this message]
2008-09-11 20:48             ` Alexey Tourbin
2008-09-11 20:53               ` Dmitry V. Levin
2008-09-15  7:11                 ` Alexey Tourbin
2008-09-15 10:05                   ` Dmitry V. Levin
2008-09-19  7:02                     ` Alexey Tourbin
2008-10-06  7:04                   ` Alexey Tourbin
2008-09-11 20:50             ` Dmitry V. Levin

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=20080911203823.GL6477@altlinux.org \
    --to=at@altlinux.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