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

Eu também posso usar o modo de segurança para ter uma ideia das alterações que outras distribuições do Discourse fizeram:

  • Purism tem apenas alguns scripts de tema (que podem realmente fazer parte do Discourse oficial, já que o modo de segurança bloqueia todos os temas, eu acho) e uma peça interna (ou seja, parte do arquivo HTML, não um arquivo JS externo) de JavaScript, começando com const DELAY_TARGET=2e3,POLLING_INTERVAL=50,splashS
  • Exercism tem o que parece ser o plugin discourse-spoiler-alert que foi adicionado posteriormente ao core, bem como o mesmo JS interno exato que Purism.
  • O fórum de Membros da FSF tem apenas o mesmo JS interno exato que os outros dois.
  • Discourse Meta (este fórum) parece ter muitas diferenças de JS
    • discourse-activity-pub
    • discourse-customer-flair-plugin (não consegui encontrar uma licença para este em lugar nenhum)
    • discourse-deprecation-collector
    • discourse-doc-categories
    • discourse-new-features-feeds (nenhuma licença encontrada para este também)
    • muitos outros scripts, incluindo alguns que nem sequer têm um link para um mapa de origem.

Então, parece que a maioria das distribuições de terceiros (com base na minha pequena amostra de 3) se mantém bem próxima do Discourse principal, mas isso faz parecer que esta distribuição contém plugins que não fariam parte da maioria das distribuições. Você sabe onde eu encontraria o código-fonte licenciado para todos eles? Eles estariam no repositório principal? Não consegui encontrá-los pesquisando por alguns desses nomes no repositório principal, mas é possível que eu tenha perdido.

Daqui, óbvio, porque a maioria deles não são de terceiros, mas sim de primeira parte :smirking_face:

Você deveria conferir as categorias Plugin e Theme component. Mas você também pode achar Dev e Documentation interessantes.

Tentei procurar em todo o fórum por “discourse-new-features-feeds” (por exemplo) e não encontrei nada. Para algumas extensões, consegui encontrá-las no diretório de plugins, no GitHub ou aqui nos fóruns, mas para discourse-new-features-feeds e discourse-customer-flair-plugin, não consegui encontrar nada. Não verifiquei todos os scripts de plugin, então pode haver mais que eu não conseguiria encontrar.

Eu imagino que possa haver um motivo pelo qual, por exemplo, as personalizações da própria Meta não são públicas. Ou você não pesquisou o suficiente no repositório do Discourse :man_shrugging:

É possível que eles sejam um cliente Enterprise e tenham feito o Discourse personalizar especialmente o fórum deles.\nTambém, se você quiser usar o modo de segurança para ver personalizações do lado do cliente, isso não o desabilitaria em vez disso? Como você o habilitaria nesses sites em primeiro lugar?

Por curiosidade, fico imaginando qual é exatamente toda a lógica por trás disso. Você simplesmente não pode navegar na internet com as preocupações que você está levantando, correto?

Você está falando de “licença”. Mas sua própria licença para usar um fórum específico como um simples usuário seria diferente da licença para realmente rodar o software do fórum (=se alguém quiser configurar outro fórum com ele). Por que um usuário se importaria com o último? Por causa de alguns princípios aos quais ele quer aderir? Qualquer personalização não redistribuída seria “proprietária”, eu acho. O que levanta a questão de onde isso começa e termina.

Você pode desconfiar de javascript e do que ele pode permitir rodar no seu navegador (os riscos e possibilidades disso são frequentemente debatidos. Supostamente é limitado). Não tenho certeza se o Discourse pode rodar sem ele, no entanto. Ou rodar corretamente, pelo menos. Você sempre pode tentar. Existe a popular extensão de navegador “NoScript” para isso, por exemplo.

Ainda me pergunto sobre o raciocínio: é sobre código malicioso potencial? Nesse caso, não faria muito sentido para mim que você se sentisse melhor com uma licença que DIZ que um fórum roda uma versão não modificada. Ou é sobre o quê?

