O GNOME além do Linux

O GNOME além do Linux

GNOME on non-Linux platforms
Autor original: Jake Edge
Publicado originalmente no:
lwn.net
Tradução: Roberto Bechtlufft

logo

Pode ser difícil oferecer suporte a múltiplas plataformas em um projeto de software de livre, e as coisas ficam ainda mais difíceis quando o software precisa interagir intimamente com o hardware. O projeto GNOME está enfrentando esse problema, já que há aqueles que querem uma declaração definitiva de que o ambiente de desktop GNOME é exclusivo do Linux e aqueles que julgam essencial o suporte ao Solaris e a diversos sabores do BSD. Mas como a maioria dos desenvolvedores do GNOME roda Linux, a balança sempre penderá um pouco para o Linux, já que a maioria dos novos recursos, especialmente os que lidam mais estreitamente com o hardware, nascem no Linux.

Já vimos esse tipo de coisa antes. O projeto DRI/DRM para suporte a gráficos 3D do X passou por um problema parecido em setembro do ano passado. Quando o grosso da comunidade de desenvolvimento usa apenas uma das plataformas-alvo, fica difícil oferecer suporte às menos usadas. No caso do GNOME, isso significa que os BSDs e o Solaris ficam para trás quando falamos em recursos relacionados ao hardware como o HAL ou, como vem ocorrendo recentemente, em coisas como o DeviceKit e o PolicyKit.

Christian Schaller botou a bola para rolar com uma solicitação na lista de discussão gnome-desktop-devel: “Eu gostaria de pedir à equipe de lançamento do GNOME que por gentileza se apresente e declare que o futuro do GNOME é ser um sistema de desktop para Linux, e não um sistema de desktop para qualquer sistema semelhante ao Unix.” O que ele quis dizer foi que isso já era um fato consumado, mas que a comunidade do GNOME e a equipe de lançamento deveriam formalizar a decisão, em vez de continuar tocando as coisas desse jeito.

Como era de se imaginar, a unanimidade passou longe dessa ideia. A turma da Sun, em particular, não caiu de amores pela ideia de proclamar o GNOME oficialmente como exclusivo do Linux. A Sun é contribuidora de longa data do GNOME, e prefere que a natureza multiplataforma do GNOME continue. Como declarou Calum Benson:

De qualquer maneira, acho que já é hora de reforçar a ideia de que o uso do desktop GNOME é voltado para qualquer sistema semelhante ao Unix, e de descobrir como distribuir melhor o desenvolvimento e a carga de trabalho do controle de qualidade para que isso aconteça, de modo que os contribuidores externos ao Linux tenham mais chances de contribuir significativamente com o upstream em vez de passar a maior parte do tempo molhando os pés nas águas rasas do downstream.

Um dos problemas dessa abordagem é o fardo dos testes que ela impõe. Os desenvolvedores precisariam se certificar de que seu código funciona em vários sistemas diferentes, muitos dos quais ou não estão disponíveis ou não são particularmente interessantes para esses desenvolvedores. Quem quiser ver o suporte ao GNOME em seu sistema operacional certamente vai ter que botar a mão na massa para que isso aconteça. Mas ainda há mais um problema, como aponta David Zeuthen:

Talvez se as outras plataformas participassem do _design_ e do _desenvolvimento_ das estruturas básicas, assuntos como este não precisassem ser discutidos.

Nessa mensagem, Zeuthen demonstrou como vários recursos do GNOME são adicionados ao Solaris muito depois de serem implementados no Linux. Ele preferia ver a Sun (e outras partes interessadas) trabalhando nesses novos recursos durante o seu desenvolvimento, para que problemas de portabilidade e de outros tipos sejam identificados mais cedo e sejam corrigidos antes de se cristalizarem. Benson concordou: “Ah, e sem dúvida a Sun e todos nós precisamos nos esforçar bem mais”. Artem Kachitchkine, que fez o port inicial do HAL para o Solaris, também concordou, mas ele acha que ainda é possível lançar versões multiplataforma de tempos em tempos:

Para dar um exemplo simplificado, o que nós tínhamos na versão 0.x.y do Hal, por exemplo, baseava-se exclusivamente no Linux, e em seguida nós tínhamos que lançar uma versão 0.x.y.1 para resolver os problemas no FreeBSD/Solaris. Se for estabelecido um compromisso entre todas as plataformas interessadas, eu acredito que esses problemas possam ser resolvidos logo de cara, resultando em versões de maior qualidade sem grandes alterações no calendário de lançamentos.

