لایسنس اوپن سورس ها و اضافه کردن آنها به پروژه Github
ترجمه آماتورانه ای از اینجا :
این مقاله ،یه برداشت مختصر از لایسنس های محبوب رو ارائه میده و اینکه چطور لایسنسها رو برای پروژه های اوپن سورس اتون در گیتهاب بکار ببرید.
محبوب ترین لایسنهسای اوپن سورس ،یک وجه مشترک دارند،اینکه Open Source Initiative (OSI) تاییدشون کرده.و Open Source Initiative (OSI) خودش رو اینطور تعریف میکنه:
یک موسسه بدون منافع مالی و با گستره جهانیه تا درباره اوپن سورس آموزش بده و از مزایای اون دفاع کنه و پلی برای حوزه های متفاوت ،در جامعه اوپن سورس ایجاد کنه
اغلب لایسنسهای اوپن سورس شامل موارد زیر هستن:
1.نرم افزاتر میتونه اصلاح بشه و تجاری و منتشر بشه.
2.نرم افزار میتونه اصلاح شه و بطور خصوصی استفاده بشه.
3.توی نرم افزار باید اطلاعیه ای برای لایسنس و کپی رایت وجود داشته باشه.
4.نویسندگان نرم افزار هیچ ضمانت و گارانتی ای برای نرم افزار ارائه نمیکنن و مسئول هیچی نیستند.
لایسنسهای پرطرفدار رو به ترتیب از سختگیرانه ترین تا سهل گیرانه ترین (از دید کاربر)،بررسی میکنیم:
لایسنس GNU General Public License, version 3 (GPLv3)
از محدود کننده ترین و سخت گیرانه ترین لایسنسهاست و بیشترین محافظت از نویسنده نرم افزار رو پیشنهاد میده.
- سورس کد میبایست پابلیک بشه هر موقعی که نرم افزار توزیع میشه
- اصلاحات نرم افزار باید تحت همین لایسنس منشر بشه
- تغییراتی که توی سورس کد ایجاد میشه باید داکیومنت سازی(مستند سازی) بشه
- اگر در روند خلق یک نرم افزار، از محتوای تحت حق امتیازی استفاده شده باشه ،حق استفاده ازش به کاربرها داده میشه .اگر کاربری از کسی بخاطر استفاده از محتوای دارای حق امتیاز ،شکایت کنه ،حق استفاده از نرم افزار رو از دست میده
لایسنس GPLv2 هم خیلی محبوب هست و تفاوت اصلیش با GPLv3 یه بند هست که در ورژن 3 اضافه شد تا مانع از این بشه که کمپانی ها از کاربرا برای استفاده از حق امتیازشون،پولی دریافت کنند.
شناخته شده ترین پروژه هایی که از GPLv3 استفاده میکنند، Bash , GIMP هستند همچنین Linux هم از GPLv2 استفاده میکنه.
Ezequiel Foncubierta به نکته مهمی درباره لایسنس GPL اشاره میکنه:
لایسنس سورس کد شما باید با لایسنس اوپن سورسی که دارید ازش استفاده میکنید سازگار باشه.مثلا اگه کد شما خصوصی (دارای مالکیت) هستش،اجازه نخواهید داشت تا از یه لایبرری تحت لایسنس GPL استفاده کنید .واینجاست که مردم بیشترین اشتباهات رو میکنن.
لایسنس Apache License 2.0
انعطاف بیشتری به کاربرا پیشنهاد میده
- وقتی که توزیع نرم افزار ساخته میشه،سورس کد نیاز نیست که پابلیک باشه
- اصلاحات و تغییراتی که ایجاد میشه،میتونه تحت هر لایسنسی ارائه بشه
- تغییرات صورت گرفته در سورس میبایست داکیومنت سازی بشه
- محافظتی که برای استفاده از حق امتیاز فراهم کرده،یکسان هست با اونچه که GPLv3 ارائه میده
- صراحتا استفاده از اسامی علامت های تجاری موجود در پروژه را ممنوع می کنه.
شناخته شده ترین پروژه هایی که از لایسنس آپاچی 2.0 استفاده میکنند ،Android ,Apache و Swift هستند.
لایسنس Berkeley Software Distribution (BSD)
لایسنس BSD دو ورژن اصلی داره:2-clause و 3-clause که هردوشون انعطافی بیشتر از اونچه که Apache License 2.0 به کاربرا ارائه میداد، عرضه میکنه
- وقتی که توزیع نرم افزار صورت میگیره،سورس کد نیاز نیست که پابلیک باشه
- اصلاحاتی که در نرم افزار ایجاد میشه،میتونه تحت هر لایسنسی ارائه بشه
- تغییرات صورت گرفته در سورس میتونه داکیومنت سازی نشه
- هیچ موضع صریحی نسبت به استفاده از حق ثبت/امتیاز/نشر ندارد.
- -توی مستندات نسخه کامپایل شده سورس کد، باید اطلاعیه ای برای لایسنس و کپی رایت وجود داشته باشه.(نه اینکه فقط توی وسرس کد باشه)
- در 3-clause ،برای تبلیغ محصولاتی که از نرم افزار استخراج میشه،نمیشه از نام نویسنده و همکاران (contributor) ،بدون اجازه اشون استفاده کرد
شناخته شده ترین پروژه هایی که از لایسنس BSD استفاده میکنند Go (3-clause), Pure.css (3-clause) و Sentry (3-clause) هستند.
لایسنس MIT License
یکی از آسان گیرانه ترین لایسنس هاست و همچنین محبوب ترین.MIT محافظت خیلی کمی برای نویسنده نرم افزار ارائه میده
- وقتی که توزیع نرم افزار صورت میگیره،سورس کد نیاز نیست که پابلیک باشه
- اصلاحاتی که در نرم افزار ایجاد میشه،میتونه تحت هر لایسنسی ارائه بشه
- تغییرات صورت گرفته در سورس میتونه داکیومنت سازی نشه
- هیچ دیدگاه و موضع صریحی برای استفاده از حق امتیاز رو پیشنهاد نمیده.
معروفترین پروژه هایی که از MIT استفاده میکنند Angular.js, jQuery, Rails, Bootstrap و React هستند و بسیاری دیگه.
بکارگیری لایسنس روی پروژه های اوپن سورس
خیلی راحته و نیازه که شما LICENSE, LICENSE.txt یا LICENSE.md رو در روت دایرکتوری ریپوزیتوری اتون اضافه کنید.
و Github این کار رو ساده تر هم کرده:
1.ریپوزیتوری اتون رو در بروزر باز کنید.
2.توی دایرکتوری روت ،create new file کلیک کنید.
3.نام فایل رو LICENSE بگذارید.
4.روی Choose a license template کلیک کنید.
5. یکی از لایسنسها رو انتخاب کنید(همه لایسنسهایی که در این مقاله ذکر شد ،در گزینه هاش موجود هست).
6.بعد از انتخاب ، Review and submit رو کلیک کنید.
7.فایل رو Commit کنید.
مطلبی دیگر از این انتشارات
"اتصال به اینترنت برقرار نیست! تلاش مجدد" یک استراتژی کلی
مطلبی دیگر از این انتشارات
الگویِ طراحیِ Chain of Responsibility (جاوا و کاتلین)
مطلبی دیگر از این انتشارات
حل مشکل اتصال به شبکه (مقصد فاقد TLS) و انتقال ترافیک cleartext در اندروید با API level 28