Commit 455d1e6
0
plików
+0
dodanych
-0
usuniętych
@@ -1,7 +1,7 @@
1
1
#!/usr/bin/env python3
2
2
"""
3
3
╔══════════════════════════════════════════════════════════════════════════════╗
4
-║ PAG - Pagan Linux Package Manager v3.3.10a ║
4
+║ PAG - Pagan Linux Package Manager v3.3.14 ║
5
5
║ Produkcyjny menedżer pakietów – atomowy, bezpieczny, i18n ║
6
6
╚══════════════════════════════════════════════════════════════════════════════╝
7
7
@@ -55,7 +55,7 @@ import threading, itertools
55
55
import uuid # serialNumber SBOM (CycloneDX)
56
56
57
57
# Wersja klienta – do porównania z repo.json["pag_version"] (self-update)
58
-PAG_VERSION = "3.3.13"
58
+PAG_VERSION = "3.3.14"
59
59
from urllib.error import URLError, HTTPError
60
60
61
61
# =============================================================================
@@ -1589,6 +1589,24 @@ def _atomic_install(pkg_path: str, pkg: PackageInfo, deploy_dir: str = "",
1589
1589
1590
1590
# Przenieś pliki: staging/data/* → /
1591
1591
for root, dirs, files in os.walk(data_staging):
1592
+ # Odtwórz katalogi z pakietu – w tym PUSTE (np. /etc/pulse/default.pa.d).
1593
+ # Pętla plików tworzy tylko rodziców instalowanych plików, przez co
1594
+ # puste katalogi z data.tar.xz ginęły przy instalacji.
1595
+ for d in dirs:
1596
+ src_dir = os.path.join(root, d)
1597
+ rel_dir = os.path.relpath(src_dir, data_staging)
1598
+ if deploy_dir and _is_shared_path("/" + rel_dir):
1599
+ dst_root = PAG_ROOT
1600
+ elif deploy_dir:
1601
+ dst_root = deploy_dir
1602
+ else:
1603
+ dst_root = PAG_ROOT
1604
+ dst_dir = os.path.join(dst_root, rel_dir)
1605
+ if not os.path.isdir(dst_dir):
1606
+ try:
1607
+ os.makedirs(dst_dir, exist_ok=True)
1608
+ except OSError:
1609
+ pass
1592
1610
for fname in files:
1593
1611
if fname == "sums.json":
1594
1612
continue