רישיון קוד פתוח – מהו?

במאמר קודם הסברנו מהו "קוד מקור". במאמר זה נסביר מהו רשיון קוד פתוח.

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

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

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

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

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

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

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

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

את הרישיונות לקוד הפתוח אפשר לחלק לשתי קבוצות מרכזיות. הרישיונות המתירניים, שבדרך כלל מאפשרים שימוש מלא בתוכנה, כולל ביצוע שינויים, ללא דרישות מחמירות במיוחד (לרוב התנאי יהיה זה ציון שם הכותב המקורי והורדת האחריות ממנו במקרה של בעיות). הקבוצה השנייה הנה הרישיונות המחמירים. אלו דורשים שכל הפצה תהיה מלווה בקוד מקור תחת רישיון חופשי אף הוא. הרישיון המוביל בקבוצה זו מכונה General Public License (GPL) ורובן המוחלט של התוכנות החופשיות מופץ תחת רישיון זה.

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

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

חסרונות הקוד הפתוח

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

אין האמור מהווה מתן חוות דעת משפטית או מקצועית.