[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-84155":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":15,"stars7d":16,"stars30d":16,"stars90d":14,"forks30d":14,"starsTrendScore":17,"compositeScore":18,"rankGlobal":9,"rankLanguage":9,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":20,"topics":23,"createdAt":9,"pushedAt":9,"updatedAt":24,"readmeContent":25,"aiSummary":9,"trendingCount":14,"starSnapshotCount":14,"syncStatus":13,"lastSyncTime":26,"discoverSource":27},84155,"ude-mac-arm64","saidsurucu\u002Fude-mac-arm64","saidsurucu","Uyap Doküman Editörü (UDE) için native Apple Silicon (arm64) build — Rosetta'sız çalışır",null,"Java",67,4,2,0,6,11,23,2.1,"MIT License",false,"main",true,[],"2026-06-12 02:04:38","# UDE — Apple Silicon (arm64) Native\n\n[Uyap Doküman Editörü](https:\u002F\u002Fuyap.gov.tr)'nü (UDE) Apple Silicon (M1\u002FM2\u002FM3\u002FM4)\nMac'lerde **Rosetta olmadan** native çalıştırır. Rosetta çeviri katmanı olmadığı için\n**daha hızlı** açılır ve çalışır. Java gömülü gelir; ayrıca bir şey kurmaya gerek yoktur\nve `.udf` dosyalarına **çift tıklayarak** açabilirsiniz.\n\n> 💻 **Intel Mac'iniz mi var?** Aşağıdaki tüm mimari-bağımsız iyileştirmeler (keskin metin,\n> modern ikonlar, Mac kısayolları, native pencereler, e-imza, PDF Türkçe harf) Intel'de de\n> geçerli. Kurulum komutu için bkz. **[Intel işlemcili Mac'ler için](#-intel-işlemcili-macler-için)**.\n\n![UDE — modern Material ikonlar ve Retina'da keskin metin](assets\u002Fekran-goruntusu.jpeg)\n\n> Modern Material ikonlar + Java 11 HiDPI ile **Retina'da keskin** metin ve arayüz.\n\n> ⚠️ **Bu depo UYAP Doküman Editörü'nün kaynak kodunu içermez.** Tamamen bağımsız,\n> **gayriresmî** bir Mac **yamasıdır**: hiçbir kamu kurumu tarafından\n> geliştirilmemiş\u002Fonaylanmamıştır. Burada bulunan yalnızca yama ve build betikleridir;\n> resmî UDE paketi build sırasında uyap.gov.tr'den **siz** indirir ve yamayı uygulamanın\n> üstüne **siz** çalıştırırsınız. \"Olduğu gibi\" sunulur.\n\n> ✅ **E-imza çalışıyor:** Akıllı kart okuyucu algılaması (`5.4.17_4`+) çözüldü —\n> gömülü Java artık PCSC üzerinden kartı görüyor ve imzalama akışı baştan sona\n> çalışıyor. Belge açma\u002Fdüzenleme de sorunsuz.\n\n> 🗂️ **Native macOS dosya pencereleri:** Aç \u002F Kaydet \u002F Farklı Kaydet artık eski\n> görünümlü Java penceresi yerine macOS'un **kendi** dosya penceresini kullanır —\n> Finder kenar çubuğu, iCloud Drive, son kullanılanlar ve `.udf` filtresiyle.\n\n![UDE — native macOS Aç\u002FKaydet penceresi](assets\u002Fnative-dosya-penceresi.png)\n\n> Aç\u002FKaydet pencereleri artık macOS'un native dosya seçicisi.\n\n> 📦 **Hazır (paketlenmiş) uygulama dağıtılmaz.** İşgüzarlarla uğraşmak istemediğim\n> için paketlenmiş hâlini dağıtmıyorum; uygulamayı **kendiniz derleyip paketlersiniz**.\n> Bu sayfada bir \"Releases\" \u002F hazır indirme bağlantısı **bulmazsınız**. Aşağıdaki adımlar\n> derlemeyi olabildiğince kolaylaştırır — komutları kopyala-yapıştır ile çalıştırmanız yeterli.\n\n---\n\n# 👩‍⚖️ Kolay kurulum — tek satır\n\nProgramcı olmanıza gerek yok. **Terminal** uygulamasını açın (klavyede\n`Command (⌘) + Boşluk`'a basıp açılan kutuya **Terminal** yazın ve **Enter**'a basın),\nardından aşağıdaki **tek satırı** kopyalayıp yapıştırın ve **Enter**'a basın:\n\n```bash\narch -arm64 bash -c \"$(curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fsaidsurucu\u002Fude-mac-arm64\u002Fmain\u002Fkur.sh)\"\n```\n\nHepsi bu kadar. Manuel indirme, klasöre girme, Java kurma gibi adımlar **yok**. Bu komut\ngerisini sizin için yapar:\n\n- Gerekiyorsa **geliştirici araçlarını** (Xcode komut satırı araçları) kurar — bir pencere\n  açılırsa yalnızca **\"Yükle\"**ye basıp bitmesini bekleyin, betik kendiliğinden devam eder.\n- **Kaynak kodu** `~\u002Fude-mac-arm64` klasörüne indirir (zaten varsa en güncel sürüme günceller).\n- Gereken **Java** sürümlerini otomatik indirir.\n- Uygulamayı modern ikonlarla **derler + imzalar** ve doğrudan **\u002FApplications** klasörüne kurar.\n\nİlk derleme internet hızınıza göre birkaç dakika sürebilir.\n\nBittiğinde uygulama **Launchpad** ve **Applications** klasöründe hazırdır; çift tıklayarak\nya da `.udf` dosyalarına çift tıklayarak açabilirsiniz. (Kendiniz derleyip imzaladığınız\niçin macOS \"geliştirici doğrulanamadı\" uyarısı **çıkmaz**; `xattr` ile uğraşmanıza gerek\nyoktur.)\n\n**Yeni Editör sürümü çıktığında yukarıdaki tek satırı yeniden çalıştırmanız yeterli. En\ngüncel sürüm otomatik inecek ve yamalanacak.**\n\n## 💻 Intel işlemcili Mac'ler için\n\nMac'iniz Intel (x86_64) işlemcili ise — yani Apple Silicon (M1\u002FM2\u002FM3\u002FM4) **değilse** —\naynı kurulumu şu **tek satırla** yapın (Apple Silicon'dakinin aksine `arch -arm64`\n**yoktur**; Intel zaten yalnız x86_64'tür):\n\n```bash\nbash -c \"$(curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fsaidsurucu\u002Fude-mac-arm64\u002Fmain\u002Fkur.sh)\"\n```\n\n> Mimarinizden emin değil misiniz? Sol üstteki **Apple () menüsü → Bu Mac Hakkında**'ya\n> bakın: **\"Apple M…\"** yazıyorsa üstteki Apple Silicon komutunu, **\"Intel\"** yazıyorsa\n> bu komutu kullanın. (Betik mimariyi kendisi de algılar; yanlış komutu çalıştırırsanız\n> sizi uyarır.)\n\nIntel'de resmî UDE paketi zaten x86_64 olduğu için burada kazanç \"Rosetta'sız native hız\"\n**değildir**; kazanç şunlardır: **Java 11 ile Retina'da keskin metin**, **modern Material\nikonlar**, **Mac klavye kısayolları**, **native macOS Aç\u002FKaydet pencereleri**, **trackpad \u002F\n⌘ ile yakınlaştırma**, **e-imza (akıllı kart) düzeltmesi** ve **PDF dışa aktarımında Türkçe\nharfler**. Yani mimariye bağlı olmayan tüm iyileştirmeler Intel'de de geçerlidir.\n\n### E-imza kullanacaksanız — AKİS sürücüsü (zorunlu)\n\nAkıllı kart \u002F e-imza sürücünüzün de Mac'inizin mimarisine uygun sürümünün kurulu olması\ngerekir. TÜBİTAK BİLGEM AKİS — Destek\u002Fİndirme sayfasından\n(\u003Chttps:\u002F\u002Fakiskart.bilgem.tubitak.gov.tr\u002Fdestek\u002F>):\n\n- **Apple Silicon (M1\u002FM2\u002FM3\u002FM4):** **\"Mac OS Arm (Apple Silicon)\"** başlığı altındaki\n  güncel paketi indirin (ör. `Akia_macos_arm_6_8_9.pkg`).\n- **Intel:** **\"Mac OS Intel\"** başlığı altındaki paketi indirin.\n\nİndirilen `.pkg`'a çift tıklayıp kurulumu tamamlayın (yönetici şifresi ister). Mac'inizin\nmimarisine **uymayan** paketi seçmeyin.\n\n### ⌨️ Klavye kısayolları\n\nBu derlemede kısayollar Mac'e uyarlanmıştır (kalın `⌘B`, kaydet `⌘S`, hizalama\n`⌘L\u002FE\u002FR\u002FJ`, yazı boyutu `⌘⇧.`\u002F`⌘⇧,` …). Tam liste için bkz. **[KISAYOLLAR.md](KISAYOLLAR.md)**.\n\n---\n\n# 🛠️ Mühendisler için — Teknik ayrıntı\n\nYukarıdaki adımlar derlemek için yeterlidir. Bu bölüm, dönüşümün **neyi nasıl** çözdüğünü\nve tek tek build hedeflerini açıklar.\n\n## Neyi nasıl çözüyor\n\nBuild, çalıştığı Mac'in mimarisini `uname -m` ile **otomatik algılar** (Apple Silicon=arm64,\nIntel=x86_64) ve gömülecek Java ile launcher'ı o mimari için üretir. Aşağıdaki çözümler\narm64'ün özgün gerekçesiyle anlatılır; **2, 3, 6, 7, 8, 9** maddeleri mimariden bağımsızdır\nve Intel'de de aynen geçerlidir. Madde 4 (sqlite) arm64'te zorunluydu (3.7.2'nin arm64\nnative'i yoktu); Intel'de 3.7.2 zaten x86_64 native içerir ama tek tip build için 3.46.x'e\ngeçiş orada da uygulanır (jar hem `Mac\u002Faarch64` hem `Mac\u002Fx86_64` dylib taşır).\n\nResmî paket x86_64. Native arm64 için:\n\n1. **Launcher** → `jpackage` ile arm64 **Java 11** runtime **gömülü**, gerçek native\n   launcher üretilir. Kullanıcı Java kurmaz; macOS çift-tık (dosya açma) çalışır.\n2. **Retina\u002Fkeskin metin** → arm64 **Java 8** Swing'i Retina'da bulanık render ediyordu.\n   **Java 11** (JEP 263 otomatik HiDPI) ile metin keskin. UDE'nin Java 8 bytecode'u\n   Java 11'de çalışır (WebLaF illegal-access uyarıyla geçer).\n3. **eawt-shim** → UDE'nin kullandığı eski `com.apple.eawt` API'si Java 11'de kaldırılmış.\n   `scripts\u002Feawt-shim` ile bu sınıflar `--patch-module java.desktop` üzerinden sağlanır;\n   dosya açma, Java 11'in native dispatcher'ına reflection ile köprülenir → çift-tık korunur.\n4. **sqlite-jdbc 3.7.2** (arm64 native'i yok) → **3.46.x** ile değiştirilir.\n5. **JNA** → uygulama JNA'yı hiç çağırmıyor (bytecode taramasıyla doğrulandı), dokunulmaz.\n6. **Modern ikonlar** (`ICONS=1`) → UDE'nin ~324 toolbar\u002Faksiyon ikonu modern **Material**\n   setiyle değiştirilir ve **Retina-keskin** yapılır. UDE ikonları düz `ImageIcon` olarak\n   yüklenip HiDPI-farkında olmadığından, yükleyici (`Utils.b`) Javassist ile\n   `BaseMultiResolutionImage`'a (1x + `@2x`) köprülenir. Override görseller\n   `scripts\u002Ficons\u002Foverrides`, yama `scripts\u002Ficons\u002FIconLoaderPatch.java`. Yayınlanan\n   sürümler bu modu açık derlenir.\n\n7. **E-imza** (`5.4.17_4`+) → JDK'nın `javax.smartcardio` + `sun.security.pkcs11`\n   API'leriyle çalışır (JNA değil). Gömülü Java'nın `javax.smartcardio` katmanı macOS'ta\n   PCSC native kütüphanesini varsayılan yolda bulamadığından kart okuyucu görünmüyordu.\n   Çözüm `-Dsun.security.smartcardio.library=\u002FSystem\u002FLibrary\u002FFrameworks\u002FPCSC.framework\u002FVersions\u002FA\u002FPCSC`\n   ile bu yolu vermek; ancak `jpackage`'ın `.cfg` java-option'ları çift-tıkla açılan\n   launcher'da bu JVM'e ulaşmıyordu (kullanıcı `lsof` ile doğruladı: framework yüklenmiyordu).\n   Bu yüzden parametre, JVM'in her zaman okuduğu `JAVA_TOOL_OPTIONS` ortam değişkenine,\n   `.app`'in `Info.plist`'indeki `LSEnvironment` (Launch Services) anahtarıyla gömülür →\n   çift-tık açılışta garanti uygulanır. (`Versions\u002FCurrent` symlink yerine kanıtlanmış\n   `Versions\u002FA` yolu kullanılır.)\n\n8. **Trackpad ile yakınlaştırma** → UDE'de zoom yalnızca durum çubuğundaki kaydırıcıyla\n   yapılabiliyordu; trackpad jesti yoktu. `scripts\u002Fmacos-zoom` javaagent'ı **⌘ + iki parmak\n   kaydırma** jestini bu kaydırıcıya bağlar: Cmd basılıyken gelen `MouseWheelEvent` yakalanıp\n   yutulur (belge kaymaz) ve uygulamanın zoom kaydırıcısı sürülür → belge büyür\u002Fküçülür.\n   Gerçek iki-parmak *pinch* jesti modern Java'ya iletilmediğinden ⌘ tuşu gerekir; ⌘'süz\n   kaydırma belgeyi normal kaydırır. Olayı yutabilmek için sistem `EventQueue`'su **ilk odak\n   olayında** devralınır (premain'de erken devralma WebLaF tarafından baypas edilir).\n   Ayrıca **`⌘+` \u002F `⌘−`** klavye kısayolları da aynı kaydırıcıyı sürer (bir `KeyEventDispatcher`\n   ile); macOS'un standart yakınlaştır\u002Fuzaklaştır tuşları beklendiği gibi çalışır.\n\n9. **Standart Mac kısayolları** → UDE'nin editörü Windows kökenli; kısayollar Ctrl tabanlı ve\n   bir kısmı alışılmadık tuşlarda (kalın `Ctrl+K`, italik `Ctrl+T`, altı çizili `Ctrl+Shift+A`,\n   bul `Ctrl+B`). Üstelik macOS, metin bileşenlerine yerleşik **Emacs imleç bağlamaları** ekler\n   (`Ctrl+A` satır başı, `Ctrl+B` harf geri, `Ctrl+N\u002FP\u002FO\u002FF`, `Ctrl+V` sayfa aşağı…) ve bunlar\n   uygulamanın komutlarından önce çalışır → sentetik bir `Ctrl+A` \"tümünü seç\" değil \"satır başı\"\n   yapar. `scripts\u002Fmacos-textkeys`'teki `MacShortcutRemap` (bir `KeyEventDispatcher`) bu yüzden\n   üç katmanlı çalışır:\n   - **Menü-etiketi**: Menüde karşılığı olan komutlar için odaktaki pencerenin menü ağacında\n     etiketle eşleşen etkin `JMenuItem` bulunup `doClick()` edilir. Bu, uygulamanın **gerçek**\n     eylemini (zengin-metin yapıştırma vb.) çağırır ve odak bileşenini kullanmadığından Emacs\n     gölgesini tamamen baypas eder. (Menü öğelerinin hızlandırıcısı yoktur; eşleme etiketledir.)\n   - **Metin API'si**: Seç\u002Fkopyala\u002Fkes\u002Fyapıştır için yedek olarak doğrudan `JTextComponent`.\n   - **Sentetik Ctrl**: Menüde olmayan biçimlendirme (kalın\u002Fitalik\u002Faltı çizili) için odaktaki\n     bileşene sentetik Ctrl gönderilir (uygulama bu tuşları Emacs'in üzerine ezdiğinden çalışır).\n\n   Eşlemeler: `⌘B\u002F⌘I\u002F⌘U`→kalın\u002Fitalik\u002Faltı çizili, `⌘C\u002F⌘V\u002F⌘X\u002F⌘A`→kopyala\u002Fyapıştır\u002Fkes\u002Ftümünü seç,\n   `⌘Z\u002F⌘⇧Z`→geri\u002Fileri al, `⌘N\u002F⌘O\u002F⌘S\u002F⌘⇧S`→yeni\u002Faç\u002Fkaydet\u002Ffarklı kaydet, `⌘P\u002F⌘⇧P`→yazdır\u002Fönizleme,\n   `⌘F`→bul, `⌘T`→yazı özellikleri. Mevcut Ctrl kısayolları aynen çalışır; `⌘Q\u002F⌘W\u002F⌘H\u002F⌘M` gibi\n   gerçek macOS kısayollarına dokunulmaz.\n\n10. **Modern düz görünüm** (`SKIN=1`) → Menüler, paneller, şerit ve durum çubuğu degradesiz\n    nötr açık renklere geçer; arayüz yazı tipi modernleşir; belge çevresindeki eski turkuaz\n    arka plan nötr griye düzeltilir. Şerit düzeni ve belge içeriği değişmez. Varsayılan\n    olarak kapalıdır; yayın sürümlerinde isteğe bağlı kullanılır.\n\n> Not: macOS codesign, `.app` adındaki Türkçe karakterlerle imzayı bozuyor; bu yüzden\n> executable ASCII (`UyapDokumanEditoru`) tutulur, görünen ad sonradan Türkçe yapılır.\n\n## Gereksinimler (yalnızca build için)\n\n- macOS Mac (Apple Silicon **veya** Intel — mimari `uname -m` ile otomatik algılanır)\n- **Java 11** (gömülecek runtime, Mac'inizin mimarisi için) — yoksa `make jdk` Azul Zulu 11'i kurar\n- **jpackage'lı 17+ JDK** (jpackage + shim derlemesi) — yoksa `make jpackage-jdk` Azul Zulu 21'i kurar\n- `curl`, `unzip`, `zip`, `codesign`, `plutil` (macOS'ta hazır gelir)\n\n> Build, host mimarisi için derler: Apple Silicon'da arm64, Intel'de x86_64 (çapraz\n> derleme yapılmaz; gömülecek Java ve jpackage host mimarisiyle eşleşir).\n\n## Kullanım\n\n```bash\nmake jdk           # gömülecek Java 11 yoksa kur (host mimarisi)\nmake jpackage-jdk  # jpackage'lı 17+ JDK yoksa kur\nmake all           # build\u002FUyap Doküman Editörü.app üret\nICONS=1 make all            # + modern Material\u002FRetina ikonlar (yayın sürümleri böyle)\nSKIN=1 ICONS=1 make all    # + modern düz görünüm (SKIN=1 opsiyonel)\n```\n\n### Diğer hedefler\n\n```\nmake help        # tüm hedefler\nmake check-deps  # araç + Java 11 (host mimarisi) + jpackage denetimi\nmake download    # paketi indir + kaynağı aç\nmake deps        # sqlite-jdbc indir + host mimarisi dylib doğrula\nmake shim        # eawt-shim derle (Java 11 com.apple.eawt yerine)\nmake patch       # editor-app.jar yamala (sqlite swap + eawt çıkar)\nmake package     # jpackage ile .app üret (Java 11 + shim, .udf ilişkilendirmeli)\nmake sign        # ad-hoc codesign\nmake clean \u002F distclean\n```\n\n### Yeni UDE sürümü çıkınca\n\n```bash\nmake distclean\nUDE_URL=\"https:\u002F\u002Frayp.adalet.gov.tr\u002F...\u002Fyeni-paket.zip\" make all\n```\n\n> Uyarı: İleride paket yapısı (jar\u002Fsqlite sürümü) değişirse betiklerin güncellenmesi gerekebilir.\n\n## CI build (isteğe bağlı)\n\n`.github\u002Fworkflows\u002Frelease.yml` (elle tetiklenir): macOS arm64 runner'da `make all`\nçalıştırır ve `.app`'i imzayı bozmadan zip'ler. Sürüm, UDE sürümünden türetilir:\n`\u003Cude_surumu>_\u003CN>` (ör. `5.4.17_1`). Bu yalnızca derlemenin doğrulanması\u002Fkişisel kullanım\niçindir; bu depo **hazır paket dağıtmaz** (bkz. en üstteki not).\n\n> Not: CI yalnızca arm64 runner kullanır; Intel (x86_64) build'i yerelde bir Intel Mac'te\n> (`bash kur.sh` veya `make all`) üretilir. İstenirse `macos-13` Intel runner ile ayrı bir\n> CI işi eklenebilir.\n\n---\n\n## Teşekkür\n\nBu çalışmaya ilham veren ve sorunun çözüm yolunu ortaya koyan\n[**tosbaha**](https:\u002F\u002Fgithub.com\u002Ftosbaha) kullanıcısına ([tosbaha\u002Fuyap-arm](https:\u002F\u002Fgithub.com\u002Ftosbaha\u002Fuyap-arm))\nteşekkürler.\n\n## Lisans\n\nBu depodaki paketleme betikleri, yamalar ve belgeler [MIT Lisansı](LICENSE) ile sunulur.\nUyap Doküman Editörü'nün kendisi UYAP \u002F T.C. Adalet Bakanlığı'na ait olup bu lisansın\nkapsamı dışındadır; ilgili kullanım koşullarına tabidir.\n","2026-06-11 04:12:27","CREATED_QUERY"]