KSP-CKAN / CKAN

The Comprehensive Kerbal Archive Network
https://forum.kerbalspaceprogram.com/index.php?/topic/197082-*
Other
1.98k stars 347 forks source link

Can't compile CKAN on Steam Deck (Arch) with Mono not installed #3679

Closed vincentBenet closed 2 years ago

vincentBenet commented 2 years ago

Background

Have you made any manual changes to your GameData folder (i.e., not via CKAN)? No

Problem

Folowing the installation guide with Arch, it return an error with MSBuild. When I try to run ckan.exe using mono it also return an error

Steps to reproduce

Expected behavior Installation succes!

Error 1:

(deck@steamdeck ckan)$ makepkg
==> Making package: ckan 1.31.0-1 (Sun 23 Oct 2022 07:03:52 PM CEST)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Downloading ckan-1.31.0.tar.gz...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 2783k    0 2783k    0     0   670k      0 --:--:--  0:00:04 --:--:--  866k
==> Validating source files with sha256sums...
    ckan-1.31.0.tar.gz ... Passed
==> Extracting sources...
  -> Extracting ckan-1.31.0.tar.gz with bsdtar
==> Starting build()...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 6423k  100 6423k    0     0  1012k      0  0:00:06  0:00:06 --:--:-- 1369k
Restoring NuGet package Cake.0.38.5.
Adding package 'Cake.0.38.5' to folder '/home/deck/Downloads/ckan/src/CKAN-1.31.0/_build/lib/nuget'
Added package 'Cake.0.38.5' to folder '/home/deck/Downloads/ckan/src/CKAN-1.31.0/_build/lib/nuget'

NuGet Config files used:
    /home/deck/Downloads/ckan/src/CKAN-1.31.0/nuget.config
    /home/deck/.config/NuGet/NuGet.Config

Feeds used:
    /home/deck/.nuget/packages/
    https://api.nuget.org/v3/index.json

Installed:
    1 package(s) to packages.config projects

----------------------------------------
Setup
----------------------------------------

========================================
Restore-Nuget
========================================
MSBuild auto-detection: using msbuild version '15.0' from '/usr/lib/mono/msbuild/15.0/bin'.
Restoring packages for /home/deck/Downloads/ckan/src/CKAN-1.31.0/ConsoleUI/CKAN-ConsoleUI.csproj...
Committing restore...
Generating MSBuild file /home/deck/Downloads/ckan/src/CKAN-1.31.0/ConsoleUI/../_build/out/CKAN-ConsoleUI/Release/obj/CKAN-ConsoleUI.csproj.nuget.g.props.
Generating MSBuild file /home/deck/Downloads/ckan/src/CKAN-1.31.0/ConsoleUI/../_build/out/CKAN-ConsoleUI/Release/obj/CKAN-ConsoleUI.csproj.nuget.g.targets.
Writing assets file to disk. Path: /home/deck/Downloads/ckan/src/CKAN-1.31.0/_build/out/CKAN-ConsoleUI/Release/obj/project.assets.json
Restored /home/deck/Downloads/ckan/src/CKAN-1.31.0/ConsoleUI/CKAN-ConsoleUI.csproj (in 343 ms).
Restoring packages for /home/deck/Downloads/ckan/src/CKAN-1.31.0/Core/CKAN-core.csproj...
Committing restore...
Generating MSBuild file /home/deck/Downloads/ckan/src/CKAN-1.31.0/Core/../_build/out/CKAN/Release/obj/CKAN-core.csproj.nuget.g.props.
Generating MSBuild file /home/deck/Downloads/ckan/src/CKAN-1.31.0/Core/../_build/out/CKAN/Release/obj/CKAN-core.csproj.nuget.g.targets.
Writing assets file to disk. Path: /home/deck/Downloads/ckan/src/CKAN-1.31.0/_build/out/CKAN/Release/obj/project.assets.json
Restored /home/deck/Downloads/ckan/src/CKAN-1.31.0/Core/CKAN-core.csproj (in 11 ms).
Restoring packages for /home/deck/Downloads/ckan/src/CKAN-1.31.0/Netkan/CKAN-netkan.csproj...
Committing restore...
Generating MSBuild file /home/deck/Downloads/ckan/src/CKAN-1.31.0/Netkan/../_build/out/NetKAN/Release/obj/CKAN-netkan.csproj.nuget.g.props.
Generating MSBuild file /home/deck/Downloads/ckan/src/CKAN-1.31.0/Netkan/../_build/out/NetKAN/Release/obj/CKAN-netkan.csproj.nuget.g.targets.
Writing assets file to disk. Path: /home/deck/Downloads/ckan/src/CKAN-1.31.0/_build/out/NetKAN/Release/obj/project.assets.json
Restored /home/deck/Downloads/ckan/src/CKAN-1.31.0/Netkan/CKAN-netkan.csproj (in 43 ms).
Restoring packages for /home/deck/Downloads/ckan/src/CKAN-1.31.0/GUI/CKAN-GUI.csproj...
Committing restore...
Generating MSBuild file /home/deck/Downloads/ckan/src/CKAN-1.31.0/GUI/../_build/out/CKAN-GUI/Release/obj/CKAN-GUI.csproj.nuget.g.props.
Generating MSBuild file /home/deck/Downloads/ckan/src/CKAN-1.31.0/GUI/../_build/out/CKAN-GUI/Release/obj/CKAN-GUI.csproj.nuget.g.targets.
Writing assets file to disk. Path: /home/deck/Downloads/ckan/src/CKAN-1.31.0/_build/out/CKAN-GUI/Release/obj/project.assets.json
Restored /home/deck/Downloads/ckan/src/CKAN-1.31.0/GUI/CKAN-GUI.csproj (in 14 ms).
Restoring packages for /home/deck/Downloads/ckan/src/CKAN-1.31.0/Cmdline/CKAN-cmdline.csproj...
Committing restore...
Generating MSBuild file /home/deck/Downloads/ckan/src/CKAN-1.31.0/Cmdline/../_build/out/CmdLine/Release/obj/CKAN-cmdline.csproj.nuget.g.props.
Generating MSBuild file /home/deck/Downloads/ckan/src/CKAN-1.31.0/Cmdline/../_build/out/CmdLine/Release/obj/CKAN-cmdline.csproj.nuget.g.targets.
Writing assets file to disk. Path: /home/deck/Downloads/ckan/src/CKAN-1.31.0/_build/out/CmdLine/Release/obj/project.assets.json
Restored /home/deck/Downloads/ckan/src/CKAN-1.31.0/Cmdline/CKAN-cmdline.csproj (in 14 ms).
Restoring packages for /home/deck/Downloads/ckan/src/CKAN-1.31.0/Tests/Tests.csproj...
Committing restore...
Generating MSBuild file /home/deck/Downloads/ckan/src/CKAN-1.31.0/Tests/../_build/out/CKAN.Tests/Release/obj/Tests.csproj.nuget.g.props.
Generating MSBuild file /home/deck/Downloads/ckan/src/CKAN-1.31.0/Tests/../_build/out/CKAN.Tests/Release/obj/Tests.csproj.nuget.g.targets.
Writing assets file to disk. Path: /home/deck/Downloads/ckan/src/CKAN-1.31.0/_build/out/CKAN.Tests/Release/obj/project.assets.json
Restored /home/deck/Downloads/ckan/src/CKAN-1.31.0/Tests/Tests.csproj (in 32 ms).

NuGet Config files used:
    /home/deck/Downloads/ckan/src/CKAN-1.31.0/nuget.config

Feeds used:
    https://api.nuget.org/v3/index.json

========================================
Generate-GlobalAssemblyVersionInfo
========================================

