O problema
Nesta página você vai encontrar informações muito mais pessoais sobre como realizei o debug para descobrir o que havia de errado entre o Flash 10 e os sistemas da família Debian do que explicações científicas sobre o porque o Flash 10 é executado perfeitamente quando na GLIBC 2.4 ou superiores e nas versões mais antigas não.
Essa informação não era o foco do meu trabalho e somente os desenvolvedores devem saber, por esse motivo sequer pesquisei a respeito, meu objetivo era colocar o Flash 10 da Adobe para rodar perfeitamente no Debian.
O início de tudo
Ainda no ano passado, um problema de sistema na minha máquina do trabalho impedia a perfeita inicialização, não tendo tempo para corrigir tal problema, peguei um segundo HD e coloquei na máquina deixando o meu HD original como slave para acessar os dados, foi então que me deparei com o problema na instalação do Flash 10, que também deixei para posterior resolução.
Observando que em casa meu sistema funcionava bem, estava instalada a versão 9 do flash, algumas funcionalidades não eram atendidas como trocar minhas roupas no buddy-poke mas o youtube funcionava perfeitamente, logo o problema não era tão grave, exceto se eu abrisse 10 janelas com algum flash de uma vez, nesse caso o crash era certo.
Procurei uma receita de bolo rápida mas tudo que testei não funcionava legal na minha máquina do trabalho (dual-core) que precisava desesperadamente do flash. Decidi então por a mão na massa.
Comecei baixando e instalando uma versão da Adobe do flash 9 que encontrei no google, até aqui o youtube começou a funcionar, mas com as mesmas limitações já conhecidas sobre as novas funcionalidades do Flash 10, por não estarem presentes.
Então a idéia foi substituir a libflashplayer.so instalada e funcionando do flash 9 pela libflashplayer.so do flash 10 do site da Adobe, imediatamente o Iceweasel desapareceu, mandei ele abrir restaurando a sessão e observei que a janela do vídeo do youtube ficou completamente branca, mas sem a mensagem do youtube informando que o flash não está instalado, somente uma janela branca.
Restaurei a libflashplayer.so do 9 e imediatamente voltou a funcionar, copiei novamente a versão 10 e novamente observei o mesmo problema, logo tratava-se de um problema na biblioteca libflashplayer.so sem dúvida, então fui verificar:
(Versão 9 dentro de /usr/lib/iceweasel, funcional)
ti03:/usr/lib/iceweasel/plugins# ldd libflashplayer.so
linux-gate.so.1 => (0xffffe000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb77aa000)
libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7798000)
libX11.so.6 => /usr/lib/libX11.so.6 (0xb76ac000)
libXext.so.6 => /usr/lib/libXext.so.6 (0xb769e000)
libXt.so.6 => /usr/lib/libXt.so.6 (0xb764f000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb75e5000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb75b9000)
libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0xb72cf000)
libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb7295000)
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb7203000)
libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb71de000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb70ad000)
/lib/ld-linux.so.2 (0x80000000)
libXau.so.6 => /usr/lib/libXau.so.6 (0xb70a9000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb70a4000)
libSM.so.6 => /usr/lib/libSM.so.6 (0xb709b000)
libICE.so.6 => /usr/lib/libICE.so.6 (0xb7083000)
libz.so.1 => /usr/lib/libz.so.1 (0xb706f000)
libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb704f000)
libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0xb7038000)
libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0xb6fb7000)
libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0xb6faf000)
libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xb6f75000)
libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0xb6f5b000)
libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb6f58000)
libcairo.so.2 => /usr/lib/libcairo.so.2 (0xb6ef5000)
librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb6eec000)
libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb6ee4000)
libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0xb6ee1000)
libXi.so.6 => /usr/lib/libXi.so.6 (0xb6ed9000)
libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xb6ed5000)
libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xb6ecc000)
libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb6ec7000)
libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xb6e9c000)
libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb6e79000)
ldd libflashplayer.so (quando instalada a versão 10 em /usr/lib/iceweasel/)
ti03:/usr/lib/iceweasel/plugins# ldd libflashplayer.so
./libflashplayer.so: /lib/tls/i686/cmov/libc.so.6: version `GLIBC_2.4' not found (required by ./libflashplayer.so)
linux-gate.so.1 => (0xffffe000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7448000)
libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7436000)
libX11.so.6 => /usr/lib/libX11.so.6 (0xb734a000)
libXext.so.6 => /usr/lib/libXext.so.6 (0xb733c000)
libXt.so.6 => /usr/lib/libXt.so.6 (0xb72ed000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb7283000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb7257000)
libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0xb6f6d000)
libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0xb6eec000)
libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0xb6ed2000)
libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0xb6ebc000)
libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0xb6eb4000)
libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xb6e79000)
libcairo.so.2 => /usr/lib/libcairo.so.2 (0xb6e17000)
libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb6ddd000)
libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb6dda000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb6dd6000)
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb6d44000)
libnss3.so => not found
libsmime3.so => not found
libssl3.so => not found
libplds4.so => not found
libplc4.so => not found
libnspr4.so => not found
libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb6d1d000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb6d12000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb6be1000)
/lib/ld-linux.so.2 (0x80000000)
libXau.so.6 => /usr/lib/libXau.so.6 (0xb6bde000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb6bd8000)
libSM.so.6 => /usr/lib/libSM.so.6 (0xb6bcf000)
libICE.so.6 => /usr/lib/libICE.so.6 (0xb6bb7000)
libz.so.1 => /usr/lib/libz.so.1 (0xb6ba3000)
libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb6b83000)
libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb6b7a000)
libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0xb6b77000)
libXi.so.6 => /usr/lib/libXi.so.6 (0xb6b6f000)
libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xb6b6c000)
libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xb6b63000)
libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb6b5e000)
libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xb6b32000)
libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb6b0f000)
librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb6b06000)
Nesse momento detectei que tratava-se da incompatibilidade entre GLIBC e Flash, então decidi atualizar a minha GLIBC, após procurar nos repositórios Debian e descobrir que não havia uma versão stable empacotada da GLIBC acima de 2.3.6 para Etch, optei por assumir os riscos e migrar para o pacote 2.7 testing, com o pensamento de que provavelmente essa versão já está bem evoluída, já que existem versões mais novas ainda, como a 2.9.
Com o pacote da GLIB em mãos, tentei o upgrade de versões, porém sem sucesso, pois, eram requeridas atualizações para o locales e tzdata, além de todas as dependências da libc6. Para contornar tal problema, configurei meu apt.conf para o mirror de onde eu tirei o pacote devel da GLIBC.
Tentei novamente a atualização, dessa vez surgindo um botão details com as alterações de sistema que seriam realizadas caso eu continuasse e notei que meu Synaptic tinha novas atualizações, quando vi ele querendo atualizar 437 pacotes, ou seja, ele estava querendo substituir praticamente todos os pacotes do meu Etch, minha máquina deixaria de ser um Etch stable para virar um Lenny, como eu só queria a GLIBC não realizei nenhuma atualização nesse momento.
Prossegui com a instalação e após finalizada vi que a libflashplayer.so não apresentava mais o erro com o ldd, recoloquei as configurações originais no apt.conf e realizei um novo upgrade, ele removeu os pacotes que perderam a funcionalidade com a troca de GLIBC e fui realizar os testes, finalmente com sucesso.
Como comentei durante a etapa de instalação, as transparências ainda não são perfeitas como no Windows, mas não cheguei a pesquisar se existe alguma ligação entre a transparência e essas libs não encontradas:
libnss3.so => not found
libsmime3.so => not found
libssl3.so => not found
libplds4.so => not found
libplc4.so => not found
libnspr4.so => not found
Não realizei nenhum teste de verificação entre as libs não encontradas e a transparência, mas isso é mais simples, basta um colega que tenha uma distro com GLIBC acima de 2.4 nativa postar um screenshot de um site com transparência no imageshack e fazer a verificação da libflashplayer.so com o ldd , assim podemos comparar as saídas.
Espero ter sido útil e ter posto fim aos problemas do Flash vs Iceweasel, era muito chato ouvir os Win-users falando mal do
Linux só porque a Adobe não dá o devido suporte ao player que disponibilizaram, sequer um README com os requerimentos de sistema, ou pelo menos eu não encontrei essa informação no site deles.
Dedico esta solução aos meus amigos do TI, da 4Linux e à comunidade Debian.
Obrigado a todos e Viva o Linux!