From d20b59f5b32fec29809795ac18b615cd0bac9798 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Wed, 11 Oct 2017 19:02:18 +0100 Subject: day 2 : makepkg functions split complete --- src/backend/cmds | 10 ----- src/backend/funcs | 0 src/backend/imports | 3 -- src/backend/jailcmds.sh | 10 +++++ src/backend/jailfuncs.sh | 113 +++++++++++++++++++++++++++++++++++++++++++++++ src/backend/jailvars.sh | 36 +++++++++++++++ src/backend/libvasile.sh | 26 +++++++++++ src/backend/vars | 36 --------------- 8 files changed, 185 insertions(+), 49 deletions(-) delete mode 100644 src/backend/cmds delete mode 100644 src/backend/funcs delete mode 100644 src/backend/imports create mode 100644 src/backend/jailcmds.sh create mode 100644 src/backend/jailfuncs.sh create mode 100644 src/backend/jailvars.sh create mode 100644 src/backend/libvasile.sh delete mode 100644 src/backend/vars diff --git a/src/backend/cmds b/src/backend/cmds deleted file mode 100644 index fe5e82b..0000000 --- a/src/backend/cmds +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env bash - -export local jailbinmodecmd="vasile --binmode" -export local jailsrcmodecmd="vasile --srcmode" -export local jaildkmscmd="vasile --dkms" -export local jailportagecmd="emerge -kav "$jailtarget"" -export local jaildracutcmd="dracut -N -a dmsquash-live -a pollcdrom --force --kver="$kernver" /boot/"$jailramfsname"" -export local jailmkchainloadercmd="grub2-mkimage -d /usr/lib64/grub/i386-pc -o core.img -O i386-pc biosdisk part_msdos fat -p /boot/grub" -export local jailmkx64eficmd="grub2-mkimage -d /usr/lib64/grub/x86_64-efi -o bootx64.efi -O x86_64-efi ext2 fat udf btrfs ntfs reiserfs xfs hfsplus lvm ata part_msdos part_gpt part_apple bsd search_fs_uuid normal chain iso9660 configfile help loadenv reboot cat search memdisk tar boot linux chain -p /boot/grub" -export local jailmkia32eficmd="grub2-mkimage -d /usr/lib64/grub/i386-efi -o bootia32.efi -O i386-efi ext2 fat udf btrfs ntfs reiserfs xfs hfsplus lvm ata part_msdos part_gpt part_apple bsd search_fs_uuid normal chain iso9660 configfile help loadenv reboot cat search memdisk tar boot linux chain -p /boot/grub" diff --git a/src/backend/funcs b/src/backend/funcs deleted file mode 100644 index e69de29..0000000 diff --git a/src/backend/imports b/src/backend/imports deleted file mode 100644 index c82b983..0000000 --- a/src/backend/imports +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env bash - -source /lib/gentoo/functions.sh diff --git a/src/backend/jailcmds.sh b/src/backend/jailcmds.sh new file mode 100644 index 0000000..fe5e82b --- /dev/null +++ b/src/backend/jailcmds.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +export local jailbinmodecmd="vasile --binmode" +export local jailsrcmodecmd="vasile --srcmode" +export local jaildkmscmd="vasile --dkms" +export local jailportagecmd="emerge -kav "$jailtarget"" +export local jaildracutcmd="dracut -N -a dmsquash-live -a pollcdrom --force --kver="$kernver" /boot/"$jailramfsname"" +export local jailmkchainloadercmd="grub2-mkimage -d /usr/lib64/grub/i386-pc -o core.img -O i386-pc biosdisk part_msdos fat -p /boot/grub" +export local jailmkx64eficmd="grub2-mkimage -d /usr/lib64/grub/x86_64-efi -o bootx64.efi -O x86_64-efi ext2 fat udf btrfs ntfs reiserfs xfs hfsplus lvm ata part_msdos part_gpt part_apple bsd search_fs_uuid normal chain iso9660 configfile help loadenv reboot cat search memdisk tar boot linux chain -p /boot/grub" +export local jailmkia32eficmd="grub2-mkimage -d /usr/lib64/grub/i386-efi -o bootia32.efi -O i386-efi ext2 fat udf btrfs ntfs reiserfs xfs hfsplus lvm ata part_msdos part_gpt part_apple bsd search_fs_uuid normal chain iso9660 configfile help loadenv reboot cat search memdisk tar boot linux chain -p /boot/grub" diff --git a/src/backend/jailfuncs.sh b/src/backend/jailfuncs.sh new file mode 100644 index 0000000..37b382b --- /dev/null +++ b/src/backend/jailfuncs.sh @@ -0,0 +1,113 @@ +#!/usr/bin/env bash + +checkifroot () { + if [[ "$(whoami)" != root ]] ; then + eerror "I won't do that, unless you're root!" + exit 1 + fi +} + +checkkerncfg () { + if [[ $(zgrep 'CONFIG_OVERLAY_FS=' /proc/config.gz) && $(zgrep "CONFIG_SQUASHFS=" /proc/config.gz) && $(zgrep "CONFIG_BLK_DEV_LOOP=" /proc/config.gz) ]] ; then + einfo "Kernel config OK, moving on" + else + eerror "I won't do that with the current kernel" + eerror "I want a kernel with OVERLAYFS && SQUASHFS && LOOP DEVICES enabled" + exit 1 + fi +} + +checkiflive () { + if [[ -L /dev/mapper/live-base ]] ; then + eerror "I won't do that on a live system" + exit 1 + fi +} + +checkjailsum () { + if [[ -f "$jailx64" && -f "$jailx64sum" ]] ; then + if [[ "$(md5sum -c "$jailx64sum")" ]] ; then + einfo "Jail integrity OK, moving on" + else + eerror "I won't do that with a corrupted jail" + exit 1 + fi + else + eerror "I won't do that with a missing jail" + exit 1 + fi +} + +jaildkmsbuild () { + checkifroot + if [[ -x /usr/sbin/dkms ]] ; then + for i in $(dkms status | cut -d " " -f1,2 | sed -e 's/,//g' | sed -e 's/ /\//g' | sed -e 's/://g') ; do + dkms install $i + done + fi +} + +jailpkgprep () { + while : true ; do + if [[ ! -d "$ropath" && ! -d "$rwpath" && ! -d "$workpath" && ! -d "$overlaypath" ]] ; then + for i in "$ropath" "$rwpath" "$workpath" "$overlaypath" ; do + mkdir "$i" + done + jailpkgmnt + break + elif [[ -d "$ropath" && -d "$rwdpath" && -d "$workpath" && -d "$overlaypath" ]] ; then + jailpkgdmnt + for i in "$ropath" "$rwpath" "$workpath" "$overlaypath" ; do + rm -rf "$i" + done + continue + fi + done +} + +jailpkgmnt () { + mount -t squashfs "$jailx64" "$ropath" + mount -t overlay -o lowerdir="$ropath",upperdir="$rwpath",workdir="$workpath" overlay "$overlaypath" + mount -o bind packages "$overlaypath"/var/cache/packages + mount -o bind distfiles "$overlaypath"/var/cache/distfiles + mount -t proc proc "$overlaypath"/proc + mount -t sysfs sysfs "$overlaypath"/sys + mount -t devtmpfs -o relatime,size=3055348k,nr_inodes=763837,mode=755 none "$overlaypath"/dev + mount -t devpts -o nosuid,noexec,relatime,gid=5,mode=620 none "$overlaypath"/dev/pts + mount -t tmpfs -o nosuid,nodev none "$overlaypath"/dev/shm +} + +jailpkgdmnt () { + umount -l "$overlaypath"/proc > /dev/null 2>&1 + umount -l "$overlaypath"/sys > /dev/null 2>&1 + umount -l "$overlaypath"/dev/pts > /dev/null 2>&1 + umount -l "$overlaypath"/dev/shm > /dev/null 2>&1 + umount -l "$overlaypath"/dev > /dev/null 2>&1 + umount -l "$overlaypath"/var/cache/packages > /dev/null 2>&1 + umount -l "$overlaypath"/var/cache/distfiles > /dev/null 2>&1 + umount -l "$overlaypath" > /dev/null 2>&1 + umount -l "$ropath" > /dev/null 2>&1 +} + +jailpkgsrcmode () { + chroot "$overlaypath" su - "$jailuser" -c "$jailsrcmodecmd" +} + +jailpkgbuild () { + chroot "$overlaypath" su - "$jailuser" -c "$jailportagecmd" +} + +jailpkgstart () { + einfo "Oh no, I'm in jail!" + chroot "$overlaypath" su - "$jailuser" +} + +jailmakepkg () { + checkifroot + checkjailsum + jailpkgprep + jailpkgsrcmode + jailpkgbuild + jailpkgstart + jailpkgdmnt +} diff --git a/src/backend/jailvars.sh b/src/backend/jailvars.sh new file mode 100644 index 0000000..4a08a26 --- /dev/null +++ b/src/backend/jailvars.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash + +export local distupstream="gentoo" +export local distname="redcore" +export local disttarget="desktop" +export local distver="1" +export local kernver="4.9.53-"$distname"-lts" + +export local jailx64=""$distname"_"$distver"_core_x64.squashfs" +export local jailx64sum=""$jailx64".md5sum" + +export local ropath="rodir" +export local rwpath="rwdir" +export local workpath="workdir" +export local overlaypath="overlaydir" + +export local jailuser="root" +export local jailarch="x86_64" +export local jailtarget="${@:2}" +export local jailkernname="kernel-genkernel-"$jailarch"-"$kernver"" +export local jailramfsname="initramfs-genkernel-"$jailarch"-"$kernver"" +export local jailrootpath="$distname"-"$disttarget"-"$distver"-"$jailarch" +export local jailsynctarget=""$jailrootpath"/rootfs" +export local jailsyncsource="/tmp/"$jailrootpath"" +export local jailbootldrpath=""$jailrootpath"/boot/grub" +export local jailefildrpath=""$jailrootpath"/efi/boot" +export local jaildvdpath=""$jailrootpath"/CDroot" +export local jailsquashfspath=""$jailrootpath"/LiveOS" +export local jailrealfspath=""$jaildvdpath"/LiveOS" +export local jailbootldrdlpath="/tmp/bootcore" +export local jailbootldrcfgpath=""$jailbootldrdlpath"/cdroot/boot" +export local jailmainportpath="/usr/ports/"$distupstream"" +export local jailaddonportpath="/usr/ports/"$distname"" +export local jailportcfgtarget="/etc/portage" +export local jailportcfgsource="/opt/"$distname"-build/conf/intel/portage" +export local jailportvcspath="/opt/"$distname"-build" diff --git a/src/backend/libvasile.sh b/src/backend/libvasile.sh new file mode 100644 index 0000000..ee2e357 --- /dev/null +++ b/src/backend/libvasile.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +if [[ -f /lib/gentoo/functions.sh ]] ; then + source /lib/gentoo/functions.sh +else + echo "I won't do that without sys-apps/gentoo-functions" + exit 1 +fi + +if [[ -f /usr/lib/vasile/jailvars.sh ]] ; then + source /usr/lib/vasile/jailvars.sh +else + source jailvars.sh +fi + +if [[ -f /usr/lib/vasile/jailcmds.sh ]] ; then + source /usr/lib/vasile/jailcmds.sh +else + source jailvars.sh +fi + +if [[ -f /usr/lib/vasile/jailfuncs.sh ]] ; then + source /usr/lib/vasile/jailfuncs.sh +else + source jailfuncs.sh +fi diff --git a/src/backend/vars b/src/backend/vars deleted file mode 100644 index 4a08a26..0000000 --- a/src/backend/vars +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env bash - -export local distupstream="gentoo" -export local distname="redcore" -export local disttarget="desktop" -export local distver="1" -export local kernver="4.9.53-"$distname"-lts" - -export local jailx64=""$distname"_"$distver"_core_x64.squashfs" -export local jailx64sum=""$jailx64".md5sum" - -export local ropath="rodir" -export local rwpath="rwdir" -export local workpath="workdir" -export local overlaypath="overlaydir" - -export local jailuser="root" -export local jailarch="x86_64" -export local jailtarget="${@:2}" -export local jailkernname="kernel-genkernel-"$jailarch"-"$kernver"" -export local jailramfsname="initramfs-genkernel-"$jailarch"-"$kernver"" -export local jailrootpath="$distname"-"$disttarget"-"$distver"-"$jailarch" -export local jailsynctarget=""$jailrootpath"/rootfs" -export local jailsyncsource="/tmp/"$jailrootpath"" -export local jailbootldrpath=""$jailrootpath"/boot/grub" -export local jailefildrpath=""$jailrootpath"/efi/boot" -export local jaildvdpath=""$jailrootpath"/CDroot" -export local jailsquashfspath=""$jailrootpath"/LiveOS" -export local jailrealfspath=""$jaildvdpath"/LiveOS" -export local jailbootldrdlpath="/tmp/bootcore" -export local jailbootldrcfgpath=""$jailbootldrdlpath"/cdroot/boot" -export local jailmainportpath="/usr/ports/"$distupstream"" -export local jailaddonportpath="/usr/ports/"$distname"" -export local jailportcfgtarget="/etc/portage" -export local jailportcfgsource="/opt/"$distname"-build/conf/intel/portage" -export local jailportvcspath="/opt/"$distname"-build" -- cgit v1.2.3