summaryrefslogtreecommitdiff
path: root/vasile
blob: 4f45bcb3c817016df20db86009c6e93c9636600c (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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#!/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
# Using predefined targets : kernel.target , xlibs.target , x11.target , sound.target , artwork.target
# 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

echo -e ""
echo -e "Choose the system core you want me to use"
echo -e ""
OPTIONS="Kogaion Argent"
select systemcore in $OPTIONS; do
	if [[ "$systemcore" = "Kogaion" ]] ; then
		echo -e ""
		echo -e "Adjusting variables for Kogaion Desktop 3"
		export local releasename="kogaion"
		export local releasetarget="desktop"
		export local releaseversion="3"
		export local kernelver="3.14.50-"$releasename""
		break
	elif [[ "$systemcore" = "Argent" ]] ; then
		echo -e ""
		echo -e "Adjusting variables for Argent Server 2"
		export local releasename="argent"
		export local releasetarget="server"
		export local releaseversion="2"
		export local kernelver="3.14.51-"$releasename""
		break
	else
		echo -e ""
		echo -e "Wrong choice, bye bye"
		exit 1
	fi
done

# arch independent 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 chrootmainoverlay="layman -f -a "$releasename" -o https://gitlab.com/"$releasename"/"$releasename"-main/raw/master/overlay.xml"
export local chrootaddonoverlay="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"
export local chrootportageconfig="ln -sf /opt/"$releasename"-build/conf/intel/portage /etc/portage"
export local chrootenvupdate="/usr/sbin/env-update && . /etc/profile"
export local chrootprofile="eselect profile set 1"

# arch independent 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 isomainoverlay="layman -f -a "$releasename" -o https://gitlab.com/"$releasename"/"$releasename"-main/raw/master/overlay.xml"
export local isoaddonoverlay="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 isoportageconfig="ln -sf /opt/"$releasename"-build/conf/intel/portage /etc/portage"
export local isoenvupdate="/usr/sbin/env-update && . /etc/profile"
export local isoprofile="eselect profile set 1"
export local isoramfs="dracut -N -a dmsquash-live -a pollcdrom --force --kver "$kernelver""
export local isoramfsname="initramfs-"$kernelver".img"

# x64 specific build variables

export local chrootx64=""$releasename"_"$releaseversion"_core_x64.squashfs"
export local chrootx64md5=""$chrootx64".md5"
export local chrootmakeconfx64="ln -sf /opt/"$releasename"-build/conf/intel/portage/make.conf.amd64-devel /etc/portage/make.conf"

# x86 specific build variables

export local chrootx86=""$releasename"_"$releaseversion"_core_x86.squashfs"
export local chrootx86md5=""$chrootx86".md5"
export local chrootmakeconfx86="ln -sf /opt/"$releasename"-build/conf/intel/portage/make.conf.x86-devel /etc/portage/make.conf"

# x64 specific iso variables

export local isomainarchx64="x86_64"
export local isomakeconfx64="ln -sf /opt/"$releasename"-build/conf/intel/portage/make.conf.amd64-user /etc/portage/make.conf"
export local isorootdirx64=""$releasename"-"$releasetarget"-"$releaseversion"-"$isomainarchx64""
export local isokernelnamex64="kernel-genkernel-"$isomainarchx64"-"$kernelver""
export local isostagingdirx64="/tmp/"$isorootdirx64""
export local isosupersquashdirx64=""$isorootdirx64"/CDroot"
export local isolivesqfsdirx64=""$isosupersquashdirx64"/LiveOS"
export local isoliveosdirx64=""$isorootdirx64"/LiveOS"
export local isosyncdirx64=""$isorootdirx64"/rootfs"
export local isobootdirx64=""$isorootdirx64"/boot/grub"
export local isoefibootdirx64=""$isorootdirx64"/efi/boot"

# x86 specific iso variables

export local isomainarchx86="x86"
export local isomakeconfx86="ln -sf /opt/"$releasename"-build/conf/intel/portage/make.conf.x86-user /etc/portage/make.conf"
export local isorootdirx86=""$releasename"-"$releasetarget"-"$releaseversion"-"$isomainarchx86""
export local isokernelnamex86="kernel-genkernel-"$isomainarchx86"-"$kernelver""
export local isostagingdirx86="/tmp/"$isorootdirx86""
export local isosupersquashdirx86=""$isorootdirx86"/CDroot"
export local isolivesqfsdirx86=""$isosupersquashdirx86"/LiveOS"
export local isoliveosdirx86=""$isorootdirx86"/LiveOS"
export local isosyncdirx86=""$isorootdirx86"/rootfs"
export local isobootdirx86=""$isorootdirx86"/boot/grub"

source /usr/lib/vasile/libvasile

case $1 in
	--build64)		source /usr/share/vasile/build64
					;;
	--build32)		source /usr/share/vasile/build32
					;;
	--iso64)		source /usr/share/vasile/iso64
					;;
	--iso32)		source /usr/share/vasile/iso32
					;;
	--help)			echo -e ""
					echo -e "Usage: vasile [options]"
					echo -e ""
					echo -e "Options:"
					echo -e "--build64 : build package/target in a clean x64 squashed core"
					echo -e "--build32 : build package/target in a clean x86 squashed core"
					echo -e "--iso64 : build x64 iso based on clean squashed core + targets"
					echo -e "--iso32 : build x86 iso based on clean squashed core + targets"
					echo -e "--help : display this help and exit"
					echo -e ""
					;;
	*)				echo -e "error: no operation specified, use --help for help"
					;;
esac

exit 0