Come posso capire se una distribuzione particolare del client Discourse è software libero?

Posso anche usare la modalità sicura per farmi un’idea di quali modifiche hanno apportato altre distribuzioni Discourse:

  • Purism ha solo un paio di script tematici (che potrebbero effettivamente far parte di Discourse ufficiale, dato che la modalità sicura blocca tutti i temi, credo) e un pezzo interno (cioè, parte del file HTML, non un file JS esterno) di JavaScript, che inizia con const DELAY_TARGET=2e3,POLLING_INTERVAL=50,splashS
  • Exercism ha quello che sembra essere il plugin discourse-spoiler-alert che è stato successivamente aggiunto al core, così come lo stesso identico JS interno di Purism
  • Il forum dei membri FSF ha solo lo stesso identico JS interno degli altri due
  • Discourse Meta (questo forum) sembra avere molte differenze in JS
    • discourse-activity-pub
    • discourse-customer-flair-plugin (non sono riuscito a trovare una licenza per questo da nessuna parte)
    • discourse-deprecation-collector
    • discourse-doc-categories
    • discourse-new-features-feeds (anche per questo non è stata trovata alcuna licenza)
    • molti altri script, inclusi alcuni che non hanno nemmeno un link a una source map

Quindi sembra che la maggior parte delle distribuzioni di terze parti (basate sul mio piccolo campione di 3) rimangano abbastanza vicine a Discourse principale, ma questo fa sembrare che questa distribuzione contenga plugin che non farebbero parte della maggior parte delle distribuzioni. Sai dove potrei trovare il codice sorgente con licenza per tutti questi? Sarebbero nel repository principale? Non sono riuscito a trovarli cercando con grep alcuni di questi nomi nel repository principale, ma è possibile che mi sia sfuggito.

Da qui, ovvio, perché la maggior parte di questi non sono di terze parti, ma di prima parte :smirking_face:
Dovresti dare un’occhiata alle categorie Plugin e Theme component. Ma potresti trovare interessanti anche, ad esempio, Dev e Documentation.

Ho provato a cercare nell’intero forum “discourse-new-features-feeds” (ad esempio) e non ho trovato nulla. Per alcune estensioni sono riuscito a trovarle nella directory dei plugin, su GitHub o qui nei forum, ma per discourse-new-features-feeds e discourse-customer-flair-plugin non ho trovato nulla. Non ho controllato ogni singolo script di plugin, quindi potrebbero essercene altri che non sarei in grado di trovare.

Suppongo che ci possa essere un motivo per cui, ad esempio, le personalizzazioni di Meta non sono pubbliche. O non hai scavato abbastanza a fondo nel repository di Discourse :man_shrugging:

È possibile che siano un cliente Enterprise e abbiano fatto personalizzare appositamente il loro forum da Discourse.\nInoltre, se si desidera utilizzare la modalità provvisoria per visualizzare le personalizzazioni lato client, non la disabiliterebbe invece? Come si abiliterebbe su questi siti in primo luogo?

Per curiosità, mi chiedo quale sia esattamente la logica alla base di tutto questo. Non puoi semplicemente navigare in internet con le preoccupazioni che stai sollevando, corretto?

Stai parlando di “licenza”. Ma la tua licenza per usare un forum specifico come semplice utente sarebbe diversa dalla licenza per eseguire effettivamente il software del forum (=se qualcuno vuole impostare un altro forum con esso). Perché un utente dovrebbe preoccuparsi di quest’ultima? A causa di alcuni principi a cui vuole aderire? Qualsiasi personalizzazione non ridistribuita sarebbe “proprietaria”, immagino. Il che solleva la domanda di dove questo inizi e finisca.

Puoi essere diffidente nei confronti di javascript e di ciò che potrebbe consentire di eseguire nel tuo browser (i rischi e le possibilità di ciò sono spesso dibattuti. Si suppone che sia limitato). Non sono sicuro se Discourse possa funzionare senza di esso, però. O funzionare correttamente, almeno. Puoi sempre provare. C’è la popolare estensione del browser “NoScript” per questo, per esempio.

