سؤال

كيف يجب تطبيق ترخيص GPL [L] على رمز Java و C #؟ أعلم أنه عندما تصبح Sun JDK GPL، قاموا باستثناءات خاصة للمكتبات القياسية.

لذلك، إذا لم أتمكن من فتح مصدر طلبي وما زلت تريد توزيعه ...

  • ... هل يمكنني استخدام مكتبة GPL'ed (بواسطة يستورد'جي فصوله)؟
  • ... هل يمكنني استخدام واحد lgpl'ed
  • ... هل يمكن تشغيل طلبي على رأس خادم تطبيقات GPL'ed (باستخدام خدماته و APIs)

في جميع الأسئلة أعلاه GPL = GPL V.2.

شكرا

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

المحلول

أولا، إذا كنت تقوم ببناء برامج تجارية على رأس عمل شخص آخر، فيجب عليك استئجار محام لمساعدتك في التأكد من أنك تظل وفقا لترخيص صاحب حقوق الطبع والنشر واستخدامك المحدد.

يقال، إليك نصيحتي:

  1. يجب أن لا تصل إلى تطبيق GPL أو Library إلا إذا كنت ترغب في توزيع التعليمات البرمجية الخاصة بك باعتبارها GPL.
  2. بقدر ما يذهب LGPL، قد ترغب في التحقق من صاحب حقوق الطبع والنشر، لكن مؤسسة البرمجيات المجانية قد أوضح تفسيرها ل LGPL فيما يتعلق ب Java: LGPL و JAVA بواسطة ديفيد تيرنر.
  3. إذا كنت تمتد إطار GPL (مثل خادم التطبيق)، فستحتاج إلى اتباع رخصة الإطار.
  4. إذا كنت تستخدم شيئا مثل الصابون للوصول إلى خدمة، فيجب أن تكون موافق تحت GPLV2. إذا كنت تستخدم RMI، فربما يختلف الموقف لأن الكعبات التي ستربطها ربما تكون تحت GPL.

الآن، إذا كنت تشعر بالقلق إزاء وقت تشغيل Java، لا أعتقد أنك ستحتاج إلى القلق. سأفاجأت إذا صنعت الشمس Java GPL فقط. لديهم الكثير من العملاء يعتمدون على حقيقة أن جافا يمكن تمديدها واستخدامها في بناء تطبيقات خاصة. غالبا ما يتم إصدار البرنامج بموجب تراخيص متعددة يسمح للمستخدم باختيار المصطلحات (Firefox، على سبيل المثال يستخدم هذا النهج وهو مرخص ثلاثي: GPL، LGPL، و MPL).

نصائح أخرى

بغض النظر عن التزام Sun بمصدر مفتوح، يمكنك ترخيص تطبيق Java الخاص بك مع GPL أو LGPL أو MIT أو حتى ما يسمى بتراخيص "الملكية".

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

"... هل يمكنني استخدام LGPL'ed One" يمكنك الرجوع إلى رمز LGPL إذا حافظت عليه في ملف منفصل. في حالة Java، احتفظ برمز LGPL في جرة مفصولة. في حالة C #، احتفظ بها في DLL مفصولة. قد تشمل رمز LGPL في طلبك إذا سمحت للمستخدم النهائي باستبدالها على أي حال (ولكن قد يكون هذا أصعبا من مجرد تركه كملف منفصل)

"... هل يمكن تشغيل طلبي على رأس خادم تطبيقات GPL'ed (باستخدام خدماتها و APIs)". لا، ما لم تكن هذه الخدمات / برمجة برمجة برمجة برمانية آبالية بعض الرخصة الأخرى.

أنظر أيضا: https://stackoverflow.com/questions/137048/how-do-i-tell-if-i-can-re-re-use-a-free-software-library-in-a-commercial-app.

Rant] GPL و LGPL هي تراخيص فظيعة كتبها محامون سيئون للغاية الذين لا يستطيعون الحصول على مصطلحاتهم مباشرة. لذلك فمن أن يخمن أي شخص ما يعنيه حقا وكيف ينطبقون على مواقف العالم الحقيقي [/ rant

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

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

لا تنوي الأشخاص الذين يوزعون مكتباتهم Java بموجب GPL إما أن تنويهم أن تكون مضمنة في تطبيقات تجارية، أو لم يزعجهم القلق من أجل التداعيات القانونية، لأن GPL ليس ترخيصا مناسبا للمكتبات، ولكن فقط للتطبيقات المستقلة وبعد أود أن أقترح توجيه إلى مكتبات JPL'ed Java في التعليمات البرمجية التجارية. بما في ذلك تطبيق GPL جنبا إلى جنب مع واحد التجاري الخاص بك على ما يرام، رغم ذلك.

فيما يتعلق بالجري داخل خادم تطبيق GPL'ED، فإنك بالتأكيد على ما يرام طالما التمسك ب apis القياسية (servlets، JSPS، JMX، إلخ). إذا كان يجب عليك استخدام ملكية واجهات برمجة التطبيقات إلى الخادم، فإن السؤال هو أكثر تعقيدا، لذلك سأتحدث بالتأكيد إلى محام، على الرغم من ذلك مرة أخرى، على الأرجح، على الأرجح نية مالكي رمز خادم التطبيق هو أنه يجب السماح بهذا الاستخدام.

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

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

بالنظر إلى التعقيدات، فإنه من المنطقي التحدث إلى محام حول هذا الموضوع.

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