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

בדף הזה נסביר על שתי משימות חשובות של שותפים ליצירת תוכן: חתימה על הסכמי רישיון של שותפים ליצירת תוכן ודאגה לשימוש נכון בכותרות הרישוי בקוד.

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

כל שותף שמוסיף רעיונות, קוד או מסמכים לפרויקט 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 LSer General Public License (LGPL). הנה תיאור הסיבות לכך:

  • Android נועד לאפשר חופש ובחירה. מטרת Android היא לקדם פתיחות בעולם הסלולר, ו-Google לא יכולה לחזות או לקבוע את כל השימושים בתוכנה שלנו. לכן, למרות ש-Google מעודדת את כולם ליצור מכשירים פתוחים וניתנים לשינוי, אנחנו לא חושבים שזה המקום שלנו לאלץ אותם לעשות זאת. השימוש בספריות LGPL עלול להיות מגביל. ריכזנו כאן כמה מהחששות הספציפיים שלנו:

    • בשפה פשוטה יותר, בהתאם לדרישות של LGPL, צריך לשלוח את המקור לאפליקציה, הצעה בכתב לגבי המקור או קישור דינמי של הספרייה שמבוססת על LGPL ולאפשר למשתמשים לשדרג או להחליף את הספרייה באופן ידני. בדרך כלל, תוכנת Android נשלחת כתמונת מערכת סטטית, ולכן הציות לדרישות האלו מגביל את העיצובים של יצרן המכשיר. לדוגמה, למשתמש קשה להחליף ספרייה באחסון Flash לקריאה בלבד.

    • 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.