انواع مجوزها یا لایسنس های مـتن بـاز (Open Source)

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


بررسی و مقایسه بین انواع مجوزهای متن باز (open source)

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

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

  • 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

مجوز GNU

 با وجود این مجوز محدودیت خاصی برای کپی کردن کدها در پروژه‌هایی که لایسنس 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

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

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

هر دو به‌ عنوان مجوزهای متن باز توسط Open Source Initiative پذیرفته شده‌اند. مجوز New BSD که با نام «مجوز سه شرطی» نیز شناخته می‌شود، اجازه توزیع مجدد نامحدود را برای هر هدفی می‌دهد (البته تا وقتی که کپی‌ رایت‌ و رفع تعهدهای این مجوز برقرار باشند). این مجوز یک شرط جالب نیز دارا است به این شکل که استفاده از نام مشارکت‌ کنندگان برای تأیید کارهای انجام شده در پروژه را بدون اجازه شخصی آن‌ها ممنوع می‌کند.

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

مجوز MIT LICENSE

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

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

مجوز CREATIVE COMMONS

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

  •  اعتباربخشی: نویسنده (مؤسس) باید به عنوان خالق اثر نام برده شود؛ سپس می‌توان آن را تغییر داد، توزیع کرد، کپی نمود و به صورت دیگری استفاده کرد.
  •  انتشار تحت مجوز کریتیو کامانز: می‌توان اثر را تغییر داد و توزیع کرد ولی تنها تحت مجوز CC.
  • غیرتجاری: یک اثر تحت این مجوز می‌تواند تغییر داده شود یا توزیع شود ولی نه برای اهداف تجاری (البته عبارت Commercial به‌ معنی «تجاری» کمی مبهم است و هیچ تعریف مشخصی از آن ارائه نشده است)
  •  ممنوعیت اعمال تغییرات: می‌توان اثر دارای چنین مجوزی را کپی کرده یا توزیع کرد، اما نمی‌توانید آن را به هیچ صورت تغییر دهید یا اثری را براساس طرح اصلی ایجاد کنید.

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

مجوز APACHE LICENSE

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

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

مجوز Mozilla Public License

مجوز همگانی موزیلا (Mozilla Public License) یک مجوز نرم‌ افزار آزاد مفصل است که توسط بنیاد موزیلا نوشته و نگهداری می‌شود. از این مجوز به عنوان مجوزی که هم ویژگی‌های مجوز تغییر یافته BSD و هم ویژگی‌های مجوز GPL را دارد، یاد می‌شود که سعی دارد مشکلات و نگرانی‌های توسعه‌ دهندگان نرم‌ افزار آزاد و نرم‌افزار انحصاری را تعادل بخشد. این مجوز دو بار مورد بازبینی قرار گرفته‌ است و در نسخه آخر آن یعنی نسخه 2.0، سعی شده تا سادگی مجوز حفظ شود و سازگاری بهتری با دیگر مجوزها داشته باشد. این مجوز که به اختصار به MPL هم گفته می‌شود، مجوزی است که در موزیلا فایرفاکس، موزیلا تاندربرد و بقیه نرم‌ افزارهای بنیاد موزیلا مورد استفاده قرار می‌گیرد اما اخیراً دیگران هم به استفاده از این مجوز روی آورده‌اند، همانند شرکت Adobe که از این مجوز برای نرم‌ افزار ادوبی فلکس استفاده کرده و همچنین لیبره‌آفیس که از این مجوز به همراه LGPL (نسخه 3) استفاده می‌کند. شرکت‌هایی مانند سان مایکروسیستمز هم از نسخه 1.1 این مجوز برای نوشتن یک مجوز ترکیبی مثل مجوز توسعه و توزیع مشترک استفاده کرده‌اند.

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