Pardus 23'ten 25'e geçen bir kullanıcının pardus-software ayarları sessizce sıfırlanıyor. Sebebini araştırdım, altında yapısal bir konu var; yama göndermeden önce sizin görüşünüzü almak istedim.
Ne oluyor
Ayar dosyasının yolu 1.0.0 öncesinde ~/.config/pardus-software/ idi, sonra ~/.config/pardus/pardus-software/ oldu. UserSettings artık yalnızca yeni yola bakıyor, eski dosyayı görmüyor. Kullanıcının seçimleri diskte duruyor ama uygulama varsayılanlarla açılıyor.
Nasıl ölçtüm
İki sanal makine kurdum, ikisinde de depodan kurulu paketler kullandım:
- Pardus 23.0,
pardus-software 0.8.3 → ayarları uygulamanın kendi writeConfig() çağrısıyla değiştirdim, dosya ~/.config/pardus-software/settings.ini oldu
- Bu dosyayı Pardus 25.2'ye taşıdım (yükseltmede olan da bu),
pardus-software 1.0.5 çalıştırdım
Sonuç:
| Ayar |
23'te seçilen |
25'te okunan |
| koyu tema |
açık |
kapalı |
| animasyonlar |
kapalı |
açık |
| gnome yorumları |
kapalı |
açık |
| otomatik apt güncelleme |
kapalı |
açık |
Diskte iki dosya birden duruyor:
~/.config/pardus-software/settings.ini <- kullanıcının ayarları, okunmuyor
animations = no, usedarktheme = yes, autoaptupdate = no
~/.config/pardus/pardus-software/settings.ini <- 1.0.5'in yazdığı varsayılanlar
animations = yes, autoaptupdate = yes
Altındaki yapısal konu
Eski yol çözümlemesi üç yerde ayrı ayrı yazılmış:
| Dosya |
Durum |
Server.py:51-58 |
eski yolu tercih ediyor (cachedir + configdir) |
Logger.py:22-24 |
eski yolu tercih ediyor (logdir) |
UserSettings.py:34-35 |
koşulsuz yeni yol, yedek dal yok |
UserSettings'teki yedek dal 1.0.0'da (5029a09) kaldırılmış, diğer ikisi kalmış. Ayrışma buradan geliyor.
Aynı kökün ikinci bir belirtisi daha var: set_cache_size() ve delete_cache() Server.cachedir üzerinden çalıştığı için, eski dizini olan bir sistemde gösterilen boyut yanlış oluyor ve "Önbelleği Temizle" gerçek önbelleği silmiyor. Pardus 25.2 üzerinde ölçtüm: gösterilen 28,5 MB, gerçek önbellek 4,8 MB ve temizlemeden sonra yerinde duruyor.
Sormak istediğim
Bunu nasıl ele almak istersiniz? Aklıma üç yol geliyor:
UserSettings'e de yedek dalı geri koymak — en küçük değişiklik, ama üç yerde aynı mantık kalmaya devam eder
- Bir kereye mahsus taşıma: eski dosya varsa yeni yola kopyalayıp eskisini bırakmak
- Yol çözümlemesini tek bir yere toplamak, üçü de oradan alsın
Hangisini uygun görürseniz yamayı ona göre hazırlayıp gönderebilirim. Önbellek tarafı için düzeltme elimde hazır, onu ayrı bir PR olarak gönderebilirim; ayar tarafını sizin tercihinize göre yaparım.
Test ortamı: Pardus 23.0 XFCE ve Pardus 25.2 XFCE, KVM, her ikisinde de depo paketleri.
Pardus 23'ten 25'e geçen bir kullanıcının pardus-software ayarları sessizce sıfırlanıyor. Sebebini araştırdım, altında yapısal bir konu var; yama göndermeden önce sizin görüşünüzü almak istedim.
Ne oluyor
Ayar dosyasının yolu 1.0.0 öncesinde
~/.config/pardus-software/idi, sonra~/.config/pardus/pardus-software/oldu.UserSettingsartık yalnızca yeni yola bakıyor, eski dosyayı görmüyor. Kullanıcının seçimleri diskte duruyor ama uygulama varsayılanlarla açılıyor.Nasıl ölçtüm
İki sanal makine kurdum, ikisinde de depodan kurulu paketler kullandım:
pardus-software 0.8.3→ ayarları uygulamanın kendiwriteConfig()çağrısıyla değiştirdim, dosya~/.config/pardus-software/settings.inioldupardus-software 1.0.5çalıştırdımSonuç:
Diskte iki dosya birden duruyor:
Altındaki yapısal konu
Eski yol çözümlemesi üç yerde ayrı ayrı yazılmış:
Server.py:51-58Logger.py:22-24UserSettings.py:34-35UserSettings'teki yedek dal 1.0.0'da (5029a09) kaldırılmış, diğer ikisi kalmış. Ayrışma buradan geliyor.Aynı kökün ikinci bir belirtisi daha var:
set_cache_size()vedelete_cache()Server.cachedirüzerinden çalıştığı için, eski dizini olan bir sistemde gösterilen boyut yanlış oluyor ve "Önbelleği Temizle" gerçek önbelleği silmiyor. Pardus 25.2 üzerinde ölçtüm: gösterilen 28,5 MB, gerçek önbellek 4,8 MB ve temizlemeden sonra yerinde duruyor.Sormak istediğim
Bunu nasıl ele almak istersiniz? Aklıma üç yol geliyor:
UserSettings'e de yedek dalı geri koymak — en küçük değişiklik, ama üç yerde aynı mantık kalmaya devam ederHangisini uygun görürseniz yamayı ona göre hazırlayıp gönderebilirim. Önbellek tarafı için düzeltme elimde hazır, onu ayrı bir PR olarak gönderebilirim; ayar tarafını sizin tercihinize göre yaparım.
Test ortamı: Pardus 23.0 XFCE ve Pardus 25.2 XFCE, KVM, her ikisinde de depo paketleri.