موافقت نامه ها و سرفصل های مجوز مشارکت کننده

این صفحه دو وظیفه مهم مشارکت‌کننده را پوشش می‌دهد: امضای قراردادهای مجوز مشارکت‌کننده و اطمینان از استفاده صحیح از سرصفحه‌های مجوز در کد شما.

قراردادهای مجوز مشارکت کننده را امضا کنید

همه مشارکت‌کنندگان منفرد (کسانی که فقط از طرف خودشان مشارکت می‌کنند) ایده‌ها، کد یا مستندات پروژه منبع باز Android (AOSP) ملزم به تکمیل، امضا و ارسال یک قرارداد مجوز مشارکت‌کننده فردی هستند. می توانید این قرارداد را به صورت آنلاین از طریق ابزار بررسی کد اجرا کنید. این توافقنامه شرایط کمک به مالکیت معنوی به AOSP را تعریف می کند. این مجوز برای محافظت از شما به عنوان یک مشارکت کننده و همچنین حفاظت از پروژه است. این حقوق شما را برای استفاده از مشارکت های خود برای هر هدف دیگری تغییر نمی دهد.

قرارداد مجوز مشارکت شرکتی برای یک شرکت (یا نهاد دیگر) با کارمندانی که در AOSP کار می کنند در دسترس است. این نسخه از توافقنامه به یک شرکت اجازه می دهد مشارکت های ارسال شده توسط کارمندان تعیین شده خود را مجاز کند و مجوزهای حق چاپ و حق اختراع را اعطا کند.

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

شامل سرصفحه های مجوز

پروژه متن باز Android (AOSP) از چند مجوز منبع باز تأیید شده برای نرم افزار ما استفاده می کند.

مجوز آپاچی، نسخه 2.0 (Apache 2.0) مجوز ترجیحی برای AOSP است و اکثر نرم افزارهای اندروید دارای مجوز Apache 2.0 هستند. در حالی که پروژه تلاش می کند به مجوز ترجیحی پایبند باشد، استثناهایی وجود دارد که به صورت موردی رسیدگی می شود. به عنوان مثال، وصله‌های هسته لینوکس تحت مجوز GPLv2 با استثناهای سیستم هستند، که می‌توان آن‌ها را در آرشیو هسته لینوکس پیدا کرد.

برای نرم‌افزار فضای کاربر (غیر هسته)، Google Apache 2.0 (و مجوزهای مشابه مانند BSD و MIT) را به مجوزهای دیگر مانند مجوز عمومی عمومی کوچک گنو (LGPL) ترجیح می‌دهد. در اینجا دلیل آن است:

  • اندروید درباره آزادی و انتخاب است. هدف اندروید ترویج باز بودن در دنیای موبایل است و گوگل نمی تواند همه کاربردهای نرم افزار ما را پیش بینی یا دیکته کند. بنابراین، در حالی که گوگل همه را تشویق می‌کند که دستگاه‌های باز و قابل تغییر بسازند، ما فکر نمی‌کنیم این وظیفه ماست که آنها را مجبور به انجام این کار کنیم. استفاده از کتابخانه های LGPL می تواند محدود کننده باشد. در اینجا برخی از نگرانی های خاص ما آمده است:

    • به زبان ساده، LGPL نیازمند ارسال منبع به برنامه است. پیشنهاد کتبی برای منبع؛ یا پیوند دادن کتابخانه LGPL-ed به صورت پویا و اجازه دادن به کاربران برای ارتقا یا جایگزینی دستی کتابخانه. نرم‌افزار اندروید معمولاً به‌عنوان یک تصویر سیستم استاتیک ارسال می‌شود، بنابراین رعایت این الزامات طراحی‌های سازنده دستگاه را محدود می‌کند. به عنوان مثال، جایگزین کردن کتابخانه در حافظه فلش فقط خواندنی برای کاربر دشوار است.

    • LGPL برای اشکال‌زدایی این تغییرات نیاز به مجوز اصلاح مشتری و مهندسی معکوس دارد. اکثر سازندگان دستگاه نمی خواهند به این شرایط متعهد شوند.

    • از لحاظ تاریخی، کتابخانه های LGPL منبع بسیاری از مشکلات انطباق برای سازندگان دستگاه های پایین دست و توسعه دهندگان برنامه بوده است. آموزش مهندسان در مورد این مسائل دشوار و زمان بر است. برای موفقیت اندروید بسیار مهم است که سازندگان دستگاه بتوانند به راحتی مجوزها را رعایت کنند.

این نگرانی ها انتقاد از LGPL یا مجوزهای دیگر نیست. Google از همه مجوزهای منبع باز و رایگان قدردانی می کند و به اولویت های مجوز دیگران احترام می گذارد. گوگل تصمیم گرفته است که آپاچی 2.0 بهترین گزینه برای اهداف ما است.

هنگام ارسال کد برای گنجاندن در 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.