========================================
Build-DotNet
========================================
Microsoft (R) Build Engine version 16.10.1 for Mono
Copyright (C) Microsoft Corporation. All rights reserved.

Building the projects in this solution one at a time. To enable parallel build, please add the "-m" switch.
Build started 10/23/2022 7:04:12 PM.
Project "/home/deck/Downloads/ckan/src/CKAN-1.31.0/CKAN.sln" on node 1 (Build target(s)).
ValidateSolutionConfiguration:
  Building solution configuration "Release|Any CPU".
Project "/home/deck/Downloads/ckan/src/CKAN-1.31.0/CKAN.sln" (1) is building "/home/deck/Downloads/ckan/src/CKAN-1.31.0/Core/CKAN-core.csproj" (2) on node 1 (default targets).
PrepareForBuild:
  Creating directory "../_build/out/CKAN/Release/bin/net45/".
  Creating directory "../_build/out/CKAN/Release/obj/Release/net45/".
/usr/lib/mono/msbuild/Current/bin/Microsoft.Common.CurrentVersion.targets(2218,5): error MSB3248: Parameter "AssemblyFiles" has invalid value "/usr/lib/mono/4.5-api/mscorlib.dll". Could not load file or assembly 'System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. [/home/deck/Downloads/ckan/src/CKAN-1.31.0/Core/CKAN-core.csproj]
Done Building Project "/home/deck/Downloads/ckan/src/CKAN-1.31.0/Core/CKAN-core.csproj" (default targets) -- FAILED.
Project "/home/deck/Downloads/ckan/src/CKAN-1.31.0/CKAN.sln" (1) is building "/home/deck/Downloads/ckan/src/CKAN-1.31.0/AutoUpdate/CKAN-autoupdate.csproj" (3) on node 1 (default targets).
PrepareForBuild:
  Creating directory "../_build/out/AutoUpdater/Release/bin/".
  Creating directory "../_build/out/AutoUpdater/Release/obj/Release/".
/usr/lib/mono/msbuild/Current/bin/Microsoft.Common.CurrentVersion.targets(2218,5): error MSB3248: Parameter "AssemblyFiles" has invalid value "/usr/lib/mono/4.5-api/mscorlib.dll". Could not load file or assembly 'System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. [/home/deck/Downloads/ckan/src/CKAN-1.31.0/AutoUpdate/CKAN-autoupdate.csproj]
Done Building Project "/home/deck/Downloads/ckan/src/CKAN-1.31.0/AutoUpdate/CKAN-autoupdate.csproj" (default targets) -- FAILED.
Project "/home/deck/Downloads/ckan/src/CKAN-1.31.0/CKAN.sln" (1) is building "/home/deck/Downloads/ckan/src/CKAN-1.31.0/Cmdline/CKAN-cmdline.csproj" (4) on node 1 (default targets).
PrepareForBuild:
  Creating directory "../_build/out/CmdLine/Release/bin/".
  Creating directory "../_build/out/CmdLine/Release/obj/Release/".
Project "/home/deck/Downloads/ckan/src/CKAN-1.31.0/Cmdline/CKAN-cmdline.csproj" (4) is building "/home/deck/Downloads/ckan/src/CKAN-1.31.0/ConsoleUI/CKAN-ConsoleUI.csproj" (5:2) on node 1 (default targets).
PrepareForBuild:
  Creating directory "../_build/out/CKAN-ConsoleUI/Release/bin/".
  Creating directory "../_build/out/CKAN-ConsoleUI/Release/obj/Release/".
Done Building Project "/home/deck/Downloads/ckan/src/CKAN-1.31.0/ConsoleUI/CKAN-ConsoleUI.csproj" (default targets) -- FAILED.
Project "/home/deck/Downloads/ckan/src/CKAN-1.31.0/Cmdline/CKAN-cmdline.csproj" (4) is building "/home/deck/Downloads/ckan/src/CKAN-1.31.0/GUI/CKAN-GUI.csproj" (6:2) on node 1 (default targets).
PrepareForBuild:
  Creating directory "../_build/out/CKAN-GUI/Release/bin/".
  Creating directory "../_build/out/CKAN-GUI/Release/obj/Release/".
