كيف يمكنني أن أميز إذا كان توزيع عميل Discourse معين هو برمجيات حرة؟

يمكنني أيضًا استخدام الوضع الآمن للحصول على فكرة عن التغييرات التي أجرتها توزيعات Discourse الأخرى:

  • لدى Purism عدد قليل من نصوص السمات (والتي قد تكون في الواقع جزءًا من Discourse الرسمي، نظرًا لأن الوضع الآمن يحظر جميع السمات على ما أعتقد) وقطعة واحدة داخلية (أي، جزء من ملف HTML، وليس ملف JS خارجي) من JavaScript، تبدأ بـ const DELAY_TARGET=2e3,POLLING_INTERVAL=50,splashS
  • لدى Exercism ما يبدو أنه المكون الإضافي discourse-spoiler-alert الذي تمت إضافته لاحقًا إلى النواة، بالإضافة إلى نفس JS الداخلي تمامًا مثل Purism
  • لدى منتدى أعضاء FSF نفس JS الداخلي تمامًا مثل الاثنين الآخرين
  • يبدو أن Discourse Meta (هذا المنتدى) لديه الكثير من اختلافات JS
    • discourse-activity-pub
    • discourse-customer-flair-plugin (لم أتمكن من العثور على ترخيص لهذا في أي مكان)
    • discourse-deprecation-collector
    • discourse-doc-categories
    • discourse-new-features-feeds (لم يتم العثور على ترخيص لهذا أيضًا)
    • العديد من النصوص الأخرى، بما في ذلك بعض النصوص التي لا تحتوي حتى على رابط لخريطة المصدر

لذلك يبدو أن معظم التوزيعات الخارجية (بناءً على عينتي الصغيرة المكونة من 3) تظل قريبة جدًا من Discourse الرئيسي، ولكن هذا يجعل الأمر يبدو الآن أن هذا التوزيع يحتوي على مكونات إضافية لن تكون جزءًا من معظم التوزيعات. هل تعرف أين يمكنني العثور على الكود المصدري المرخص لكل هذه؟ هل ستكون في المستودع الرئيسي؟ لم أتمكن من العثور عليها عن طريق البحث عن بعض هذه الأسماء في المستودع الرئيسي، ولكن من الممكن أن أكون قد فاتني ذلك.

من هنا، من الواضح، لأن معظم هذه ليست طرفًا ثالثًا، بل طرفًا أول :smirking_face:
يجب عليك الاطلاع على الفئات Plugin و Theme component. ولكن يمكنك أيضًا العثور على Dev و Documentation مثيرة للاهتمام.

لقد حاولت البحث في المنتدى بأكمله عن “discourse-new-features-feeds” (على سبيل المثال) ولم أجد شيئًا. بالنسبة لبعض الإضافات، تمكنت من العثور عليها في دليل الإضافات، أو على GitHub، أو هنا في المنتديات، ولكن بالنسبة لـ discourse-new-features-feeds و discourse-customer-flair-plugin، لم أتمكن من العثور على أي شيء. لم أتحقق من كل نص برمجي للإضافة، لذلك قد يكون هناك المزيد مما لا يمكنني العثور عليه.

أعتقد أنه قد يكون هناك سبب، على سبيل المثال، لعدم إتاحة تخصيصات Meta الخاصة بها للعامة. أو ربما لم تتعمق بما فيه الكفاية في مستودع Discourse :man_shrugging:

من الممكن أن يكونوا عملاء في مؤسسة كبيرة وحصلوا على Discourse لتخصيص منتداهم لهم خصيصًا.
أيضًا، إذا كنت ترغب في استخدام الوضع الآمن لرؤية التخصيصات من جانب العميل، ألن يؤدي ذلك إلى تعطيله بدلاً من ذلك؟ كيف ستقوم بتمكينه على هذه المواقع في المقام الأول؟

من باب الفضول، أتساءل ما هو المنطق الكامل بالضبط، هنا. لا يمكنك ببساطة تصفح الإنترنت بالمخاوف التي تطرحها، أليس كذلك؟

أنت تتحدث عن “الترخيص”. لكن ترخيصك الخاص لاستخدام منتدى معين كمستخدم بسيط سيكون مختلفًا عن ترخيص تشغيل برنامج المنتدى فعليًا (= إذا أراد شخص ما إعداد منتدى آخر به). لماذا يهتم المستخدم بالأخير؟ بسبب بعض المبادئ التي يريد الالتزام بها؟ أي تخصيص غير معاد توزيعه سيكون “خاصًا”، على ما أعتقد. وهذا يطرح السؤال عن أين يبدأ هذا وينتهي.

