Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:luc14n0
micromamba
micromamba.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File micromamba.spec of Package micromamba
# # spec file for package micromamba # # Copyright (c) 2023 SUSE LLC # Copyright (c) 2023 Luciano Santos <luc14n0@opensuse.org> # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # # TODO: # 1) Fix Python bindings build/installation; # Use Ninja instead of Make to speed up the build. %define __builder ninja %define soname_version 2 %define release_date 2023.09.05 %bcond_with clang # Docs fail to build with: # Extension error (pydata_sphinx_theme): # Handler <function update_and_remove_templates at 0x7fce14430d60> for event 'html-page-context' threw an exception (exception: 'generate_nav_html') %bcond_with docs %bcond_with pybindings Name: micromamba Version: 1.5.1 Release: 0 Summary: The Fast Cross-Platform Package Manager License: BSD-3-Clause URL: https://github.com/mamba-org/mamba Source0: %{url}/archive/refs/tags/%{release_date}.tar.gz#/mamba-%{version}.tar.gz # From https://conda.io/projects/conda/en/latest/configuration.html # If you have conda installed, to update mambarc use: # $ python3 -c 'import conda.cli.main_config; print(conda.cli.main_config.describe_all_parameters())' > mambarc Source1: micromambarc-reference Source2: README-USER.txt Source3: profile.sh #========================== # Build System Dependencies #========================== BuildRequires: cmake %if %{with clang} BuildRequires: clang BuildRequires: lld BuildRequires: llvm-gold %else BuildRequires: gcc-c++ %endif BuildRequires: ninja ########################### #======================================= # Libmamba Dependencies #======================================= BuildRequires: cmake(tl-expected) BuildRequires: pkgconfig(bzip2) BuildRequires: pkgconfig(CLI11) >= 2.2 BuildRequires: pkgconfig(fmt) BuildRequires: pkgconfig(libarchive) BuildRequires: pkgconfig(libcurl) BuildRequires: pkgconfig(libsolv) BuildRequires: pkgconfig(libsolvext) BuildRequires: pkgconfig(libzstd) BuildRequires: pkgconfig(nlohmann_json) BuildRequires: pkgconfig(openssl) BuildRequires: pkgconfig(reproc++) BuildRequires: pkgconfig(spdlog) BuildRequires: pkgconfig(yaml-cpp) ######################################## #====================================================== # Python Bindings Dependencies #====================================================== %if %{with pybindings} BuildRequires: %{python_module python3-pybind11-devel} %{python_subpackages} %endif ####################################################### #====================================================== # Documentation Dependencies #====================================================== %if %{with docs} BuildRequires: python3-Sphinx BuildRequires: python3-six BuildRequires: python3-myst-parser BuildRequires: python3-sphinx-book-theme %endif ####################################################### #================================= # Additional dependencies #================================= BuildRequires: systemd-rpm-macros ################################## %description Mamba is a reimplementation of the Conda package manager in C++. Among of its features, we have: * 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 openSUSE, Red Hat and Fedora; * Core parts of Mamba are implemented in C++ for maximum efficiency. This package includes the micromamba binary, the pillar stone of conda packages installation without pre requirements from any Anaconda channels. It comes with CONDA-FORGE pre-configured as the default, and only, channel. To ge started, please read: %{_docdir}/%{name}/README.user For general documentation, please visit: https://mamba.readthedocs.io and https://conda.io %package -n libmamba%{soname_version} Summary: Mamba's shared library %description -n libmamba%{soname_version} The libmamba shared library. %package devel Summary: Mamba development files Requires: libmamba%{soname_version} = %{version} %description devel Header files and CMake modules for development with Mamba. %package -n python-mamba-bindings Summary: Libmamba Python bindings BuildArch: noarch %description -n python-mamba-bindings Python bindings for libmamba. %prep %autosetup -p1 -n mamba-%{release_date} #========================================================================== # Place our README.user and reference RC in the source tree, so they can be # %%doc'ed #========================================================================== install -m 0644 %{SOURCE1} ./MAMBARC install -m 0644 %{SOURCE2} ./README-USER.txt # # TODO: libmambaConfigVersion.cmake is ending up with empty version. Send patch # upstream. # sed -i '/VERSION ${MAMBA_VERSION_MAJOR}.${MAMBA_VERSION_MINOR}.${MAMBA_VERSION_PATCH}/{ s/MAMBA/LIBMAMBA/g }' libmamba/CMakeLists.txt %build %if %{with clang} %global build_ldflags %{?build_ldflags} -fuse-ld=lld %endif %cmake \ -D BUILD_STATIC=OFF \ -D BUILD_SHARED=ON \ -D BUILD_LIBMAMBA=ON \ -D BUILD_LIBMAMBAPY=%{?with_pybindings:ON}%{!?with_pybindings:OFF} \ -D BUILD_LIBMAMBA_TESTS=OFF \ -D BUILD_MICROMAMBA=ON \ -D BUILD_MAMBA_PACKAGE=OFF \ -D MAMBA_WARNING_AS_ERROR=OFF \ -D BUILD_TESTS=OFF \ ; %cmake_build # Build documentation, if wanted %if %{with docs} pushd %{_builddir}/%{buildsubdir}/docs make html %{?_smp_mflags} %endif %install %cmake_install #======================= # Write down our mambarc #======================= cat > mambarc << END channels: - conda-forge - nodefaults channel_priority: strict always_yes: False show_channel_urls: True notify_outdated_conda: False auto_update_conda: False END install -m 0644 -D mambarc %{buildroot}%{_localstatedir}/lib/conda/.mambarc #=================== # Shell profile init #=================== install -m 0644 -D %{SOURCE3} \ %{buildroot}%{_distconfdir}/profile.d/micromamba.sh # There are init scripts for Fish and Xonsh, and even (T)Csh as well ## libmamba/data/mamba.fish ## libmamba/data/mamba.xsh ## libmamba/data/micromamba.csh # Now we append the content of micromamba.sh and mamba_completion.posix - both # from libmamba/data - to our shell profile snippet (this is to avoid the need # to use `micromamba shell hook ...` or `micromamba shell init ...`): cat /dev/null libmamba/data/micromamba.sh \ /dev/null libmamba/data/mamba_completion.posix \ >> %{buildroot}%{_distconfdir}/profile.d/micromamba.sh diff %{SOURCE3} %{buildroot}%{_distconfdir}/profile.d/micromamba.sh \ > /dev/null || echo "Profile init script is ready." ############ # Pre / Post ############ %ldconfig_scriptlets -n libmamba%{soname_version} %files %license LICENSE %doc CHANGELOG.md MAMBARC README.md README-USER.txt SECURITY.md %if %{with docs} %doc build/*.html %endif %{_bindir}/micromamba %{_distconfdir}/profile.d/micromamba.sh %dir %{_localstatedir}/lib/conda %{_localstatedir}/lib/conda/.mambarc %files -n libmamba%{soname_version} %license LICENSE %{_libdir}/libmamba.so.%{soname_version} %{_libdir}/libmamba.so.%{soname_version}.?.? %files devel %license LICENSE %doc CONTRIBUTING.md %dir %{_libdir}/cmake/ %dir %{_libdir}/cmake/libmamba/ %{_libdir}/cmake/libmamba/*.cmake %{_libdir}/libmamba.so %{_includedir}/mamba/ %if %{with pybindings} # Hmm, something is broken, right? %files -n python-mamba-bindings %{python_files} /home/abuild/rpmbuild/BUILD/mamba-2023.05.16/libmambapy/libmambapy/bindings.cpython-311-x86_64-linux-gnu.so %endif %changelog
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor