Fedora 40 substituiu wget por wget2 e não consigo mais baixar as roms de Mame

Pessoal, preciso de ajuda com o wget2.

Como vocês devem saber, no Fedora 40 o wget foi substuído pelo wget2. Quando você roda o comando wget, ele agora roda o wget2, por meio de um link simbólico (mais informações aqui).

Bom, o lance é que todo mês eu baixo as novas roms de Mame do site bda.retroroms.info usando o seguinte comando:

wget -r --level=1 -np -nH -nc --cut-dirs=2 --http-user=myusername --http-password=mypassword -R "index.html*" -R "desktop.ini" https://bda.retroroms.info:82/downloads/mame/mame-0266/

Isso sempre funcionou sem problemas. Mas, desde que fiz o upgrade para o Fedora 40 (e, consequentemente, para o wget2), eu passei a observar os seguintes problemas:

  1. O prompt diz que houve mais de 100 erros, mas não diz quais foram os erros.
  2. Somente alguns arquivos são baixados. Se eu apagar a pasta e rodar de novo, ele baixa alguns arquivos a mais e alguns arquivos a menos, mas nunca baixa a pasta toda.
  3. A opção -R não está funcionando mais, pois os arquivos index.html estão sendo baixados e mantidos.

Aqui tem um exemplo do prompt de saída que obtive:

9 files 100% [===========================================================================================================================================================================================>] 2.19M 1013KB/s
11 files 100% [===========================================================================================================================================================================================>] 20.83M 1.38MB/s
index.html?C=M&O=D 100% [===========================================================================================================================================================================================>] 2.16K --.-KB/s
index.html 100% [===========================================================================================================================================================================================>] 607 --.-KB/s
zerotimeb.zip 100% [===========================================================================================================================================================================================>] 494 --.-KB/s
[Files: 23 Bytes: 22.98M [1.23MB/s] Redirects: 0 Todo: 0 Errors: 113

Notem que só 23 arquivos foram baixados, mas o diretório que eu pedi para baixar tinha 67 arquivos e mais 1 pasta vazia. A lista completa de arquivos do diretório pode ser vista aqui, navegando até /downloads/mame/mame-0266/

Eu abri um “issue” no github do wget2, aqui. Mas qualquer sugestão é bem-vinda!

é o problema de usar distros que não são (necessariamente) focadas no uso diário/produtividade. Do nda as coisas podem mudar.

É verdade. Mas eu conheço bem as vantagens e desvantagens do Fedora com relação a outras distros e esse risco (de as coisas mudarem) é um preço que eu estou disposto a pagar para continuar usando o Fedora.

Assim, onde escrevi “qualquer sugestão é bem-vinda”, por favor leiam “qualquer sugestão que não envolva trocar de distro é bem-vinda”.

Olha, não sei se já tentou fazer isso, mas minha sugestão é ir diretamente no git do wget2, e abrir uma issue com seu erro

aqui está o texto que os proprios devs do wget2 escreveram sobre o fedora

basicamente pediram pra dizer exatamente a versão q esta usando, e o tipo de empacotamento, pra assim facilitar a vida deles em te ajudarem

Descrevendo seu erro no gitlab do projeto vc ajuda a consertar ele pra sempre, e outros usuarios que podem ter um erro parecido.

se quiser simplesmente desinstalar wget 2, acredito que compilar o wget 1 não é tão dificil, e pelo q vi, existe uma versão do wget pra baixar via snap, que pode ser suficiente pra vc!

Eu já havia aberto um issue no github do wget2, aqui.

A sugestão de compilar o wget ou instalar por snap ou flatpak é boa. Se a resposta deles não resolver meu problema, vou tentar isso. Obrigado!

O mame que você se refere é o emulador de arcade ? se for já tentou usar via wine ?
Eu tenho muitas roms que não funciona muito bem no mame do linux, resolvi pelo wine.

Já tentou limitar o número de downloads simultâneos? (lendo o manual, parece que tem uma opção --max-threads para isso).

Como uma das principais diferenças do Wget 2 para o Wget é o modo paralelo ser ativado por padrão, talvez você esteja acionando alguma política para limitar o número de downloads simultâneos vindo do mesmo IP.

A minha dúvida não é sobre como usar as roms. O que parou de funcionar pra mim foi o wget, que eu usava para fazer download das roms de um determinado site.

Muito boa dica! Achei que resolveria, mas infelizmente não resolveu. Continua dando muitos erros e baixando apenas algumas das roms do site. Segue o prompt que obtive.

30 files 100% [===========================================================================================================================================================================================>] 24.86M 1.88MB/s
[Files: 30 Bytes: 24.79M [1.32MB/s] Redirects: 0 Todo: 0 Errors: 91

Dê uma olhada na página do manual, provavelmente tem opção de gerar um arquivo de log com os erros, e provavelmente uma opção “verbose” para mostrar mais detalhes de erro. A partir dali analise os erros.

Uma outra opção é desinstalar o wget2, instalar o wget e esperar que os devs solucionem isso num futuro próximo. Acredito que o Fedora tenha os dois pacotes que vc possa instalar, mas obviamente a instalação de um bloqueia a instalação do outro.

Acho que achei o problema. Instalei o wget2 e pelo visto ele segue os links de Parent Directory ou os que retornam o index.html com ordem diferente (ou algum outro tipo de comportamento que causa loop infinito).

Eu passei a opção --spider para ele (que apenas obtém a lista de arquivos para baixar em vez de baixá-los de verdade) e ela rodou por vários segundos e gerou literalmente milhares de itens para baixar (e quanto mais tempo deixei, maior o número de A fazer).

Depois de fazer esse teste algumas vezes, o site começou a retornar erros. Acredito que seja esse o bloqueio mesmo.

Pessoal, eu consegui resolver o problema usando a opção --wait=2. Ainda está dando um monte de erros, mas está baixando todos os arquivos.

Eu consegui ver informações sobre os erros usando a opção --progress=none. Usar --verbose não funcionou, ele não mostra a descrição dos erros, somente o número total de erros que aconteceu.

Os erros eram do tipo 503 (servidor indisponível). Esses erros foram resolvidos usando a opção --wait=2. Agora está baixando todos os arquivos, mas está dando erros do tipo 401 (acesso não autorizado).

No github, o desenvolver do wget2 (Tim Rühsen, ou “rockdaboot”) está me ajudando. Ele disse que vai tentar descobrir porque a opção -R não está funcionando. Imagino que ele também vai saber dizer porque ainda está dando mensagens de erro do tipo 401, mesmo conseguindo baixar todos os arquivos.

Para quem quiser acompanhar o caso, é só ver o issue que abri no github do wget2, aqui.