Geralmente, quero evitar executar software não livre. A principal razão é que acredito que devo ter controle sobre o software que roda no meu computador, e uma razão adicional é que não gosto da ideia de bugs que podem ser ilegais de corrigir. Também acho que seria bom se eu obtivesse meu software de um pequeno número de repositórios confiáveis, em vez de baixar software de centenas de sites independentes diferentes, sem supervisão ou responsabilidade de terceiros, então é importante para mim que eu seja livre para empacotar o software que uso para um repositório em que confio (embora isso seja bastante impraticável para JS servido pelo site com a tecnologia atual).

Não acho que deva ter controle sobre o software que roda nos computadores de outras pessoas, porque acredito que o operador do servidor deve ter esse controle, e não me parece que faria sentido que vários usuários tivessem controle total sobre o software.

Não, é relativamente fácil evitar executar software não livre na internet se você não usar programas que baixam e executam automaticamente código arbitrário de partes não confiáveis, ou se você modificar tais programas para não fazer isso (por exemplo, instalando o LibreJS no seu navegador).

Pelo que posso dizer, executar o software do fórum é necessário para usar a maioria das funções do fórum, embora a leitura de postagens funcione sem ele. Se eu quiser registrar uma conta e postar tópicos, parece que tenho que executar o software do fórum. A maioria das pessoas não percebe isso porque a maioria dos navegadores baixará e executará qualquer software que o site enviar, sem notificar o usuário.

Parte do software do fórum é executada no servidor, e então as instâncias do Discourse não necessariamente distribuirão esse software, o que significa que eu nem sempre receberei qualquer software não livre que a instância adicionou ao lado do servidor, então não tento evitar instâncias que fazem isso.

Observação sobre definições

Na minha opinião, software que nunca é distribuído é “proprietário” porque tem um único “dono” (o autor), mas também é “livre” porque todos os seus usuários (apenas um, o autor) são livres para fazer o que quiserem com ele. Bem, acho que você poderia dizer que as pessoas que interagem com um servidor são “usuários” do software naquele servidor, então talvez eu devesse usar uma palavra diferente de “usuários”, mas não tenho certeza de qual palavra usar em vez disso. Talvez eu seja tecnicamente um “usuário” do software rodando na rede telefônica ou no telefone de outra pessoa se eu ligar para alguém.

Sim, tenho o NoScript instalado, e quando bloqueio o software Discourse do lado do cliente, é claro que o Discourse não pode “rodar” sem ele, porque eu impedi o navegador de executar os scripts. O software do lado do servidor, que não roda no meu computador, não é impedido de rodar pelo NoScript. Neste estado, os tópicos e comentários servidos pelo software do servidor Discourse são visualizáveis, mas para registrar e postar parece que você precisa usar o software JavaScript do lado do cliente.

Em relação a malware, se um programa de software livre for malware, então alguém pode modificá-lo para não ser malware e, em seguida, distribuir essa versão modificada para usar em vez disso. Para JavaScript servido pelo site, isso é atualmente um tanto impraticável. Idealmente, haveria uma licença declarando diretamente que o software é software livre, para que mesmo que o software fosse modificado, ainda seria legal usá-lo como software livre. Como está, tenho que confiar que as distribuições que uso não “mentem” sobre qual versão do software estão usando (por exemplo, modificando o software do servidor Discourse para afirmar que um commit está sendo usado quando é outro).

Provavelmente fiz esta resposta um pouco longa, mas o cerne dela é que valorizo a liberdade do software e, portanto, quero evitar executar software não livre no meu computador.

Neste caso, “eles” é o Discourse Meta. Isso não faz parte do Discourse (a empresa)?

Sim, o que eu quis dizer foi: com o modo seguro, posso desabilitar os scripts das modificações e, em seguida, comparar qual software é enviado ao navegador em ambos os casos. A diferença são as modificações e os temas.

