مجوز عمومی عمومی گنو ( GNU GPL یا به سادگی GPL ) مجموعه ای از مجوزهای نرم افزار رایگان پرکاربرد است که چهار آزادی را برای اجرا، مطالعه، اشتراک گذاری و اصلاح نرم افزار به کاربران نهایی تضمین می کند.
این مجوز اولین نسخه کپی لفت برای استفاده عمومی بود و در اصل توسط بنیانگذار بنیاد نرم افزار آزاد (FSF)، ریچارد استالمن ، برای پروژه گنو نوشته شد . مجوز به گیرندگان یک برنامه رایانه ای حقوق تعریف نرم افزار آزاد را می دهد.
مجوز GPL چیست؟
این سری های GPL همه هستند مجوزهای کپی لفت ، به این معنی که هر اثر مشتق شده باید تحت شرایط مجوز یکسان یا معادل توزیع شود. این مجوز محدودتر از مجوز عمومی عمومی کمتر است و حتی بیشتر از مجوزهای نرم افزاری مجاز استفاده شده BSD ، MIT و Apache متمایزتر است.
از لحاظ تاریخی، خانواده مجوزهای GPL یکی از محبوب ترین مجوزهای نرم افزاری در حوزه نرم افزارهای آزاد و منبع باز بوده است. برنامههای نرمافزار آزاد برجسته تحت مجوز GPL شامل هسته لینوکس و مجموعه کامپایلر گنو (GCC) است. دیوید آ.
ویلر استدلال میکند که کپی لفت ارائه شده توسط GPL برای موفقیت سیستمهای مبتنی بر لینوکس بسیار مهم بود، و به برنامهنویسانی که به هسته کمک کردند این اطمینان را میدهد که کارشان بهجای بهرهبرداری توسط تمام دنیا به نفع تمام دنیا خواهد بود و رایگان باقی میماند. شرکت های نرم افزاری که مجبور نیستند چیزی به جامعه بدهند.
در سال 2007، نسخه سوم مجوز (GPLv3) برای رفع برخی از مشکلات درک شده با نسخه دوم (GPLv2) منتشر شد که در طول مدت طولانی استفاده از دومی کشف شد. برای به روز نگه داشتن مجوز، مجوز GPL شامل یک بند اختیاری “هر نسخه بعدی” است که به کاربران امکان می دهد بین شرایط اصلی یا شرایط موجود در نسخه های جدید که توسط FSF به روز شده اند، یکی را انتخاب کنند. توسعه دهندگان می توانند هنگام صدور مجوز نرم افزار خود، آن را حذف کنند. به عنوان مثال، هسته لینوکس تحت مجوز GPLv2 بدون بند “هر نسخه بعدی” است
کپی لفت چیست؟
کپی رایت قانونی است که حق استفاده، تغییر، و به اشتراک گذاری آثار خلاق را بدون اجازه صاحب حق چاپ محدود می کند. هنگامی که یک نویسنده برنامه ای را تحت مجوز کپی لفت منتشر می کند، ادعایی در مورد حق چاپ اثر می کند و بیانیه ای صادر می کند که افراد دیگر حق استفاده، تغییر و به اشتراک گذاری اثر را تا زمانی که تعهد متقابل حفظ می شود، دارند.
این بدان معنی است که هر نرم افزاری که بر اساس هر مؤلفه GPL نوشته شده است باید به عنوان منبع باز منتشر شود. نتیجه این است که هر نرم افزاری که از هر جزء منبع باز GPL استفاده می کند (صرف نظر از درصد آن در کل کد) باید کد منبع کامل خود و کلیه حقوق تغییر و توزیع کل کد را آزاد کند.
شرایط و ضوابط مجوز GPL چیست؟
اگر از یک مؤلفه GPL در نرمافزار خود استفاده کردهاید، کل نرمافزار شما یک «کار مبتنی بر» GPL در نظر گرفته میشود و بنابراین:
- شما مجاز به ادعای حق اختراع یا حق چاپ بر روی نرم افزار نیستید. علاوه بر این، شما موظف به نمایش یک اعلامیه حق چاپ، سلب مسئولیت از ضمانت، اعلامیه های GPL دست نخورده و یک کپی از GPL هستید.
- شما مجاز به تغییر مجوز یا معرفی شرایط و ضوابط اضافی نیستید.
- شما تحت تعهد متقابل هستید، به این معنی که شما موظف هستید کد منبع و کلیه حقوق تغییر و توزیع کل کد را آزاد کنید.
آیا GPL قابل اجراست؟
GPL قابل اجرا است زیرا اساساً یک مجوز حق چاپ است. دارندگان حق چاپ نرم افزار GPL می توانند GPL را بر روی آثار توزیع شده یا مشتق شده نرم افزار اعمال کنند.
به عنوان مثال، FSF دارای حق تکثیر بسیاری از قطعات سیستم گنو، مانند مجموعه کامپایلر گنو است. بهعنوان دارنده حق نسخهبرداری، میتواند الزامات حق نسخهبرداری مجوز عمومی عمومی گنو (GPL) را در صورت نقض حق نسخهبرداری در آن نرمافزار اجرا کند.
آیا می توانید نرم افزار/کد GPL را بفروشید؟
بله، مجوز GPL به کاربران این امکان را می دهد که نسخه اصلی و نرم افزار اصلاح شده را بفروشند. ممکن است گیج کننده باشد، اما نرم افزار رایگان از نظر آزادی به عنوان رایگان شناخته می شود نه از نظر قیمت. همانطور که ریچارد استالمن توضیح میدهد، نرمافزار آزاد در «آزادی بیان» به معنای آزاد است، نه در «آبجو رایگان».
با این حال، اگر شخصی برنامه شما را با هزینه ای خریداری کند، GPL به او این اختیار را می دهد که آن را با یا بدون کارمزد برای عموم منتشر کند.
آیا GPL ایمن است؟
آره. GPL هیچ ربطی به امنیت کد ندارد. این فقط یک مجوز است که بر استفاده و توزیع آن حاکم است. در واقع، همانطور که در پستهای قبلی بحث کردیم ، نرمافزار منبع باز ممکن است گاهی اوقات ایمنتر از نرمافزارهای اختصاصی باشد، زیرا افراد بیشتری در حال بررسی و رفع مشکلات هستند.
آیا مجوز GPL به نویسنده نیاز دارد که کد منبع اصلاح شده را منتشر کند؟
GPL از شما میخواهد که کد منبع اصلاح شده را تنها در صورتی منتشر کنید که برنامه اصلاح شده را آزاد کنید. اگر کد منبع برنامه را برای استفاده شخصی تغییر داده اید، نیازی به انتشار کد منبع آن نیست. با این حال، اگر برنامه اصلاح شده را در دسترس عموم قرار دهید، باید کد را نیز عمومی کنید.
تفاوت بین GPLv2 و GPLv3 چیست؟
همیشه سردرگمی در مورد اینکه «کار مبتنی بر» کار دیگری چیست، وجود داشته است، که به نوبه خود باعث ایجاد تعهد متقابل GPL می شود. FSF سعی کرد شفافیت بیشتری به GPLv3 در مورد زمان شروع تعهد متقابل اضافه کند. FSF حتی یک مجوز جدید GPL به نام مجوز Affero نوشت تا به یک سردرگمی خاص که به عنوان “خلاف ASP” گفته می شود، رسیدگی کند.
علاوه بر این، FSF تلاش کرد تا سازگاری GPLv3 را با مجوزهای دیگر افزایش دهد. برای ترکیب دو کد در یک اثر بزرگتر، هر دو برنامه باید اجازه دهند. اگر چنین حقوقی توسط هر دو مجوز برنامه اعطا شود، آنها سازگار هستند. با سازگاری بیشتر GPLv3، FSF گزینه های توسعه را گسترش داد.
سومین تفاوت بین این دو نسخه این است که GPLv3 در تلاشی برای افزایش استفاده در سراسر جهان نوشته شده است. زبان مورد استفاده در GPLv3 برای توصیف حقوق مجوز اصلاح شد تا اطمینان حاصل شود که قوانین بینالمللی آن را همانطور که در نظر گرفته شده بود تفسیر میکند، برخلاف زبان مورد استفاده در GPLv2، که بسیار متمرکز ایالات متحده در نظر گرفته میشود. GPLv3 همچنین به توسعهدهندگان اجازه میدهد سلب مسئولیتهای محلی را اضافه کنند، که به افزایش استفاده از آن در خارج از ایالات متحده نیز کمک میکند.
آیا می توانید مجوز GPL را با مجوزهای دیگر ترکیب کنید؟
اغلب اعتقاد بر این است که کدهای تحت پوشش مجوز GPL را نمی توان با کدهای تحت پوشش سایر مجوزهای نرم افزار منبع باز ترکیب کرد. در حالی که محدودیتهایی وجود دارد، در واقع در GPLv2 و GPLv3 امکانپذیر است.
زبان جدید مورد استفاده در GPLv3 این موضوع را به وضوح بیشتر نشان می دهد. FSF به صراحت اعلام کرده است که GPLv3 با مجوز آپاچی 2.0 سازگار است. با این حال، یک مشکل با مجوز اصلی BSD وجود دارد، زیرا یک الزام خاص را اعمال می کند که در GPL (الزامات تبلیغات برنامه) نیست.
LGPL چه چیزی را پوشش می دهد؟
مجوز عمومی عمومی کمتر (LGPL) یک مجوز مجاز تر است (کپی لفت ضعیف). LGPL برای مجوز نرم افزار آزاد استفاده می شود تا بتوان آن را هم در نرم افزار رایگان و هم در نرم افزار اختصاصی گنجاند .
مجوزهای LGPL و GPL با یک استثنا عمده متفاوت هستند. با LGPL، نیاز به باز کردن کد منبع برای برنامه های افزودنی نرم افزار حذف می شود. شما فقط موظف هستید تغییرات خود را در کتابخانه رایگان اصلی به LGPL ارائه دهید.
از آنجایی که کتابخانه رایگان همیشه مشمول LGPL است، باید برای هر کاربر نرم افزار شما امکان تغییر، کامپایل مجدد یا جایگزینی کتابخانه رایگان LGPL و استفاده از نسخه اصلاح شده آن با نرم افزار شما وجود داشته باشد.
همچنین لازم است مهندسی معکوس کاری را که از کتابخانه استفاده میکند اجازه دهید (یا توجه داشته باشید) تا زمانی که کتابخانه LGPL با نسخههای بعدی اصلاح میشود، اشکالزدایی را فعال کنید.
توجه داشته باشید که LGPL با GPL سازگار است: در صورت تمایل می توانید تصمیم بگیرید که به GPL “ارتقا” کنید و آن را در یک پروژه کاملاً دارای مجوز GPL بگنجانید. با این حال، نمی توانید راه دیگری را انتخاب کنید و کد مجوزدار GPL را به عنوان LGPL مجدداً مجوز دهید.
AGPL چه چیزی را پوشش می دهد؟
AGPL مجوز عمومی عمومی Affero است، نوعی از GPL که به برنامه هایی که روی سرور اجرا می شوند، پاسخ می دهد. اگر توسعهدهندهای برنامهای را که تحت GPL منتشر شده است تغییر دهد، انتظار میرود که برنامه اصلاحشده را تحت همان مجوز منتشر کند، اما اگر این برنامه فقط روی یک سرور اجرا شود، توسعهدهنده واقعاً آن را برای بقیه جهان منتشر نمیکند.
AGPL این مورد را پوشش می دهد. تحت AGPL، توسعه دهنده باید نسخه اصلاح شده برنامه را برای همه کسانی که از این سرویس استفاده می کنند منتشر کند.
بنابراین، اینها ده سوال برتر مجوز GPL شما هستند که به آنها پاسخ داده شده است. آیا بیشتر دارید؟ خوشحال می شوم پاسخ ها را برای شما پیدا کنم.
نویسنده این وبلاگ وکیل نیست و شما نباید این را به عنوان مشاوره حقوقی تعبیر کنید. اطلاعات به صورت موجود ارائه می شود. برای مشاوره حقوقی لطفا با مشاور حقوقی خود تماس بگیرید.