Quão diferente é compilar o código fonte no Debian GNU / Hurd do Debian GNU / Linux?

9

Eu estava tentando compilar o libnetfilter_conntrackcódigo-fonte do github, conforme solicitado iptablesdurante a compilação do iptables e como qualquer um deles não estava disponível no repositório de software HURD e acabou com um erro ao configurarlibnetfilter_conntrack

checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking whether ln -s works... yes
configure: error: Linux only, dude!

e meu kernel é,

$ uname -a
GNU debian 0.9 GNU-Mach 1.8+git20190109-486/Hurd-0.9 i686-AT386 GNU

e meu objetivo final era compilar o iproute2 .

Pavel Sayekat
fonte
11
O problema aqui não é a diferença entre compilar no Hurd e Linux: é que você está tentando compilar um firewall e uma lib apenas para Linux em outro sistema operacional.
1
Talvez o que você esteja procurando seja um novo programa no GNU / Hurd cuja interface de linha de comando seja semelhante à dos programas iptablese iproute2. Isso pode ser possível, pois as redes (IPv4 e IPv6) que estão sendo configuradas são semelhantes. Nesse caso, observe a fonte dos programas equivalentes no GNU / Hurd e escreva uma nova interface de linha de comando para eles.
Kapil

Respostas:

24

Em geral, não é muito diferente; existem listas de armadilhas conhecidas no site do Hurd e no wiki do Debian . Muitos projetos são construídos corretamente, ou após algumas correções (o problema mais comum é a ausência de PATH_MAX).

No entanto, no seu caso, você achará difícil chegar a algum lugar: netfiltere iptablesé específico do kernel do Linux, para que você não possa usá-los no Hurd. Você provavelmente já deve ter notado que o iptablespacote não está disponívelhurd-i386 - geralmente há uma boa razão para isso ... iproute2também é específico do Linux.

No Hurd que você usaria eth-filter, consulte a seção de rede do guia de configuração Debian GNU / Hurd para obter detalhes.

Stephen Kitt
fonte
12
@PavelSayekat Usando um firewall não escrito especificamente para Linux?
Kusalananda
5
@PavelSayekat Você sempre pode portar as bibliotecas / programas para prejudicar. Feliz codificação para os próximos anos!
Giacomo Alzetta
1
O @GiacomoAlzetta não funcionará, porque as bibliotecas e programas são apenas a metade do espaço do usuário na implementação; eles conversam com módulos específicos do kernel Linux, então isso nunca será possível.
mirabilos
4
@mirabilos, a menos que alguém adicione suporte "kernel" no Hurd também ;-).
Stephen Kitt
1
@StephenKitt, o princípio Hurd, prefere transformar isso em um tradutor que, em seguida, conversa com o tradutor da rede. Nenhum kernel envolvido, basicamente apenas passa a mensagem. (Oh, e eu PF em vez de porta de OpenBSD que qualquer coisa que Linux utiliza estes dias ... ☺)
mirabilos