Done Building Project "/home/deck/Downloads/ckan/src/CKAN-1.31.0/GUI/CKAN-GUI.csproj" (default targets) -- FAILED.
Done Building Project "/home/deck/Downloads/ckan/src/CKAN-1.31.0/Cmdline/CKAN-cmdline.csproj" (default targets) -- FAILED.
Project "/home/deck/Downloads/ckan/src/CKAN-1.31.0/CKAN.sln" (1) is building "/home/deck/Downloads/ckan/src/CKAN-1.31.0/Netkan/CKAN-netkan.csproj" (7) on node 1 (default targets).
PrepareForBuild:
  Creating directory "../_build/out/NetKAN/Release/bin/".
  Creating directory "../_build/out/NetKAN/Release/obj/Release/".
Done Building Project "/home/deck/Downloads/ckan/src/CKAN-1.31.0/Netkan/CKAN-netkan.csproj" (default targets) -- FAILED.
Project "/home/deck/Downloads/ckan/src/CKAN-1.31.0/CKAN.sln" (1) is building "/home/deck/Downloads/ckan/src/CKAN-1.31.0/Tests/Tests.csproj" (8) on node 1 (default targets).
PrepareForBuild:
  Creating directory "../_build/out/CKAN.Tests/Release/bin/net45/".
  Creating directory "../_build/out/CKAN.Tests/Release/obj/Release/net45/".
Done Building Project "/home/deck/Downloads/ckan/src/CKAN-1.31.0/Tests/Tests.csproj" (default targets) -- FAILED.
Done Building Project "/home/deck/Downloads/ckan/src/CKAN-1.31.0/CKAN.sln" (Build target(s)) -- FAILED.

Build FAILED.

"/home/deck/Downloads/ckan/src/CKAN-1.31.0/CKAN.sln" (Build target) (1) ->
"/home/deck/Downloads/ckan/src/CKAN-1.31.0/Core/CKAN-core.csproj" (default target) (2) ->
(ResolveAssemblyReferences target) -> 
  /usr/lib/mono/msbuild/Current/bin/Microsoft.Common.CurrentVersion.targets(2218,5): error MSB3248: Parameter "AssemblyFiles" has invalid value "/usr/lib/mono/4.5-api/mscorlib.dll". Could not load file or assembly 'System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. [/home/deck/Downloads/ckan/src/CKAN-1.31.0/Core/CKAN-core.csproj]

"/home/deck/Downloads/ckan/src/CKAN-1.31.0/CKAN.sln" (Build target) (1) ->
"/home/deck/Downloads/ckan/src/CKAN-1.31.0/AutoUpdate/CKAN-autoupdate.csproj" (default target) (3) ->
  /usr/lib/mono/msbuild/Current/bin/Microsoft.Common.CurrentVersion.targets(2218,5): error MSB3248: Parameter "AssemblyFiles" has invalid value "/usr/lib/mono/4.5-api/mscorlib.dll". Could not load file or assembly 'System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. [/home/deck/Downloads/ckan/src/CKAN-1.31.0/AutoUpdate/CKAN-autoupdate.csproj]

    0 Warning(s)
    2 Error(s)

Time Elapsed 00:00:01.61
An error occurred when executing task 'Build-DotNet'.

----------------------------------------
Teardown
----------------------------------------

All netkan indexing stops for a prolonged period (days).
The errors thrown are non-conclusive and the bots keep
getting stuck on what appears to be a very standard .netkan

<paraphrase>
(Daz) So err... I found an extra space in one of the recommends
(pjf) That's it!
(Daz) https://github.com/KSP-CKAN/NetKAN/pull/1062
</paraphrase>