Mi chiedo ancora del ragionamento: si tratta di potenziale codice dannoso? In questo caso, non avrebbe molto senso per me che ti sentiresti meglio con una licenza che DICE che un forum esegue una versione non modificata. O di cosa si tratta?

In generale, voglio evitare di eseguire software non libero. Il motivo principale è che penso di dover avere il controllo sul software che viene eseguito sul mio computer, e un motivo aggiuntivo è che non mi piace l’idea di bug che potrebbero essere illegali da correggere. Penso anche che sarebbe positivo se ottenessi il mio software da un numero ristretto di repository fidati, piuttosto che scaricare software da centinaia di siti web indipendenti diversi senza supervisione o responsabilità di terze parti, quindi è importante per me essere libero di pacchettizzare il software che uso per un repository di cui mi fido (anche se questo è piuttosto impraticabile per JavaScript servito dal sito con la tecnologia attuale).

Non penso di dover avere il controllo sul software che viene eseguito sui computer altrui, perché penso che l’operatore del server debba avere quel controllo, e non mi sembra sensato che più utenti abbiano il pieno controllo del software.

No, è relativamente facile evitare di eseguire software non libero su Internet se non si utilizzano programmi che scaricano ed eseguono automaticamente codice arbitrario da parti non attendibili, o se si modificano tali programmi per non farlo (ad esempio, installando LibreJS nel browser web).

Per quanto ne so, eseguire il software del forum è necessario per utilizzare la maggior parte delle funzioni del forum, anche se la lettura dei post funziona senza di esso. Se voglio registrarmi e pubblicare argomenti, sembra che debba eseguire il software del forum. La maggior parte delle persone non se ne rende conto perché la maggior parte dei browser scaricherà ed eseguirà qualsiasi software invii il sito web, senza notificare l’utente.

Parte del software del forum viene eseguita sul server, e quindi le istanze di Discourse non distribuirebbero necessariamente quel software, il che significa che non riceverei necessariamente alcun software non libero che l’istanza ha aggiunto al lato server, quindi non cerco di evitare le istanze che fanno questo.

Nota a margine sulle definizioni

Secondo me, il software che non viene mai distribuito è “proprietario” perché ha un unico “proprietario” (l’autore) ma è anche “libero” perché tutti i suoi utenti (solo uno, l’autore) sono liberi di fare qualsiasi cosa vogliano con esso. Beh, immagino che si possa dire che le persone che interagiscono con un server sono “utenti” del software su quel server, quindi forse dovrei usare una parola diversa da “utenti”, ma non sono sicuro di quale parola usare invece. Forse sono tecnicamente un “utente” del software in esecuzione sulla rete telefonica o sul telefono di qualcun altro se chiamo qualcuno.

Sì, ho installato NoScript e, quando blocco il software Discourse lato client, ovviamente Discourse non può “funzionare” senza di esso, perché ho impedito al browser di eseguire gli script. Il software lato server, che non viene eseguito sul mio computer, non viene impedito di funzionare da NoScript. In questo stato, gli argomenti e i commenti serviti dal software del server Discourse sono visualizzabili, ma per registrarsi e pubblicare sembra che sia necessario utilizzare il software JavaScript lato client.

Per quanto riguarda il malware, se un programma software libero è malware, allora qualcuno può modificarlo per non essere malware e poi distribuire quella versione modificata da utilizzare al suo posto. Per JavaScript servito dal sito, questo è attualmente un po’ impraticabile. Idealmente ci sarebbe una licenza che dichiara direttamente che il software è software libero, in modo che anche se il software fosse modificato sarebbe ancora legale utilizzarlo come software libero. Così com’è, devo fidarmi che le distribuzioni che utilizzo non “mentano” sulla versione del software che stanno utilizzando (ad esempio, modificando il software del server Discourse per affermare che un commit viene utilizzato quando in realtà è un altro).

Probabilmente ho reso questa risposta un po’ troppo lunga, ma il succo è che apprezzo la libertà del software e quindi voglio evitare di eseguire software non libero sul mio computer.

In questo caso “loro” si riferisce a Discourse Meta. Non fa parte di Discourse (l’azienda)?

