آشنایی با ۱۲ لایسنس متنباز (Open Source) پرطرفدار و دلایل استفاده از آنها
در این مقاله میخوانید
- چرا باید از لایسنس نرمافزار متن باز استفاده کنیم؟
- لایسنس Permissive Open-source Software Licenses
- لایسنس آپاچی (Apache License)
- لایسنس ام آی تی (MIT License)
- لایسنس بی اس دی (BSD License)
- لایسنس نرمافزار بوست (Boost Software License)
- لایسنسهای نرمافزار متن باز کپی لفت (Copyleft Open-source Software Licenses)
- لایسنس گنو (GNU License)
- لایسنس عمومی اکلیپس (Eclipse Public License)
- لایسنس عمومی موزیلا (Mozilla Public License)
- لایسنسهای همارز با دامنه عمومی (Public-Domain-Equivalent Licenses)
- لایسنس جامع کرییتیو کامنز صفر (Creative Commons Zero Universal License)
- لایسنس The Unlicense
- جمعبندی
- سؤالات متداول
بسیاری از توسعهدهندگان راهنمایی و قوانینی را برای استفاده از آثار خود مشخص میکنند که با عنوان لایسنس شناخته میشوند. ازطریق مجوزهای متنباز در شرایطی اجازه پیدا میکنید از مؤلفهای نرمافزاری استفاده کنید. برای مثال، وقتی میخواهید از کد منبع پروژه یا نرمافزاری نهایی استفاده کنید، باید بدانید آیا اجازه دارید از آن برای منافع شخصی یا تجاری بهره ببرید یا خیر و درصورت بهکارگیری آن، باید چه ملزوماتی را رعایت کنید.
انواع لایسنسها به کاربران اختیاراتی را نشان میدهند که برای استفاده از آن مؤلفه نرمافزاری دارند؛ بنابراین، قانون مشخصی برای یکیبودن این اختیارات وجود ندارد و همین امر موجب ایجاد انواع مجوزهای متنباز شده است. در این مقاله، انواع مختلف لایسنسهای Open-source را معرفی خواهیم کرد.
چرا باید از لایسنس نرمافزار متن باز استفاده کنیم؟
بهعنوان توسعهدهندهای که پروژهای را از ابتدا شروع میکند، آشنایی با لایسنسهای نرمافزار متنباز برای ارزیابی نحوه استفاده دیگران از آن اهمیت دارد. نکته دیگر اینکه شناخت این لایسنسها برای کاربران نیز مهم است تا آنان هم بتوانند با مجوزها یا محدودیتهای تعیینشده در توافقنامه آشنا شوند.
هر نرمافزاری پس از عرضه، کپیرایت خواهد داشت؛ اما بدون لایسنس کاربران متوجه نخواهند شد که چه چیزی مجاز و چه چیزی غیرمجاز است. بهدلایل زیر، توصیه میکنیم که از لایسنس نرمافزار متنباز استفاده کنید:
- پیشرفت: جامعه متنباز به ایجاد بستری برای افزایش همکاری و نوآوری میاندیشد. بهرهگیری از لایسنس نرمافزار متنباز افراد را به مشارکت در توسعه این جامعه دعوت میکند که این امر به تحول در احساس مسئولیت مشترک برای بهبود مداوم کد منبع یا گسترش روزافزون آن میانجامد.
- مالکیت: اگر میخواهید بر نرمافزار خود مسلطتر باشید، انتخاب لایسنسی که بتواند محدودیتهای مدنظرتان را اعمال کند، ضروری است. بهعنوان مثال، اگر میخواهید در نرمافزار اقتباسی خودتان از لایسنس استفاده کنید، احتمالاً انتخاب شما لایسنس کپیلفت خواهد بود. لایسنس نرمافزار متنباز شفافیت را برای کاربران کنونی و آینده نرمافزار بهارمغان خواهد آورد و میزان کنترل شما بر نرمافزار به تصمیم شما بستگی دارد.
- رقابت: نرمافزارهای متعددی وجود دارند و اگر میخواهید وارد بازار نرمافزارها شوید، استفاده از لایسنس متنباز به شما کمک میکند که مشهور شوید. برخی از نمونههای محبوب نرمافزار متنباز که بهمنظور رقابت با نرمافزارهای انحصاری ایجاد شدهاند، شامل سیستمعامل لینوکس و اندروید گوگل و مرورگر فایرفاکس هستند.
همانطورکه پیشتر اشاره کردیم، این مقاله روی انواع لایسنسهای نرمافزار متنباز موجود برای ایجاد پروژه جدید GitHub متمرکز است. درادامه، انواع لایسنسهای نرمافزار متنبازی که میتوانید برای پروژه بعدیتان انتخاب کنید، بهاختصار شرح خواهیم داد. یکی از این لایسنسها، لایسنسهای Permissive هستند که GitHub آنها را توصیه کرده است.
لایسنس Permissive Open-source Software Licenses
لایسنس مجاز (Permissive) به کاربران نرمافزار اجازه میدهد از کد منبع استفاده کنند و آن را تغییر دهند و بهاشتراک بگذارند. در این بخش، همه لایسنسهای نرمافزار متنباز Permissive ذکر نشده است؛ بلکه نام برخی از لایسنسهای پیشنهادی GitHub برای شروع پروژه جدید آمده است. ذکر این نکته ضروری است که این توضیحات کامل نیستند؛ ازاینرو، توصیه میکنیم که برای کسب اطلاعات بیشتر، اسناد و توضیحات مربوط به لایسنس دلخواهتان را بهطور کامل مطالعه کنید.
لایسنس آپاچی (Apache License)
لایسنس آپاچی را بنیاد نرمافزار آپاچی (ASP) منتشر کرده است. با استفاده از این لایسنس، توسعهدهندگان مجبور نیستند نسخه اصلاحشده کد منبع خود را با لایسنس اصلی منتشر کنند و از لایسنس دیگری بهعنوان مجوز فرعی میتوانند استفاده کنند.
لایسنس ام آی تی (MIT License)
لایسنس MIT را مؤسسه فناوری ماساچوست (MIT) منتشر کرده است. لایسنس یادشده بهعنوان لایسنسی آسانگیر محدودیتهای کمی دارد و سازگاری مناسبی در قسمتهای مختلف توسعه نرمافزار از خود نشان میدهد. لایسنس امآیتی همانند لایسنس آپاچی، به توسعهدهندگان امکان میدهد که مجوز فرعی را شکل دهند.
برای اینکه بدانید لایسنس Open Source چیست و چه نقشی در دنیای تکنولوژي دارد، مقاله زیر را بخوانید.
لایسنس بی اس دی (BSD License)
GitHub به شما اجازه میدهد بین لایسنسهای BSD یکی را انتخاب کنید که با نامهای لایسنس BSD دوبندی سادهشده (FreeBSD) و BSD سهبندی جدید و بازبینیشده شناخته میشوند. لایسنس سهبندی کاربران نرمافزار را در استفاده از نام نویسنده یا نویسندگان و مشارکتکنندگان برای تأیید محصولات یا خدمات محدود میکند.
لایسنس نرمافزار بوست (Boost Software License)
لایسنس نرمافزار بوست لایسنس متنبازی است که کتابخانههای سیپلاسپلاس (++c) از آن استفاده میکنند. لایسنس یادشده لایسنسی سهلگیر و شبیه به لایسنسهای بیاسدی و امآیتی است، با این تفاوت که هنگام توزیع مجدد بهشکل باینری، به انتساب نیازی ندارد.
لایسنسهای نرمافزار متن باز کپی لفت (Copyleft Open-source Software Licenses)
لایسنسهای کپیلفت به کاربران نرمافزار اجازه میدهد از کد منبع استفاده کنند و آن را تغییر دهند و بهاشتراک بگذارند؛ اما ازطریق محدودیتها و اعمال شرایط و ضوابط خاص، دربرابر صدور لایسنس مجدد مقاومت میکنند. ویژگی این لایسنس آن است که کاربران را به رعایت شرایط مندرج در لایسنس اصلی ملزم میکند.
همانطورکه در بخش پیشین نیز اشاره کردیم، در این فهرست همه لایسنسهای نرمافزار متنباز کپیلفت ذکر نشده و فقط تعدادی از لایسنسهای پیشنهادی GitHub برای شروع پروژهای جدید آمده است.
لایسنس متنباز کپیلفت چیست؟
لایسنس گنو (GNU License)
بنیاد نرمافزار آزاد (Free Software Foundation) چندین نسخه از لایسنس عمومی گنو را منتشر کرده است که توسعهدهندگان میتوانند چهار نسخه از آنها را در GitHub انتخاب کنند. نسخه 3.0 GPL (General Public Licence) از کاربران میخواهد که هرگونه تغییر در کد اصلی را اعلام کنند و کد اصلی را هنگام توزیع باینریهای استفادهشده در کارشان با نرمافزار دارای لایسنس دردسترس قرار دهند. همچنین، این نسخه ارتباط با لایسنسهای دیگری مانند آپاچی را تسهیل میکند؛ درحالیکه نسخه 2.0 با این لایسنسها سازگاری نداشت.
شرایط و ضوابط نسخه دوم با نسخه سوم تا حدودی مشابه است؛ اما در نسخه دوم، لایسنس کپیلفت قویتری در نظر گرفته شده بود. لایسنس کپیلفت قوی تعیین میکند که هرگونه تغییر در کد منبع با استفاده از همان لایسنس منتشر شود. در نسخه سوم، توسعهدهندگان نرمافزار این اجازه را دارند که درصورت رعایت الزامات لایسنس، بدون توجه به تعهدات الزامآور پیشین، اثر خود را توزیع کنند. هدف از این کار آن است که فرد یا افرادی نتوانند ادعای نقض حق پَتنت (سند ثبت اختراع) کنند.
لایسنس کمتر فراگیر همگانی گنو
لایسنس کمتر فراگیر همگانی گنو (GNU Lesser General Public License) با نام LGPL شناخته میشود. لایسنس LGPL با هدف ایجاد سازش بین لایسنسی سرسخت در کپیلفت لایسنس همگانی گنو و لایسنسهای آسانگیری مانند لایسنس بیاسدی و امآیتی طراحی شده است.
لایسنس کمتر فراگیر همگانی گنو لایسنسی با کپیلفت ضعیف است؛ یعنی محدودیت کپیلفت را روی خودِ نرمافزار میگذارد؛ ولی نرمافزارهای دیگری که تنها با آن پیوند دارند، مشمول این محدودیت نمیشوند.
GPL و LGPL از زیرمجموعههای لایسنس GNU هستند. برخی از تفاوتهای این لایسنسها ازاینقرارند:
- در GPL موظفاید که تغییرات ایجادشده در کد نرمافزار را بهصورت عمومی منتشر کنید.
- از دید برنامهنویسان، GPL درواقع اساس اصلی نرمافزارهای متنباز است.
- در GPL، میتوانید تمام فایلهای اجرایی نرمافزارها را تغییر دهید.
- از LGPL برای استفاده در Library نرمافزارها بهره میگیرند.
- نرمافزارهای دارای LGPL میتواند به GPL تبدیل شوند.
لایسنس GNU دیگری که میتوان به آن اشاره کرد، لایسنس عمومی همگانی آفرو (Affero General Public License) است که معمولاً بهاختصار آفرو جیپیال و ایجیپیال نامیده میشود. این لایسنس ویژه برنامههایی است که روی سرور قرار دارند. لایسنس مذکور از توسعهدهندگانی که برنامه اصلاحشده را روی سرور اجرا میکنند، درخواست میکند که کد منبع اصلاحشده را برای دانلود در نسخه اصلاحشده مرتبطی دردسترس قرار دهند که درحالحاضر روی سرور اجرا میشود.
GLP و LGPL چه فرقی با هم دارند؟
لایسنس عمومی اکلیپس (Eclipse Public License)
لایسنس همگانی اکلیپس را Eclipse Foundation منتشر کرده است. این لایسنس، لایسنس کپیلفت ضعیفی است که توسعهدهندگان نرمافزار را ملزم میکند تا تغییرات ایجادشده در کد را منتشر کنند. لایسنس یادشده بهمنظور کاهش الزامات سختگیرانهای طراحی شده است که توسعهدهندگان لایسنسهای عمومی عمومی گنو با آن مواجهاند.
لایسنس عمومی موزیلا (Mozilla Public License)
لایسنس عمومی موزیلا با نام اختصاری MPL نیز شناخته میشود و بنیاد موزیلا آن را نوشته است. مانند اکلیپس، لایسنس عمومی موزیلا لایسنس کپیلفت است، با این تفاوت که کد این لایسنس که مبتنیبر فایل کپیلفت است، میتواند با کد نرمافزار متنباز یا انحصاری ترکیب شود.
لایسنس عمومی موزیلا چه کاربردی دارد؟
لایسنسهای همارز با دامنه عمومی (Public-Domain-Equivalent Licenses)
لایسنسهای همارز با دامنه عمومی به توسعهدهندگان اجازه میدهند از نرمافزارهای دارای کپیرایت، بدون ذکر منبع یا سازگاری با لایسنس استفاده کنند. بهخاطر بسپارید که این لایسنسها همیشه موردتأیید OSI نیستند.
لایسنس جامع کرییتیو کامنز صفر (Creative Commons Zero Universal License)
لایسنس جامع کرییتیو کامنز صفر (Creative Commons Zero Universal License) را Creative Commons نوشته است و بهعنوان لایسنس کپیرایت عمومی شناخته میشود. این یعنی نرمافزارهای دارای کپیرایت میتوانند آزادانه توزیع شوند. این لایسنس موردتأیید OSI نیست و در آن، توسعهدهندگان میتوانند از کد منبع استفاده یا آن را توزیع و اصلاح کنند؛ اما برای اطمینان از دسترسی به این نرمافزار در دامنه عمومی، باید از هرگونه کپیرایت چشمپوشی کنند.
لایسنس The Unlicense
لایسنس Unlicense در سال ۲۰۱۲ منتشر شد و یکی از زیرمجموعههای لایسنسهای همارز با دامنه عمومی محسوب میشود که موردتأیید OSI است. با استفاده از این لایسنس، توسعهدهندگان نرمافزار میتوانند کد منبع را تغییر دهند و از باینری کامپایلشده برای اهداف تجاری و غیرتجاری استفاده کنند. این لایسنس بهمنظور سلب مسئولیت کپیرایت در نرمافزارهای طراحیشده استفاده میشود و از کپیرایت چشمپوشی میکند.
منظور از لایسنس Unlicense چیست؟
جمعبندی
لایسنسها فرهنگ همکاری و کار گروهی را افزایش میدهند و با دردسترس قراردادن بسیاری از پروژههای متنباز، باعث پیشرفت و ترقی مهندسان باتجربه و کمتجربه میشوند. انواع این مجوزها قوانین خاص خود را دارند که کاربر مصرفکننده به پیروی از آنها ملزم است. انتخاب نادرست لایسنس مرتبط با پروژه باعث ایجاد مشکلاتی در روند توسعه و عرضه نرمافزار میشود؛ بههمیندلیل، در این مقاله سعی کردیم با معرفی انواع لایسنس، شما را در انتخاب مجوزهای متنباز یاری کنیم.
سؤالات متداول
۱. منظور از مجوزهای Permissive چیست؟
با استفاده از این مجوزها، به کاربران نرمافزار اجازه داده میشود از کد منبع استفاده کنند و آن را تغییر دهند و بهاشتراک بگذارند.
۲. لایسنس عمومی اکلیپس چه نوع مجوزی است؟
این لایسنس کپی لفت ضعیف توسعهدهندگان نرمافزار را ملزم میکند که تغییرات ایجادشده در کد را منتشر کنند.
۳. آیا لایسنس ام آی تی محدودیتهای زیادی برای استفاده از کد منبع اعمال میکند؟
خیر، License MIT لایسنس نرمافزار مجاز آسانگیری است که محدودیتهای کمی دارد و سازگاری مناسبی در قسمتهای مختلف توسعه نرمافزار از خود نشان میدهد.