Как определить, является ли конкретная сборка клиента Discourse свободным программным обеспечением?

Для тех, кто хочет избегать запуска несвободного программного обеспечения, как мы можем определить, является ли программное обеспечение, предоставляемое сайтом для доступа к форуму на базе Discourse, свободным?

Без клиентского JavaScript-программного обеспечения форум выглядит как доступный только для чтения, поэтому я хочу запускать JavaScript на сайте, но не вижу здесь, на Discourse Meta, или, например, на форумах Purism (также работающих на базе Discourse), никаких указаний на то, что клиентское программное обеспечение является свободным. Некоторые файлы скриптов содержат ссылки на карты исходного кода, но проверенные мной карты исходного кода не содержали никакой информации о лицензии.

Я нашёл более старую тему, где упоминается: «Существует только одна версия Discourse — замечательная версия с открытым исходным кодом». Однако затем я также нашёл тему, которая предполагает, что соглашение о вкладе (CLA) может допускать существование проприетарных версий, хотя в ней нет примеров таких версий.

Один из экземпляров Discourse, где действительно представлена информация о лицензировании, — это форум для членов Фонда свободного программного обеспечения (FSF) (доступный, по-видимому, только членам). Он содержит ссылки на репозиторий Discourse на GitHub, репозиторий FSF в Git и репозиторий GitHub для расширения. Однако эта информация отображается только после того, как клиентское программное обеспечение уже запущено, поэтому она не очень полезна для принятия решения о запуске программы в первую очередь.

Существует ли способ определить, является ли клиентское программное обеспечение, предоставляемое экземпляром Discourse, свободным, без фактического запуска этого программного обеспечения? Или даже если мне придётся запустить программу, как я могу получить полную лицензионную версию исходного кода клиентского программного обеспечения для экземпляра Discourse? Конечно, оригинальный репозиторий Discourse на GitHub не всегда достаточен, поскольку люди могли модифицировать программное обеспечение перед его распространением.

Или, возможно, существует другое приложение Discourse, которое не загружает программное обеспечение с серверов, к которым оно подключается?

Discourse имеет открытый исходный код, поэтому его использование бесплатно. Хостинг — будь то собственный или через CDCK — потребует затрат.

Поиск по запросу is discourse free выдал следующее:

Конечно, достаточен. И фактически это единственный источник для использования.

Мне кажется, что это невозможно.

Некоторые установки размещаются на хостинге и содержат проприетарные компоненты в стеке хостинга.

Тем, кто разворачивает систему самостоятельно, было бы неразумно не использовать стандартную установку, так как это самый дешёвый вариант в плане поддержки.

Однако вы можете столкнуться с тем, что некоторые сайты используют проприетарные или частные плагины, которые платформа позволяет устанавливать по усмотрению администратора.

Меня сбивает с толку это утверждение. Вы имеете в виду, что люди, размещающие Discourse, не модифицируют программное обеспечение перед его распространением?

Здесь команду знают как CDCK или как компанию CDCK. Конечно, они работают над этим каждый день. Это находится в постоянной разработке. И всё же мы используем именно это.

Это может вызвать такой вопрос:

Ваше упоминание плагинов заставило меня задуматься, есть ли способ проверить информацию о версии, и я нашёл эту тему, где описано, как получить данные о версии.

Таким образом, я могу увидеть, например, что этот экземпляр использует коммит 276bc8a565389ea1a145af08ec8e64c1a5bea990, форум членов FSF — коммит 7ecaf6295daf8759aa98d00e7035c4dc0f853303, форум Purism — 999aaa35a79ae7c586a91de1f6c1f7b3c8092bd2, а форум Exercism — коммит 1bd9ca11e777f880462ae64c6795ef7de28a8cd2. Все эти коммиты являются действительными в официальном репозитории, поэтому, полагаю, экземпляры не модифицировали сам Discourse (хотя они могли добавить плагины).

Кажется, остаются только плагины и темы. Похоже, что имена плагинов можно увидеть, ища атрибуты “data-discourse-entrypoint” в скриптах плагинов, но идентификатор версии я не нашёл. Знаете ли вы какой-либо способ получить список установленных плагинов?

Вы можете посмотреть на пакеты JavaScript, чтобы получить представление, но любое количество плагинов может быть установлено на бэкенде, скрытое от посторонних глаз.

Под «модификацией программного обеспечения перед его распространением» я имел в виду, что люди, распространяющие программное обеспечение на публичных веб-сайтах, например на форумах puri.sm, могут изменять свою версию, не отправляя изменения в основной репозиторий Git. Если они заключат соглашение с Discourse, они могут выпустить эти изменения как несвободное программное обеспечение отдельно от основного репозитория Git проекта Discourse.

Скорость изменений в основном репозитории настолько высока, что поддерживать актуальность форка стало слишком затратно.

Именно поэтому плагины являются популярным решением для расширения функционала.

Большое «если», и я не верю, что это произойдёт — и какое именно соглашение? Discourse с открытым исходным кодом. Но CDCK, вероятно, знает лучше. Полагаю, где-то существуют форки, но используются ли они в продакшене… сомневаюсь. Но, как сказал Роберт, зачем, если всё можно реализовать с помощью компонентов и плагинов.

Похоже, единственный способ проверить плагины — это:

  • Развернуть собственный экземпляр Discourse
  • Попробовать установить те же плагины, что и на удалённых экземплярах, с которыми я хочу взаимодействовать
  • Проверить, совпадает ли JavaScript плагинов на моём экземпляре и на их экземпляре

Возможно, я также могу вообще отказаться от запуска программного обеспечения плагинов и использовать только скрипты, входящие в состав самого Discourse.

Конечно, у меня нет возможности проверить их бэкенд, но меня интересует только клиентское ПО при подключении к чужому серверу.

Возможно, вас также заинтересует безопасный режим, который отключает пользовательские настройки JavaScript.

Нет. Вы не можете видеть, что происходит на сервере. Может быть много изменений, которые не раскрываются через публичный API или очень трудно расшифровать.

Обычный пользователь не имеет доступа к тому, что происходит на сервере.

Я считаю, что этого в сочетании с информацией о версии достаточно для использования произвольных дистрибутивов Discourse, избегая при этом запуска несвободного программного обеспечения. Можно проверить, что коммит находится в официальном репозитории GitHub, а затем либо убедиться, что безопасный режим всегда включён, либо «добавить в белый список» (например, с помощью LibreJS) только те скрипты, которые появляются при использовании безопасного режима.

Нет. Это не так. Это лишь отключает изменения на стороне клиента.

Меня интересуют только изменения на стороне клиента, так как я не буду запускать код сервера на своём компьютере.

Если бы я собирался запустить сервер Discourse, то выбрал бы, какие плагины установить, и просто не стал бы устанавливать плагины без лицензии.

Когда я подключаюсь к чужому серверу, я ожидаю, что буду использовать программное обеспечение, которое предоставляет владелец, и оно может не иметь лицензии в легкодоступном месте.

Я думаю, что в большинстве случаев набор плагинов будет предсказуемым. Но не всегда. Вы никогда не узнаете об этом, пока не станете администратором с повышенными правами на сайте.

Чтобы убедиться, что я правильно понимаю: если изменение не является клиентским, это означает, что оно не повлияет на код, который будет выполнять обычный пользователь (т.е. не администратор) дистрибутива Discourse. Верно ли это?

«запускать», но не быть подотчётным в обработке любой информации, с которой они могут взаимодействовать.

Сервер мог бы на заднем плане отправлять все ваши данные в Facebook и получать за это оплату :wink: