vlang / vinix

Vinix is an effort to write a modern, fast, and useful operating system in the V programming language
https://vlang.io
GNU General Public License v2.0
1.89k stars 120 forks source link

Failure in `make all` #116

Closed JalonSolov closed 2 months ago

JalonSolov commented 1 year ago

Been a while since I tried to build vinix, and now on a new machine, so I started from scratch... cloned the source, installed necessary packages, typed make distro-base (which took a while, but finished successfully), then typed make all, which ended quickly with

* building package: kernel
* building host package: v
curl: (3) URL using bad/illegal format or missing URL
make: *** [GNUmakefile:9: all] Error 3

There are only 2 curl commands in the GNUmakefile, one to download jinx, and one to grab OVMF files. Since it didn't create an ovmf dir for the 2nd, it seems like it would have failed on the jinx curl... but I have jinx locally, and it just got created. So what is it complaining about?

ghost commented 2 months ago

curl is receiving a bad URL, eg, like an incomplete URL or some wrong syntax.. The URL might need quote marks. Replace line 22 with:

curl -Lo jinx "https://github.com/mintsuki/jinx/raw/40cf99e0967849e12feb480163202005e3a9bf57/jinx"
mintsuki commented 2 months ago

That does not need quoting as far as I am aware. Other than that I cannot reproduce the issue as presented here; having a minimal reproducible example would help.

ghost commented 2 months ago

May also be some sort of user error, does this happen in curl when there is no wifi connected?

JalonSolov commented 2 months ago

So... this did work after an update or 2 since the original complaint.

However, I just did git pull to update everything, then tried make all and got this:

rm -f vinix.iso
make vinix.iso
make[1]: Entering directory '/home/jalon/git/vinix'
rm -f builds/kernel.built builds/kernel.packaged
make distro-base
make[2]: Entering directory '/home/jalon/git/vinix'
./jinx build base-files kernel init bash binutils bzip2 coreutils diffutils findutils gawk gcc gmp grep gzip less make mpc mpfr nano ncurses pcre2 readline sed tar tzdata util-vinix xz zlib zstd
* building package: kernel
/home/jalon/git/vinix/jinx: line 604: .: /home/jalon/git/vinix/source-recipes/: is a directory
make[2]: *** [GNUmakefile:31: distro-base] Error 1
make[2]: Leaving directory '/home/jalon/git/vinix'
make[1]: *** [GNUmakefile:14: vinix.iso] Error 2
make[1]: Leaving directory '/home/jalon/git/vinix'
make: *** [GNUmakefile:10: all] Error 2

Weird... so I did rm -rf source-recipes/ then make all again, and got this:

rm -f vinix.iso
make vinix.iso
make[1]: Entering directory '/home/jalon/git/vinix'
rm -f builds/kernel.built builds/kernel.packaged
make distro-base
make[2]: Entering directory '/home/jalon/git/vinix'
./jinx build base-files kernel init bash binutils bzip2 coreutils diffutils findutils gawk gcc gmp grep gzip less make mpc mpfr nano ncurses pcre2 readline sed tar tzdata util-vinix xz zlib zstd
* building package: kernel
/home/jalon/git/vinix/jinx: line 604: /home/jalon/git/vinix/source-recipes/: No such file or directory
make[2]: *** [GNUmakefile:31: distro-base] Error 1
make[2]: Leaving directory '/home/jalon/git/vinix'
make[1]: *** [GNUmakefile:14: vinix.iso] Error 2
make[1]: Leaving directory '/home/jalon/git/vinix'
make: *** [GNUmakefile:10: all] Error 2

Another git pull (in case the source-recipes was part of the repo) says "Already up to date."

JalonSolov commented 2 months ago

This time, I did rm -rf vinix, then cloned it again, cd'd into it, and typed make all... and it is building away.

So, no idea what got messed up, or when (since I usually don't touch any of it, I just pull then build), but that's what happened.

JalonSolov commented 2 months ago

(I did see a nasty message about running makepkg as root go past...)

mintsuki commented 2 months ago

(I did see a nasty message about running makepkg as root go past...)

That's normal, it's part of the Jinx bootstrapping process and it runs in a container. The error is just some silly imposed limitation by Arch Linux that is ignored inside the container.