من مهدی صمدانی هستم. درحال کسب مهارت در حوزه ی مدیریت محصول ام. تجربیاتم رو باهاتون به اشتراک میگذارم?
کدام لایسنس را انتخاب کنیم؟
اخیرا، خبر تغییر لایسنس فیسبوک برای برنامه نویسان بسیار هیجان انگیز بود.تیم توسعهی فیسبوک لایبرری های بسیاری از محصولات خود را از BSD-3 patents به MIT تغییر داد.
این خبر بنظر خوب میاد، ولی به چه معناست؟لایسنس های متنوع دنیای متن باز چه تفاوتی باهم دارند؟
در این مقاله قصد دارم به برخی از لایسنس های محبوب اشاره کنم.همچنین روش انتخاب این لایسنس ها در گیت هاب را نیز آموزش میدم.
تحت مسئولیت ؟
بیشتر لایسنس های محبوب دنیای متن باز یک جنبه ی مهم و مشترک دارند. تایید توسط Open Source Initiative.
درسال ۱۹۹۸ OSI با هدف اصلی ترویج نرم افزارهای متن باز تشکیل شد.با شکل گیری این مجمع اصلی ترین سوال ینی تعریف متن باز بودن پاسخ داده شد.
برخی از لایسنس ها
اکثر لایسنس های متن باز از ۴ اصل پیروی میکنند:
۱- نرم افزار را میتوان تغییر داد، مورد استفاده ی تجاری قرار داد و توزيع کرد.
۲- نرم افزار را میتوان تغییر داد و بصورت شخصی استفاده کرد.
۳- لایسنس و کپی رایت باید در نرم افزار موجود باشد.
۴- نویسندگان نرم افزار هیچ ضمانتی در برابر نرم افزار ندارند و برای هیچ چیزی مسئول نیستند.
در ادامه برخی از لایسنس ها از کمترین محدودیت ها تا بیشترین مجازارت ها را بررسی میکنیم.(از نگاه کاربران!)
GNU General Public License, version 3 (GPLv3)
یکی از محدودترین لایسنس ها GPLv3 می باشد.این لایسنس حمایت شدیدی را برای نویسندگان نرم افزار فراهم میکند.
- هر زمان نرم افزار مورد تولید قرار گرفت، سورس کد نیز باید عمومی شود.تغییرات نرم افزار نیز باید تحت همین لایسنس انجام گیرد.
- تغییرات انجام شده در سورس کد حتما باید مستند باشد.
- اگر از Patent در ساخت نرم افزار استفاده شده باشد، کاربران نیز حق استفاده از آنها را دارند.اگر کاربری از Patent سو استفاده کند، آنها حق استفاده از نرم افزار را از دست میدهند.
درست مانند این لایسنس، GPLv2 نیز بسیار محبوب است.تفاوت این لایسنس با نسخه ی ۳ شرایط استفاده از Patent ها می باشد.این شرایط برای جلوگیری از افزایش تعداد کاربران شرکت ها به منظور استفاده از Patent ها در نسخه ی ۳ قرار گرفت.
از پروژه های محبوبی که از این GPLv3 استفاده میکنند میتوان به Bash و GIMP اشاره کرد.سیستم عامل Linux از GPLv2 استفاده میکند!
Apache License 2.0
کاربران بوسیله ی Apache License 2.0 انعطاف پذیری بیشتری را تجربه میکنند.
- هر زمان نرم افزار مورد تولید قرار گرفت، نیاز به عمومی کردن سورس کد نیست.
- تغییرات نرم افزار میتواند تحت هر لایسنس دیگری انجام گیرد.
- تغییرات انجام شده در سورس کد حتما باید مستند باشد.
- حفاظت از Patent های مورد استفاده مانند GPLv3 می باشد.
- به صراحت استفاده از نام های تجاری موجود در پروژه ممنوع است.
پروژه های محبوبی از قبیل Android ، Apache و Swift از این لایسنس استفاده میکنند.
Berkeley Software Distribution (BSD)
لایسنس BSD شامل دو ورژن اصلی میشود: دوشرطی و سه شرطی. هردو ورژن این لایسنس انعطاف پذیری بیشتری را نسبت به Apache License 2.0 برای کاربران فراهم میکند.
- هر زمان نرم افزار مورد تولید قرار گرفت، نیاز به عمومی کردن سورس کد نیست.
- تغییرات نرم افزار میتواند تحت هر لایسنس دیگری انجام گیرد.
- تغییرات انجام شده در سورس کد نیاز به مستند شدن ندارد.
- جایگاه مشخصی برای استفاده از Patent درنظر نگرفته شده است.
- لایسنس و کپی رایت باید در مستندات ورژن کامپایل شده ی سورس کد قرار گیرد.(برخلاف قانون اصلی سایر لایسنس ها)
- در BSD سه شرطی عنوان شده است که، استفاده از نام های نویسندگان (author) و همکاران (contributors) در ترویج مشتقات آن نرم افزار بدون اجازه ممنوع است.
پروژه هایی که از لایسنس BSD استفاده میکنند: Go ، Pure.css و Sentry
MIT License
یکی دیگر از لایسنس های قابل قبول و میتوان گفت محبوب ترین لایسنس، MIT می باشد.کمترین میزان محافظت را برای نویسندگان نرم افزار فراهم میکنم.
- هر زمان نرم افزار مورد تولید قرار گرفت، نیاز به عمومی کردن سورس کد نیست.
- تغییرات نرم افزار میتواند تحت هر لایسنس دیگری انجام گیرد.
- تغییرات انجام شده در سورس کد نیاز به مستند شدن ندارد.
- جایگاه مشخصی برای استفاده از Patent درنظر نگرفته شده است.
پروژه های محبوبی مانند Angular.js, jQuery, Rails, Bootstrap و بسیاری دیگر از لایسنس MIT استفاده میکنند.
پروژه ی React.js که از محصولات Facebook می باشد تا ۲۵ سپتامبر تحت لایسنس BSD-3 plus قرار داشت.این لایسنس در حقیقت همان BSD سه شرطی است که شروط بیشتری را در بخش بکارگیری Patent دارا است.
بطور خلاصه، اگر شما از Facebook یا سایر شرکت های تابع آن سو استفاده میکردید اجازه ی استفاده از React یا سایر نرم افزارهایی که از این لایسنس استفاده میکردند را نداشتید.
پس از پیوستن React به لایسنس MIT شما پس از سواستفاده از فیسبوک، باز هم میتوانید از React استفاده کنید! چقدر خوب :)
روش افزودن لایسنس به پروژه های متن باز خودتان
این کار بسیار ساده است. تنها کاری که باید بکنید افزودن یک فایل LICENSE یا LICENSE.txt یا LICENSE.md در دایرکتوری روت پروژه ی گیت هابتونه!
گیت هاب این کار رو راحت تر کرده:
۱- ریپوزیتوری پروژه رو توی گیت هاب باز کنید.
۲- توی دایرکتوری روت پروژه بر روی Create new file کلیک کنید.
۳- نام فایل رو “LICENSE” قرار بدید.
۴- بر روی Choose a license template کلیک کنید.
۵- لایسنس موردنظرتون رو انتخاب کنید.
۶- بعد از اینکه انتخاب کردید روی Review and submit کلیک کنید.
۷- در انتها فایل افزوده شده رو Commit کنید!
سعی کردم متن رو راحت ترجمه کنم.خوش حال میشم نظراتتون رو بنویسید!
منبع:
مطلبی دیگر از این انتشارات
بررسی Sequence pre allocation در JPA (پیادهسازیهای Hibernate و EclipseLink)
مطلبی دیگر از این انتشارات
چطور برنامهنویس بهتری بشیم؟
مطلبی دیگر از این انتشارات
مقدمه ای بر کَمِل