O modo seguro pode ser habilitado navegando para /safe-mode (por exemplo, http://meta.discourse.com/safe-mode) e selecionando as opções lá. Essa página não requer JavaScript, então o modo seguro pode ser habilitado enquanto se usa extensões como NoScript, LibreJS e/ou Haketilo para bloquear o JS ou definindo javascript.enabled como false nas configurações do navegador para navegadores baseados em Firefox.

Neste ponto, você pode comparar as tags de script em ambas as páginas para ver o que foi removido com o modo seguro. Eu usei um script como este:

script-diff.js
// SPDX-FileCopyrightText: 2024 Jacob K
//
// SPDX-License-Identifier: CC0-1.0

// na página com mais scripts
const scriptSrcArr = [];
for (script of document.scripts) {
  if (script.src) {
		scriptSrcArr.push(script.src);
  } else {
    scriptSrcArr.push(script.textContent);
  }
}

console.log(scriptSrcArr)

// na página com menos scripts (Você precisará clicar com o botão direito na matriz e clicar em "Copiar Objeto" na primeira página)
scriptSrcArr = PASTE_OBJECT_FROM_OTHER_PAGE_HERE
for (script of document.scripts) {
  if (!scriptSrcArr.includes(script.src)) {
      console.info(script)
  }
}
// Estou assumindo que os scripts na primeira página são um superconjunto dos scripts na segunda página

@Jagster (tentando uma resposta por meio de edição, conforme sugerido pelo Discourse (recurso de sugestões legal!))

Isso me faz pensar que o Discourse, como distribuído por meta.discourse.org, é software não livre, o que significaria que as afirmações de “Todo o código-fonte do Discourse é aberto e está livremente disponível ao público” e “Discourse é 100% gratuito, código aberto software de fórum.” (ambos de www.discourse.org) parecem enganosas, mesmo que tecnicamente seja verdade porque o software não é a mesma coisa que seus plugins. Me sinto meio que fui enganado para rodar software não livre :slightly_frowning_face:

Acho que essa afirmação é realmente destinada a pessoas que pretendem hospedar instâncias do Discourse, não a participar das existentes.

Espero estar errado e que seja realmente o caso de eu não ter olhado o repositório com atenção suficiente.

Você deve ter essa sensação com muita frequência. Sem emoticons, porque isso foi apenas uma declaração sobre como a internet e os aplicativos funcionam.

Você acabou de dizer que personalizações são ruins e que, se a base for de código aberto, todos os complementos também devem ser gratuitos. Bem, acho que o WordPress usou isso, mas certamente não com wordpress.com, mas se você visitar meu site WordPress, há muito trabalho personalizado. Alguns são proprietários, alguns são abertos, alguns são personalizados e alguns são meus. E não nesta realidade duas coisas acontecerão:

  • todo o código do trabalho personalizado seria público
  • Eu diria a você ou a qualquer visitante se tenho ou não licença válida

Mas tenho dificuldade em entender por que Discourse, WordPress, Moodle etc. não seriam gratuitos se alguns adicionais não fossem gratuitos. Não entendo a lógica por trás desse pensamento.

Esse é definitivamente o ponto :+1:
Você não pode prever o que os hospedadores podem então adaptar para fazer.

De fato, além disso e, por exemplo, a critério do host, eles podem adicionar:

  • publicidade
  • assinaturas

E embora o “software” possa permanecer “gratuito para usar”, alguns recursos podem ser restritos e a publicidade só pode ser desativada para assinantes pagantes.

Nem todo mundo tem fundos ilimitados para executar uma instância do Discourse gratuitamente. Muitos sites precisam gerar receita para pagar suas contas.

Executar um Discourse nunca é “gratuito” em escala. O host tem que pagar pelos custos do nome de domínio, VPS e serviços de e-mail para listar os principais.

(… e não vamos entrar nos custos de desenvolvimento do Discourse em primeiro lugar!)

Ok, acho que entendi seu ponto.

De forma alguma! O código será sempre livre.


Administradores de seus próprios sites Discourse têm a liberdade de personalizar seus próprios fóruns. Plugins, temas, TCs nem sempre precisam ser de código aberto. O Discourse está bem com isso, pois existem maneiras de usar repositórios privados em vez de públicos para conectar essas personalizações.
Assim como qualquer um dos plugins, exceto em ocasiões muito, muito, muito raras (talvez até quase nunca!) essas personalizações serão pagas [1]. Portanto, nada é “não livre”: tudo é livre.
Meu ponto é que software de código aberto será gratuito. Plugins são gratuitos - é sua escolha usá-los. Assim como temas, TCs, etc. O que não é de código aberto, no entanto, pode ser pago, mas os administradores escolheram torná-lo gratuito para uso. Não há ninguém impedindo você se quiser fazer uma cópia de uma personalização de código fechado da melhor maneira possível e usá-la você mesmo.
O Discourse é gratuito, suas personalizações públicas [2] são gratuitas, suas personalizações privadas também são gratuitas para usar (Pelo menos em muitos lugares, mas

. Pagar ao proprietário pelo código-fonte é uma coisa diferente, no entanto.

Essencialmente, a menos que você mesmo crie um plugin/tema/TC e não o compartilhe, você sempre pode instalar personalizações gratuitamente. Ninguém está impedindo você.


Desculpe se isso soa rude ou seco, ou se estou andando em círculos e repetindo a mesma coisa.


  1. Exceto por comissões pagas, que é sua própria escolha patrociná-lo. ↩︎

  2. ou seja, aquelas listadas aqui no Meta ou no github publicamente ↩︎

Mas essas vêm “por cima” da versão de código aberto, então a mera existência de um CLA não tornará o Discourse não livre.

Isso não é sobre grátis como em dinheiro, mas grátis como em ‘há uma licença não restritiva’. What is Free Software? - GNU Project - Free Software Foundation

Isso não é necessariamente verdade. Novamente: isso é sobre grátis como em liberdade, não em preço. Existem projetos de código aberto que têm licenças muito restritivas para serem consideradas software livre de acordo com a definição da FSF. Exemplos são MongoDB e ElasticSearch.

Rodar software livre não implica que você tenha controle sobre ele.

Então parece que você está misturando ‘confiável’ e ‘livre’. Quando um administrador de servidor compila o Discourse, o processo de compilação baixa todos os tipos de pacotes do NPM. Eles podem ser sempre confiáveis? (A história nos ensinou que não é o caso - exemplo e outro).

Você “acha” :thinking: Um administrador de servidor pode fazer modificações sem alterar o hash do commit. E um plugin também pode injetar código Javascript.

Odeio ter que te dizer isso, mas isso é falso.

Isso não é sobre livre ou não livre ou código aberto ou código fechado, mas sobre confiança.

Se você visitar uma instância do Discourse, terá que confiar em

  • o(s) administrador(es) do servidor
  • todos com acesso de commit na organização do Discourse no github
  • todos com acesso de commit em repositórios de plugins
  • todos no github
  • toda a cadeia de software NPM
  • todos com acesso de commit em qualquer repositório NPM que esteja sendo usado
  • todos com controle sobre o software do seu navegador
  • a empresa que forneceu o certificado SSL e a cadeia de confiança

O que serão pelo menos algumas milhares de pessoas?

Plugins e componentes de tema podem ser encontrados em repositórios separados.
Nem todos os plugins são de código aberto (por exemplo, discourse-customer-flair-plugin não é, AFAIK). Então aí está. Você terá que parar de usar o Meta :wink: Brincadeira, claro. Meu ponto é que pode haver confiança suficiente sem que tudo seja de código aberto ou livre.

Só uma coisa, @JacobK1, você leu a licença do Discourse?

Citando alguns pontos que podem ser relevantes:

a GNU General Public
License é destinada a garantir sua liberdade de compartilhar e modificar software livre — para garantir que o software seja livre para todos os seus usuários.

Você pode modificar sua cópia ou cópias do Programa ou qualquer porção
dele, assim formando um trabalho baseado no Programa, e copiar e
distribuir tais modificações ou trabalho sob os termos da Seção 1
acima

Espero que isso tenha sido respondido acima e na citação acima desta.

Se entendi corretamente, tudo isso está principalmente ligado ao javascript. E é sobre o que é executado com javascript dentro do seu navegador, que é servido por cada instância do Discourse. Seria também principalmente sobre “confiança” e ter a capacidade de saber qual código está sendo executado (ser capaz de dar uma olhada nele). Correto?

Isso está bem acima da minha capacidade, mas você pode ter “controle” sobre isso? A menos que você estivesse enviando um commit que muda as coisas para todos, eu não acredito que você pudesse realmente “consertar” algo para si mesmo aqui, já que o que você chama de “software” que roda no seu computador é fornecido ao seu navegador pelo servidor toda vez.

Mesmo que cada fórum tivesse seu próprio código de código aberto publicado, com todas as modificações possíveis, você pode ter certeza de que é isso que eles estão realmente executando o tempo todo? Não é como se você pudesse baixar uma vez, verificar e compilar você mesmo do seu lado.

O que você realmente quer é:

  1. Nenhum javascript (sem sorte com o Discourse nisso, que depende bastante dele) ou
  2. Um cliente independente de código aberto realmente instalado no seu computador. Este último também precisaria não usar javascript, se tudo isso for possível com o Discourse, o que eu não sei. Então você seria capaz de modificar seu cliente e ter o controle sobre ele que você procura.

Seria um entendimento justo?
(PS: Também está acima da minha capacidade, mas se bem me lembro, nem 100% do código do Discourse é de código aberto. Agora, você realmente só se importa com o que roda do seu lado, não com tudo do lado do servidor)

Tudo, exceto parte do nosso código de hospedagem/infraestrutura, é open-source.

@Jagster

Talvez eu tenha sido um pouco dramático :slight_smile:

Como obtenho a vasta maioria do meu software usando apt install em vez de um navegador da web, e confio na minha distribuição de software (Trisquel) para distribuir apenas software livre, isso geralmente não é uma preocupação.

Só para esclarecer, não estou dizendo que customizações são necessariamente ruins, apenas que podem ser ruins se forem não livres. Portanto, uma maneira de ter certeza de evitar rodar software não livre é desabilitar customizações.

Acho que todo software deveria ser livre/libre.

@Jagster @RGJ

Para ficar claro, não estou tentando dizer que o Discourse é não livre. É apenas esta distribuição específica do Discourse (Discourse Meta) que parece incluir software não livre.

@Jagster @merefield

Deveria ter mencionado em minha postagem anterior que outra razão pela qual achei que essa distribuição seria livre é que a página sobre o Discourse diz “Existe apenas uma versão do Discourse – a incrível versão de código aberto.”. Isso, novamente, é tecnicamente verdade porque os plugins não fazem parte do Discourse, mas parecia enganoso para mim.

O Discourse pode não ter controle sobre distribuições de terceiros, mas eu esperaria que as instâncias do Discourse hospedadas pelo próprio Discourse fossem software livre, já que dizem o que dizem na página sobre. Também poderia ter esperado uma licença e/ou estrutura que efetivamente exigisse que derivados fossem software livre, o que, de certa forma, existe, já que o Discourse é GPL, mas acho que não cobre plugins.

@merefield @NateDhaliwal

Acho que cobrar dinheiro por software ou serviços é fine; geralmente o “livre” em “software livre” significa “libre”, ou seja, você é livre para fazer o que quiser com ele (copiar, modificar, etc.), depois de obtê-lo. Não significa necessariamente que seja “grátis”, ou seja, de custo zero.

@NateDhaliwal

Estritamente falando, sim, não há ninguém me impedindo, mas seria ilegal, o que parece ruim. Para uso privado, isso pode funcionar, mas, em geral, repositórios públicos de software e lojas de aplicativos não querem incluir código ilegal, e algumas pessoas que eu poderia querer que usassem o software podem se sentir desconfortáveis rodando código copiado ilegalmente. Não tenho certeza se tenho a abordagem certa; talvez eu devesse simplesmente ignorar totalmente os direitos autorais, mas isso parece não ser a melhor opção quando é viável evitar software ilegal e não livre.

Sem problemas! :slight_smile: Não acho que você esteja sendo rude, e ainda não sinto que estamos dando voltas.

@RGJ

O que você quer dizer com isso? Se o software é livre, isso significa que posso modificá-lo; portanto, tenho controle sobre o que ele faz.

Não acho que livre seja o mesmo que confiável; talvez eu devesse ter dito “arbitrário” em vez de “não confiável”, mas meu ponto era que a maioria dos navegadores executará qualquer código que uma página da web lhes der, e como eu frequentemente visito sites que nunca visitei antes, muitos sites que visito são “não confiáveis”. Para esses sites, não tenho motivo para achar que eles não enviarão software não livre.

Em relação ao NPM, considero-o mais confiável do que um site arbitrário, mas talvez não tão confiável quanto meus repositórios apt ou guix. Embora, confiança não seja unidimensional; embora eu não confiaria em um novo pacote no NPM apenas porque está no NPM, confiaria que, ao baixar o JQuery do NPM, ele realmente é o JQuery. O NPM pode cometer erros que permitam a um atacante substituir o JQuery, mas o NPM poderia tomar medidas para evitar malware que não seriam tão realistas para JavaScript servido por sites (por exemplo, revisão automatizada/manual pré-publicação, revisão colaborativa pós-publicação, verificação automatizada de que scripts minificados/obfuscados correspondem ao código-fonte, regras contra baixar e executar código arbitrário em tempo de execução). Importante: quando malware é encontrado no NPM, há uma terceira parte (o NPM, ao contrário do desenvolvedor do software) para reportar, para que possa ser removido. Isso não é o caso para JavaScript servido por sites - o único que pode removê-lo é o operador do site.

Isso significa que o hash do commit listado estaria incorreto se um administrador de servidor fizesse modificações e não alterasse também o hash do commit listado? Eu pensei que atualizar software alteraria o hash do commit automaticamente, e eu (incorretamente?) assumi que o hash do commit listado seria atualizado automaticamente.

O JavaScript injetado por plugins seria desabilitado com safe_mode=no_themes,no_unofficial_plugins?

Então, seria a única maneira de evitar software não livre ao usar o Discourse empacotar um cliente do Discourse como uma extensão de navegador ou pacote Haketilo ou algo semelhante?

Não tenho certeza do que você quer dizer com isso, considerando que minha pergunta original é sobre liberdade de software, e não confiança.

Discordo de que todos que você listou precisem ser confiáveis.

  • Os administradores de servidor não precisariam ser confiáveis se você não rodar software servido por eles, por exemplo, se você obtiver o cliente do Discourse do GitHub e empacotá-lo para que possa ser usado com esse servidor.
  • Em muitos casos, pessoas colaborando em software podem ler alguns dos commits uns dos outros, então não preciso confiar em todos os autores individualmente.

Então isso significaria que o cliente Discourse Meta é software proprietário, certo? Embora seja possível usar o modo seguro para desabilitar o JS do plugin.

Talvez, mas isso não é muito útil se eu quiser evitar software não livre.

@NateDhaliwal
Li a licença no repositório git do Discourse, mas (por causa do CLA) ela não se aplica necessariamente a derivados do Discourse fora desse repositório. Gostaria de ver um aviso em cada distribuição do Discourse dizendo qual do software distribuído é libre. Isso até (na minha opinião) se encaixaria no espírito da GPL: “você deve mostrar a eles esses termos para que saibam seus direitos”.

@Mevo

Sim, é possível rodar JavaScript a partir de uma extensão de navegador ou proxy, como Haketilo ou GreaseMonkey, embora isso possa ser muito impraticável para alguns softwares, por exemplo, se eles atualizarem muito frequentemente, como seria o caso de softwares onde os dados estão embutidos no software JavaScript. O Haketilo também não tem suporte para alguns tipos de scripts, por exemplo, scripts com tipo “module”.

Sim, acho que sua compreensão está correta no geral. Embora empacotar o JavaScript como uma extensão de navegador ou para Haketilo ou GreaseMonkey resultaria efetivamente em um cliente instalado independente, mesmo que estivesse usando JavaScript.

@HAWK

Estou supondo que você quer dizer “Tudo” no sentido de “tudo que faz parte do Discourse”, ou seja, não incluindo plugins como discourse-customer-flair-plugin?

Tudo o que faz parte do produto principal que hospedamos (incluindo o Meta), com a exceção que notei acima, é gratuito e de código aberto.

Alguns plugins dependem de plataformas proprietárias para funcionar, mas isso não tem nada a ver com o fato de o Discourse ser de código aberto ou não.

Todas as instâncias do Discourse hospedadas pela CDCK ou por nós (sou co-fundador de uma empresa que hospeda o Discourse) estão executando um ou alguns plugins de código fechado para fornecer alguma funcionalidade específica do ambiente de hospedagem.

Acho que há muita confusão entre uma distribuição no bom e velho sentido (aqui está um repositório do github e sinta-se à vontade para fazer o que quiser) e uma distribuição no sentido mais moderno (aqui está um site e ele envia Javascript para o seu navegador). Além disso, há confusão entre o Discourse https://github.com/discourse/discourse e o Discourse e todos os seus plugins e componentes de tema de primeira e terceira parte adicionados pelos administradores do site.

É um hash de commit, então se modificações forem feitas após puxá-lo do repositório e antes de commitá-lo, então você já tem tal situação. Isso não precisa ser um ato malicioso, também acontecerá se os patches de segurança forem aplicados (o que geralmente é feito antes de commitá-los em um branch público). Agora, em geral, os patches de segurança não são do lado do cliente, mas podem introduzir algum código atualizado do lado do cliente.

Sim - pelo menos em teoria. Não tenho certeza de quão difícil é contornar isso (deliberadamente ou acidentalmente).

:thinking: Was the iOS SSL Flaw Deliberate? - Schneier on Security

Seria uma maneira, não tenho certeza se é a única. Se você fizer isso, precisará atualizá-lo quase diariamente para evitar quebrar coisas.

Embora todo este tópico seja uma discussão legal interessante, tudo parece um pouco distante da realidade.

@HAWK

Existe um repositório separado com uma licença para os plugins que eu não encontrei anteriormente, como o discourse-customer-flair-plugin? O JavaScript servido ao navegador tem um link para um mapa de origem, mas nenhuma licença, pelo que posso dizer.

Minha compreensão de “código de hospedagem/infraestrutura” não incluiria JavaScript do lado do cliente; isso está correto?

@RGJ

Concordo. Acho que estou confuso sobre a que a palavra “Discourse” realmente se aplica.

Ah, ok, então acho que não haveria uma boa maneira de saber.

Bom ponto, alguém poderia tentar esconder uma falha como essa. Mas parece mais fácil mitigar esse problema auditando código de terceiros do que confiando em todas as pessoas que já modificaram o código upstream, embora provavelmente nenhuma abordagem seja totalmente prática.

Sim, embora seja possível que a maioria das atualizações possa ser tratada automaticamente.

Suponho que isso seja em grande parte verdade neste caso.

Só para você saber, @JacobK1: O Discourse está bem feito, não há necessidade de marcar alguém quando você cita essa pessoa. A citação em si já gerará uma notificação :+1: (também foi para criar subseções, admito :pray: )