English

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:

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.

  1. 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"
  2. 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"
  3. 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"
  4. Ö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"
  5. İ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.sha256
  6. Tellop 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.

İndirme sayfasına git