الدليل السريع نحو GPLv3

نشره Fahad في

بواسطة : بريت سميث ترجمة : بدري دركوش [ توجد نسخة PDF من هنا ] بعد سنة و نصف من المناقشات و الاستشارت العامة , آلاف التعليقات و أربع مسودات , النسخة الثالثة من رخصة جنِو العمومية (GPLv3 ) صدرت أخيراً بتاريخ 29 حزيران(يونيو). بينما كان هناك الكثير من النقاش حول الرخصة منذ ظهور أول مسودة لها , لم يتكلم كثير من الناس عن المزايا التي تقدمها للمطور. وضعنا هذا الدليل لملأ هذا الفرغ . سوف نبدأ بتذكير سريع لكل من : البرمجيات الحرة , حقوق النسخ الحرة (1) (copyleft ) , و هدف رخصة جِنو العمومية (GPL ) , وبعد ذلك سوف نستعرض التغيرات الأٍساسية لنرى كيف سوف تساعد هذه التغيرات في تقدم هذه الأهداف و تطور المزايا. مبادئ و أساسيات GPL : لا يجب على البرمجيات أن تقيد حرية المستخدم , هنالك أربع حريات يجب أن يحصل عليها كل المستخدمين :

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

. عندما يحقق برنامج ما كل هذه الحريات للمستخدمين ندعوه بالبرنامج الحر ( free software ) . المطورون و المبرمجون الذين يكتبون البرامج يطلقونها تحت بنود الرخصة العمومية لجِنو , عندما يقومون بذلك سوف تصبح برمجيات حرة و سوف تبقى برمجيات حرة , مهما يكن من يعدل أو ينشر هذه البرمجيات , نحن ندعو ذلك حقوق النسخ الحرة (1) (copyleft ) :أي البرمجيات لها حقوق نسخ أي (copyright ) و لكن عوضاً عن استخدام هذه الحقوق لتقييد المستخدمين - كما تفعل البرمجيات المملوكة – نحن نستخدم هذه الحقوق لنتأكد أن كل المستخدمين يملكون الحرية . لقد قمنا بتحديث الرخصة العمومية لحماية حقوق النسخ الحرة من التلاعب و التجاوز من قبل القانون أو التطورات التقنية , النسخة الأخيرة تحمي المستخدمين من ثلاثة تهديدات حديثة هي :

  • تيفوزيشن (2) ( Tivoization ) : بعض الشركات صنعت العديد من التجهيزات المختلفة و التي تستخدم برمجيات محمية برخصة جِنو العامة , وبعد ذلك أعدت هذه التجهيزات لكي تقوم بتعديل البرمجيات التي تشغلها ,لكن أنت لا تستطيع ذلك . إذا كان الجهاز يستطيع أن يشغل برمجيات تحكمية – على كمبيوتر متعدد الاستخدامات – و المالك يجب عليه أن يتحكم بما يقوم به (الكمبيوتر ) , عندما يعترضه هذا الجهاز من القيام بذلك , هذا ما ندعوه بـ تيفوزيشن (2) ( tivoization ) .
  • القوانين التي تحظر البرمجيات الحرة : التشريعات مثل قانون حقوق الحماية الرقمية الألفية (3) (Digital Millennium Copyright ) و تعليمات الاتحاد الأوروبي لحقوق الملكية تجعل من كتابة أو نشر برمجيات التي تتجاوز حماية الحقوق الرقمية(3) ( DRM ) جريمة . هذه القوانين يجب أن لا تتداخل مع الحقوق التي تمنحك إيها الرخصة العمومية ( GPL ).
  • صفقات الامتياز المنحازة (4): بدأت مايكروسوفت حديثاً بإخبار الناس بأنهم لن يقاضوا مستخدمي البرمجيات الحرة لنتهاكهم براءة الاختراع (الامتياز ) طالما يحصلون عليها – أي البرمجيات الحرة – من مزودين يقومون بالدفع لمايكروسوفت من أجل الامتياز . في النهاية ,تحاول مايكروسوفت الحصول على عائدات من استخدام البرمجيات الحرة , و هذا ما يتعارض مع حرية المستخدم , يجب ان لا تمنح أي شركة إمكانية القيام بذلك

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

