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

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

این مساله باعث میشه همه ما درباره اینکه مجوز متن باز درباره چه چیزی بحث می‌کنن کنجکاو بشیم. ولی همش یه کاری پیش میاد و فرصت نمی‌کنیم یه نگاه دقیق از نزدیک به انواع مجوز متن باز بندازیم.

ساده ترین توضیح اینه که مجوزهای منبع آزاد ، قراردادهای قانونی و الزام آور بین نویسنده و کاربر یک مؤلفه نرم افزاری هستن و اعلام می‌کنن که این نرم افزار متن باز می‌تونه در شرایط تجاری تحت شرایط مشخص استفاده بشه.

مجوز همون چیزیه که کد رو به یک مؤلفه منبع باز تبدیل می‌کنه. بدون مجوز متن باز ، مؤلفه نرم افزار غیر قابل استفاده توسط دیگرانه، حتی اگه به طور عمومی در GitHub ارسال شده باشه.

تعداد و آمار مجوز متن باز

هر مجوز متن باز بیان می کنه که کاربران مجاز به انجام چه کارهایی با مؤلفه های نرم افزار هستن و تعهدات شون و اونچه می‌تونن طبق شرایط و ضوابط انجام بدن یا انجام ندن چیه.

این ممکنه خیلی راحت و سرراست به نظر برسه، ولی بد نیست بدونید که بیش از ۲۰۰ مجوز متن باز مختلف وجود داره که عمرا بتونید همه‌شون رو بخونید و مفادشون رو از بر کنید.

آمار و اطلاعات
بیش از ۲۰۰ مجوز متن باز و لایسنس اوپن سورس مختلف وجود داره

با توجه به پیچیدگی و الزامات، وظیفه سازمانها اینه که تصمیم بگیرن، کدوم مجوزها با سیاستهاشون سازگاره تا مطمئن بشن همه چیز تحت کنترله.

مجوزهای آزاد و باز Free License

مجوزهای باز Open به دنبال اعطای حقوق متعدد به کاربر به صورت رایگان یا پولی هستند. واژه Free در این عنوان بیش از آنکه به معنی رایگان باشد به معنی آزاد و باز است. چند مثال خوب و رایج از مجوز آزاد و Free License عبارتند از مجوز یا پروانه عمومی همگانی گنو به انگلیسی GNU GPL و مجوز توزیع نرم افزار برکلی BSD و بعضی از انواع اجازه نامه کرییتیو کامنز که در فارسی ترجمه اش کردن اجازه نامه مشترکات خلاقانه

مجوز Copyleft و مجوز Permissive دو نوع مجوز متن باز

دو دسته اصلی مجوزهای متن باز اغلب نیاز به توضیح جدی دارن. لایسنس اوپن سورس ر. میشه به دو دسته اصلی تقسیم کرد:

  • مجوزهای کپی لفت Copyleft License
  • مجوزهای Permissive

این تقسیم بندی بر اساس الزامات و محدودیت هایی نجام میشه که مجوز به کاربران اعمال میکنه.

کپی رایت یا حق تکثیر به انگلیسی Copyright d یک قانونه که حق استفاده، اصلاح و به اشتراک گذاری آثار خلاقانه رو بدون اجازه صاحب حق تکثیر ، محدود می‌کنه.

مثال
برای مثال پایین همه وبسایت های اینترنتی نوشته «کلیه حقوق محفوظ است» یا وبسایت‌های انگلیسی می‌نویسن Copyright©۲۰۲۰

مجوز اوپن سورس Copyleft

به مواردی مثل موزیک، فیلم و غیره که در تملک معنوی خالق اونهاست فکر کنید. وقتی یک برنامه نویس یا توسعه دهنده برنامه ای رو تحت مجوز متن باز از نوع کپی لفت به انگلیسی Copyleft منتشر می‌کنه، همچنان مدعی حق تکثیر اثر هست ولی بیان می‌کنه که بقیه حق دارن تا زمانی که تعهد مشابهی کنن، از اون نرم افزار استفاده کنن، تغییرش بدن و یا به اشتراک بگذارن.

