public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/moose] rawhide: feat: update to 4.1.2
@ 2026-08-07 10:26 Ankur Sinha
  0 siblings, 0 replies; only message in thread
From: Ankur Sinha @ 2026-08-07 10:26 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/moose
Branch : rawhide
Commit : fd903909a1cb4c9a69b7d3872df433f41087e112
Author : Ankur Sinha (Ankur Sinha Gmail) <sanjay.ankur@gmail.com>
Date   : 2026-08-05T15:28:06+01:00
Stats  : +256/-243 in 11 file(s)
URL    : https://src.fedoraproject.org/rpms/moose/c/fd903909a1cb4c9a69b7d3872df433f41087e112?branch=rawhide

Log:
feat: update to 4.1.2

---
diff --git a/.gitignore b/.gitignore
index 68ab750..18148a3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,3 +7,4 @@
 /moose-3.1.3.tar.gz
 /moose-core-3.1.4.tar.gz
 /moose-core-3.1.5.tar.gz
+/moose-core-4.3.1.tar.gz

diff --git a/0001-Replace-python-with-python3.patch b/0001-Replace-python-with-python3.patch
new file mode 100644
index 0000000..cc8b460
--- /dev/null
+++ b/0001-Replace-python-with-python3.patch
@@ -0,0 +1,39 @@
+From 3af51844e5d3005ab6aa64d5701b5fac50fa6e4e Mon Sep 17 00:00:00 2001
+From: "Ankur Sinha (Ankur Sinha Gmail)" <sanjay.ankur@gmail.com>
+Date: Wed, 5 Aug 2026 12:52:21 +0100
+Subject: [PATCH 1/4] Replace python with python3
+
+---
+ meson.build          | 2 +-
+ pybind11/meson.build | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 8631f722c..be86c3524 100644
+--- a/meson.build
++++ b/meson.build
+@@ -115,7 +115,7 @@ if host_machine.system() == 'darwin'
+ endif
+ 
+ # Link against conda env GSL
+-conda_res = run_command('python', '-c', 'import os; print(os.environ["CONDA_PREFIX"])', check: false)
++conda_res = run_command('python3', '-c', 'import os; print(os.environ["CONDA_PREFIX"])', check: false)
+ if conda_res.returncode() == 0
+   conda_lib_path = conda_res.stdout().strip() / 'Library/lib'
+ else
+diff --git a/pybind11/meson.build b/pybind11/meson.build
+index 2b8a95062..fc461eaf8 100644
+--- a/pybind11/meson.build
++++ b/pybind11/meson.build
+@@ -7,7 +7,7 @@ pybind11_src = ['Finfo.cpp',
+                 # 'pymoose.cpp',  # this is used in top level meson build file, skip here
+                 'PyRun.cpp']
+ 
+-python_res = run_command('python', '-c', 'from sysconfig import get_paths as gp; print(gp()["include"])', check: false)
++python_res = run_command('python3', '-c', 'from sysconfig import get_paths as gp; print(gp()["include"])', check: false)
+ if python_res.returncode() == 0
+   inc_dirs = python_res.stdout().strip()
+ else
+-- 
+2.55.0
+

