[devel] q: проблемы со сборкой необычной программы
Vladimir Lettiev
=?iso-8859-1?q?crux_=CE=C1_syktsu=2Eru?=
Вт Окт 26 18:13:27 MSD 2004
собираю в пакет tcng ( http://tcng.sourceforge.net ). хочется опробовать
эту систему контроля трафика.
Программа состоит из двух компонент tcng и tcsim. Первая собственно
компилятор правил для tc - с ним проблем нет, а вот tcsim - эммулятор
для проверки работы создаваемых правил - самый интересный компонент и с
ним проблемы.
Необычность tcsim в том, что он требует исходники ядра и исходники
iproute2. Такие требования заставили поломать голову как их ему
обеспечить. В Buildreq указал kernel-source-2.4.27, исходники iproute2
вместе с патчами вытащил из соотвествующего srpm и сложил их к tcsim. Но
сборка не получилась, проблему создают патчи, а точнее
iproute2-2.4.7-alt-fixes.patch:
....
gcc -pipe -Wall -O2 -march=i586 -mcpu=i686 -Wstrict-prototypes -Werror
-D_GNU_SOURCE -include ../include-glibc/glibc-bugs.h -I/usr/include/db4
-I/home/crux/RPM/BUILD/tcng/tcsim/klib/include -I../include
-DRESOLVE_HOSTNAMES -c -o ll_types.o ll_types.c
In file included from
/home/crux/RPM/BUILD/tcng/tcsim/klib/include/linux/netdevice.h:11,
from ll_types.c:23:
/home/crux/RPM/BUILD/tcng/tcsim/klib/include/linux/in.h:8: error:
redefinition of `struct in_addr'
/home/crux/RPM/BUILD/tcng/tcsim/klib/include/linux/in.h:16: error:
redefinition of `struct sockaddr_in'
/home/crux/RPM/BUILD/tcng/tcsim/klib/include/linux/in.h:27: error:
conflicting types for `IPPROTO_TCP'
/usr/include/netinet/in.h:43: error: previous declaration of `IPPROTO_TCP'
/home/crux/RPM/BUILD/tcng/tcsim/klib/include/linux/in.h:28: error:
conflicting types for `IPPROTO_UDP'
/usr/include/netinet/in.h:49: error: previous declaration of `IPPROTO_UDP'
/home/crux/RPM/BUILD/tcng/tcsim/klib/include/linux/in.h:29: error:
conflicting types for `IPPROTO_ESP'
/usr/include/netinet/in.h:65: error: previous declaration of `IPPROTO_ESP'
....
Без этого патча (и ещё одного зависимого) сборка проходит, но что
получилось в итоге остаётся догадываться. В чём тут может быть проблема?
И ещё задаюсь вопросами: может ли таскать пакет с собой исходники
другого пакета? Как поступать с исходниками ядра: требуется ли наложение
кучи имеющихся патчей на него или "так сойдёт"? Какие в итоге должны
быть "правильные" зависимости (жёсткие к версии ядра и iproute2 или
вообще от них независящие) у такого пакета?
--
С уважением, Владимир Леттиев aka crux <crux на syktsu.ru>
Подробная информация о списке рассылки Devel