#!/usr/bin/env python3 import re, sys, yaml def patch(path, old, new): fp = "/var/lib/pagan-sync/recipes/" + path s = open(fp, encoding="utf-8").read() if old not in s: print(f"FAIL {path}: pattern not found") sys.exit(1) s = s.replace(old, new, 1) open(fp, "w", encoding="utf-8").write(s) yaml.safe_load(s) print("OK", path) # systemd: meson setup z wnetrza katalogu zrodlowego patch("core/systemd/PAGBUILD.yaml", "meson setup --prefix /usr --buildtype plain --libexecdir lib --sbindir bin -D b_pie=true systemd-261.2 builddir", "meson setup --prefix /usr --buildtype plain --libexecdir lib --sbindir bin -D b_pie=true .. builddir") # xorg-libpciaccess: meson source arg po rename -> pkgname-pkgver patch("gui/xorg-libpciaccess/PAGBUILD.yaml", "meson setup --prefix /usr --buildtype plain --libexecdir lib --sbindir bin -D b_pie=true libpciaccess-0.19 builddir", "meson setup --prefix /usr --buildtype plain --libexecdir lib --sbindir bin -D b_pie=true ${pkgname}-${pkgver} builddir") # xorg-libdrm: usun mv (alias w pagbuild zrobi symlink), meson z wnetrza patch("gui/xorg-libdrm/PAGBUILD.yaml", """ SRC_DIR=$(ls -d *libdrm* 2>/dev/null | head -n1) if [ -n "$SRC_DIR" ] && [ "$SRC_DIR" != "${pkgname}-${pkgver}" ]; then mv "$SRC_DIR" ${pkgname}-${pkgver} fi meson setup --prefix /usr --buildtype plain --libexecdir lib --sbindir bin -D b_pie=true ${pkgname}-${pkgver} builddir""", """ cd ${pkgname}-${pkgver} meson setup --prefix /usr --buildtype plain --libexecdir lib --sbindir bin -D b_pie=true .. builddir""") # xorg-util-macros: install w fazie package z wnetrza katalogu patch("gui/xorg-util-macros/PAGBUILD.yaml", """package: | make DESTDIR="${PKGDIR}" install""", """package: | cd ${pkgname}-${pkgver} make DESTDIR="${PKGDIR}" install""") # liblinear: glob zamiast sztywnej nazwy .so.5 patch("utils/liblinear/PAGBUILD.yaml", " install -vm755 liblinear.so.5 ${PKGDIR}/usr/lib", " install -vm755 liblinear.so.* ${PKGDIR}/usr/lib")