forked from FemboyOS/fempkg_recipes
Femboyos 2 full rewrite full working CI
This commit is contained in:
77
shadow.recipe.py
Normal file
77
shadow.recipe.py
Normal file
@@ -0,0 +1,77 @@
|
||||
pkgname = "shadow" # BLFS one for PAM support
|
||||
pkgver = "4.18.0"
|
||||
source = f"https://github.com/shadow-maint/shadow/releases/download/{pkgver}/shadow-{pkgver}.tar.xz"
|
||||
builddir = f"/tmp/fempkg/build/{pkgname}/shadow-{pkgver}"
|
||||
fembuilddir = f"/tmp/fempkg/build/{pkgname}"
|
||||
outputdir = "/home/gabry/lfs-repo/binpkg"
|
||||
manifestdir = "/home/gabry/lfs-repo/manifests"
|
||||
destdir = f"{fembuilddir}/DESTDIR"
|
||||
|
||||
deps = []
|
||||
|
||||
build = [
|
||||
# Extract
|
||||
f"mkdir -p /tmp/fempkg/build {fembuilddir} && cd {fembuilddir} && tar -xvf /var/lib/fempkg/pkgs/shadow-{pkgver}.tar.xz",
|
||||
|
||||
# 64-bit build
|
||||
f"""cd {builddir} && \\
|
||||
sed -i 's/groups$(EXEEXT) //' src/Makefile.in && \\
|
||||
find man -name Makefile.in -exec sed -i 's/groups\\.1 / /' {{}} \\; && \\
|
||||
find man -name Makefile.in -exec sed -i 's/getspnam\\.3 / /' {{}} \\; && \\
|
||||
find man -name Makefile.in -exec sed -i 's/passwd\\.5 / /' {{}} \\; && \\
|
||||
sed -e 's@#ENCRYPT_METHOD DES@ENCRYPT_METHOD YESCRYPT@' \\
|
||||
-e 's@/var/spool/mail@/var/mail@' \\
|
||||
-e '/PATH=/{{s@/sbin:@@;s@/bin:@@}}' -i etc/login.defs && \
|
||||
./configure --sysconfdir=/etc --disable-static --without-libbsd --with-{{b,yes}}crypt""",
|
||||
|
||||
f"cd {builddir} && make -j$(nproc)",
|
||||
f"cd {builddir} && make exec_prefix=/usr pamddir= DESTDIR={destdir} install",
|
||||
|
||||
f"install -v -m644 {destdir}/etc/login.defs {destdir}/etc/login.defs.orig",
|
||||
f"""for FUNCTION in FAIL_DELAY \\
|
||||
FAILLOG_ENAB \\
|
||||
LASTLOG_ENAB \\
|
||||
MAIL_CHECK_ENAB \\
|
||||
OBSCURE_CHECKS_ENAB \\
|
||||
PORTTIME_CHECKS_ENAB \\
|
||||
QUOTAS_ENAB \\
|
||||
CONSOLE MOTD_FILE \\
|
||||
FTMP_FILE NOLOGINS_FILE \\
|
||||
ENV_HZ PASS_MIN_LEN \\
|
||||
SU_WHEEL_ONLY \\
|
||||
PASS_CHANGE_TRIES \\
|
||||
PASS_ALWAYS_WARN \\
|
||||
CHFN_AUTH ENCRYPT_METHOD \\
|
||||
ENVIRON_FILE
|
||||
do
|
||||
sed -i "s/^${{FUNCTION}}/# &/" {destdir}/etc/login.defs
|
||||
done""",
|
||||
|
||||
f"mkdir -pv {destdir}/etc/pam.d",
|
||||
|
||||
f"cd {destdir}/etc/pam.d && wget https://rocketleaguechatp.duckdns.org/login",
|
||||
f"cd {destdir}/etc/pam.d && wget https://rocketleaguechatp.duckdns.org/passwd",
|
||||
f"cd {destdir}/etc/pam.d && wget https://rocketleaguechatp.duckdns.org/su",
|
||||
f"cd {destdir}/etc/pam.d && wget https://rocketleaguechatp.duckdns.org/chpasswd",
|
||||
f"cd {destdir}/etc/pam.d && wget https://rocketleaguechatp.duckdns.org/chage",
|
||||
|
||||
f"sed -e s/chpasswd/newusers/ {destdir}/etc/pam.d/chpasswd >{destdir}/etc/pam.d/newusers",
|
||||
f"""for PROGRAM in chfn chgpasswd chsh groupadd groupdel \\
|
||||
groupmems groupmod useradd userdel usermod
|
||||
do
|
||||
install -v -m644 {destdir}/etc/pam.d/chage {destdir}/etc/pam.d/${{PROGRAM}}
|
||||
sed -i "s/chage/$PROGRAM/" {destdir}/etc/pam.d/${{PROGRAM}}
|
||||
done""",
|
||||
f"if [ -f {destdir}/etc/login.access ]; then mv -v {destdir}/etc/login.access{{,.NOUSE}}; fi && "
|
||||
f"if [ -f {destdir}/etc/limits ]; then mv -v {destdir}/etc/limits{{,.NOUSE}}; fi",
|
||||
|
||||
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
|
||||
f"rm -rf {builddir} {fembuilddir}"
|
||||
]
|
||||
Reference in New Issue
Block a user