به طور خلاصه، اگه بقیه از مؤلفه‌ای با این نوع مجوز متن باز استفاده می‌کنن، اونها هم باید کد منبع خودشون رو برای استفاده دیگران باز بذارن.

نکته
من یه نرم افزار می‌نویسم و با مجوز کپی لفت منتشرش میکنم. تو حق داری کد منبع من رو برداری و تغییر بدی و هر استفاده ای دلت خواست بکنی، ولی باید بذاری بقیه هم همین کار رو با کد منبع تو بکنن. بستن راه اشتراک برای استفاده عموم ممنوع!

مجوز Permissive برای منبع باز یک مجوز منبع باز غیر Copyleft محسوب میشه که آزادی استفاده، اصلاح و توزیع مجدد رو تضمین می‌کنه. ضمن اینکه اجازه میده که آثار، مشتق اختصاصی نیز داشته باشن.

مجوز متن باز Permissive

مجوز منبع باز Permissive ، محدودیت های خیلی کمی در مورد نحوه استفاده دیگران از مؤلفه های منبع آزاد اعمال می‌کنن.

به این معنی که این نوع مجوز درجات مختلف آزادی استفاده، اصلاح و توزیع مجدد کد منبع باز رو مجاز می‌دونه.

این نوع مجوزها اجازه می‌دن که تقریبا هر کاری که دل تون میخواد با موضوع مجوز بکنید و تقریبا در برابرش هیچ تعهد خاصی ازتون نمی‌گیره.

چند مجوز متن باز مختلف و تفاوت گواهینامه های اوپن سورس

توجه به این نکته مهمه که مجوز متن باز خوب یا بد وجود نداره و هیچ یک از مجوزها بهتر از دیگری نیستن.

هر کسی می‌تونه یک مجوز متن باز متناسب با تفکرات خودش ایجاد کنه، به همین دلیله که تعداد زیادی مجوز وجود داره.

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

سازمان پیشگامان متن باز OSI

به منظور کمک به کاهش بار تصمیم گیری شما سازمان پیشگامان متن باز یا Open Source Initiative به اختصار OSI لیستی از مجوزهای تایید شده رو نگهداری میکنه که متشکل از حدود ۸۰ مجوز متن باز مختلف میشه که بیشتر مورد استفاده قرار گرفتن.

از بین ده ها پروانه منبع باز در لیست تایید شده OSI ، بعضی هاشون خیلی پررنگ تر و پر ترافیک تر هستن و توسط بسیاری از پروژه های منبع باز در خارج از کشور استفاده می‌شن.

من یک لیست از این مجوزها با بیشترین استفاده رو منتشر کردم که در ادامه می‌خونید.

مجوز عمومی همگانی گنو (GPL) یا GNU General Public License

مجوز عمومی همگانی گنو محبوب ترین مجوز متن باز در دنیاست. ریچارد استالمن GPL رو برای محافظت از نرم افزار GNU در برابر اختصاصی شدن ، ایجاد کرد و این یک اجرای خاص از مفهوم Copyleft اونه.

GPL یک مجوز Copyleft محسوب میشه. یعنی که هر نرم افزاری که بر اساس هر مؤلفه GPL نوشته شده باشه باید به صورت منبع آزاد منتشر بشه. نتیجه اینه که هر نرم افزاری که از هر مؤلفه منبع باز GPL (صرف نظر از درصد آن در کل کد) استفاده کنه، ملزم به انتشار کد منبع کامل خودش و کلیه حقوق برای تغییر و توزیع کل کد هست.

البته همیشه در مورد یک کار «مبتنی بر» یک کار دیگه ، بحث و سردرگمی وجود داشته، که به نوبه خودش باعث تعهد متقابل GPL می‌شه.

پرسش
چطوری باید بفهمیم کدوم کار بر مبنای اون یکی ایجاد شده؟

بنیاد نرم افزار آزاد FSF

