אספקטים משפטיים של תוכנת קוד מקור פתוח

יוני, 2013 / EKW

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

 רקע 

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

מהי "תוכנת קוד פתוח" (Free and Open Source Software)?

תוכנת קוד פתוח מוגדרת כיישום תוכנה אשר קוד המקור שלה פתוח לשימוש הכלל, כך שהמשתמשים בו מקבלים זכויות בלתי חוזרות, בין היתר, לעיין בקוד, לערוך בו שינויים וליצור התאמות וגרסאות חדשות שלו. השימוש כאמור בקוד ניתן ללא תשלום דמי רישיון, אולם הוא כפוף לתנאים המצורפים להסכם הרישיון (License agreement) של כל תוכנת קוד פתוח שכזו.

הרציונל מאחורי הקוד הפתוח הוא פשוט: כאשר מתכנתים רשאים לעיין, להפיץ מחדש, לערוך, לתקן באגים, ולשנות את הקוד של התוכנה (כולה או חלקה), התוכנה מתפתחת ומשביחה וניתן להתאימה לשימושים ומוצרים שונים ומגוונים. מעצם "פתיחת" הקוד לקהל הרחב, מתאפשרת קבלת תוכנה טובה יותר מאשר במודל המסורתי הסגור המגביל שימושים אחרים בתוכנה, כגון ביצוע שינויים והתאמות והפצתה מחדש, וכך רק מעטי מתכנתים יכולים לראות את קוד המקור ולכל השאר לא נותר אלא להשתמש בבלוק של ביטים אטומים ("קוד סגור").

קיימים שני סוגים עיקריים של הסכמי רישיון לתוכנות קוד פתוח: GNU General Public License (GPL") ו- BSD License("BSD"). אמנם רישיון GPL הרבה יותר פופולארי ומרבית תוכנות הקוד הפתוח מבוססות רישיון GPL, אך לרישיון BSDחשיבות עצומה לאור אופן השימוש הנרחב שניתן לעשות בו.

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

לעומת ההגבלות הנרחבות שמטיל רישיון GPL, הסכמי רישיון BSD טיפוסיים קובעים סה"כ 3-4 תנאים, ביניהם: ציון הודעה בדבר זכויות יוצרים של מפתח התוכנה וכתב ויתור על אחריות.

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

בניגוד מוחלט ל- GPL, רישיון BSD אינו דורש שקוד המקור של העבודה הנגזרת יהא זמין באופן חופשי לשימוש, הפצה והעברה הלאה לצדדים שלישיים. כפועל יוצא, קוד שלקוח מתוכנה מבוססת רישיון BSD ניתן לשילוב ישירות לפרויקטים של קוד סגור.

שימושיים מסחריים בקוד מקור פתוח

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

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

לעומת היתרון הגלום בשימוש קוד פתוח של תוכנה מבוססת רישיון BSD, הרי שבתוכנה מבוססת רישיון GPL השימושים המסחריים, מצומצמים מאוד. יש לשים לב ששימוש מסחרי של תוכנת קוד מקור פתוח מבוססת רישיון GPL שונה משימוש של תוכנת קוד סגור. כך, אם משתמש פיתח עבודה נגזרת של תוכנת קוד מקור פתוח מבוססת רישיון GPL, עליו לאפשר לצדדים שלישיים לקבל את אותן זכויות שהוא קיבל, דהיינו להשתמש, לשנות ולהפיץ את התוכנה הלאה. מבקריו של רישיון GPL טוענים שהדבר מצמצם עד כדי מבטל לחלוטין את הערך המסחרי של העבודה הנגזרת.

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

הדבר נכון שבעתיים במקרה של מכירת החברה מפתחת התוכנה (ה- Exit המיוחל): במסגרת בדיקות הנאותות שמבצעת החברה הרוכשת, מתבצעת באופן מתבקש גם בדיקה יסודית של קוד התוכנה של החברה הנרכשת. באם יתגלה כי התוכנה הנרכשת מכילה שורות קוד פתוח (ולעיתים כל התוכנה נשענת על קוד פתוח), עלול הדבר להוביל לביטול העסקה, בשל השימוש המסחרי המוגבל אשר ניתן לבצע בקוד הפתוח כאמור.

סוגיות בקניין רוחני

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

תוכנה נגזרת כוללת אלמנטים ומתבססת על הגרסה המקורית של התוכנה (שבעליה הנם אחרים), ויוצרת למעשה גרסה חדשה ונפרדת מהגרסה המקורית.

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

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

סיכום

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