مفهوم – مفتوح المصدر Open source هي صفة أو خاصية يتم اطلاقها على برنامج، أو لغة برمجة، أو نظام تشغيل، يوفر مالكها أو مخترعها الأكواد الأساسية والمصدر الأصلي والخوارزميات الخاصة بها، وذلك من أجل إعادة البرمجة والتعديل، وإعادة التوزيع والمشاركة وفقاً لمتطلبات كل مستخدم.
مفتوح المصدر Open Source المعترف به دوليًا عشرة معايير أساسية، يجب انطباق هذه المعايير العشرة على أي ترخيص برنامج أو لغة برمجة ليتم تسميته بإسم برنامج مفتوح المصدر Open Source Software.
يجب أن يكون البرنامج المرخص تحت ترخيص Open Source، معتمداً ومتوافقاً مع مبادرة المصدر المفتوح لتعزيز وحماية البرامج والمشروعات والمجتمعات المفتوحة المصدر (Open Source Initiative (OSI.
شروط مفتوح المصدر Open source
وهذه هي الشروط العشرة لمنح رخصة برنامج مفتوح المصدر:
1- إعادة توزيع مجاني Free Redistribution
يمكن لأي طرف بيع أو توزيع البرنامج مفتوح المصدر، ويمكن لأي شخص أو مؤسسة بيع البرنامج كجزء بين مجموعة برامج أخرى، ولا يتطلب دفع أية رسوم مقابل هذا البيع.
2- كود المصدر Source Code
يجب أن يشتمل البرنامج أو لغة البرمجة على كود المصدر Source Code، ويجب أن يكون كود المصدر متاحاً للجميع. و في الحالات التي لا يتم فيها توزيع البرنامج مع كود المصدر، يجب أن تكون هناك وسيلة معروفة جيداً للحصول على الكود المصدري، ويجب أن تكون تكلفة النسخ بسعر معقول، ويفضل أن يكون تنزيلها عبر الإنترنت دون مقابل.
3- الأعمال المشتقة Derived Works
يُسمح بإجراء تعديلات وأعمال مشتقة على كود المصدر، لإنتاج برامج جديدة فرعية، ويجب أن يُسمح بتوزيعها بموجب نفس شروط ترخيص البرنامج الأصلي.
اقرأ ايضًا:
- برامج خطيرة يجب حذفها من الكمبيوتر
- كل ما تريد معرفته عن فلاتر Flutter
- كل ما تحتاج معرفته عن أي بي تي في iptv
4- سلامة كود المصدر للمؤلف Integrity of The Author’s Source Code
يجوز تقييد توزيع كود المصدر في شكل معدل فقط، وذلك إذا كان الترخيص يسمح بتوزيع ملفات التصحيح Patch Files مع كود المصدر، لغرض تعديل البرنامج أثناء إعادة البرمجة. يجب أن يسمح الترخيص صراحة بتوزيع البرامج المدمجة من كود المصدر المعدل، و قد يتطلب الترخيص أعمالًا مشتقة لحمل اسم أو رقم إصدار مختلف من البرنامج الأصلي.
5- لا تمييز ضد أشخاص أو مجموعات بعينها No Discrimination Against Persons or Groups
يجب ألا يميز الترخيص ضد أي شخص أو مجموعة من الأشخاص، فكل من يقرر الحصول على الترخيص والعمل على تعديله ومشاركته ونشره سواسية، سواءً كان شخص واحد أو مجموعة من الأشخاص.
6- لا تمييز في الاستخدام ضد مجالات بعينها No Discrimination Against Fields of Endeavor
يجب ألا تُقيد الرخصة أي شخص من الإستفادة من البرنامج أو لغة البرمجة في مجال معين، ولكن الإستفادة منها متاحة في جميع المجالات بدون تمييز.
7- توزيع الرخصة Distribution of License
يجب أن تنطبق حقوق الترخيص الملحقة بالبرنامج أو لغة البرمجة على جميع الأشخاص الذين تتم إعادة توزيع البرنامج عليهم، دون الحاجة إلى تنفيذ ترخيص إضافي من قبل هؤلاء الأطراف.
اقرأ ايضًا:
- كل ما تحتاج معرفته عن أنظمة التشغيل مفتوحة المصدر
- الفرق بين لغات البرمجة C C++ C#
- الفرق بين أنواع الهارد NVMe SSD HDD
8- يجب ألا يكون الترخيص محدد بمنتج معين License Must Not Be Specific to a Product
يجب ألا تعتمد الحقوق المرتبطة بالبرنامج على كون البرنامج أو لغة البرمجة جزءًا من توزيع برنامج أخر، ففي حالة إستخراج البرنامج من هذا التوزيع و إستخدامه، أو توزيعه ضمن شروط ترخيص البرنامج المرتبط به.
يجب أن يكون لدى جميع الأطراف الذين تتم إعادة توزيع البرنامج لهم نفس الحقوق، مثل تلك التي يتم منحها بالتزامن مع توزيع البرامج الأصلي.
9- لا يجب أن يقيد الترخيص برامج أخرى License Must Not Restrict Other Software
يجب ألا تضع الرخصة قيودًا على البرامج الأخرى التي يتم توزيعها مع البرنامج المرخص، فعلى سبيل المثال يجب ألا يصر الترخيص على أن تكون جميع البرامج الأخرى الموزعة على نفس الوسائط برامج مفتوحة المصدر.
10- يجب أن يكون الترخيص محايداً License Must Be Technology-Neutral
لا يجوز أن يستند أي شرط من شروط الترخيص إلى أي تقنية فردية أو إستخدام واجهة مستخدم User Interface معينة، فيجب أن يعمل الترخيص تحت أي ظرف من الظروف بشكل طبيعي .