בדף הזה מתוארות שתי משימות חשובות של תורמים: חתימה על רישיון כזה ולהבטיח שימוש נכון בכותרות רישוי בקוד.
חתימה על הסכמי רישיון לתורמים
כל שותף שמוסיף רעיונות, קוד או מסמכים לפרויקט Android Open Source Project (AOSP) צריך למלא, לחתום ולשלוח את הסכם הרישיון של שותף ספציפי. אפשר לחתום על ההסכם הזה אונליין באמצעות הכלי לבדיקת קוד. ההסכם מגדיר את התנאים לתרומת קניין רוחני ל-AOSP. הרישיון הזה נועד להגן עליך כתורם, וגם הגנה על הפרויקט, היא לא משנה את הזכויות שלכם להשתמש תרומות לכל מטרה אחרת.
הסכם הרישיון לתורמים לארגונים זמינה לתאגיד (או לישות אחרת) עם עובדים שעובדים על AOSP. הגרסה הזו של ההסכם מאפשרת לתאגיד לאשר תרומות שנשלחו על ידי העובדים הייעודיים שלו, ומעניקים זכויות יוצרים ופטנטים רישיונות.
הסכמי הרישיון של Google לתורמים מבוססים על הסכמים שבהם משתמשת קרן התוכנה Apache, שאפשר למצוא באתר של Apache.
כולל כותרות רישיונות
פרויקט הקוד הפתוח של Android (AOSP) משתמש בכמה קוד פתוח שאושר על ידי יוזמת קוד פתוח רישיונות לתוכנה שלנו.
רישיון Apache, גרסה 2.0 (Apache 2.0) הוא הרישיון המועדף ל-AOSP, ורוב מכשירי Android תוכנות ברישיון באמצעות Apache 2.0. אנחנו שואפים לפעול בהתאם לרישיון המועדף, אבל יש החרגות, שאנחנו מטפלים בהן על בסיס כל מקרה לגופו. לדוגמה, התיקונים לליבה של Linux נמצאים ברישיון GPLv2 עם החרגות למערכת, וניתן למצוא אותם ב-The Linux Kernel Archives.
בתוכנות של מרחב המשתמש (לא ליבה), Google מעדיפה את Apache 2.0 (ורישיונות דומים כמו BSD ו-MIT) על פני רישיונות אחרים כמו GNU Lesser General Public License (LGPL). הנה תיאור הסיבות לכך:
Android מייצגת חופש ובחירה. המטרה של Android היא לקדם בעולם הנייד, ו-Google לא יכולה לחזות או להכתיב את כל בשימוש בתוכנה. לכן, למרות ש-Google מעודדת את כולם לפתוח מכשירים שניתנים לשינוי, אנחנו לא חושבים שזה המקום שלנו לאלץ אותם לעשות זאת. באמצעות ספריות LGPL עשויות להיות מגבילות. ריכזנו כאן כמה מהחששות הספציפיים שלנו:
במילים פשוטות, לפי ה-LGPL נדרשת משלוח של המקור לאפליקציה. A הצעה בכתב עבור מקור; או לקשר את הספרייה בעלת ה-LGPL באופן דינמי ולאפשר למשתמשים לשדרג או להחליף את הספרייה באופן ידני. בדרך כלל, תוכנת Android נשלחת כקובץ אימג' סטטי של מערכת, ולכן תאימות לדרישות האלה מגבילה את העיצובים של יצרני המכשירים. לדוגמה, למשתמש קשה להחליף ספרייה באחסון Flash לקריאה בלבד.
לפי דרישות LGPL, צריך לאשר שינוי לקוחות והנדסה הפוכה לניפוי באגים בשינויים האלה. רוב יצרני המכשירים לא רוצים להיות כפופים בתנאים האלה.
בעבר, ספריות ה-LGPL היו המקור להגבלות רבות לבעיות אצל יצרני מכשירים ומפתחי אפליקציות במורד הזרם (downstream). חינוך מהנדסים בנושאים אלה קשה וגוזלים זמן. כדי ש-Android תצליח, חשוב מאוד שמייצרי המכשירים יוכלו לעמוד בקלות בדרישות הרישיונות.
החששות האלה לא נובעים מביקורת על LGPL או על רישיונות אחרים. Google מעריכה את זה את כל רישיונות הקוד הפתוח והחינמי, ומכבדים את העדפות שלכם. Google החליטה ש-Apache 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.