¿Cómo puedo saber si una distribución en particular del cliente Discourse es software libre?

Para las personas que desean evitar ejecutar software no libre, ¿cómo podemos saber si el software que nos proporciona un sitio web para acceder a un foro impulsado por Discourse es software libre?

Sin el software cliente de JavaScript, el foro parece ser de solo lectura, por lo que quiero ejecutar el JavaScript en el sitio web, pero no veo ninguna indicación aquí en Discourse Meta ni, por ejemplo, en los Foros de Purism (también impulsados por Discourse), de que el software cliente sea software libre. Algunos de los archivos de script tienen enlaces a mapas de origen, pero los mapas de origen que revisé no tenían información de licencia.

Encontré un tema anterior que menciona "Solo hay una versión de Discourse: la increíble versión de código abierto", pero luego también encontré un tema que sugiere que el CLA puede permitir versiones propietarias, pero no tiene ejemplos de versiones propietarias.

Una instancia de Discourse que sí muestra información de licencia es el foro de miembros de la FSF (solo accesible para miembros, creo), que enlaza al repositorio de Discourse de GitHub, un repositorio git de la FSF, y al repositorio de GitHub de una extensión, pero esta información solo se muestra después de que el software cliente ya se está ejecutando, por lo que no es muy útil para decidir si ejecutar el programa en primer lugar.

¿Hay alguna manera de averiguar si el software cliente servido por una instancia de Discourse es software libre sin ejecutar realmente ese software? ¿O incluso si tengo que ejecutar el software, ¿cómo obtendría el código fuente completo con licencia del software cliente para una instancia de Discourse? Seguramente el repositorio original de Discourse en GitHub no siempre es suficiente, ya que la gente puede haber modificado el software antes de redistribuirlo.

Alternativamente, ¿existe una aplicación de Discourse diferente que no descargue software de los servidores a los que se conecta?

1 me gusta

Discourse es de código abierto, por lo que su uso es gratuito. El alojamiento, propio o usando CDCK, tendrá un costo.

Buscar is discourse free arrojó esto:

Claro que lo es. Y de facto la única fuente a utilizar.

4 Me gusta

Mi suposición es que no puedes.

Algunas instalaciones estarán alojadas y tendrán partes propietarias en la pila de alojamiento.

Los autoalojadores serían tontos si no usaran la instalación estándar porque es la más barata de mantener.

Una cosa que podrías encontrar es que algunos sitios pueden usar complementos propietarios/privados que la plataforma te permite instalar a discreción del administrador.

6 Me gusta

Me confunde esta declaración. ¿Está diciendo que las personas que alojan Discourse no modifican el software antes de redistribuirlo?

Aquí se conoce al equipo o como la empresa CDCK. Por supuesto que lo hacen, todos los días. Está en constante desarrollo. Y sin embargo, eso es lo que estamos usando.

Esto puede abrir esa pregunta:

2 Me gusta

Tu mención de los plugins me hizo pensar si hay alguna forma de verificar la información de la versión, y encontré este tema que describe cómo obtener la información de la versión.

Así puedo ver, por ejemplo, que esta instancia está usando el commit 276bc8a565389ea1a145af08ec8e64c1a5bea990, el foro de miembros de la FSF está usando el commit 7ecaf6295daf8759aa98d00e7035c4dc0f853303, el foro de Purism está usando 999aaa35a79ae7c586a91de1f6c1f7b3c8092bd2, y el foro de Exercism está usando el commit 1bd9ca11e777f880462ae64c6795ef7de28a8cd2. Todos esos son commits válidos en el repositorio oficial, así que supongo que las instancias no han modificado Discourse en sí (aunque pueden haber agregado plugins).

Creo que eso deja los plugins y los temas. Parece que tal vez puedas ver el nombre de los plugins buscando atributos “data-discourse-entrypoint” en los scripts de los plugins, pero no veo un identificador de versión. ¿Conoces alguna forma de obtener la lista de plugins instalados?

Podrías mirar los paquetes de javascript para tener una idea, pero cualquier cantidad de plugins podría estar instalada en el backend lejos de miradas indiscretas.

2 Me gusta

Lo que quise decir con “modificar el software antes de redistribuirlo” fue que las personas que redistribuyen el software en sitios web públicos, como por ejemplo forums.puri.sm, podrían modificar su versión sin enviar los cambios al repositorio git principal. Si hicieran un acuerdo con Discourse, podrían lanzar esos cambios como software no libre, por separado del repositorio git principal de Discourse.

La velocidad de los cambios en el repositorio principal es tan alta que sería costoso mantener una bifurcación viable.

Esa es precisamente la razón por la que los complementos son una solución popular para las extensiones.

5 Me gusta

Gran “si” y no creo que eso suceda, ¿y qué acuerdo? Discourse es de código abierto. Pero CDCK sabrá mejor. Supongo que hay algunas bifurcaciones, pero ¿están esas en producción? Lo dudo. Pero como dijo Robert, ¿por qué cuando las cosas se pueden hacer con componentes y complementos?

2 Me gusta

Así que supongo que la única forma de comprobar los plugins podría ser:\n* Configurar mi propia instancia de Discourse\n* Intentar instalar los mismos plugins que cualquier instancia remota con la que quiera interactuar\n* Comprobar si el JavaScript del plugin es el mismo en mi instancia que en su instancia\n\nSupongo que también podría intentar evitar ejecutar el software del plugin por completo, y solo usar los scripts que forman parte del propio Discourse.\n\nPor supuesto, no tengo forma de comprobar su backend, pero solo me importa el software cliente cuando me conecto al servidor de otra persona.

Quizás también te interese el modo seguro, que deshabilita las personalizaciones de JavaScript.

2 Me gusta

No. No puedes ver lo que sucede en el servidor. Puede haber muchos cambios que no estén expuestos en la API pública o que sean muy difíciles de descifrar.

Un lego no tiene acceso a lo que sucede en el servidor.

3 Me gusta

Creo que esto, combinado con la información de la versión, es suficiente para usar distribuciones arbitrarias de Discourse sin ejecutar software no libre. Se puede verificar que el commit está en el repositorio oficial de GitHub y luego asegurarse de que el modo seguro esté siempre habilitado o solo “incluir en la lista blanca” (en una herramienta como LibreJS) los scripts que aparecen cuando se usa el modo seguro.

No. No lo está. Solo deshabilita los cambios del lado del cliente.

3 Me gusta

Solo me importan los cambios del lado del cliente porque no ejecutaré el código del servidor en mi computadora.

Si fuera a ejecutar un servidor de Discourse, elegiría qué complementos instalar y simplemente no instalaría complementos que carezcan de licencia.

Cuando me conecto al servidor de otra persona, se espera que ejecute el software que me proporcionan, que podría no tener una licencia en un lugar fácil de encontrar.

Creo que la mayoría de las instalaciones tendrán conjuntos predecibles de complementos. Pero no todos. Nunca lo sabrás a menos que te conviertas en un administrador privilegiado del sitio.

2 Me gusta

Para asegurarme de que entiendo correctamente: si un cambio no es del lado del cliente, ¿eso significa que no afectará al código que un usuario normal (es decir, no un administrador) de la distribución de Discourse ejecutará? ¿Es correcto?

ejecutar, pero no estar sujeto en el procesamiento de ninguna información con la que puedan interactuar.

un servidor podría, en segundo plano, enviar todos tus detalles a Facebook y recibir un pago :wink:

2 Me gusta