Author Topic: PUBLIC BETA: Knossos 0.14.3 (combined launcher/installer)  (Read 249739 times)

0 Members and 1 Guest are viewing this topic.

Offline ngld

  • Administrator
  • 29
  • Knossos dev
Re: PUBLIC BETA: Knossos 0.14.3 (combined launcher/installer)
@JeffPearson: Yes, the modsync logic currently doesn't work (unless you run Nebula locally) because the server hasn't been updated, yet, and doesn't serve the files that NuKnossos is looking for.
The Play tab is empty because you haven't selected a library folder and thus no installed mods. The Build tab tells you that the page couldn't be found because it hasn't been implemented, yet. If you're looking for a functional mod manager, you have to use the old Knossos source. I'm currently rewriting Knossos from scratch and it'll take a while before it's finished (as stated in the GitHub project and previous posts).

@praseodym: That's a bug that I fixed in my last commit. And once again: Why are you running each step separately? Why are you running the configure step in the middle of the build? That's not how the build system is supposed to be used and can end up causing the whole build to fail depending on which state your build directory is in before you start.
I'm trying to work with you but you keep ignoring what I say. I'll just ignore your future posts until you start listening (I'm fine with people using different approaches but I'd at least want to know why you're not doing what I ask you to do).

EDIT:
Here are the necessary steps to build and launch NuKnossos on most Linux distros (assuming Go 1.16+ is already installed):
Code: [Select]
git clone https://github.com/ngld/knossos.git
cd knossos
./task.sh configure build=Release static_deps=false
./task.sh client-run
« Last Edit: May 14, 2021, 11:47:05 am by ngld »

 
Re: PUBLIC BETA: Knossos 0.14.3 (combined launcher/installer)
Did that and it worked so far. However, if I want to browse the folder

Code: [Select]
[0514/201824.120295:INFO:knossos_resource_handler.cc(142)] [65536;0  # 0/0]
[0514/201824.147077:INFO:knossos_resource_handler.cc(142)] [65536;2  # 2/2]
[0514/201824.147236:INFO:knossos_resource_handler.cc(142)] [65534;0  # 2/2]
Failed task client-run:
exit status 139
Ideas?

 
Re: PUBLIC BETA: Knossos 0.14.3 (combined launcher/installer)
I didnt have any luck with d257775c

I did get it to build and launch after last update but...

@ngld OK cool I do have a working build of old knossos

 

Offline ngld

  • Administrator
  • 29
  • Knossos dev
Re: PUBLIC BETA: Knossos 0.14.3 (combined launcher/installer)
@praseodym: Exit code 139 indicates a segmentation fault. I've figured out why it crashes and I'll push a fix tomorrow.

 
Re: PUBLIC BETA: Knossos 0.14.3 (combined launcher/installer)
If it helps: Today I got

Code: [Select]
/task.sh configure build=Release static_deps=false
Building build-tools...
Failed to parse tasks
Traceback (most recent call last):
  //tasks.star:112:43: in configure
Error in getenv: getenv: got 2 arguments, want 1

 

Offline ngld

  • Administrator
  • 29
  • Knossos dev
Re: PUBLIC BETA: Knossos 0.14.3 (combined launcher/installer)
Should be fixed now.

 
Re: PUBLIC BETA: Knossos 0.14.3 (combined launcher/installer)
That worked, thanks.

However
Code: [Select]
[00:00]: Fetching remote index
[00:00]: Failed with error: failed to fetch index mods.UpdateRemoteModIndex.func1:github.com/ngld/knossos/packages/libknossos/pkg/mods/modsync.go:149 remote mod not found mods.UpdateRemoteModIndex:github.com/ngld/knossos/packages/libknossos/pkg/mods/modsync.go:139 storage.ImportRemoteMods:github.com/ngld/knossos/packages/libknossos/pkg/storage/remote_mods.go:33 bbolt.(*DB).Update:go.etcd.io/[email protected]/db.go:694 storage.ImportRemoteMods.func1:github.com/ngld/knossos/packages/libknossos/pkg/storage/remote_mods.go:42 mods.UpdateRemoteModIndex.func1:github.com/ngld/knossos/packages/libknossos/pkg/mods/modsync.go:149

 

Offline ngld

  • Administrator
  • 29
  • Knossos dev
Re: PUBLIC BETA: Knossos 0.14.3 (combined launcher/installer)
Yes, the modsync logic currently doesn't work (unless you run Nebula locally) because the server hasn't been updated, yet, and doesn't serve the files that NuKnossos is looking for.

 
Re: PUBLIC BETA: Knossos 0.14.3 (combined launcher/installer)
Ok, understood. One question: When I run "client-build" separately, I am asked to run this command manually:

Code: [Select]
EXE="/home/$USER/knossos/build/client/launcher/Release/chrome-sandbox" && sudo -- chown root:root $EXE && sudo -- chmod 4755 $EXEObviously, "client-run" in the first place "only" does not ask this, as it doesn't ask for the PW. Is that command necessary, and why?

 

Offline ngld

  • Administrator
  • 29
  • Knossos dev
Re: PUBLIC BETA: Knossos 0.14.3 (combined launcher/installer)
The instructions regarding the SUID binary come from Chromium and shouldn't be necessary on any modern Linux system. The chrome-sandbox binary is only used as a fallback if seccomp-bpf isn't available (any Linux kernel older than 3.5). For reference, here's the relevant Chromium doc.
Slight correction to the above: Chromium uses user namespaces (a kernel feature introduced in 3.8) instead of the setuid binary in modern kernels. Seccomp-BPF is used in addition to that if it's available to further harden the sandbox (with Seccomp you can restrict the available syscalls).

To clarify: chmod 4755 sets the setuid bit which means that the executable will always run under the user that owns the binary. Since you change the owner to root, that binary will always run as root. This was necessary before proper kernel APIs were available since only root had the necessary permissions to create a usable sandbox. However, this has the obvious drawback that any vulnerability in chrome-sandbox would allow privilege escalation. Since it's not needed for modern kernels and a potential security issue, I'd rather not use it which is the reason the build system skips that step.
The console message is printed by CEF's CMake script. I'll probably have to patch that script to remove the message. It's very low on my todo list since it only affects people that build Knossos themselves and in most cases, the binary isn't even used so following those steps doesn't really affect anything. While a vulnerability in chrome-sandbox could theoretically exist, it's very unlikely considering the state of the Chromium project (the amount of people looking for security issues, bug bounties, etc.).

TL;DR: You can run the command but it's unnecessary unless you're using a very old Linux kernel.