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

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

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

پیش از تغییر در سورس کدهای موجود، ابتدا باید مجوزهای آن و یا همان لایسنس‌ها را بررسی کنید که این فایل به طور معمول با نام license.txt  در سورس کدها موجود است و یا در سایت اصلی توسعه دهنده کد، در صفحه‌ای به نام  Legal  و یا  Licensing جزییات مربوط به لایسن‌ها آورده می‌شود.

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

انواع لایسنس‌های نرم افزاری

مجوزهای آزاد –   Copy Free

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

انواع کاربرد این نوع لایسنس به شکلی که در ادامه آورده شده است، شناخته می‌شود:

انواع لایسنس‌های نرم افزاری

در قطعه کدهای کوچک و کامپوننت‌ها از نوع BSD  و یا  MIT  استفاده می‌شود که در واقع به معنای اعلام سلب مسئولیت از توسعه دهنده کد است؛ اما لایسنس‌هایی چون  Apache و یا  AFL  دارای توضیحات کاملی از مجوزهای حقوقی است و برنامه‌ها و کدهایی که به طور 0 تا 100 عرضه می‌شوند، معمولا تحت لایسنس Apache  ارائه می‌شوند.

مجوزهای تجاری –  Copy Righted

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

شما پس از دریافت لایسنس مربوطه، ممکن است دسترسی به فایل‌های کامپایل شده ( closed source) و یا سورس کد اصلی  (open source  ) را داشته باشید؛ اما همچنان اجازه توزیع آن کدها را نخواهید داشت. این دسته از مجوزها استاندارد خاص و تعریف شده‌ای ندارند و حتما پیش از استفاده فایل لایسنس را به طور کامل مطالعه بفرمایید.

مجوزهای کپی لفت قوی – Strong Copy Lefted

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

انواع لایسنس‌های نرم افزاری کپی لفت قوی را در شکل زیر مشاهده نمایید:

انواع لایسنس‌های نرم افزاری کپی لفت قوی

مجوزهای کپی لفت ضعیف – Weak Copy Lefted

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

انواع لایسنس‌های نرم افزاری کپی لفت ضعیف را در شکل زیر مشاهده نمایید:

انواع لایسنس‌های نرم افزاری کپی لفت ضعیف

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

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