ما هي البرمجيات الحرة؟

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

هل لديك أي أسئلة عن ترخيص البرمجيات الحرة ولم تتوصل لإجابة لها؟ لا تتردد في الاطلاع على موارد الترخيص اﻷخرى أو للضرورة يمكنك الاتصال بمختبر الامتثال التابع لمؤسسة البرمجيات الحرة على العنوان licensing@fsf.org.

يقدم تعريف البرمجيات الحرة المعايير التي يجب أن يحققها برنامج معين حتى يتم اعتباره برنامجًا حرًا. نحن نراجع هذا التعريف من وقت لآخر لنوضّحه أو للإجابة عن أسئلة متعلقة بمشاكل غامضة. انظر قسم التاريخ أدناه للحصول على قائمة بالتغييرات التي أثّرت على تعريف البرمجيات الحرة.

“المصدر المفتوح Open Source” هي حركة أخرى مختلفة عن البرمجيات الحرة، ولها فلسفة أخرى مبنية على قيم أخرى. التعريف العملي للمصدر المفتوح مختلف كذلك عن البرامج الحرة، ومع ذلك فأغلب البرامج ذات المصدر المفتوح هي -في الحقيقة- حرة كذلك. لقد وضحنا الفرق في هذه المقالة: لم حركة المصدر المفتوح قد ابتعدت عن فكرة البرمجيات الحرة.

”البرمجيات الحرة Free Software“ هي البرمجيات التي تحترم حرية المستخدمين والمجتمع. بصورة تقريبية، يملك المستخدمون الحرية في تشغيل ونسخ وتوزيع ودراسة وتعديل وتحسين البرمجيات. بالتالي، ”Free software“ في اللغة الإنجليزية، تدل على الحرية، وليس السعر. لفهم الفكرة باللغة الإنجليزية، اعتبر ”free“ كما لو كانت في ”free speech“ وليس ”free beer“. أحياناً نستعمل المصطلح ”libre“ المأخوذ من الفرنسية أو الإسبانية بدلاً من الكلمة ”free“ للدلالة على أننا لا نعني أن البرنامج مجاني.

نحن نناصر هذه الحريات لأن الجميع يستحقها. مع هذه الحريات، يتحكم المستخدمون (سواء اﻷفراد أو المجموعات) بما يفعله البرنامج لهم. عندما ﻻ يتحكم المستخدمون بالبرنامج، يتحكم البرنامج بمستخدميه. يتحكم المطور بالبرنامج، ويتحكم بدوره بالمستخدمين من خلال هذا البرنامج. بالتالي، يصبح هذا البرنامج غير الحر أو ”الاحتكاري “ أداة تعطي المطور سلطة غير عادلة.

الحريات الأربع الأساسية

يكون البرنامج حرًا عندما يتمتع مستخدموه بالحريات اﻷربع الأساسية:

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

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

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

الباقي من هذه الصفحة يوضح بعض النقاط عما يجعل بعض الحريات مقبولة أم لا.

حرية أن تشغل البرنامج كما تشاء

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

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

حرية أن تدرس الشيفرة المصدرية وأن تعدل عليها

لجعل الحريتين 1 و3 (حرية إجراء تعديلات وحرية نشر نُسَخ معدلة) ساريتين، يجب أن تتمكن من الوصول إلى الشفرة المصدرية للبرنامج. ولذلك، فإن إتاحة الشفرة المصدرية للبرنامج شرط لازم للبرمجيات الحرة. ”الشفرة المصدرية“ المُعتّمة(1) ليست شفرة مصدرية حقيقية ولا تُعتبر كذلك.

تتضمن الحرية 1 حرية استخدام نسختك المعدلة بدلًا من النسخة الأصلية. إذا أتى البرنامج مع منتَج مُصمّم لتشغيل النسخ التي عدلها شخص آخر، لكنه يرفض تشغيل نسختك — ممارسة تُعرف باسم التيفزة(2) أو الحبس Lockdown أو (بحسب المصطلحات الفاسدة لممارسيها) ”الإقلاع الآمن Secure Boot“ — فإن الحرية 1 تصبح خيالًا نظريًا بدل أن تكون حرية حقيقية، وتلك الملفات التنفيذية ليست برمجيات حرة حتى لو كانت الشفرة المصدرية الذي تُرجمت منها حرة.

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

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

