سؤال

لا أعرف الكثير عن LGPL/GPL عندما يتعلق الأمر بتوزيع البرامج (بدون ترخيص QT) ؛ إذا قمت بإنشاء برنامج ، فهل يمكنني ربط المكتبات بشكل ثابت بـ EXE حتى يكون لدي ملف واحد لتوزيعه عندما:

  • لا يكلف البرنامج أي شيء ، فهو يتم توزيعه فقط (مصدر مغلق أو المصدر المفتوح)؟

  • عندما يتعين عليك دفع ثمن البرنامج ، هل ما زلت تربطك بشكل ثابت؟

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

المحلول

لا ، إذا كان برنامجك مغلقًا مصدرًا وترغب في الارتباط مع إصدار LGPL من QT ، فيجب عليك استخدام الارتباط الديناميكي. إذا كنت ترغب في الارتباط بشكل ثابت ، فيجب عليك شراء ترخيص لـ QT.

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

يُسمح لك أيضًا باستخدام أي يعني أن لغتك تسمح بتحقيق نفس الهدف. يمكنك توزيع ملفات الكائنات ، ثم يمكن للمستخدم إعادة التذوق كما أشار المعلق الآخر ، لكنني لم أر هذا أبدًا في الممارسة العملية.

لا يهم ما إذا كان منتجك مجانيًا أم لا. يمكنك بيع منتجات GPL/LGPL.

نصائح أخرى

في الواقع ، يسمح LGPL بربط ثابت طالما تلبي بعض المتطلبات المحددة للغاية. على سبيل المثال ، إذا تم إجراء كل التوزيع من موقع الويب الخاص بك حيث لديك StaticProgram.exe, ، أنت بخير طالما يمكن للمستخدمين أيضًا التنزيل StaticProgram.Obj و lgpl-library-source.tar.gz. يمكنك أيضا توزيع StaticProgram.exe مع عرض مكتوب لتقديم الملفات الأخرى.

على وجه التحديد ، فإن الارتباط الثابت يخلق أداة تنفيذ واحدة وهي مشتقة من رمز LGPL ، لذلك يجب عليك الامتثال للقسم 6 من LGPL:

6) كاستثناء للأقسام المذكورة أعلاه ، يمكنك أيضًا دمج أو ربط "عمل يستخدم المكتبة" مع المكتبة لإنتاج عمل يحتوي على أجزاء من المكتبة ، وتوزيع هذا العمل بموجب شروط اختيارك ، بشرط أن يكون تسمح المصطلحات بتعديل العمل من أجل الاستخدام الخاص بالعميل والهندسة العكسية لتصحيح هذه التعديلات.

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

أ) مرافقة العمل مع شفرة المصدر القابلة للقراءة الآلي المقابلة للمكتبة بما في ذلك أي تغييرات تم استخدامها في العمل (والتي يجب توزيعها بموجب القسمين 1 و 2 أعلاه) ؛ وإذا كان العمل عبارة عن ترابط قابل للتنفيذ مع المكتبة ، مع "العمل الكامل الذي يستخدم المكتبة" ، كرمز الكائن و/أو رمز المصدر ، بحيث يمكن للمستخدم تعديل المكتبة ثم إعادة إنتاجها لإنتاج أ قابلة للتنفيذ محتوية على المكتبة المعدلة. (من المفهوم أن المستخدم الذي يغير محتويات ملفات التعريفات في المكتبة لن يتمكن بالضرورة من إعادة ترجمة التطبيق لاستخدام التعريفات المعدلة.)

ب) استخدم آلية مكتبة مشتركة مناسبة للربط بالمكتبة. الآلية المناسبة هي تلك التي تستخدمها (1) في وقت التشغيل نسخة من المكتبة موجودة بالفعل على نظام الكمبيوتر الخاص بالمستخدم ، بدلاً من نسخ وظائف المكتبة إلى القابلة للتنفيذ ، و (2) ستعمل بشكل صحيح مع إصدار معدّل من المكتبة ، إذا قام المستخدم بتثبيت واحدة ، طالما أن الإصدار المعدل متوافق مع الواجهة مع الإصدار الذي تم إجراؤه مع العمل.

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

د) إذا تم توزيع العمل من خلال توفير الوصول إلى النسخ من مكان محدد ، فتوفير وصول مكافئ إلى نسخ المواد المحددة أعلاه من نفس المكان. هـ) تحقق من أن المستخدم قد تلقى بالفعل نسخة من هذه المواد أو أنك أرسلت بالفعل هذا المستخدم نسخة.

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

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

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