Então, do ponto de vista de um espectador como eu, a manutenção da neutralidade de plataforma do GNOME exige esforços de ambos os lados: da parte dos líderes ideológicos, a manutenção da portabilidade é um requisito fundamental, integrado e não acoplado ao GNOME; da parte das plataformas interessadas, é necessária a participação contínua e respostas ágeis.

Embora os integrantes da Sun que participaram da discussão tenham deixado claro que não representavam a visão da empresa, a discussão mostra que alguns engenheiros da Sun estão cientes do problema, e que gostariam de resolvê-lo. Por outro lado, ninguém do lado do BSD se manifestou, expressando o que pensa essa plataforma importante atendidas pelo GNOME. Se a visão de Kachitchkine se concretizar, seria uma boa que os BSDs participassem dessas discussões.

O mais irônico é que o suporte ao GNOME no Windows e no Mac OS X é bem mais fácil, porque eles não exigem a funcionalidade de desktop. Como apontou Jason Clinton, essas duas plataformas são “plataformas-alvo para aplicativos”, e não para desktops como é o caso do Solaris, do Linux e dos BSDs. Ele também observa que a situação do BSD é bem diferente da situação do Solaris:

No lado do *BSD, a situação dos drivers no que se refere aos desktops é lamentável. Mas o *BSD tem algo muito positivo a seu favor: várias partes do espaço de usuário são quase idênticas às do Linux. Logo, com exceção da ausência do udev, as coisas não são tão diferentes assim. De fato, há até um kernel *BSD semioficial para o Debian.

Já o OpenSolaris sofre com o legado de um design esotericamente semelhante ao de uma catedral em alguns subsistemas fundamentais. O trabalho realizado para que todas as coisas mencionadas acima funcionem é muito, muito maior do que em qualquer outra plataforma atendida pelo GNOME.

Clinton ventilou a ideia de que a Sun deveria simplesmente abandonar o Solaris e migrar para o Linux, ainda que ninguém estivesse disposto a mais uma guerra cheia de abobrinhas entre o Solaris e o Linux. Mas sua opinião de que o Solaris se destaca das outras plataformas-alvo soa verdadeira, e caberá à Sun, ou à comunidade do OpenSolaris, se esforçar para que o GNOME funcione nessa plataforma. A forma correta de se abordar a situação, como disseram Zeuthen e outros, é a turma do Solaris trabalhar com a comunidade do GNOME, e não apenas fazer com que o GNOME funcione no sistema operacional deles. Zeuthen cita um exemplo específico disso:

A percepção que se tem, ao menos do meu ponto de vista, é a de que a Sun não está se saindo muito bem ao *trabalhar* com a comunidade do GNOME. Se o RBAC e os Visual Panels são tão melhores do que tudo, por que raios vocês não estão tentando fazer isso funcionar fora do Linux? E trabalhem na integração deles de dentro do GNOME, e não forçando a barra para encaixar por fora. Isso traria benefícios à Sun e ao resto da comunidade do GNOME, e vocês ficariam bem melhor na fita. Ao menos eu encaro assim.

No fim das contas, é a evolução do que um “ambiente de desktop” engloba que está por trás de boa parte da dificuldade da portabilidade. Com os ambientes de desktop se apossando cada vez mais de funcionalidades que eram tipicamente gerenciadas pelo kernel e outros elementos mais próximos ao hardware, vai ser difícil fazer com que a portabilidade para plataformas diferentes se mantenha simples. Colin Walters resumiu assim:

Eis o problema fundamental, como eu o vejo: o GNOME marcou a caixinha do “desktop para sistemas semelhantes ao Unix” há mais de dez anos, com base no POSIX, no X11 e em elementos diversos. Muito do que temos feito de lá para cá é trabalhar rumo a um “sistema operacional completo”, porque o POSIX e o X cobrem muito pouco disso. Coisas como o funcionamento de dispositivos USB, gerenciamento de energia e redes são problemas difíceis que atravessam cada camada, do kernel à interface do desktop.

Esses tipos de problemas só vão ser resolvidos, ao menos de maneira multiplataforma, se desde o início houver um trabalho em equipe de todos os envolvidos em busca de uma solução. No momento, parece que não é isso o que está acontecendo, e as soluções voltadas para o Linux devem dominar. Conforme o GNOME continua a seguir rumo aos serviços em nível de sistema, que eram tradicionalmente gerenciados pela plataforma em si, está claro que as comunidades do Solaris e do BSD precisam se envolver. Até que isso aconteça, provavelmente vamos continuar com o estilo de desenvolvimento “primeiro no Linux” do GNOME, seja oficial ou extraoficialmente.

Créditos a Jake Edgelwn.net

Tradução por Roberto Bechtlufft <info at bechtranslations.com.br>

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X