Teklif al
Mimari

Açık kaynak kodlu yazılım nedir: lisans hak verir, bakımı üstlenmez

Teklifteki açık kaynak satırı yalnız lisans ücreti olmayan parçaları söyler. Güncellemeyi kimin izleyeceğini ve üstüne yazılan kodun kime ait olacağını başka satırlarda ararsınız.

Algoriel 11 dk okuma
Açık kaynak kodlu yazılım nedir: lisans hak verir, bakımı üstlenmez
Bu yazıda
  1. Açık kaynak kodlu yazılım nedir: kaynak kodu okunabilen ve lisansıyla izin verilen yazılım
  2. Açık kaynak ücretsiz demek değildir
  3. Lisans okuma, değiştirme ve dağıtma izni verir; koşulu lisansa göre değişir
  4. Lisans ne vermez: güncelleme, destek ve “olduğu gibi” teslim
  5. Açık bir çatının üstüne yazılan uygulama açık kaynak olmaz: kodun sahibini sözleşme yazar
  6. Bir sistemde yan yana duran parça türleri: açık kaynak kütüphane, dış sağlayıcının servisi, size özel kod
  7. Teklifte “açık kaynak teknolojilerle geliştirilir” satırı ne söyler, ne söylemez

Açık kaynak kodlu yazılım, kaynak kodu okunabilen ve lisansı o kodu okuma, değiştirme ve dağıtma iznini herkese veren yazılımdır. Aynı lisans yazılımı olduğu gibi verir; güncellemeyi kimin izleyeceğini ve uygulamanın kime ait olacağını teklif ile sözleşme yazar. Vipkurum’un soru kırpma aracında açık kaynak kütüphaneler, dış sağlayıcının dil modeli ve işe özel kod tek zincirde yan yana duruyor.

Açık kaynak kodlu yazılım nedir: kaynak kodu okunabilen ve lisansıyla izin verilen yazılım

Açık kaynak kodlu yazılımda hak kodun görünmesinde değil, lisansın okuma, değiştirme ve dağıtma iznini birlikte vermesindedir. Kaynak kod, programcının üzerinde değişiklik yaptığı metindir; bilgisayarın çalıştırdığı program bu metinden üretilir. Tanımı yapan kuruluş, Open Source Initiative (OSI), kaynak kodu programcının programı değiştirmek için tercih edeceği biçim diye tarif eder. Kasıtla okunmaz hâle getirilmiş kod bu tanıma girmez ve kodun derlenmiş biçimle birlikte dağıtılabilmesi gerekir. Tanımın birimi bu yüzden program değil, değiştirilebilir biçimdir.

Tanım bunu ilk cümlesinde kendisi söyler: açık kaynak yalnız kaynak koda erişim anlamına gelmez. Lisansın koda erişimi, kodu değiştirip ondan türev iş yapmayı ve hem kodu hem türevi dağıtmayı birlikte serbest bırakması gerekir. Yazının geri kalanı bu ayrımdan yürür.

Kodu görülebilen ama onaylı bir açık kaynak lisansı taşımayan yazılım bu adı almaz. OSI, adın yalnız onayladığı lisanslardan biriyle dağıtılan yazılım için kullanılmasını ister ve onaysız lisansla bu adı kullanmak isteyenlere açıkça kullanmayın der. Teklifte kodu size açık diyen bir cümle ile açık kaynak diyen bir cümle bu yüzden aynı şeyi söylemez. İlki bir erişim sözüdür; ikincisi bir lisans adıdır ve o lisansın metni ayrıca okunur.

Karşı durum da var. Kaynağı incelemeye açık ama değiştirmeye ya da dağıtmaya izin vermeyen yazılımda görünürlük vardır, tanım yoktur; İngilizcede bu sınıfa source-available, yani kaynağı erişilebilir yazılım denir. Böyle bir ürünü değiştirmeden önce lisans metninin neye izin verdiğini okumak gerekir.

Açık kaynak ücretsiz demek değildir

