יום ראשון, 20 ביוני 2010

פיתוח חופשי של תוכנה, תחת רשיון קוד פתוח – טאוטולוגיה?

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



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

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

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

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

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

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

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

יריב קדם, עורך דין ונוטריון.

3 תגובות:

  1. פחחח ... אוניברסיטת גנו??? איפה אפשר להרשם לסמסטר הבא? הרגת אותי בצחוק.

    אמנם אני לא עוכר דין אבל הנה כמה מהתובנות שלי בתחום:

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

    בעקבות התפתחויות בשנים האחרונות, שבהן חברות מונעות את חופשיות הקוד הן באמצעות "טריקים" כמו הגבלת החומרה (tivozation) והן באמצעות פטנטים בתוכנה (שאינם תקפים בישראל.. עדיין), נוצר רישיון GPL3. לינוס טורבלדס, גם אם היה רוצה, לא יכול לעבור לשימוש ברישיון GPL3 שכן ברישיון שבו פורסם הקרנל במקור לא מצויין GPL2 or higher כלומר הוא צריך את הסכמתם של כל תורמי הקוד ללינוקס ודבר כזה הוא בלתי אפשרי בגלל כמות התורמים העצומה, לכן אין חשש שדבר כזה יקרה אי פעם ואין מצב שישולב בפרוייקט האב קוד ברישיון שאינו תואם. קוד שאינו תואם פשוט אינו משולב.

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

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

    לא ברור לי למה אתה מנסה לזרוע פחד ובלבול סביב נושא הרישיונות. אולי זה פשוט טוב לעסקים שלך... ?

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

    שלומי.

    השבמחק
  2. היי יריב,

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

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

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

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

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

    צפריר

    השבמחק