بنیاد نرم افزار آزاد یا Free Software Foundation به اختصار FSF تلاش کرد تا GPLv3 رو با توضیح در مورد شروع تعهد متقابل شفاف تر کنه. بنیاد FSF حتی مجوز GPL جدید ، مجوز Affero رو برای پرداختن به یک سردرگمی خاص که بهش «حفره ASP» گفته می‌شه، نوشت.

علاوه بر این، بنیاد FSF سعی در افزایش سازگاری GPLv3 با سایر مجوزها داشت. برای ترکیب دو کد در یک کار بزرگتر، هر دو برنامه باید اجازه این رو بدن. اگه چنین حقوقی توسط مجوزهای هر دو برنامه اعطا بشه، اونها با هم سازگار هستن. بنیاد FSF با سازگاری بیشتر GPLv3 ، گزینه های توسعه رو گسترش داد.

سومین تفاوت این دو نسخه در اینه که GPLv3 در تلاش برای افزایش استفاده در سراسر جهان نوشته شده. زبانی که در GPLv3 برای توصیف حقوق پروانه استفاده شده اصلاح شد تا اطمینان حاصل بشه که قوانین بین المللی اون رو به عنوان FSF در نظر می‌گیرن، برخلاف زبان مورد استفاده در GPLv2 که خیلی موضوعیت قوانین کشور ایالات متحده امریکا رو در نظر گرفته بود. نسخه GPLv3 همچنین به توسعه دهنده ها این امکان رو میده که سلب مسئولیت های محلی رو اضافه کنن، که به افزایش مصرف اون در خارج از ایالات متحده هم کمک می‌کنه.

مجوز متن باز آپاچی Apache License

مجوز Apache یک مجوز متن باز هست که توسط بنیاد نرم افزار Apache به انگلیسی Apache Software Foundation یا به اختصار ASF منتشر شده.

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

بنیاد نرم افزار آپاچی ASF

گروه Apache (بعداً به نام بنیاد نرم افزار Apache) اولین نسخه از مجوز خودش رو در سال ۱۹۹۵ منتشر کرد، اما بعیده که ماژول‌ها یا پکیج‌هایی دیده باشید که هنوز این مجوز رو داشته باشن.

در سال ۲۰۰۰، وقتی که برکلی اعتراض و استدلال مطرح شده توسط بنیاد نرم افزار آزاد رو پذیرفت و بند تبلیغاتی اش رو از مجوز BSD حذف کرد و مجوز اصلاح شده BSD رو ایجاد کرد، آپاچی هم دست به کار شد و مجوز آپاچی نسخه ۱.۱ رو ایجاد کرد.

حذف بند تبلیغات به این معنی بود که مواد تبلیغاتی مربوط به آثار مشتق شده از محصولات دارای مجوز آپاچی دیگه نیازی به انتساب مجوز آپاچی رو ندارن. کافی بود که عنوان مجوز رو فقط در مستندات بیاریم.

در سال ۲۰۰۴ ، بنیاد نرم افزار آپاچی ASF تصمیم گرفت از مدل BSD کمی جدی تر فاصله بگیره و با اعطای حق ثبت اختراعات و تعریف دقیق از مفاهیمی که از آن استفاده می‌کنه برای انسجام بیشترش، مجوز آپاچی نسخه ۲.۰ رو تولید کرد.

مجوز همگانی مایکروسافت MS-PL یا Microsoft Public License

مجوز همگانی مایکروسافت یک مجوز نرم افزاری متن باز و آزاد هست که توسط مایکروسافت منتشر شده که اون رو برای پروژه های خودش که به صورت منبع آزاد منتشر میشن نوشته.

شما می‌تونید کارهای اصلی یا مشتق شده نرم افزارهای تحت مجوز Ms-PL رو تکثیر و توزیع کنید. با این وجود، نمی‌تونید از نام، آرم یا علائم تجاری یک مشارکت کننده استفاده کنید. مجوز MS-PL با عدم ارائه صریح ضمانت یا گارانتی برای کدی که شما نوشتین، از شما به عنوان نویسنده محافظت می‌کنه. بنابراین اگر بعضی از قسمت‌های کد خوب کار نکنه، نویسنده مسئول نیست.