Lisans kodla ne yapabileceğinizi söyler, kaç para ödeyeceğinizi söylemez. Açık kaynak tanımı, yazılımın satılmasını ya da bedava verilmesini kısıtlayan lisansı tanımın dışında bırakır. Yani açık kaynak yazılım satılabilir; OSI’nin sık sorulan sorular sayfası bunu, başkasının yazdığı yazılım için bile, açıkça evet diye cevaplar. Tersi de var: bedava dağıtılan kapalı yazılım da bulunur. Orada bedel sıfırdır ama kod kapalıdır; bedel ile açıklık birbirinden bağımsız eksenlerdir.

Karışıklığın kaynağı İngilizcedeki free kelimesidir: aynı kelime hem özgürlüğü hem de yalnızca bedeli anlatabilir. OSI’nin sayfası bu belirsizliğe ayrıca değinir. Türkçede aynı karışıklık açık ile ücretsiz arasında yaşanır ve teklifte bu kelimeler çoğu zaman yan yana okunur. Oysa biri lisansın verdiği izni, öteki bir kalemin rakamını anlatır.

Lisans ücreti sıfır olduğunda bile parçanın kurulması, barındırılması, bakımı ve işe uyarlanması ayrı işlerdir. Aynı sayfa, açık kaynak üzerinden nasıl para kazanılacağı sorusuna tam bu işleri sayarak cevap verir: güvence satmak, uyarlama ve bakım işi satmak. Bedel lisansta değil, bu işlerde yazılır; teklifte lisans satırı boş kaldığında aranacak rakam o satırlardadır.

Araç seçiminin fiyatı değil, sistemin yayından sonra kimin elinde ayakta kalacağını etkilediğini özel yazılım fiyatlarını anlatan rehberde yazdık; açık kaynak bir çatı seçmek o soruyu ortadan kaldırmaz.

Lisans okuma, değiştirme ve dağıtma izni verir; koşulu lisansa göre değişir

Açık kaynak lisanslarını birbirinden ayıran şey verdikleri izin değil, dağıtım sırasında istedikleri koşuldur: telif bildirimini korumak ya da türev işi aynı lisansla açmak. İzin verici lisansların bilinen örneği MIT metnidir. Yazılımı kullanma, kopyalama, değiştirme, birleştirme, yayımlama, dağıtma, alt lisanslama ve satma iznini ücretsiz olarak herkese verir. Karşılığında tek bir şey ister: telif bildirimi ile izin bildiriminin yazılımın her kopyasında yer alması.

Karşılıklılık şartlı lisanslar, İngilizcedeki adıyla copyleft, aynı izinleri verir, koşulları ise farklıdır. Değiştirip dağıttığınız işi aynı lisansla ve kaynak koduyla birlikte açmanızı isterler. GNU Genel Kamu Lisansı metni, aldığınız özgürlükleri alıcılara aynen aktarmanızı ve işin tamamını aynı lisansla lisanslamanızı ister. Copyleft lisansların çoğu açık kaynaktır, ama her açık kaynak lisansı copyleft değildir.

Koşul, parçanın kendi lisans metninde durur ve aynı parçanın sürümleri arasında değişebilir. Görüntü işleme kütüphanesi OpenCV’nin lisans sayfası bunu açıkça yazar: yeni sürümler Apache lisansıyla, eski sürümler BSD lisansıyla dağıtılır. Lisansın adını bilmek bu yüzden yetmez; yığında hangi sürümün durduğu ayrı bir sorudur ve devir listesinde kendi satırını ister.

Aynı sistemde duran parçalar da farklı metinler taşır. Laravel’in depodaki lisans dosyası MIT metnidir; Node.js’in lisans dosyası aynı izin verici biçimdedir; Python ise kendi vakfının lisansıyla dağıtılır ve resmi belgeleri bütün Python sürümlerinin açık kaynak olduğunu yazar. Teklifteki açık kaynak teknolojiler ifadesi bu yüzden tek bir lisansı değil, parça başına ayrı bir metni anlatır.

Hangi lisansın sizin işinize uyduğunu bu yazı söylemez. Söyleyebildiği şey koşulun nerede okunduğudur: parçanın kendi deposundaki lisans dosyasında, kullandığınız sürüme ait metinde.

Lisans ne vermez: güncelleme, destek ve “olduğu gibi” teslim

