بررسی و مقایسهٔ بین انواع مجوزهای اپن‌سورس

وقتی قصد دارید پروژه‌ای را اپن‌سورس کنید، ابتدا به مجوزی نیاز دارید که نحوهٔ توزیع، تغییرات، استفادهٔ شخصی/تجاری و غیره را به طور خودکار حل‌وفصل کرده باشد. مجوزهای اپن‌سورس زیادی برای انتخاب وجود دارند که از جملهٔ آن‌ها می‌توان MIT ،GNU GPL ،Apache 2.0 ،Creative Commons ،BSD و غیره را نام برد. هر کدام از آن‌ها ویژگی‌های مخصوص به خود را دارند که حتی مالکیت و اعتبار پروژه را نیز تعیین می‌نمایند. در این مقاله قصد داریم به بررسی و مقایسهٔ رایج‌ترین لایسنس‌های اپن‌سورسی بپردازیم. در ادامه با سکان آکادمی همراه باشید.

اگر بخواهید از گیت‌هاب برای ذخیرهٔ سورس‌کد یک پروژه‌ٔ معمولی استفاده کنید، می‌توانید از هر مجوزی که خواستید بهره ببرید و تفاوت آن خیلی مهم نیست چراکه کسی قرار نیست از این پروژهٔ کوچک شما در نرم‌افزار بزرگی استفاده کند و همچنین ایده‌ای در آن نیست که ترس از دست دادن آن را داشته باشید.

اما وقتی می‌خواهید ابزار یا محصولی بسازید که بعدها دیگران بتوانند تغییراتی در آن ایجاد کنند و نسخه‌های مناسب خود را بسازند، باید از لایسنس (مجوز) اپن‌سورس مناسبی برای آن استفاده کنید. مجوزهای زیادی برای انتخاب وجود دارند که از جملهٔ مهم‌ترین آن‌ها می‌توان به موارد زیر اشاره کرد:

- Apache License 2.0
- BSD 3-Clause “New” or “Revised” license
- BSD 2-Clause “Simplified” or “FreeBSD” license
- GNU General Public License (GPL) v3.0
- GNU Library or “Lesser” General Public License (LGPL)
- MIT license
- Mozilla Public License 2.0
- Common Development and Distribution License
- Eclipse Public License
- Creative Commons License

پیش از هرچیز، بایستی ابتدا به ساکن ببینیم که اصلا License (لایسنس به معنی مجوز) چیست؟ از مدت‌ها پیش بحث دربارهٔ این‌که لایسنس چیست وجود داشته که گاهی‌اوقات باعث سردرگمی نیز می‌شود. وقتی کسی برای چیزی مجوز می‌گیرد، در‌واقع از حق خود دفاع می‌کند، مانند کپی‌رایت (یا پتنت) که هرگونه حقی را صرفا برای دارندهٔ آن محفوظ نگاه می‌دارد.

به طور کلی، لایسنس‌ها، راهنمایی‌ها و قوانینی برای استفادهٔ دیگران از کارهای شما را ارائه می‌دهند و این در حالی است که لایسنس‌های اپن‌سورس به دیگران کمک می‌کنند تا بدون نیاز به کسب اجازهٔ شخصی، در پروژهٔ شما مشارکت کرده و یا از آن -بر اساس قوانین لایسنس- استفاده کنند که در ادامه به برخی از این مجوزها و ماهیت‌شان و همچنین شرایط توزیع‌، اعمال تغییرات، استفادهٔ شخصی و غیره اشاره می‌کنیم:

GNU General Public License
- کپی کردن نرم‌افزار: محدودیت خاصی برای کپی کردن کدها در پروژه‌هایی که لایسنس GPL دارند وجود نداشته و می‌توانید کدهای دارای این مجوز را به‌سادگی کپی کنید.

- توزیع: می‌توانید آن را روی فلش یا هاردتان توزیع کنید، یا کدها را در وبسایت خود با لینک دانلود و به همراه همین لایسنس منتشر نموده و یا روی کاغذ پرینت کنید. در‌واقع به هر شکلی که بخواهید می‌توانید پروژه‌های دارای لایسنس GPL را توزیع کنید.

- هزینه: می‌توانید از مخاطب برای ارائهٔ نرم‌افزار به او هزینه دریافت کنید، ولی به خاطر بسپارید که باید یک کپی از GNU GPL را نیز ارائه کنید که به آن‌ها می‌گوید می‌توانند نرم‌افزار را از جای دیگر بدون هزینه دریافت کنند. در کنار این کار می‌توانید دلیلی که به خاطر آن از مخاطب هزینه دریافت می‌کنید را نیز بیان کنید.

- به هر طریق که بخواهید کد را تغییر دهید: اگر می‌خواهید تغییراتی در پروژه ایجاد کنید (اصطلاحا آن را Fork کنید)، این امکان برای شما فراهم است. ویژگی‌هایی که می‌خواهید را حذف و اضافه نمایید تنها به‌شرطی که شما هم پروژه‌ٔتان را تحت مجوز GNU GPL ارائه کنید.

