Skip to content

Repository files navigation

uuyc-wine — NetEase UU Remote / 网易UU远程 for Wine

uuyc-wine packages the NetEase UU Remote (网易UU远程) Windows client for Arch Linux and runs it in a dedicated Wine prefix. It installs the official upstream installer, prepares Microsoft Edge WebView2 Runtime, configures the required Wine compatibility settings, and starts the required service, supervisor, and server before the desktop client.

The -wine suffix distinguishes this compatibility package from a future native Linux package that may use the canonical uuyc name. This is an unofficial package; NetEase does not support this Wine setup.

Installation

Install from the AUR with an AUR helper:

paru -S uuyc-wine

Or build the package manually:

git clone https://aur.archlinux.org/uuyc-wine.git
cd uuyc-wine
makepkg -si

First launch

Start NetEase UU Remote (Wine) from the application menu or run:

uuyc-wine

The first launch can take several minutes. The launcher creates a 64-bit Wine prefix, installs UU Remote and WebView2 Runtime, verifies the installation, and then starts the application.

After a package upgrade, close the visible UU Remote client before launching the new release. The launcher refuses to replace compatibility files while GameViewer.exe is active. Once the client has closed, it stops any remaining background processes in that Wine prefix before applying the update and starting a fresh service, supervisor, and server.

The default per-user paths are:

Wine prefix:  ${XDG_DATA_HOME:-$HOME/.local/share}/uuyc-wine/wineprefix
Setup state:  ${XDG_STATE_HOME:-$HOME/.local/state}/uuyc-wine
Setup log:    ${XDG_STATE_HOME:-$HOME/.local/state}/uuyc-wine/setup.log

Set UUYC_WINE_PREFIX to select a different Wine prefix explicitly.

Migration from uuyc

Close UU Remote before starting uuyc-wine for the first time. The launcher checks the exact previous WINEPREFIX and aborts before moving any data if the client, background service, or another Wine process is still running. Stop the default previous prefix with:

WINEPREFIX="${XDG_DATA_HOME:-$HOME/.local/share}/uuyc/wineprefix" wineserver -k

When the previous prefix is inactive and the new destination does not already exist, the launcher atomically migrates the valid Wine installation and setup state:

${XDG_DATA_HOME:-$HOME/.local/share}/uuyc
  -> ${XDG_DATA_HOME:-$HOME/.local/share}/uuyc-wine

${XDG_STATE_HOME:-$HOME/.local/state}/uuyc
  -> ${XDG_STATE_HOME:-$HOME/.local/state}/uuyc-wine

It also migrates the older $HOME/Games/uu-remote prefix into the new default prefix location when applicable. The entire Wine prefix is moved so registry data, WebView2, cookies, login state, device configuration, and Wine symlinks remain intact.

Migration refuses to merge or overwrite an existing destination. An explicit UUYC_WINE_PREFIX disables automatic prefix migration.

After verifying that uuyc-wine starts with the expected account and devices, remove the old package if it is still installed:

paru -Rns uuyc

Launcher options

uuyc-wine [OPTION] [CLIENT_ARGUMENT...]

--stop         Stop the UU Remote wineserver and its clients
--repair       Recheck and repair the Wine prefix before launching
--setup-only   Prepare the Wine prefix without launching UU Remote
--uri URI      Open a uuremote: URI through Wine's registered handler
--version      Print the AUR package release
-h, --help     Show command-line help

Examples:

uuyc-wine --stop
uuyc-wine --setup-only
uuyc-wine --repair
uuyc-wine --uri 'uuremote:...'

--stop exits before prefix migration, repair, or application startup. It asks the selected prefix's wineserver to terminate its clients and itself, allows Wine's built-in kill escalation to complete, then waits for the server lock to be released. It never scans or signals numeric PIDs; if no server is running, it reports that state without touching unrelated processes. Set UUYC_WINE_PREFIX to stop a custom prefix.

The desktop entry registers uuyc-wine.desktop as a handler for the upstream uuremote: URI scheme.

Wine configuration