يمكنك أن تكون حذرًا من جافاسكريبت وما قد يسمح بتشغيله على متصفحك (غالبًا ما تتم مناقشة مخاطر وإمكانيات ذلك. من المفترض أن تكون محدودة). لست متأكدًا مما إذا كان Discourse يمكن تشغيله بدونه، على الرغم من ذلك. أو تشغيله بشكل صحيح، على الأقل. يمكنك دائمًا تجربته. يوجد امتداد المتصفح الشهير “NoScript” لهذا الغرض، على سبيل المثال.

ما زلت أتساءل عن السبب: هل يتعلق الأمر بشفرة خبيثة محتملة؟ في هذه الحالة، لن يكون منطقيًا بالنسبة لي أن تشعر بتحسن مع ترخيص يقول إن المنتدى يعمل بإصدار غير معدل. أو ما هو الأمر؟

بشكل عام، أريد تجنب تشغيل برامج غير مجانية. السبب الرئيسي هو أنني أعتقد أنه يجب أن أتحكم في البرامج التي تعمل على جهازي، وسبب إضافي هو أنني لا أحب فكرة وجود أخطاء قد يكون إصلاحها غير قانوني. أعتقد أيضًا أنه سيكون من الجيد لو حصلت على برامجي من عدد قليل من المستودعات الموثوقة، بدلاً من تنزيل البرامج من مئات المواقع المستقلة المختلفة دون أي رقابة أو مساءلة من طرف ثالث، لذلك من المهم بالنسبة لي أن أكون حرًا في حزم البرامج التي أستخدمها لمستودع أثق به (على الرغم من أن هذا غير عملي إلى حد ما بالنسبة لـ JavaScript الذي يتم تقديمه عبر الموقع باستخدام التكنولوجيا الحالية).

لا أعتقد أنه يجب أن أتحكم في البرامج التي تعمل على أجهزة الآخرين، لأنني أعتقد أن مشغل الخادم يجب أن يتحكم في ذلك، ولا يبدو لي منطقيًا أن يكون لدى العديد من المستخدمين تحكم كامل في البرامج.

لا، من السهل نسبيًا تجنب تشغيل برامج غير مجانية على الإنترنت إذا لم تستخدم برامج تقوم بتنزيل وتشغيل تعليمات برمجية عشوائية من أطراف غير موثوق بها تلقائيًا، أو إذا قمت بتعديل هذه البرامج لعدم القيام بذلك (على سبيل المثال، عن طريق تثبيت LibreJS في متصفح الويب الخاص بك).

على حد علمي، يتطلب تشغيل برنامج المنتدى استخدام معظم وظائف المنتدى، على الرغم من أن قراءة المشاركات تعمل بدونه. إذا أردت تسجيل حساب ونشر مواضيع، يبدو أنني بحاجة إلى تشغيل برنامج المنتدى. معظم الناس لا يدركون ذلك لأن معظم المتصفحات ستقوم بتنزيل وتشغيل أي برنامج ترسله إليهم، دون إخطار المستخدم.

يتم تشغيل بعض برامج المنتدى على الخادم، ولن تقوم مثيلات Discourse بالضرورة بتوزيع هذا البرنامج على الإطلاق، مما يعني أنني لن أحصل بالضرورة على أي برنامج غير مجاني أضافه المثيل إلى جانب الخادم، لذلك لا أحاول تجنب المثيلات التي تفعل ذلك.

ملاحظة جانبية حول التعريفات

في رأيي، البرامج التي لا يتم توزيعها أبدًا هي “خاصة” لأن لها “مالكًا” واحدًا (المؤلف) ولكنها أيضًا “مجانية” لأن جميع مستخدميها (واحد فقط، المؤلف) أحرار في فعل ما يريدون بها. حسنًا، أعتقد أنه يمكنك القول إن الأشخاص الذين يتفاعلون مع خادم هم “مستخدمون” للبرنامج الموجود على هذا الخادم، لذلك ربما يجب أن أستخدم كلمة مختلفة عن “مستخدمين”، لكنني لست متأكدًا من الكلمة التي يجب استخدامها بدلاً من ذلك. ربما أنا تقنيًا “مستخدم” للبرنامج الذي يعمل على شبكة الهاتف أو على هاتف شخص آخر إذا اتصلت بشخص ما.

نعم، لدي NoScript مثبت، وعندما أقوم بحظر برنامج Discourse من جانب العميل، بالطبع لا يمكن لـ Discourse “العمل” بدونه، لأنني منعت المتصفح من تشغيل البرامج النصية. البرنامج من جانب الخادم، الذي لا يعمل على جهازي، لا يتم منعه من التشغيل بواسطة NoScript. في هذه الحالة، يمكن عرض المواضيع والتعليقات التي يقدمها برنامج خادم Discourse، ولكن للتسجيل والنشر يبدو أنك بحاجة إلى استخدام برنامج JavaScript من جانب العميل.

