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