Yaygın açık kaynak lisansları yazılımı olduğu gibi verir: yazana güncelleme, destek ya da hata düzeltme borcu yüklemez ve belirli bir amaca uygunluğu üstlenmez. Bu madde izin verici metinde de karşılıklılık şartlı metinde de bulunur. MIT metni yazılımın olduğu gibi sağlandığını ve yazarların hiçbir talepten sorumlu tutulamayacağını yazar; Apache lisansı ve Python’un lisansı da aynı olduğu gibi ifadesini taşır.

MIT metninin tamamında yazara güncelleme yapma, destek verme ya da hata düzeltme yükümlülüğü getiren bir madde yoktur; tersine bir sorumluluk reddi vardır. Güvence ve bakım lisansla gelmez. İkisi de açık kaynak etrafında ayrıca satılan ya da birinin ayrıca üstlendiği işlerdir ve üstlenen taraf adıyla yazılmadıkça kimse üstlenmiş sayılmaz.

Açık kaynak yazılım güvenli mi sorusunun dürüst cevabı da buradan çıkar. Kodu herkesin okuyabilmesi, birinin onu sizin adınıza okuyup sınadığını göstermez. Lisans, yazılımın sizin işinize uyduğunu bile söylemez. Bir denetim varsa birinin yaptığı bir iştir ve yapanın adı bir yerde yazılıdır. Açık kodun daha güvenli ya da daha az güvenli olduğu yönünde bir hüküm lisanstan çıkmaz; çıkan tek şey, denetimin ayrıca aranması gerektiğidir.

Sık duyulan bir itiraz, açık parçaların güncellemesini topluluğun zaten yaptığıdır. Topluluk yeni bir sürüm yayımlayabilir; bu, sizin sisteminizde çalışan kopyanın güncellendiği anlamına gelmez. Yeni sürümü sisteminize taşımak, çalışan bölümlerle uyumunu sınamak ve gerekirse beklemeye karar vermek, sistemi sürdüren tarafın işidir ve lisans bu işi kimseye vermez.

Sonuç şudur: sisteminizdeki her açık parça, lisansın üstlenmediği bir izleme kalemidir. Sürümünü kim takip edecek, güncellemeyi kim uygulayacak, uyumsuzluk çıkarsa kim bakacak; bu soruların cevabı lisansta değil, bakımı sürdüren ekipte durur. KGM SsangYong’un kurumsal sitesinde uygulama çatısına ve ön yüz setine bu yüzden dokunulmadı: siteyi bugün de marka tarafının kendi ekibi sürdürüyor ve o ekibin tanımadığı bir parça, izleme işini dışarıdaki birine bağlardı. Araç seçiminin bakım kararını nasıl belirlediğini bakımı kimin üstlendiğini anlatan yazıda açtık.

Ticari destek sözleşmesiyle satılan açık kaynak ürünlerde de lisans değişmez; yazılım yine olduğu gibi verilir. Güvenceyi o durumda lisans değil, yanına imzalanan destek sözleşmesi verir. Güvence aradığınız yer bu yüzden her zaman bir sözleşme satırıdır.

Açık bir çatının üstüne yazılan uygulama açık kaynak olmaz: kodun sahibini sözleşme yazar

Açık kaynak bir çatının lisansı çatıyı kapsar; üstüne sizin için yazılan uygulamanın kime ait olacağını lisans değil imzalı sözleşme yazar. Çatı dediğimiz şey, uygulamanın üstüne kurulduğu hazır yapıdır: Laravel bunun bir örneğidir ve izin verici bir lisansla, MIT metniyle dağıtılır. Bu lisans, üstüne yazılan uygulamanın da açılmasını istemez. İstediği tek şey, çatının telif ve izin bildiriminin kopyalarda yerinde durmasıdır.

Karşılıklılık şartlı bir çatıda tablo değişebilir: türev iş dağıtılıyorsa aynı lisansla açılması istenir. Hangisinin geçerli olduğunu çatının kendi lisans metni söyler.

Portföydeki karşılığı KGM SsangYong’un kurumsal sitesi. Site Laravel üstünde kuruluydu, bize çalışır durumdayken ulaştı ve işe kodu baştan okuyarak başladık. Aynı sistemde ayrı kod katmanları yan yana duruyordu: herkesin indirebildiği çatı ve onun üstünde, siteye özgü uygulama. Devralma işimizde devir günü istenen tek şeyin koda okuma yetkisi olması da bundandır; uygulamanın kodu, çatınınki gibi kendiliğinden herkese açık bir depoda durmaz.