diff --git a/0001-Use-.so-suffix-for-all-arches.patch b/0001-Use-.so-suffix-for-all-arches.patch
deleted file mode 100644
index ebaa985..0000000
--- a/0001-Use-.so-suffix-for-all-arches.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From bf5527190a3309176282a49f2fc302bfa551866a Mon Sep 17 00:00:00 2001
-From: "Ankur Sinha (Ankur Sinha Gmail)" <sanjay.ankur@gmail.com>
-Date: Thu, 27 Aug 2020 10:43:54 +0100
-Subject: [PATCH] Use .so suffix for all arches
-
----
- python/setup.cmake.py | 9 ---------
- 1 file changed, 9 deletions(-)
-
-diff --git a/python/setup.cmake.py b/python/setup.cmake.py
-index 17665e2cf..39637491c 100644
---- a/python/setup.cmake.py
-+++ b/python/setup.cmake.py
-@@ -30,16 +30,7 @@ with open(os.path.join(script_dir, 'VERSION'), 'r') as f:
-     version = f.read()
- print('Got %s from VERSION file' % version)
- 
--# importlib is available only for python3. Since we build wheels, prefer .so
--# extension. This way a wheel built by any python3.x will work with any python3.
- suffix = '.so'
--try:
--    import importlib.machinery
--    suffix = importlib.machinery.EXTENSION_SUFFIXES[-1]
--except Exception as e:
--    print('[WARN] Failed to determine importlib suffix')
--    suffix = '.so'
--assert (suffix)
- print('[INFO] Suffix for python SO: %s' % suffix)
- 
- setup(
--- 
-2.26.2
-

diff --git a/0002-Use-system-nanobind.patch b/0002-Use-system-nanobind.patch
new file mode 100644
index 0000000..9d4fc27
--- /dev/null
+++ b/0002-Use-system-nanobind.patch
@@ -0,0 +1,66 @@
+From b80221b69c325f22431cc7ca6d3114c02bdddeca Mon Sep 17 00:00:00 2001
+From: "Ankur Sinha (Ankur Sinha Gmail)" <sanjay.ankur@gmail.com>
+Date: Wed, 5 Aug 2026 12:54:09 +0100
+Subject: [PATCH 2/4] Use system nanobind
+
+---
+ meson.build         |  2 --
+ pymoose/meson.build | 31 +++++++++++++++++++++++--------
+ 2 files changed, 23 insertions(+), 10 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index be86c3524..381052214 100644
+--- a/meson.build
++++ b/meson.build
+@@ -216,8 +216,6 @@ gsl_dep = dependency('gsl', version: '>=1.16')
+ # libsoda_dep = declare_dependency(include_directories: 'external/libsoda',
+ #                                  link_with: libsoda)
+ 
+-nanobind_dep = dependency('nanobind')
+-
+ subdir(join_paths('external', 'libsoda'))
+ subdir(join_paths('external', 'fmt'))
+ if is_msvc
+diff --git a/pymoose/meson.build b/pymoose/meson.build
+index cd2b9fe93..dcc169de5 100644
+--- a/pymoose/meson.build
++++ b/pymoose/meson.build
+@@ -9,12 +9,27 @@ pymoose_src = [
+   'pymoose.cpp',
+ ]
+ 
+-python_res = run_command('python', '-c', 'from sysconfig import get_paths as gp; print(gp()["include"])', check: false)
+-if python_res.returncode() == 0
+-  inc_dirs = python_res.stdout().strip()
+-else
+-  message('ERROR: could not find Python include directory')
+-  inc_dirs = []
+-endif
++python_inc = py.get_path('include')
+ 
+-pymoose_lib = static_library('pymoose', pymoose_src, dependencies: nanobind_dep, include_directories: inc_dirs)
++nanobind_dir = py.get_path('purelib') / 'nanobind'
++nanobind_src = [
++  nanobind_dir / 'src' / 'nb_internals.cpp',
++  nanobind_dir / 'src' / 'nb_func.cpp',
++  nanobind_dir / 'src' / 'nb_type.cpp',
++  nanobind_dir / 'src' / 'nb_enum.cpp',
++  nanobind_dir / 'src' / 'nb_ndarray.cpp',
++  nanobind_dir / 'src' / 'nb_static_property.cpp',
++  nanobind_dir / 'src' / 'common.cpp',
++  nanobind_dir / 'src' / 'error.cpp',
++  nanobind_dir / 'src' / 'trampoline.cpp',
++  nanobind_dir / 'src' / 'implicit.cpp',
++]
++
++inc_dirs = [
++  python_inc,
++  nanobind_dir / 'include',
++]
++
++pymoose_lib = static_library('pymoose', pymoose_src + nanobind_src,
++  include_directories: inc_dirs,
++  cpp_args: '-fno-strict-aliasing')
+-- 
+2.55.0
+

diff --git a/0003-Make-neuroml-optional-dependency.patch b/0003-Make-neuroml-optional-dependency.patch
new file mode 100644
index 0000000..6e05c74
--- /dev/null
+++ b/0003-Make-neuroml-optional-dependency.patch
@@ -0,0 +1,81 @@
+From f526b202010483ee5e0ca0ca5deef205bcab1e26 Mon Sep 17 00:00:00 2001
+From: "Ankur Sinha (Ankur Sinha Gmail)" <sanjay.ankur@gmail.com>
+Date: Wed, 5 Aug 2026 13:36:35 +0100
+Subject: [PATCH 3/4] Make neuroml optional dependency
+
+It's not available in Fedora, and is an optional dependency required
+only when importing/exporting NeuroML files. Users can install these in
+a virtual env if they need then.
+---
+ python/moose/model_utils.py     |  3 +--
+ python/moose/neuroml2/reader.py | 19 +++++++++++++------
+ 2 files changed, 14 insertions(+), 8 deletions(-)
+
+diff --git a/python/moose/model_utils.py b/python/moose/model_utils.py
+index 350c76424..cfebade4f 100644
+--- a/python/moose/model_utils.py
++++ b/python/moose/model_utils.py
+@@ -5,7 +5,6 @@
+ 
+ import os
+ import moose._moose as _moose
+-from moose import neuroml2
+ 
+ import logging
+ 
+@@ -192,7 +191,7 @@ def mooseReadNML2(filepath, modelpath, verbose=False):
+     if not nml2Import_:
+         raise RuntimeError("Could not load NML2 support:\n %s" % nml2ImportError_)
+ 
+-    reader = neuroml2.NML2Reader(verbose=verbose)
++    reader = _neuroml2.NML2Reader(verbose=verbose)
+     reader.read(filepath, modelpath)
+     return reader
+ 
+diff --git a/python/moose/neuroml2/reader.py b/python/moose/neuroml2/reader.py
+index 6790a5fd2..386ceaa0c 100644
+--- a/python/moose/neuroml2/reader.py
++++ b/python/moose/neuroml2/reader.py
+@@ -16,6 +16,7 @@ import os
+ import re
+ import math
+ import logging
++import warnings
+ import numpy as np
+ from collections import defaultdict
+ import pint
+@@ -37,12 +38,14 @@ nml_not_available_msg = ""
+ try:
+     import neuroml as nml
+     import pyneuroml.pynml as pynml
+-except ImportError as error:
+-    raise ImportError(
+-        "Could not import neuroml/pyneuroml. "
+-        "Please make sure you have pyneuroml installed "
+-        "(`pip install pyneuroml`)"
+-    ) from error
++except ImportError:
++    nml = None
++    pynml = None
++    warnings.warn(
++        "pyneuroml is not installed; NeuroML2 reading support will be "
++        "unavailable. Install python3-pyneuroml to enable it.",
++        UserWarning,
++    )
+ 
+ 
+ PREDEFINED_RATEFN_MAP = {
+@@ -509,6 +512,10 @@ class NML2Reader(object):
+ 
+ 
+         """
++        if nml is None:
++            raise ImportError(
++                "pyneuroml is not installed; NeuroML2 reading is unavailable."
++            )
+         self._vmin = vmin
+         self._vmax = vmax
+         self._vdivs = vdivs
+-- 
+2.55.0
+

diff --git a/0004-Remove-pybind11-check-in-test.patch b/0004-Remove-pybind11-check-in-test.patch
new file mode 100644
index 0000000..a551d41
--- /dev/null
+++ b/0004-Remove-pybind11-check-in-test.patch
@@ -0,0 +1,30 @@
+From 03148ad7b50af510177d1555dd89299a03f2b645 Mon Sep 17 00:00:00 2001
+From: "Ankur Sinha (Ankur Sinha Gmail)" <sanjay.ankur@gmail.com>
+Date: Wed, 5 Aug 2026 14:14:32 +0100
+Subject: [PATCH 4/4] Remove pybind11 check in test
+
+Looks like a stale guard given that upstream has switched to nanobind.
+---
+ tests/core/test_api.py | 6 ------
+ 1 file changed, 6 deletions(-)
+
+diff --git a/tests/core/test_api.py b/tests/core/test_api.py
+index e5c88a879..3fd1e14de 100644
+--- a/tests/core/test_api.py
++++ b/tests/core/test_api.py
+@@ -5,12 +5,6 @@ __email__ = "dilawars@ncbs.res.in"
+ 
+ 
+ import moose
+-
+-
+-if moose._moose.__generated_by__ != "pybind11":
+-    print("These bindings are not generated by pybind11.")
+-    quit(0)
+-
+ import random
+ import numpy as np
+ 
+-- 
+2.55.0
+

diff --git a/665c532745987fb1c7a8fc2a9a57bffa330480b4.patch b/665c532745987fb1c7a8fc2a9a57bffa330480b4.patch
deleted file mode 100644
index 660b90f..0000000
--- a/665c532745987fb1c7a8fc2a9a57bffa330480b4.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 665c532745987fb1c7a8fc2a9a57bffa330480b4 Mon Sep 17 00:00:00 2001
-From: Dilawar <dilawars@ncbs.res.in>
-Date: Sat, 29 Aug 2020 06:44:37 +0000
-Subject: [PATCH] A better fix to #419
-
-dict `locals_` is not Py_XINCREF anywhere that is why Py_XDECREF caused segfault.
-While `globals_` does not have this issue. In the previous fix https://github.com/BhallaLab/moose-core/pull/420/commits/c570f7c057f9c0ca7360c82a8932bcb0df222da9,
-I removed the `Py_XINCREF(globals_)` line as well which would cause memory leak.
----
- pymoose/PyRun.cpp | 5 +----
- 1 file changed, 1 insertion(+), 4 deletions(-)
-
-diff --git a/pymoose/PyRun.cpp b/pymoose/PyRun.cpp
-index 765226c453..d7d6a7974a 100644
---- a/pymoose/PyRun.cpp
-+++ b/pymoose/PyRun.cpp
-@@ -188,6 +188,7 @@ PyRun::PyRun():mode_(0), initstr_(""), runstr_(""),
-         cerr << "Could not initialize locals dict" << endl;
-         return;
-     }
-+
-     PyObject * value = PyFloat_FromDouble(0.0);
-     if (!value && PyErr_Occurred()){
-         PyErr_Print();
-@@ -200,11 +201,7 @@ PyRun::PyRun():mode_(0), initstr_(""), runstr_(""),
- 
- PyRun::~PyRun()
- {
--#if 0
--    // Fixes to BhallaLab/moose-core#420
-     Py_XDECREF(globals_);
--    Py_XDECREF(locals_);
--#endif
- }
- 
- void PyRun::setRunString(string statement)

diff --git a/c570f7c057f9c0ca7360c82a8932bcb0df222da9.patch b/c570f7c057f9c0ca7360c82a8932bcb0df222da9.patch
deleted file mode 100644
index bb5bf38..0000000
--- a/c570f7c057f9c0ca7360c82a8932bcb0df222da9.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From c570f7c057f9c0ca7360c82a8932bcb0df222da9 Mon Sep 17 00:00:00 2001
-From: Dilawar Singh <dilawars@ncbs.res.in>
-Date: Wed, 26 Aug 2020 22:14:38 +0000
-Subject: [PATCH] Fixes to BhallaLab/moose-core#419
-
----
- pymoose/PyRun.cpp | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/pymoose/PyRun.cpp b/pymoose/PyRun.cpp
-index 73d88c0cf8..765226c453 100644
---- a/pymoose/PyRun.cpp
-+++ b/pymoose/PyRun.cpp
-@@ -200,8 +200,11 @@ PyRun::PyRun():mode_(0), initstr_(""), runstr_(""),
- 
- PyRun::~PyRun()
- {
-+#if 0
-+    // Fixes to BhallaLab/moose-core#420
-     Py_XDECREF(globals_);
-     Py_XDECREF(locals_);
-+#endif
- }
- 
- void PyRun::setRunString(string statement)

diff --git a/moose-python3.10.patch b/moose-python3.10.patch
deleted file mode 100644
index fb147bd..0000000
--- a/moose-python3.10.patch
+++ /dev/null
@@ -1,57 +0,0 @@
---- moose-core-3.1.5/python/moose/utils.py.orig	2021-08-16 19:05:38.269473061 -0600
-+++ moose-core-3.1.5/python/moose/utils.py	2021-08-16 19:08:56.592968592 -0600
-@@ -14,9 +14,7 @@
- __license__          = "GPLv3"
- 
- import types
--import parser
- import token
--import symbol
- import os
- import math
- import warnings
-@@ -205,44 +204,6 @@
-             raise TypeError('Second argument must be a string specifying a field to assign to when third argument is a value')
- 
- 
--def tweak_field(moose_wildcard, field, assignment_string):
--    """Tweak a specified field of all objects that match the
--    moose_wildcard using assignment string. All identifiers in
--    assignment string must be fields of the target object.
--
--    Example:
--
--    tweak_field('/mycell/##[Class=Compartment]', 'Rm', '1.5 / (3.1416 * diameter * length')
--
--    will assign Rm to every compartment in mycell such that the
--    specific membrane resistance is 1.5 Ohm-m2.
--    """
--    if not isinstance(moose_wildcard, str):
--        raise TypeError('moose_wildcard must be a string.')
--    id_list = moose.getWildcardList(moose_wildcard, True)
--    expression = parser.expr(assignment_string)
--    expr_list = expression.tolist()
--    # This is a hack: I just tried out some possible syntax trees and
--    # hand coded the replacement such that any identifier is replaced
--    # by moose_obj.identifier
--    def replace_fields_with_value(x):
--        if len(x)>1:
--            if x[0] == symbol.power and x[1][0] == symbol.atom and x[1][1][0] == token.NAME:
--                field = x[1][1][1]
--                x[1] = [symbol.atom, [token.NAME, 'moose_obj']]
--                x.append([symbol.trailer, [token.DOT, '.'], [token.NAME, field]])
--            for item in x:
--                if isinstance(item, list):
--                    replace_fields_with_value(item)
--        return x
--    tmp = replace_fields_with_value(expr_list)
--    new_expr = parser.sequence2st(tmp)
--    code = new_expr.compile()
--    for moose_id in id_list:
--        moose_obj = eval('moose.%s(moose_id)' % (moose.Neutral(moose_id).className))
--        value = eval(code)
--        moose.setField(moose_id, field, str(value))
--
- # 2012-01-11 19:20:39 (+0530) Subha: checked for compatibility with dh_branch
- def printtree(root, vchar='|', hchar='__', vcount=1, depth=0, prefix='', is_last=False):
-     """Pretty-print a MOOSE tree.

diff --git a/moose.spec b/moose.spec
index ca2d147..ea9fc35 100644
--- a/moose.spec
+++ b/moose.spec
@@ -1,33 +1,23 @@
-# for F < 33
-# If it isn't defined, undefine doesn't do anything, so no conditional required
-%undefine __cmake_in_source_build
-
 #global commit 0e12e41b52deb8ea746bc760cddd6e100ca5cfd8
 #global shortcommit %%(c=%{commit}; echo ${c:0:7})
 
 Name:           moose
-Version:        3.1.5
-%global codename chamcham
-Release:        38%{?dist}%{?prerelease:.%{prerelease}}%{?commit:.git%{shortcommit}}
+Version:        4.3.1
+Release:        1%{?dist}%{?prerelease:.%{prerelease}}%{?commit:.git%{shortcommit}}
 Summary:        Multiscale Neuroscience and Systems Biology Simulator
 # Automatically converted from old format: GPLv3 - review is highly recommended.
 License:        GPL-3.0-only
-URL:            http://moose.ncbs.res.in/
+URL:            https://mooseneuro.github.io/
 %if %{defined commit}
-Source0:        https://github.com/BhallaLab/moose-core/archive/%{commit}.tar.gz#/moose-core-%{shortcommit}.tar.gz
+Source0:        https://github.com/MooseNeuro/moose-core/archive/%{commit}.tar.gz#/moose-core-%{shortcommit}.tar.gz
 %else
-Source0:        https://github.com/BhallaLab/moose-core/archive/v%{version}.tar.gz#/moose-core-%{version}.tar.gz
+Source0:        https://github.com/MooseNeuro/moose-core/archive/v%{version}.tar.gz#/moose-core-%{version}.tar.gz
 %endif
 
-# Fix segfault on py3.9
-# https://github.com/BhallaLab/moose-core/pull/420
-Patch0:         c570f7c057f9c0ca7360c82a8932bcb0df222da9.patch
-Patch1:         665c532745987fb1c7a8fc2a9a57bffa330480b4.patch
-# ppc defines a different suffix which breaks the build
-Patch2:         0001-Use-.so-suffix-for-all-arches.patch
-# Python 3.10 support
-# https://github.com/BhallaLab/moose-core/issues/437
-Patch3:         moose-python3.10.patch
+Patch:          0001-Replace-python-with-python3.patch
+Patch:          0002-Use-system-nanobind.patch
+Patch:          0003-Make-neuroml-optional-dependency.patch
+Patch:          0004-Remove-pybind11-check-in-test.patch
 
 # https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
 ExcludeArch:    %{ix86}
@@ -36,27 +26,19 @@ ExcludeArch: s390x
 
 BuildRequires:  gcc-c++
 BuildRequires:  git-core
-BuildRequires:  make
-BuildRequires:  cmake
-BuildRequires:  rsync
-BuildRequires:  tar
-BuildRequires:  readline-devel
-BuildRequires:  ncurses-devel
-BuildRequires:  zlib-devel
 BuildRequires:  gsl-devel
 BuildRequires:  hdf5-devel
-BuildRequires:  tinyxml-devel
-BuildRequires:  muParser-devel
-BuildRequires:  libsbml-devel
-# for tests
-BuildRequires:  checksec
-BuildRequires:  procps-ng
-BuildRequires:  openssl
-
+BuildRequires:  meson
+BuildRequires:  ninja-build
+BuildRequires:  pkgconf-pkg-config
 BuildRequires:  python3-devel
-BuildRequires:  python3-setuptools
-BuildRequires:  python3-numpy
 BuildRequires:  python3-libsbml
+BuildRequires:  robin-map-devel
+BuildRequires:  %{py3_dist nanobind}
+BuildRequires:  %{py3_dist numpy}
+BuildRequires:  %{py3_dist pint}
+BuildRequires:  %{py3_dist scipy}
+BuildRequires:  %{py3_dist setuptools}
 
 %description
 MOOSE is the base and numerical core for large, detailed simulations
@@ -73,90 +55,55 @@ deprecated. MOOSE numerical code is written in C++.
 %package -n python3-%{name}
 Summary:  %{summary}
 
-Requires: python3-numpy
-Requires: python3-matplotlib
+Requires: python3-libsbml
 Requires: python3-matplotlib-qt5
-Requires: python3-lxml
+Requires: %{py3_dist lxml}
+Requires: %{py3_dist matplotlib}
+Requires: %{py3_dist numpy}
+Requires: %{py3_dist pint}
 
 %description -n python3-%{name}
 This package contains the %{summary}.
 
 %prep
 %autosetup -n moose-core-%{version} -S git
+rm -f python/rdesigneur/.gitignore
+sed -i '/^#!/d' python/moose/channels/build_icg_meta.py python/moose/channels/update_citations_icg.py
 
-# Remove O3 flag set in CMakeLists
-sed -i 's/-O3//' CMakeLists.txt
-
-%global py_setup setup.cmake.py
+%conf
+%meson -Duse_hdf5=true
 
 %build
-# TODO: Please submit an issue to upstream (rhbz#2380789)
-export CMAKE_POLICY_VERSION_MINIMUM=3.5
 # On armv7 we get a failure with LTO.
 # Disable LTO for armv7
 %ifarch armv7hl
 %define _lto_cflags %{nil}
 %endif
 
-cmake_opts=(
-        -DBUILD_SHARED_LIBS:BOOL=OFF
-        -DCMAKE_SKIP_RPATH:BOOL=ON
-        -DCMAKE_C_FLAGS="%optflags"
-        -DCMAKE_CXX_FLAGS="%optflags"
-        -DCMAKE_EXE_LINKER_FLAGS="$LDFLAGS -Wl,--build-id"
-        -DCMAKE_MODULE_LINKER_FLAGS="$LDFLAGS -Wl,--build-id"
-        -DVERSION_MOOSE=%{version}
-        -DCMAKE_BUILD_TYPE="Release|RelWithDebugInfo"
-        -DCMAKE_INSTALL_DO_STRIP=0
-        -DPYTHON_EXECUTABLE=%{__python3}
-)
-
-CXXFLAGS="%optflags -DH5_USE_110_API" \
-%cmake "${cmake_opts[@]}"
-%cmake_build
-
-pushd %{__cmake_builddir}/python
-%py3_build
-popd
+%meson_build
 
 %install
-install -vD %{__cmake_builddir}/moose.bin %{buildroot}%{_bindir}/moose
-install -vDt %{buildroot}%{_libdir}/ %{__cmake_builddir}/libmoose.so
-
-pushd %{__cmake_builddir}/python
-%py3_install \--install-lib=%{python3_sitearch}
-# this is necessary for the dependency generator to work
-chmod +x %{buildroot}%{python3_sitearch}/moose/_moose*.so
-popd
+%meson_install
 
 %check
-checksec --file=%{buildroot}%{_bindir}/moose
-
-pushd %{__cmake_builddir}
-# test_streamer fails randomly when quitting moose every once in a while.
-ctest --output-on-failure -V -E 'test_streamer'
-# ctest --output-on-failure -V -E 'test_streamer|test_pyrun'
-popd
-
-PYTHONPATH=%{buildroot}%{python3_sitearch} %{__python3} -c \
-    'import moose; element = moose.Neutral("/yyy"); print(element.path)'
-
+PYTHONPATH=%{buildroot}%{python3_sitearch} %{__python3} -c "import moose; moose.le()"
 %global _docdir_fmt %{name}
 
-%files
-%{_bindir}/moose
-%{_libdir}/libmoose.so
-%license LICENSE
-%doc README.md
-
 %files -n python3-%{name}
 %{python3_sitearch}/moose
 %{python3_sitearch}/rdesigneur
-%{python3_sitearch}/pymoose-%{version}-py%{python3_version}.egg-info
 %license LICENSE
 %doc README.md
 
 %changelog
+* Wed Aug 05 2026 Ankur Sinha <ankursinha AT fedoraproject DOT org> - 4.3.1-1
+- Update to 4.3.1
+- Port build system from CMake to Meson
+- Build against system nanobind instead of the bundled subproject
+- Make NeuroML2 (pyneuroml) support optional
+- The moose binary and libmoose shared library are no longer built upstream;
+  MOOSE is now a Python-only package
+
 * Thu Jul 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 3.1.5-38
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
 

diff --git a/sources b/sources
index d55b231..974ea2c 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (moose-core-3.1.5.tar.gz) = 49036145438a81839b52b4342265faaa9bae187ac5770c5db40d63af7fe8c3abb79eb152527d2474d8636da05476d1ad620f49a23a656798c171e989a50537f2
+SHA512 (moose-core-4.3.1.tar.gz) = 521259e05746ac132b1d495e39b2183fddd09c8cb3402aefbbd0dea06a2d1a4c16e32863b956eeab4cb3293c7962784b115dfe0a846342c49ea2723abba8010e

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-08-07 10:26 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-07 10:26 [rpms/moose] rawhide: feat: update to 4.1.2 Ankur Sinha

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox