Почему ninja такое говно?
Это можно считать криком души, в общем слушайте кул стори.
Решил я значит обновить на своем ноуте генту и в коим то веке решил не переносить систему со старого ноута, а собрать все с 0.
Загрузил liveCD, разметка дисков, chroot… все как обычно, выбрал нужный профиль, пересобираю мир… падает на моменте ninja -v -j1 -l0 -C /v....
полез в инет, вычитал что ninja не любит когда нехватает оперативки и следует ограничить MAKEOPTS.
Ну ок, ограничил до одного потока, я не тороплюсь, вроде как прошло, но упало при сборке Sushi, это какие то привьюхи для наутилуса, думаю хрен сними, да и наутилус мне нафиг не нужен, поубирал юз флаги что бы суши вообще не требовалось, собираю дальше… опять падает и опять ninja чем то недоволен.
Думаю ок, хрень какая то, пофиг на установкой с 0, не в этот раз, синкнул систему из бекапа, все идеально но надо бы обновить, запустил обновление и….. да ninja падает при сборке, в этот раз уже gnome-shell не хочет собираться.
Самый смак в том что когда билд падает в консоле ты видишь вот такую ошибку
ninja: build stopped: subcommand failed.
Да как вы могли заметить она очень информативная.
Если скопировать команду и выполнить отдельно то будет вот это
# ninja -v -j1 -l0 -C /var/tmp/portage/gnome-base/gnome-shell-40.1-r1/work/gnome-shell-40.1-build
ninja: Entering directory `/var/tmp/portage/gnome-base/gnome-shell-40.1-r1/work/gnome-shell-40.1-build'
[1/15] x86_64-pc-linux-gnu-gcc -o src/gnome-shell-portal-helper src/gnome-shell-portal-helper.p/meson-generated_.._.._js_portal-resources.c.o src/gnome-shell-portal-helper.p/gnome-shell-portal-helper.c.o -Wl,--as-needed -Wl,--no-undefined -O2 -pipe -march=native -Wl,-O1 -Wl,--as-needed -Wl,--start-group /usr/lib64/libgio-2.0.so /usr/lib64/libgobject-2.0.so /usr/lib64/libglib-2.0.so /usr/lib64/libgjs.so -Wl,--end-group
FAILED: src/gnome-shell-portal-helper
x86_64-pc-linux-gnu-gcc -o src/gnome-shell-portal-helper src/gnome-shell-portal-helper.p/meson-generated_.._.._js_portal-resources.c.o src/gnome-shell-portal-helper.p/gnome-shell-portal-helper.c.o -Wl,--as-needed -Wl,--no-undefined -O2 -pipe -march=native -Wl,-O1 -Wl,--as-needed -Wl,--start-group /usr/lib64/libgio-2.0.so /usr/lib64/libgobject-2.0.so /usr/lib64/libglib-2.0.so /usr/lib64/libgjs.so -Wl,--end-group
/usr/lib/gcc/x86_64-pc-linux-gnu/10.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: /usr/lib64/libgjs.so: undefined reference to `sysprof_clock'
/usr/lib/gcc/x86_64-pc-linux-gnu/10.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: /usr/lib64/libgjs.so: undefined reference to `sysprof_clock_init'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
Повезло что FAILED: src/gnome-shell-portal-helper
подсвечивается красным цветом и теперь все стало понятно(нет)
Кто нибудь может рассказать что это за говнище и почему его вдруг начали использовать? Я за последнии пару дней 6 или 7 раз упирался в ошибки с этим сраным ninja и ни разу не понял что он от меня хочет, как этим говном вообще пользоваться?