[devel] lost soname dependencies prevention

Alexey Tourbin at на altlinux.ru
Пт Мар 25 10:25:13 UTC 2011


On Fri, Mar 25, 2011 at 12:51:11PM +0300, Dmitry V. Levin wrote:
> On Thu, Mar 24, 2011 at 11:52:24PM +0300, Alexey Tourbin wrote:
> > После исправления зависимостей у *-devel пакетов некоторые пакеты стали
> > собираться в урезнной конфигурации.  Большая часть таких пакетов может
> > быть идентифицирована по результатам тестовой пересборки, после которой
> > выполняется сравнение свежепересобранных пакетов с пакетами в репозитории.
> > К письму приложен скрипт, который по логу сборки показывает "убывшие"
> > имена библиотек - т.е. зависимости, которые присутствуют в репозитории,
> > но отсутствуют после тестовой пересборки.  Это не очень совершенный метод
> > идентификации потерянных зависимостей, и это лучшее, что у нас сейчас есть.
> > Тем не менее, большую часть урезанных пакетов таким образом определить удаётся.
> 
> Поскольку не все devel-пакеты (пере)собраны, процесс оптимизации
> зависимостей devel-пакетов ещё далек от завершения.  По мере этой
> оптимизации неизбежно будут обнаруживаться пакеты, тестовая пересборка
> которых будет выявлять урезание поддерживаемой конфигурации.

Большая часть системно-значимых библиотек уже проверена/исправлена.
Массового урезания зависимостей больше не будет (правда, ситуация с Qt
ещё не до конца понятна).  Вот мой внутренний статус проверки библиотек.
Минусом в первой колонке отмечены библиотеки, которые я проверил и которые
годятся для того, чтобы с ними "начисто" что-то собирать.  (Плюсом во
второй колонке отмечен статус поддержки debuginfo по состоянию на
2011-03-15.)

Несколько замечаний по проверке:
- возможно, от glib2-devel стоит отпилит gtester, чтобы glib2-devel
  не вытягивал "толстый" питон
- в питоне через py_curses.h появлятся зависимость на libncurses-devel;
  возможно, её стоит отключить
- в fontconfig-devel, возможно, нужна зависимость на libfreetype-devel,
  т.к. fontconfig/fcfreetype.h включает ft2build.h; но ft2build.h лежит
  в нестандартном месте, и cpp.req обламывается; так что зависимость
  стоит вводить на уровне pkgconfig

Вчера я начал исправлять пакеты, которые лишились зависимости на
libz.so.1, но исправил только w3m, а ещё несколько просмотренных пакетов
по разным причинам не захотел пересобирать - решил, что возвращение
зависимости на zlib не может быть самостоятельной целью, т.к. в пакетах
ещё много проблем, часть которых находится в компетенции мейнтейнера
(очень старая версия по сравнению с текущей апстримовской и т.п.).
Не знаю, стот ли афишировать и драматизировать увиденные мною ужасы.-)

Я думаю, что модификация girar-builder ради нескольких десятков бесхозных
пакетов - это бесполезный ход.  Конечно, более важные среди этих пакетов
надо в ближайшее время проверить и исправить вручную, чтобы не лишиться
чего-то более важного.

Далее вечером.

--- libcheck/deps-	2011-03-15 04:16:31
+++ libcheck/deps	2011-03-25 01:15:21
@@ -1,149 +1,41 @@
 +	33	libQtScript.so.4
 +	33	libavutil.so.50
-	33	libfuse.so.2
-	33	libspeex.so.1
 +	34	liblcms.so.1
 	34	libruby.so.1.9
 +	35	libgdkmm-2.4.so.1
 +	35	libnspr4.so
 +	35	libwrap.so.0
-+	36	libltdl.so.7
-	36	libmad.so.0
 +	36	libphonon.so.4
 +	37	libusb-0.1.so.4
-+	38	libXi.so.6
-+	38	libXss.so.1
 +	38	libbonobo-2.so.0
 +	38	libglib-1.2.so.0
 +	39	libQt3Support.so.4
 +	39	libQtOpenGL.so.4
-+	39	libgnutls.so.26
-	39	libpulse.so.0
-+	40	libXfixes.so.3
 	40	libatkmm-1.6.so.1
-+	40	libpangoft2-1.0.so.0
 +	41	libQtSql.so.4
 +	41	libavformat.so.52
 +	41	libgtkmm-2.4.so.1
 +	41	libkparts.so.4
-+	41	libncursesw.so.5
 +	41	libwx_gtk2u_core-2.8.so.0
-+	42	libXxf86vm.so.1
-+	42	libvorbisenc.so.2
 +	42	libwx_baseu-2.8.so.0