این نکته حائز اهمیت است که تفاوت بین سورس‌کد و توزیع باینری را بدانید؛ به این دلیل که محدودیت‌هایی در رابطه با هر کدام وجود دارد. همچنین، اگر پروژه‌ای از GNU GPL استفاده می‌کند، باید با برخی قوانین استاندارد دربارهٔ کامنت‌گذاری بخش‌های مختلف این مجوز درون کد نیز مطابقت داشته باشد.

GNU LESSER GENERAL PUBLIC LICENSE
حقوق کمتری را برای استفاده در مقایسه با GNU GPL نیاز دارد و معمولا در لایبرری‌ها و پروژه‌هایی استفاده می‌شود که قصد دارند اجازهٔ لینک شدن آن‌ها را به نرم‌افزارهای بدون مجوز GPL و با سورس کد بسته نیز بدهند.

در مورد مجوز GPL، هر پروژه و سورس‌کدی که در پروژهٔ تحت GPL عرضه می‌شود خود نیز باید GPL باشد و کدهای تحت GPL نمی‌تواند در پروژه‌های اختصاصی مورد استفاده قرار بگیرد. LGPL این مورد را کنسل می‌کند و نیاز به مجوز مشابه برای استفاده از کدهای دارای LGPL را از بین می‌برد (به عبارتی نسبت به GPL آزادی بیشتر می‌دهد.)

BSD License
مجوز بی‌اس‌دی بخشی از خانوادهٔ مجوزهای نرم‌افزار آزاد است که در مقایسه با مجوزهای نرم‌افزاری دیگر، محدودیت‌های کمتری دربارهٔ نحوهٔ توزیع دارد. دو نسخهٔ مهم آن عبارت‌اند از:

The New BSD License / The New Modified BSD License -
The Simplified BSD License / FreeBSD License -

که هر دو به‌عنوان مجوزهای اپن‌سورس توسط Open Source Initiative پذیرفته شده‌اند.

مجوز New BSD -که با نام «مجوز 3 شرطی» نیز شناخته می‌شود- اجازهٔ توزیع مجدد نامحدود را برای هر هدفی می‌دهد، البته تا وقتی که کپی‌رایت‌ و رفع تعهدهای این مجوز برقرار باشند. این مجوز یک شرط جالب نیز دارا است به این شکل که استفاده از نام مشارکت‌کنندگان برای تأیید کارهای انجام شده در پروژه را بدون اجازهٔ شخصی آن‌ها ممنوع می‌کند. این شرط در‌واقع به این معنا است که اگر کسی کد فرد شناخته شده‌ای را فورک کرده باشد و تغییراتی را برای ساخت پروژهٔ جدید در آن انجام داده باشد، نمی‌تواند از نام آن فرد شناخته‌شده برای تأیید و تصدیق پروژهٔ خود استفاده کند. تفاوت اصلی میان نسخهٔ جدید و نسخهٔ سادهٔ مجوز BSD در استفاده از این شرط است.

MIT LICENSE
این مجوز، کوتاه‌ترین و احتمالاً پراستفاده‌ترین مورد بین تمامی لایسنس‌های اپن‌سورس است؛ شرایط آن آسان است و به‌اصطلاح از مجوزهای دیگر اپنتر عمل می‌کند. اگر بخواهیم ماهیت اصلی این لایسنس را شرح دهیم، بایستی بگوییم که به وسیلهٔ این مجوز، اجازهٔ استفادهٔ بدون هزینه به هر شخصی که یک کپی از این نرم‌افزار و مستندات مربوط به آن را دریافت کرده داده می‌شود تا در این نرم‌افزار، بدون محدودیت تغییرات خود را انجام دهد که شامل استفادهٔ بدون محدودیت، کپی، تغییر، ترکیب، انتشار، توزیع، استفاده بخشی از مجوز، و/یا فروش کپی‌هایی از نرم‌افزار می‌شود و به افرادی که این نرم‌افزار برای‌شان تهیه شده نیز این موارد اجازه داده می‌شود به شرطی که «ملاحظاتی که در بالا به آن‌ها اشاره شد و همچنین اعلام این لایسنس را در تمامی کپی‌ها یا بخش‌های مهم این نرم‌افزار در معرض دید استفاده‌کنندگان قرار دهند.»

با این مجوز در واقع اجازهٔ استفاده، کپی و تغییر در نرم‌افزار را هر طوری که می‌خواهید، دارید. هیچ کسی نمی‌تواند شما را از به‌کارگیری آن در پروژه‌های دیگر منع کند. می‌توانید نرم‌افزار را تحت این مجوز به صورت رایگان یا از طریق فروش آن عرضه کنید. هیچ شرطی برای این توزیع به هیچ طریقی وجود نخواهد داشت و هر کسی می‌تواند هر تغییری که می‌خواهد را در کدهای تحت لیسانس MIT انجام دهد، مادامی که مجدد تحت این مجوز عرضه شوند.

