این صفحه دو وظیفه مهم مشارکتکننده را پوشش میدهد: امضای توافقنامههای مجوز مشارکتکننده و اطمینان از استفاده صحیح از هدرهای مجوز در کد شما.
قراردادهای مجوز مشارکتکننده را امضا کنید
تمام مشارکتکنندگان انفرادی (کسانی که فقط از طرف خودشان مشارکت میکنند) در ایدهها، کدها یا مستندات پروژه متنباز اندروید (AOSP) ملزم به تکمیل، امضا و ارسال یک توافقنامه مجوز مشارکتکننده انفرادی هستند. میتوانید این توافقنامه را به صورت آنلاین از طریق ابزار بررسی کد اجرا کنید. این توافقنامه شرایط مشارکت در مالکیت معنوی AOSP را تعریف میکند. این مجوز برای محافظت از شما به عنوان مشارکتکننده و همچنین محافظت از پروژه است. این مجوز، حقوق شما را برای استفاده از مشارکتهایتان برای هر هدف دیگری تغییر نمیدهد.
توافقنامه مجوز مشارکتکننده شرکتی برای شرکتی (یا نهاد دیگری) که کارمندانش روی AOSP کار میکنند، در دسترس است. این نسخه از توافقنامه به یک شرکت اجازه میدهد تا مشارکتهای ارسالی توسط کارمندان تعیینشده خود را تأیید کند و مجوزهای حق چاپ و ثبت اختراع را اعطا کند.
گوگل توافقنامههای مجوز مشارکتکنندگان خود را بر اساس توافقنامههای مورد استفاده توسط بنیاد نرمافزار آپاچی تنظیم میکند که میتوانید آنها را در وبسایت آپاچی بیابید.
سربرگهای مجوز را وارد کنید
پروژه متنباز اندروید (AOSP) از چندین مجوز متنباز مورد تأیید طرحهای متنباز برای نرمافزار خود استفاده میکند.
مجوز آپاچی، نسخه ۲.۰ (Apache 2.0) مجوز ترجیحی برای AOSP است و اکثر نرمافزارهای اندروید با آپاچی ۲.۰ مجوز دارند. در حالی که این پروژه تلاش میکند تا به مجوز ترجیحی پایبند باشد، استثنائاتی وجود دارد که به صورت موردی بررسی میشوند. به عنوان مثال، پچهای هسته لینوکس تحت مجوز GPLv2 با استثنائات سیستمی هستند که میتوانید آنها را در بایگانی هسته لینوکس پیدا کنید.
برای نرمافزارهای فضای کاربری (غیرهستهای)، گوگل آپاچی ۲.۰ (و مجوزهای مشابه مانند BSD و MIT) را به مجوزهای دیگری مانند مجوز عمومی محدودتر گنو (LGPL) ترجیح میدهد. دلیل آن به شرح زیر است:
اندروید درباره آزادی و حق انتخاب است. هدف اندروید ترویج باز بودن در دنیای موبایل است و گوگل نمیتواند همه کاربردهای نرمافزار ما را پیشبینی یا دیکته کند. بنابراین، در حالی که گوگل همه را به ساخت دستگاههای باز و قابل تغییر تشویق میکند، فکر نمیکنیم که در جایگاهی باشیم که آنها را مجبور به انجام این کار کنیم. استفاده از کتابخانههای LGPL میتواند محدودکننده باشد. در اینجا برخی از نگرانیهای خاص ما آمده است:
به عبارت ساده، LGPL مستلزم ارسال سورس به برنامه؛ پیشنهاد کتبی برای سورس؛ یا پیوند پویای کتابخانهی تحت LGPL و اجازه دادن به کاربران برای ارتقاء یا جایگزینی دستی کتابخانه است. نرمافزار اندروید معمولاً به صورت یک تصویر سیستمی ایستا ارسال میشود، بنابراین رعایت این الزامات، طراحیهای سازندهی دستگاه را محدود میکند. به عنوان مثال، جایگزینی یک کتابخانه در حافظهی فلش فقط خواندنی برای کاربر دشوار است.
LGPL برای اشکالزدایی از این اصلاحات، اجازهی اصلاح توسط مشتری و مهندسی معکوس را الزامی میداند. اکثر سازندگان دستگاه نمیخواهند به این شرایط پایبند باشند.
از نظر تاریخی، کتابخانههای LGPL منبع بسیاری از مشکلات مربوط به انطباق با قوانین برای سازندگان دستگاههای پاییندستی و توسعهدهندگان برنامهها بودهاند. آموزش مهندسان در مورد این مسائل دشوار و زمانبر است. برای موفقیت اندروید بسیار مهم است که سازندگان دستگاه بتوانند به راحتی با این مجوزها مطابقت داشته باشند.
این نگرانیها انتقاد از LGPL یا سایر مجوزها نیستند. گوگل از همه مجوزهای رایگان و متنباز قدردانی میکند و به ترجیحات مجوز دیگران احترام میگذارد. گوگل تصمیم گرفته است که آپاچی ۲.۰ بهترین گزینه برای اهداف ما است.
هنگام ارسال کدی که قرار است در AOSP گنجانده شود، باید از استفاده صحیح از هدرهای مجوز اطمینان حاصل کنید. بخشهای زیر نحوه مدیریت هدرهای مجوز برای فایلهای جدید و کدهای موجود را توضیح میدهد.
بهترین شیوههای مجوز و حق نشر را دنبال کنید
این بهترین شیوهها را برای سربرگ حق نشر و مجوز دنبال کنید:
حق نشر موجود را تغییر ندهید. برای مثال، اگر میخواهید فایلی را به AOSP اضافه کنید که حاوی کدی است که در فایلی با اخطار حق نشر مخصوص به خود ایجاد شده است، باید آن اخطار حق نشر را از فایل اصلی حفظ کنید.
اگر یک فایل منبع کاملاً جدید اضافه میکنید، از حق نشر پیشفرض AOSP و سربرگ مجوز زیر استفاده کنید، مگر اینکه پروژهای که در آن مشارکت میکنید دارای مجوز از پیش تعریفشدهی متفاوتی باشد:
Copyright (C) yyyy The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.