-+	43	libFLAC.so.8
 +	43	liblapack.so.3
-+	43	liblber-2.4.so.2
-	44	libjack.so.0
 +	45	libQtSvg.so.4
-+	45	libgtk-1.2.so.0
-+	45	libsoup-2.4.so.1
-+	45	libuuid.so.1
-+	46	libSDL_ttf-2.0.so.0
 +	46	libavcodec.so.52
-+	46	librsvg-2.so.2
 +	47	libblas.so.3
-+	48	libdb-4.7.so
-+	48	libxslt.so.1
-+	49	libXinerama.so.1
 +	50	libQtWebKit.so.4
-+	50	libpopt.so.0
-+	51	libgcrypt.so.11
-+	51	libtcl8.5.so
 +	52	libDCOP.so.4
-+	53	libxfce4util.so.4
 +	54	liblua-5.1.so.0
-+	54	libphp-5.3.5.so.0
-+	54	libsndfile.so.1
-+	55	libXaw.so.7
-+	55	libXft.so.2
-+	55	libXrandr.so.2
-+	55	libglibmm-2.4.so.1
 +	55	libgnomeui-2.so.0
 +	56	libgnome-2.so.0
-+	57	libgmp.so.3
-+	58	ld-linux-x86-64.so.2
-+	60	libXtst.so.6
-+	61	libsigc-2.0.so.0
-+	62	libldap-2.4.so.2
-+	62	libpcap.so.0.8
-+	62	libresolv.so.2
-+	63	libnotify.so.1
-+	65	libgfortran.so.3
-+	67	libpq.so.5
-+	69	libmysqlclient.so.16
-+	69	libvorbis.so.0
-+	70	libICE.so.6
-+	70	libgstreamer-0.10.so.0
-+	71	libSM.so.6
-+	71	libpcre.so.3
-+	72	libXrender.so.1
-+	73	libogg.so.0
-+	75	libXmu.so.6
 +	75	libkio.so.4
 +	76	libkio.so.5
-+	81	libutil.so.1
-+	81	libvorbisfile.so.3
 +	85	libkdeui.so.5
 +	88	libkdecore.so.5
-+	89	libglade-2.0.so.0
 +	89	libkdecore.so.4
 +	91	libkdeui.so.4
-+	92	libexpat.so.1
-+	93	libbz2.so.1
 +	94	libQtDBus.so.4
-+	97	libfontconfig.so.1
-+	98	libpam.so.0
-+	101	libXpm.so.4
-+	101	libsqlite3.so.0
-+	102	libSDL_image-1.2.so.0
-+	102	libtiff.so.4
-+	108	libcurl.so.4
-+	111	libcrypt.so.1
-+	112	libncurses.so.5
-+	125	libpangocairo-1.0.so.0
 +	127	libQtXml.so.4
-+	127	libXt.so.6
-+	131	libSDL_mixer-1.2.so.0
 +	134	libQtNetwork.so.4
-+	137	libatk-1.0.so.0
-+	139	libfreetype.so.6
 +	146	libqt-mt.so.3
-+	148	libdbus-1.so.3
-+	153	libreadline.so.5
-+	157	libgconf-2.so.4
-+	159	libdbus-glib-1.so.2
-+	160	libGLU.so.1
-+	164	libasound.so.2
-+	165	libssl.so.10
-+	169	libgmodule-2.0.so.0
-+	182	librt.so.1
-+	194	libgio-2.0.so.0
-+	208	libtinfo.so.5
-+	215	libjpeg.so.62
-+	235	libXext.so.6
-+	236	libcrypto.so.10
-+	246	libpng12.so.0
-+	259	libGL.so.1
-+	270	libSDL-1.2.so.0
-+	270	libgthread-2.0.so.0
-+	289	libcairo.so.2
-+	290	libperl-5.12.so
 +	299	libQtGui.so.4
 +	321	libQtCore.so.4
-+	324	libxml2.so.2
-+	328	libpython2.6.so.1.0
-+	372	libpango-1.0.so.0
-+	526	libgdk_pixbuf-2.0.so.0
-+	547	libz.so.1
-+	552	libdl.so.2
-+	642	libgdk-x11-2.0.so.0
-+	768	libgtk-x11-2.0.so.0
-+	879	libX11.so.6
-+	992	libgobject-2.0.so.0
-+	1099	libglib-2.0.so.0
-+	1283	libgcc_s.so.1
-+	1415	libstdc++.so.6
-+	1858	libm.so.6
-+	1958	libpthread.so.0
-+	5222	libc.so.6

> Я думаю, что теперь нам нужно в первоочередном порядке внедрять в
> girar-builder инструмент для предотвращения непреднамеренных потерь
> soname-зависимостей.


Подробная информация о списке рассылки Devel