تحييد القوانين التي تحظر البرمجيات الحرة – ولكن ليس حظر DRM : من المحتمل أن تكون متآلفاً مع إدارة القيود الرقمية (5) (DRM ) على أقرص DVD و الوسائط الأخرى , و من المحتمل أيضاً أن تكون معتاداً على القانون الذي يجعل من كتابة أدواتك الخاصة لتجاوز هذه القيود أمراً غير قانونياً , مثل قانون الحماية الرقمية الألفية (3) و تعليمات الاتحاد الأوروبي لحقوق الملكية . يجب أن لا يمنعك أي أحد من كتابة أي كود تريد كتابته , GLPv3 تحمي هذا الحق من أجلك . من الممكن دائماً كتابة كود محمي برخصة GPL يحقق إدارة القيود الرقمية(5) ( DRM ) , ولكن إن قام أحدهم بذلك مع كود محمي بالرخصة GLPv3 – يقول البند الثالث : أن النظام لن يعتبر ذلك مقياس حماية تقني فعّال , هذا يعني إذا قمت بكسر حماية (5) ( DRM ) ستكون حراً في توزيع البرمجيات التي تقوم بذلك و لن تكون مهدداً بقوانين مثل(3) DMCA أو غيرها. كالمعتاد ..رخصة جنو العمومية لا تقيد مع يفعله الناس في برمجياتهم , ولكن تقوم بمنعهم من تقييد الآخرين فقط.

حماية حقوقك من المدعين (6) : تيفوزيشن (2) : هي محاولة خطيرة لاختصار حرية المستخدم , حقك في تعديل البرمجيات سيصبح بلا معنى إذا كان أجهزة الكمبيوتر خاصتك تمنعك من القيام بذلك. GLPv3 تمنع التيفوزشن (2) عن طريق الفرض على الموزع أن يزودك بما تحتاجه من معلومات أو بيانات ضرورية لتصيب البرمجيات المعدلة على الجهاز , و التي قد تكون ببساطة مجموعة من التعليمات أو التوجيهات , أو قد تتضمن بيانات خاصة مثل مفاتيح مشفرة ( Cryptographic Keys ) , أو معلومات حول تجاوز الفحص النظامي للجهاز . هذا يعتمد على طريقة تصميم هذا الجهاز , و لكن مهما كانت المعلومات التي تحتاجها يجب أن تستطيع الحصول عليها . هذه الإمكانيات مازالت في هذا النطاق , ولايزال الموزعون مسموح لهم وضع مفاتيح مشفرة لأي غرض كان , وسيفرض عليهم كشف المفتاح فقط إذا أردت تعديل البرمجيات المحمية بالرخصة العمومية على الجهاز الذي أعطوك إياه , مشروع جِنو يستخدم GnuPG لتحسين التكاملية بين كل البرمجيات على موقعه لتبادل الملفات ( FTP site ) , ومقاييس مثل ذلك تكون ذات منفعة للمستخدمين . GLPv3 لا تمنع الناس من استخدام التشفير – لا نريدها أن تفعل ذلك – ولكنها تمنع الناس من أخذ التي أعطتهم إياها الرخصة بعيداً , إن كان عن طريق الامتياز أو التقنية أو أي معنى آخر.