Mülkiyet sorusu bu yüzden lisansta değil, sözleşmede cevaplanır. Kendi Kullanım Şartlarımız da fikri hakların devrini sitede düzenlemez; bu konuyu taraflarca ayrıca imzalanan sözleşmeye bırakır. Bu satırın sözleşmede nerede durduğunu ve nasıl yazıldığını web sitesi sözleşmesindeki maddeleri anlatan rehberde ele aldık. Teklif aşamasında aranacak satırlar kısadır: uygulamanın fikri hakları kime geçiyor ve kaynak kodun teslimi hangi satırda yazılı.

Sözleşme uygulamayı kime devrederse devretsin, uygulamanın içinde kalan açık parçaların bildirimleri yerinde durur. Sözleşme uygulamanın sahibini yazar; parçaların lisansını kaldıramaz. MIT lisanslı bir kütüphanenin telif bildirimi, onu kullanan uygulama kimin olursa olsun kopyada kalmaya devam eder.

Bir sistemde yan yana duran parça türleri: açık kaynak kütüphane, dış sağlayıcının servisi, size özel kod

Teklifteki parçaları ayırmanın en kolay yolu, onları tek bir sistemde yan yana görmektir. Vipkurum’un soru kırpma aracında basılı kitapçığın sayfasını sorulara OpenCV ayırıyor; görüntüyü işleyen Python servisi, Laravel tarafındaki içerik yönetimine Node.js üzerinden bağlanıyor. Bu adların her biri açık kaynak lisanslı bir kütüphane ya da çalışma zamanıdır ve lisans metni kendi deposunda durur.

Aynı zincirde cevap anahtarını doğru soruya bağlama işini Gemini ve OpenAI modelleri yapıyor. Bu parçalar yığında bir kütüphane olarak değil, çağrılan bir servis olarak duruyor: kodu sağlayıcıda kalıyor, size dönen yalnız cevap. API nedir yazısında bunu başkasının kapısından geçmek diye anlattık; kapının adlarını ve cevabın biçimini karşı taraf belirliyor. API ile çağrılan böyle bir serviste elinize bir lisans metni değil, sağlayıcının kullanım şartları geçer ve bu parça teklifteki açık kaynak satırına girmez.

Geriye bu parçaları birbirine bağlayan ve işin kendisini tanımlayan kod kalıyor: sayfadan soru ayırma akışı, cevap anahtarı eşleştirme, örnekten yeni soru üretme ve soru havuzunun düzeni. Bu türden kod ne bir kütüphanenin lisansıyla ne de bir sağlayıcının şartlarıyla gelir. Kime ait olduğunu, yazdıran ile yazan taraf arasında imzalanan sözleşme belirler.

Aşağıdaki tablo bu türleri, teklifte her biri için sorulacak sorularla yan yana koyuyor. Örnekler soru kırpma zincirinden; satırlar ise kendi teklifinizdeki parçaları yerleştireceğiniz kutulardır.

Parça türüSoru kırpma zincirindeki örneğiKodunu okuyup değiştirebilir misinizSürümünü ve güncellemesini kim izlerİzin ve sahiplik nerede yazılı
Açık kaynak kütüphane ve çalışma zamanıPython, OpenCV, Node.js ve LaravelOkuyabilir ve değiştirebilirsiniz; koşul, bildirimi korumak ya da türev işi aynı lisansla açmaktırLisans kimseyi yükümlü kılmaz; izleme, bakımı sürdüren ekibin satırına yazılırParçanın kendi lisans metninde; sürüme göre değişebilir
Dış sağlayıcının servisiGemini ve OpenAI modelleri, API ile çağrılıyorOkuyamaz, değiştiremezsiniz; kod sağlayıcıda kalırSağlayıcı; size düşen, dönen cevabı kendi kayıt düzeninize oturtmaktırSağlayıcının kullanım şartlarında ve hesabın kimin adına açıldığında
Size özel yazılan kodSayfadan soru ayırma, cevap anahtarı eşleştirme, soru havuzu akışıLisansa değil sözleşmeye bağlıdır; devirde istenen tek şey koda okuma yetkisidirSözleşmenin bakım satırı kimi yazıyorsa oİmzalı sözleşmede; Kullanım Şartlarımız fikri hak devrini oraya bırakır

