ترجمة مقال:License Compatibility and Relicensing – بقلم : ريتشارد ستولمن – منشور على موقعgnu.org
في حالة وجود خطأ بالترجمة أو إقتراحات بالتحسين، رجاء المراسلة.
إذا كنت تريد دمج برنامجين حُرّين في برنامج واحد، أو شيفرة برمجية من برنامج في آخر؛ فإن هذا يُثير تساؤل ما إذا كان ترخيصهما يسمح بتجميعهما.
لا يوجد مشكلة في دمج برامج لديها نفس الترخيص، إذا كان الترخيص يتعامل بسلوك عقلاني كما في كل التراخيص الحرة تقريبا.*
ماذا إذا كانت الترخيص مختلفة؟ بشكل عام يمكن أن نقول أن عدة تراخيص متوافقة؛ إذا كان هناك طريقة لدمج شيفرة برمجية خاضعة لهذه التراخيص المختلفة مع الامتثال لكل منهم. في الأغلب -وليس دائما- تكون النتيجة؛ برنامج به أجزاء مختلفة التراخيص المتوافقة. وجود مثل هذه القدرة على الدمج أو عدم وجودها هي سمة في مجموعة معينة من التراخيص، ولا تعتمد على الطريقة التي تُشير بها للتراخيص. كما تحكم مجموعة التراخيص؛ أيّ ترخيص هو المطلوب لبرنامج موحّد.
نُقسِّم التراخيص إلى ثلاث فئات:فضفاضة (أيضا “متساهلة” أو “يسيرة”)، ومتوسطة، ومتروكة. التراخيص الفضفاضة لا تفعل شيئا حيال وضع شيفرة برمجية داخل برمجيات احتكارية. ترخيص الحقوق المتروكة يمنع ذلك من خلال إلزام الجميع بإعادة استخدام البرنامج تحت نفس الترخيص. الرخصة المتوسطة تضع بعض الشروط لاضافة الشيفرة البرمجية في برامج احتكارية لكن لا تحاول الإحالة دون ذلك.
في العموم، التراخيص المتساهلة الفضفاضة ( BSDالمُعدّلة و X11 وExpat و أباتشي و بايثون..إلخ) تتوافق مع بعضهم؛ هذا يرجع إلى أن هذه التراخيص لا يتطلبوا شروطا أساسية لإضافة شيفرة إلى البرنامج. حتى أنهم يسمحوا بوضع البرنامج بأكمله (ربما مع تغييرات) في مُنتَج برمجي مُحتَكَر؛و بالتالي فإننا نطلق عليهم “ترخيص متساهلة” لأنهم لا يمكن أن يقولوا “لا” عندما يحاول مستخدم واحد حرمان الآخرين من الحرية.
عند دمج مجموعة من البرامج تحت تراخيص فضفاضة؛ فإن كل جزء يحمل الترخيص الذي جاء معه. عندما تُدمَج الشيفرة البرمجية إلى النقطة التي لا يمكن عندها التمييز بين الأجزاء بالشكل الكافي؛ فإن هذه الشيفرة البرمجية المدمجة يجب أن تحمل جميع تراخيص أجزائها. على أي حال، بما أن جميع التراخيص فضفاضة فإن هذا لا يسبب أي مشكلة عملية، باستثناء أن قائمة التراخيص تكون طويلة.**
على نفس المنوال، التراخيص الفضفاضة دائما ما تكون متوافقة مع أي ترخيص من تراخيص الحقوق المتروكة.في البرنامج المُدمج، الأجزاء التي جاءت تحت رخصة فضفاضة تظل تحملها، والبرنامج ككل يحمل ترخيص حقوق متروكة.ترخيص فضفاض واحد هو أباتشي 2.0 لديه بنود براءات اختراع تتنافى مع رخصة جنو العمومية الإصدار 2. وبما أني أعتقد أن بنود براءات الاختراع هذه جيدة، فقد جعلت رخصة جنو العمومية الإصدارة 3 متوافقة معها.
استثناء واحد هام هو رخصة BSD الأصلية، بسبب “شرط الدعاية البغيضة”.هذا الشرط يتطلب إشعار مُحدد في جميع أشكال الإعلان عن المنتج الذي يحتوي على شيفرة برمجية مُرخصة تحت رخصة BSD الأصلية. كان هذا وما يزال يتعارض مع رخص الحقوق المتروكة الحالية. أيضا كان جهد في رقبة كل توزيعة، كبرامج مكدسة متشابهة لكن مختلفة في متطلبات الإعلان. في نقطة واحدة توزيعة BSD تتطلب أكثر من 70 اشعار مختلف.
في المقام الأول أعتقد أن القضاء على هذه المشكلة تكون عن طريق إقناع العميد هال فاريان بالتفاهم مع جامعة كالفيورنيا في بريكلي لنشر “رخصة BSD المُعدّلة” (بدون شرط الإعلان) وإعادة إطلاق الشيفرة البرمجية لتوزيعة BSD بموجبها.في الوقت الراهن رخصة BSD الأصلية نادرا ما تستخدم – لحسن الحظ- لكن يجب علينا أن نظل حريصين على عدم التحدث عنها.
بشكل عام، رخصتين من رُخص الحقوق المتروكة حتما تتعارضان ما لم تكن لديهما أحكام توافق صريحة. هذا لا يعود إلى خطأ في التفاصيل؛ بل إن ذلك في في صلب فكرة الحقوق المتروكة. فكرة الحقوق المتروكة هي “الاصدارات المُعدّلة والموسعة يجب أن تكون تحت نفس الترخيص” إذا كانت الرخصة أ تقول إن البرامج الموسعة يجب أن تكون تحت رخصة أ، ورخصة ب تقول أن البرامج الموسعة يجب أن تكون تحت رخصة ب، في هذه الحالة فإن الرخصتين لديهما خلاف ولا يمكن التوافق فيما بينهما ؛ لأن رخصة البرنامج المُحّد يجب أن تكون أ ويجب أن تكون ب. لهذا السبب الاصدار 2 من رخصة جنو العمومية غير متوافقة مع الاصدار 3 من نفس الرخصة؛ ولا يمكن تجنب ذلك.وبالمثل، فإن شروط رخصة المشاع الإبداعي: النسبة، المشاركة على قدم المساواة، الإصدارة 4.0 تكون غير متفقة في صلبها مع الإصدارة 3.0 من نفس النسخة، ولا يمكن للكُتّاب تجنب ذلك.
هناك طريقتين لتذليل التعارض المُتأصل في الإصدارات الجديدة من الرخص متروكة الحقوق.
تستخدم مؤسسة البرمجيات الحرة نهج الطلب من الناس أن يصدروا البرامج تحت “رخصة جنو العمومية الإصدار N أو أي إصدار لاحق” هذا الترخيص متوافق مع الأصدار N وأيضا مع N+1 (لأنها توفر نسخة N+1كخيار). عند جمع شيفرة برمجية تحت “رخصة جنو العمومية الاصدار 3 أو إصدار أحدث” مع أخرى تحت “رخصة جنو العمومية الإصدار 2 أو إصدار أحدث” فإن رخصة الدمج تكون ” رخصة جنو العمومية الاصدار 3 أو الأحدث”
نأمل أن لا نكون في حاجة لتقديم نسخة رابعة من رخصة جنو العمومية، لكن لا يوجد شيء كامل، ونحن لا نفترض أننا توقعنا كل المشاكل. بإطلاق لشيفرتك البرمجية تحت رخصة جنو العمومية الإصدار 3 أو أحدث، فإنك تسمح لشيفرتك البرمجية للترقية إلى الإصدارة 4 من الرخصة إن كُنّا بحاجة لإيجاد واحدة أحدث.
أما النهج الآخر هو جعل كل نسخة من الرخصة تسمح صراحة بالترقية للإصدارات الأحدث. هذا ما تفعلة رخصة المشاع الإبداعي: على سبيل المثال، رخصة المشاع الإبداعي:النسبة، المشاركة على قدم المساواة، الاصدارة 4.0 (الإصدارة الحالية) تسمح صراحة لأي مستخدم للترقية إلى أحدث إصدارات منها. تستخدم مؤسسة موزيلا أيضا نفس هذا النهج.
رخصة جنو العمومية فقط تعطي المؤلفين خيار ما إذا كانوا يسمحوا بالترقية الإصدارات المستقبلية. عندما كتبت النسخة الأولى من رخصة جنو العمومية في عام 1989 فكرت في تضمين خيار ترقية الرخصة كما يوجد الآن في رخصة المشاع الإبداعي، لكن أعتقد أن الأصح أن يُعطى هذا الخيار لكل مؤلف، وعليه فإنه يمكن لملؤلف إصدار البرنامج إما تحت عنوان “رخصة جنو العمومية، الاصدار 1 فقط” أو “رخصة جنو العمومية الإصدار 1 أو أحدث”.
منذ ذلك الحين، جاءني تشكيك في حكمة هذا القرار. برامج مثل لينكس والتي تسمح بإصدارة واحد من رخصة جنو العمومية وترفض ترقيات الرخصة؛*** تسبب عمليا عدم التوافق. ربما ينبغي لنا أن نُضمّن شرط الترقية في رخصة جنو العمومية الإصدار 4.0. ذلك إذا افترضنا أننا بحاجة لها أكثر من من أي وقت مضى.
بعض رُخَص الحقوق المتروكة التي تسمح بمجموعة الرخص المتداخلة متروكة الحقوق وتحتوي على بند إعادة الترخيص بشكل صريح، تُعطي الإذن لوضع الشيفرة البرمجية تحت رخصة أخرى متروكة الحقوق . على سبيل المثال رخصة سيسيل (CeCILL) تُعطي إذنا صريحا لإعادة ترخيص الشيفرة البرمجية لرخصة جنو العمومية الإصدارة 2.0 أو أحدث.إذا كان البرنامج ج تحت رخصة سيسيل وتريد أن تدمجه مع البرنامج د الذي يحمل رخصة جنو العمومية الاصدارة 3.0 أو أحدث، فإن رخصة سيسيل تقول أنه يمكنك أن تفعل ذلك و تضع الشيفرة البرمجية المُدمجة أو المُوحدة تحت رخصة جنو العمومية الإصدارة 3.0 أو أحدث.
إذن إعادة الترخيص الصريح لا يعني التوافق – مع أن إعادة ترخيص الشيفرة البرمجية يمكن أن يجعلها متوافقة مع شيفرة برمجية أخرى – ولا يعني التطابق. على سبيل المثال، رخصة سيسيل تُعطي إذنا صريحا بإعادة الترخيص إلى رخصة جنو العمومية لكن الأخيرة لا تسمح بالعكس. وبالتالي لا يمكن الجمع بين البرنامجين ج و د وتوزيع مزيج منهما تحت رخصة سيسيل، لأن هذا من شأنه مخالفة رخصة برنامج د. الطريق الوحيد المسموح به هو إطلاق البرنامج المُدمج تحت رخصة جنو العمومية.
وبالمثل، رخصة المشاع الإبداعي: النسبة، المشاركة على قدم المساواة، الإصدارة 4.0 تسمح صراحة بإعادة ترخيص النسخ المُعدلة إلى رخصة جنو العمومية الإصدار 3.0، لكن الأخيرة لا تُجيز إعادة الترخيص إلى رخصة المشاع الإبداعي: النسبة-المشاركة على قدم المساواة. لا ينبغى أبدا أن تُشكّل هذه القضية مشكلة للشيفرة البرمجية لبرنامج؛ لأن المشاع الإبداعي تقول أن رخصها لا تستخدم للشيفرات البرمجية، وتقول أن الرخصة التي تُستخدم للشيفرة البرمجية هي رخصة جنو العمومية.يمكن أن يتم هذا عبر إذن إعادة الترخيص الصريح لرخصة المشاع الإبداعي: النسبة-المشاركة على قدم المساواة.
للأسف، رخصة المشاع الإبداعي:النسبة-المشاركة على قدم المساواة، الإصدارة 4.0، لا تُجيز إعادة الترخيص للإصدارات المستقبلية من رخصة جنو العمومية. ما يجب عليك فعله عند إعادة ترخيص مواد تحت رخصة المشاع الإبداعي:النسبة-المشاركة على قدم المساواة، الإصدارة 4.0 إلى رخصة جنو العمومية هو تحديد نفسك كمُمثل نسخة الترخيص لتشير إلى إمكانية استخدام الإصدارات المستقبلية من رخصة جنو العمومية لترخيص هذه المواد.في يوم ما إذا كان هناك الإصدار 4.0 من رخصة جنو العمومية وقررت المشاع الإبداعي السماح بإعادة الترخيص من رخصة المشاع الإبداعي:النسبة-المشاركة على قدم المساواة إلى رخصة جنو العمومية،الإصدارة 4.0، ستكون قادرا على السماح باستخدام هذه المواد المُعاد ترخيصها تحت رخصة جنو العمومية الاصدار 4.0 بأثر رجعي.(بدلا من ذلك، يمكنك أن تطلب من مؤلفي تلك المواد إعطاء إذنا الآن)
رخصة جنو العمومية و رخصة أفيرو العمومية هما رخصتان مختلفتان للحقوق المتروكة، لذا من الطبيعي أن يكونا غير متوافقتين.أنشانا نوعا خاصا من التوافق الصريح بينهما: يمكنك تضمين شيفرة مصدرية مُرخصة برخصة جنو العمومية الإصدار 3.0 مع شيفرة مصدرية أخرى مُرخصة برخصة أفيرو العمومية في برنامج مشترك واحد.هذا مسموح به لأن كلا الترخيصين يقول ذلك صراحة، والنتيجة تكون أن رخصة أفيرو العمومية تُطبّق على البرنامج المشترك. مع ذلك، أنت لا تستطيع ببساطة إعادة الترخيص من رخصة جنو العمومية (سواء كان مع شرط الترقية لإصدارات أحدث أم لا) إلى رخصة أفيرو العمومية أو العكس؛ لأن أي من هذين الرخصتين لا يُعطي الإذن بذلك.لاحظ أيضا أن رخصة أفيرو العمومية الإصدارة 3.0 ليست “إصدارة أحدث” من رخصة جنو العمومية، لأن أفيرو العمومية و جنو العمومية هما سلسلة مختلفة من التراخيص.
رخصة جنو العمومية الصغرى، الإصدارة 3.0، هي في الحقيقة رخصة جنو العمومية الإصدارة 3.0 مٌضاف إليها بعض الأذونات الإضافية. رخصة جنو العمومية، الإصدار 3.0 (الجزء 7) تقول أنه يمكنك دائما إزالة الأذونات المُضافة، وبفعلك ذلك سيكون لديك نفس الشيفرة المصدرية تحت رخصة جنو العمومية، الاصدار 3.0 الاعتيادية .إذا كان هناك برنامج يُسمح باستخدامه تحت رخصة جنو العمومية الإصدار 3.0 أو أحدث، فإنه يمكنك أن تُعيد ترخيصه إلى رخصة جنو العمومية الصغرى الإصدار 3.0 أو أحدث. لأي إصدارة مستقبلية من رخصة جنو العمومية الإصدار N (N>3). سنقوم بعمل نسخة من رخصة جنو العمومية، الإصدارةN التي ستحتوي على نسخة جنو العمومية مضاف إليها بعض الأذونات.
أما بالنسبة لرخصة جنو العمومية الصغرى الإصدار 2.1،فهي تسمح صراحة بإعادة الترخيص لرخصة جنو العمومية الإصدار 2.0 أو أحدث.
الرخص المتوسطة هي تلك التي لديها متطلبات موضوعية بشأن إعادة التوزيع، لكنها ليست رخص حقوق متروكة. وتشمل الأمثلة على ذلك رخصة إكليبس العمومية و رخصة جنو العمومية. الرخص المتوسطة تميل إلى أن تكون غير متوافقة مع أي من رخص الحقوق المتروكة لأن متطلباتهم لا تُجيز البرامج المُدمجة لتكون تحت رخصة للحقوق المتروكة. رخصة موزيلا العمومية تُجيز إعادة الترخيص لرخصة جنو العمومية إلا عندما تمنع الشيفرة البرمجية هذا الإذن صراحة.
وأخيرا، ماذا عن التصريح المزدوج؟ **** التصريح المزدوج هو انفصال: هذا يعني أن نفس البرنامج يحمل ترخيصين مختلفا أو أكثر. على سبيل المثال النسخ القديمة من بيريل تحمل ترخيص مزدوج: انفصال الترخيص الفني ورخصة جنو العمومية. هذا يعني أن كل مستخدم يمكن أن يختار استخدام وإعادة توزيع بيريل بموجب ترخيص أو الآخر، أو بموجب الترخيصين في انفصال مثلما أصدرت بيرل نفسها. الانفصال متوافق مع مجموعة من التراخيص الأخرى إن وجد واحد من التراخيص المنفصلة متوافقا مع المجموعة.
عند اختيارك لرخصة لشيفرتك البرمجية، من فضلك إختر رخصة جنو العمومية، الإصدار 3 أو أحدث، أو أحد الرخص المتوافقة مع ذلك. هذه هي الطريقة التي تجعل الشيفرة البرمجية يمكن جمعها مع أغلب قوانين البرمجيات الحرة، اختيار رخصة جنو العمومية أو رخصة جنو العمومية الصغرى، الإصدارة 3 أو أحدث، سيكون بمثابة الدفاع بقصارى الجهد عن حرية جميع المستخدمين من كافة إصدارات شيفرتك البرمجية.
****************
الهوامش
*الترخيص الرئيسي في الاستخدام الفعلي الذي لا يتعامل بسلوك عقلاني هو رخصة TeX: إذا كان برنامجين مرخصين برخصة على طريقة TeX، فإنه لن يكون هناك وسيلة مسموح بها لتوزيع نسخة مشتركة من هذين البرنامجين.
يسمح ترخيص teX بتوزيع نسخ معدلة فقط في شكل النسخة الأصلية بالإضافة إلى ملف التغيرات.إذا كان تم اصدار البرنامج أ و البرنامج ب بشكل منفصل، ثم تم دمجهما، فإن توزيع النسخة المشتركة من البرنامج كنسخة من برنامج أ مضاف إليها ملف تغيير هو انتهاك لرخصة البرنامج ب.وتوزيع هذا كبرنامج ب مضاف إليه ملف تغيرات هو انتهاك لترخيص البرنامج أ. وتوزيع هذا البرنامج بأي طريقة أخرى يعتبر انتهاك للترخيصين.
هذا ليس من قبيل المصادفة حيث أن TeX صدر في 1982: منذ ذلك الحين مجتمعنا تعلم كتابة تراخيص بتصرفات معقولة.
** عند توزيع في شكل شيفرة برمجية مصدرية، فإنه غالبا ما يكون كافيا ترك ملاحظات الترخيص في داخل الشيفرة المصدرية كما هي؛ متطلبات تنويه الترخيص الإضافية عادة ما تأتي فقط للتراخيص الفضفاضة عند توزيع الثنائيات بدون الشيفرة البرمجية المصدرية.
*** بالإضافة إلى ذلك، الإصدارة 2 من رخصة جنو العمومية ما زالت تسمح بجعل الثنائيات غير الحرة بوساطة العتاد الذي يرفض كل شيء باستثناء ثنائيات خاصة مُوقّعة، وما زالت الرخصة لا تسمع بتوزيع الثنائيات بالتورنت كما كانت قد نشرت في المرة الأولى. لقد أصلحنا هذه الأشياء وغيرها في الإصدارة 3، لكننا لا نستطيع تغيير ما بالاصدارة 2.
**** لسبب غير مفهوم يستخدم البعض مصطلح “الترخيص المزدوج” للإشارة استثناءات البيع، لكن ذلك استخدام سيئ للغة. اطلع على استثناءات البيع. لاحظ أنه إذا كانت التراخيص تباع كاستثناء يحتوي على أي شيفرة فإن هذا الإصدار ليس حرا، هذا لا يعد بيع الاستثناء لكنه برمجية غير حرة.