Portes ] [ Debian GNU/Hurd ] [ Novidades ] [ Configuração ] [ CDs do Hurd ] [ Documentação ] [ Desenvolvimento ] [ Contato ]

Debian GNU/Hurd

Desenvolvimento da distribuição

Empacotando software no Hurd

Os pacotes específicos do Hurd são mantidos em https://salsa.debian.org/hurd-team/.

Portando pacotes do Debian

Se você quer ajudar o porte do Debian GNU/Hurd, você deve se familiarizar com o sistema de empacotamento do Debian. Uma vez que você tenha feito isso lendo a documentação disponível e visitando o canto dos(as) desenvolvedores(as), você deve saber como extrair pacotes-fonte do Debian e construir um pacote Debian. Aqui está um curso rápido para as pessoas realmente preguiçosas:

Obtendo fontes e construindo pacotes

A obtenção de código-fonte pode ser feita ao simplesmente executar apt source pacote, que também vai extrair o fonte.

A extração do pacote-fonte do Debian requer o arquivo package_version.dsc e os arquivos listados nele. Você constrói o diretório de construção do Debian com o comando dpkg-source -x package_version.dsc

A construção de um pacote é feita no agora existente diretório de construção do Debian package-version com o comando dpkg-buildpackage -B "-mMyName <MyEmail>". Em vez de -B, você pode usar -b se você também quiser construir partes do pacote independente de arquitetura (mas isso geralmente é inútil, pois eles já estão disponíveis no arquivo e construí-los pode exigir dependências adicionais). Você pode adicionar -uc para evitar a assinatura do pacote com sua chave OpenPGP.

A construção pode requerer pacotes adicionais instalados. A forma mais simples é executar apt build-dep pacote, que vai instalar todos os pacotes requeridos.

Usar o pbuilder pode ser conveniente. Ele pode ser construído com sudo pbuilder create --mirror http://deb.debian.org/debian-ports/ --debootstrapopts --keyring=/usr/share/keyrings/debian-ports-archive-keyring.gpg --debootstrapopts --extra-suites=unreleased --extrapackages debian-ports-archive-keyring e então pode-se usar pdebuild -- --binary-arch, o que vai lidar com o download de dependências de construção e outras coisas, e colocar o resultado em /var/cache/pbuilder/result

Escolha um

Quais pacotes precisam ser trabalhados? Bem, cada pacote que ainda não foi portado, mas precisa ser portado. Isso muda constantemente, então é preferível se concentrar primeiro em pacotes com muitas dependências reversas, o que pode ser visto no gráfico de dependência de pacote https://people.debian.org/~sthibault/hurd-i386/graph-radial.pdf atualizado todo dia, ou na lisa de mais procurados https://people.debian.org/~sthibault/hurd-i386/graph-total-top.txt (esta é a lista de mais procurados no longo prazo, a lista de mais procurados no curto prazo é https://people.debian.org/~sthibault/graph-top.txt). Usualmente, é também uma boa ideia escolher nas listas de desatualizados https://people.debian.org/~sthibault/hurd-i386/out_of_date2.txt e https://people.debian.org/~sthibault/hurd-i386/out_of_date.txt, já que esses estavam funcionando e agora estão quebrados provavelmente devido a alguns poucos motivos. Você também pode só escolher um dos pacotes ausentes aleatoriamente, ou verificar os logs de autoconstrução na lista de discussão debian-hurd-build-logs, ou usar a lista wanna-build de https://people.debian.org/~sthibault/hurd-i386/failed_packages.txt. Alguns problemas de construção são mais fáceis de consertar que outros. Tipicamente, "undefined reference to foo" (referência não definida para foo), onde foo é algo como pthread_create, dlopen, cos, ... (o que está obviamente disponível em hurd-i386), que somente mostra que a etapa de configuração do pacote esqueceu de incluir -lpthread, -ldl, -lm, etc., também no Hurd. Note, contudo, que funções ALSA MIDI não estão disponíveis.

Além disso, verifique se o trabalho já feito feito em https://alioth.debian.org/tracker/?atid=410472&group_id=30628&func=browse, https://alioth.debian.org/tracker/?atid=411594&group_id=30628&func=browse e no BTS (https://bugs.debian.org/cgi-bin/pkgreport.cgi?users=debian-hurd@lists.debian.org;tag=hurd), e https://wiki.debian.org/Debian_GNU/Hurd, e no estado atual dos pacotes em buildd.debian.org, por exemplo, https://buildd.debian.org/util-linux.

É melhor enviar a correção do porte para o(a) próprio(a) upstream, já que é onde ela terá que entrar eventualmente; é melhor discutir diretamente com eles(as) do que por meio do mantenedor do pacote Debian. Podemos facilmente aplicar a correção como um upload para o conjunto unreleased do Debian enquanto esperamos que o patch seja lançado pelo(a) upstream e caia no Debian.

Pacotes que não serão portados

Alguns desses pacotes, ou partes deles, podem ser portados posteriormente, mas atualmente eles são considerados, no mínimo, não portáveis. Normalmente eles são marcados como NotForUs no banco de dados buildd.

Problemas gerais de porte

Uma lista de problemas comuns está disponível no site web do(a) autor(a) original (upstream). Os seguintes problemas comuns são específicos ao Debian.

Antes de tentar corrigir alguma coisa, verifique se no porte do kfreebsd* talvez tenha alguma correção recente, que só precisa ser estendida para o hurd-qualquer.

Hackeando com o instalador do Debian

To build an ISO image, the simplest is to start from an existing one from the Hurd CD images page. You can then mount it and copy it: Para construir uma imagem ISO, o mais simples é começar a partir de uma existente na página de imagens de CD do Hurd. Você pode então montá-lo e copiá-lo:

 
mount debian-sid-hurd-i386-NETINST-1.iso /mnt
cp -a /mnt /tmp/myimage
umount /mnt
chmod -R +w /tmp/myimage

Você pode montar o disco ram inicial e, por exemplo, substituir um tradutor por sua própria versão:

 
gunzip /tmp/myimage/initrd.gz
mount /tmp/myimage/initrd /mnt
cp ~/hurd/rumpdisk/rumpdisk /mnt/hurd/
umount /mnt
gzip /tmp/myimage/initrd

Agora você pode reconstruir a iso com grub-mkrescue:

 
rm -fr /tmp/myimage/boot/grub/i386-pc
grub-mkrescue -o /tmp/myimage.iso /tmp/myimage