The launcher applies and verifies the compatibility settings required by UU Remote:

  • a 64-bit Wine prefix configured as Windows 10;
  • Microsoft Edge WebView2 Runtime from the bundled upstream installer;
  • a Windows 8 application override limited to msedgewebview2.exe;
  • a package-built native wevtapi.dll compatibility layer that makes unsupported Windows Event Log queries fail cleanly instead of entering Wine's unimplemented EvtOpenPublisherMetadata stub;
  • UseTakeFocus=N for Wine's X11 driver;
  • GameViewerService explicitly started and verified as RUNNING;
  • GameViewerHealthd.exe started in the interactive Wine session to supervise the server;
  • GameViewerServer.exe started after the supervisor and before GameViewer.exe;
  • Wine menu generation disabled so the upstream installer cannot replace the packaged desktop and URI entries;
  • a prefix-local Windows Desktop directory so the installer cannot write shortcuts into the host desktop.

The installed Windows application remains under the per-user prefix because UU Remote includes its own updater and writes runtime data beside the application.

Native Linux coexistence

The package, CLI, desktop ID, icon, system share directory, license directory, and XDG data/state directories all use the uuyc-wine namespace. The package intentionally does not declare provides, conflicts, or replaces for uuyc, so a future native Linux package can use that canonical name.

A native client and this Wine package may both register the upstream uuremote: URI scheme. Desktop environments allow only one default handler at a time; select the preferred handler through the desktop environment or xdg-mime if both packages are installed.

Troubleshooting

Run a full prefix check and repair:

uuyc-wine --repair

Inspect the setup log:

less "${XDG_STATE_HOME:-$HOME/.local/state}/uuyc-wine/setup.log"

Useful version information:

uuyc-wine --version
wine --version

When reporting a problem, include the package release, Wine version, the relevant setup log section, and whether a custom UUYC_WINE_PREFIX is in use. Do not publish account credentials, device identifiers, remote-assistance codes, or complete application logs without reviewing them first.

Uninstallation

Stop UU Remote, remove the system package with pacman or an AUR helper, then optionally remove the preserved per-user Wine data:

uuyc-wine --stop
paru -Rns uuyc-wine
rm -rf -- "${XDG_DATA_HOME:-$HOME/.local/share}/uuyc-wine" "${XDG_STATE_HOME:-$HOME/.local/state}/uuyc-wine"

Pacman intentionally does not delete per-user Wine data. The package's post-remove script prints the same cleanup command.

Verify the paths before running the removal command. A custom UUYC_WINE_PREFIX is not removed by those commands.

Maintainer release workflow

GitHub is the development repository and uses the main branch. The AUR repository remains a separate Git repository whose required branch is master.

.github/workflows/aur-publish.yml publishes the checked-in package recipe to AUR when package files change on main, and it can also be started manually with workflow_dispatch. The workflow deliberately does not derive pkgver, the installer URL, or checksums from a Git tag. Every upstream update must be validated in this repository before it is pushed to main.

The GitHub repository must define this Actions secret:

AUR_SSH_PRIVATE_KEY

Its value is the complete private SSH key whose public key is registered for an AUR account that owns or co-maintains uuyc-wine. Never commit that key to either repository.

For an upstream update:

  1. Update pkgver, reset pkgrel to 1, and update the installer URL and checksums in PKGBUILD.
  2. Update the launcher checksum if uuyc-wine changed.
  3. Regenerate .SRCINFO with makepkg --printsrcinfo > .SRCINFO.
  4. Run the local syntax, desktop-entry, source, package-build, migration, and launch checks.
  5. Commit the verified files and push main to GitHub.
  6. Confirm that the Publish to AUR workflow completed and inspect the resulting AUR commit.

For packaging-only behavioral changes, keep pkgver and increment pkgrel.

License

UU Remote is proprietary software distributed under the upstream UU Remote EULA. During each build, makepkg downloads the official EULA page; verify() accepts only the reviewed agreement tags and attributes, preserves paragraphs, line breaks, and strong emphasis, and validates a fixed semantic SHA-256. Any agreement text, emphasis, tag, or semantic-style change fails closed for maintainer review. prepare() then produces self-contained HTML and plain-text copies under /usr/share/licenses/uuyc-wine/. Neither the upstream page nor the extracted agreement is stored in this repository or published to AUR.

The AUR packaging files and the package-built wevtapi.dll compatibility layer are licensed under the 0BSD license, as declared by REUSE.toml. The package installs both the upstream EULA and the 0BSD license under /usr/share/licenses/uuyc-wine/.

About

NetEase UU Remote (网易UU远程) Wine compatibility package for Arch Linux

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages