Pardus'un efsane paket yöneticisi PiSi'nin Python 3'e taşınma projesi.
PiSi (Packages Installed Successfully as Intended), TÜBİTAK tarafından geliştirilen ve Pardus Linux'ta kullanılan özgün paket yöneticisidir. 2013'te Pardus'un Debian'a geçmesiyle birlikte terk edilmiştir.
Bu proje, PiSi'nin pisilinux fork'unu Python 3'e taşımak amacıyla başlatılmıştır.
- Python 3 uyumluluk analizi yapıldı
-
fissixile otomatik dönüşüm uygulandı (13 dosya) -
eval()vebytes/strgüvenlik açıkları düzeltildi (pisi/cli/__init__.py,scripts/check-newconfigs.py) -
coreutils.pyparse hatası giderildi -
api.pygeçersiz escape sequence düzeltildi (Python 3.12+ SyntaxWarning) - DÜZELTİLDİ:
import formatterkaldırıldı — Python 3.12'de silinmiş modül;_Writerve_AbstractFormattersınıfları ile değiştirildi (pisi/pxml/autoxml.py) - DÜZELTİLDİ:
base64.encodestring()→base64.encodebytes()— Python 3.9'da kaldırılmıştı (pisi/fetcher.py) - DÜZELTİLDİ:
os.tmpfile()→tempfile.TemporaryFile()— Python 3'te kaldırılmıştı (scripts/package-signing/pisign.py) - DÜZELTİLDİ: Binary arşiv dosyaları text modda açılıyordu →
"wb"modu ile düzeltildi (pisi/archive.py: Bzip2, Gzip, Lzma) - DÜZELTİLDİ:
_LZMAProxy.bufstring yerine bytes olarak başlatıldı (pisi/archive.py) - DÜZELTİLDİ:
distutils→setuptoolsgeçişi yapıldı — Python 3.12'de kaldırılmıştı (setup.py,pisi/db/historydb.py) - DÜZELTİLDİ:
bytes/strkarışıklığı kapsamlı düzeltildi (pisi/db/sourcedb.py,scripts/package-signing/pisign.py,scripts/make-changelog.py) - DÜZELTİLDİ: Geçersiz regex escape dizileri
SyntaxWarningüretiyordu → raw string yapıldı (pisi/index.py,pisi/operations/build.py,pisi/actionsapi/kerneltools.py,pisi/pxml/autoxml.py) - DÜZELTİLDİ:
pisi/db/repodb.pytanımsızrepodeğişkeni →repo_nameile düzeltildi - DÜZELTİLDİ:
from pisi.delta import→from pisi.operations.delta import(scripts/createdelta.py) - DÜZELTİLDİ:
importlib.reload(sys)Python 2 hack'i kaldırıldı (pisi/__init__.py) - DÜZELTİLDİ:
Config::CONFIG→RbConfig::CONFIG— eski Ruby API (pisi/actionsapi/rubymodules.py) - DÜZELTİLDİ:
python setup.py→python3 setup.py(pisi/actionsapi/pythonmodules.py) - DÜZELTİLDİ:
locale.getdefaultlocale()→ Python 3.11'de deprecated;locale.setlocale()ile değiştirildi (pisi/pxml/autoxml.py) - DÜZELTİLDİ:
is ""→== ""SyntaxWarning giderildi (pisi/pxml/autoxml.py)
-
piksemel→lxmlile değiştirilecek (pisi/pxml/xmlext.pyve 7 bağımlı dosya) - Kapsamlı test yazılacak
- Pardus 25 üzerinde çalıştırılacak
piksemel, Pardus'a özgü bir C-extension XML kütüphanesidir. PyPI veya apt üzerinden
kurulumu mevcut değildir. import pisi çalışmaz hale getirmektedir.
Çözüm: pisi/pxml/xmlext.py dosyasındaki piksemel API'si lxml.etree ile ikame edilecek.
Etkilenen dosyalar (8 adet):
| Dosya | Bağımlılık |
|---|---|
pisi/pxml/xmlext.py |
import piksemel — ana adaptör |
pisi/pxml/xmlfile.py |
xmlext üzerinden |
pisi/pxml/autoxml.py |
xmlext üzerinden |
pisi/db/packagedb.py |
doğrudan piksemel |
pisi/db/installdb.py |
doğrudan piksemel |
pisi/db/sourcedb.py |
doğrudan piksemel |
pisi/db/repodb.py |
doğrudan piksemel |
pisi/specfile.py |
doğrudan piksemel |
git clone https://github.com/FOXY-cyber-dot/pisi-python3.git
cd pisi-python3
git checkout python3-portBu proje aktif geliştirme aşamasındadır. Katkıda bulunmak isteyenler PR açabilir. 🚀
GPL-2.0