[devel] [BUG] buildreq

Alexander Bokovoy =?iso-8859-1?q?ab_=CE=C1_avilink=2Enet?=
Пн Окт 9 00:50:41 MSD 2000


Доброго времени суток!

Пакет buildreq содержит ошибку в обработке используемых анализируемым
пакетом путей и файлов: если присутствуют директории, на которые
ссылается несколько пакетов, то все они будут внесены в зависимости.
Этого не бывает для файлов, но для директорий -- обычное явление. Как с
этим бороться -- неясно. Для стандартных директорий вроде /usr/lib,
/usr/include, /lib, это может приводить (и приводит) к тому, что,
например, для целиком консольного приложения выставляются зависимости на
KDE и Epplets.

Патч, лечащий эту ситуацию для стандартных директорий, я прилагаю. Но
дополнительно есть еще один путь -- вычищать зависимости во всех
собираемых пакетах так, чтобы они не включали в себя ссылки на
"общественные" каталоги (по крайней мере), то есть, нужно подправить еще
find-provides в rpm?

--
АБ
----------- следующая часть -----------
--- buildreq.sh.org	Tue Sep 19 18:40:24 2000
+++ buildreq.sh	Sun Oct  8 12:30:30 2000
@@ -25,6 +25,12 @@
 FILE="$1"
 shift
 $LIBDIR/buildreq "$FILE" "$@"
+# We filter out all standard development directories which exist on all systems
+# Without it, all packages which has dependencies on it, will be included, and
+# we can run into wonderful situation when, for example, console-related package
+# receives KDE in BuildRequires :-)
 : ${RPM:=rpm}
-REQS="$(cat "$FILE" |xargs -r $RPM -qf --queryformat '%{NAME}\n' 2>/dev/null |sort -u |grep -v '^glibc$')"
+REQS="$(cat "$FILE" | grep -v \
+'^\(/lib[/]\?\|/usr/lib[/]\?\|/usr/include[/]\?\|/usr/local/lib[/]\?\|/usr/local/include[/]\?\)$' \
+ |xargs -r $RPM -qf --queryformat '%{NAME}\n' 2>/dev/null |sort -u |grep -v '^glibc$')"
 echo "$REQS" >"$FILE"


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