-
Notifications
You must be signed in to change notification settings - Fork 132
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WIP: Patches for clean Fedora RPM builds that pass unit tests #123
base: master
Are you sure you want to change the base?
Commits on May 15, 2022
-
Don't fail silently in VersionInfo(), print useful message
Having version.hpp throw an exception when built against a malformed version number (due to, eg, not having the git tag available in an automated package build from source bundle) results in _init_ failing during an otherwise apparently successful dlopen(), as well as the netgen-mesher executable crashing before hitting main(). This patch both forces an abort and prints a helpful message alerting the builder/user that something went wrong instead of handing over either a coredump or a weirdly malfunctioning library with no apparent cause. Hopefully this will avoid a repeat of automated Fedora builds shipping nonfunctional Netgen RPMs for several years!
Configuration menu - View commit details
-
Copy full SHA for e9eae56 - Browse repository at this point
Copy the full SHA e9eae56View commit details -
CMake enhancements for automated external package building
Add explicit defaults where missing for clarity. Support passing in NETGEN_GIT_VERSION for use when building, eg, RPM packages using rpkg, which requires building from an untagged source bundle, that is, not directly from a git checkout. Add option to choose build against internal or external Pybind11; add cmake module to find and configure against system Pybind. re-add versioning of shared library files. Add section for GCC-specific options setting (right now, to turn off harmless warnings). Warn if pybind11_stubgen is not found. Adjust stubgen paths to work when build is not in-place in the source tree.
Configuration menu - View commit details
-
Copy full SHA for b82796e - Browse repository at this point
Copy the full SHA b82796eView commit details -
Alter name use of 'netgen' and 'netgen-mesher'
The name of the 'netgen' executable collides with an older UNIX pcb trace routing application also named 'netgen'. Fedora, for this reason, renames this mesher package to 'netgen-mesher' and the executable, likewise, to 'netgen-mesher'. I propose the same change here. Ironically though, the current python module is already named 'netgen-mesher', which complicates loading of the module as 'netgen', often resulting in it being unfindable. For this reason, I similarly reverse the usage, renaming the python module from 'netgen-mesher' to 'netgen'.
Configuration menu - View commit details
-
Copy full SHA for 5d0e69c - Browse repository at this point
Copy the full SHA 5d0e69cView commit details -
Adjust python module path in __init__, add checks to pytest
Adjust path setup of the python modules in __init__ such that it's possible to run pytests from a mock root during package build/test. Also add checks to pytest/CMakelists.txt to make sure pytest abd check are present instead of failing with an inscrutible traceback if they're not installed or usable.
Configuration menu - View commit details
-
Copy full SHA for 97d3c1c - Browse repository at this point
Copy the full SHA 97d3c1cView commit details -
Hardened toolchains (eg, mainline Fedora) no longer tolerate null derefs that were silently trapped/ignored in earlier versions. This eliminates a nullptr deref in archive.hpp that was failing several unit tests (and causing crashes) when trying to manipulate default-constructed archive objects.
Configuration menu - View commit details
-
Copy full SHA for 5ee4e43 - Browse repository at this point
Copy the full SHA 5ee4e43View commit details -
Correct deletion of non-allocated memory in ngarray
A default-constructed (or just empty) ngarray will have 'ownmem' set despite not having an allocated data array. Destructor would then trigger an abort.
Configuration menu - View commit details
-
Copy full SHA for 6ba4a6e - Browse repository at this point
Copy the full SHA 6ba4a6eView commit details -
Two nullptr deref fixes in table
Don't delete memory that wasn't allocated. Similarly, we can't deref the first element of an array that was never allocated.
Configuration menu - View commit details
-
Copy full SHA for ae87c70 - Browse repository at this point
Copy the full SHA ae87c70View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6f5eae8 - Browse repository at this point
Copy the full SHA 6f5eae8View commit details -
Export additional classes to provide typeinfo visibility
Add DLL_HEADER to Surface, Primitive, and STLTopology in order to make typeinfo available to link stage (otherwise, link fails with GNU ld).
Configuration menu - View commit details
-
Copy full SHA for 2da94c3 - Browse repository at this point
Copy the full SHA 2da94c3View commit details -
Numerous changes to python bindings for clean stub generation
I'm uncertain about earlier/alternate versions, but the current version of mainline pybind11_stubgen requires a number of changes in the python binding cpp files to succeed: __repr__ implementation added for some basic types Added default descriptions via py::arg_v variant syntax for those cases where a __repr__ implementation made no sense (eg, for a default sonstructor of a complex type) Moved class declarations to precede first use in arguments/returns Added trailing default arguments, so that mandatory args did not follow optional args (without resorting to kwargs trickery).
Configuration menu - View commit details
-
Copy full SHA for 6159d89 - Browse repository at this point
Copy the full SHA 6159d89View commit details -
Add a fedora package spec and setup
Build all Netgen RPMs from cli via: rpkg local --spec package/fedora/netgen-mesher-bleed.spec from the toplevel source directory
Configuration menu - View commit details
-
Copy full SHA for da386ea - Browse repository at this point
Copy the full SHA da386eaView commit details