Sì, quello che intendevo era: con la modalità sicura posso disabilitare gli script delle modifiche e poi confrontare quale software viene inviato al browser in entrambi i casi. La differenza sono le modifiche e i temi.

La modalità sicura può essere attivata navigando su /safe-mode (ad esempio http://meta.discourse.com/safe-mode) e selezionando le opzioni lì. Quella pagina non richiede JavaScript, quindi la modalità sicura può essere attivata mentre si utilizzano estensioni come NoScript, LibreJS e/o Haketilo per bloccare JS o impostando javascript.enabled su false nelle impostazioni del browser per i browser basati su Firefox.

A questo punto, puoi confrontare i tag script su entrambe le pagine per vedere cosa è stato rimosso con la modalità sicura. Ho usato uno script come questo:

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

// nella pagina con più script
const scriptSrcArr = [];
for (script of document.scripts) {
  if (script.src) {
		scriptSrcArr.push(script.src);
  } else {
    scriptSrcArr.push(script.textContent);
  }
}

console.log(scriptSrcArr)

// nella pagina con meno script (dovrai fare clic destro sull'array e selezionare "Copia Oggetto" nella prima pagina)
scriptSrcArr = PASTE_OBJECT_FROM_OTHER_PAGE_HERE
for (script of document.scripts) {
  if (!scriptSrcArr.includes(script.src)) {
      console.info(script)
  }
}
// Presumo che gli script nella prima pagina siano un sovrainsieme degli script nella seconda pagina

@Jagster (sto provando una risposta tramite modifica, come suggerito da Discourse (ottima funzione di suggerimento!))

Questo mi fa pensare che Discourse, come distribuito da meta.discourse.org, sia software non libero, il che significherebbe che le affermazioni “L’intero codebase di Discourse è aperto e liberamente disponibile al pubblico” e “Discourse è software per forum open-source al 100% gratuito” (entrambe da www.discourse.org) sembrano fuorvianti, anche se tecnicamente vero perché il software non è la stessa cosa dei suoi plugin. Mi sento un po’ come se fossi stato ingannato nell’utilizzare software non libero :slightly_frowning_face:

Suppongo che tale affermazione sia realmente intesa per le persone che intendono ospitare istanze di Discourse, non per unirsi a quelle esistenti.

Spero di sbagliarmi e che sia davvero così che non ho guardato abbastanza attentamente il repository.

Devi sentirti così spesso. Nessuna faccina, perché quella era solo un’affermazione su come funzionano internet e le app al suo interno.

Hai appena detto che le personalizzazioni sono negative e che se la base è open source, allora anche tutti i componenti aggiuntivi devono essere gratuiti. Beh, penso che WordPress abbia usato questo, ma sicuramente non con wordpress.com, ma se visiti il mio sito WordPress c’è molto lavoro personalizzato. Alcuni sono proprietari, altri aperti, altri personalizzati e altri fatti da me. E in questa realtà non accadranno due cose:

  • tutto il codice del lavoro personalizzato sarebbe pubblico
  • ti direi o a qualsiasi visitatore se ho o non ho una licenza valida

Ma ho difficoltà a capire perché Discourse, WordPress, Moodle ecc. non dovrebbero essere gratuiti se alcuni componenti aggiuntivi non sono gratuiti. Non capisco la logica dietro quel pensiero.

Questo è sicuramente il punto :+1:
Non si può prevedere cosa gli hoster potrebbero poi adattare per fare.

Infatti, inoltre e per esempio, a discrezione dell’host potrebbero aggiungere:

  • pubblicità
  • abbonamenti

E mentre il “software” potrebbe rimanere “gratuito”, alcune funzionalità potrebbero essere a pagamento e la pubblicità disattivata solo per gli abbonati paganti.

Non tutti hanno fondi illimitati per gestire un’istanza di Discourse gratuitamente. Molti siti devono generare entrate per pagare le loro bollette.

Gestire un Discourse non è mai “gratuito” su larga scala. L’host deve pagare i costi del nome di dominio, del VPS e dei servizi di posta elettronica, per citarne alcuni.

(… e non parliamo dei costi di sviluppo di Discourse in primo luogo!)

Ok, penso di capire da dove vieni.

Assolutamente no! Il codice sarà sempre libero.


Gli amministratori del proprio sito Discourse hanno la libertà di personalizzare il proprio forum. Plugin, temi, TC non devono sempre essere open source. Discourse va bene con questo, poiché ci sono modi per utilizzare repository privati anziché pubblici per collegare queste personalizzazioni.
Quindi lo sono anche tutti i plugin, tranne in occasioni molto, molto, molto rare (forse anche quasi mai!) tali personalizzazioni saranno a pagamento [1]. Quindi nulla è “non libero”: tutto è libero.
Il mio punto è che il software open-source sarà libero. I plugin sono gratuiti: è tua scelta usarli. Lo stesso vale per temi, TC, ecc. Ciò che non è open-source, tuttavia, può essere a pagamento, ma gli amministratori hanno scelto di renderlo libero da usare. Non c’è nessuno che ti impedisca, se vuoi, di fare una copia di una personalizzazione a codice chiuso al meglio delle tue capacità e di usarla tu stesso.
Discourse è libero, le sue personalizzazioni pubbliche [2] sono libere, le sue personalizzazioni private sono anche libere da usare (Almeno in un bel po’ di posti, ma

. Pagare il proprietario per il codice sorgente è una cosa diversa, però.

Essenzialmente, a meno che tu non crei tu stesso un plugin/tema/TC e non lo condivida, puoi sempre installare personalizzazioni gratuitamente. Nessuno ti ferma.


Mi scuso se questo suona scortese o brusco, o se gira in tondo e ripete la stessa cosa.


  1. Ad eccezione di commissioni a pagamento, che è una tua scelta sponsorizzarla. ↩︎

  2. cioè quelle elencate qui su Meta o su github pubblicamente ↩︎

Ma queste vengono “sopra” la versione open source, quindi la mera esistenza di un CLA non renderà Discourse non libero.

Non si tratta di libero come in “gratis” ma libero come in “c’è una licenza non restrittiva”. What is Free Software? - GNU Project - Free Software Foundation

Non è necessariamente vero. Di nuovo: si tratta di libero come in “libertà”, non come in “prezzo”. Ci sono progetti open source che hanno licenze troppo restrittive per essere considerate software libero secondo la definizione FSF. Esempi sono MongoDB ed ElasticSearch.

Eseguire software libero non implica che tu ne abbia il controllo.

Quindi sembra che tu stia confondendo “attendibile” e “libero”. Quando un amministratore di server compila discourse, il processo di compilazione scarica tutti i tipi di pacchetti da NPM. Si può sempre fare affidamento su questi? (La storia ci ha insegnato che non è così - esempio e un altro).

Tu “immagini” :thinking: Un amministratore di server può apportare modifiche senza cambiare l’hash del commit. E un plugin può iniettare codice Javascript.

Mi dispiace deluderti, ma è falso.

Non si tratta di libero o non libero o open source o closed source, ma di fiducia.

Se visiti un’istanza Discourse, dovrai fidarti di

  • gli amministratori del server
  • chiunque abbia accesso in commit all’organizzazione github di Discourse
  • chiunque abbia accesso in commit ai repository dei plugin
  • chiunque su github
  • l’intera catena software di NPM
  • chiunque abbia accesso in commit a qualsiasi repository NPM utilizzato
  • chiunque abbia il controllo sul software del tuo browser
  • l’azienda che ha fornito il certificato SSL e la catena di fiducia

Che saranno almeno qualche migliaio di persone?

I plugin e i componenti tematici possono essere trovati in repository separati.
Non tutti i plugin sono open source (ad esempio, discourse-customer-flair-plugin non lo è, per quanto ne so). Quindi eccoti servito. Dovrai smettere di usare Meta :wink: Scherzo, ovviamente. Il mio punto è che ci può essere abbastanza fiducia senza che tutto sia open source o libero.

Solo una cosa, @JacobK1, hai letto la licenza di Discourse?

Citando alcuni punti che potrebbero essere rilevanti:

la GNU General Public
License è intesa a garantire la tua libertà di condividere e modificare software libero – per assicurare che il software sia libero per tutti i suoi utenti.

Puoi modificare la tua copia o copie del Programma o qualsiasi porzione
di esso, formando così un lavoro basato sul Programma, e copiare e
distribuire tali modifiche o lavoro secondo i termini della Sezione 1
sopra

Spero che questo sia stato risposto sopra e nella citazione sopra questa.

Se ho capito bene, tutto questo è principalmente legato a javascript. E riguarda ciò che viene eseguito con javascript all’interno del tuo browser, che viene servito da ogni istanza di Discourse. Si tratterebbe anche principalmente di “fiducia” e di avere la capacità di sapere quale codice viene eseguito (potendolo esaminare). Corretto?

Questo è ben al di sopra delle mie competenze, ma puoi avere il “controllo” su questo? A meno che tu non stia inviando un commit che cambia le cose per tutti, non credo che tu possa davvero “risolvere” qualcosa da solo qui, poiché ciò che definisci il “software” in esecuzione sul tuo computer ti viene fornito dal server ogni volta.

Anche se ogni forum dovesse avere il proprio codice open-source pubblicato, con tutte le possibili modifiche, puoi essere sicuro che sia effettivamente ciò che stanno eseguendo in ogni momento? Non è come se potessi scaricarlo una volta, controllarlo e compilarlo da solo dalla tua parte.

Ciò che vorresti veramente è o:

  1. Nessun javascript (nessuna fortuna con Discourse su questo, che ne dipende abbastanza pesantemente) o
  2. Un client open-source indipendente effettivamente installato sul tuo computer. Quest’ultimo dovrebbe anche non utilizzare javascript, se tutto questo è possibile con Discourse, cosa che non so. Allora potresti modificare il tuo client e avere il controllo su di esso che stai cercando.

Sarebbe una comprensione corretta?
(PS: È anche al di sopra delle mie competenze, ma se ricordo bene, non il 100% del codice di Discourse è open-source. Ora, ti interessa veramente solo ciò che viene eseguito dalla tua parte, non tutto ciò che è lato server)

Tutto tranne parte del nostro codice di hosting/infrastruttura è open-source.

@Jagster

Forse stavo esagerando un po’ :slight_smile:

Poiché ottengo la stragrande maggioranza del mio software usando apt install invece di un browser web, e mi fido della mia distribuzione software (Trisquel) di distribuire solo software libero, questo non è solitamente un problema.

Solo per chiarezza, non sto dicendo che le personalizzazioni siano necessariamente negative, ma che possono esserlo se non sono libere, quindi un modo per assicurarsi di evitare l’esecuzione di software non libero è disabilitare le personalizzazioni.

Credo che tutto il software dovrebbe essere libero/libre.

@Jagster @RGJ

Per chiarezza, non sto cercando di dire che Discourse è non libero. È solo questa particolare distribuzione di Discourse (Discourse Meta) che sembra includere software non libero.

@Jagster @merefield

Avrei dovuto menzionare nel mio post precedente un altro motivo per cui pensavo che questa distribuzione sarebbe stata libera: la pagina “chi siamo” di Discourse dice “Esiste solo una versione di Discourse – la fantastica versione open source”. Questo è, ancora una volta, tecnicamente vero perché i plugin non fanno parte di Discourse, ma mi è sembrato fuorviante.

Discourse potrebbe non avere il controllo sulle distribuzioni di terze parti, ma mi sarei aspettato che le istanze di Discourse ospitate da Discourse fossero software libero se dicono quello che dicono sulla pagina “chi siamo”. Avrei anche potuto aspettarmi una licenza e/o un framework che richiedesse effettivamente che i derivati fossero software libero, il che in un certo senso c’è, dato che Discourse è GPL, ma immagino che non copra i plugin.

@merefield @NateDhaliwal

Penso che chiedere soldi per software o servizi vada bene; solitamente il “libero” in “software libero” significa “libre”, nel senso che sei libero di fare ciò che vuoi con esso (copiare, modificare, ecc.), dopo averlo ottenuto. Non significa necessariamente che sia “gratuito” nel senso di “gratis”, cioè a costo zero.

@NateDhaliwal

Strettamente parlando, sì, nessuno mi impedisce, ma sarebbe illegale, il che sembra negativo. Per uso privato potrebbe funzionare, ma in generale i repository pubblici di software e gli app store non vogliono includere codice illegale, e alcune persone che potrebbero voler usare il software potrebbero essere a disagio nell’eseguire codice copiato illegalmente. Non sono sicuro di avere l’approccio giusto; forse dovrei semplicemente ignorare completamente il copyright, ma sembra non essere la migliore opzione quando è fattibile evitare software illegale e non libero.

Nessun problema! :slight_smile: Non penso che tu stia essendo scortese, e non ho ancora la sensazione che stiamo girando a vuoto.

@RGJ

Cosa intendi con questo? Se il software è libero, significa che posso modificarlo; quindi ho il controllo su ciò che fa.

Non credo che libero sia la stessa cosa di affidabile; forse avrei dovuto dire “arbitrario” invece di “non affidabile”, ma il mio punto era che la maggior parte dei browser eseguirà qualsiasi codice una pagina web gli fornisce, e dato che spesso visito siti web che non ho mai visitato prima, molti siti che visito sono “non affidabili”. Per questi siti, non ho motivo di pensare che non invieranno software non libero.

Per quanto riguarda NPM, lo considero più affidabile di un sito web arbitrario, ma forse non quanto i miei repository apt o guix. Tuttavia, la fiducia non è unidimensionale; anche se non mi fiderei di un nuovo pacchetto su NPM solo perché è su NPM, mi fiderei che quando scarico JQuery da NPM sia davvero JQuery. NPM potrebbe commettere errori che permettono a un attaccante di sostituire JQuery, ma NPM potrebbe adottare misure per evitare malware che non sarebbero realistiche per JavaScript servito dal sito (ad esempio revisione automatizzata/manualizzata prima della pubblicazione, revisione crowd-sourced dopo la pubblicazione, controllo automatizzato che gli script minificati/offuscati corrispondano al codice sorgente, regole contro il download e l’esecuzione di codice arbitrario a runtime). Importante: quando viene rilevato malware su NPM, c’è una terza parte (NPM, a differenza dello sviluppatore del software) a cui segnalarlo in modo che possa essere rimosso. Questo non è il caso per JavaScript servito dal sito: l’unico che può rimuoverlo è l’operatore del sito.

Significa che l’hash del commit elencato sarebbe errato se un amministratore di server avesse apportato modifiche e non avesse anche cambiato l’hash del commit elencato? Pensavo che aggiornare il software cambiasse automaticamente l’hash del commit, e io (erroneamente?) assumevo che l’hash del commit elencato venisse aggiornato automaticamente.

Il JavaScript iniettato dai plugin verrebbe disabilitato con safe_mode=no_themes,no_unofficial_plugins?

Quindi, l’unico modo per evitare software non libero utilizzando Discourse sarebbe incapsulare un client Discourse come estensione del browser o pacchetto Haketilo o qualcosa di simile?

Non sono sicuro di cosa intendiate considerando che la mia domanda originale riguarda la libertà del software, non la fiducia.

Non sono d’accordo che tutti quelli che hai elencato debbano essere considerati affidabili.

  • Gli amministratori del server non dovrebbero essere considerati affidabili se non esegui il software servito da loro, ad esempio se ottieni il client Discourse da GitHub e lo impacchetti in modo che possa essere utilizzato con quel server.
  • In molti casi, le persone che collaborano al software potrebbero leggere alcuni dei commit l’una dell’altra, quindi non devo fidarmi di tutti gli autori individualmente.

Quindi questo significherebbe che il client Discourse Meta è software proprietario, giusto? Tuttavia, è possibile utilizzare la modalità sicura per disabilitare il JS del plugin.

Forse, ma non è molto utile se voglio evitare software non libero.

@NateDhaliwal
Ho letto la licenza nel repository git di Discourse, ma (a causa della CLA) non si applica necessariamente ai derivati di Discourse fuori da quel repository. Mi piacerebbe vedere un avviso su ogni distribuzione di Discourse che indica quale del software distribuito è libre. Sarebbe anche (secondo me) in linea con lo spirito della GPL: “devi mostrare loro questi termini in modo che conoscano i loro diritti”.

@Mevo

Sì, è possibile eseguire JavaScript da un’estensione del browser o da un proxy, come Haketilo o GreaseMonkey, anche se questo può essere molto poco pratico per alcuni software, ad esempio se si aggiornano molto spesso, come sarebbe il caso per software in cui i dati sono incorporati nel software JavaScript. Haketilo non supporta inoltre alcuni tipi di script, ad esempio script con un tipo di “modulo”.

Sì, penso che la tua comprensione sia corretta nel complesso. Anche se impacchettare il JavaScript come estensione del browser o per Haketilo o GreaseMonkey porterebbe effettivamente a un client installato indipendente, anche se utilizzerebbe JavaScript.

@HAWK

Immagino che tu intenda “Tutto” come “tutto ciò che fa parte di Discourse”, cioè non includendo plugin come discourse-customer-flair-plugin?

Tutto ciò che fa parte del prodotto principale che ospitiamo (incluso Meta), con l’eccezione che ho indicato sopra, è gratuito e open source.

Alcuni plugin dipendono da piattaforme proprietarie per funzionare, ma ciò non ha nulla a che fare con il fatto che Discourse sia open source o meno.

Tutte le istanze di Discourse ospitate da CDCK o da noi (sono co-fondatore di un’azienda che ospita Discourse) stanno eseguendo uno o alcuni plugin closed-source per fornire alcune funzionalità specifiche dell’ambiente di hosting.

Penso ci sia molta confusione tra una distribuzione nel senso classico (ecco un repo github e sentiti libero di fare quello che vuoi) e una distribuzione nel senso più moderno (ecco un sito web che invia Javascript al tuo browser). Inoltre, c’è confusione tra Discourse https://github.com/discourse/discourse e Discourse-e-tutti-i-suoi-plugin-e-componenti-tema-di-prima-e-terze-parti-aggiunti-dagli-amministratori-del-sito.

È un hash di commit, quindi se vengono apportate modifiche dopo averlo scaricato dal repository e prima di eseguirne il commit, ti trovi già in una situazione del genere. Non è necessario che sia un atto malevolo, accade anche se vengono applicate patch di sicurezza (che di solito vengono fatte prima di eseguirne il commit in un branch pubblico). Ora, in generale, le patch di sicurezza non sono lato client, ma potrebbero introdurre del codice lato client aggiornato.

Sì, almeno in teoria. Non sono sicuro di quanto sia difficile aggirarlo (deliberatamente o accidentalmente).

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

Sarebbe un modo, non sono sicuro se sia l’unico. Se lo fai, dovresti aggiornarlo quasi quotidianamente per evitare problemi.

Anche se tutto questo argomento è un’interessante discussione legale, sembra un po’ staccato dalla realtà.

@HAWK

Esiste un repository separato con una licenza per i plugin che non ho trovato in precedenza, come discourse-customer-flair-plugin? Il JavaScript servito al browser ha un link a una mappa sorgente ma nessuna licenza per quanto ne sappia.

La mia comprensione di “codice di hosting/infrastruttura” non includerebbe il JavaScript lato client; è corretto?

@RGJ

Sono d’accordo. Penso di essere confuso su cosa si applichi effettivamente la parola “Discourse”.

Ah, okay, quindi immagino che non ci sarebbe davvero un buon modo per dirlo.

Buon punto, qualcuno potrebbe cercare di nascondere un difetto come questo. Ma sembra più facile mitigare quel problema esaminando il codice di terze parti piuttosto che fidarsi di ogni singola persona che abbia mai modificato il codice upstream, anche se probabilmente nessuno dei due approcci sarebbe completamente praticabile.

Sì, anche se è possibile che la maggior parte degli aggiornamenti possa essere gestita automaticamente.

Suppongo che in questo caso sia in gran parte vero.

Solo per tua informazione, @JacobK1: Discourse è ben fatto, non c’è bisogno di taggare qualcuno quando si cita quella persona. La citazione stessa genererà già una notifica :+1: (era anche per creare sottosezioni, ammettiamolo :pray: )