مروری بر اجازه نامه جامع و عمومی گنو (GPL)
کپیرایت در نرمافزار
قانون کپیرایت برای حمایت و حفاظت از حق مالکیت یک اثر (تالیفی، هنری، …) پدید آمده است. مطابق این قانون، حق کپی برداری و انتشار اثر تنها متعلق به پدید آورندهٔ آن بوده و انتشار آن تحت شرایطی که دارندهٔ حق کپیرایت اثر معین میکند امکان پذیر است. در سال ۱۹۸۰ قانون کپیرایت برای حفاظت از نرمافزار اعمال گردید. اختلاف نظر بین گروههای حامی نرمافزار آزاد و بازمتن و شرکتهای نرمافزاری انحصار طلب از آنجا ناشی میشود که تولیدکنندگان نرمافزار با به کار بردن شیوههای مختلف سعی در پنهان کردن ایدهها و طرحهای موجود در پسزمینهٔ نرمافزار میکنند.
قانون کپیرایت، به عنوان مثال در مورد یک کتاب، از تکثیر و فروش آن توسط افرادی غیر از پدیدآورندهٔ اثر جلوگیری میکند. اما ایدهٔ موجود در آن را حفاظت نمیکند. به این ترتیب افراد میتوانند کتاب را مطالعه کرده، ایدهٔ موجود در آن را درک کنند و از آن برای انجام کارهای جدید الهام گیرند. برای درک ایدهٔ موجود در یک نرمافزار، شخص باید کدمنبع (Source Code) آن را در اختیار داشته و مطالعه کند. با وجود اینکه قانون کپیرایت از کدمنبع و از کدباینری نرمافزار محافظت میکند، شرکتهای تولیدکنندهٔ نرمافزارِ انحصاری کدمنبع را در اختیار دیگران قرار نداده و از آن همانند اسرار تجاری محافظت میکنند. اختلاف نظر از همین نقطه شکل میگیرد.
گروههای برنامهنویسان کدباز (Open Source) معتقدند که کدمنبع نرمافزارها باید در اختیار عموم قرار گیرد تا دیگران نیز بتوانند از طرحها و ایدههای موجود در آن استفاده کرده و به این ترتیب دانش برنامهنویسی گسترش پیدا کند. از طرف دیگر، گروههای حامی نرمافزار آزاد پا را فراتر گذاشته و با هرگونه قانون که موجب سلب آزادیهای اساسی کاربران میشود مخالفت میورزند.
در ادامه اجازهنامهٔ جامع و عمومی گنو (GPL) که در همین راستا توسط بنیاد نرمافزارهای آزاد به وجود آمده و حفاظت میشود، برسی میگردد. اما پیش از آن مختصری در مورد آزادیهای اساسی کاربرانِ نرمافزار سخن خواهد رفت.
چهار آزادی اساسی که هر کاربری باید داشته باشد
هیچ شخصی نباید توسط نرمافزاری که استفاده میکند، محدود شود. چهار آزادی اساسی وجود دارد که هر شخصی باید از آن بهرهمند باشد:
آزادی برای استفاده از نرمافزار به هر منظوری
آزادی به اشتراک گذاری نرمافزار با دوستان و همسایگان
آزادی برای تغییر برنامه تا با نیازهای شخصی هماهنگ شود
آزادی به اشتراک گذاری تغییرات انجام شده در نرمافزار
هر نرمافزاری که این چهار آزادی اساسی را نقض نکند، یک نرمافزار آزاد محسوب میشود. به منظور حفظ این آزادیها، مفهومی به نام کپیلفت (CopyLeft) پدید آمد. به این معنی که قوانین کپیرایت به گونهای به کار رود که این آزادیها را برای کلیهٔ کاربران نرمافزار حفظ کند. و این برخلاف آن چیزی است که تولید کنندگان نرمافزارهای انحصاری در پی آن هستند. (برای اطلاعات کاملتر دربارهٔ نرمافزار آزاد، به مقالهٔ تعریف نرمافزار آزاد و چرا نرمافزار نباید مالک داشته باشد مراجعه کنید.)
اجازه نامهٔ عمومی گنو (GNU General Public License) تضمین کنندهٔ آزادی نرمافزار برای کلیهٔ افراد و همچنین حفاظت از آن در نسخههای منتشر شدهٔ بعدی است.
اجازهنامهٔ جامع و عمومی گنو
مطابق قانون کپیرایت، پدیدآورندهٔ اثر میتواند قوانینی را برای نحوهٔ توزیع و کپی برداری از اثر خودش معین کند. به این ترتیب تکثیر و توزیع آن اثر تنها تحت این قوانین امکان پذیر خواهد بود. اجازه نامهٔ عمومی گنو محدودیتهایی را وضع میکند تا هیچ شخصی نتواند آزادیهای اساسی را از شما سلب کند. همچنین، این اجازه نامه تضمین کنندهٔ حفظ این حقوق برای دیگران نیز است. به عنوان مثال اگر شخصی نرمافزاری را که تحت قوانین این اجازه نامه منتشر گردیده دریافت، ویرایش و مجدداً منتشر کند، اجازهٔ تغییر و انتشار مجددِ این نسخهٔ تغییر یافته برای دیگران نیز محفوظ خواهد بود. همچنین مطابق قوانین این اجازهنامه، مولف اصلی برنامه موظف خواهد بود تا کدمنبع برنامه را در اختیار استفاده کنندگان قرار دهد. به این ترتیب کاربران نرمافزار نه تنها میتوانند از ایدهٔ موجود در نرمافزار مطلع گردند، بلکه توانایی ویرایش و تغییر آن مطابق با نیازهای خود را خواهند داشت.
مطابق قوانین این اجازهنامه:
شما میتوانید برنامه را به همان صورت و یا با تغییراتی که خود در آن به وجود آوردهاید مجدداً منتشر کنید با این شرط که نسخهٔ انتشار یافته تحت قوانین همین اجازهنامه منتشر شود و همچنین نسخهای از اجازهنامه در اختیار کاربر قرار گیرد. علاوه بر آن ذکر این نکته که کدام بخش از برنامه توسط شما تغییر یافته است، ضروری است.
شما میتوانید نرمافزار خود را به هر صورت معمول (کد باینری، کدمنبع، و یا Object Code) منتشر کنید. در هر صورت، باید کدمنبع نرمافزار در اختیار کاربر قرار گیرد. اگر این کد همراه با نرمافزار توزیع نمیگردد، باید به روش دیگری در اختیار او قرار گرفته و یا شما تضمین دهید که در صورت درخواست کاربر، تا سه سال بعد از تاریخ انتشار آن، کدمنبع را در اختیارش قرار دهید.
شما میتوانید این نرمافزار را تا هنگامی که از قوانین این اجازهنامه تخطی نکردهاید توزیع کرده و حتی در ازای انجام این توزیع، و یا دادن تضمینی در مورد آن، مبلغی را دریافت کنید.
توجه داشته باشید که قوانین این اجازه نامه تنها در مورد نحوهٔ تکثیر و توزیع یک نرمافزار بوده و هیچگونه محدودیتی در مورد نحوهٔ اجرا و استفاده از آن اعمال نمیکند.
برای آگاهی از قوانین کامل این اجازهنامه به متن اصلی اجازهنامهٔ جامع و عمومی گنو که توسط بنیاد نرمافزارهای آزاد منتشر میگردد، مراجعه کنید. هر چند ترجمهٔ فارسی این اجازهنامه نیز موجود است، تنها متن اصلی آن مرجع قانونی برای توزیع نرمافزار محسوب میگردد.
چگونه این اجازهنامه را در نرمافزارهای خود به کار بریم؟
برای انتشار نرمافزار خود تحت قوانین این اجازهنامه، اعمال زیر را انجام دهید.
چند خط به نرمافزار خود (ترجیحا در ابتدای کدمنبع برنامه) اضافه کنید که در آن اعلان کپیرایت و همچنین این نکته که این نرمافزار آزاد بوده و تحت قوانین اجازهنامهٔ جامع و عمومی گنو منتشر میشود، و هیچگونه تضمینی در رابطه با آن وجود ندارد، ذکر کنید. نداشتن تضمین به این معنی است که شما مسئولیتی در مورد نحوهٔ استفاده از این نرمافزار، و همچنین نسخههایی که توسط دیگران و نه شخص شما (خالق اثر) منتشر میشود، ندارید. نمونهای از این اعلان:
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>
همچنین اطلاعاتی در مورد نحوهٔ تماس با دارندهٔ حق کپیرایت ذکر کنید. اگر نرمافزار خروجیِ قابل مشاهدهای دارد، اعلان کوتاهی دربارهٔ آزاد بودن نرمافزار و اینکه کابر چگونه میتواند اطلاعات کاملتری دربارهٔ کپیرایت نرمافزار به دست آورد در خروجی آن بیاورید. متن کامل اجازهنامه باید به همراه بستهٔ توزیع شدهٔ نرمافزار وجود داشته باشد و یا روشی برای دسترسی به آن ذکر گردد.
اجازهنامهٔ جامع و عمومی گنو به کاربر این اجازه را نمیدهد که نرمافزار منتشر شده تحت قوانین این اجازهنامه را با نرمافزارهای انحصاری ترکیب کند. اگر شما کتابخانهٔ نرمافزار و یا نوع دیگری از نرمافزار را منتشر میکنید و میخواهید مجوز ترکیب با نرمافزارهای انحصاری در آن وجود داشته باشد، از اجازهنامههای کمتر سخت گیرانه (همانند Lesse GPL) استفاده کنید.
پیشنهاداتی برای مطالعهٔ بیشتر
سوالات متداول در مورد اجازهنامهٔ جامع و عمومی گنو کپیلفت چیست؟