From 3781c5108bb1858c6650febb537aee5886cf640b Mon Sep 17 00:00:00 2001 From: Marc Date: Tue, 30 Nov 2021 10:57:05 +0100 Subject: [PATCH] nodejs from source --- build.sh | 36 +++++++++++-------- chibraxLoader/chibraxLoader.c | 8 ++--- clibs.sh | 2 +- createLiveImage.sh | 6 ++++ deps.sh | 6 ++-- nodejs/.gitignore | 1 + nodejs/build.sh | 24 +++++++++++++ .../usr/lib/sheebr/environment.js | 2 +- 8 files changed, 62 insertions(+), 23 deletions(-) create mode 100644 nodejs/.gitignore create mode 100755 nodejs/build.sh diff --git a/build.sh b/build.sh index 2cb5287..75d8fe7 100755 --- a/build.sh +++ b/build.sh @@ -1,32 +1,40 @@ #!/bin/bash -sudo umount rootfs/proc -R -sudo rm -rf rootfs/ -sudo rm root.iso -sudo rm chibrax.tar.gz +# 2> /dev/null veut dire que l'on veut pas voire les erreurs +sudo umount rootfs/proc -R 2> /dev/null +sudo rm -rf rootfs/ 2> /dev/null +sudo rm root.iso 2> /dev/null +sudo rm chibrax.tar.gz 2> /dev/null mkdir -p rootfs/ mkdir -p rootfs/boot mkdir -p rootfs/chibrax -#installation de node & de grub -sudo pacstrap rootfs coreutils nodejs grub sed +#installation de grub +sudo pacstrap rootfs coreutils grub sed + +echo "construction de Nodejs" +chmod +x ./nodejs/build.sh +cd nodejs && ./build.sh || exit 1 && cd - +echo "done" chmod +x ./chibraxLoader/build.sh cd chibraxLoader && ./build.sh && cd - -sudo cp chibraxLoader/init rootfs/bin/ +sudo cp chibraxLoader/init rootfs/bin/ || exit 1 cd kernel && ./from_current.sh && cd - -sudo cp kernel/src/vmlinuz rootfs/boot +sudo cp kernel/src/vmlinuz rootfs/boot || exit 1 echo "Cloning the firmware" -git clone https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git +# on masque les erreurs si le depot est deja clone +git clone https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git 2> /dev/null cd linux-firmware && git pull && cd - sudo mkdir -p rootfs/usr/lib/firmware -sudo cp linux-firmware/* rootfs/usr/lib/firmware/ -r - -echo "rebuilding C++ hooks" -./clibs.sh +sudo cp linux-firmware/* rootfs/usr/lib/firmware/ -r || exit 1 echo "done" -sudo cp rootfs\ overrides/* rootfs/ -r +echo "rebuilding C++ hooks" +./clibs.sh || exit 1 +echo "done" + +sudo cp rootfs\ overrides/* rootfs/ -r || exit 1 sudo rm rootfs/var/cache -rf \ No newline at end of file diff --git a/chibraxLoader/chibraxLoader.c b/chibraxLoader/chibraxLoader.c index 95d3513..f418c6d 100644 --- a/chibraxLoader/chibraxLoader.c +++ b/chibraxLoader/chibraxLoader.c @@ -1,9 +1,9 @@ #include -#define ERR 1 - -#define node "/bin/node" +#include +//Chemin exacte de node (a changer aprés la creation d'un gestionnaire de packets) +#define node "/usr/local/bin/node" #define chibrax "/chibrax/index.js" int main() { - return execl(node, node, chibrax); + execl(node, node, chibrax); } diff --git a/clibs.sh b/clibs.sh index 6edeabb..662c0ab 100755 --- a/clibs.sh +++ b/clibs.sh @@ -1,5 +1,5 @@ #!/bin/bash node node_modules/node-gyp/bin/node-gyp.js configure -node node_modules/node-gyp/bin/node-gyp.js build +sudo node node_modules/node-gyp/bin/node-gyp.js build cp build/Release/syscall.node rootfs\ overrides/chibrax/syscall.node \ No newline at end of file diff --git a/createLiveImage.sh b/createLiveImage.sh index aae0cc7..207705a 100755 --- a/createLiveImage.sh +++ b/createLiveImage.sh @@ -41,6 +41,12 @@ echo "coping rootfs" cp rootfs/* $CHIBRAX_MOUNT_POINT -r echo "done" +echo "removing arch's grub hooks" +rm rootfs/etc/grub.d/10_linux +rm rootfs/etc/grub.d/20_linux_xen +#celui sert a rien tant qu'on ne supporte pas l'uefi +rm rootfs/etc/grub.d/30_uefi-firmware + echo "installing grub" arch-chroot $CHIBRAX_MOUNT_POINT grub-install --target=i386-pc ${LOOP_ROOT} --modules=part_msdos arch-chroot $CHIBRAX_MOUNT_POINT grub-mkconfig -o /boot/grub/grub.cfg diff --git a/deps.sh b/deps.sh index 8659123..b883d91 100755 --- a/deps.sh +++ b/deps.sh @@ -1,12 +1,12 @@ if [ -f /bin/pacman ] # btw then - sudo pacman -S python gcc make bc + sudo pacman -S python gcc make bc unzip wget sudo binutils nasm else if [ -f /bin/apt ] #deb / ubuntu then - sudo apt-get install python3 g++ make + sudo apt-get install python3 g++ make bc unzip wget sudo else if [ -f /bin/dnf ] #fedora then - sudo dnf install python3 gcc-c++ make bc + sudo dnf install python3 gcc-c++ make bc unzip wget sudo fi fi fi \ No newline at end of file diff --git a/nodejs/.gitignore b/nodejs/.gitignore new file mode 100644 index 0000000..e831038 --- /dev/null +++ b/nodejs/.gitignore @@ -0,0 +1 @@ +src \ No newline at end of file diff --git a/nodejs/build.sh b/nodejs/build.sh new file mode 100755 index 0000000..74dca00 --- /dev/null +++ b/nodejs/build.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +if [ "$EUID" = 0 ] +then echo "Please don't run this as root" + exit +fi + +VERSION=17.1.0 + +if [ ! -f src ] +then +mkdir src -p +cd src +curl https://github.com/nodejs/node/archive/refs/tags/v$VERSION.zip -L --output $VERSION.zip || exit 1 +unzip $VERSION.zip || exit 1 +cd - +fi + +cd src/node-$VERSION +./configure || exit 1 +make -j$(nproc) || exit 1 +cd - + +sudo src/node-$VERSION/tools/install.py install $(pwd)/../rootfs || exit 1 \ No newline at end of file diff --git a/rootfs overrides/usr/lib/sheebr/environment.js b/rootfs overrides/usr/lib/sheebr/environment.js index 815d150..2da24cc 100644 --- a/rootfs overrides/usr/lib/sheebr/environment.js +++ b/rootfs overrides/usr/lib/sheebr/environment.js @@ -1,5 +1,5 @@ let environment = { - path: ["/usr/bin", "/usr/lib/sheebr"], + path: ["/usr/bin", "/usr/lib/sheebr", "/usr/local/bin"], ls_color: JSON.stringify({ di: [01, 34], ln: [01, 36],