diff --git a/packages/util-linux/pkgbuild.py b/packages/util-linux/pkgbuild.py new file mode 100644 index 0000000..4ee7b4f --- /dev/null +++ b/packages/util-linux/pkgbuild.py @@ -0,0 +1,323 @@ +import os + +from lib.make import * +from lib import cpp + +builddep("shortcut/c") +builddep("shortcut/autotools") +builddep("gettext") +builddep("bash") +builddep(f"linux-dev @{arch.get_target()}") +builddep(f"libintl-dev @{arch.get_target()}") +builddep(f"libz-ng-dev @{arch.get_target()}") +builddep(f"libncurses-dev @{arch.get_target()}") + +version("2.42.2") +source_url("https://www.kernel.org/pub/linux/utils/util-linux/v2.42/util-linux-2.42.2.tar.xz") + +def build(): + cpp.configure([ + "--prefix=/", + "--enable-fs-paths-default=/bin", + "--disable-su", + "--disable-sulogin", + "--disable-chfn-chsh", + "--disable-login", + "--without-systemd", + "--disable-makeinstall-setuid", + "--disable-makeinstall-chown", + "--disable-makeinstall-tty-setgid", + ]) + cpp.make() + cpp.make_install() + +on_build(build) + + +def fix_pc(libname: str): + pkgname_lib = f"lib{libname}" + pkgname_dev = f"lib{libname}-dev" + pc_path = f"lib/pkgconfig/{libname}.pc" + with open(pc_path, "r") as file: + pc_content = file.read() + pc_content = pc_content.replace( + "libdir=//lib", f"libdir={get_prefix(pkgname_lib)}/lib" + ).replace( + "includedir=//include", f"includedir={get_prefix(pkgname_dev)}/include" + ) + with open(pc_path, "wt") as file: + file.write(pc_content) + + +def pack_lib(composer, name): + composer.makedir("lib") + for i in os.listdir("lib"): + if name in i and "so" in i: + composer.addfile(f"lib/{i}", f"lib/{i}") + +def pack_dev(composer, name): + fix_pc(name) + composer.makedir("lib") + for i in os.listdir("lib"): + if name in i and "so" not in i: + composer.addfile(f"lib/{i}", f"lib/{i}") + composer.makedir("lib/pkgconfig") + composer.addfile(f"lib/pkgconfig/{name}.pc", f"lib/pkgconfig/{name}.pc") + composer.makedir("include") + for i in os.listdir("include"): + if name in i: + composer.add_dir(f"include/{i}", f"include/{i}") + +def pack_bin(composer, list): + composer.makedir("bin") + for i in list: + if i.startswith("sbin/"): + i = i.replace("sbin/", "") + composer.addfile(f"sbin/{i}", f"bin/{i}") + else: + composer.addfile(f"bin/{i}", f"bin/{i}") + +package("libblkid") +dep("semi-libc @same-arch") +on_pack(lambda composer: pack_lib(composer, "blkid")) + +package("libblkid-dev") +dep("libblkid (same)") +on_pack(lambda composer: pack_dev(composer, "blkid")) + +package("libfdisk") +dep("libuuid (same)") +dep("libblkid (same)") +on_pack(lambda composer: pack_lib(composer, "fdisk")) + +package("libfdisk-dev") +dep("libfdisk (same)") +on_pack(lambda composer: pack_dev(composer, "fdisk")) + +package("libmount") +dep("libblkid (same)") +on_pack(lambda composer: pack_lib(composer, "mount")) + +package("libmount-dev") +dep("libmount (same)") +on_pack(lambda composer: pack_dev(composer, "mount")) + +package("libsmartcols") +dep("semi-libc @same-arch") +on_pack(lambda composer: pack_lib(composer, "smartcols")) + +package("libsmartcols-dev") +dep("libsmartcols (same)") +on_pack(lambda composer: pack_dev(composer, "smartcols")) + +package("libuuid") +dep("semi-libc @same-arch") +on_pack(lambda composer: pack_lib(composer, "uuid")) + +package("libuuid-dev") +dep("libuuid (same)") +on_pack(lambda composer: pack_dev(composer, "uuid")) + +package("util-linux-swap") +dep("libblkid (same)") +dep("libmount (same)") +dep("libsmartcols (same)") +on_pack(lambda composer: pack_bin(composer, ["sbin/swaplabel", "sbin/swapoff", "sbin/swapon", "sbin/mkswap"])) + +package("util-linux-mount") +provide("mount") +dep("libmount (same)") +on_pack(lambda composer: pack_bin(composer, ["mount", "umount"])) + +package("util-linux-fdisk") +provide("fdisk") +dep("libfdisk (same)") +dep("libsmartcols (same)") +dep("libncurses @same-arch") +on_pack(lambda composer: pack_bin(composer, ["sbin/fdisk"])) + +package("util-linux-sfdisk") +provide("sfdisk") +dep("libfdisk (same)") +dep("libsmartcols (same)") +dep("libncurses @same-arch") +on_pack(lambda composer: pack_bin(composer, ["sbin/sfdisk"])) + +package("util-linux-cfdisk") +provide("cfdisk") +dep("libfdisk (same)") +dep("libsmartcols (same)") +dep("libncurses @same-arch") +on_pack(lambda composer: pack_bin(composer, ["sbin/cfdisk"])) + +package("util-linux-mkfs") +dep("semi-libc @same-arch") +dep("libz @same-arch") +provide("mkfs") +on_pack(lambda composer: pack_bin(composer, ["sbin/mkfs", "sbin/mkfs.bfs", "sbin/mkfs.cramfs", "sbin/mkfs.minix"])) + +package("util-linux-fsck") +dep("libmount (same)") +dep("libblkid (same)") +dep("libz @same-arch") +provide("fsck") +on_pack(lambda composer: pack_bin(composer, ["sbin/fsck", "sbin/fsck.cramfs", "sbin/fsck.minix"])) + +package("util-linux-fs") +dep("libblkid (same)") +dep("libsmartcols (same)") +dep("libmount (same)") +on_pack(lambda composer: pack_bin(composer, [ + "sbin/addpart", + "sbin/resizepart", + "sbin/delpart", + "sbin/partx", + "sbin/losetup", + "sbin/blkdiscard", + "sbin/blkid", + "sbin/blkpr", + "sbin/blkzone", + "sbin/blockdev", + "sbin/findfs", + "sbin/fsfreeze", + "sbin/fstrim", + "copyfilerange", + "exch", + "fadvise", + "fallocate", + "fincore", + "flock", + "getino", + "hardlink", + "mountpoint", + "namei", + "rename", + "whereis", + "sbin/pivot_root", + "sbin/switch_root", + "sbin/wipefs", + "sbin/zramctl", + "findmnt", +])) + +package("util-linux-security") +dep("libsmartcols (same)") +dep("libmount (same)") +on_pack(lambda composer: pack_bin(composer, [ + "utmpdump", + "unshare", + "last", + "lastb", + "nsenter", + "lsns", + "sbin/nologin", +])) + +package("util-linux-proc") +dep("libsmartcols (same)") +dep("semi-libc @same-arch") +on_pack(lambda composer: pack_bin(composer, [ + "uclampset", + "waitpid", + "setsid", + "setpgid", + "taskset", + "chrt", + "coresched", + "prlimit", + "renice", + "ionice", +])) + +package("util-linux-text") +dep("libncurses @same-arch") +dep("libsmartcols (same)") +on_pack(lambda composer: pack_bin(composer, [ + "bits", + "cal", + "colcrt", + "colrm", + "column", + "getopt", + "hexdump", + "look", + "mcookie", + "rev", + "ul", +])) + +package("util-linux-term") +dep("libncurses @same-arch") +on_pack(lambda composer: pack_bin(composer, [ + "setterm", + "mesg", + "script", + "scriptlive", + "scriptreplay", + "wall", + "sbin/agetty", + "sbin/ldattach", +])) + +package("util-linux-ipc") +dep("libmount (same)") +dep("libsmartcols (same)") +on_pack(lambda composer: pack_bin(composer, [ + "ipcmk", + "ipcrm", + "ipcs", + "lslocks", + "pipesz", + "dmesg", +])) + +package("util-linux-hardware") +dep("libsmartcols (same)") +dep("libncurses @same-arch") +on_pack(lambda composer: pack_bin(composer, [ + "irqtop", + "lsirq", + "lsmem", + "wdctl", + "sbin/hwclock", + "sbin/readprofile", + "sbin/rfkill", + "sbin/rtcwake", +])) + +package("isosize") +dep("semi-libc @same-arch") +on_pack(lambda composer: pack_bin(composer, ["isosize"])) + +package("util-linux-arch") +dep("semi-libc @same-arch") +on_pack(lambda composer: pack_bin(composer, ["setarch", "uname26", "linux32", "linux64"])) + +package("util-linux-uuid") +dep("libuuid (same)") +dep("libsmartcols (same)") +on_pack(lambda composer: pack_bin(composer, [ + "uuidgen", + "uuidparse", + "sbin/uuidd", +])) + +package("util-linux") +dep("util-linux-swap (same)") +dep("util-linux-mount (same)") +dep("util-linux-fdisk (same)") +dep("util-linux-sfdisk (same)") +dep("util-linux-cfdisk (same)") +dep("util-linux-mkfs (same)") +dep("util-linux-fsck (same)") +dep("util-linux-fs (same)") +dep("util-linux-security (same)") +dep("util-linux-proc (same)") +dep("util-linux-text (same)") +dep("util-linux-term (same)") +dep("util-linux-ipc (same)") +dep("util-linux-hardware (same)") +dep("isosize (same)") +dep("util-linux-arch (same)") +dep("util-linux-uuid (same)") +on_pack(lambda _composer: None)