[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