Two stalls hit CI in one night with nothing bounding them but GitHub's 360-minute default: 1. A silently deadlocked test host (2h41m before manual cancel) — the code fix is on #2525; this PR adds the guardrails that make any recurrence cheap and self-diagnosing. 2. A dnf step stalled mid-download for 12+ then 30 minutes. Probing the EPEL mirror pool directly: the **first** mirror in the current US mirrorlist returns consistent HTTP 500, and sibling mirrors serve mismatched metadata generations, while Fedora's status page reads all-green (it only tracks central services, not the volunteer pool). ## Changes - **`timeout-minutes: 30` on both jobs.** Verified live: the cap killed a stalled job at exactly 30:02 instead of 6 hours. - **`dotnet test --blame-hang-timeout 10m --blame-hang-dump-type full`** — a stuck test host is killed after 10 minutes and vstest names the in-flight tests with a full process dump; `TestResults` (including dumps) upload as artifacts on failure. A future hang produces a stack trace instead of a bill. - **EPEL setup follows the quickstart ordering**: `dnf-plugins-core` → enable CRB → `epel-release`. `epel-next` is no longer installed — none of the prerequisites need it (validated green on Stream 9), EPEL 10 doesn't have it, and it's one more mirrorlist to fetch. - **Matrix**: adds **Ubuntu 26.04 LTS**, **CentOS Stream 10**, and **AlmaLinux 10** (real-EL10 coverage); bumps **Fedora 42 → 44** (42 went EOL in May). README badges and the Linux prerequisites section updated to match. Kept deliberately simple per review: no retry wrappers around dnf — mirror hiccups are rare and the job cap bounds the damage.
137 lines
8.8 KiB
Markdown
137 lines
8.8 KiB
Markdown
<p align="center">
|
|
<a href="https://muo.gg"><img alt="ModernUO - Ultima Online Server Emulator for the modern era!" src="https://cdn.muo.gg/gh/muo-logo.svg" width=128px /></a>
|
|
</p>
|
|
|
|
ModernUO [](https://muo.gg/discord) [](https://muo.gg/reddit/) [](https://muo.gg/twitter)
|
|
=====
|
|
|
|
##### Ultima Online Server Emulator for the modern era!
|
|
[](https://github.com/modernuo/ModernUO/blob/master/LICENSE)
|
|
[](https://github.com/modernuo/ModernUO/stargazers)
|
|
[](https://github.com/modernuo/ModernUO/issues)
|
|
<br/>
|
|
[](https://github.com/modernuo/ModernUO/actions)
|
|
[](https://dev.azure.com/modernuo/modernuo/_build/latest?definitionId=1&branchName=main)
|
|
|
|
## Requirements
|
|
#### Supported Operating Systems
|
|
[](https://www.microsoft.com/en-US/evalcenter/evaluate-windows-server-2022)
|
|

|
|
[](https://www.debian.org/distrib/)
|
|
[](https://ubuntu.com/download/server)
|
|
<br/>
|
|
[](https://alpinelinux.org/downloads/)
|
|
[](https://getfedora.org/en/server/download/)
|
|
[](https://access.redhat.com/downloads)
|
|
[](https://www.centos.org/download/)
|
|
[](https://almalinux.org/get-almalinux/)
|
|
[](https://get.opensuse.org/)
|
|
[](https://www.suse.com/download/sles/)
|
|
[](https://linuxmint.com/download.php)
|
|
[](https://archlinux.org/download/)
|
|
|
|
#### Required Frameworks
|
|
##### All Operating Systems
|
|
[](https://dotnet.microsoft.com/download/dotnet/10.0)
|
|
|
|
##### Windows
|
|
[](https://aka.ms/vc14/vc_redist.x64.exe)
|
|
|
|
#### Development
|
|
[](https://git-scm.com/downloads)
|
|
[](https://dotnet.microsoft.com/download/dotnet/10.0)
|
|
|
|
#### Supported IDEs
|
|
<p align="left">
|
|
<a href="https://www.jetbrains.com/rider/download"><img height="64" title="Jetbrains Rider 2025.3+" alt="Jetbrains Rider 2025.3+" src="https://cdn.muo.gg/gh/jetbrains-rider.svg"></a>
|
|
<a href="#"><img alt="space" width="32" src="https://cdn.muo.gg/gh/space.png"></a>
|
|
<a href="https://code.visualstudio.com/download"><img height="64" title="VSCode" alt="VSCode" src="https://cdn.muo.gg/gh/vscode.svg"></a>
|
|
<a href="#"><img alt="space" width="32" src="https://cdn.muo.gg/gh/space.png"></a>
|
|
<a href="https://visualstudio.microsoft.com/vs/community/"><img height="64" title="Visual Studio 2026" alt="Visual Studio 2026" src="https://cdn.muo.gg/gh/vs2026.svg"></a>
|
|
</p>
|
|
|
|
## Getting Started
|
|
- Install prerequisite [requirements](https://github.com/modernuo/ModernUO#requirements)
|
|
- Clone this repository (or download the [latest](https://github.com/modernuo/ModernUO/archive/refs/heads/main.zip)):
|
|
- `git clone https://github.com/modernuo/ModernUO.git`
|
|
- Open `ModernUO.sln` to start developing
|
|
|
|
## Building/Publishing
|
|
|
|
#### Interactive Mode (Recommended for new users)
|
|
Run `./publish.cmd` (Windows) or `./publish.sh` (Linux/macOS) with no arguments to launch the guided build tool. It will:
|
|
- Check prerequisites (.NET SDK, native libraries)
|
|
- Walk you through configuration and platform selection
|
|
- Build and publish the server to the `Distribution` directory
|
|
- Show deployment instructions for cross-compiled builds
|
|
|
|
#### Command Line
|
|
```shell
|
|
./publish.cmd [release|debug] [os] [arch]
|
|
```
|
|
- `os` - [Supported operating systems](https://github.com/dotnet/core/blob/main/release-notes/10.0/supported-os.md)
|
|
- `win` - [Windows](https://learn.microsoft.com/en-us/dotnet/core/install/windows)
|
|
- `osx` - [macOS](https://learn.microsoft.com/en-us/dotnet/core/install/macos)
|
|
- `linux` - [Linux](https://learn.microsoft.com/en-us/dotnet/core/install/linux)
|
|
- `arch`
|
|
- `x64` - Intel/AMD 64-bit
|
|
- `arm64` - ARM 64-bit
|
|
|
|
## Linux Prerequisites
|
|
### Fedora, CentOS, RHEL, AlmaLinux, Rocky, etc
|
|
```shell
|
|
dnf upgrade --refresh -y
|
|
# RHEL-family distributions (CentOS Stream, AlmaLinux, Rocky, RHEL) need CRB and EPEL enabled.
|
|
# Fedora skips this block.
|
|
dnf install -y dnf-plugins-core
|
|
dnf config-manager --set-enabled crb
|
|
dnf install -y epel-release
|
|
# Prerequisites
|
|
dnf install -y findutils libicu libdeflate-devel zstd libargon2-devel liburing-devel
|
|
```
|
|
|
|
### Ubuntu, Debian, etc
|
|
```shell
|
|
apt-get update -y
|
|
apt-get install -y libicu-dev libdeflate-dev zstd libargon2-dev liburing-dev
|
|
```
|
|
|
|
## OSX Requirements
|
|
```shell
|
|
brew install icu4c libdeflate zstd argon2
|
|
```
|
|
|
|
## Running the Server
|
|
- Follow the [publish](https://github.com/modernuo/ModernUO#buildingpublishing) instructions
|
|
- The `Distribution` directory is portable — copy it to your production server for deployment
|
|
- Run `ModernUO.exe` or `dotnet ModernUO.dll` from the `Distribution` directory
|
|
- On first run, the server will prompt you to configure game data file locations
|
|
|
|
## Troubleshooting / FAQ
|
|
- See [FAQ](./FAQ.md)
|
|
|
|
## Want to sponsor?
|
|
Thank you for supporting us! You can find out how by visiting the [sponsors](./SPONSORS.md) page.
|
|
|
|
## Collaborators
|
|
[](https://github.com/kamronbatman)
|
|
[](https://github.com/mark1145)
|
|
|
|
## Thanks
|
|
- RunUO Team & Community
|
|
- [Voxpire](https://github.com/Voxpire), the ServUO Team & Community
|
|
- [Karasho](https://github.com/andreakarasho), [Jaedan](https://github.com/jaedan) and the ClassicUO Community
|
|
|
|
<br/><br/>
|
|
<p align=center>Development Tools & Plugins provided with ♥ by<br/><br/><a href="https://www.jetbrains.com/?from=ModernUO"><img src="https://cdn.muo.gg/gh/jetbrains.svg" height="64px" alt="JetBrains" title="JetBrains" /></a><br/>
|
|
<a href="https://material-theme.com/"><img src="https://github.com/AtomMaterialUI/material-theme-issues/raw/master/logo.svg" width="64px" alt="Material Theme" title="Material Theme"></a></p>
|
|
|
|
## Code Signing Policy
|
|
|
|
Free code signing provided by [SignPath.io](https://about.signpath.io), certificate by [SignPath Foundation](https://signpath.org).
|
|
|
|
This program will not transfer any information to other networked systems unless specifically requested by the user or the person installing or operating it
|
|
|
|
### Teams & Roles
|
|
Approvers & Committers: [Development Team](https://github.com/orgs/modernuo/teams/development-team)
|
|
|