فيما يتعلق بالبرامج الضارة، إذا كان برنامج مجاني برنامجًا ضارًا، فيمكن لشخص ما تعديله لعدم كونه برنامجًا ضارًا، ثم توزيع هذا الإصدار المعدل لاستخدامه بدلاً من ذلك. بالنسبة لـ JavaScript الذي يتم تقديمه عبر الموقع، فإن هذا غير عملي حاليًا إلى حد ما. من الناحية المثالية، سيكون هناك ترخيص ينص مباشرة على أن البرنامج هو برنامج مجاني، بحيث حتى لو تم تعديل البرنامج، فسيظل قانونيًا استخدامه كبرنامج مجاني. كما هو الحال، يجب أن أثق في أن التوزيعات التي أستخدمها لا “تكذب” بشأن إصدار البرنامج الذي يستخدمونه (على سبيل المثال، عن طريق تعديل برنامج خادم Discourse للمطالبة باستخدام التزام واحد عندما يكون في الواقع التزامًا آخر).

ربما جعلت هذا الرد طويلاً بعض الشيء، لكن جوهره هو أنني أقدر حرية البرمجيات ولذلك أريد تجنب تشغيل برامج غير مجانية على جهازي.

في هذه الحالة، “هم” هم Discourse Meta. أليس هذا جزءًا من Discourse (الشركة)؟

نعم، ما قصدته هو: باستخدام الوضع الآمن، يمكنني تعطيل البرامج النصية من التعديلات، ثم يمكنني مقارنة البرامج التي يتم إرسالها إلى المتصفح في كلتا الحالتين. الفرق هو التعديلات والموضوعات.

