diff --git a/AGENTS.md b/AGENTS.md index 686989a..cfe1368 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -96,7 +96,7 @@ Alle drei Blöcke listen bei mac2ip zusätzlich `sudo`, `iproute2`/`iproute`, `i ### 3.3 Skripte in `scripts/` - **Generizität**: Die Skripte dürfen keine hardcodierten Anwendungsnamen, spezifischen Abhängigkeiten oder projektspezifischen URLs enthalten. Alle Werte müssen dynamisch aus `Cargo.toml` (via `cargo metadata` oder Dateiparsing) oder Umgebungsvariablen (`BUILD_NUMBER`, `GITEA_URL`, `REPO`, `TOKEN`) ermittelt werden. -- **`package-arch.py`-Install-Skriptlet**: Liest optional `[package.metadata.arch].install_script` aus `cargo metadata` und bettet die referenzierte Datei pacman-konform als `.install` (mit `install = .install` in `.PKGINFO`) in das erzeugte `.pkg.tar.zst` ein — weiterhin vollständig metadatengetrieben, kein hartkodierter Anwendungsname im Skript selbst. +- **`package-arch.py`-Install-Skriptlet**: Liest optional `[package.metadata.arch].install_script` aus `cargo metadata` und bettet die referenzierte Datei pacman-konform als `.INSTALL` in das erzeugte `.pkg.tar.zst` ein — weiterhin vollständig metadatengetrieben, kein hartkodierter Anwendungsname im Skript selbst. - **Python-Kompatibilität**: Verwende Standard-Python 3 ohne externe PyPI-Abhängigkeiten (nur Standardbibliothek: `json`, `subprocess`, `urllib`, `argparse`, `os`, `re`, `tempfile`, `tarfile` etc.). - **`get-build-number.py`**: Ermittelt die nächste Build-/Revisions-Nummer nicht mehr rein lokal, sondern dynamisch über: 1. Gitea Releases API (Tag-/Asset-Namen), diff --git a/scripts/package-arch.py b/scripts/package-arch.py index 2dc3387..13cf639 100755 --- a/scripts/package-arch.py +++ b/scripts/package-arch.py @@ -103,11 +103,11 @@ def build_package(target_triple=None, target_arch=None, pkgrel=None): if os.path.exists("README.md"): subprocess.run(["install", "-m", "644", "README.md", f"{doc_dir}/README.md"], check=True) - install_scriptlet_name = None + has_install_scriptlet = False if install_rel_path and os.path.exists(install_rel_path): - install_scriptlet_name = f"{name}.install" + has_install_scriptlet = True subprocess.run( - ["install", "-m", "644", install_rel_path, os.path.join(build_dir, install_scriptlet_name)], + ["install", "-m", "644", install_rel_path, os.path.join(build_dir, ".INSTALL")], check=True, ) @@ -126,8 +126,6 @@ def build_package(target_triple=None, target_arch=None, pkgrel=None): f"arch = {arch}", f"license = {license_name}", ] - if install_scriptlet_name: - pkginfo_lines.append(f"install = {install_scriptlet_name}") for dep in depends: pkginfo_lines.append(f"depend = {dep}") for optdep in optdepends: @@ -140,8 +138,8 @@ def build_package(target_triple=None, target_arch=None, pkgrel=None): os.makedirs("target/arch", exist_ok=True) output_file = os.path.abspath(f"target/arch/{name}-{version}-{pkgrel}-{arch}.pkg.tar.zst") tar_members = [".PKGINFO"] - if install_scriptlet_name: - tar_members.append(install_scriptlet_name) + if has_install_scriptlet: + tar_members.append(".INSTALL") tar_members.append("usr") subprocess.run(["tar", "--zstd", "-cf", output_file, *tar_members], cwd=build_dir, check=True) print(f"Arch-Paket erfolgreich erstellt: {output_file}")