הסכמי רישיון וכותרות של שותפים תורמים

בדף הזה מוסבר על שתי משימות חשובות של תורמים: חתימה על הסכמי רישיון לתורמים (CLA) והקפדה על שימוש נכון בכותרות רישוי בקוד.

חתימה על הסכמי רישיון לתורמים

כל התורמים האישיים (אלה שתורמים רק בשם עצמם) של רעיונות, קוד או תיעוד ל-Android Open Source Project‏ (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 Kernel Archives.

בתוכנות במרחב המשתמש (שאינן ליבת מערכת ההפעלה), 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.