%global debug_package %{nil} %global _missing_build_ids_terminate_build 0 Name: mise Version: 2026.8.11 Release: 1%{?dist} Summary: Dev tools, env vars, and tasks in one CLI License: MIT URL: https://mise.jdx.dev Source0: https://github.com/jdx/mise/archive/v%{version}/mise-%{version}.tar.gz Source1: mise-vendor-%{version}.tar.gz BuildRequires: rust >= 1.93 BuildRequires: cargo BuildRequires: gcc BuildRequires: git BuildRequires: openssl-devel BuildRequires: cmake # nasm is required by aws-lc-sys on x86_64 to compile ASM crypto routines. # Available in standard Fedora repos; on RHEL/EPEL it lives in CRB (not # enabled in COPR by default) so we use prebuilt NASM objects there instead # (see AWS_LC_SYS_PREBUILT_NASM in the %%build section). %if 0%{?fedora} %ifarch x86_64 BuildRequires: nasm %endif %endif %description mise prepares your development environment before each command runs. It installs and switches between project tools, loads environment variables, and runs tasks from the same configuration. %prep %autosetup -n %{name}-%{version} %setup -q -T -D -a 1 %build # Set up vendored dependencies mkdir -p .cargo cp .cargo/config.toml .cargo/config.toml.bak 2>/dev/null || true cat > .cargo/config.toml << 'CARGO_EOF' [source.crates-io] replace-with = "vendored-sources" [source.vendored-sources] directory = "vendor" CARGO_EOF # aws-lc-sys compiles and links its memcmp compiler probe in one command. It # intentionally ignores CFLAGS, but still applies Fedora's LDFLAGS, whose # hardened linker specs produce a PIE executable. Add the matching compiler # flag so the probe's object file is position-independent as well. %if 0%{?fedora} %ifarch x86_64 export LDFLAGS="${LDFLAGS:-} -fPIE" %endif %endif # On RHEL/EPEL x86_64, nasm lives in CRB which is not enabled in COPR # chroots. Use prebuilt NASM objects bundled inside the aws-lc-sys crate # instead. This works at all Cargo profile/optimization levels including # release (unlike AWS_LC_SYS_NO_ASM which is debug-only and panics at # release profile). %if 0%{?rhel} %ifarch x86_64 export AWS_LC_SYS_PREBUILT_NASM=1 %endif %endif # CI verifies that the locked dependencies actually compile with mise's MSRV. cargo build --profile release --frozen --bin mise --ignore-rust-version %install mkdir -p %{buildroot}%{_bindir} cp target/release/mise %{buildroot}%{_bindir}/ # Install man page if available mkdir -p %{buildroot}%{_mandir}/man1 cp man/man1/mise.1 %{buildroot}%{_mandir}/man1/ # Install shell completions mkdir -p %{buildroot}%{_datadir}/bash-completion/completions cp completions/mise.bash %{buildroot}%{_datadir}/bash-completion/completions/mise mkdir -p %{buildroot}%{_datadir}/zsh/site-functions cp completions/_mise %{buildroot}%{_datadir}/zsh/site-functions/ mkdir -p %{buildroot}%{_datadir}/fish/vendor_completions.d cp completions/mise.fish %{buildroot}%{_datadir}/fish/vendor_completions.d/ # Disable self-update for package manager installations mkdir -p %{buildroot}%{_libdir}/mise cat > %{buildroot}%{_libdir}/mise/mise-self-update-instructions.toml <<'TOML' message = "To update mise from COPR, run:\n\n sudo dnf upgrade mise\n" TOML %files %license LICENSE %doc README.md %{_bindir}/mise %{_mandir}/man1/mise.1* %{_datadir}/bash-completion/completions/mise %{_datadir}/zsh/site-functions/_mise %{_datadir}/fish/vendor_completions.d/mise.fish %{_libdir}/mise/mise-self-update-instructions.toml %changelog * Sun Aug 23 2026 mise Release Bot - %{version}-1 - New upstream release %{version}