From 3126bda8b8e03c1a9ee32aacf5caf6204d958f3f Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 30 Aug 2015 08:34:49 +0100 Subject: move some common variables to libvasile, common functions will follow --- libvasile | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100755 libvasile (limited to 'libvasile') diff --git a/libvasile b/libvasile new file mode 100755 index 0000000..0f294a5 --- /dev/null +++ b/libvasile @@ -0,0 +1,18 @@ +# env mount variables +export local rodir="rodir" +export local rwdir="rwdir" +export local overlaydir="overlaydir" + +# env user variable +export local envkogaionuser="root" + +# env target variable (can be a single package, multiple packages, or a target file passed as parameter) +export local envkogaiontarget="$@" +export local envkogaionbuildtarget="emerge -kav "$envkogaiontarget"" + +# env buildsystem variables +export local envkogaionoverlay="layman -f -a kogaion -o https://raw.github.com/Rogentos/kogaion/master/overlay.xml" +export local envkogaiondesktopoverlay="layman -f -a kogaion-desktop -o https://raw.github.com/Rogentos/kogaion-desktop/master/overlay.xml" +export local envkogaionbuildgit="cd /opt && git clone https://github.com/Rogentos/build.git" +export local envkogaionportageconfig="ln -sf /opt/build/conf/intel/portage /etc/portage" +export local envkogaionenvupdate="/usr/sbin/env-update && . /etc/profile" -- cgit v1.2.3 From 2821833d2e292ba86d7a4da4a43453f503ff9569 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 30 Aug 2015 09:00:42 +0100 Subject: move more variables into libvasile, refactor md5sum checking using md5sum itself --- libvasile | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'libvasile') diff --git a/libvasile b/libvasile index 0f294a5..ffe16cd 100755 --- a/libvasile +++ b/libvasile @@ -16,3 +16,11 @@ export local envkogaiondesktopoverlay="layman -f -a kogaion-desktop -o https://r export local envkogaionbuildgit="cd /opt && git clone https://github.com/Rogentos/build.git" export local envkogaionportageconfig="ln -sf /opt/build/conf/intel/portage /etc/portage" export local envkogaionenvupdate="/usr/sbin/env-update && . /etc/profile" + +# env squashfs chroot variables +export local sqfsrootx86="kogaiondevelx86.squashfs" +export local sqfsrootx86md5=""$sqfsrootx86".md5" + +export local sqfsrootx64="kogaiondevelx64.squashfs" +export local sqfsrootx64md5=""$sqfsrootx64".md5" + -- cgit v1.2.3 From 34ba1e37e44f7b7af2f1243dc9dc75a6a9c6ecdb Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 30 Aug 2015 09:15:08 +0100 Subject: move last variables into libvasile --- libvasile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'libvasile') diff --git a/libvasile b/libvasile index ffe16cd..7f9dc51 100755 --- a/libvasile +++ b/libvasile @@ -16,11 +16,14 @@ export local envkogaiondesktopoverlay="layman -f -a kogaion-desktop -o https://r export local envkogaionbuildgit="cd /opt && git clone https://github.com/Rogentos/build.git" export local envkogaionportageconfig="ln -sf /opt/build/conf/intel/portage /etc/portage" export local envkogaionenvupdate="/usr/sbin/env-update && . /etc/profile" +export local envkogaionprofile="eselect profile set 1" # env squashfs chroot variables export local sqfsrootx86="kogaiondevelx86.squashfs" export local sqfsrootx86md5=""$sqfsrootx86".md5" - export local sqfsrootx64="kogaiondevelx64.squashfs" export local sqfsrootx64md5=""$sqfsrootx64".md5" +# env make.conf variables +export local envkogaionmakeconfx86="ln -sf /opt/build/conf/intel/portage/make.conf.x86 /etc/portage/make.conf" +export local envkogaionmakeconfx64="ln -sf /opt/build/conf/intel/portage/make.conf.amd64 /etc/portage/make.conf" -- cgit v1.2.3 From 92b62f115b2634086483b5bbf7ded04615814c2f Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 30 Aug 2015 09:21:16 +0100 Subject: move common functions into libvasile --- libvasile | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'libvasile') diff --git a/libvasile b/libvasile index 7f9dc51..1d6a999 100755 --- a/libvasile +++ b/libvasile @@ -27,3 +27,26 @@ export local sqfsrootx64md5=""$sqfsrootx64".md5" # env make.conf variables export local envkogaionmakeconfx86="ln -sf /opt/build/conf/intel/portage/make.conf.x86 /etc/portage/make.conf" export local envkogaionmakeconfx64="ln -sf /opt/build/conf/intel/portage/make.conf.amd64 /etc/portage/make.conf" + +envcheckroot () { + if [[ "$(whoami)" != root ]] ; then + echo "" + echo "You're not root?...No cookies for you, go away !!!" + echo "" + exit 1 + fi +} + +envkogaionstop () { + # umount squashfs + overlayfs chroot + umount -l "$overlaydir"/proc > /dev/null 2>&1 + umount -l "$overlaydir"/sys > /dev/null 2>&1 + umount -l "$overlaydir"/dev/pts > /dev/null 2>&1 + umount -l "$overlaydir"/dev/shm > /dev/null 2>&1 + umount -l "$overlaydir"/dev > /dev/null 2>&1 + umount -l "$overlaydir"/tmp > /dev/null 2>&1 + umount -l "$overlaydir"/usr/portage/packages > /dev/null 2>&1 + umount -l "$overlaydir"/mnt > /dev/null 2>&1 + umount -l "$overlaydir" > /dev/null 2>&1 + umount -l "$rodir" > /dev/null 2>&1 +} -- cgit v1.2.3 From b34f0d37cf2c10a2e9d98534bf2e1c9c4bead9a0 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 30 Aug 2015 11:45:28 +0100 Subject: ignore first argument, but use all next ones --- libvasile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libvasile') diff --git a/libvasile b/libvasile index 1d6a999..aa08f91 100755 --- a/libvasile +++ b/libvasile @@ -7,7 +7,7 @@ export local overlaydir="overlaydir" export local envkogaionuser="root" # env target variable (can be a single package, multiple packages, or a target file passed as parameter) -export local envkogaiontarget="$@" +export local envkogaiontarget="${@:2}" export local envkogaionbuildtarget="emerge -kav "$envkogaiontarget"" # env buildsystem variables -- cgit v1.2.3 From 549fc8b9a7a0a7fe7fde974ece70de99658d285f Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 30 Aug 2015 15:35:28 +0100 Subject: explain why we had to change target variable --- libvasile | 3 +++ 1 file changed, 3 insertions(+) (limited to 'libvasile') diff --git a/libvasile b/libvasile index aa08f91..bdee7f5 100755 --- a/libvasile +++ b/libvasile @@ -7,6 +7,9 @@ export local overlaydir="overlaydir" export local envkogaionuser="root" # env target variable (can be a single package, multiple packages, or a target file passed as parameter) +# vasile is now splitted, so calling it with one of its build arguments (--build32 or --build64) +# would import that argument into envkogaiontarget variable and building most likely would fail +# so change envkogaiontarget variable for vasile to skip build arguments and focus and next ones (target files, or packages) export local envkogaiontarget="${@:2}" export local envkogaionbuildtarget="emerge -kav "$envkogaiontarget"" -- cgit v1.2.3 From 86a93edf4d06cb4f03582432bd32a821a687e51a Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 30 Aug 2015 18:46:54 +0100 Subject: move almost everything into libvasile --- libvasile | 248 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 216 insertions(+), 32 deletions(-) (limited to 'libvasile') diff --git a/libvasile b/libvasile index bdee7f5..c93e709 100755 --- a/libvasile +++ b/libvasile @@ -1,37 +1,18 @@ -# env mount variables +# arch agnostic code export local rodir="rodir" export local rwdir="rwdir" export local overlaydir="overlaydir" +export local chrootuser="root" +export local chroottarget="${@:2}" +export local chrootbuildtarget="emerge -kav "$chroottarget"" +export local chrootoverlay="layman -f -a kogaion -o https://raw.github.com/Rogentos/kogaion/master/overlay.xml" +export local chrootdesktopoverlay="layman -f -a kogaion-desktop -o https://raw.github.com/Rogentos/kogaion-desktop/master/overlay.xml" +export local chrootbuildgit="cd /opt && git clone https://github.com/Rogentos/build.git" +export local chrootportageconfig="ln -sf /opt/build/conf/intel/portage /etc/portage" +export local chrootenvupdate="/usr/sbin/env-update && . /etc/profile" +export local chrootprofile="eselect profile set 1" -# env user variable -export local envkogaionuser="root" - -# env target variable (can be a single package, multiple packages, or a target file passed as parameter) -# vasile is now splitted, so calling it with one of its build arguments (--build32 or --build64) -# would import that argument into envkogaiontarget variable and building most likely would fail -# so change envkogaiontarget variable for vasile to skip build arguments and focus and next ones (target files, or packages) -export local envkogaiontarget="${@:2}" -export local envkogaionbuildtarget="emerge -kav "$envkogaiontarget"" - -# env buildsystem variables -export local envkogaionoverlay="layman -f -a kogaion -o https://raw.github.com/Rogentos/kogaion/master/overlay.xml" -export local envkogaiondesktopoverlay="layman -f -a kogaion-desktop -o https://raw.github.com/Rogentos/kogaion-desktop/master/overlay.xml" -export local envkogaionbuildgit="cd /opt && git clone https://github.com/Rogentos/build.git" -export local envkogaionportageconfig="ln -sf /opt/build/conf/intel/portage /etc/portage" -export local envkogaionenvupdate="/usr/sbin/env-update && . /etc/profile" -export local envkogaionprofile="eselect profile set 1" - -# env squashfs chroot variables -export local sqfsrootx86="kogaiondevelx86.squashfs" -export local sqfsrootx86md5=""$sqfsrootx86".md5" -export local sqfsrootx64="kogaiondevelx64.squashfs" -export local sqfsrootx64md5=""$sqfsrootx64".md5" - -# env make.conf variables -export local envkogaionmakeconfx86="ln -sf /opt/build/conf/intel/portage/make.conf.x86 /etc/portage/make.conf" -export local envkogaionmakeconfx64="ln -sf /opt/build/conf/intel/portage/make.conf.amd64 /etc/portage/make.conf" - -envcheckroot () { +checkroot () { if [[ "$(whoami)" != root ]] ; then echo "" echo "You're not root?...No cookies for you, go away !!!" @@ -40,8 +21,7 @@ envcheckroot () { fi } -envkogaionstop () { - # umount squashfs + overlayfs chroot +chrootstop () { umount -l "$overlaydir"/proc > /dev/null 2>&1 umount -l "$overlaydir"/sys > /dev/null 2>&1 umount -l "$overlaydir"/dev/pts > /dev/null 2>&1 @@ -53,3 +33,207 @@ envkogaionstop () { umount -l "$overlaydir" > /dev/null 2>&1 umount -l "$rodir" > /dev/null 2>&1 } + +# x64 specific code +export local chrootx64="kogaiondevelx64.squashfs" +export local chrootx64md5=""$chrootx64".md5" +export local chrootmakeconfx64="ln -sf /opt/build/conf/intel/portage/make.conf.amd64 /etc/portage/make.conf" + +chrootchecksumx64 () { + while : true ; do + if [[ -f "$chrootx64" && -f "$chrootx64md5" ]] ; then + echo "Good, x64 squashed chroot && checksum file FOUND ... verifying integrity" + echo "" + if [[ "$(md5sum -c "$chrootx64md5")" ]] ; then + echo "Good, x64 squashed chroot checksum PASSED ... starting environment" + echo "" + sleep 1 + break + else + echo "Ooops, x64 squashed chroot checksum FAILED ... aborting" + exit 1 + fi + else + echo "Ooops, x64 squashed chroot or checksum file NOT FOUND ... aborting" + exit 1 + fi + done +} + +chrootstartx64 () { + mount -t squashfs "$chrootx64" "$rodir" + mount -t overlayfs -o lowerdir="$rodir",upperdir="$rwdir" overlayfs "$overlaydir" + while : true ; do + if [[ ! -d packages ]] ; then + mkdir packages + mount -o bind packages "$overlaydir"/usr/portage/packages + break + elif [[ -d packages ]] ; then + mount -o bind packages "$overlaydir"/usr/portage/packages + break + fi + done + while : true ; do + if [[ ! -d distfiles ]] ; then + mkdir distfiles + mount -o bind distfiles "$overlaydir"/usr/portage/distfiles + break + elif [[ -d distfiles ]] ; then + mount -o bind distfiles "$overlaydir"/usr/portage/distfiles + break + fi + done + mount -o bind targets "$overlaydir"/mnt + mount -t proc proc "$overlaydir"/proc + mount -t sysfs sysfs "$overlaydir"/sys + mount -t devtmpfs -o relatime,size=3055348k,nr_inodes=763837,mode=755 none "$overlaydir"/dev + mount -t devpts -o nosuid,noexec,relatime,gid=5,mode=620 none "$overlaydir"/dev/pts + mount -t tmpfs -o nosuid,nodev none "$overlaydir"/dev/shm + mount -t tmpfs -o nosuid,nodev,noexec none "$overlaydir"/tmp +} + +chrootoverlaysx64() { + echo "Injecting Kogaion Linux Main Overlay into x64 environment" + sleep 1 + chroot "$overlaydir" su - "$chrootuser" -c "$chrootoverlay" + echo "Injecting Kogaion Linux Desktop Overlay into x64 environment" + sleep 1 + chroot "$overlaydir" su - "$chrootuser" -c "$chrootdesktopoverlay" +} + +chrootbuildsystemx64() { + echo "Injecting Kogaion Linux x64 Buildsystem && Setting up Portage && Setting up make.conf" + echo "" + sleep 1 + for cmd in "$chrootbuildgit" "$chrootportageconfig" "$chrootmakeconfx64" "$chrootprofile" "$chrootenvupdate" ; do + chroot "$overlaydir" su - "$chrootuser" -c "$cmd" + done +} + +chrootbuildx64 () { + echo "" + echo "x64 Environment is UP && RUNNING ... building targets" + sleep 1 + chroot "$overlaydir" su - "$chrootuser" -c "$chrootbuildtarget" +} + +chrootx64() { + echo -e "" + echo -e "#################################################################" + echo -e "# ENTERING CHROOT ENV FOR YOU TO PUSH BUILT PACKAGES #" + echo -e "# OR TO FIX EVENTUAL BUILD ERRORS #" + echo -e "#################################################################" + echo -e "# !!! WARNING !!! WARNING !!! WARNING !!! #" + echo -e "#################################################################" + echo -e "# NEXT RUN OF THIS SCRIPT WILL DESTROY ALL YOUR WORK #" + echo -e "# DO NOT EXIT CHROOT UNTIL ALL PACKAGES ARE PUSHED TO REPOS #" + echo -e "# OR, IN CASE OF BUILD FAILURES, UNTIL ALL FIXES ARE COMMITED #" + echo -e "#################################################################" + echo -e "# !!! WARNING !!! WARNING !!! WARNING !!! #" + echo -e "#################################################################" + echo -e "" + echo -e "" + chroot "$overlaydir" su - "$chrootuser" +} + +# x86 specific code +export local chrootx86="kogaiondevelx86.squashfs" +export local chrootx86md5=""$chrootx86".md5" +export local chrootmakeconfx86="ln -sf /opt/build/conf/intel/portage/make.conf.x86 /etc/portage/make.conf" + +chrootchecksumx86 () { + while : true ; do + if [[ -f "$chrootx86" && -f "$chrootx86md5" ]] ; then + echo "Good, x86 squashed chroot && checksum file FOUND ... verifying integrity" + echo "" + if [[ "$(md5sum -c "$chrootx86md5")" ]] ; then + echo "Good, x86 squashed chroot checksum PASSED ... starting environment" + echo "" + sleep 1 + break + else + echo "Ooops, x86 squashed chroot checksum FAILED ... aborting" + exit 1 + fi + else + echo "Ooops, x86 squashed chroot or checksum file NOT FOUND ... aborting" + exit 1 + fi + done +} + +chrootstartx86 () { + mount -t squashfs "$chrootx86" "$rodir" + mount -t overlayfs -o lowerdir="$rodir",upperdir="$rwdir" overlayfs "$overlaydir" + while : true ; do + if [[ ! -d packages ]] ; then + mkdir packages + mount -o bind packages "$overlaydir"/usr/portage/packages + break + elif [[ -d packages ]] ; then + mount -o bind packages "$overlaydir"/usr/portage/packages + break + fi + done + while : true ; do + if [[ ! -d distfiles ]] ; then + mkdir distfiles + mount -o bind distfiles "$overlaydir"/usr/portage/distfiles + break + elif [[ -d distfiles ]] ; then + mount -o bind distfiles "$overlaydir"/usr/portage/distfiles + break + fi + done + mount -o bind targets "$overlaydir"/mnt + mount -t proc proc "$overlaydir"/proc + mount -t sysfs sysfs "$overlaydir"/sys + mount -t devtmpfs -o relatime,size=3055348k,nr_inodes=763837,mode=755 none "$overlaydir"/dev + mount -t devpts -o nosuid,noexec,relatime,gid=5,mode=620 none "$overlaydir"/dev/pts + mount -t tmpfs -o nosuid,nodev none "$overlaydir"/dev/shm + mount -t tmpfs -o nosuid,nodev,noexec none "$overlaydir"/tmp +} + +chrootoverlaysx86() { + echo "Injecting Kogaion Linux Main Overlay into x86 environment" + sleep 1 + linux32 chroot "$overlaydir" su - "$chrootuser" -c "$chrootoverlay" + echo "Injecting Kogaion Linux Desktop Overlay into x86 environment" + sleep 1 + linux32 chroot "$overlaydir" su - "$chrootuser" -c "$chrootdesktopoverlay" +} + +chrootbuildsystemx86() { + echo "Injecting Kogaion Linux x86 Buildsystem && Setting up Portage && Setting up make.conf" + echo "" + sleep 1 + for cmd in "$chrootbuildgit" "$chrootportageconfig" "$chrootmakeconfx86" "$chrootprofile" "$chrootenvupdate" ; do + linux32 chroot "$overlaydir" su - "$chrootuser" -c "$cmd" + done +} + +chrootbuildx86 () { + echo "" + echo "x64 Environment is UP && RUNNING ... building targets" + sleep 1 + chroot "$overlaydir" su - "$chrootuser" -c "$chrootbuildtarget" +} + +chrootx86() { + echo -e "" + echo -e "#################################################################" + echo -e "# ENTERING CHROOT ENV FOR YOU TO PUSH BUILT PACKAGES #" + echo -e "# OR TO FIX EVENTUAL BUILD ERRORS #" + echo -e "#################################################################" + echo -e "# !!! WARNING !!! WARNING !!! WARNING !!! #" + echo -e "#################################################################" + echo -e "# NEXT RUN OF THIS SCRIPT WILL DESTROY ALL YOUR WORK #" + echo -e "# DO NOT EXIT CHROOT UNTIL ALL PACKAGES ARE PUSHED TO REPOS #" + echo -e "# OR, IN CASE OF BUILD FAILURES, UNTIL ALL FIXES ARE COMMITED #" + echo -e "#################################################################" + echo -e "# !!! WARNING !!! WARNING !!! WARNING !!! #" + echo -e "#################################################################" + echo -e "" + echo -e "" + linux32 chroot "$overlaydir" su - "$chrootuser" +} -- cgit v1.2.3 From 097ad73f4e3cf05ab290f067f484e482d6a4e421 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 30 Aug 2015 19:17:32 +0100 Subject: typo --- libvasile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libvasile') diff --git a/libvasile b/libvasile index c93e709..4e7f03f 100755 --- a/libvasile +++ b/libvasile @@ -214,7 +214,7 @@ chrootbuildsystemx86() { chrootbuildx86 () { echo "" - echo "x64 Environment is UP && RUNNING ... building targets" + echo "x86 Environment is UP && RUNNING ... building targets" sleep 1 chroot "$overlaydir" su - "$chrootuser" -c "$chrootbuildtarget" } -- cgit v1.2.3