## START: Set by rpmautospec ## (rpmautospec version 0.8.1) ## RPMAUTOSPEC: autorelease, autochangelog %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: release_number = 4; base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); print(release_number + base_release_number - 1); }%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} ## END: Set by rpmautospec # Cannot build statically yet %bcond micromamba 0 %global commit abf652589926d90361eaec78dc2b88c4b9696904 Name: libmamba Version: 2.3.1 Release: %autorelease Summary: C++ API for mamba depsolving library License: BSD-3-Clause URL: https://github.com/mamba-org/mamba #Source0: https://github.com/mamba-org/mamba/archive/%{version}/%{name}-%{version}.tar.gz Source0: https://github.com/mamba-org/mamba/archive/%{commit}/%{name}-%{commit}.tar.gz # Use Fedora versions of zstd # Install into /etc/profile.d Patch: libmamba-fedora.patch # Use scikit-build-core https://github.com/mamba-org/mamba/pull/3802 Patch: https://github.com/mamba-org/mamba/pull/3802.patch BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: bzip2-devel BuildRequires: fmt-devel BuildRequires: gtest-devel BuildRequires: json-devel BuildRequires: libarchive-devel BuildRequires: libcurl-devel # Need CONDA_ADD_USE_ONLY_TAR_BZ2 BuildRequires: libsolv-devel BuildRequires: openssl-devel BuildRequires: reproc-devel BuildRequires: cmake(simdjson) BuildRequires: spdlog-devel BuildRequires: cmake(tl-expected) BuildRequires: yaml-cpp-devel # This is not yet provided by Fedora package # https://src.fedoraproject.org/rpms/zstd/pull-request/7 #BuildRequires: cmake(zstd) BuildRequires: libzstd-devel %description libmamba is a reimplementation of the conda package manager in C++. * parallel downloading of repository data and package files using multi- threading * libsolv for much faster dependency solving, a state of the art library used in the RPM package manager of Red Hat, Fedora and OpenSUSE * core parts of mamba are implemented in C++ for maximum efficiency %package devel Summary: Development files for %{name} License: MIT Requires: %{name}%{?_isa} = %{version}-%{release} Requires: cmake-filesystem Requires: pkgconfig Requires: fmt-devel%{?_isa} Requires: json-devel%{?_isa} Requires: libsolv-devel%{?_isa} Requires: reproc-devel%{?_isa} Requires: spdlog-devel%{?_isa} Requires: cmake(tl-expected) Requires: yaml-cpp-devel%{?_isa} %description devel The %{name}-devel package contains libraries and header files for developing applications that use %{name}. %package -n mamba Summary: The Fast Cross-Platform Package Manager BuildRequires: cli11-devel BuildRequires: pybind11-devel # Generate a simple man page until https://github.com/mamba-org/mamba/issues/3032 is addressed BuildRequires: help2man Requires: %{name}%{?_isa} = %{version}-%{release} %if %{without micromamba} Obsoletes: micromamba < %{version}-%{release} Provides: micromamba = %{version}-%{release} %endif %description -n mamba mamba is a reimplementation of the conda package manager in C++. * parallel downloading of repository data and package files using multi- threading * libsolv for much faster dependency solving, a state of the art library used in the RPM package manager of Red Hat, Fedora and OpenSUSE * core parts of mamba are implemented in C++ for maximum efficiency At the same time, mamba utilizes the same command line parser, package installation and deinstallation code and transaction verification routines as conda to stay as compatible as possible. mamba is part of the conda-forge ecosystem, which also consists of quetz, an open source conda package server. %if %{with micromamba} %package -n micromamba Summary: Tiny version of the mamba package manager BuildRequires: cli11-devel BuildRequires: pybind11-devel BuildRequires: yaml-cpp-static # Generate a simple man page until https://github.com/mamba-org/mamba/issues/3032 is addressed BuildRequires: help2man %description -n micromamba micromamba is the statically linked version of mamba. It can be installed as a standalone executable without any dependencies, making it a perfect fit for CI/CD pipelines and containerized environments. %endif %package -n python3-libmambapy Summary: Python bindings for libmamba BuildRequires: python3-devel BuildRequires: python3-pip BuildRequires: python3-setuptools BuildRequires: python3-wheel Requires: %{name}%{?_isa} = %{version}-%{release} %description -n python3-libmambapy Python bindings for libmamba. %prep %autosetup -p1 -n mamba-%{commit} sed -i -e '/cmake/d' -e '/ninja/d' libmambapy/pyproject.toml %generate_buildrequires export SETUPTOOLS_SCM_PRETEND_VERSION=%{version} cd libmambapy %pyproject_buildrequires %build export SETUPTOOLS_SCM_PRETEND_VERSION=%{version} %if %{with micromamba} %global _vpath_builddir %{_vendor}-%{_target_os}-build-micromamba export CMAKE_MODULE_PATH=%{_libdir}/cmake/yaml-cpp-static %cmake \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_MODULE_PATH=%{_libdir}/cmake/yaml-cpp-static \ -DBUILD_LIBMAMBA=ON \ -DBUILD_LIBMAMBAPY=OFF \ -DBUILD_MAMBA=OFF \ -DBUILD_MICROMAMBA=ON \ -DBUILD_EXE=ON \ -DBUILD_SHARED=OFF \ -DBUILD_STATIC=ON %cmake_build help2man %{_vpath_builddir}/micromamba/micromamba > %{_vpath_builddir}/micromamba/micromamba.1 %endif %global _vpath_builddir %{_vendor}-%{_target_os}-build %cmake \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DBUILD_LIBMAMBA=ON \ -DBUILD_LIBMAMBAPY=ON \ -DBUILD_MAMBA=OFF \ -DBUILD_MICROMAMBA=OFF \ -DBUILD_EXE=OFF \ -DBUILD_SHARED=ON \ -DBUILD_STATIC=OFF \ -DENABLE_TESTS=ON \ -DMAMBA_WARNING_AS_ERROR=OFF %cmake_build #cmake --install %{__cmake_builddir} --prefix install cd libmambapy export SKBUILD_CMAKE_VERBOSE=ON export CMAKE_BUILD_PARALLEL_LEVEL=%{_smp_build_ncpus} %{pyproject_wheel %{shrink: -C cmake.build-type=RelWithDebInfo -C cmake.define.libmamba_ROOT=$(pwd)/../%{_vpath_builddir}/libmamba }} cd - %cmake \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DBUILD_LIBMAMBA=ON \ -DBUILD_LIBMAMBAPY=ON \ -DBUILD_MAMBA=ON \ -DBUILD_MICROMAMBA=OFF \ -DBUILD_EXE=ON \ -DBUILD_SHARED=ON \ -DBUILD_STATIC=OFF \ -DENABLE_TESTS=ON \ -DMAMBA_WARNING_AS_ERROR=OFF %cmake_build help2man %{_vpath_builddir}/micromamba/mamba > %{_vpath_builddir}/micromamba/mamba.1 %install %global _vpath_builddir %{_vendor}-%{_target_os}-build %cmake_install cd libmambapy %pyproject_install %pyproject_save_files libmambapy cd - %if %{with micromamba} %global _vpath_builddir %{_vendor}-%{_target_os}-build-micromamba %cmake_install %else ln -s mamba %{buildroot}%{_bindir}/micromamba %endif # Install init scripts mkdir -p %{buildroot}/etc/profile.d for shell in csh sh do sed -e 's,\${\?MAMBA_EXE}\?,%{_bindir}/mamba,' < libmamba/data/mamba.$shell > %{buildroot}/etc/profile.d/mamba.$shell done mkdir -p %{buildroot}%{_datadir}/fish/vendor_conf.d sed -e 's,\${\?MAMBA_EXE}\?,%{_bindir}/mamba,' < libmamba/data/mamba.fish > %{buildroot}%{_datadir}/fish/vendor_conf.d/mamba.fish # man page mkdir -p %{buildroot}%{_mandir}/man1 cp -p %{_vpath_builddir}/micromamba/mamba.1 %{buildroot}%{_mandir}/man1/ %if %{with micromamba} # Install init scripts mkdir -p %{buildroot}/etc/profile.d for shell in csh sh do sed -e 's,\${\?MAMBA_EXE}\?,%{_bindir}/micromamba,' < libmamba/data/micromamba.$shell > %{buildroot}/etc/profile.d/micromamba.$shell done mkdir -p %{buildroot}%{_datadir}/fish/vendor_conf.d sed -e 's,\${\?MAMBA_EXE}\?,%{_bindir}/micromamba,' < libmamba/data/mamba.fish > %{buildroot}%{_datadir}/fish/vendor_conf.d/micromamba.fish # man page mkdir -p %{buildroot}%{_mandir}/man1 cp -p %{_vpath_builddir}/micromamba/micromamba.1 %{buildroot}%{_mandir}/man1/ %endif %check %ctest %files %license LICENSE %doc CHANGELOG.md README.md %{_libdir}/libmamba.so.4 %{_libdir}/libmamba.so.4.* %files devel %{_includedir}/mamba/ %{_libdir}/libmamba.so %{_libdir}/cmake/%{name}/ %files -n mamba # TODO - better ownership of vendor_conf.d %dir %{_datadir}/fish/vendor_conf.d %{_datadir}/fish/vendor_conf.d/mamba.fish /etc/profile.d/mamba.sh /etc/profile.d/mamba.csh %{_bindir}/mamba %if %{without micromamba} %{_bindir}/micromamba %endif %{_mandir}/man1/mamba.1* %if %{with micromamba} %files -n micromamba # TODO - better ownership of vendor_conf.d %dir %{_datadir}/fish/vendor_conf.d %{_datadir}/fish/vendor_conf.d/micromamba.fish /etc/profile.d/micromamba.sh /etc/profile.d/micromamba.csh %{_bindir}/micromamba %{_mandir}/man1/micromamba.1* %endif %files -n python3-libmambapy -f %{pyproject_files} %doc CHANGELOG.md README.md %changelog ## START: Generated by rpmautospec * Wed Aug 06 2025 Orion Poplawski - 2.3.1-4 - Fix arg passing, update soname * Wed Aug 06 2025 Orion Poplawski - 2.3.1-3 - More attempts * Tue Aug 05 2025 Orion Poplawski - 2.3.1-2 - debug * Tue Aug 05 2025 Orion Poplawski - 2.3.1-1 - Update to latest git and apply scikit-build-core patch * Wed Feb 05 2025 Orion Poplawski - 2.0.6-1 - Update to 2.0.6 * Fri Jan 17 2025 Fedora Release Engineering - 1.5.12-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild * Fri Jan 03 2025 Orion Poplawski - 1.5.12-1 - Update to 1.5.12 * Sat Nov 30 2024 Orion Poplawski - 1.5.11-1 - Update to 1.5.11 * Tue Nov 26 2024 František Zatloukal - 1.5.10-3 - Rebuilt for spdlog 1.15.0 * Thu Oct 24 2024 Orion Poplawski - 1.5.10-2 - Drop yaml-cpp patch * Fri Oct 18 2024 Orion Poplawski - 1.5.10-1 - Update to 1.5.10 * Fri Aug 02 2024 Orion Poplawski - 1.5.8-2 - Add patch for fmt 11 support (FTBFS bz#2300904) * Tue Jul 30 2024 Orion Poplawski - 1.5.8-1 - Update to 1.5.8 * Thu Jul 18 2024 Fedora Release Engineering - 1.5.6-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild * Fri Jun 07 2024 Python Maint - 1.5.6-3 - Rebuilt for Python 3.13 * Tue May 21 2024 František Zatloukal - 1.5.6-2 - Rebuilt for spdlog 1.14.1 * Fri Feb 23 2024 Orion Poplawski - 1.5.6-1 - Update to 1.5.6 * Thu Jan 25 2024 Fedora Release Engineering - 1.5.3-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild * Sun Jan 21 2024 Fedora Release Engineering - 1.5.3-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild * Mon Dec 04 2023 Orion Poplawski - 1.5.3-2 - Generate man page with help2man * Thu Nov 30 2023 Orion Poplawski - 1.5.3-1 - Initial package ## END: Generated by rpmautospec