حماية قوية ضد تهديدات الامتياز ( براءة الاختراع) : خلال 17 عاماً و منذ نشر GLPv2 ...تغيرت رؤية امتيازات البرمجيات بشكل معتبر , طورت رخص البرمجيات الحرة استراتيجيات جديدة حتى تخاطبها , تقوم GLPv3 بعكس هذه التغييرات أيضاً . كلما قام شخص بنفل برمجيات محمية برخصة GLPv3 – و التي قام بكتابتها أو تعديلها – يجب عليه أن يزودكل متلقي لها (أي الرمجيات) أية رخصة امتياز ضرورية لاستعمال الحقوق التي تمنحها إياه الرخصة العمومية GPL , أمتيازهم سوف يصبح منتهي. ذلك يعني للمستخدمين و المطورين أنهم سوف يتمكنون من العمل مع البرمجيات المغطاة برخصة GLPv3 بدون القلق من مساهم يائس ما سوف يحاول محاكمتهم من أجل انتهاك الامتياز آجلاً. مع هذه التغييرات ... GLPv3 توفر للمستخدمين المزيد من الدفاعات ضد تعديات الإمتياز أكثر من أي رخصة برمجيات حرة أخرى.

إيضاح الإنسجام بين التراخيص : إذا و جدت كوداً ما و أردت دمجه مع مشروع محمي برخصة جِنو العمومية (GPL ) , تقول رخصة ( GLPv2) : أنه يجب على الرخصة الأخرى أن لا تحمل أية قيود موجودة سابقاً في رخصة GLPv2 ,طالما حققت هذه القضية قلنا أن الرخصة متوافقة مع رخصة جِنو العمومية( GPL ). على أي حال ...بعض الرخص كانت لديها متطلبات غير مُقيدِة لإنه كان من السهل الموافقة عليها . على سبيل المثال : بعض الرخص تقول لا تمنحك الحق باستخدام بعض العلامات المسجلة (trademark ) المحددة , و ذلك لم يكن تقييداً إضافياً حقيقياً . إذا كانت العبارة غير موجودة مازلت لا تملك الحق باستخدام العلامة التجارية المسجلة , ولا طالم قلنا أن هذه التراخيص متوافقة مع رخصة GLPv2 أيضاً. الآن ... GLPv3 تعطي بوضوح الحق للجميع باستخدام كود يستخدم هكذا متطلبات , هذه البنود الجديدة يجب أن تساعد على إيضاح سوء الفهم حول الرخص المتوافقة مع رخصة جِنو العمومية , لماذا كل هذا و ما الذي يمكن عمله مع كود متوافق مع رخصة جِنو العمومية ( GPL ) .

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

quick-guide-gplv3-compatibility.png

الأسهم التي تشير من ترخيص إلى آخر تدلّ على أن الترخيص الأول متوافق مع الترخيص الثاني , هذا صحيح إذا تبعت عدة أسهم لتصل من ترخيص إلى آخر . أي على سبيل المثال ....رخصة ISC متوافقة مع GPLv3 , و كذلك GPLv2 متوافقة مع GPLv3 إذا كان البرنامج يسمح بالاختيار لـ " أو أي إصدار أحدث" كما تنص رخصة جِنو العمومية ,و هو ما يحصل في أغلب البرمجيات التي تطلق تحت هذه الرخصة (GPLv2 ) . هذا الشكل غير شامل ( انظر إلى صفحة الترخيص لدينا للحصول على لائحة كاملة للتراخيص المتوافقة مع GPLv2 و GPLv3 ) , ولكن يظهر بوضوح أن GPLv3 متوافقة مع كل ما هو متوافق مع GPLv2 ...و أكثر من ذلك أيضاً . جِنو أفيرو ( GNU Affero GPL verison3 ) : أصبحت جزءاً التجمع , إن رخصة Affero GPL الأصلية صممت لتضمن أن كل مستخدمين لتطبيق الويب سوف يملكون إمكانية الحصول على المصدر , إذاً GNU Affero GPLv3 توسع هذا الهدف : إنها قابلة للتطبيق على كل برمجيات الشبكة التفاعلية , لذلك سوف تعمل جيداً من أجل برامج مثل مخدمات الألعاب . التدبير الاحتياطي الإضافي أكثر مرونة أيضاًَ , وذلك إذا استخدم شخص ما مصدراً محمياً بــ ( AGPL ) في تطبيق بدون واجهة شبكية فسوف يتوجب عليه أن يوفر هذا المصدر بنفس الطريقة التي تتطلبها رخصة جِنو العمومية , بجعل هاتان الرخصتان متوافقتان سوف يتمكن مطورو برمجيات الشبكة التفاعلية من تقوية حقوقهم للنسخ الحر ( Copyleft ) و بنفس الوقت يستطيعون البناء على المصدر القوي المحمي برخصة جِنو العمومية و المتوفر لديهم .