Tabloyu okuma yönü satırlar boyuncadır: bir parçayı doğru satıra koyduğunuzda, kimin neyi izleyeceği sorusu kendiliğinden o satırın sağ tarafındaki hücrelere düşer. Türler tek bir parçada üst üste de binebilir. Açık kaynak bir ürünün sağlayıcı tarafından barındırılan sürümünde kod herkese açıktır, ama kullandığınız kopyayı güncelleyen sağlayıcıdır; o zaman kütüphane satırı ile servis satırı birlikte okunur. Abonelikle kullanılan bir üründe kaynak kodun zaten devredilmediğini, yerine neyin istendiğini teslim alırken neyi devraldığınızı anlatan yazıda yazdık.

Teklifte “açık kaynak teknolojilerle geliştirilir” satırı ne söyler, ne söylemez

Teklifteki bu satır yalnız lisans ücreti ödenmeyen parçaları söyler: yığındaki çatı ve kütüphaneler için kimseye lisans bedeli ödenmez ve kodları herkese açıktır. Lisansın verdiği hak budur ve satır bu haktan fazlasını taşımaz. Satırı okuduktan sonra teklifte ayrıca aranacak sorular, lisansın vermediği şeylerin teklif dilindeki karşılığıdır.

Satır, uygulamanın kodunun kime ait olacağını söylemez. Bunu sözleşmenin fikri hak satırı yazar ve o satırı imzadan önce okumak sizin elinizdedir; yukarıda andığımız sözleşme rehberi aramaya nereden başlanacağını gösteriyor.

Hangi parçanın sürümünü kimin izleyeceğini de söylemez. Lisans parçayı olduğu gibi verdiği için izleme bakım satırına yazılır ve o satırda bir ad durmuyorsa iş sizde kalmış demektir.

Parçanın sizin işinize uyduğunu kimin sınadığı da satırda yazmaz. Lisans belirli bir amaca uygunluğu açıkça reddeder; uygunluk, projenin zor kısımlarından seçilen kabul senaryolarında sınanır ve senaryo kaydıyla kapanır. Bu sınamanın nasıl kurulduğunu kabul ederken neyi test ettiğinizi anlatan yazıda anlattık.

Teklifteki araç listesini, araçların adlarını bilmeden nasıl okuyacağınızı web yazılım ajansı seçerken izlenecek yolu anlatan rehberde bulabilirsiniz. Yığına neyin eklendiğini doğrudan sormak isterseniz o soru yazılım firmasına sorulacak sorular arasında duruyor.

Satır teklifte hiç yoksa ve yığın kapalı ürünlerden oluşuyorsa da aynı sorular sorulur. Açık kaynak satırı bu soruları yaratmaz; yalnız lisans ücreti kalemini sıfırlar.

KGM SsangYong’un kurumsal sitesinde yığına giren parçalar devir listesinde tek tek adıyla yazılı ve o listede yeni olarak yalnız bir önbellek katmanı var. Elinizde başka bir ekibin yazdığı, açık kaynak bir çatı üstünde çalışan bir sistem varsa, devir gününün nasıl yürüdüğünü ve bu listenin nasıl tutulduğunu proje devralma sayfasında okuyabilirsiniz.

Temel çıkarımlar

  • Kodu görülebilen her yazılım açık kaynak değildir; adı veren lisanstır, görünürlük değil.
  • Lisans ücreti sıfır olsa da kurulum, barındırma, bakım ve uyarlama bedel taşır; açık ile bedava aynı şey değildir.
  • Açık kaynak lisansı yazılımı olduğu gibi verir; güncelleme, destek ve işinize uygunluk lisansın değil teklifteki ayrı satırların konusudur.
  • Açık bir çatının üstüne sizin için yazılan uygulama açık kaynak olmaz; kodun sahibini imzalı sözleşme yazar.
  • Teklifte açık kaynak satırını okuduktan sonra ayrıca arayın: kodun sahibi sözleşmede, sürüm izleme bakım satırında, uygunluk kabul senaryosunda.

