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

0 Members and 1 Guest are viewing this topic.

Re: PUBLIC BETA: Knossos 0.14.3 (combined launcher/installer)
How to build correctly under Linux? I ran

Code: [Select]
git clone https://github.com/ngld/knossos.git
cd knossos
pip3 install raven
pip3 install token-bucket
yarnpkg install
./task.sh
which gives
Code: [Select]
./task.sh
Building build-tools...
build github.com/ngld/knossos/packages/build-tools: cannot load io/fs: malformed module path "io/fs": missing dot in first path element
Ideas?

 

Offline ngld

  • Administrator
  • 29
  • Knossos dev
Re: PUBLIC BETA: Knossos 0.14.3 (combined launcher/installer)
@mjn: Thanks for the feedback! I just tried to modernise the UI a bit and I'm certainly better at it than I was back when I started working on Knossos but it still needs a lot of polish. :lol:  I'm currently trying to finish the first alpha which should implement the basic Knossos functionality (install, update, remove and launch mods). Once that's done, I want to add some polish before I start working on the dev tab.

Regarding the tabs: I want to let modders create new tabs which they can fill with BBCode content. Having an actual changelog and a staff list could be very helpful, though. Especially since I can fill them with at least some useful info (i.e. usernames, release dates, etc.) even for mods that don't currently have a changelog / staff list.
What do you think about letting users connect their Nebula account to their forum account and adding a PM link to the staff list. That seems like the easiest way to let people contact mod uploaders directly.

@praseodym: You shouldn't run pip or yarn. Using pip is pointless since NuKnossos doesn't actually use Python at all. If you run yarn directly, you'll use your system Node.js version instead of the one managed by the build system. Just skip those steps and let the build system handle it.
The error for build-tools is caused by an old Go version which in this case didn't understand the import. Make sure you have at least Go 1.16.0.

 
Re: PUBLIC BETA: Knossos 0.14.3 (combined launcher/installer)
Code: [Select]
./task.sh
Building build-tools...
build github.com/ngld/knossos/packages/build-tools: cannot load io/fs: malformed module path "io/fs": missing dot in first path element
Same result

Code: [Select]
dpkg -l golang | grep ii
ii  golang         2:1.13~1ubuntu2 amd64        Go programming language compiler

Installing 1.16 via

Code: [Select]
sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt-get update
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 52B59B1571A79DBC054901C0F6BC817356A3D45E
sudo apt-get install golang-go

shows

Code: [Select]
./task.sh
//tasks.star:118:29: Running ldconfig -p
//tasks.star:118:29: Skipping unexpected line from ldconfig: 1937 Bibliotheken im Cache »/etc/ld.so.cache« gefunden
Failed to parse tasks
Traceback (most recent call last):
  //tasks.star:248:22: in configure
  //tasks/knossos.star:61:25: in knossos_configure
  //tasks/helpers.star:138:31: in find_library
  //tasks/helpers.star:124:10: in find_static_lib
Error in error: Could not find static library for liblzma! Please make sure it's installed.

 

Offline ngld

  • Administrator
  • 29
  • Knossos dev
Re: PUBLIC BETA: Knossos 0.14.3 (combined launcher/installer)
Quote
Could not find static library for liblzma! Please make sure it's installed.
I thought that message is fairly self-explanatory. For Ubuntu, you’ll have to install the following packages: libgtk-3-dev liblzma-dev libzstd-dev zlib1g-dev

That said, if you just want to launch NuKnossos, you can grab the precompiled build from GitHub. The Linux build is huge because the build script doesn’t strip the CEF debug symbols, yet. Once you’ve downloaded the build, you can run strip on the libcef.so file to save some space.

Also, all of the builds are packed twice due to a limitation on GitHub's end. They always put the final archives into zips without compression.

There's not a lot to see, yet. NuKnossos can import an existing Knossos library, launch mods, list installed and available mods and change per-mod FSO flags. Mod installation, most settings and the dev tab are still missing.

 
Re: PUBLIC BETA: Knossos 0.14.3 (combined launcher/installer)
Better now, however
Code: [Select]
./task.sh libknossos-build
...
# github.com/ngld/knossos/packages/libarchive
/usr/bin/ld: i386 architecture of input file `/lib/i386-linux-gnu/libz.a(crc32.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `/lib/i386-linux-gnu/libz.a(inflate.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `/lib/i386-linux-gnu/libz.a(inftrees.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `/lib/i386-linux-gnu/libz.a(zutil.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `/lib/i386-linux-gnu/libz.a(adler32.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `/lib/i386-linux-gnu/libz.a(inffast.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: /lib/i386-linux-gnu/libz.a(adler32.o): in function `adler32_combine':
(.text+0x62b): undefined reference to `__moddi3'
/usr/bin/ld: /lib/i386-linux-gnu/libz.a(adler32.o): in function `adler32_combine64':
(.text+0x6fe): undefined reference to `__moddi3'
collect2: error: ld returned 1 exit status
Failed task libknossos-build:
exit status 2

 

Offline ngld

  • Administrator
  • 29
  • Knossos dev
Re: PUBLIC BETA: Knossos 0.14.3 (combined launcher/installer)
I didn't expect 32bit libraries to show up in ldconfig -p although it's not surprising. I'll have to figure out a way to filter those.
In the meantime, you can still build by telling the build system not to link against the static libraries. To do that, you have to run ./task.sh configure static_deps=false. Afterwards, run the build command again.

 
Re: PUBLIC BETA: Knossos 0.14.3 (combined launcher/installer)
Thanks, that did the trick.

However, I cannot point to the FS2 folder via "Browse". Terminal shows

Code: [Select]
[0501/201156.258044:WARNING:file_dialog_manager.cc(301)] No file dialog runner available for this platform

 

Offline mjn.mixael

  • Cutscene Master
  • 212
  • I release things
    • Steam
    • Twitter
    • Mix-Hai Productions
Re: PUBLIC BETA: Knossos 0.14.3 (combined launcher/installer)
@mjn: Thanks for the feedback! I just tried to modernise the UI a bit and I'm certainly better at it than I was back when I started working on Knossos but it still needs a lot of polish. :lol:  I'm currently trying to finish the first alpha which should implement the basic Knossos functionality (install, update, remove and launch mods). Once that's done, I want to add some polish before I start working on the dev tab.

Regarding the tabs: I want to let modders create new tabs which they can fill with BBCode content. Having an actual changelog and a staff list could be very helpful, though. Especially since I can fill them with at least some useful info (i.e. usernames, release dates, etc.) even for mods that don't currently have a changelog / staff list.
What do you think about letting users connect their Nebula account to their forum account and adding a PM link to the staff list. That seems like the easiest way to let people contact mod uploaders directly.

Custom tabs is a cool idea.  :yes:

Having Knossos accounts linked to forum accounts is definitely a good idea, too. It would make it so much easier to contact mod authors/uploaders.
Cutscene Upgrade Project - Mainhall Remakes - Between the Ashes - MjnMixael's Render Boutique
Youtube Channel - P3D Model Box
Between the Ashes is looking for committed testers, PM me for details.
Freespace Upgrade Project See what's happening.

  
Re: PUBLIC BETA: Knossos 0.14.3 (combined launcher/installer)
Maybe this output helps as well?
Code: [Select]
/task.sh js-lint
build-tool: nothing to do (output is 54.945247 seconds newer)
fetch-deps: tool fetch-deps
yarn-install: nothing to do (output is 426.513694 seconds newer)
install-tools: nothing to do (output is 433.747071 seconds newer)
proto-build: nothing to do (output is 436.308760 seconds newer)
js-lint: node .yarn/releases/yarn-2.4.1.cjs lint
src/pages/mods/list.tsx:37:83 - error TS2345: Argument of type '{ limit: number; offset: number; query: string; }' is not assignable to parameter of type 'ModListRequest'.
  Property 'sort' is missing in type '{ limit: number; offset: number; query: string; }' but required in type 'ModListRequest'.

 37   const response = await gs.runTwirpRequest(gs.client.getModList.bind(gs.client), {
                                                                                      ~
 38     limit: 300,
    ~~~~~~~~~~~~~~~
...
 40     query,
    ~~~~~~~~~~
 41   });
    ~~~

  ../api/api/service.ts:171:5
    171     sort: ModListRequest_SortType;
            ~~~~
    'sort' is declared here.


Found 1 error.

src/lib/ws-dev-api.ts:1:1 - error TS1208: 'ws-dev-api.ts' cannot be compiled under '--isolatedModules' because it is considered a global script file. Add an import, export, or an empty 'export {}' statement to make it a module.

1 type Listener = (msg: ArrayBuffer) => void;
  ~~~~

src/lib/ws-dev-api.ts:4:1 - error TS2578: Unused '@ts-expect-error' directive.

4 // @ts-expect-error We never defined these as properties on window
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

src/lib/ws-dev-api.ts:9:1 - error TS2578: Unused '@ts-expect-error' directive.

9 // @ts-expect-error We never defined these as properties on window
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Found 3 errors.


  src/pages/local-mod.tsx:159:22
  ⚠  159:22  flag is already declared in the upper scope on line 152 column 21.  no-shadow

  src/pages/remote-mod.tsx:1:17
  ✖    1:17  useState is defined but never used.                                 @typescript-eslint/no-unused-vars
  ✖    2:10  action is defined but never used.                                   @typescript-eslint/no-unused-vars
  ✖    2:18  makeAutoObservable is defined but never used.                       @typescript-eslint/no-unused-vars
  ✖    9:3   Checkbox is defined but never used.                                 @typescript-eslint/no-unused-vars
  ✖   12:3   HTMLTable is defined but never used.                                @typescript-eslint/no-unused-vars
  ✖   19:10  Release is defined but never used.                                  @typescript-eslint/no-unused-vars
  ✖   19:19  ModType is defined but never used.                                  @typescript-eslint/no-unused-vars
  ✖   21:8   RefImage is defined but never used.                                 @typescript-eslint/no-unused-vars

  src/pages/remote-mod-list.tsx:7:10
  ✖    7:10  launchMod is defined but never used.                                @typescript-eslint/no-unused-vars
  ✖   56:11  Unsafe assignment of an any value.                                  @typescript-eslint/no-unsafe-assignment
  ✖   56:18  Unsafe member access .toString on an any value.                     @typescript-eslint/no-unsafe-member-access
  ✖   56:18  Unsafe call of an any typed value.                                  @typescript-eslint/no-unsafe-call
  ✖   73:9   Unsafe assignment of an any value.                                  @typescript-eslint/no-unsafe-assignment
  ✖   73:16  Unsafe member access .toString on an any value.                     @typescript-eslint/no-unsafe-member-access
  ✖   73:16  Unsafe call of an any typed value.                                  @typescript-eslint/no-unsafe-call

  1 warning
  15 errors

Failed task js-lint:
exit status 1

 

Offline ngld

  • Administrator
  • 29
  • Knossos dev
Re: PUBLIC BETA: Knossos 0.14.3 (combined launcher/installer)
The issue was that CEF apparently didn't implement file/folder dialogs for Linux, only for Windows and macOS. I've added a GTK3 implementation which should fix the issue.
Those warnings didn't cause any issues they're mostly about unused stuff and things the type checker for JavaScript/TypeScript wasn't sure about. Nonetheless, the warnings have been addressed.

 
Re: PUBLIC BETA: Knossos 0.14.3 (combined launcher/installer)
Errr

Code: [Select]
./task.sh libknossos-build
build-tool: nothing to do (output is 23.215984 seconds newer)
fetch-deps: tool fetch-deps
yarn-install: nothing to do (output is 424.767891 seconds newer)
install-tools: nothing to do (output is 442.314043 seconds newer)
proto-build: nothing to do (output is 445.433336 seconds newer)
libarchive-build: nothing to do (output is 122.142570 seconds newer)
libknossos-build: go build -o ../../build/libknossos/libknossos.so -buildmode c-shared ./api
# github.com/ngld/knossos/packages/libknossos/pkg/storage
pkg/storage/mods.go:80:39: rel.Type undefined (type *common.Release has no field or method Type)
pkg/storage/mods.go:155:45: release.Type undefined (type *common.Release has no field or method Type)
Failed task libknossos-build:
exit status 2
and

Code: [Select]
./task.sh js-lint
build-tool: nothing to do (output is 23.215984 seconds newer)
fetch-deps: tool fetch-deps
yarn-install: nothing to do (output is 424.767891 seconds newer)
install-tools: nothing to do (output is 442.314043 seconds newer)
proto-build: nothing to do (output is 445.433336 seconds newer)
js-lint: node .yarn/releases/yarn-2.4.1.cjs lint
src/pages/local-mod-list.tsx:47:26 - error TS2339: Property 'title' does not exist on type 'Release'.

47                     {mod.title}
                            ~~~~~

src/pages/local-mod.tsx:270:58 - error TS2339: Property 'title' does not exist on type 'Release'.

270                     <span className="text-3xl">{mod.mod?.title}</span>
                                                             ~~~~~

src/pages/local-mod.tsx:311:28 - error TS2339: Property 'type' does not exist on type 'Release'.

311                 {(mod.mod?.type === ModType.MOD || mod.mod?.type === ModType.TOTAL_CONVERSION) && (
                               ~~~~

src/pages/local-mod.tsx:311:61 - error TS2339: Property 'type' does not exist on type 'Release'.

311                 {(mod.mod?.type === ModType.MOD || mod.mod?.type === ModType.TOTAL_CONVERSION) && (
                                                                ~~~~


Found 4 errors.

 

Offline ngld

  • Administrator
  • 29
  • Knossos dev
Re: PUBLIC BETA: Knossos 0.14.3 (combined launcher/installer)
I'm currently working on implementing syncing available mods between Nebula and Knossos and accidentally pushed the Nebula commits before finishing the logic for Knossos. The sync mechanism required a few changes to the shared data structures which means that libknossos won't compile until the mod sync logic for it is done. Should be ready by tomorrow.