يمكن تمكين الوضع الآمن عن طريق الانتقال إلى /safe-mode (على سبيل المثال، http://meta.discourse.com/safe-mode) وتحديد الخيارات هناك. لا تتطلب هذه الصفحة JavaScript، لذلك يمكن تمكين الوضع الآمن أثناء استخدام ملحقات مثل NoScript وLibreJS و/أو Haketilo لحظر JS أو عن طريق تعيين javascript.enabled إلى false في إعدادات المتصفح للمتصفحات المستندة إلى Firefox.

في هذه المرحلة، يمكنك مقارنة علامات البرامج النصية على كلتا الصفحتين لمعرفة ما تم إزالته باستخدام الوضع الآمن. لقد استخدمت برنامجًا نصيًا مثل هذا:

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

// on page with more scripts
const scriptSrcArr = [];
for (script of document.scripts) {
  if (script.src) {
		scriptSrcArr.push(script.src);
  } else {
    scriptSrcArr.push(script.textContent);
  }
}

console.log(scriptSrcArr)

// on page with fewer scripts (You will need to right click on the array and click "Copy Object" on the first page)
scriptSrcArr = PASTE_OBJECT_FROM_OTHER_PAGE_HERE
for (script of document.scripts) {
  if (!scriptSrcArr.includes(script.src)) {
      console.info(script)
  }
}
// I'm assuming that the scripts on the first page are a superset of the scripts on the second page

@Jagster (محاولة الرد عبر التعديل، كما اقترح Discourse (ميزة اقتراحات رائعة!))

هذا يجعلني أعتقد أن Discourse، كما تم توزيعه بواسطة meta.discourse.org، هو برنامج غير مجاني، مما يعني أن الادعاءات بأن “شفرة المصدر الكاملة لـ Discourse متاحة مجانًا للجمهور” و “Discourse هو برنامج منتدى مجاني 100%، مفتوح المصدر.” (كلاهما من www.discourse.org) تبدو مضللة، حتى لو كانت صحيحة تقنيًا لأن البرنامج ليس هو نفس الشيء مثل الإضافات الخاصة به. أشعر وكأنني قد تم خداعي لتشغيل برنامج غير مجاني :slightly_frowning_face:

أعتقد أن هذا الادعاء موجه حقًا للأشخاص الذين يعتزمون استضافة مثيلات Discourse، وليس الانضمام إلى مثيلات موجودة.

آمل أن أكون مخطئًا وأن يكون الأمر حقًا أنني لم أنظر عن كثب بما فيه الكفاية في المستودع.

يجب أن تشعر بذلك كثيرًا. لا توجد رموز تعبيرية، لأن هذا كان مجرد تصريح بسبب كيفية عمل الإنترنت والتطبيقات فيه.

لقد قلت للتو إن التخصيصات سيئة، وإذا كان الأساس مفتوح المصدر، فيجب أن تكون جميع الإضافات مجانية أيضًا. حسنًا، أعتقد أن ووردبريس استخدم ذلك، ولكن بالتأكيد ليس مع wordpress.com، ولكن إذا قمت بزيارة موقع ووردبريس الخاص بي، فهناك الكثير من العمل المخصص. بعضها مملوك، وبعضها مفتوح، وبعضها مخصص وبعضها مني. ولن يحدث شيئان في هذا الواقع:

  • سيكون كل كود العمل المخصص عامًا
  • سأخبرك أو أي زائر إذا كان لدي ترخيص صالح أم لا

لكنني أجد صعوبة في فهم سبب عدم كون Discourse و WordPress و Moodle وما إلى ذلك مجانية إذا لم تكن بعض الإضافات مجانية. لا أفهم المنطق وراء هذا التفكير.

هذه هي النقطة بالتأكيد :+1:
لا يمكنك التنبؤ بما قد يقوم المضيفون بتكييفه للقيام به.
بالفعل، علاوة على ذلك وعلى سبيل المثال، حسب تقدير المضيف قد يضيفون:

  • إعلانات
  • اشتراكات

وبينما قد يظل “البرنامج” “مجانيًا للاستخدام” فقد تكون بعض الميزات مقيدة ولن يتم تشغيل الإعلانات إلا للمشتركين الذين يدفعون.
لا يملك الجميع أموالاً غير محدودة لتشغيل مثيل Discourse مجانًا. تحتاج العديد من المواقع إلى تحقيق إيرادات لدفع فواتيرها.
تشغيل Discourse لا يكون أبدًا “مجانيًا” على نطاق واسع. يتعين على المضيف دفع تكاليف اسم النطاق، والخادم الافتراضي الخاص، وخدمات البريد الإلكتروني لسرد أهمها.
(… ودعنا لا ندخل في تكاليف تطوير Discourse في المقام الأول!)

حسنًا، أعتقد أنني أفهم وجهة نظرك.

على الإطلاق! الكود سيكون دائمًا مجانيًا.


يتمتع مسؤولو مواقع Discourse الخاصة بهم بالحرية في تخصيص منتداهم الخاص. لا يتعين دائمًا أن تكون الإضافات (Plugins) والسمات (Themes) وشروط الاستخدام (TCs) مفتوحة المصدر. هذا مقبول لدى Discourse، حيث توجد طرق لاستخدام مستودعات خاصة بدلاً من المستودعات العامة لربط هذه التخصيصات.
لذلك، فإن أيًا من الإضافات، باستثناء في حالات نادرة جدًا جدًا جدًا (ربما حتى شبه مستحيل!)، ستكون هذه التخصيصات مدفوعة [1]. لذلك لا شيء “غير مجاني”: كل شيء مجاني.
نقطتي هي أن البرامج مفتوحة المصدر ستكون مجانية. الإضافات مجانية - إنه اختيارك لاستخدامها. وكذلك السمات، وشروط الاستخدام، وما إلى ذلك. ومع ذلك، ما ليس مفتوح المصدر قد يكون مدفوعًا، لكن المسؤولين اختاروا جعله مجانيًا للاستخدام. لا يوجد ما يمنعك إذا كنت ترغب في إنشاء نسخة من تخصيص مغلق المصدر بأفضل ما لديك من قدرات واستخدامه بنفسك.
Discourse مجاني، وتخصيصاته العامة [2] مجانية، وتخصيصاته الخاصة مجانية أيضًا للاستخدام (على الأقل في عدد كبير من الأماكن، ولكن

. دفع المال للمالك مقابل الكود المصدري هو شيء مختلف، مع ذلك.

بشكل أساسي، ما لم تقم بإنشاء إضافة/سمة/شرط استخدام بنفسك ولا تشاركها، يمكنك دائمًا تثبيت التخصيصات مجانًا. لا يوجد ما يمنعك.


أنا آسف إذا بدا هذا فظًا أو مقتضبًا، أو يدور في حلقات ويكرر نفس الشيء.


  1. باستثناء العمولات المدفوعة، وهو اختيارك الخاص لرعايتها. ↩︎

  2. أي تلك المدرجة هنا في Meta أو في github بشكل عام ↩︎

لكن هذه تأتي “فوق” الإصدار مفتوح المصدر، لذا فإن مجرد وجود اتفاقية ترخيص المساهم (CLA) لن يجعل Discourse غير مجاني.

هذا لا يتعلق بالحرية مقابل المال ولكن بالحرية بمعنى “وجود ترخيص غير مقيد”. What is Free Software? - GNU Project - Free Software Foundation

هذا ليس صحيحًا بالضرورة. مرة أخرى: هذا يتعلق بالحرية بمعنى الحرية، وليس السعر. هناك مشاريع مفتوحة المصدر لديها تراخيص مقيدة للغاية بحيث لا يمكن اعتبارها برامج مجانية وفقًا لتعريف مؤسسة البرمجيات الحرة (FSF). الأمثلة هي MongoDB و ElasticSearch.

تشغيل البرامج المجانية لا يعني أن لديك سيطرة عليها.

إذًا يبدو أنك تخلط بين “موثوق” و “مجاني”. عندما يقوم مسؤول الخادم بإنشاء Discourse، فإن عملية البناء تقوم بتنزيل جميع أنواع الحزم من NPM. هل يمكن دائمًا الوثوق بهذه؟ (لقد علمتنا التاريخ أن هذا ليس هو الحال - مثال و آخر).

أنت “تخمن” :thinking: يمكن لمسؤول الخادم إجراء تعديلات دون تغيير تجزئة الالتزام. ويمكن للمكون الإضافي حقن تعليمات برمجية JavaScript أيضًا.

أكره أن أخبرك، لكن هذا غير صحيح.

هذا لا يتعلق بالبرامج المجانية أو غير المجانية أو مفتوحة المصدر أو مغلقة المصدر، بل بالثقة.

إذا قمت بزيارة مثيل Discourse، فسيتعين عليك الوثوق بـ

  • مسؤول (مسؤولون) الخادم
  • كل شخص لديه حق الوصول إلى الالتزام في منظمة Discourse github
  • كل شخص لديه حق الوصول إلى الالتزام في مستودعات المكونات الإضافية
  • كل شخص في github
  • سلسلة برامج المتصفح بأكملها
  • كل شخص لديه حق الوصول إلى الالتزام في أي مستودع NPM يتم استخدامه
  • كل شخص لديه سيطرة على برنامج المتصفح الخاص بك
  • الشركة التي قدمت شهادة SSL وسلسلة الثقة

والتي ستكون بضعة آلاف من الأشخاص على الأقل؟

يمكن العثور على المكونات الإضافية ومكونات السمات في مستودعات منفصلة.
ليست كل المكونات الإضافية مفتوحة المصدر (على سبيل المثال، discourse-customer-flair-plugin ليست كذلك على حد علمي). لذا ها هي. سيتعين عليك التوقف عن استخدام Meta ؛) أمزح بالطبع. وجهة نظري هي أنه يمكن أن يكون هناك ما يكفي من الثقة دون أن يكون كل شيء مفتوح المصدر أو حرًا.

شيء فقط، @JacobK1، هل قرأت ترخيص Discourse؟

اقتباس بعض النقاط التي قد تكون ذات صلة:

رخصة جنو العمومية العامة
تهدف إلى ضمان حريتك في مشاركة البرامج المجانية وتغييرها - للتأكد من أن البرنامج مجاني لجميع مستخدميه.

يجوز لك تعديل نسختك أو نسخ البرنامج أو أي جزء منه، وبالتالي تكوين عمل يعتمد على البرنامج، ونسخ وتوزيع مثل هذه التعديلات أو العمل بموجب شروط القسم 1 أعلاه

آمل أن يكون هذا قد تم الرد عليه أعلاه وفي الاقتباس أعلاه.

إذا فهمت بشكل صحيح، فكل هذا مرتبط بشكل أساسي بـ javascript. ويتعلق الأمر بما يتم تشغيله باستخدام javascript داخل متصفحك، والذي يتم تقديمه بواسطة كل مثيل من Discourse. سيكون الأمر أيضًا يتعلق بـ “الثقة” والقدرة على معرفة الكود الذي يتم تشغيله (والقدرة على إلقاء نظرة عليه). صحيح؟

هذا يتجاوز نطاق خبرتي، ولكن هل يمكنك الحصول على “تحكم” في هذا؟ ما لم تكن تقدم التزامًا يغير الأشياء للجميع، لا أعتقد أنه يمكنك حقًا “إصلاح” أي شيء بنفسك هنا، لأن ما تشير إليه باسم “البرنامج” الذي يعمل على جهاز الكمبيوتر الخاص بك يتم توفيره لمتصفحك من الخادم في كل مرة.

حتى لو كان كل منتدى لديه رمزه مفتوح المصدر منشور، مع جميع التعديلات الممكنة، هل يمكنك التأكد من أن هذا هو ما يقومون بتشغيله بالفعل في جميع الأوقات؟ لا يمكنك تنزيله مرة واحدة، والتحقق منه وتجميعه بنفسك من جانبك.

ما تريده حقًا هو إما:

  1. لا javascript (لا حظ مع Discourse في هذا الأمر، والذي يعتمد بشكل كبير عليه) أو
  2. عميل مستقل مفتوح المصدر مثبت بالفعل على جهاز الكمبيوتر الخاص بك. سيحتاج الأخير أيضًا إلى عدم استخدام javascript، إذا كان كل هذا ممكنًا مع Discourse، وهو ما لا أعرفه. عندها ستتمكن من تعديل عميلك والحصول على التحكم فيه الذي تبحث عنه.

هل سيكون هذا فهمًا عادلًا؟
(ملاحظة: هذا يتجاوز نطاق خبرتي أيضًا، ولكن إذا كنت أتذكر بشكل صحيح، فإن 100٪ من كود Discourse ليس مفتوح المصدر. الآن، أنت تهتم حقًا فقط بما يعمل على جانبك، وليس كل شيء من جانب الخادم)

كل شيء باستثناء بعض كود الاستضافة/البنية التحتية لدينا مفتوح المصدر.

@Jagster

ربما كنت مبالغًا قليلاً في دراماتيكيته :slight_smile:

لأنني أحصل على الغالبية العظمى من برمجياتي باستخدام apt install بدلاً من متصفح الويب، وأثق في توزيع البرمجيات الخاص بي (Trisquel) في توزيع البرمجيات الحرة فقط، فإن هذا ليس مصدر قلق عادةً.

فقط للتوضيح، أنا لا أقول إن التخصيصات سيئة بالضرورة، بل إنها قد تكون سيئة إذا كانت غير حرة، لذا فإن طريقة للتأكد من تجنب تشغيل برمجيات غير حرة هي تعطيل التخصيصات.

أعتقد أن جميع البرمجيات يجب أن تكون حرة/مُحررة.

@Jagster @RGJ

فقط للتوضيح، أنا لا أحاول القول إن Discourse غير حر. الأمر يتعلق فقط بهذا التوزيع المحدد من Discourse (Discourse Meta) الذي يبدو أنه يتضمن برمجيات غير حرة.

@Jagster @merefield

كان ينبغي أن أذكر في منشوري السابق أن سببًا آخر جعلني أعتقد أن هذا التوزيع سيكون حرًا هو أن صفحة حول Discourse تقول “هناك نسخة واحدة فقط من Discourse – النسخة الرائعة مفتوحة المصدر.”. هذا صحيح تقنيًا مرة أخرى لأن الإضافات ليست جزءًا من Discourse، لكنها بدت مضللة بالنسبة لي.

قد لا يكون لدى Discourse سيطرة على توزيعات الطرف الثالث، لكنني كنت أتوقع أن تكون نسخ Discourse المستضافة بواسطة Discourse برمجيات حرة إذا كانوا يقولون ما يقولونه على صفحة “حول”. ربما كنت أتوقع أيضًا ترخيصًا و/أو إطار عمل سيُلزم فعليًا المشتقات بأن تكون برمجيات حرة، وهو ما يوجد نوع منه، حيث إن Discourse مرخصة بـ GPL، لكنني أعتقد أنها لا تغطي الإضافات.

@merefield @NateDhaliwal

أعتقد أن فرض رسوم مالية على البرمجيات أو الخدمات أمر مقبول؛ عادةً ما تعني كلمة “حرة” في “البرمجيات الحرة” “مُحررة”، أي أنك حر في فعل ما تريد بها (نسخها، تعديلها، إلخ)، بعد حصولك عليها. لا تعني بالضرورة أنها “مجانية” بمعنى “بدون تكلفة”.

@NateDhaliwal

من الناحية الصارمة، نعم، لا يوجد أحد يمنعني، لكن سيكون ذلك غير قانوني، وهو أمر سيء. قد ينجح هذا للاستخدام الخاص، لكن بشكل عام لا ترغب مستودعات البرمجيات العامة ومتاجر التطبيقات في تضمين أكواد غير قانونية، وقد يشعر بعض الأشخاص الذين قد أريد استخدام البرمجيات معهم بعدم الراحة لتشغيل أكواد منسوخة بشكل غير قانوني. لست متأكدًا مما إذا كانت لدي النهج الصحيح؛ ربما يجب أن أتجاهل حقوق النشر تمامًا، لكن يبدو أن هذا ليس الخيار الأفضل عندما يكون من الممكن تجنب البرمجيات غير القانونية وغير الحرة.

لا تقلق! :slight_smile: لا أعتقد أنك وقح، ولا أشعر بعد أننا ندور في حلقة مفرغة.

@RGJ

ماذا تقصد بهذا؟ إذا كانت البرمجيات حرة، فهذا يعني أنه يمكنني تعديلها؛ وبالتالي فإن لدي سيطرة على ما تفعله.

لا أعتقد أن “حر” هو نفسه “موثوق”؛ ربما كان ينبغي أن أقول “عشوائي” بدلاً من “غير موثوق”، لكن نقطتي كانت أن معظم المتصفحات ستنفذ أي كود تمنحه إياه صفحة ويب، وبما أنني أزور غالبًا مواقع ويب لم أزرها من قبل، فإن العديد من المواقع التي أزورها “غير موثوقة”. بالنسبة لهذه المواقع، ليس لدي سبب للاعتقاد بأنها لن ترسل برمجيات غير حرة.

بخصوص NPM، أعتبرها أكثر موثوقية من موقع عشوائي، لكن ربما ليست موثوقة مثل مستودعات apt أو guix الخاصة بي. ومع ذلك، فإن الثقة ليست ذات بعد واحد؛ على الرغم من أنني لن أثق في حزمة جديدة على NPM لمجرد أنها على NPM، إلا أنني سأثق في أنني عند تنزيل JQuery من NPM، فهو حقًا JQuery. قد ترتكب NPM أخطاء تسمح لمهاجم باستبدال JQuery، لكن NPM يمكنها اتخاذ تدابير لتجنب البرامج الضارة لن تكون واقعية بنفس القدر بالنسبة لـ JavaScript الذي يقدمه الموقع (مثل المراجعة الآلية/اليدوية قبل النشر، والمراجعة الجماعية بعد النشر، والفحص الآلي للتأكد من تطابق الأكواد المصغرة/المشوشة مع الكود المصدري، وقواعد ضد تنزيل وتشغيل أكواد عشوائية أثناء وقت التشغيل). والأهم من ذلك، عند اكتشاف برامج ضارة على NPM، هناك طرف ثالث (NPM، وليس مطور البرمجيات) للإبلاغ عنه حتى يمكن إزالته. هذا ليس هو الحال بالنسبة لـ JavaScript الذي يقدمه الموقع - الوحيد القادر على إزالته هو مشغل الموقع.

هل يعني ذلك أن تجزئة الالتزام المذكورة ستكون غير صحيحة إذا قام مدير الخادم بإجراء تعديلات ولم يغير أيضًا تجزئة الالتزام المذكورة؟ كنت أعتقد أن تحديث البرمجيات سيغير تجزئة الالتزام تلقائيًا، وأنا (خطأً؟) افترضت أن تجزئة الالتزام المذكورة سيتم تحديثها تلقائيًا.

هل سيتم تعطيل JavaScript المحقون بواسطة الإضافة باستخدام safe_mode=no_themes,no_unofficial_plugins؟

إذًا، هل ستكون الطريقة الوحيدة لتجنب البرمجيات غير الحرة أثناء استخدام Discourse هي حزمة عميل Discourse كإضافة للمتصفح أو حزمة Haketilo أو شيء مشابه؟

لست متأكدًا مما تقصده بذلك بالنظر إلى أن سؤالي الأصلي يتعلق بحرية البرمجيات، وليس الثقة.

أنا لا أتفق على أن كل شخص ذكرته يجب الوثوق به.

  • لن يكون هناك حاجة للثقة بمديري الخادم إذا لم تشغل برمجيات يقدمونها، على سبيل المثال إذا حصلت على عميل Discourse من GitHub وقمت بحزمته بحيث يمكن استخدامه مع هذا الخادم.
  • في كثير من الحالات، قد يقرأ الأشخاص الذين يتعاونون في البرمجيات بعض التزامات بعضهم البعض، لذا لا أحتاج إلى الثقة بجميع المؤلفين بشكل فردي.

إذًا هذا سيعني أن عميل Discourse Meta برمجيات احتكارية، أليس كذلك؟ على الرغم من أنه من الممكن استخدام الوضع الآمن لتعطيل JavaScript الخاص بالإضافة.

ربما، لكن هذا ليس مفيدًا جدًا إذا كنت أرغب في تجنب البرمجيات غير الحرة.

@NateDhaliwal
لقد قرأت الترخيص في مستودع Git الخاص بـ Discourse، لكن (بسبب اتفاقي ترخيص المساهم) لا ينطبق بالضرورة على مشتقات Discourse خارج ذلك المستودع. أود أن أرى إشعارًا على كل توزيع من توزيعات Discourse يوضح أي من البرمجيات الموزعة حرة. سيكون ذلك (في رأيي) يتماشى مع روح GPL: “يجب أن تُظهر لهم هذه الشروط حتى يعرفوا حقوقهم”.

@Mevo

نعم، من الممكن تشغيل JavaScript من إضافة للمتصفح أو وكيل، مثل Haketilo أو GreaseMonkey، على الرغم من أن هذا قد يكون غير عملي للغاية لبعض البرمجيات، على سبيل المثال إذا كانت تتحدث كثيرًا، كما هو الحال مع البرمجيات حيث تكون البيانات مدمجة في برمجيات JavaScript. كما أن Haketilo لا يدعم بعض أنواع السكريبتات، على سبيل المثال السكريبتات ذات النوع “module”.

نعم، أعتقد أن فهمك صحيح بشكل عام. على الرغم من أن حزم JavaScript كإضافة للمتصفح أو لـ Haketilo أو GreaseMonkey ستؤدي فعليًا إلى عميل مثبت مستقل، حتى لو كان يستخدم JavaScript.

@HAWK

أظن أنك تقصد “كل شيء” بمعنى “كل شيء جزء من Discourse”، بمعنى عدم تضمين إضافات مثل discourse-customer-flair-plugin؟

كل شيء جزء من المنتج الأساسي الذي نستضيفه (بما في ذلك Meta)، باستثناء ما أشرت إليه أعلاه، مجاني ومفتوح المصدر.

بعض الإضافات تعتمد على منصات مملوكة لتشغيلها، ولكن هذا لا علاقة له بما إذا كان ديسكورس مفتوح المصدر أم لا.

جميع مثيلات Discourse التي تستضيفها CDCK أو نحن (أنا المؤسس المشارك لشركة تستضيف Discourse) تعمل بواحد أو عدد قليل من الإضافات مغلقة المصدر لتوفير بعض الوظائف الخاصة ببيئة الاستضافة.

أعتقد أن هناك الكثير من الارتباك بين التوزيع بالمعنى القديم (هنا مستودع github ولا تتردد في فعل ما تريد) والتوزيع بالمعنى الحديث (هنا موقع ويب ويقوم بإرسال Javascript إلى متصفحك). بالإضافة إلى ذلك، هناك ارتباك بين Discourse https://github.com/discourse/discourse و Discourse وجميع الإضافات والمكونات الثيمية الخاصة به والمكونات الإضافية من طرف ثالث التي يضيفها مسؤولو الموقع.

إنها تجزئة التزام، لذلك إذا تم إجراء تعديلات بعد سحبها من المستودع وقبل الالتزام بها، فلديك بالفعل مثل هذا الموقف. لا يلزم أن يكون هذا عملاً خبيثًا، وسيحدث أيضًا إذا تم تطبيق تصحيحات الأمان (والتي تتم عادةً قبل الالتزام بها في فرع عام). الآن بشكل عام، تصحيحات الأمان ليست من جانب العميل ولكنها قد تقدم بعض التعليمات البرمجية المحدثة من جانب العميل.

نعم - على الأقل من الناحية النظرية. لست متأكدًا من مدى صعوبة التحايل على ذلك (عن قصد أو عن طريق الخطأ)

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

ستكون طريقة، لست متأكدًا مما إذا كانت هي الطريقة الوحيدة. إذا قمت بذلك، فستحتاج إلى تحديثه على أساس شبه يومي لتجنب كسر الأشياء.

على الرغم من أن هذا الموضوع بأكمله هو نقاش قانوني مثير للاهتمام، إلا أن كل شيء يبدو منفصلاً قليلاً عن الواقع.

@HAWK

هل هناك مستودع منفصل بترخيص للإضافات لم أجده سابقًا، مثل discourse-customer-flair-plugin؟ يتم تقديم JavaScript إلى المتصفح برابط إلى خريطة مصدر ولكن لا يوجد ترخيص على حد علمي.

فهمي لـ “كود الاستضافة/البنية التحتية” لن يشمل JavaScript من جانب العميل؛ هل هذا صحيح؟

@RGJ

أتفق. أعتقد أنني مرتبك بشأن ما ينطبق عليه مصطلح “Discourse”.

آه، حسنًا، لذا أعتقد أنه لن تكون هناك طريقة جيدة لمعرفة ذلك.

نقطة جيدة، يمكن لشخص ما محاولة إخفاء عيب كهذا. ولكن يبدو من الأسهل تخفيف هذه المشكلة عن طريق تدقيق التعليمات البرمجية للجهات الخارجية بدلاً من الثقة بكل شخص قام بتعديل التعليمات البرمجية في المنبع، على الرغم من أنه من المحتمل أن لا يكون أي من النهجين عمليًا تمامًا.

نعم، على الرغم من أنه من الممكن أن يتم التعامل مع معظم التحديثات تلقائيًا.

أفترض أن هذا صحيح إلى حد كبير في هذه الحالة.

للعلم فقط، @JacobK1: بما أن Discourse تم إنجازه بشكل جيد، فلا داعي لذكر شخص ما عند اقتباس ذلك الشخص. الاقتباس نفسه سيولد إشعارًا :+1: (كان ذلك أيضًا لإنشاء أقسام فرعية، بالتأكيد :pray: )