Error: One or more errors occurred. (MSBuild: Process returned an error (exit code 1).)
        MSBuild: Process returned an error (exit code 1).
==> ERROR: A failure occurred in build().
    Aborting...

Error 2 :

(1)(deck@steamdeck Downloads)$ mono ckan.exe
exception inside UnhandledException handler: (null) assembly:/usr/lib/mono/4.5/mscorlib.dll type:NullReferenceException member:(null)

[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: The type initializer for 'System.Windows.Forms.XplatUI' threw an exception. ---> System.TypeInitializationException: The type initializer for 'System.Drawing.GDIPlus' threw an exception. ---> System.DllNotFoundException: libgdiplus.so.0 assembly:<unknown assembly> type:<unknown type> member:(null)
  at (wrapper managed-to-native) System.Drawing.GDIPlus.GdiplusStartup(ulong&,System.Drawing.GdiplusStartupInput&,System.Drawing.GdiplusStartupOutput&)
  at System.Drawing.GDIPlus..cctor () [0x000b0] in <2770ae06663f45ce986a059bac4cf8de>:0 
   --- End of inner exception stack trace ---
  at (wrapper managed-to-native) System.Object.__icall_wrapper_mono_generic_class_init(intptr)
  at System.Drawing.Graphics.FromHdcInternal (System.IntPtr hdc) [0x00000] in <2770ae06663f45ce986a059bac4cf8de>:0 
  at System.Windows.Forms.XplatUIX11.SetDisplay (System.IntPtr display_handle) [0x00073] in <fef229f3059c47f39598bb88ddd21818>:0 
  at System.Windows.Forms.XplatUIX11..ctor () [0x00077] in <fef229f3059c47f39598bb88ddd21818>:0 
  at System.Windows.Forms.XplatUIX11.GetInstance () [0x00019] in <fef229f3059c47f39598bb88ddd21818>:0 
  at System.Windows.Forms.XplatUI..cctor () [0x000c0] in <fef229f3059c47f39598bb88ddd21818>:0 
   --- End of inner exception stack trace ---
  at System.Windows.Forms.Application.EnableVisualStyles () [0x00006] in <fef229f3059c47f39598bb88ddd21818>:0 
  at CKAN.GUI.Main_ (System.String[] args, CKAN.GameInstanceManager manager, System.Boolean showConsole) [0x0001b] in <e4787d5c004c42ed906f7bb77c342965>:0 
  at CKAN.CmdLine.MainClass.Gui (CKAN.GameInstanceManager manager, CKAN.CmdLine.GuiOptions options, System.String[] args) [0x00008] in <e4787d5c004c42ed906f7bb77c342965>:0 
  at CKAN.CmdLine.MainClass.RunSimpleAction (CKAN.CmdLine.Options cmdline, CKAN.CmdLine.CommonOptions options, System.String[] args, CKAN.IUser user, CKAN.GameInstanceManager manager) [0x002cb] in <e4787d5c004c42ed906f7bb77c342965>:0 
  at CKAN.CmdLine.MainClass.Execute (CKAN.GameInstanceManager manager, CKAN.CmdLine.CommonOptions opts, System.String[] args) [0x00296] in <e4787d5c004c42ed906f7bb77c342965>:0 
  at CKAN.CmdLine.MainClass.Main (System.String[] args) [0x00091] in <e4787d5c004c42ed906f7bb77c342965>:0 
HebaruSan commented 2 years ago

You'll find that when something "return[s] an error", that error tends to be pretty crucial to understanding the problem. Can you please share the error with us?

vincentBenet commented 2 years ago

Yes, i have to connect here with my steam deck to copy paste the error, I will upload the two errors when i will have my steam deck with me... Sorry for the delay

HebaruSan commented 2 years ago

While you're doing that, I'll note that I'm not aware of anyone having used CKAN on a Steam Deck before; I think someone asked if it was possible but then didn't try. So you're probably breaking new ground, and if you can figure out how to make it work, we can add your discoveries to the wiki for other Steam Deck users.

arthomnix commented 2 years ago

Running ckan.exe through mono installed in an Arch Linux distrobox container seems to work well

HebaruSan commented 2 years ago

@vincentBenet, if you're able to share the error, please do, and then we can re-open this. There's nothing here for the CKAN team to work on until then.

arthomnix commented 2 years ago

Mono isn't installed on the Deck by default and it has an immutable root filesystem, so I'd suggest using distrobox (see https://www.gamingonlinux.com/2022/09/distrobox-can-open-up-the-steam-deck-to-a-whole-new-world/) to create a container with a working mono installation. CKAN work son my Deck using this.

HebaruSan commented 2 years ago

@arthomnix, that's good to know. Would you be interested in writing up a wiki page with more detailed instructions for other Steam Deck users? I think the wiki is still locked down to non-team member edits, but I could change that if there was interest in a project like that. Or I could copy/paste from here into the wiki.

vincentBenet commented 2 years ago

@HebaruSan updated, you can re open the issue

HebaruSan commented 2 years ago

@vincentBenet, thanks, it looks like this is the key part:

/usr/lib/mono/msbuild/Current/bin/Microsoft.Common.CurrentVersion.targets(2218,5): error MSB3248: Parameter "AssemblyFiles" has invalid value "/usr/lib/mono/4.5-api/mscorlib.dll". Could not load file or assembly 'System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. [/home/deck/Downloads/ckan/src/CKAN-1.31.0/Core/CKAN-core.csproj]

This seems to confirm what @arthomnix said, that you don't have Mono installed. That's not something the CKAN team can fix for you, so I don't think it would make sense to re-open this. Can you try @arthomnix's suggestion of using containers? Maybe we can combine both his observations and yours for some helpful Steam Deck wiki documentation.

Here's the existing documentation of which Mono packages you need in order to compile (i.e., all of them):

Until your system meets those requirements, I wouldn't expect it to be able to build CKAN.

vincentBenet commented 2 years ago

Mono isn't installed on the Deck by default and it has an immutable root filesystem, so I'd suggest using distrobox (see https://www.gamingonlinux.com/2022/09/distrobox-can-open-up-the-steam-deck-to-a-whole-new-world/) to create a container with a working mono installation. CKAN work son my Deck using this.

Hi, thank you for that, can you publish here the commands to do once installed distrobox please?

How to install arch? I got an error when I try to install arch with distrobox...

arthomnix commented 2 years ago

@HebaruSan here's a draft article on installing CKAN with Distrobox, @vincentBenet you might want to try these instructions


Installing CKAN on the Steam Deck

The Steam Deck's operating system features an immutable root filesystem, meaning Mono can't be installed. To get around this, we can use Distrobox to create a container in which we can install Mono and CKAN.

Installing Distrobox

Open Konsole in desktop mode and run the following two commands:

curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/install | sh -s -- --prefix ~/.local
curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/extras/install-podman | sh -s -- --prefix ~/.local

This will install Distrobox, as well as Podman, the container software that Distrobox is built on.

Then, open your /home/deck/.bashrc file in a text editor such as KWrite and add the following lines at the end:

xhost +si:localuser:$USER
export PATH=$HOME/.local/bin:$PATH
export PATH=$HOME/.local/podman/bin:$PATH

The first line grants applications on Distrobox the required permissions to connect to the X server (and therefore open graphical windows). The last two lines add Distrobox and Podman to the PATH variable so we can actually run them.

Creating a container

In a new Konsole window, run distrobox create -i archlinux. When asked if you want to pull the image, press enter at the Y/n prompt and select the top option. This will create a new container running Arch Linux, which we can install Mono into without requiring write access to the Deck's root filesystem.

Enter your new container with distrobox enter archlinux.

Installing Mono

In the container, run sudo pacman -S mono to install Mono. Press enter at any y/n prompts. This will instalk Mono into the container.

Installing CKAN

Download the latest ckan.exe from GitHub Releases. Inside the container, run mono path/to/ckan.exe (replacing path/to/ckan.exe with the actual location of the file; this will usually be Downloads/ckan.exe if you just downloaded it). CKAN should open, and KSP should be auto-detected if it has been installed via Steam.

To run CKAN from outside the container, you can use distrobox enter archlinux -- mono path/to/ckan.exe.

To make it easier to launch CKAN, create a new text file called ckan.sh in the same folder as ckan.exe with the following contents:

#!/usr/bin/env sh
export PATH=$HOME/.local/bin:$PATH
export PATH=$HOME/.local/podman/bin:$PATH
xhost +si:localuser:$USER
distrobox enter archlinux -- mono ckan.exe

Set this file as executable in its properties, and open it to run CKAN. You can also add this file to Steam as a non-Steam game to access CKAN from Gaming Mode.

Keeping your container updated

It's a good idea to keep the packages in your container up to date; you can do this with distrobox enter archlinux -- sudo pacman -Syu.

HebaruSan commented 2 years ago

Thanks so much, those instructions look great and I've added them to the wiki!:

https://github.com/KSP-CKAN/CKAN/wiki/Installing-CKAN-on-Steam-Deck

HebaruSan commented 2 years ago

For the "Installing CKAN" step, should the instructions include how to build CKAN from scratch with makepkg, as on the Arch wiki? I'm not very familiar with Distrobox; if we provided a link to that wiki, would users be able to follow it?

vincentBenet commented 2 years ago

For the "Installing CKAN" step, should the instructions include how to build CKAN from scratch with makepkg, as on the Arch wiki? I'm not very familiar with Distrobox; if we provided a link to that wiki, would users be able to follow it?

I don t think so because all is included inside the .exe file, i will test to install and tells you!

vincentBenet commented 2 years ago

@arthomnix there is an AUR repo for distrobox, do you know if it is working ?

https://aur.archlinux.org/packages/distrobox

HebaruSan commented 2 years ago

@arthomnix there is an AUR repo for distrobox, do you know if it is working ?

I would assume that if you can't install Mono with the usual Arch tools, then installing Distrobox that way would also fail.

vincentBenet commented 2 years ago

16666036579088413675142467841702

Instructions are working. I have created a .desktop to just double click. Missing the instruction to convert the .sh file as an executable.

You can add it on steam creating the .desktop file:

TO UPLOAD...

Then in steam click on ADD A GAME > ADD A NON-STEAM GAME... > BROWSE > ckan.exe > ADD SELECTED PROGRAMS

You can restart the steam deck and launch CKAN from Gaming Mod now !!!

vincentBenet commented 2 years ago

@HebaruSan add me to the wiki so I can make the tutorial. Thank you @arthomnix , all credit is yours! PXL_20221024_095138914 PXL_20221024_095118006

I succes to run CKAN with protontricks but just the first time. Now it is not working...

arthomnix commented 1 year ago

@vincentBenet CKAN doesn't work in Proton, you need to add your ckan.sh file to Steam to run it in distrobox (you'll need to change the file type filter to all files to get it to show up)

arthomnix commented 1 year ago

Using the AUR on the Deck isn't recommended as you would have to make the root filesystem read-write, and anything you install to it would be overwritten by system updates (basically defeating the purpose of using Distrobox in the first place)

vincentBenet commented 1 year ago

@vincentBenet CKAN doesn't work in Proton, you need to add your ckan.sh file to Steam to run it in distrobox (you'll need to change the file type filter to all files to get it to show up)

Yes, you are right. That what I have done. I had to add a rm command of CKAN lock file inside the .sh file and also I get some issues with spaces in paths. But it is working fine now. Anyway, running CKAN in Gaming mod has many graphical issues.

HebaruSan commented 1 year ago

OK @arthomnix and @vincentBenet, I have turned on wiki editing for non team members, so you can update or add things as needed:

https://github.com/KSP-CKAN/CKAN/wiki/Installing-CKAN-on-Steam-Deck

Note that I might have to rescind this if we get random vandalism again (the reason it was locked down in the first place).

vincentBenet commented 1 year ago

Using the AUR on the Deck isn't recommended as you would have to make the root filesystem read-write, and anything you install to it would be overwritten by system updates (basically defeating the purpose of using Distrobox in the first place)

Ok, I will use your method so! Thx! :)