حرية توزع كما تشاء: متطلبات أساسية

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

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

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

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

الحقوق المتروكة Copyleft

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

في مشروع غنو، نستخدم الحقوق المتروكة Copyleft لحماية هذه الحريات قانونيًا للجميع. لكن البرمجيات الحرة غير متروكة الحقوق متوفرة أيضًا. نحن نؤمن بوجود أسباب مهمة تجعل استخدام الحقوق المتروكة أفضل، لكن إذا كان برنامجك حرًا غير متروك الحقوق Noncopylefted، فهو لا يزال أخلاقيًا في أساسه. انظر أنواع البرمجيات الحرة حتى تعرف العلاقة بين ”البرمجيات الحرة“، و”البرمجيات ذات الحقوق المتروكة“ والأنواع الأخرى من البرمجيات.

قواعد حول الحزم وتفاصيل التوزيع

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

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

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

أحكام التصدير

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

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

اعتبارات قانونية

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

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

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

التراخيص المبنية على العقود

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

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

استعمل الكلمات الصحيحة عند التحدث عن البرمجيات الحرة

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

كيف نترجم هذه المعايير

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

احصل على المساعدة مع الرخص الحرة

إذا كنت مهتمًا بمعرفة فيما إذا كانت إحدى الرخص مؤهلة لاعتبارها رخصة برمجيات حرة، راجع قائمة التراخيص الخاصة بنا. إذا كان الترخيص الذي تُعنى به غير موجود في القائمة، يمكنك سؤالنا عنه بمراسلتنا عبر البريد الإلكتروني <licensing@gnu.org>.

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

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

ما وراء البرمجيات

لنفس الأسباب التي تفرض حرية البرمجيات، ولأن الكتيبات جزء لا يتجزأ من البرمجيات، يجب أن تكون كتيبات البرمجيات حرة أيضًا.

نفس الحجة تنطبق أيضًا على أنواع أخرى من الأعمال ذات الاستخدامات العملية — بما في ذلك، الأعمال التي تجسد فائدة معرفية، مثل الأعمال التعليمية والأعمال المرجعية. ويكيبيديا هي أفضل مثال معروف.

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

المصدر المفتوح؟

بدأت مجموعة أخرى في استخدام المصطلح ”المصدر المفتوح Open Source“ للتعبير عن شيء مشابه (لكنه غير مطابق) ”للبرمجيات الحرة Free Software“. نحن نفضل مصطلح ”البرمجيات الحرة“ لأنه يقودك إلى التفكير بالحرية. كلمة ”مفتوح“ لا تشير إلى الحرية إطلاقًا.

التاريخ

نراجع تعريف البرمجيات الحرة هذا من وقت لآخر. نقدم هنا قائمة بالتعديلات، مع روابط لتوضيح ما عُدّل تحديدًا.

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

هوامش

  1. السبب الذي يفسر أن الحريات الأربعة تبدأ من الرقم 0 هو سبب تاريخي. في فترة 1990 كان هناك ثلاث حريات، رقم 1، 2 و3. ولكننا أدركنا أهمية ذكر حرية تشغيل البرنامج بشكل واضح. وهي أساسية أكثر من الثلاث الأخريات، لذا وضعت قبلهم. بدلاً من إعادة ترقيم الأخريات، جعلناها الحرية رقم 0.
ملاحظات المترجم:
  1. الشفرة المعتّمة Obfuscript هي الشفرة التي يتم تعقيدها عمدًا لجعل فهمها صعبًا، مثلاً بإزالة جميع المسافات البيضاء Whitespaces.
  2. التيفزة: (بالإنكليزية tivoization، وهي تلفظ: تيفو-يزايشن) كلمة مشتقة من الاسم (تيفو)، وهو منتج يعمل ببرمجيات مرخصة وفق GPLv2 لكنه ﻻ يقبل تشغيل النسخ المعدّلة (تم تصميم المنتج ليرفض النسخ المعدلة).