summaryrefslogtreecommitdiff
path: root/vasile
blob: ada054b6774d74a2a4d08527439c07cde4cb926b (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
#!/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
export local releasename="kogaion"
export local releasetarget="desktop"
export local releaseversion="3"

# 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 kernelver="3.14.0-"$releasename""
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 --no-hostonly --add "dmsquash-live pollcdrom" --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 /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 /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 /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 /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