arthomnix commented 1 year ago

gaming mode is designed for games, so you may run into issues when using non-game applications it may be helpful to use the window switcher (accessible from the steam button)

vincentBenet commented 1 year ago

OK @arthomnix and @vincentBenet, I have turned on wiki editing for non team members, so you can update or add things as needed:

https://github.com/KSP-CKAN/CKAN/wiki/Installing-CKAN-on-Steam-Deck

Note that I might have to rescind this if we get random vandalism again (the reason it was locked down in the first place).

You should implement sphinx to get your documentation working with pull requests ;)

Ok, i will try to get this done soon so you can lock it after.

arthomnix commented 1 year ago

For the "Installing CKAN" step, should the instructions include how to build CKAN from scratch with makepkg, as on the Arch wiki? I'm not very familiar with Distrobox; if we provided a link to that wiki, would users be able to follow it?

Given that the Deck isn't targeted at Linux users, it's probably best to keep the instructions simple and not include extra stuff about compiling from source

arthomnix commented 1 year ago

@vincentBenet CKAN doesn't work in Proton, you need to add your ckan.sh file to Steam to run it in distrobox (you'll need to change the file type filter to all files to get it to show up)

Yes, you are right. That what I have done. I had to add a rm command of CKAN lock file inside the .sh file and also I get some issues with spaces in paths. But it is working fine now. Anyway, running CKAN in Gaming mod has many graphical issues.

