gitlab-ci

This commit is contained in:
wt committed 2024-08-22 15:13:06 +07:00
1 parent 651f29c7fb
commit 90cd574266
1 file changed
+122 -122
+122 -122
View File
@@ -63,111 +63,111 @@ download_sources() {
#--------------- Building Linux Kernel --------------------- #--------------- Building Linux Kernel ---------------------
kernel() { kernel() {
printf "$UGREEN** Building Linux Kernel\n$RESET" printf "$UGREEN** Building Linux Kernel\n$RESET" &&
rm -r $build/kernel &>> $fulllogfile rm -r $build/kernel &>> $fulllogfile &&
mkdir -p $build/kernel &>> $fulllogfile mkdir -p $build/kernel &>> $fulllogfile &&
cd $build/kernel cd $build/kernel &&
printf "$UGREEN** Extracting Linux Kernel\n$RESET" printf "$UGREEN** Extracting Linux Kernel\n$RESET" &&
tar -xvf $root/downloads/linux-6.7.4.tar.xz &>> $fulllogfile tar -xvf $root/downloads/linux-6.7.4.tar.xz &>> $fulllogfile &&
check $? "Extract Linux Kernel" check $? "Extract Linux Kernel" &&
cd linux-6.7.4 cd linux-6.7.4 &&
printf "$UGREEN** Configuring Linux Kernel\n$RESET" printf "$UGREEN** Configuring Linux Kernel\n$RESET" &&
make mrproper &>> $fulllogfile make mrproper &>> $fulllogfile &&
cp -v $root/kernel/config-6.7.4 .config cp -v $root/kernel/config-6.7.4 .config &&
make oldconfig make oldconfig &&
check $? "Configure Linux Kernel" check $? "Configure Linux Kernel" &&
printf "$UGREEN** Building Linux Kernel\n$RESET" printf "$UGREEN** Building Linux Kernel\n$RESET" &&
make $makeflags &>> $fulllogfile make $makeflags &>> $fulllogfile &&
check $? "Build Linux Kernel" check $? "Build Linux Kernel" &&
ls -lh arch/x86/boot/bzImage ls -lh arch/x86/boot/bzImage
} # kernel } # kernel
#----------------------------------------------------------- #-----------------------------------------------------------
#----------- Build and Install kernel modules -------------- #----------- Build and Install kernel modules --------------
kernel_modules() { kernel_modules() {
printf "$UGREEN** Building Linux Kernel modules\n$RESET" printf "$UGREEN** Building Linux Kernel modules\n$RESET" &&
cd $build/kernel/linux-6.7.4 cd $build/kernel/linux-6.7.4 &&
make modules &>> fulllogfile make modules &>> fulllogfile &&
check $? "Build Linux Kernel modules" check $? "Build Linux Kernel modules" &&
printf "$UGREEN** Installing Linux Kernel modules into rootfs path\n$RESET" printf "$UGREEN** Installing Linux Kernel modules into rootfs path\n$RESET" &&
mkdir -pv $rootfspath/usr/lib &>> fulllogfile mkdir -pv $rootfspath/usr/lib &>> fulllogfile &&
cd $rootfspath cd $rootfspath &&
ln -sv usr/lib lib &>> $fulllogfile ln -sv usr/lib lib &>> $fulllogfile &&
cd $root/build/kernel/linux-6.7.4 cd $root/build/kernel/linux-6.7.4 &&
make INSTALL_MOD_PATH=$rootfspath modules_install &>> $fulllogfile make INSTALL_MOD_PATH=$rootfspath modules_install &>> $fulllogfile &&
check $? "Install Linux Kernel modules" check $? "Install Linux Kernel modules"
} # kernel_modules } # kernel_modules
#----------------------------------------------------------- #-----------------------------------------------------------
#------------ glibc ---------------------------------------- #------------ glibc ----------------------------------------
glibc() { glibc() {
printf "$UGREEN** Building glibc\n$RESET" printf "$UGREEN** Building glibc\n$RESET" &&
mkdir -p $build/glibc &>> $fulllogfile mkdir -p $build/glibc &>> $fulllogfile &&
cd $build/glibc cd $build/glibc &&
tar -xvf $root/downloads/glibc-2.39.tar.xz &>> $fulllogfile tar -xvf $root/downloads/glibc-2.39.tar.xz &>> $fulllogfile &&
check $? "Extract glibc" check $? "Extract glibc" &&
cd glibc-2.39 cd glibc-2.39 &&
mkdir build mkdir build &&
cd build cd build &&
echo "rootsbindir=/usr/bin" > configparms echo "rootsbindir=/usr/bin" > configparms &&
../configure \ ../configure \
--prefix=/usr \ --prefix=/usr \
--disable-werror \ --disable-werror \
--enable-kernel=4.19 \ --enable-kernel=4.19 \
--enable-stack-protector=strong \ --enable-stack-protector=strong \
--disable-nscd \ --disable-nscd \
libc_cv_slibdir=/usr/lib &>> $fulllogfile libc_cv_slibdir=/usr/lib &>> $fulllogfile &&
check $? "Configure glibc" check $? "Configure glibc" &&
make $makeflags &>> $fulllogfile make $makeflags &>> $fulllogfile &&
check $? "Build glibc" check $? "Build glibc" &&
make DESTDIR=$rootfspath install &>> $fulllogfile make DESTDIR=$rootfspath install &>> $fulllogfile &&
check $? "Install glibc to rootfs" check $? "Install glibc to rootfs" &&
cd $rootfspath cd $rootfspath &&
find -name \*.a -delete &>> $fulllogfile find -name \*.a -delete &>> $fulllogfile &&
strip --strip-unneeded $rootfspath/usr/lib/* $rootfspath/usr/bin/* &>> $fulllogfile strip --strip-unneeded $rootfspath/usr/lib/* $rootfspath/usr/bin/* &>> $fulllogfile &&
chroot $rootfspath /bin/sh -c "mkdir -p /usr/lib/locale;localedef -i C -f UTF-8 C.UTF-8;localedef -i en_US -f UTF-8 en_US.UTF-8;localedef -i ru_RU -f UTF-8 ru_RU-UTF-8;" chroot $rootfspath /bin/sh -c "mkdir -p /usr/lib/locale;localedef -i C -f UTF-8 C.UTF-8;localedef -i en_US -f UTF-8 en_US.UTF-8;localedef -i ru_RU -f UTF-8 ru_RU-UTF-8;" &&
cd $root cd $root &&
check $? "Build and install glibc" check $? "Build and install glibc"
} }
#----------------------------------------------------------- #-----------------------------------------------------------
#------------------ Building initramfs.img ------------------------ #------------------ Building initramfs.img ------------------------
initramfs() { initramfs() {
printf "$UGREEN** Building initramfs\n$RESET" printf "$UGREEN** Building initramfs\n$RESET" &&
#--------- Creating directories and files ------------------- #--------- Creating directories and files -------------------
rm -r $initramfspath &>> $fulllogfile rm -r $initramfspath &>> $fulllogfile &&
mkdir -p $initramfspath; mkdir -p $initramfspath &&
cd $initramfspath; cd $initramfspath &&
mkdir -p $(cat $initramfsfile); mkdir -p $(cat $initramfsfile) &&
cp $root/initramfs/init.in $initramfspath/init cp $root/initramfs/init.in $initramfspath/init &&
chmod 755 $initramfspath/init chmod 755 $initramfspath/init &&
#------------------------------------------------------------ #------------------------------------------------------------
#------------ Building initramfs busybox and copy to initramfs directory -------------------- #------------ Building initramfs busybox and copy to initramfs directory --------------------
rm -r $build/busybox &>> $fulllogfile rm -r $build/busybox &>> $fulllogfile &&
mkdir -p $build/busybox mkdir -p $build/busybox &&
cd $build/busybox cd $build/busybox &&
tar -xjf $root/downloads/busybox-1.36.1.tar.bz2 tar -xjf $root/downloads/busybox-1.36.1.tar.bz2 &&
check $? "Extract busybox" check $? "Extract busybox" &&
cd busybox-1.36.1 cd busybox-1.36.1 &&
cp $root/busybox/busybox-initramfs-config .config cp $root/busybox/busybox-initramfs-config .config &&
export PATH=$PATH:/opt/toolchains/x86_64-buildroot-linux-uclibc-gcc/bin export PATH=$PATH:/opt/toolchains/x86_64-buildroot-linux-uclibc-gcc/bin &&
printf "$UGREEN** Configuring busybox\n$RESET" printf "$UGREEN** Configuring busybox\n$RESET" &&
make CROSS_COMPILE=x86_64-buildroot-linux-uclibc- oldconfig &> $fulllogfile make CROSS_COMPILE=x86_64-buildroot-linux-uclibc- oldconfig &> $fulllogfile &&
check $? "Configure busybox all logs in .log" check $? "Configure busybox all logs in .log" &&
printf "$UGREEN** Building busybox\n$RESET" printf "$UGREEN** Building busybox\n$RESET" &&
make CROSS_COMPILE=x86_64-buildroot-linux-uclibc- $makeflags &> $fulllogfile make CROSS_COMPILE=x86_64-buildroot-linux-uclibc- $makeflags &> $fulllogfile &&
check $? "Build busybox all logs in .log" check $? "Build busybox all logs in .log" &&
cp busybox $initramfspath/bin cp busybox $initramfspath/bin &&
cd $initramfspath/bin cd $initramfspath/bin &&
for i in $(./busybox --list); do ln -s busybox $i; done for i in $(./busybox --list); do ln -s busybox $i; done &&
cd .. cd .. &&
#-------------------------------------------------------------------------------------------- #--------------------------------------------------------------------------------------------
#--------------------- Creating initramfs.img image ------------ #--------------------- Creating initramfs.img image ------------
find . | cpio -H newc -o | gzip > ../initramfs.img find . | cpio -H newc -o | gzip > ../initramfs.img &&
check $? "Build initramfs.img image" check $? "Build initramfs.img image" &&
cd $root cd $root
#--------------------------------------------------------------- #---------------------------------------------------------------
@@ -176,48 +176,48 @@ initramfs() {
#----------- Building rootfs ---------------------- #----------- Building rootfs ----------------------
rootfs() { rootfs() {
printf "$UGREEN** Building rootfs\n$RESET" printf "$UGREEN** Building rootfs\n$RESET" &&
rm -rv $rootfspath &>> $fulllogfile rm -rv $rootfspath &>> $fulllogfile &&
mkdir -pv $rootfspath &>> $fulllogfile mkdir -pv $rootfspath &>> $fulllogfile &&
cd $rootfspath cd $rootfspath &&
mkdir -pv $(cat $rootfsfile) &>> $fulllogfile mkdir -pv $(cat $rootfsfile) &>> $fulllogfile &&
ln -sv usr/lib lib &>> $fulllogfile ln -sv usr/lib lib &>> $fulllogfile &&
ln -sv usr/lib lib64 &>> $fulllogfile ln -sv usr/lib lib64 &>> $fulllogfile &&
ln -sv usr/bin bin &>> $fulllogfile ln -sv usr/bin bin &>> $fulllogfile &&
ln -sv usr/bin sbin &>> $fulllogfile ln -sv usr/bin sbin &>> $fulllogfile &&
cd usr cd usr &&
ln -sv bin sbin &>> $fulllogfile ln -sv bin sbin &>> $fulllogfile &&
ln -sv lib lib64 &>> $fulllogfile ln -sv lib lib64 &>> $fulllogfile &&
cp -rv $root/rootfs/etc/* $rootfspath/etc/ &>> $fulllogfile cp -rv $root/rootfs/etc/* $rootfspath/etc/ &>> $fulllogfile &&
cp -rv $root/rootfs/usr/* $rootfspath/usr/ &>> $fulllogfile cp -rv $root/rootfs/usr/* $rootfspath/usr/ &>> $fulllogfile &&
cp -rv $root/rootfs/boot/* $rootfspath/boot/ &>> $fulllogfile cp -rv $root/rootfs/boot/* $rootfspath/boot/ &>> $fulllogfile &&
rm -rv $build/busybox &>> $fulllogfile rm -rv $build/busybox &>> $fulllogfile &&
mkdir -v $build/busybox &>> $fulllogfile mkdir -v $build/busybox &>> $fulllogfile &&
cd $build/busybox cd $build/busybox &&
tar -xvjf $root/downloads/busybox-1.36.1.tar.bz2 &>> $fulllogfile tar -xvjf $root/downloads/busybox-1.36.1.tar.bz2 &>> $fulllogfile &&
cd busybox-1.36.1 cd busybox-1.36.1 &&
cp -v $root/busybox/busybox-rootfs-config .config &>> $fulllogfile cp -v $root/busybox/busybox-rootfs-config .config &>> $fulllogfile &&
printf "$UGREEN** Configuring busybox\n$RESET" printf "$UGREEN** Configuring busybox\n$RESET" &&
make oldconfig &> $fulllogfile make oldconfig &> $fulllogfile &&
check $? "Configure busybox all logs in .log" check $? "Configure busybox all logs in .log" &&
printf "$UGREEN** Building busybox\n$RESET" printf "$UGREEN** Building busybox\n$RESET" &&
make $makeflags &> $fulllogfile make $makeflags &> $fulllogfile &&
check $? "Build busybox all logs in .log" check $? "Build busybox all logs in .log" &&
cp -v busybox $rootfspath/usr/bin &>> $fulllogfile cp -v busybox $rootfspath/usr/bin &>> $fulllogfile &&
cd $rootfspath/usr/bin cd $rootfspath/usr/bin &&
for i in $(./busybox --list); do ln -s busybox $i; done for i in $(./busybox --list); do ln -s busybox $i; done &&
glibc glibc &&
kernel kernel &&
cp -v $root/build/kernel/linux-6.7.4/arch/x86/boot/bzImage $rootfspath/boot/vmlinuz-linux cp -v $root/build/kernel/linux-6.7.4/arch/x86/boot/bzImage $rootfspath/boot/vmlinuz-linux &&
kernel_modules kernel_modules &&
initramfs initramfs &&
cp -v $root/build/initramfs.img $rootfspath/boot/ cp -v $root/build/initramfs.img $rootfspath/boot/ &&
chmod 640 $rootfspath/etc/shadow $rootfspath/etc/inittab chmod 640 $rootfspath/etc/shadow $rootfspath/etc/inittab &&
chmod 755 $rootfspath/etc/init.d/* $rootfspath/usr/share/udhcpc/default.script chmod 755 $rootfspath/etc/init.d/* $rootfspath/usr/share/udhcpc/default.script &&
chmod 644 $rootfspath/etc/{passwd,group,hostname,hosts,fstab,shells,issue} $rootfspath/etc/network/interfaces chmod 644 $rootfspath/etc/{passwd,group,hostname,hosts,fstab,shells,issue} $rootfspath/etc/network/interfaces &&
check $? "Build rootfs" check $? "Build rootfs"
} # rootfs } # rootfs
@@ -225,13 +225,13 @@ rootfs() {
#---------- Cleaning build and out directory --------- #---------- Cleaning build and out directory ---------
clean() { clean() {
printf "$UGREEN** Cleaning build and out directories\n$RESET" printf "$UGREEN** Cleaning build and out directories\n$RESET" &&
rm -rv $root/.log/* &>> $fulllogfile rm -rv $root/.log/* &>> $fulllogfile &&
mkdir $root/.log mkdir -p $root/.log &&
rm -rv $out &>> $fulllogfile rm -rv $out &>> $fulllogfile &&
mkdir $out mkdir -p $out &&
rm -rv $build &>> $fulllogfile rm -rv $build &>> $fulllogfile &&
mkdir $build mkdir -p $build &&
printf "$UGREEN** SUCCESS: Cleaning build and out directories\n$RESET" printf "$UGREEN** SUCCESS: Cleaning build and out directories\n$RESET"
} # clean } # clean
#----------------------------------------------------- #-----------------------------------------------------
@@ -247,10 +247,10 @@ if [ "$1" = "clean" ]; then
exit 0 exit 0
fi fi
clean clean &&
download_sources download_sources &&
# kernel # kernel
# kernel_modules # kernel_modules
# initramfs # initramfs
rootfs rootfs &&
grub_rescue grub_rescue