The consensus on debian-legal, after a week of discussion, is that the license as forwarded and interpreted by the copyright holder is not DFSG-free, as it places an unacceptable restriction on modification; that means it violates DFSG 3 (Derived Works). The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software.... move this package to non-free or drop it from the distribution.
O disclaimer konusu daha çok FSF için geçerli. Malum adamlar tam istim üzerinde, oyuna gelmemek için her türlü önlemi alarak işi biraz da abartıyorlar. Yani idel hal bu, pratikte sistemin böyle yürümesi zor tabii.
> Ben illa ki sayfalarimin bir yerinde bu phpNuke programindan turetilmistir demek zorunda degilim degil mi?
Yanlış anlaşılabilecek bir noktayı düzelteyim. Bu konuyu araştırırken phpnuke`un copyright notice isteğine dayanak olarak, GPL`in, yazılımın kullanımıyla ilgili kısmının (yani `Yazılım`ı baz alan ürün` ifadesinin geçtiği kısım) gerekçe gösterildiğini ve bunun 2c ile bağlantılandığını söylemiştim. Böyle bir bağlantının kurulması doğru değil. Ben sadece tartışmalarda geçen iddiaları aktardım.
Müsaadenle biraz sıkıcı olmak pahasına olayı biraz daha açarak, anladığım ve öğrendiğim hususları aktarayım. (Hukuk uzmanı değilim, sadece yorumladıklarımı aktaracağım :) Son yaptığım okumalardan sonra bu hayli karışık konuda phpnuke`un reklam isteğinin (geliştiricinin ifadesiyle lisans bildirimi) bütünüyle 2c`ye dayandığı kesinleşti. Yani özetlemek gerekirse phpnuke interaktif olarak çalışan bir program olduğunu gerekçe göstererek her çalışmasında bu tip interaktif (etkileşimli) programlar için yazılmış olan 2c maddesinde belirtilen copyright notice`i göstermek zorunda olduğunu ve kimsenin bunu değiştiremeyeceğini, aksi taktirde böyle bir hareketin lisans ihlali oluşturacağını söylüyor. Bu zorlama yorum -şekilsel olarak doğru olsa da- 2c`nin ruhuna aykırı. İnteraktif olmayan programların doğru çalışması için -çoğunlukla- programa bir dizi option/argüman verilmelidir ve bu yüzden kullanıcı çoğunlukla ne yaptığını bilir/bilinçlidir. Halbuki interaktif durumda -diğerine göre çok daha sık rastlanılır bir hal olarak- kullanıcı programın ne idüğünden daha az haberdardır. Bu yüzden ona `bak kardeşim, hakların bunlar, yani programı serbest dağıtabilirsin, fakat kesinlikle hiçbir garanti olmadığını bilmek zorundasın...` vs. şeklinde bilgi vermeyi 2c zorunlu kılıyor. Tabii bu bilginin içinde `merhaba, ben phpnuke`um, her hakkım mahfuzdur` ifadeleri de olma durumunda ;) Benim anladığım şekliyle 2c`nin ruhu bu, başka şekilde Rationale gösterecekler varsa onları da dinlemek isterim. Şüphesiz ki 2c`nin başka yorumları da olabilir, fakat emin olduğum şey şu ki phpnuke geliştiricisinin niyeti bunların hepsinden farklı olacaktır (gizli reklam). Aynı mantıktan hareketle postscript işlemcisini (gs), LaTeX işlemcisini (latex) ne yapacağız. Bunlar da interaktif. Yani ps/dvi footer`larına müdahale mi edeceğiz? Tabii GPL bunu engelliyor. Programın kendi source`undan bir parça olmadıkça (bison parser çıktıları gibi) yazılım çıktısı GPL lisanslı olmak zorunda değildir. 2c maddesi bu interaktif programlar çalıştırıldığında uygulanır. Mesela gs`i çalıştırırsanız bunu görürsünüz. (`latex` copyright notice göstermiyor fakat o da GPL değil, GPL uyumlu bir lisansla dağıtılıyor)
> Bu program artik phpNuke degil. Yine de phpNuke`tur bu diye bir ibare koymam abes kacmaz mi?
2c`nin istisnasında şu denilmiş:
(İstisna: Eğer Yazılım`ın kendisi interaktif ise fakat böyle bir bildirimi olağan kullanım esnasında yazdırmıyor ise, sizin Yazılım`ı baz alan ürününüz böyle bir bildirimde bulunmak zorunda değildir.)Yani görünen o ki, değiştirdiğin _interaktif_ yazılım istisna oluşturmadan copyright notice gösteriyorsa sen de böyle yapmak zorundasın, Fakat söylediğin konuda ben de şüphedeyim. Yani GPL, modifiye ettiğim yazılımı başka bir isimle dağıtmamı engellemiyor (yeter ki değiştirilmiş haliyle bütün kaynaklar aynı GPL şartlarıyla açık hale getirilsin -ki bu şartların arasında 2a ile belirtilen değişiklik notları da var.) Peki bu durumda benim 2c gereği orijinal yazılımın yaptığı şekilde copyright notice belirtmem gerekiyorsa bu hangi isimle olacak? Bu konuyu tam kavrayamadım. (Muhtemelen burada bir elma-armut karıştırması yapıyorum...)
> Ben illa ki bu yarattigim frameworkun kodunu acmak zorunda miyim? (Zorundayim bunu biliyorum caktirmayin ;)
(Ben de mahsuscuktan yanıt vereyim ;) Hayır açmak zorunda değilsin. Kaynak kodu açık hale getirip getirmemek bir özgürlükler konusudur ve GPL bu konuda senin özgürlüğünü kısıtlamaz. Fakat şunu yapar... Eğer özgürlüğünü kullanarak kodu açık hale getirme teşebbüsünde bulunmuş isen (yani değiştirdiğin haliyle yazılımı dağıtmaya karar vermiş isen) seni bu dağıtımı tam olarak yapmaya ve başkalarının da özgürlüğünü kısıtlamamaya zorlar. Yani yaptığın bütün değişiklikleri eksiksiz şekilde dağıtman, açık hale getirmen gerekir. Sadece binary dağıtımlar yetmez, kaynağını da -eksiksiz- dağıtmak zorundasın. (BSD için veya genel olarak copyleft olmayan yazılımlar için böyle bir şart yok meselâ). Tek amacın `bunu alayım, değiştirerek kullanayım, hatta mensubu olduğum organizasyon/kurum içindeki insanların da istifadesine sunayım` şeklinde ise (son isteğe dikkat) GPL bu konuda sana hiç bir şart koşmaz. Fakat kuş bir kere dışarı uçarsa yavrularını da salmak zorundasın :)
> bu kodu acmak icin ne yapacagim? Illa ki atiyorum, bir sourceforge projesi mi acacagim? Nasi olcak bu is? Yoksa bakin bu sayfa bu programla calismaktadir, bu linkden de tar.gz`sine ulasabilirsiniz gibi bir girdi mi yapmam lazim?
Yazılımı derlenmiş binary formda da dağıtman mümkün. Böyle bir durumda tek yapman gereken şey 3ncü şahıslara bir yazılı bir taahhütname (written offer) vermen. (Taahhütname GPL metni içinde hazır zaten.) Bu taahhütname ile neyi taahhüt ettiğine gelince onu da GPL metninden okuyalım (sağolsun Deniz hanım):
Yazılım`ı ( veya 2. bölümde tanımlandığı hali ile onu baz alan bir ürünü) ara derlenmiş veya uygulama hali ile 1. ve 2. Bölüm`deki şartlar dahilinde ve aşağıda sıralanan yöntemlerden birisine uygun olarak kopyalayabilir ve dağıtabilirsiniz.Bu yöntemlerden hangisini seçeceğin sana kalmış. Fakat unutma ki bütün yollar Roma`ya çıkıyor ;) Eğer taahhütname yöntemini (2nci şık) seçmiş isen taahhütname`yi alan bir kişi senden istekte bulunabilir. Bu kişinin isteğini fiziksel olarak dağıtımı gerçekleştirme masrafından daha fazla olmayan bir ücret talep etme hakkıyla birlikte karşılamak zorundasın. Tabii en doğal olan binary`yi dağıttığın yerden kaynak kodu da dağıtmak. (Kaynak ve binary`nin açık yerini belirttikten sonra kullanıcının sadece binary`yi alıp kaynağı almaması senin sorumluğun değildir.)1. Yaygın olarak yazılım dağıtımında kullanılan bir ortam üzerinde, yukarıda 1. ve 2. Bölüm`de bulunan şartlar dahilinde, bilgisayar tarafından okunabilir kaynak kodlarının tamamı ile birlikte dağıtmak.
2. Herhangi bir üçüncü şahsa, fiziksel olarak dağıtımı gerçekleştirme masrafınızdan daha fazla ücret almayarak, yaygın olarak yazılım dağıtımında kullanılan bir ortam üzerinde, yukarıda 1. ve 2. Bölüm`de bulunan şartlar dahilinde, bilgisayar tarafından okunabilir kaynak kodlarının tamamını dağıtacağınıza dair en az üç yıl geçerli olacak yazılı bir taahhütname ile birlikte dağıtmak.
3. Size verilmiş olan ilgili kaynak kodunu dağıtma taahhütnamesi ile birlikte dağıtmak. (Bu alternatif yalnızca ticari olmayan dağıtımlar için ve yalnızca siz de yazılımı ara derlenmiş veya uygulama biçeminde ve yukarıda b) bölümünde anlatılan şekli ile bir taahhütname ile birlikte almış iseniz geçerlidir.)
>Cok ciddi bir sayfa ise ve musteri buna izin vermiyorsa ne yapacagiz?
Kaçarı yok, kaynağı vereceksin :) GPL bulaşıcı bir hastalıktır. Kurtuluş yok.
> Pek cozemedim ben buralari. :)
Bunca lafa bakma, benim de çözemediğim çok yer var, öyle anlatıyoruz işte. Fakat adamlar her türlü hukuksal inceliği GPL metnine serpiştirmişler. Yani gerçek anlamıyla özgür olacağın konusu bu serpiştirmelerle güvenceye alınmış görünüyor ;)
2. Yazılım`ın kopyasını veya kopyalarını veya herhangi bir parçasını değiştirerek Yazılım`ı baz alan ürün elde edebilir, bu değişiklikleri veya ürünün kendisini yukarıda 1. bölümdeki şartlar dahilinde ve aşağıda sıralanan şartların yerine getirilmesi koşulu ile kopyalayabilir ve dağıtabilirsiniz.Anladığım kadarıyla bu şartın arkasında yatan temel neden programın dağıtılan o anki haliyle ilk hali arasında fark olduğunu belirtmek ve programda hangi kısımların kimler tarafından modifiye edildiğini dokümante etmek. (Muhtemelen bir lisans ihlali olduğunda bu ihlalin kim tarafından hangi değişiklikle, ne zaman yapıldığı da ortaya çıkmış oluyor.) Zannediyorum ChangeLog`lar -diğer işlevlerinin yanısıra- bu 2a maddesini de karşılıyor (veya cvs log`ları). Şu ana kadar incelediğim bir çok GPL programda 2a şartının layıkıyla uygulanmadığını gözledim. (FSF programları hariç. GNU standartları bu konuda ayrıntılı önerilerde bulunuyor, incelemekte fayda var.) Bu konularda biraz gri bir alan var gibi... GPL, orijinal çalışma ile modifiye edilmiş çalışma arasında keskin hatlar çizmiyor. Yani yorumlayabildiğim kadarıyla orijinal programın ismi ve geliştiricisinin kimliği konularında aşırı bir duyarlılık yok (ego faktörü). Artistik lisans GPL`e göre bu açıdan daha katı mesela. Değiştirdiğin program için (orijinal copyright sahibiyle anlaşmadığın müddetçe) farklı bir isim kullanmak zorunluluğu getiriyor. (veya ben böyle anlıyorum :)a. Değiştirilen dosyaların görünür bir şekilde dosyaların sizin tarafınızdan değiştirildiğine dair, tarihli bir bildirim içermesini sağlamalısınız.
Evet bu düşünülebilir. Phpnuke geliştiricilerinin haklı olmadığını düşünüyorum. Benim görüşüm, bu konuda geliştiriciler tarafında GPL copyleft`den ödün vermemek şartıyla (ki bu kaynak kod için geçerli) kullanıcıyı kısıtlamamak. Fakat phpnuke bu konuda çok ısrarlı, /usr/share/doc/phpnuke/copyright`dan alıntı: # IMPORTANT: I saw many sites that removes the copyright line in the footer # of each page. YOU`RE NOT ALLOWED TO REMOVE NOR CHANGE/EDIT THAT NOTE. Burada ilginç olan şu: Eğer phpnuke`u GPL 2c)`ye sınıflarsak copyright notice`i bir şekilde göstermek zorunda. Haberde geçen örnekte Yale elemanları bu `bir şekilde`yi html kodu olarak yorumlamışlar. Geliştiricinin isteğine daha yakın ve makul bir yöntem footer`a konulacak bir `About` link`i olabilirdi. Ama bence yoruma açık bu konuda şöyle bir kriter`e riayet etmek en doğru yaklaşım olur. Orijinal copyright kullanıcı tarafından türetilmiş ürünlerin -eğer varsa- copyright`ını kirletmemeli (contaminate) ve masum bir reklam niyeti taşımamalı. Unutmayalım ki GPL, fikirlerin özgür şekilde paylaşılmasını engelleyen copyright sistemini ters yönde işleterek (yani copyleft ;) paylaşımı genişleten ve paylaşımı rededenleri zorlayan bir felsefi temele oturur. Bu felsefi temelde ego`nun tatmin edilmesine yönelik kısıtlamalar da doğru karşılanmaz. Eğer bir geliştirici kendi egosunu fazlasıyla vurgulamak istiyorsa kullanacağı lisans türü GPL olmamalı. (GPL uyumlu olmayan orijinal `artistic license` veya GPL uyumlu `perl artistic license` değerlendirilebilir. Hatta bunlardan bir tanesini baz alarak kendi egonuzu vurgulayacak farklı bir lisans üretebilirsiniz.) Son bir husus phpnuke ile benzer şartlardaki bir çok GNU programı phpnuke gibi davranmıyor. Bu husus yoruma açık konularda takip edilmesi gereken bir gelenek olması açısından önemli. Öte yandan GPL versiyon 3 hakkında sızan haberlerde 2c) kaynaklı reklam konularında ek bir düzenleme yapılmayacağını gösteriyor. Umarım son aşamada bu konular da dikkate alınır.
Kopyalama, dağıtım ve değiştirme haricinde kalan faaliyetler bu Lisans`ın kapsamı dışındadırlar. Yazılım`ı çalıştırma eylemi sınırlandırılmamıştır ve ...Yani buraya kadar açıklanan şekliyle Francisco Burzi`nin `programı kullanırken copyright şartlarını her sayfada göstereceksiniz` isteğini anlamlandıramayız. Yukarıda yaptığım alıntının devamına bakarsak geliştiricinin neyi dayanak aldığını göreceğiz (vurgular bana ait):
... Yazılım`ın çıktısı yalnızca çıktının içeriği (Yazılım`ı çalıştırmak yolu ile elde edilmesinden bağımsız olarak) Yazılım`ı baz alan ürün kapsamına girer ise bu Lisans kapsamındadır. Bu koşulun sağlanıp sağlanmadığı Yazılım`ın ne yaptığı ile ilgilidir.Bu cümleler GPL 2c) maddesinde açılıyor. Bakın GPL 2c) ne diyor:
Eğer değiştirilen yazılım olağan kullanım altında komutları interaktif olarak alıyor ise, yazılım, en olağan kullanım için interaktif olarak çalıştırıldığı zaman uygun bir telif hakkı bildirimi, garantisi olmadığına (veya sizin tarafınızdan garanti verildiğine), kullanıcıların bu yazılımı bu şartlar altında tekrar dağıtabileceklerine, ve kullanıcının bu Lisansın bir kopyasını nasıl görebileceğine dair bir bildirim yazdırmalı veya göstermelidir. (İstisna: Eğer Yazılım`ın kendisi interaktif ise fakat böyle bir bildirimi olağan kullanım esnasında yazdırmıyor ise, sizin Yazılım`ı baz alan ürününüz böyle bir bildirimde bulunmak zorunda değildir.)Mesela `bc` komut satırında interaktif olarak çalışan bir hesaplayıcı olarak bu kapsama giren bir yazılım ve çalıştırdığınızda telif hakkı bildirimini görebilirsiniz. İşte geliştirici interaktif phpnuke rendering`ini öne sürerek phpnuke`un render ettiği sayfaların da çıktı olarak yazılım`ı baz alan ürün kapsamına girmesini gerekçe gösteriyor ve 2c) gereği üretilen her sayfanın footer`ında copyright notice belirtilmesini istiyor. (Anladığım kadarıyla başka bir form`u da kabul etmiyor.) Bu mesele Maverick`in bahsettiği, Berkeley reklamını zorunlu kılan 4 şartlı eski BSD lisansından farklı ve açıkçası bence 4 şartlı BSD lisansı daha insaflı (en azından form belirtilmiyor) ve daha dürüst (doğrudan reklam talebinde bulunuyor). phpnuke GPL olmasaydı bir sözümüz olamazdı fakat hem GPL hem de bu tür dolaylı kısıtlamalar ifade eden şartlar doğrusu şık kaçmıyor. Aynı mantıktan hareketle `latex`le üretilen her dvi/ps/pdf çıktısının footer`ında lisans şartlarının belirtildiğini düşünün. Bu duruma ne kadar yanlış ise bence ilkesel olarak bu da o kadar yanlış. Ürettiğim web sayfasının içeriği (content) benimdir ve Content`i Manage etti diye phpnuke`un her sayfada temcit pilavı gibi tanıtım istemesi (gizli reklam) doğru bir talep olmaz.
Francisco Burzi bu isteğine yasal dayanak oluşturmak için konuyu FSF`e götürmüş. FSF`den bir kişinin verdiği -resmi olmayan- cevapta GPL ihlalinin bulunmadığı onayını almış. Fakat bu cevabı veren kişi (David Turner) debian-legal listesinde biraz daha açık konuşuyor (zannediyorum olayın ciddiyetini göz ardı etmiş). debian-legal listesinde phpnuke lisansının bu şekliyle GPL ile çeliştiği konusunda bir tür konsensus oluşmuş durumda. Bu konsensusun sonucu olarak phpnuke`un DFSG (Debian Free Software Guidelines) uyumlu olmadığı ve ana dağıtımdan çıkarılması isteniyor. (bkz.) Ne yapsak acaba? FM2 için phpnuke yerine postnuke veya daha iyisi drupal`mi kullansak ;)
Herkes için Debian ( 16)