المزيد من الطرق للمطورين للتزويد بالمصدر : أحد المتطلبات الرئيسية لرخصة جِنو العمومية أنه عندما توزع كود تنفيذي للمستخدمين يجب عليك تزويدهم بطريقة للحصول على المصدر . رخصة GPLv3 تعطيك بعد الطرق للقيام بذلك , GPLv3 تحافظ على هذه الطرق مع بعض الإيضاحات و تقدم لك أيضاً طرق جديدة للتزويد بالمصدر عندما تنقل الكود التنفيذي عبر الشبكة . على سبيل المثال ...عندما تستضيف كود تنفيذي على مخدم ويب أو مخدم تبادل ملفات ( FTP site ) تستطيع ببساطة تزويد الزوار بكيفية الحصول المصدر عن طريق مخدم طرف ثالث . بفضل هذا الخيار الجديد سيصبح تلبية هذا المطلب أسهل لكثير من الموزعين الصغار و اللذين يقومون بتعديلات طفيفة فقط على البنية الكبيرة للمصدر , الترخيص الجديد يجعل من السهل أيضاً نقل الكود التنفيذي عن طريق البتتورنت ( BitTorrent ) , بدايةً الأشخاص اللذين يحمّلون (download ) أو ينشرون من التورنت معفيون من متطلبات الترخيص اللازم لنشر البرمجيات , عند ذلك أي كان من يبدأ التورنت يستطيع التزويد بالمصدر عن طريق إخبار مستخدمي تورنت الآخرين عن توفره على مخدم شبكة عام و ذلك بكل بساطة . هذه الخيارات الجديدة تساعد على إبقاء GPL في صف واحد مع معايير المجتمع الحر لتوفير المصدر بدون جعل ذلك صعباً على المستخدمين في الحصول عليه.

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

ترخيص عالمي : تتحدث GLPv2 عن "التوزيع"( distribution ) كثيراً - عندما تشارك البرنامج مع شخص آخر , أنت تقوم بتوزيعه . لم يتحدث الترخيص ابداً عن ماهية التوزيع لأن المصطلح مستعار من قانون الولايات المتحدة لحقوق النسخ . لقد توقعنا ان يبحث القضاة عن تعريفه هناك . و من ناحية ثانية و جدنا ان قوانين حماية حقوق النسخ في البلدان الأخرى تستخدم نفس الكلمة و لكن تعطيها معنى آخر . بسبب ذلك ..القاضي في مثل هذه البلاد قد يحلل GLPv2 بشكل مختلف عن القاضي في الولايات المتحدة . GLPv3 تستخدم المصطلح الجديد "ينقل" (convey ) و توفر تعريف لهذا المصطلح (convey) تحمل نفس المعنى الذي عنيناه بــ ( distribution) , و لكن الآن هو مشروح بشكل مباشر ضمن الترخيص, يجدر أن يكون المعنى سهل الفهم من قبل الناس اينما كانوا , هناك تعديلات صغيرة أخرى ضمن الترخيص تضمن تطبيقه بشكل متناغم على مستوى العالم أجمع.

