Tellop'taki açık kaynaklı yazılımlar
Tellop açık kaynaklı yazılımlar içerir. Bir lisans kaynak kodunu paylaşmamızı istiyorsa, onu buradan indirebilirsin.
Lisansların tam listesi uygulamanın içinde: Ayarlar'da, Hakkında altındaki Açık kaynak lisansları bölümünde.
İndirme sayfasındaki sürüm olan Tellop 0.4.0 için:
- Git 2.53.0 ve Git LFS 3.7.1GPL-2.0 ve MPL-2.0 · 8,9 MB
- Electron 43.1.0 ile gelen FFmpeg kütüphanesiLGPL-2.1 veya sonrası · 61 MB
- Prisma araçlarının içindeki iki kütüphane: colored 3.0.0 ve priority-queue 1.3.2MPL-2.0 · 0,07 MB
- pg_uuidv7 1.7.0MPL-2.0 · 0,02 MB
- Bun'ın CSS ayrıştırıcısı ve yapay zekâ motorunun içindeki beş kütüphaneMPL-2.0 · 1,0 MB
- JavaScriptCore, WebKit ve TinyCC; Tellop'un yapay zekâ motorunu onlarla yeniden oluşturmak için gereken her şeyle (Bun 1.3.14)LGPL-2.0 ve LGPL-2.1 · 524 MB
Bu arşivdeki yeniden bağlama adımlarına bir düzeltme
Bu arşivdeki README, önce kütüphanelerin kaynak kodunu değiştirmeni, sonra relink-engine.sh betiğini çalıştırmanı söyler. Ama bu betik, bir şey derlemeden önce SHA256SUMS dosyasında listelenen her dosyayı denetler ve değişmiş ya da eksik bir dosyada durur. Bu yüzden şu adımları Terminal'de, bu sırayla yap:
Arşivden çıkan klasöre, yani relink-engine.sh betiğinin olduğu klasöre geç (/path/to yerine o klasörün bulunduğu yeri yaz). Hiçbir şeyi değiştirmeden önce, dosyaların bizim yayımladıklarımız olduğunu denetle. Komut her dosya için bir sonuç yazar, binlerce tane. Sonuncusu OK ile bitmeli. Birinde FAILED ya da WARNING yazıyorsa arşivi yeniden indir ve yeniden aç:
cd /path/to/engine-89e502e3-tellop-source shasum -a 256 -c SHA256SUMSKütüphanelerin kaynak kodunda değişikliklerini yap.
Bir dosyayı sildiysen kaydını da sil. Değiştirdiğin her dosya için bunu aynı klasörde çalıştır. <file> yerine dosyanın yolunu, SHA256SUMS dosyasında yazıldığı gibi yaz. Komutun ekrana yazdığını, SHA256SUMS dosyasında o dosyanın eski kaydının yerine koy:
shasum -a 256 <file>Sonra aynı klasörde relink-engine.sh betiğini çalıştır. <work folder> yerine, betiğin içinde çalışacağı, kendi seçtiğin bir klasörün yolunu yaz (yolda boşluk varsa tırnak içinde). Betiğin önce nelere ihtiyaç duyduğunu README ve relink-engine.sh dosyasının başı anlatır; /opt/tellop-engine klasörü de bunlardan biridir:
sh relink-engine.sh <work folder>
- Yapay zekâ motorunun içindeki fff dosya bulucu kütüphanesi; xdiff ve onu yeniden oluşturup motora koymak için gereken her şeyle (fff 0.9.4)LGPL-2.1 veya sonrası · 55 MB
Kendi FFmpeg derlemeni kullanmak
Tellop'un içindeki FFmpeg kütüphanesini, kendi Tellop kopyanda kendi derlediğin bir sürümle değiştirebilirsin (GNU Kısıtlı Genel Kamu Lisansı, sürüm 2.1, 6. madde). Tellop böyle bir kopyayı yalnızca içindeki diğer her dosya bizim yayımladığımız gibiyse (aşağıdaki adımların yeniden attığı imzalar dışında), kopya aşağıdaki gibi imzalandıysa ve sen onu etkinleştirdiysen açar. Her adımı Terminal'de yap: Finder kopyaya dosya ekleyebilir ve Tellop, o kütüphane dışında eklenmiş, silinmiş ya da değişmiş bir dosyası olan kopyayı açmaz.
Tellop'u kendi seçtiğin yeni ve boş bir klasöre kopyala, adı Tellop.app olarak kalsın. Sonraki adımlar için klasöre, kopyaya ve kütüphanesine kısa adlar ver. Buradaki klasör bir örnek (değiştirirsen tırnakları koru). Tellop ~/Applications klasöründeyse (kendi kullanıcı klasöründeki Uygulamalar klasörü), bu adımda ve sonrakinde /Applications/Tellop.app yerine ~/Applications/Tellop.app yaz. Bu adımdaki find komutu, Finder'ın, Tellop'un içinde (Paket İçeriğini Göster ile) açtığın her klasöre bıraktığı .DS_Store dosyalarını kopyadan siler: kendi Tellop'un onlarla da açılır, ama Tellop değiştirilmiş bir kopyayı yayımladığımız dosyalarla tek tek karşılaştırır ve eklenmiş dosyası olan bir kopyayı açmaz:
DIR="$HOME/Desktop/Modified" mkdir -p "$DIR" ditto /Applications/Tellop.app "$DIR/Tellop.app" APP="$DIR/Tellop.app" find "$APP" -name .DS_Store -delete LIB="$APP/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libffmpeg.dylib"Tellop'un imzalandığı izinleri (entitlements) kaydet. Tellop, başka izinlerle imzalanmış bir kopyayı açmaz:
codesign -d --entitlements - --xml /Applications/Tellop.app > "$DIR/entitlements.plist"Kendi derlediğin kütüphaneyi Tellop'la gelenin yerine koy. Kaynak kodu ve derleme adımları yukarıdaki FFmpeg arşivinde:
cp /path/to/your/libffmpeg.dylib "$LIB"Önce kütüphaneyi, sonra onu taşıyan çerçeveyi (framework), en son uygulamayı imzala, bu sırayla:
codesign --force --sign - "$LIB" codesign --force --sign - "$APP/Contents/Frameworks/Electron Framework.framework" codesign --force --sign - --options runtime --entitlements "$DIR/entitlements.plist" "$APP"İmzaladıktan sonra kopyayı etkinleştir. Bu komutların yazdığı dosya imzalı kütüphaneni tanımlar ve Tellop değiştirilmiş bir kopyayı yalnızca ikisi eşleştiği sürece açar. Dosya Mac hesabına aittir, bu yüzden açtığın her kopya için geçerlidir; kapatmak için dosyayı sil. Bizim imzaladığımız bir kopya bu dosyayı hiç okumaz:
mkdir -p ~/Library/Application\ Support/Tellop shasum -a 256 "$LIB" | cut -c1-64 > ~/Library/Application\ Support/Tellop/modified-ffmpeg.sha256Tellop açıksa kapat (aynı anda tek bir Tellop çalışır), kopyanın asıl uygulamadan taşıdığı indirme işaretini kaldır (macOS işaretli bir uygulamada Apple'ın onayını arar, kendi imzaladığın bir kopyada bu onay yoktur) ve kopyayı aç. Kopya ilk açıldığında, Tellop'un anahtar zincirine (Keychain) kaydettiklerini kullanabilmesi için macOS senden Mac parolanı isteyebilir.
xattr -dr com.apple.quarantine "$APP" open "$APP"
Değiştirilmiş bir kopyayı imzalamıyor ve desteklemiyoruz (Tellop kullanım koşulları, 17. madde).
Değiştirilmiş bir kopya kendini güncellemez: Tellop yeni sürümü yine bulur ve indirir, ama Tellop'un içindeki güncelleyici onu kopyanın kendi imzasıyla karşılaştırır ve reddeder, bu yüzden güncelleme “Güncelleme tamamlanamadı” diye biter. Yeni sürüme geçmek için eski kopyanı sil, Tellop'u yeniden indir ve bu adımları tekrarla. Kopya açılmazsa klasörünü sil ve bu adımları tekrarla.