רישיון כפול

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

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

הבעיה במודל הזה, הוא שמראש מחליטים שלא ניתן לעשות כסף ממוצר קוד פתוח. כלומר אני מראש לא יכול לגבות כסף על מוצר שאני משחרר ברישיון המוכר ב OSI כרישיון קוד פתוח. ועכשיו נשאלת השאלה, היכן ראיתם בGPL, BSD, MIT ועוד רבים אחרים איסור על גביית כסף ? לא זה בסדר אל תשקיעו אנרגיה מיותרת, אין סעיף כזה (לפחות לא שאני מכיר). כלומר אם אני רוצה, אני יכול למכור מוצר אשר הרישיון שלו הוא GPL. כן כן, למכור בכסף, ולא של משחק המונופול אלא אמיתי, כזה שאפשר לקנות במכולת השכונתית לחם וחלב, לשלם שכר דירה וכו' …

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

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

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

9 מחשבות על “רישיון כפול

  1. ארתיום

    תשמע עידו,

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

    דגומה: Qt אחד המוצרים הטובים ביותר שזמינים תחת LGPL – אני חושב שזאת אחת הדוגמאות המוצלחות ביותר.

    עכשיו נגיד אתה כן מוכן לתת קוד לשימוש באופן סגור – אז יש לך שתי אופציות:

    – לשחרר תחת MIT/BSD/Boost וכד'
    – לשחרר תחת רישיון כפול LGPL + רישיון קנייני אחר ולגבות תמלוגים מאלה שלא מפתחים תכנה חופשית. אני חושב שבסופו של דבר המקרה השני יביא יותר תועלת בגלל שיזרים כסף לחברה שמפתחת את המוצר.

    1. Tzafrir Cohen

      לגבי QT: אל תשכח שבנוסף לרשיון הכפול, היתה להם גם התחייבות שאם הם מפסיקים לפתח את המוצר, הם משנים את הרשיון ל־BSD .

      עירא: הבעיה היא שזה לא מעודד אחרים להשתתף בפרוייקט. MySQL ו־QT הן דוגמאות נהדרות לזה.

  2. ik_5 מאת

    מה שניסיתי להבהיר הוא שיש הרבה סיבוכיות עם הגישה הזו.

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

    אותו הדבר להרבה מקומות אחרים, כדוגמת ספרייה הכתובה בJavascript. הקוד של Javascript אם אתה לא עושה לו "הסתרה" (קידוד של למשל המרה לבתים או משהו כזה שראיתי שעושים) תמיד הוא זמין לאחרים, אבל זלה א מפריע לספריית כמו ExtJS לתת את הספריות שלהם ברישיון כפול, וזה די מחמיץ את המטרה ופוגע ברעיון המקורי.

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

  3. עירא

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

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

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

  4. ik_5 מאת

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

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

    אני מקווה שזה עוזר לך יותר להבין את הופסט הזה.

  5. עירא

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

    איפה ראית שמישהו מתנה את השימוש בקוד GPL בתשלום?

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

    בקיצור, אני עדיין לא מבין על איזה מוצר אתה רומז ומה הסכנה?

  6. ik_5 מאת

    אני מדבר על השיטה. קח את MySQL, קח את ExtJS, ויש עוד הרבה אחרים אשר מכילים את הבעיות האלו בדיוק.

    ד"א עם MySQL זה עוד יותר בעייתי כי PHP ו Connector/J למשל חופשיים לשימוש בפרוייקטים מסחריים ללא צורך ברישיון, אבל לא כל כלי מאופשר לזה.

  7. עירא

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

    עוד, אילו בעיות זה גורם?

  8. CooL_SPoT

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

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

כתיבת תגובה

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

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s