Como posso saber se uma determinada distribuição do cliente Discourse é software livre?

Para pessoas que querem evitar executar software não livre, como podemos saber se o software que um site nos fornece para acessar um fórum com tecnologia Discourse é software livre?

Sem o software cliente JavaScript, o fórum parece ser somente leitura, então quero executar o JavaScript do site, mas não vejo nenhuma indicação aqui no Discourse Meta ou, por exemplo, nos Fóruns Purism (também com tecnologia Discourse), de que o software cliente seja software livre. Alguns dos arquivos de script têm links para mapas de origem, mas os mapas de origem que verifiquei não continham nenhuma informação de licença.

Encontrei um tópico mais antigo que menciona “Existe apenas uma versão do Discourse – a incrível versão de código aberto”, mas depois também encontrei um tópico que sugere que o CLA pode permitir versões proprietárias, mas não tem exemplos de versões proprietárias.

Uma instância do Discourse que mostra informações de licenciamento é o fórum de membros da FSF (acessível apenas para membros, acho), que se vincula ao repositório Discourse do GitHub, um repositório git da FSF e ao repositório do GitHub para uma extensão, mas essa informação só é exibida após o software cliente já estar em execução, então não é muito útil para decidir se deve executar o programa em primeiro lugar.

Existe alguma maneira de eu descobrir se o software cliente servido por uma instância do Discourse é software livre sem realmente executar esse software? Ou mesmo se eu tiver que executar o software, como obteria o código-fonte completo licenciado do software cliente para uma instância do Discourse? Certamente o repositório original do Discourse no GitHub não é sempre suficiente, pois as pessoas podem ter modificado o software antes de redistribuí-lo?

Alternativamente, existe um aplicativo Discourse diferente que não baixa software dos servidores aos quais se conecta?

1 curtida

O Discourse é de código aberto, portanto, usá-lo é gratuito. A hospedagem, própria ou usando CDCK, terá um custo.

Pesquisar is discourse free deu isto:

Claro que é. E de facto a única fonte a ser usada.

4 curtidas

Minha suposição é que você não pode.

Algumas instalações serão hospedadas e terão partes proprietárias na pilha de hospedagem.

Os auto-hospedeiros seriam tolos em não usar a instalação padrão porque é a mais barata de dar suporte.

Uma coisa que você pode descobrir é que alguns sites podem usar plugins proprietários/privados que a plataforma permite que você instale a critério do administrador.

6 curtidas

Estou confuso com esta declaração. Você está dizendo que as pessoas que hospedam o Discourse não modificam o software antes de redistribuí-lo?

As pessoas são conhecidas aqui como a equipe ou como a empresa CDCK. Claro que são, todos os dias. Está em constante desenvolvimento. E, no entanto, é isso que estamos usando.

Isso pode abrir a questão:

2 curtidas

Sua menção a plugins me fez pensar se existe uma maneira de verificar as informações de versão, e encontrei este tópico que descreve como obter as informações de versão.

Assim, posso ver, por exemplo, que esta instância está usando o commit 276bc8a565389ea1a145af08ec8e64c1a5bea990, o fórum de membros da FSF está usando o commit 7ecaf6295daf8759aa98d00e7035c4dc0f853303, o fórum da Purism está usando 999aaa35a79ae7c586a91de1f6c1f7b3c8092bd2, e o fórum da Exercism está usando o commit 1bd9ca11e777f880462ae64c6795ef7de28a8cd2. Todos esses são commits válidos no repositório oficial, então acho que as instâncias não modificaram o Discourse em si (embora possam ter adicionado plugins).

Acho que isso deixa plugins e temas. Parece que talvez você possa ver o nome dos plugins procurando por atributos “data-discourse-entrypoint” em scripts de plugins, mas não vejo um identificador de versão. Você conhece alguma maneira de obter a lista de plugins instalados?

Você poderia olhar os pacotes javascript para ter uma ideia, mas qualquer quantidade de plugins pode ser instalada no back-end, longe dos olhos curiosos.

2 curtidas

O que eu quis dizer com “modificar o software antes de redistribuí-lo” foi que as pessoas que redistribuem o software em sites públicos, como o forums.puri.sm, por exemplo, poderiam modificar sua versão sem enviar alterações para o repositório git principal. Se fizessem um acordo com o Discourse, poderiam lançar essas alterações como software não livre, separadamente do repositório git principal do Discourse.

A velocidade das alterações no repositório principal é tão alta que seria caro manter um fork viável.

É exatamente por isso que os plugins são uma solução popular para extensões.

5 curtidas

Grande “se” e eu não acredito que isso aconteceria — e que acordo, o Discourse é de código aberto. Mas a CDCK sabe melhor. Acho que existem alguns forks por aí, mas eles estão em produção… Duvido. Mas como Robert disse, por que quando as coisas podem ser feitas com componentes e plugins.

2 curtidas

Então, acho que a única maneira de verificar plugins pode ser:\n* Configurar minha própria instância do Discourse\n* Tentar instalar os mesmos plugins de quaisquer instâncias remotas com as quais eu queira interagir\n* Verificar se o JavaScript do plugin é o mesmo na minha instância versus a instância deles\n\nEu acho que também poderia tentar evitar executar o software do plugin inteiramente, e usar apenas os scripts que fazem parte do próprio Discourse.\n\nClaro, eu não tenho uma maneira de verificar o backend deles, mas eu só me importo com o software do cliente quando estou me conectando ao servidor de outra pessoa.

Talvez você também se interesse pelo modo de segurança, que desabilita personalizações de JavaScript.

2 curtidas

Não. Você não pode ver o que está acontecendo no servidor. Pode haver muitas alterações que não são expostas na API pública ou são muito difíceis de decifrar.

Um leigo não tem acesso ao que está acontecendo no servidor.

3 curtidas

Eu acho que isso, combinado com as informações de versão, é o suficiente para usar distribuições arbitrárias do Discourse, evitando a execução de software não livre. Pode-se verificar que o commit está no repositório oficial do GitHub e, em seguida, garantir que o modo de segurança esteja sempre ativado ou apenas “listar” (em uma ferramenta como LibreJS) scripts que aparecem ao usar o modo de segurança.

Não. Não é. Ele apenas desabilita alterações do lado do cliente.

3 curtidas

As alterações do lado do cliente são tudo o que me importam porque não executarei o código do servidor no meu computador.

Se eu fosse executar um servidor Discourse, então eu escolheria quais plugins instalar e simplesmente não instalaria plugins que não tivessem licença.

Quando me conecto ao servidor de outra pessoa, espera-se que eu execute o software que eles me fornecem, que pode não ter uma licença em um local de fácil acesso.

Acho que a maioria das instalações terá conjuntos previsíveis de plugins. Mas não todos. Você nunca saberá a menos que se torne um administrador privilegiado do site.

2 curtidas

Para ter certeza de que entendi corretamente: se uma alteração não for do lado do cliente, isso significa que ela não afetará o código que um usuário normal (ou seja, não um administrador) da distribuição Discourse executará. Isso está correto?

executar, mas não estar sujeito no processamento de qualquer informação com a qual possam interagir.

um servidor poderia, em segundo plano, enviar todos os seus detalhes para o Facebook e receber pagamento :wink:

2 curtidas