
رخصة GNU العامة العمومية (المعروفة اختصارًا بـ "GPL") هي واحدة من أشهر رخص البرمجيات مفتوحة المصدر. تشترط هذه الرخصة أنه عند استخدام الشيفرة أو تعديلها أو توزيعها، يجب أن تبقى الشيفرة المصدرية مفتوحة ومتاحة بموجب نفس شروط الرخصة. وتُعد GPL من أكثر الرخص تأثيرًا في منظومة البرمجيات مفتوحة المصدر.
رخصة البرمجيات مفتوحة المصدر تحدد الشروط التي يسمح فيها المؤلف للآخرين باستخدام وتعديل شيفرته—كما لو أنك تشارك وصفة وتسمح بتحسينها. تفرض GPL أن أي نسخة محسنة من "الوصفة" يجب أن تكون متاحة للجميع وتخضع لنفس القواعد. هذا الالتزام التبادلي يضمن استفادة المجتمع باستمرار من التحسينات الجديدة.
تعتمد GPL في جوهرها على مفهوم "حقوق النشر التبادلية" (copyleft)، والذي يعني أنه عند استخدامك أو تعديلك لشيفرة مفتوحة من الآخرين، يجب أن يكون أي توزيع لتعديلاتك أيضًا مفتوحًا، مع الاحتفاظ بإشعارات حقوق النشر الأصلية ونص الرخصة.
تشمل المبادئ الأساسية:
يستخدم نواة Linux رخصة GPL-2.0 منذ سنوات (حتى 2025)، ليكون من أبرز أمثلة تبني GPL.
تحدد GPL ما إذا كان يمكنك توزيع البرمجيات التي تعتمد على شيفرة مفتوحة المصدر بشكل مغلق المصدر، أو إذا كان يجب عليك فتح الشيفرة عند توزيع مشروعك. في Web3، قد تُطبق التزامات GPL على عملاء العقد (node clients)، المحافظ، الواجهات الأمامية، والعقود الذكية.
على سبيل المثال، إذا دمجت واجهتك الأمامية لـ dApp مكونًا مرخصًا تحت GPL ووزعت نسخة تنفيذية للمستخدمين، فقد يُطلب منك نشر الشيفرة المصدرية للواجهة الأمامية والاحتفاظ بجميع الإشعارات الأصلية. هذا يعزز الشفافية في التعاون، لكنه قد يقيّد نماذج الأعمال مغلقة المصدر.
على السلسلة، تعزز ممارسات المصدر المفتوح القابلية للتدقيق والأمان. العديد من الفرق تختار نشر الشيفرة الحيوية لبناء الثقة مع تقييم توافق الرخصة مع استراتيجية المنتج بعناية.
عادةً ما تُكتب العقود الذكية بلغة Solidity، مع تحديد الرخصة أعلى الملفات عبر معرف الرخصة SPDX (مثل "SPDX-License-Identifier: GPL-3.0-or-later"). تفرض متطلبات الترخيص التبادلي في GPL عدة اعتبارات للعقود الذكية:
أولاً، التوزيع: يُعتبر تجميع ونشر العقد على السلسلة توزيعًا عامًا في العادة. إذا تضمن عقدك أو عدّل شيفرة GPL، فقد يتطلب النشر العام فتح تعديلاتك. تحديد ما إذا كان ذلك توزيعًا يعتمد على السياق—ويُنصح بالتقييم أثناء مرحلة التصميم.
ثانيًا، الربط والاشتقاق: غالبًا ما يُعتبر وراثة العقد أو استدعاء المكتبات أعمالًا مشتقة. إذا ورثت من عقد مرخص تحت GPL، يجب أن يلتزم عقدك الموزع بنفس الرخصة.
ثالثًا، الممارسة الشائعة: العديد من الفرق تفضل رخصًا أكثر تسامحًا مثل MIT أو Apache للعقود الأساسية لتقليل الالتزامات. عند استخدام GPL، قدم الشيفرة المصدرية بالكامل، وإشعارات حقوق النشر، وتعليمات البناء في المستودع لتعزيز التدقيق وإعادة الاستخدام.
الاختلاف الأساسي بين GPL وMIT وApache هو قوة متطلبات الترخيص التبادلي.
الخلاصة: اختر GPL لتعظيم التعاون المفتوح ووجوب مشاركة التحسينات؛ اختر MIT أو Apache لمزيد من المرونة بين النماذج المفتوحة والمغلقة المصدر.
الخطوة 1: ضع ملف LICENSE (النص الكامل لرخصة GPL) في الدليل الجذري لمستودعك، واذكر تفاصيل الترخيص في ملف README.
الخطوة 2: أضف ترويسة معرف الرخصة SPDX (مثل "SPDX-License-Identifier: GPL-3.0-or-later") أعلى كل ملف مصدر ليتمكن نظام الأدوات من تحديد الرخصة.
الخطوة 3: احتفظ بإشعارات حقوق النشر والرخصة الأصلية؛ ووضح تعديلاتك الخاصة مع التاريخ والمؤلف وملخص التغيير.
الخطوة 4: وفر وسيلة للحصول على الشيفرة المصدرية لأي ملفات تنفيذية موزعة—مثلاً، نشر الشيفرة المصدرية، ونصوص البناء، وتوثيق التبعيات لضمان إمكانية إعادة البناء.
الخطوة 5: راجع تبعيات الطرف الثالث لتوافق الرخص؛ إذا لزم الأمر، استخدم LGPL (المناسب أكثر للمكتبات) بدلاً منها.
الخطوة 6: أجرِ مراجعة التزام قبل الإطلاق؛ واطلب استشارة قانونية إذا كان هناك استخدام تجاري لتقليل المخاطر.
الإصدارات الرئيسية هي v2 وv3:
"أو أحدث" مقابل "فقط": اختيار "GPL-3.0-or-later" يسمح بتبني الإصدارات المستقبلية لمزيد من المرونة؛ أما "فقط" فيثبت الإصدار لإدارة التوافق بشكل أفضل.
بالإضافة إلى ذلك، تهدف LGPL للمكتبات (تسمح بالربط وفق شروط أكثر تسامحًا)، بينما توسع AGPL التزامات المصدر المفتوح إلى البرمجيات المقدمة عبر الشبكة—ينبغي لخدمات Web3 الخلفية والتفاعلات الأمامية الانتباه إلى متطلبات AGPL.
نعم—تسمح GPL بالاستخدام التجاري. ومع ذلك، عند توزيع أعمال مشتقة تتضمن شيفرة GPL، يجب فتح شيفرتك المصدرية والاحتفاظ بجميع الإشعارات. تشمل استراتيجيات المؤسسات الشائعة:
تشمل المفاهيم الخاطئة الشائعة:
تشمل المخاطر انتهاك الحقوق ونزاعات الامتثال، ما قد يؤثر على التمويل أو الإدراج أو الشراكات. ينبغي للمشاريع التي تدير أموالًا أو أمان عقود إكمال تصميم الرخصة ومراجعة الشيفرة المصدرية مبكرًا.
إذا كان هدفك تعزيز التعاون المجتمعي، وضمان مساهمة التحسينات، والحفاظ على القابلية للتدقيق، فإن GPL خيار قوي. إذا كنت بحاجة لحرية أكبر للنماذج مغلقة المصدر أو الترخيص المزدوج، توفر MIT أو Apache مرونة أوسع. احرص على توحيد وتتبع الترخيص للعقود الذكية والواجهات الأمامية—أدرج ملفات LICENSE وترويسات SPDX في المستودعات وقياسيًا طرق توزيع الشيفرة المصدرية. انتبه لاختلاف الإصدارات وتوافق التبعيات وما إذا كان سيناريوك يشكل توزيعًا أو اشتقاقًا. أجرِ دائمًا مراجعات الامتثال واطلب استشارة قانونية قبل إطلاق مشروع تجاري. مع استراتيجية ترخيص واضحة، يمكنك تحقيق تعاون موثوق وامتثال تنظيمي في منظومة Web3.
نعم—لكن يجب عليك أيضًا نشر شيفرتك المشتقة كمصدر مفتوح. تعني خاصية "الانتشار" في GPL أنه إذا طورت منتجًا مبنيًا على شيفرة GPL وقمت ببيعه، يتعين عليك نشر الشيفرة المصدرية بموجب نفس شروط الرخصة. هذا الشرط الجوهري يجعله غير متوافق مع نماذج الأعمال مغلقة المصدر. إذا كان عملك يعتمد على إبقاء الشيفرة سرية، فكر في استخدام مكتبات مرخصة تحت Apache أو MIT بدلاً منها.
الخطر الرئيسي هو احتمال اتخاذ إجراء قانوني من المؤلفين الأصليين بسبب انتهاك حقوق النشر. رغم أن قانون العقود الذكية لا يزال قيد التطور، فقد أقرت المحاكم في العديد من الولايات القضائية بقابلية إنفاذ التزامات GPL—وقد يؤدي انتهاكها إلى تعويضات. بالإضافة لذلك، إذا كنت تسعى للتمويل أو الاستحواذ، قد يتردد المستثمرون بسبب مخاطر GPL المتوقعة. استعن بمستشار قانوني مبكرًا أو اختر رخصًا أقل تقييدًا لتقليل المخاطر.
هذا تعبير شائع لوصف تأثير "الانتشار" في GPL. بمجرد تضمين شيفرة GPL في مشروعك—حتى بشكل غير مباشر—قد يحتاج المشروع بأكمله للامتثال لشروط GPL (في بعض الحالات). بالنسبة للمطورين الذين يرغبون في إبقاء الشيفرة خاصة، يُنظر لهذا "الانفتاح الإجباري" وكأن المشروع "تلوث". هذا ليس عيبًا بل تصميم مقصود—لحماية مبادئ البرمجيات الحرة.
يعتمد ذلك على كيفية تفاعلك مع المكتبة وأي إصدار من GPL ينطبق. إذا كنت تستدعي الواجهات ديناميكيًا فقط (مثل استدعاءات الخدمة الخارجية)، غالبًا لا تحتاج إلى فتح مصدر مشروعك. لكن الربط الثابت أو تعديل واستخدام شيفرة GPL يتطلب نشر مصدر مشروعك تحت GPL. استشر محامي برمجيات مفتوحة المصدر لتوضيح ما يعتبر "عملاً مشتقًا" وتجنب الغموض القانوني.
يجب الالتزام بكلتا الرخصتين—وهذا قد يكون معقدًا. تفرض GPL فتح جميع الأعمال المشتقة؛ بينما تسمح MIT بالاستخدام مغلق المصدر—وهذه الشروط متعارضة. عمليًا، يجب أن يتبع مشروعك الرخصة "الأكثر تقييدًا" (GPL) لضمان التوافق. تجنب مزج الرخص متى أمكن أو افصل الوحدات بوضوح حسب نوع الرخصة لتقليل تحديات الامتثال.