Deleting the lockfile doesn't sound like the best idea, although maybe it's necessary given how steam closes apps in gaming mode

arthomnix commented 1 year ago

@vincentBenet please edit https://github.com/KSP-CKAN/CKAN/wiki/Installing-CKAN-on-Steam-Deck rather than adding a new wiki article

vincentBenet commented 1 year ago

Here we go @arthomnix & @HebaruSan : https://github.com/KSP-CKAN/CKAN/wiki/Installing-CKAN-on-SteamOS-(Steam-deck)

vincentBenet commented 1 year ago

@vincentBenet please edit https://github.com/KSP-CKAN/CKAN/wiki/Installing-CKAN-on-Steam-Deck rather than adding a new wiki article

Sorry for that, I will merge both

arthomnix commented 1 year ago

@vincentBenet those instructions seem specific to the Steam release of KSP, there also shouldn't be any reason why ckan.exe needs to be placed in the same folder as ksp

vincentBenet commented 1 year ago

@vincentBenet those instructions seem specific to the Steam release of KSP, there also shouldn't be any reason why ckan.exe needs to be placed in the same folder as ksp

You are right but having simple instructions are simpler for non-linux users. I will add the comment that it can be anywhere else.

arthomnix commented 1 year ago

Might be easier just to leave it as is (i.e. tell people to leave it where they downloaded it), or tell them to put it in a folder like /home/deck/ckan

HebaruSan commented 1 year ago

Hi @vincentBenet, a user on the KSP forum is reporting problems following the wiki. I won't be able to assist much, since I don't have this hardware or software setup. Would you be able to stop by and help?

https://forum.kerbalspaceprogram.com/index.php?/topic/197082-ckan-the-comprehensive-kerbal-archive-network-v1312-juno/&do=findComment&comment=4198347

vincentBenet commented 1 year ago

Hi @HebaruSan , I have no problem on mine, I think he miss one or more steps in the process. But having CKAN in a flatpack is a good idea! (I don t know how to do it but i can search if you want...