110 lines
5 KiB
Markdown
110 lines
5 KiB
Markdown
# Linux build
|
|
|
|
The project targets **Unity 2018.1.6f1**. Keep this version for now: the
|
|
simulation uses the bundled UNet networking API and the legacy .NET runtime.
|
|
No engine migration has been made.
|
|
|
|
## Toolchain
|
|
|
|
The following tools were installed and launched on this Debian 13 x86_64 host:
|
|
|
|
- Unity Editor: `/opt/unity/2018.1.6f1/Editor/Unity`, including Linux player support.
|
|
- Blender 2.79b: `/opt/blender-2.79b-linux-glibc219-x86_64/blender`, also available
|
|
as `blender` on PATH. The project's Blender models use the 2.79 file format.
|
|
- GTK 2, libsoup 2.4, GLU, and GConf 2 compatibility libraries. GConf was installed
|
|
from Debian's `libgconf-2-4_3.2.6-8_amd64.deb` and
|
|
`gconf2-common_3.2.6-8_all.deb`; Debian 13 no longer ships those packages.
|
|
- Xvfb and xauth for running the old editor without a desktop display.
|
|
|
|
Downloads: [Unity 2018.1.6f1](https://unity.com/releases/editor/whats-new/2018.1.6f1),
|
|
[Blender 2.79b](https://download.blender.org/release/Blender2.79/),
|
|
[Debian GConf packages](https://deb.debian.org/debian/pool/main/g/gconf/).
|
|
|
|
## Build command
|
|
|
|
Once Unity is activated and the damaged source assets below are restored:
|
|
|
|
```sh
|
|
./build-linux.sh
|
|
```
|
|
|
|
For an editor installed elsewhere:
|
|
|
|
```sh
|
|
UNITY_EDITOR=/path/to/2018.1.6f1/Editor/Unity ./build-linux.sh
|
|
```
|
|
|
|
The intended output is `Builds/linux/Simulation.x86_64`, with its accompanying
|
|
data directory. The editor log is `Builds/linux/build.log`. The build uses
|
|
`Assets/Scenes/Main.unity`; the original settings incorrectly named the absent
|
|
`SampleScene.unity` despite already containing Main's GUID.
|
|
|
|
The existing standalone startup code selects the client menu. This build command
|
|
preserves that behavior.
|
|
|
|
## Current blockers and verification
|
|
|
|
**No Linux executable has been built.** The editor starts, but the attempted
|
|
batch build exits with status 1 at license activation:
|
|
|
|
```text
|
|
Failed to activate/update license. Missing or bad username and password.
|
|
```
|
|
|
|
Unity Personal is free for eligible users, but still requires activation.
|
|
For a desktop session, sign in to Unity Hub, then use Settings > Licenses >
|
|
Add license > Get a free personal license if it is not activated automatically.
|
|
See [Unity's Hub license instructions](https://docs.unity.com/en-us/hub/manage-license).
|
|
|
|
For SSH access, Unity CLI 1.0.0-beta.9 is installed at
|
|
`/root/.local/bin/unity`, along with GNOME Keyring and `libsecret-tools`.
|
|
Its login command prints a URL that can be opened in a browser on another
|
|
device. Run `./unity-ssh.sh` as the same Linux user that will run the build.
|
|
It starts a private D-Bus session and a dedicated Unity keyring under
|
|
`~/.local/share/unity-ssh/keyrings`, leaving the desktop login keyring intact.
|
|
Choose a password on first use and use the same password when reopening the
|
|
helper. This password protects saved credentials locally; enter your Unity
|
|
account password only on Unity's sign-in page. The helper verifies that the
|
|
keyring can store and retrieve a test credential before opening a shell.
|
|
In that shell, run:
|
|
|
|
```sh
|
|
unity auth login
|
|
unity license activate --personal --accept-eula
|
|
unity license status
|
|
```
|
|
|
|
The activation command accepts the Unity Personal license terms. Type `exit`
|
|
when finished to close the shell and its keyring session.
|
|
|
|
The command options and browser-assisted login startup have been checked here.
|
|
Keyring tests with temporary credentials cover creation, reopening, incorrect
|
|
password rejection, inherited desktop sessions, and concurrent-session
|
|
rejection. The CLI's own credential-store check resolves the Secret Service
|
|
backend inside the helper. Run `./unity-ssh.sh --check` to check the keyring
|
|
without starting a Unity sign-in.
|
|
Sign-in, activation, and compatibility with the old editor still need to be
|
|
verified. See [Unity CLI instructions](https://docs.unity.com/en-us/unity-cli/use-unity-cli)
|
|
and [release notes](https://docs.unity.com/en-us/unity-cli/release-notes).
|
|
|
|
There is also existing file corruption, independent of activation. An audit
|
|
found **33 asset files whose contents are Unity metadata instead of their
|
|
expected source/model/image/material data**. Five of these are C# source files:
|
|
|
|
- `UnityProject/Assets/Scripts/CarLL.cs`
|
|
- `UnityProject/Assets/Scripts/misc/trafficLightColor.cs`
|
|
- `UnityProject/Assets/Standard Assets/CrossPlatformInput/Scripts/VirtualInput.cs`
|
|
- `UnityProject/Assets/!ext/PostProcessing/Editor/PostProcessingInspector.cs`
|
|
- `UnityProject/Assets/!ext/PostProcessing/Editor/Monitors/WaveformMonitor.cs`
|
|
|
|
A separate compilation attempt with Unity's bundled Mono compiler and genuine
|
|
2018.1 assemblies fails with `CS8025: Parsing error` in `VirtualInput.cs`.
|
|
The full asset list is in the local `Builds/linux/source-audit.txt`; compiler
|
|
output is in `Builds/linux/script-check/compile.log`.
|
|
|
|
Some metadata is damaged too: there are duplicated GUIDs, source code stored in
|
|
`.cs.meta` files, and empty directories with `.meta` names. The file at
|
|
`UnityProject/Scripts/CarLL.cs` is not a usable backup: it contains a
|
|
`TrafficController` class. A clean original checkout/archive is needed to
|
|
restore these files reliably. Existing assets and the old Library cache were
|
|
left intact.
|