نکته
مجوز Ms-PL مایکروسافت میگه این کد هست بدون گارانتی و وارانتی. دوست داری ورش دار و استفاده کن. هر مساله ای پیش بیاد کسی مسولیتش رو قبول نمیکنه. با حواس جمع ازش استفاده کن!

وقتی نرم افزار (یا بخشی از اون) رو تحت Ms-PL توزیع می‌کنید، الزامی به توزیع کد منبع اون نیست. اگه مایل باشید می‌تونیداین کار رو انجام بدید، ولی هیچ اجباری در توزیع کد منبع وجود نداره. تنها چیزی که باید رعایت کنید اینه که باید اطلاعایه کپی رایت ، حق ثبت اختراع ، علائم تجاری و نام و مشخصات مولف رو که در نرم افزار موجوده رو حفظ و منتشر کنید.

نگاه مجوز همگانی مایکروسافت به نرم افزار کامپایل شده

حتی اگه بخشی از یک نرم افزار رو در قالب کد منبع اون توزیع می‌کنید، باید نسخه کامل مجوز رو همراه با توزیع خودتون ارائه بدید.

نکته
کلا در مجوز Ms-PL رد و اثر نویسنده باید همیشه در هر حالتی حفظ بشه و جز این کار دیگه ای لازم نیست انجام بدید.

اگه بخشی از نرم افزار رو در فرم کامپایل شده توزیع کنید، باید این کار رو با مجوز دیگری که با Ms-PL مطابقت داره انجام بدید.

توجه به این نکته ضروریه که سند شرایط استفاده از Ms-PL بسیار کوتاه، مختصر و با زبانی بسیار منسجم نوشته شده. مایکروسافت خواسته تا با جامعه متن باز به انگلیسی Open Source Community بسیار واضح و صریح گفتگو کنه چون می‌دونه که تنها با این کاره که نرخ پذیرش این مجوز افزایش پیدا خواهد کرد.

مجوز توزیع نرم افزار برکلی Berkeley Software Distribution یا BSD

مجوزهای BSD یا مجوز اصلی BSD و دو نوع اون

  • مجوز اصلاح شده BSD نسخه ۳ بندی
  • مجوز ساده شده BSD یا مجوز FreeBSD نسخه ۲ بندی

خانواده ای از مجوزهای نرم افزار آزاد Permissive هستن.

مجوز BSD به شما امکان می‌ده تا زمانی که نسخه ای از اعلامیه کپی رایت ، لیست شرایط و سلب مسئولیت رو همراه نرم افزار می‌کنید، آزادانه کد نرم افزار رو در قالب کد منبع یا باینری تغییر بدید و توزیع کنید.

مجوز اصلی BSD یا مجوز BSD نسخه ۴ بندی نیز حاوی یک بند تبلیغاتی و یک بند غیر تأیید شده است (توضیحات مفصل در مورد این بندها در سؤالات زیر ارائه می شه).

مجوز BSD اصلاح شده یا مجوز BSD نسخه ۳ بندی با حذف بند تبلیغاتی از مجوز اصلی BSD تشکیل شد. علاوه بر این ، نسخه FreeBSD یا مجوز BSD نسخه ۲ بندی با حذف بند عدم تایید از مجوز BSD اصلاح شده یا مجوز ۳ بندی BSD ایجاد شد.

مجوز مشترک توسعه و توزیع Common Development and Distribution License به اختصار CDDL

محوز CDDL یک مجوز متن باز است که توسط Sun Microsystems برای جایگزینی مجوز عمومی Sun به اختصار SPL یا Sun Public License منتشر شده. شرکت Sun (در حال حاضر شرکت اوراکل) مجوز CDDL رو به عنوان نسخه ۲ مجوز SPL در نظر گرفته بود.