CREATIVE COMMONS
مجوزهایCreative Commons که به اختصار CC گفته‌ می‌شود، خیلی هم اپن‌سورس نیستند و به طور معمول در پروژه‌های مربوط به طراحی استفاده می‌شوند. انواع مختلفی از این نوع لایسنس وجود دارد که هر کدام برای موارد خاصی ایجاد شده و حق و حقوق معینی را اعطا می‌کنند. یک مجوز CC، چهار بخش اساسی دارد که عبارتند از:

- اعتباربخشی: نویسنده (موسس) باید به عنوان خالق اثر نام برده شود؛ پس از آن، می‌توان آن را تغییر داد، توزیع کرد، کپی نمود و طور دیگری استفاده کرد.

- انتشار با CC: می‌توان اثر را تغییر داد و توزیع کرد ولی تنها تحت مجوز CC.

- غیر تجاری: این اثر می‌تواند تغییر داده شود یا توزیع شود ولی نه برای اهداف تجاری (البته عبارت Commercial به‌معنی «تجاری» کمی مبهم است و هیچ تعریف مشخصی از آن ارائه نشده است!)

- ممنوعیت اعمال تغییرات: می‌توان اثر دارای مجوز را کپی کرده یا توزیع کرد، اما نمی‌توانید آن را به هیچ صورت تغییر دهید یا کاری را بر اساس طرح اصلی ایجاد کنید.

به خاطر داشته باشید، این‌ها قوانین الزامی موجود در همهٔ مجوزهای مبتنی بر CC نیستند؛ برخی از مجوزهای CC ممکن است این شرط‌ها را نداشته باشند، برخی از این شرط‌ها دو به دو ناسازگار هستند و برخی می‌توانند بنا به نیاز، با هم ترکیب شوند.

APACHE LICENSE
حقوق موجود در مجوز آپاچی نسخهٔ 2.0 را می‌توان برای کپی‌رایت‌ها یا پتنت‌ها استفاده کرد؛ بعضی مجوزها را تنها می‌توان روی کپی‌رایت اعمال کرد و برای پتنت‌ها مورد استفاده قرار نمی‌گیرند. قسمتی از جزییات مجوز آپاچی به شرح زیر است:

- حقوق هیچ‌گاه تمام نمی‌شود:‌ وقتی حقوقی تحت مجوز آپاچی ارائه شود، دیگر نیازی به تکرار مجوز برای آن نیست و همیشه می‌توانید تحت همین مجوز از آن‌ها استفاده کنید.

- نفوذ جهانی: حتی اگر حقوقی در یک کشور عرضه شود، به طور خودکار در همهٔ کشورها اعمال می‌شود.

- عرضه رایگان یا دریافت حق امتیاز: بدون هزینه، هزینه بر مبنای استفاده، یا هر نوع دیگری قابل اجرا است.

- حقوق غیرقابل فسخ است: هیچ‌کس نمی‌تواند بیان کند که کار مشتق شدهٔ شما از کدی که تحت این مجوز عرضه شده را دیگر نمی‌توانید استفاده کنید (عبارتی در این مجوز وجود دارد که بیان می‌کند اگر شما از فردی به خاطر نقض پتنت یا هر چیز دیگری تحت این لایسنس شکایت کنید، مجوز شما باطل می‌شود، اما این قضیه فقط به کارهای پتنت شده اختصاص دارد و تا وقتی که شما از کسی شکایت نکنید، نگرانی خاصی وجود ندارد.)

به غیر از موارد فوق، آیا لایسنس‌های کاربردی دیگری می‌شناسید که در فضای اپن‌سورس کاربرد داشته و مورد استفاده قرار می‌گیرند؟ و آیا تاکنون از یکی از مجوزهای فوق در پروژه‌های اپن‌سورس خود استفاده کرده‌اید؟ نظرات و دیدگاه‌های خود را با ما و سایر کاربران سکان آکادمی به اشتراک بگذارید.

Difference Between Different Types Of Open Sources Licenses

0


مرتضی صمدی

فارغ‌التحصیل رشتهٔ نرم‌افزارم و موفق شدم تا‌به‌حال چندتا پروژهٔ نصفه‌و‌نیمه رو ناموفق رها کنم! جستجوگر خوبی هستم، طوری که تا‌به‌حال مشخصات بیشتر سخت‌افزارهای جدید مثلا اسمارتفون‌ها، کنسول‌ها و لپ‌تاپ‌ها رو میدونم؛ اطلاعات سیستم‌عامل‌های جدید مثل لینوکس، ویندوز و مک رو می‌خونم و امتحان می‌کنم، البته اگه بتونم. بازی‌های جدید رو میشناسم ولی بازی نمیکنم (چراش رو نمیدونم) و عاشق اینم که یک بار اتومبیل‌های قدیمی مثل فورد ماستنگ یا کامارو اس‌اس رو برونم.






از طریق این فرم، می توانید بدون ثبت نام نظر دهید و یا اگر قبلا ثبت نام کرده اید، با ورود ناحیه ی کاربری می توانید علاوه بر ثبت نظر، به مدیریت نظرات خود نیز بپردازید.
(فیلد اجباری)
(فیلد اجباری)
(فیلد اجباری)
(فیلد اجباری)