لا GPL رمز الربط مع الملكية المكتبة تعتمد هو الذي خلق أولا ؟ [مغلقة]

StackOverflow https://stackoverflow.com/questions/1854843

سؤال

ويخلق مايكروسوفت ويندوز و MFC DLL مكتبة, الخ.المصدر المفتوح في تطوير كتابة جديدة التطبيق MFC و الإفراج عن رمز المصدر على النحو GPL.التطبيق يحتوي على رابط مع MS DLL/مكتبات تشغيل في ويندوز, ولكن أنا لا أعتقد أن أحدا يمكن أن يجادل في أن لدينا الآن الحق في إجبار مايكروسوفت GPL بهم DLL.

يعني هذا الترخيص GPL هو حقا يتوقف على واحد الذي هو "خلق" الأول ؟ إذا الملكية مكتبة إنشاء أول (مثل Windows Dll) التي يتم نشرها دون ربط أي GPL رمز في وقت لاحق GPL البرنامج مرتبط مع ذلك ، ثم GPL البرنامج لا يمكن تحويل الملكية مكتبة في GPL على الرغم من أن الملكية رمز "ربط" مع التعليمات البرمجية الترخيص.

إذا كان هذا هو الحال, أن شركة مثل NVidia أو RealNetworks تفعل ما يلي ؟ دعونا نفترض أنها ترغب في الحفاظ على الملكية HDDecoding الإعلام فك المحرك مكتبة خاصة ولكنها تريد أيضا أن "النفوذ" ، مفتوحة المصدر GPLed رمز لعرض الأجهزة الخاصة بهم.

  1. لأنها تخلق الملكية المكتبة للقيام الإعلام فك سراح بعض التعليمات البرمجية.
  2. شخص (مفتوحة المصدر التنمية) يخلق "المساعد" مرتبط في هذه الملكية مكتبة GPLed رمز مثل XBMC, Mplayer أو VLC.
  3. يمكن القول أنه منذ إنشاء المكتبة الملكية الأولى (مثل MS إنشاء كافة DLLs الأولى), GPL البرامج التي لها علاقة الملكية رمز لا سري لهم في التعليمات البرمجية الترخيص.

واحد يمكن من الناحية النظرية القول بأن مفتوحة المصدر المطور الذي يخلق GPL vlc.exe ملف الارتباط مع NVidia ملكية وسائل الإعلام مكتبة فك تنتهك رخصة GPL.

هل هذا يعني أن كل GPL البرامج قيد التشغيل في ويندوز مثل VLC, بوابة, cygwin, الخ كلها مخالفة ترخيص GPL لأنها بالتأكيد تحتاج إلى رابط الملكية Microsoft Windows مكتبات لتشغيل.

الحالة 2:ما هو الخطأ مع هذا:

NVidia يمكن إنشاء أجهزة جديدة التجريد مكتبة يخفي أحدث الرسومات وظائف.كما أنها تخلق فري سائق مع هذه المكتبة و إصدار التعليمات البرمجية المصدر BSD السائق ولكن لم المكتبة البرمجية المصدر.

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

بالتأكيد ينتهك روح GPL.

يعني أن تشغيل أي exe التي تم إنشاؤها مع GPLed مصدر في ويندوز/ماك/اي فون/PSP3 أيضا ينتهك روح GPL ؟

هل كانت مفيدة؟

المحلول

من رخصة جنو GPL التعليمات:

هل يمكنني التقدم بطلب الترخيص عند كتابة المكونات في غير مجاني البرنامج ؟

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

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

انظر أيضا السؤال أنا أكتب البرمجيات الحرة التي تستخدم غير مجانية مكتبة.

و:

ما المسائل القانونية تأتي إذا كنت تستخدم GPL يتعارض مع المكتبات مع GPL البرامج ؟

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

معايير ما تحسب "نظام مكتبة" تختلف بين إصدارات مختلفة من GPL.GPLv3 صراحة نظام "المكتبات" في القسم 1 ، استبعاده من تعريف "مصدر المقابلة." GPLv2 يقول التالية ، قرب النهاية القسم 3:

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

...

نصائح أخرى

لديك سوء فهم أساسي للطريقة التي تدخل فيها قيود GPL القوة. يمثل مثالك الأول من خلال "إعفاء مكتبة النظام" - ولكن حتى لو لم يكن الأمر كذلك، فلن يكون له التأثير الذي تفترضه.

يقول GPL أنه إذا قمت بتوزيع برنامج GPL'D، أو مشتقات منه، عليك أيضا توفير المصدر للبرنامج أو المشتق بموجب شروط GPL المكافئة (للأشخاص الذين قمت بتوزيع البرنامج / المشتقات إلى).

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

IANAL، ولكن أمر الإبداع لا يهم. إذا كان ربط اثنين من الثنائيات انتهاكا لجهاز GPL، فلا يسمح به GPL، بغض النظر عن الأمر الذي تم إنشاؤه أولا.

يتم تناول الحالة 1 بواسطة استثناء مكتبة النظام، كما نقلت مايكل بورغ. لاحظ أنه ليس اعتمادا على الوقت - إذا لم يكن الأمر استثناء مكتبة النظام، فسيكون الأمر بنفس القدر من انتهاك GPL لتشغيل التعليمات البرمجية المتصلبة مكتوبة في عام 2003 على نظام التشغيل Windows 98 (الذي كتب قبل التعليمات البرمجية المتنوعة) كما هو سيكون لتشغيله على نظام التشغيل Vista (الذي كتب بعد التعليمات البرمجية المتطابقة).

أوافق على أن الحالة 2 تنتهك روح GPL، ولكن، حيث يتم استخدام المصطلح من قبل GPL، فإن برنامج تشغيل NVIDIA لا "مرتبط" مع Kernel Linux لأنه يتم تحميله كوحدة. لن تتمكن من توزيع نواة Linux مع NVIDIA Binary الثنائية غير المجانية التي يرتبط بها ثابتة بشكل ثابت، لكن من يوزع نواة مرتبطة ثابتة هذه الأيام على أي حال؟

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

ما يعنيه، ببساطة، هو أنه لا يمكنك تطبيق GPL على أعلى الرمز أو المكتبات التي لا متوافق مع GPL وتوزيع أعمال مجتمعة مترجمة، إلا إذا قمت بتطبيق ربط الاستثناء.

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

يعتمد هذا الاستثناء، بطبيعة الحال على المكتبات غير المجانية مما يسمح لك بتوزيع البرامج المرتبطة بها (بشكل خاص ثابت).

لذلك، للإجابة على سؤالك الأول، لا .. هذا ليس سيناريو "دجاج أو بيضة". ما أوصي به هو عندما تواجه إمكانية الاضطرار إلى كتابة استثناء، من الأفضل فقط اختيار ترخيص مع قيود أقل، مثل ترخيص Apache أو 3 Clause BSD.

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

ال spririt يعيش GPL في عالم لا يوجد به شيء مثل برنامج الملكية. ذكرت RMS هذا الهدف النهائي في العديد من المناسبات. ما البقايا العملية العملية يجب معالجة ذلك للأشخاص الذين يرغبون في توزيع البرامج المجانية على المنصات غير المجانية.

هذه واحدة من أكبر الأسباب التي تظل فيها Linux (كما في النواة) GPL V2 فقط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top