מה זה רישוי כפול
רישוי כפול (Dual Licensing) הוא מודל שבו אותה בסיס-קוד מוצעת בו-זמנית תחת שני רישיונות שונים: רישיון-קוד-פתוח מחייב-שיתוף (copyleft), לרוב GPL או AGPL, ולצידו רישיון מסחרי נפרד לגורמים שאינם מעוניינים להתחייב לתנאיו. מי שמוכן שהנגזרות של הקוד שלו יהיו פתוחות גם הן יכול להשתמש בגרסה הפתוחה בחינם; מי שרוצה לשלב את הקוד במוצר קנייני סגור, בלי לחשוף את הקוד שלו-עצמו, משלם עבור רישיון מסחרי שמשחרר אותו מהתנאי הזה.
התנאי המקדים: בעלות מלאה על הקוד
כדי שהמודל יהיה חוקי בכלל, החברה חייבת להחזיק — או לשלוט באופן מלא — בזכויות-היוצרים על כל בסיס-הקוד. אי-אפשר להציע רישיון מסחרי על קוד שנכתב תחת GPL על-ידי צד שלישי שלא הסכים לכך. בגלל זה, מרבית הפרויקטים שמפעילים רישוי כפול דורשים מכל תורם-קוד לחתום על הסכם-תרומת-רישיון (CLA — Contributor License Agreement), שמעביר לבעלי-הפרויקט את הזכות להעניק גם רישיון מסחרי על אותה תרומה, לא רק את הרישיון הפתוח.
למה חברה בוחרת ברישוי כפול
המודל מאפשר לחברה למנף שני יתרונות בבת-אחת: לשמר מעורבות-קהילה סביב גרסה פתוחה שמושכת מפתחים, תרומות ותנועת-אימוץ אורגנית, ובמקביל למנוע מצב שבו מתחרה או לקוח גדול משתמש בקוד בחינם בתוך מוצר קנייני משלו בלי לשלם. משתמשים-יחידים ועסקים קטנים יכולים לרוב להשתמש בגרסה החינמית תחת הרישיון הפתוח; ארגונים שרוצים גרסה ידידותית-לעסקים, בלי מגבלות ה-copyleft, משלמים על כך.
דוגמה מוכרת: MySQL של Oracle
הדוגמה השגורה ביותר למודל היא מסד-הנתונים MySQL, שאורקל מציעה תחת רישיון GPL לפרויקטים בקוד-פתוח, ובמקביל מציעה רישיון מסחרי נפרד לחברות שרוצות לשלב את MySQL במוצר קנייני משלהן בלי להתחייב לתנאי ה-GPL — אותה בסיס-קוד בדיוק, בשני מסלולי-רישוי מקבילים.
איך זה נבדל מרישיון-מסחרי רגיל ומליבה-פתוחה
חשוב לא לבלבל בין רישוי כפול לבין שני מודלים קרובים. רישיון-מסחרי רגיל הוא מסלול-רישוי יחיד בלבד — אין לצידו גרסה פתוחה חלופית לאותו קוד. מודל ליבה-פתוחה (Open-Core), לעומת זאת, מפריד בין שני חלקי-קוד שונים — ליבה חופשית ופתוחה, ותוספות קנייניות נפרדות שרק עליהן חל הרישיון המסחרי. ברישוי כפול, לעומת שניהם, זהו אותו קוד בדיוק בשני הרישיונות — לא קוד שונה ולא מסלול יחיד.
מה זה אומר למי שבוחר תוכנה כזו
עבור עסק ששוקל להשתמש בתוכנה שמופצת תחת רישוי כפול, ההחלטה המעשית היא: אם השימוש שלו בקוד וכל שינוי שהוא עורך בו יכולים להישאר פתוחים — הוא יכול להשתמש בגרסה החינמית בלי לשלם. אם הוא רוצה לשלב את הקוד בתוך מוצר סגור ולמכור אותו בלי לחשוף את קוד-המקור שלו-עצמו, הוא חייב לרכוש את הרישיון המסחרי, גם אם לא ביצע בקוד המקורי שום שינוי מהותי.