diff --git a/BUILDING.md b/BUILDING.md index 3e6c46d..d5410a1 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -32,4 +32,8 @@ codesign --force --deep --sign - "/path/to/Emerald\ Legacy\ Launcher.app" ```sh pnpm flatpak # or npm -``` \ No newline at end of file +``` + +## Gentoo + +A Portage overlay lives in [`gentoo/`](gentoo/). See the GNU/Linux installation section in [README.md](README.md). diff --git a/README.md b/README.md index fc9614b..31ca458 100644 --- a/README.md +++ b/README.md @@ -135,6 +135,18 @@ nix profile install github:LCE-Hub/LCE-Emerald-Launcher On NixOS, add the flake as an input and install `packages..default` (or `emerald-legacy-launcher`) from it. +**Gentoo:** +This repository includes a local Portage overlay under [`gentoo/`](gentoo/). Point `repos.conf` at that directory, then emerge the package (build fetches Cargo/npm deps over the network; Wine/Proton is needed at runtime to launch games): +```bash +# /etc/portage/repos.conf/emerald-legacy-launcher.conf +[emerald-legacy-launcher] +location = /path/to/LCE-Emerald-Launcher/gentoo +auto-sync = no + +sudo emerge games-util/emerald-legacy-launcher # 1.5.1 +# sudo emerge =games-util/emerald-legacy-launcher-9999 # live git +``` + **Flatpak Installation:** ```bash flatpak install emerald.flatpak diff --git a/gentoo/games-util/emerald-legacy-launcher/Manifest b/gentoo/games-util/emerald-legacy-launcher/Manifest new file mode 100644 index 0000000..b72ef44 --- /dev/null +++ b/gentoo/games-util/emerald-legacy-launcher/Manifest @@ -0,0 +1 @@ +DIST emerald-legacy-launcher-1.5.1.tar.gz 18500442 BLAKE2B 365d9dd36ee6fddb90625719b599c8fc492eba4ce0fb8926c953f2a7d7f4987bf77d91de6a140a489534ba61e8a71bf9e65d8e015a35af31bccb84ca3a023178 SHA512 c713ef81e56d55d7135fa4228f875822a3eee38ace86d8d28a59a8b4afeff28844bf698e9902eb66075b425a0fb71ae72969ae1fe99ce185a005b5f42a4dccc8 diff --git a/gentoo/games-util/emerald-legacy-launcher/emerald-legacy-launcher-1.5.1.ebuild b/gentoo/games-util/emerald-legacy-launcher/emerald-legacy-launcher-1.5.1.ebuild new file mode 100644 index 0000000..96fce97 --- /dev/null +++ b/gentoo/games-util/emerald-legacy-launcher/emerald-legacy-launcher-1.5.1.ebuild @@ -0,0 +1,79 @@ +# Copyright 2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit desktop xdg + +DESCRIPTION="FOSS cross-platform launcher for Minecraft Legacy Console Edition" +HOMEPAGE="https://github.com/LCE-Hub/LCE-Emerald-Launcher" +SRC_URI="https://github.com/LCE-Hub/LCE-Emerald-Launcher/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/LCE-Emerald-Launcher-${PV}" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~amd64" + +# Cargo crates and npm packages are fetched at build time. +RESTRICT="network-sandbox" + +RDEPEND=" + dev-libs/glib:2 + dev-libs/libayatana-appindicator + dev-libs/openssl:= + net-libs/libsoup:3.0 + net-libs/webkit-gtk:4.1 + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/gtk+:3 + x11-libs/pango +" +DEPEND="${RDEPEND}" +BDEPEND=" + || ( + >=dev-lang/rust-1.77.0:* + >=dev-lang/rust-bin-1.77.0:* + ) + net-libs/nodejs[npm] + virtual/pkgconfig +" + +# Rust binaries ignore *FLAGS from make.conf. +QA_FLAGS_IGNORED="usr/bin/emerald-legacy-launcher" + +src_prepare() { + default + + # Disable updater artifact signing (no Tauri signing key in distro builds). + sed -i \ + -e 's/"createUpdaterArtifacts": true/"createUpdaterArtifacts": false/' \ + src-tauri/tauri.conf.json || die +} + +src_compile() { + local -x CI=true + local -x npm_config_audit=false + local -x npm_config_fund=false + local -x npm_config_update_notifier=false + + npm install || die "npm install failed" + npm run tauri -- build --no-bundle || die "tauri build failed" +} + +src_install() { + dobin src-tauri/target/release/emerald-legacy-launcher + + newicon -s 32 src-tauri/icons/32x32.png emerald-legacy-launcher.png + newicon -s 64 src-tauri/icons/64x64.png emerald-legacy-launcher.png + newicon -s 128 src-tauri/icons/128x128.png emerald-legacy-launcher.png + newicon -s 256 src-tauri/icons/128x128@2x.png emerald-legacy-launcher.png + newicon -s 512 src-tauri/icons/icon.png emerald-legacy-launcher.png + + domenu "${FILESDIR}"/emerald-legacy-launcher.desktop + + insinto /usr/share/metainfo + newins flatpak/io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher.metainfo.xml \ + io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher.metainfo.xml + + dodoc README.md LICENSE +} diff --git a/gentoo/games-util/emerald-legacy-launcher/emerald-legacy-launcher-9999.ebuild b/gentoo/games-util/emerald-legacy-launcher/emerald-legacy-launcher-9999.ebuild new file mode 100644 index 0000000..318574c --- /dev/null +++ b/gentoo/games-util/emerald-legacy-launcher/emerald-legacy-launcher-9999.ebuild @@ -0,0 +1,79 @@ +# Copyright 2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit desktop git-r3 xdg + +DESCRIPTION="FOSS cross-platform launcher for Minecraft Legacy Console Edition" +HOMEPAGE="https://github.com/LCE-Hub/LCE-Emerald-Launcher" +EGIT_REPO_URI="https://github.com/LCE-Hub/LCE-Emerald-Launcher.git" + +LICENSE="GPL-3" +SLOT="0" +PROPERTIES="live" + +# Cargo crates and npm packages are fetched at build time. +RESTRICT="network-sandbox" + +RDEPEND=" + dev-libs/glib:2 + dev-libs/libayatana-appindicator + dev-libs/openssl:= + net-libs/libsoup:3.0 + net-libs/webkit-gtk:4.1 + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/gtk+:3 + x11-libs/pango +" +DEPEND="${RDEPEND}" +BDEPEND=" + || ( + >=dev-lang/rust-1.77.0:* + >=dev-lang/rust-bin-1.77.0:* + ) + net-libs/nodejs[npm] + virtual/pkgconfig +" + +# Rust binaries ignore *FLAGS from make.conf. +QA_FLAGS_IGNORED="usr/bin/emerald-legacy-launcher" + +src_prepare() { + default + + # Prefer npm for the frontend build; disable updater artifact signing + # (no Tauri signing key in distro builds). + sed -i \ + -e 's/"createUpdaterArtifacts": true/"createUpdaterArtifacts": false/' \ + src-tauri/tauri.conf.json || die +} + +src_compile() { + local -x CI=true + local -x npm_config_audit=false + local -x npm_config_fund=false + local -x npm_config_update_notifier=false + + npm install || die "npm install failed" + npm run tauri -- build --no-bundle || die "tauri build failed" +} + +src_install() { + dobin src-tauri/target/release/emerald-legacy-launcher + + newicon -s 32 src-tauri/icons/32x32.png emerald-legacy-launcher.png + newicon -s 64 src-tauri/icons/64x64.png emerald-legacy-launcher.png + newicon -s 128 src-tauri/icons/128x128.png emerald-legacy-launcher.png + newicon -s 256 src-tauri/icons/128x128@2x.png emerald-legacy-launcher.png + newicon -s 512 src-tauri/icons/icon.png emerald-legacy-launcher.png + + domenu "${FILESDIR}"/emerald-legacy-launcher.desktop + + insinto /usr/share/metainfo + newins flatpak/io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher.metainfo.xml \ + io.github.Emerald_Legacy_Launcher.Emerald_Legacy_Launcher.metainfo.xml + + dodoc README.md LICENSE +} diff --git a/gentoo/games-util/emerald-legacy-launcher/files/emerald-legacy-launcher.desktop b/gentoo/games-util/emerald-legacy-launcher/files/emerald-legacy-launcher.desktop new file mode 100644 index 0000000..58919c1 --- /dev/null +++ b/gentoo/games-util/emerald-legacy-launcher/files/emerald-legacy-launcher.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Name=LCE Emerald Launcher +Comment=FOSS cross-platform launcher for Minecraft Legacy Console Edition +Exec=emerald-legacy-launcher %u +Icon=emerald-legacy-launcher +Type=Application +Categories=Game; +MimeType=x-scheme-handler/emerald;x-scheme-handler/emeraldlauncher;x-scheme-handler/discord-1482504445152460871; +StartupNotify=true +StartupWMClass=emerald-legacy-launcher +Terminal=false diff --git a/gentoo/games-util/emerald-legacy-launcher/metadata.xml b/gentoo/games-util/emerald-legacy-launcher/metadata.xml new file mode 100644 index 0000000..0164f8d --- /dev/null +++ b/gentoo/games-util/emerald-legacy-launcher/metadata.xml @@ -0,0 +1,14 @@ + + + + + LCE-Hub/LCE-Emerald-Launcher + https://github.com/LCE-Hub/LCE-Emerald-Launcher/issues + + + LCE Emerald Launcher is a FOSS cross-platform Tauri launcher for + Minecraft Legacy Console Edition. It installs community builds, + manages versions, skins, and workshop content, and launches the game + via Wine/Proton on Linux. + + diff --git a/gentoo/metadata/layout.conf b/gentoo/metadata/layout.conf new file mode 100644 index 0000000..20fcfea --- /dev/null +++ b/gentoo/metadata/layout.conf @@ -0,0 +1,3 @@ +masters = gentoo +thin-manifests = true +sign-manifests = false diff --git a/gentoo/profiles/repo_name b/gentoo/profiles/repo_name new file mode 100644 index 0000000..4973375 --- /dev/null +++ b/gentoo/profiles/repo_name @@ -0,0 +1 @@ +emerald-legacy-launcher