Odoo 20.0 kodining addons katalogida 642 ta papka bor. Biz ularning manifest fayllarini ochib, litsenziya qatorini oʻqidik: manifest topilgan 641 modulning hammasida “LGPL-3” turibdi. Lekin shu versiyaning rasmiy hujjat sahifasi boshqa narsa deydi: u litsenziyalar boʻlimini hamon “Odoo 19” deb yozadi. Bu qarama-qarshilik emas: hujjat matni 19-versiya nomi bilan qolgan. Maqola uch litsenziyani nomma-nom koʻrib chiqadi.
Community: LGPLv3
Kod ombori ildizidagi LICENSE fayli aniq yozilgan: Odoo GNU Lesser General Public License, 3-versiya (LGPLv3) ostida nashr etiladi. LGPL, faylning oʻz soʻzi bilan, GPL ustiga qoʻshilgan qoʻshimcha ruxsatlar toʻplami. Shu sababli faylning pastki qismida GPL matni ham bor. Faylda bitta ogohlantirish bor: Odoo bilan birga keladigan ayrim tashqi kutubxona va hissalar boshqa, GPL ga mos litsenziyada boʻlishi mumkin, ularni tegishli fayldan oʻqish kerak.
20.0 uchun yana ikki tasdiq bor. release.py faylidagi license maydoni “LGPL-3”. Modul manifestining license kaliti uchun ham boshlangʻich qiymat shu: LGPL-3. Yaʼni manifestda litsenziya qatori boʻlmasa, LGPL-3 boshlangʻich qiymat sifatida olinadi. Misol: addons/account papkasining manifestida nom “Invoicing”, muallif “Odoo S.A.”, litsenziya “LGPL-3” deb yozilgan; point_of_sale modulida ham litsenziya qatori shunday. Yaʼni Community nashrining asosiy ilovalari yagona litsenziyada.
LGPL amalda nimani anglatishi haqida kompaniyaning oʻz tushuntirishi bor. 2015 yilgi blogda aytilishicha, LGPLv3 litsenziyasi copyleft boʻlib qoladi, ammo sayt mijozi oʻz Odoo kodini sayt tashrifchilariga ochishga majbur boʻlmaydi, LGPLv3 modullarni xususiy (proprietary) modullar bilan birga ishlatish mumkin. Bu 9.0 dan oldin yozilgan niyat bayoni. Qonuniy taʼsirini baholash yurist ishi.
LGPL matni ichida: kutubxona, ilova va birlashgan asar
LGPL matni uchta tushuncha bilan ishlaydi. “Kutubxona” (Library) litsenziya ostidagi asarning oʻzi. “Ilova” (Application) kutubxona taqdim etgan interfeysdan foydalanadigan, lekin unga asoslanmagan asar. “Birlashgan asar” (Combined Work) ilovani kutubxona bilan birlashtirish yoki bogʻlash natijasi. Matn yana bir muhim jumlani qoʻshadi: kutubxonada yozilgan sinfning avlodini (subclass) yaratish ham interfeysdan foydalanish usuli hisoblanadi.
LGPL ning asosiy shartlari qisqa. Birlashgan asarni oʻzingiz tanlagan shartlarda tarqatish mumkin, agar ular kutubxona qismini oʻzgartirishni va bunday oʻzgartirishni tuzatish uchun teskari muhandislikni cheklamasa. Qoʻshimcha talablar: har nusxada kutubxona ishlatilgani haqida ochiq xabar berish, GPL va LGPL matnlarini ilova qilish. Kutubxonaning oʻzgartirilgan nusxasi uchun alohida band bor: uni LGPL yoki GPL ostida tarqatish mumkin.
Kompaniyaning oʻzi 2015 yilda shu mantiqni aytgan: LGPL matni kutubxonalar haqida yozilgan, lekin Odoo ham kutubxonalar toʻplami va koʻp loyiha uni freymvork sifatida ishlatadi. Odoo moduli manifestida depends roʻyxati bilan boshqa modullarga tayanadi, yaʼni “ilova” va “kutubxona” juftligiga oʻxshaydi. Bu tahririyatning taqqoslashi, sudda sinalgan talqin emas: LGPL matnining Python modullariga qanday qoʻllanishi yuristning ishi.
Enterprise: Odoo Enterprise Edition License v1.0
Enterprise nashri alohida matn bilan beriladi. 20.0 hujjatidagi matnni shartlar boʻyicha jadvalga solamiz.
| Mavzu | Matnda yozilgani |
|---|---|
| Foydalanish | Dasturni faqat toʻgʻri foydalanuvchilar soniga mos Enterprise obunasi bilan ishga tushirish va oʻzgartirish mumkin |
| Hamkorlik shartnomasi | Odoo S.A. bilan amaldagi hamkorlik shartnomasi shu ruxsatlarni beradi, lekin faqat sinov yoki ishlab chiqish muhitida |
| Modul yozish | Dastur asosida modul yozib, mos keladigan istalgan litsenziya bilan tarqatish mumkin (misol: LGPL, MIT yoki shunga oʻxshash xususiy litsenziya) |
| Boshqa modullar | Odoo Apps doʻkonidagilar ham, istalgan litsenziyadagi modullar dasturdan birga ishlatilishi mumkin, agar litsenziyasi mos boʻlsa |
| Taqiq | Dasturning oʻzini yoki oʻzgartirilgan nusxasini eʼlon qilish, tarqatish, sublitsenziyalash va sotish taqiqlanadi |
Jadvaldan ikki narsa koʻrinadi. Birinchisi, litsenziya foydalanuvchilar soniga bogʻlangan: obuna “toʻgʻri son”ga mos boʻlishi kerak. Ikkinchisi, Enterprise ustiga yozilgan oʻz modulingizni siz tanlagan litsenziya bilan tarqatishingiz mumkin, lekin Enterprise kodining oʻzini emas.
Enterprise kodi 20.0 ning ochiq GitHub omborida yoʻq. Hujjatdagi oʻtish yoʻriqnomasi shuni koʻrsatadi: Community bazasi zaxiralanadi, server toʻxtatiladi, web_enterprise moduli oʻrnatiladi, server qayta ishga tushiriladi va obuna kodi kiritiladi. Yaʼni Enterprise Community ustiga qoʻshiladigan kod va litsenziya kaliti.
Rasmiy taqqoslash sahifasi ikki nashrni qisqa ayirib beradi: Community ochiq kodli, Enterprise litsenziyalangan, Community esa Enterprise qurilgan yadro. Jadvalning “umumiy” boʻlimida cheksiz funksional qoʻllab-quvvatlash, versiyani yangilash va hosting faqat Enterprise ustunida belgilangan. Bular litsenziya shartlari emas, xizmat roʻyxati. Litsenziya matni esa nashr ayirmasini aniq shartga aylantiradi.
Odoo Apps: Odoo Proprietary License v1.0
Bu boʻlimda “Odoo Apps” deganda hujjat odoo.com/apps doʻkonini nazarda tutadi. Hujjatga koʻra, aksincha koʻrsatilmasa, Odoo S.A. ning doʻkondagi ilovalari, shu jumladan veb-sayt mavzulari Odoo Proprietary License v1.0 ostida nashr etiladi.
Shartlar Enterprise matniga oʻxshaydi, ammo bir farq bor. Dastur faqat haqiqiy litsenziya sotib olingan boʻlsa, odatda Odoo Apps orqali, yoki mualliflardan yozma kelishuv olingan boʻlsa ishlatiladi. Uning kodini nusxalamasdan, kutubxona sifatida (unga bogʻlanib, import qilib) ishlatadigan modul yozish mumkin. Bunday modulni mos litsenziya bilan tarqatish ruxsat etiladi. Dasturning oʻzini eʼlon qilish, tarqatish, sublitsenziyalash va sotish taqiqlanadi.
2015 yilgi blogda doʻkon uchun rejalashtirilgan yana bir qoida bor: pullik modullarni sotib olgan mijoz modulning GitHub branchiga kirish oladi, xatolarni yuboradi va oʻzgartirish taklif qiladi, hamkorlik faqat xaridorlar bilan cheklanadi. Bu 2015 yilgi reja, 20.0 hujjatida bunday qoida yoʻq. Oʻsha yili Odoo Community Association (OCA) bilan uchrashuvda Odoo S.A. doʻkondagi barcha modullar uchun litsenziya mosligini tekshirishni joriy qilishini aytgan. Uchrashuvda umumiy qoida ham aytilgan: modul depends roʻyxatidagi har bir modulning litsenziyasiga mos boʻlishi kerak. 20.0 hujjatida bu qoida alohida yozilmagan.
Litsenziya modul manifestida yoziladi
Har bir Odoo moduli __manifest__.py faylida oʻz litsenziyasini koʻrsatadi. Hujjatda license kaliti uchun ruxsat etilgan qiymatlar quyidagicha sanalgan:
- GPL-2 va GPL-3, ikkalasi ham “yoki undan keyingi versiya” varianti bilan;
- AGPL-3 va LGPL-3;
- boshqa OSI tasdiqlagan litsenziya;
- OEEL-1 (Odoo Enterprise Edition License v1.0);
- OPL-1 (Odoo Proprietary License v1.0);
- boshqa xususiy litsenziya.
Mana shu roʻyxat uch litsenziyaning qisqartmalarini beradi. Odoo Enterprise matni OEEL-1, Odoo Apps matni OPL-1 deb belgilanadi, Community moduli esa LGPL-3. Uchinchi tomon moduli roʻyxatdagi istalgan qiymatni koʻrsatishi mumkin. Enterprise matni mos litsenziyadagi modullarni birga ishlatishga ruxsat beradi, Apps matni esa unga bogʻlanadigan modulni mos litsenziya bilan tarqatishga.
19.0 va 20.0 hujjatlari: matn oʻzgarmagan
19.0 hujjatidagi Licenses sahifasi 20.0 dagi bilan bir xil tuzilmada: Community, Enterprise, Odoo Apps, 9 dan 18 gacha, 8. Community uchun LGPLv3, Enterprise uchun Odoo Enterprise Edition License v1.0 yozilgan, Enterprise shartlari ham oʻxshash. Farq faqat sahifa sarlavhasida: 20.0 nusxasi versiya nomini yangilamagan. Shu sababli 20.0 uchun yangi litsenziya sharti kiritilgani kuzatilmadi, ammo kodning oʻzi (LICENSE, release.py) yagona tasdiq boʻlib qoladi.
Litsenziya va mualliflik huquqi: ikki alohida narsa
LICENSE fayli “nima qilish mumkin”ni aytadi. “Kim egasi” esa COPYRIGHT faylida turadi. U yerda koʻp fayl Odoo S.A. ga tegishli deyiladi, koʻp faylda uchinchi tomon hissalari ham bor, ularning asl muallifini versiya nazorati tarixidan topish mumkin. Shuning uchun litsenziyani bilish yetarli emas: modulni oʻzgartirmoqchi boʻlgan odam uning tarixi va mualliflarini ham koʻrishi kerak.
GitHub ham omborning litsenziyasini bir soʻz bilan ayta olmaydi. Uning API sozlamasi litsenziyani “other” deb qaytaradi, SPDX belgisi esa NOASSERTION. Sabab LICENSE fayli ichida LGPL, GPL va qoʻshimcha izoh borligi boʻlishi mumkin, ammo bu bizning taxminimiz. Avtomatik skaner “other” desa, bu Odoo litsenziyasiz degani emas.
Bundan nima kelib chiqadi
Bu tahririyat xulosasi, rasmiy daʼvo emas. Odoo ishlatayotgan rahbar uchun litsenziya savoli uch qismga boʻlinadi.
- Qaysi nashr va versiya ishlayapti? 20.0 Community uchun LGPL-3, Enterprise uchun OEEL-1; 9.0 dan 18.0 gacha ham xuddi shunday. 8.0 AGPLv3 edi (alohida maqola).
- Bazadagi har bir qoʻshimcha modulning manifestida qanday litsenziya yozilgan? OPL-1 yoki boshqa xususiy qiymat sotib olingan litsenziyani talab qiladi.
- Pudratchi yozgan modulga litsenziya qanday belgilangan va uni kim tarqatishi mumkin? Bu savolga manifestdagi qator emas, shartnoma javob beradi.
- Versiyani yangilashdan oldin sahifani qayta oʻqing. Litsenziya matni 9.0 dan 18.0 gacha bir xil edi, lekin kelgusi versiyada ham shunday qolishini hujjat oldindan aytmaydi. Yangi versiya chiqqanda 8.0 dan 9.0 ga oʻtishdagi kabi oʻzgarish boʻlishi mumkin, shuning uchun har yangilashda matnni qayta tekshiring.
Masalan, kompaniya Enterprise 20.0 da ishlaydi. Doʻkondan hisobot moduli sotib olgan, manifestida OPL-1 turibdi. Pudratchi esa hisobotga bitta maydon qoʻshgan va manifestga litsenziya yozmagan. Odoo hujjatiga koʻra, bunday modulning boshlangʻich qiymati LGPL-3. Natijada bitta bazada uch litsenziya ishlaydi: Enterprise matni, sotib olingan modulning OPL-1 si va pudratchining LGPL-3 qatori. Ularning qaysi biri nimaga toʻgʻri kelishi shartnomalarda aniqlanadi.
Manbalar
Maqola quyidagi manbalarga tayanadi:
- odoo/odoo, addons/ katalogi va modullarning __manifest__.py fayllari, 20.0 branchi. GitHub; manifest litsenziya qatori oʻzimiz sanadik. https://github.com/odoo/odoo/tree/20.0/addons (koʻrilgan: 15-oktabr, 2026)
- Licenses. Odoo 20.0 hujjatlari (Odoo 19.0 hujjatlari sahifasi bilan solishtirildi), odoo.com/documentation. https://www.odoo.com/documentation/20.0/legal/licenses.html (koʻrilgan: 15-oktabr, 2026)
- odoo/odoo, LICENSE fayli, 20.0 branchi. GitHub. https://github.com/odoo/odoo/blob/20.0/LICENSE (koʻrilgan: 15-oktabr, 2026)
- odoo/odoo, odoo/release.py, 20.0 branchi (license = LGPL-3). GitHub. https://github.com/odoo/odoo/blob/20.0/odoo/release.py (koʻrilgan: 15-oktabr, 2026)
- Module manifests. Odoo 20.0 hujjatlari, Developer reference, «license» kaliti. https://www.odoo.com/documentation/20.0/developer/reference/backend/module.html (koʻrilgan: 15-oktabr, 2026)
- Vandermeersch A. Adapting our open source license. Odoo blogi, 2015-02-05, odoo.com (kompaniyaning oʻz blogi). https://www.odoo.com/blog/odoo-news-5/post/adapting-our-open-source-license-245 (koʻrilgan: 15-oktabr, 2026)
- Switch from Community to Enterprise. Odoo 20.0 hujjatlari, On-premise boʻlimi. https://www.odoo.com/documentation/20.0/administration/on_premise/community_to_enterprise.html (koʻrilgan: 15-oktabr, 2026)
- Odoo S.A. Compare Editions (Odoo Community vs Odoo Enterprise). odoo.com, rasmiy sahifa. https://www.odoo.com/page/editions (koʻrilgan: 15-oktabr, 2026)
- odoo/odoo, COPYRIGHT fayli, 20.0 branchi. GitHub. https://github.com/odoo/odoo/blob/20.0/COPYRIGHT (koʻrilgan: 15-oktabr, 2026)
- GitHub REST API: repos/odoo/odoo (license maydoni). GitHub, api.github.com, 2026-10-15 holati. https://api.github.com/repos/odoo/odoo (koʻrilgan: 15-oktabr, 2026)
- OCA & Odoo Meeting on Licenses. Odoo Community Association blogi, 2015-06-02 (OCA yozuvi, kompaniya bayoni OCA orqali). https://odoo-community.org/blog/news-1/post/oca-odoo-meeting-on-licenses-21 (koʻrilgan: 15-oktabr, 2026)