عندما تتُجَاوز القواعد : سبيل هادئ للمطاوعة (7) تحت ترخيص GLPv2 .. إذا قمت بالإعتداء على الترخيص بطريقة ما , فسوف تخسر حقوقك بشكل أوتوماتيكي و نهائي . الطريقة الوحيدة لتحصل عليهم مجدداً هي عن طريق الالتماس إلى صاحب حقوق النسخ .في حين يكون هناك دفاع جيد ضد الإعتداء , هذه السياسة قد تسبب الكثير من الإزعاج للشخص الذي يتورط مع القوانين عن طريق الخطأ . الطلب من جميع صاحبي الحقوق تجديد الترخيص من الممكن أن يكون مرهقاً و مكلف أيضاً : توزيعة جنو/لينكس نموذجية مبنية على عمل الآلاف . GLPv3 توفر تخفيف من أجل التصرف الجيد : إذا قمت بانتهاك الترخيص سوف تستعيد حقوقك حالما توقف الإنتهاك إلا إذا اتصل بك صاحب حقوق النسخ خلال 60 يوماً . بعد أن تتلقى ملاحظة من هذا النوع , سوف تستعيد حقوقك كاملة إذا كانت هذه أول مرة تقوم بانتهاك و قمت بإصلاح الإنتهاك خلال 30 يوم . وإلا فسوف تعمل على المسألة قضية-قضية على حسب مالك حقوق النسخ الذي اتصل بك , وسوف تستعيد حقوقك بعد ذلك. المطاوعة (7) مع رخصة جنو العمومية لطالما كانت أولوية بالنسبة لـ (FSF Compliance Lab ) و مجموعات أخرى تنفذ الترخيص على نطاق العالم . هذه التغيرات تضمن أن المطاوعة (7) تبقى أولوية عليا للمنفذين و تعطي المنتهكين حافز لكي يستجيبوا .

الأخير و الأهم : من المحتمل ان تبدو بعض هذه التغييرات أقل أهمية لك عن الآخرين . لابأس بذلك , كل مشروع هو مختلف , و له إحتياجات مختلفة من الترخيص . و لكن الأفضلية تكمن بأن عدد من هذه التحسينات سوف تساعدك و تسهل عملك. وعندما نأخذ بالمجمل , كل هذه التحديثات تقدم شيئاً أكثر : لقد صنعنا حقوق نسخ حرة أفضل (Copyleft ) . أنها تقوم بالمزيد من أجل حماية حرية المستخدمين , ولكن أيضاً تمكن المزيد من التعاون ضمن مجتمع البرمجيات الحرة . و لكن تحديث الترخيص هو جزء من من العمل : لكي يحصل الناس على المزايا التي توفرها , يحتاج المطورين لإستخدام GLPv3 لمشاريعهم أيضاً.عندما تطلق مشروعك الخاص تحت الترخيص الجديد كل من يتعامل معها – من مستخدمين أو مطورين آخرين أو موزعين أو حتى محامين – سوف ينتفع . نحن نأمل أنت تستخدم GLPv3 من أجل إصدارك التالي . إذا أردت أن تتعلم المزيد حول تحديث مشروعك إلى GLPv3 سوف يكون FSF Compliance Lab سعيداً ليساعدك . على موقعهم , تستطيع الحصول التعليمات الأساسية لاستخدام الترخيص .

-----------------------------------------------------------------

الهامش : من المترجم ..

(1) copyleft = حقوق النسخة الحرة هذا المصطلح اجتهاد شخصي من لديه ترجمة أخرى أرجو إعلامي . (المترجم)

(2) Tivoization : هذا المصطلح لم أجد له أي ترجمة واضحة حتى باللغة الإنكليزية لذلك هو يشرح نفسه .

(3) Digital Millennium Copyright هو قانون في الولايات المتحدة لمنع نسخ و تعديل المنتجات الرقمية

(4) Discriminatory patent deals المصطلح الأصلي للتوضيح كلمة مصدر الواردة ضمن الترجمة تعني الكود المصدري أي ( source code ) للبرنامج .

 

أرجو إعلامي عن أي ملاحظات أو نصائح خاصة بهذه الترجمة بمراسلتي على : free.programmer4linux@gmail.com أو على العنوان : badry85@maktoob.com