LINUX.ORG.RU

не ставится IPTables::IPv4 (perl module) на SlackWare 12.2


0

0

При установке IPTables::IPv4 для perl 5.10 вылазит куча ошибок, ссылающихся на отсутствие инклудов для ядра из ветки 2.4. Пробовал скопировать инклуды из старого ядра 2.4 (kernel-headers-2.4.31-i386-1.tgz), но опять не помогло.

#perl -MCPAN -e "install IPTables::IPv4"
......
gcc -o ipt_pl_DNAT.o -c ipt_pl_DNAT.c -I/usr/src/linux/include -I../include -I/usr/lib/perl5/5.10.0/i486-linux-thread-multi/CORE -I.. -Wall -O2 -Wundef
ipt_pl_DNAT.c:11:41: error: linux/netfilter_ipv4/ip_nat.h: No such file or directory
ipt_pl_DNAT.c:20: warning: 'struct ip_nat_range' declared inside parameter list
ipt_pl_DNAT.c:20: warning: its scope is only this definition or declaration, which is probably not what you want
ipt_pl_DNAT.c: In function 'parse_nat_range':
ipt_pl_DNAT.c:32: error: dereferencing pointer to incomplete type
ipt_pl_DNAT.c:32: error: 'IP_NAT_RANGE_PROTO_SPECIFIED' undeclared (first use in this function)


# uname -a
Linux papa 2.6.27.7-smp #1 SMP Thu Nov 20 22:18:02 CST 2008 i686 AMD Athlon(tm) 64 X2 Dual Core Processor 6000+ AuthenticAMD GNU/Linux

# perl --version
This is perl, v5.10.0 built for i486-linux-thread-multi

Кто знает, отпишитесь плиз :-)

Ответ на: комментарий от arsi

Премного благодарен за помощь!
Однако поспособуствуйте еще... После наложения патча на чистый дистриб (IPTables-IPv4-0.98) опять вылазит ошибка компиляции.
#perl Makefile.PL && make
....
gcc -o libip6tc.o -c libip6tc.c -I../include -I/usr/src/linux/include -DIPTABLES_VERSION=\"1.2.8\" -O2 -Wall -fPIC
In file included from libip6tc.c:111:
libiptc.c: In function 'ip6tc_init':
libiptc.c:312: warning: pointer targets in passing argument 5 of 'getsockopt' differ in signedness
libip6tc.c: In function 'ipv6_prefix_length':
libip6tc.c:121: error: 'const struct in6_addr' has no member named '__in6_u'
libip6tc.c:125: error: 'const struct in6_addr' has no member named '__in6_u'
make[1]: *** [libip6tc.o] Error 1
make[1]: Leaving directory `/my/IPTables-IPv4-0.98/libiptc'
make: *** [libiptc/libiptc.a] Error 2

Выручайте ))

dumper6
() автор топика
Ответ на: комментарий от dumper6

> 'const struct in6_addr' has no member named '__in6_u'

странно… у меня в /usr/include/netinet/in.h, начиная с 198-й строки идёт описание структуры in6_addr, в которой присутствует поле __in6_u. вы вроде как пытались заменить инклуды со старой версии ядра. вернули, надеюсь? патч именно под 2.6.*. а если точнее, то патч был сделан для ядра 2.6.25.10 для убунты, но у меня на сламд64 (та же слакварь, только 64-битная), собралось без проблем.

на всякий случай:

• Linux **** 2.6.28.4-smp-arsi #1 SMP Tue Feb 10 20:35:07 EET 2009 x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 4400+ AuthenticAMD GNU/Linux

(ядро самосборное, если что; make headers_intall делался в обязательном порядке)

• gcc (GCC) 4.3.3

• Slamd64 12.2.0 (на основе 12.2 слаквари)

arsi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.