در توسعه این لایسنس اوپن سورس از مجوز همگانی موزیلا یا Mozilla Public License یا به اختصار مجوز MPL الهام گرفته شده. شرکت Sun قبل از مهاجرت به CDDL در ۲۰۰۴، نرم افزارهای آزاد / نرم افزارهای منبع آزاد خودش رو تحت مجوز SPL خودش منتشر می‌کرد. CDDL معمولاً به عنوان نسخه تمیز شده MPL لقب گرفته و به منظور قابلیت استفاده مجدد ساخته شده.

شما مجاز به تولید و توزیع هرگونه اثر اصلی یا مشتقات نرم افزاری دارای مجوز تحت CDDL هستید. با این شرط که نباید اعلامیه کپی رایت به انگلیسی Copyright ، حق ثبت اختراع به انگلیسی Patent یا علائم تجاری به انگلیسی Trademark موجود در نرم افزار رو حذف کرده یا تغییر بدید.

همچنین باید اشارات مربوط به مجوز یا متونی که اشاره به نام و مشخصات مشارکت کننده یا توسعه دهنده اولیه دارن رو حفظ کنید.

مجوز CDDL و نسخه کامپایل شده نرم افزار

هنگامی که نسخه باینتری و فایل اجرایی نرم افزار خودتون رو توزیع می‌کنید ( به هر شکل غیر از کد منبع )  ملزم به ارائه کد منبع هم تحت مجوز CDDL هستید. نسخه باینری یا قابل اجرا ممکنه تحت CDDL یا هر مجوز سازگار با CDDL منتشر بشه.

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

مثال
هر قسمتی از فایل های شما که اقتباسی به هر نوع و به هر شکل از فایل های نرم افزار اصلی هستند به صورت کد منبع باید تحت مجوز CDDL در کنار باینری ها منتشر و ارائه بشن و نمی تونید بگید اینها کار خود منه و منتشرش نمیکنم

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

همچنین باید یک کپی از CDDL رو با هر توزیعی از کد منبع منتشر کنید. هر تغییری که ایجاد می‌کنید، باید در یک اعلامیه در فایل های تغییر یافته، خودتون رو به عنوان اصلاح کننده و تغییر دهنده معرفی کنید.

مجوز همگانی ایکلیپس Eclipse Public License به اختصار EPL

مجوز همگانی Eclipse یا به اختصار مجوز EPL بک مجوز متن باز محسوب میشه که توسط بنیاد ایکلیپس به انگلیسی Eclipse Foundation تهیه شده. این لایسنس اوپن سورس از مجوز مشترک همگانی به انگلیسی Common Public License به اختصار مجوز CPL گرفته شده است.

کد منبع نرم افزار Eclipse که قبلا تحت مجوز CPL منتشر می‌شد در حال حاضر تحت مجوز EPL منتشر می‌شود.

مجوز EPL یک مجوز Copyleft است. اگر یک جزء نرم افزاری تحت گواهینامه EPL رو تغییر بدید و از اون در قالب کد منبع نرم افزار خودتون توزیع کنید، لازمه که کد اصلاح شده رو تحت EPL منتشر کنید. اگه چنین برنامه ای رو در فرم کد شیء و به صورت باینریمنتشر می‌کنید، باید اعلام کنید که کد منبع رو در صورت درخواست کاربر در اختیارش قرار خواهید داد. همچنین لازمه که روش درخواست کد منبع رو به صورت شفاف اعلام کنید.

البته بنیاد Eclipse اعلام کرده که صرفاً اتصال یا تعامل با افزونه یا پکیج Eclipse یک کار مشتق شده محسوب نمیشه. اگه برنامه ای رو با یک ماژول یا جزء EPL مجدداً توزیع می‌کنید، موظف هستید که متن مجوز کامل و کپی رایت رو درج کنید.

مجوز متن باز EPL از نویسنده در برابر دعاوی یا آسیب های احتمالی ناشی از استفاده از ماژول‌ها و اجزای نرم افزاری در کالاهای تجاری محافظت می‌کنه. همچنین کار توسعه دهنده رو به عنوان ثبت اختراع به رسمیت می‌شناسه.

مجوز ام آی تی MIT License

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

سادگی این مجوز دلیل نرخ پذیرش بسیار بالای اون بین برنامه نویسان مختلفه.