summaryrefslogtreecommitdiff
path: root/kvasile
blob: 31b2f8fc47cc0fae47ed577114b01f0059c37acb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#!/usr/bin/env bash
# Say Hello to Vasile, a modular script to build Kogaion/Argent Linux packages && ISO images using a clean squashfs + overlayfs chroot
# Main author : Ghiunhan Mamut (aka V3n3RiX) @ RogentOS Development Group
# Dependencies : kernel built with squashfs + overlayfs + loopback support && sys-fs/grub:2 && sys-fs/squashfs-tools && dev-libs/libisoburn && sys-fs/mtools
#

# generic variables

export local releasename="kogaion"
export local releasetarget="desktop"
export local releaseversion="3"
export local kernelver="4.4.5-"$releasename""
export local chrootx64=""$releasename"_"$releaseversion"_core_x64.squashfs"
export local chrootx64md5=""$chrootx64".md5"

# build variables

export local rodir="rodir"
export local rwdir="rwdir"
export local workdir="workdir" # only needed for overlayfs on kernel greather than 3.18
export local overlaydir="overlaydir"
export local chrootuser="root"
export local chroottarget="${@:2}"
export local chrootbuildtarget="emerge -kav "$chroottarget""
export local chrootdevtree="/usr/share/kvasile/devmodeset"
export local chrootmainoverlay="layman -f -a "$releasename"-"$releasetarget" -o https://gitlab.com/"$releasename"/"$releasename"-"$releasetarget"/raw/master/overlay.xml"
export local chrootbuildgit="cd /opt && git clone https://gitlab.com/"$releasename"/"$releasename"-build.git"

# iso variables

export local bootcorepath="/tmp/bootcore"
export local bootcorefiles="/tmp/bootcore/cdroot/boot"
export local isouser="root"
export local isotarget="${@:2}"
export local isoinstalltarget="emerge -Kav "$isotarget""
export local isousertree="/usr/share/kvasile/usermodeset"
export local isomainoverlay="layman -f -a "$releasename"-"$releasetarget" -o https://gitlab.com/"$releasename"/"$releasename"-"$releasetarget"/raw/master/overlay.xml"
export local isobuildgit="cd /opt && git clone https://gitlab.com/"$releasename"/"$releasename"-build.git"

export local isodracutcmd="dracut -N -a dmsquash-live -a pollcdrom -o systemd -o systemd-initrd -o systemd-networkd -o dracut-systemd --force --kver "$kernelver""
export local isodracutrd="initramfs-"$kernelver".img"
export local isoeficmd="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"
export local isochainloadcmd="grub2-mkimage -d /usr/lib64/grub/i386-pc -o core.img -O i386-pc biosdisk part_msdos fat"
export local isomainarch="x86_64"
export local isorootdir=""$releasename"-"$releasetarget"-"$releaseversion"-"$isomainarch""
export local isokernelname="kernel-genkernel-"$isomainarch"-"$kernelver""
export local isostagingdir="/tmp/"$isorootdir""
export local isosupersquashdir=""$isorootdir"/CDroot"
export local isolivesqfsdir=""$isosupersquashdir"/LiveOS"
export local isoliveosdir=""$isorootdir"/LiveOS"
export local isosyncdir=""$isorootdir"/rootfs"
export local isobootdir=""$isorootdir"/boot/grub"
export local isoefibootdir=""$isorootdir"/efi/boot"
export local dracutrd="initramfs-genkernel-"$isomainarch"-"$kernelver""
export local dracutcmd="dracut -N -o systemd -o systemd-initrd -o systemd-networkd -o dracut-systemd --force --kver "$kernelver" "/boot/"$dracutrd"""

source /usr/lib/kvasile/libkvasile

case $1 in
	--makepkg)		source /usr/share/kvasile/makepkg
					;;
	--makeiso)		source /usr/share/kvasile/makeiso
					;;
	--usermode)		source /usr/share/kvasile/modereset
					source /usr/share/kvasile/usermodeset
					;;
	--devmode)		source /usr/share/kvasile/modereset
					source /usr/share/kvasile/devmodeset
					;;
	--help)			echo -e ""
					echo -e "Usage: kvasile [options]"
					echo -e ""
					echo -e "Options:"
					echo -e "--makepkg : build package/target in a clean squashed core"
					echo -e "--makeiso : build iso based on clean squashed core + targets"
					echo -e "--usermode : switch INSTALLED Kogaion system to usermode (use binary packages from repositories)"
					echo -e "--devmode : switch INSTALLED Kogaion system to devmode (use source packages from portage tree)"
					echo -e "--help : display this help and exit"
					echo -e ""
					;;
	*)				echo -e "error: no operation specified, use --help for help"
					;;
esac

exit 0