Bu yazıda sık sorulanlar

  • Açık kaynak ücretsiz demek mi?

    Demek değil; açık kaynak lisansı kodla ne yapabileceğinizi söyler, bedelini söylemez. Tanımı yapan kuruluş yazılımın satılmasını kısıtlayan lisansı tanımın dışında bırakır; açık kaynak yazılım satılabilir ve satılır. Lisans ücreti sıfır olsa da kurulum, barındırma, bakım ve işinize uyarlama ayrı işlerdir ve bedel bu işlerde yazar. Teklifinizde lisans satırı sıfırsa aradığınız rakam bakım ve uyarlama satırlarında durur; açık ile bedava aynı kelime değildir.

  • Kodunu görebildiğim her yazılım açık kaynak sayılır mı?

    Sayılmaz; tanımı yapan kuruluş bu adın yalnız onaylı bir açık kaynak lisansı taşıyan yazılım için kullanılmasını ister. Açık kaynak lisansı kaynak koda erişimi, değişikliği ve dağıtımı birlikte verir; kaynağı incelemeye açık ama değiştirme ya da dağıtma izni vermeyen yazılımda görünürlük vardır, tanım yoktur. Teklifinizde "kodu size açık" cümlesini gördüğünüzde bunu bir lisans adı değil bir erişim vaadi olarak okuyun ve her parçanın hangi lisansla geldiğini sorun.

  • Açık kaynak yazılım güvenli mi; kodu açık diye biri denetlemiş mi oluyor?

    Olmuyor; kodun herkese açık olması birinin onu sizin için denetlediği anlamına gelmez. Yaygın açık kaynak lisansları yazılımı olduğu gibi verir ve belirli bir amaca uygunluğu bile üstlenmez; denetim ancak yapıldıysa vardır ve kimin yaptığı yazılıdır. Bir parçanın sizin işinize uyduğunu lisans değil kabul senaryosu gösterir. Teklifinizde kabul satırı yoksa bu güvenceyi henüz kimse üstlenmemiş demektir; satırı siz isteyin.

  • Sitemiz açık kaynak bir çatı üstünde çalışıyor; kodu herkese açık mı oluyor, yoksa bizim mi?

    Kendiliğinden olmuyor; çatının lisansı çatıyı kapsar, üstüne sizin için yazılan uygulama ayrı bir eserdir. İzin verici lisans uygulamanın açılmasını istemez, yalnız çatının telif bildiriminin korunmasını ister; karşılıklılık şartlı lisansın koşulu kendi metnindedir. Uygulamanın kime ait olacağını imzalı sözleşme yazar; kendi Kullanım Şartlarımız fikri hak devrini o sözleşmeye bırakır. Çatı herkese dağıtılır ama uygulamanız kendi kendine yayımlanmaz; devralma işimizde devir günü yalnız koda okuma yetkisi istememiz bundandır. Sözleşmenizde fikri hak satırını arayın.

  • Açık kaynak parçaların güncellemesini kim takip eder?

    Bakımı sürdüren ekip takip eder; lisans yazana güncelleme, destek ya da hata düzeltme borcu yüklemez. Sisteminizdeki her açık parça bu yüzden bakım satırına yazılan bir izleme kalemidir: sürümünü kim izleyecek, güncellemeyi kim uygulayacak. KGM SsangYong'un kurumsal sitesinde uygulama çatısı ve ön yüz seti bu nedenle yerinde kaldı; siteyi marka tarafındaki ekip sürdürüyor ve onların tanımadığı bir parça bakımı başkasına bağlardı. Teklifinizde bakım satırının kimi yazdığına bakın; satır boşsa izleme işi sizde kalmış demektir.

Yazar hakkında

Algoriel

Uzaktan çalışan web yazılım ajansı

İşletmelere özel web ve mobil yazılım geliştiriyoruz. Blogda, yazılım yaptırırken ve yayından sonra karşınıza çıkan soruları cevaplıyoruz.

Etiketler:
  • açık kaynak
  • açık kaynak lisansı
  • yazılım lisansı
  • kaynak kod
  • yazılım bakımı

İnşa edilecek bir sisteminiz mi var?

Kurmak istediğiniz bir sistem varsa teklif formundan anlatabilirsiniz.