pkgname = "accountsservice" pkgver = "23.13.9" source = f"https://www.freedesktop.org/software/accountsservice/accountsservice-{pkgver}.tar.xz" builddir = f"/tmp/fempkg/build/{pkgname}/{pkgname}-{pkgver}" fembuilddir = f"/tmp/fempkg/build/{pkgname}" outputdir = "/home/gabry/lfs-repo/binpkg" manifestdir = "/home/gabry/lfs-repo/manifests" destdir = f"{fembuilddir}/DESTDIR" deps = ["polkit", "glib", "elogind", "vala"] build = [ # Extract f"mkdir /tmp/fempkg/build {fembuilddir} || true && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/{pkgname}-{pkgver}.tar.xz", # 64-bit build f"cd {builddir} && mv tests/dbusmock{{,-tests}}", f"cd {builddir} && sed -e '/accounts_service\\.py/s/dbusmock/dbusmock-tests/' -e 's/assertEquals/assertEqual/' -i tests/test-libaccountsservice.py", f"cd {builddir} && sed -i '/^SIMULATED_SYSTEM_LOCALE/s/en_IE.UTF-8/en_HK.iso88591/' tests/test-daemon.py", # --- Meson setup as temporary user --- f"useradd -m -r fempkgbuilduser || true", f"chown -R fempkgbuilduser:fempkgbuilduser {fembuilddir}", f"su - fempkgbuilduser -c 'cd {builddir} && mkdir -v build && cd build && meson setup .. --prefix=/usr --buildtype=release -D admin_group=adm -D elogind=true -D systemdsystemunitdir=no'", f"cd {builddir}/build && grep 'print_indent' ../subprojects/mocklibc-1.0/src/netgroup.c | sed 's/ {{/;/' >> ../subprojects/mocklibc-1.0/src/netgroup.h && sed -i '1i#include ' ../subprojects/mocklibc-1.0/src/netgroup.h", f"cd {builddir}/build && ninja", f"cd {builddir}/build && DESTDIR={destdir} ninja install", f"cd {fembuilddir} && mkdir -p {destdir}/etc/polkit-1/rules.d/", f"""cd {fembuilddir} && cat > {destdir}/etc/polkit-1/rules.d/40-adm.rules << "EOF" polkit.addAdminRule(function(action, subject) {{ return ["unix-group:adm"]; }}); EOF""", f"install -v -d -m755 {destdir}/usr/share/licenses/{pkgname}/", f"install -v -m644 {builddir}/COPYING {destdir}/usr/share/licenses/{pkgname}/LICENSE", # Make tarball + manifests f"mkdir -p {outputdir} && cd {destdir} && tar --transform 's|^\\.||' -I zstd -cf {outputdir}/{pkgname}-{pkgver}.tar.zst .", f"mkdir -p {manifestdir} && tar -tf {outputdir}/{pkgname}-{pkgver}.tar.zst | grep -v '/$' > {manifestdir}/{pkgname}.txt", # Cleanup temp user and build dirs f"cd /tmp && userdel -r fempkgbuilduser || true", f"rm -rf {builddir} {fembuilddir}" ]