%bcond_with toolchain_clang %bcond_with toolchain_gcc %if %{with toolchain_gcc} %global toolchain gcc %else %global toolchain clang %endif # Change these variables if you want to use custom keys # Leave blank if you want to build Prism Launcher without an MSA ID or CurseForge API key %global msa_id default %global curseforge_key default # Set the Qt version %global qt_version 6 %global min_qt_version 6.8 # Give the launcher our build platform %global build_platform unknown %if 0%{?fedora} %global build_platform Fedora %endif %if 0%{?rhel} %global build_platform RedHat %endif %if 0%{?centos} %global build_platform CentOS %endif %global snapshot 202604221645 Name: meshmc Version: %{snapshot} Release: 2%{?dist} Summary: Custom Minecraft launcher with multi-instance management Group: Amusements/Games License: GPL-3.0-or-later AND Apache-2.0 URL: https://projecttick.org/ Source0: https://ftp.projecttick.org/Project-Tick/meshmc/releases/download/v%{snapshot}/meshmc-v%{snapshot}.tar.gz Patch0: patch.patch %if 0%{?fedora} > 41 BuildRequires: temurin-17-jdk %else BuildRequires: java-17-openjdk-devel %endif BuildRequires: cmake >= 3.22 BuildRequires: ninja-build BuildRequires: extra-cmake-modules BuildRequires: cmake(VulkanHeaders) BuildRequires: pkgconfig(libarchive) BuildRequires: pkgconfig(libcmark) # https://bugzilla.redhat.com/show_bug.cgi?id=2166815 # Fedora versions < 38 (and thus RHEL < 10) don't contain cmark's binary target # We need that %if 0%{?fedora} && 0%{?fedora} < 38 || 0%{?rhel} && 0%{?rhel} < 10 BuildRequires: cmark %endif BuildRequires: pkgconfig(libqrencode) BuildRequires: pkgconfig(scdoc) BuildRequires: pkgconfig(tomlplusplus) BuildRequires: pkgconfig(zlib) BuildRequires: cmake(Qt%{qt_version}Concurrent) >= %{min_qt_version} BuildRequires: cmake(Qt%{qt_version}Core) >= %{min_qt_version} BuildRequires: cmake(Qt%{qt_version}CoreTools) >= %{min_qt_version} BuildRequires: cmake(Qt%{qt_version}Network) >= %{min_qt_version} BuildRequires: cmake(Qt%{qt_version}NetworkAuth) >= %{min_qt_version} BuildRequires: cmake(Qt%{qt_version}OpenGL) >= %{min_qt_version} BuildRequires: cmake(Qt%{qt_version}Test) >= %{min_qt_version} BuildRequires: cmake(Qt%{qt_version}Widgets) >= %{min_qt_version} BuildRequires: cmake(Qt%{qt_version}Xml) >= %{min_qt_version} BuildRequires: desktop-file-utils BuildRequires: libappstream-glib Requires: qt%{qt_version}-qtimageformats Requires: qt%{qt_version}-qtsvg Requires: javapackages-filesystem Recommends: java-25-openjdk Recommends: java-21-openjdk # See note above %if 0%{?fedora} && 0%{?fedora} < 42 Recommends: java-17-openjdk Suggests: java-1.8.0-openjdk %endif # Used to gather GPU with `lspci` Requires: pciutils # Needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128 Recommends: xrandr # Needed for using narrator in minecraft Recommends: flite %description A custom launcher for Minecraft that allows you to easily manage multiple installations of Minecraft at once (Fork of MultiMC) %prep %autosetup -n meshmc-v%{snapshot} -p1 %build %cmake -G Ninja \ -D MeshMC_BUILD_PLATFORM=fedora \ -D MeshMC_PLUGINS=ON \ -D MeshMC_STAGING_PLUGINS=ON \ -D MeshMC_DISABLE_JAVA_DOWNLOADER=OFF \ -W no-dev \ -D CMAKE_BUILD_TYPE=RelWithDebInfo %cmake_build %install %cmake_install %check %ctest desktop-file-validate %{buildroot}%{_datadir}/applications/org.projecttick.MeshMC.desktop %if 0%{?fedora} > 37 || 0%{?rhel} > 9 appstream-util validate-relax --nonet \ %{buildroot}%{_metainfodir}/org.projecttick.MeshMC.metainfo.xml %endif %files %license COPYING.md %doc README.md %{_bindir}/mmcmodules/ %{_bindir}/meshmc %{_datadir}/applications/org.projecttick.MeshMC.desktop %{_datadir}/metainfo/org.projecttick.MeshMC.metainfo.xml %{_datadir}/mime/packages/org.projecttick.MeshMC.xml %{_datadir}/icons/hicolor/*/apps/org.projecttick.MeshMC.* %{_datadir}/MeshMC/ %{_mandir}/man6/* %changelog * Mon Apr 20 2026 Mehmet Samet Duman - %{version}-1 - Initial Fedora draft