# Some configuration options for other environments # rpmbuild --without=bundled_zipios: don't use bundled version of zipios++ %bcond_without bundled_zipios # rpmbuild --with=bundled_pycxx: use bundled version of pycxx %bcond_with bundled_pycxx # rpmbuild --without=bundled_smesh: don't use bundled version of Salome's Mesh %bcond_without bundled_smesh # rpmbuild --without=bundled_gtest: don't use bundled version of gtest and gmock %bcond_with bundled_gtest # rpmbuild --without=tests exclude tests in %%check %bcond_without tests # rpmbuild --without=debug_info don't generate package with debug info %bcond_without debug_info Name: freecad Epoch: 1 Version: weekly.2025.05.13 Release: 1.20250526085513259046.only.packit.213.gf266cb820%{?dist} Summary: A general purpose 3D CAD modeler Group: Applications/Engineering License: LGPL-2.0-or-later URL: https://www.freecad.org/ Source0: freecad-sources.tar.gz # Maintainers: keep this list of plugins up to date # List plugins in %%{_libdir}/%%{name}/lib, less '.so' and 'Gui.so', here %global plugins AssemblyApp AssemblyGui CAMSimulator DraftUtils Fem FreeCAD Import Inspection MatGui Materials Measure Mesh MeshPart Part PartDesignGui Path PathApp PathSimulator Points QtUnitGui ReverseEngineering Robot Sketcher Spreadsheet Start Surface TechDraw Web _PartDesign area flatmesh libDriver libDriverDAT libDriverSTL libDriverUNV libE57Format libMEFISTO2 libSMDS libSMESH libSMESHDS libStdMeshers libarea-native %global exported_libs libOndselSolver # See FreeCAD-main/src/3rdParty/salomesmesh/CMakeLists.txt to find this out. %global bundled_smesh_version 7.7.1.0 # See /src/3rdParty/PyCXX/CXX/Version.h to find this out. %global bundled_pycxx_version 7.1.9 # See /src/3rdParty/OndselSolver/CMakeLists.txt to find this out. %global bundled_ondsel_solver_version 1.0.1 # Utilities BuildRequires: cmake gcc-c++ gettext doxygen swig graphviz gcc-gfortran desktop-file-utils tbb-devel %if %{with tests} BuildRequires: xorg-x11-server-Xvfb %if %{without bundled_gtest} BuildRequires: gtest-devel gmock-devel %endif %endif # Development Libraries BuildRequires:boost-devel Coin4-devel eigen3-devel freeimage-devel fmt-devel libglvnd-devel libicu-devel libkdtree++-devel libspnav-devel libXmu-devel med-devel mesa-libEGL-devel mesa-libGLU-devel netgen-mesher-devel netgen-mesher-devel-private opencascade-devel openmpi-devel python3 python3-devel python3-matplotlib python3-pivy python3-pybind11 python3-pyside6-devel python3-shiboken6-devel pyside6-tools qt6-qttools-static qt6-qtsvg-devel vtk-devel xerces-c-devel yaml-cpp-devel #pcl-devel %if %{without bundled_smesh} BuildRequires: smesh-devel %endif %if %{without bundled_zipios} BuildRequires: zipios++-devel %endif %if %{without bundled_pycxx} BuildRequires: python3-pycxx-devel %endif # For appdata %if 0%{?fedora} BuildRequires: libappstream-glib %endif # Packages separated because they are noarch, but not optional so require them # here. Requires: %{name}-data = %{epoch}:%{version}-%{release} # Obsolete old doc package since it's required for functionality. Obsoletes: %{name}-doc < 0.22-1 Requires: hicolor-icon-theme fmt python3-matplotlib python3-pivy python3-collada python3-pyside6 qt6-assistant %if %{with bundled_smesh} Provides: bundled(smesh) = %{bundled_smesh_version} %endif %if %{with bundled_pycxx} Provides: bundled(python-pycxx) = %{bundled_pycxx_version} %endif Provides: bundled(libondselsolver) = %{bundled_ondsel_solver_version} Recommends: python3-pysolar IfcOpenShell-python3 # plugins and private shared libs in %%{_libdir}/freecad/lib are private; # prevent private capabilities being advertised in Provides/Requires %global plugin_exclude %( for i in %{plugins}; do echo -n "\|$i\(Gui\)\?"; done ) # prevent declaring Requires for internal FreeCAD libraries %global lib_exclude %( for i in %{exported_libs}; do echo -n "\|$i"; done ) %global __requires_exclude_from ^%{_libdir}/%{name}/(lib|Mod)/.* %global __provides_exclude_from ^%{_libdir}/%{name}/Mod/.* %global __provides_exclude ^(libFreeCAD.*%{plugin_exclude})\.so.* %global __requires_exclude ^(libFreeCAD.*%{plugin_exclude}%{lib_exclude})\.so.* %description FreeCAD is a general purpose Open Source 3D CAD/MCAD/CAx/CAE/PLM modeler, aimed directly at mechanical engineering and product design but also fits a wider range of uses in engineering, such as architecture or other engineering specialities. It is a feature-based parametric modeler with a modular software architecture which makes it easy to provide additional functionality without modifying the core system. %package data Summary: Data files for FreeCAD BuildArch: noarch Requires: %{name} = %{epoch}:%{version}-%{release} %description data Data files for FreeCAD %package libondselsolver-devel Summary: Development file for OndselSolver BuildArch: noarch Requires: %{name} = %{epoch}:%{version}-%{release} %description libondselsolver-devel Development file for OndselSolver #path that contain main FreeCAD sources for cmake %global tests_resultdir %{_datadir}/%{name}/tests_result/%{_arch} %if %{without debug_info} %global debug_package %{nil} %global _enable_debug_packages 0 %endif %prep %setup -T -a 0 -q -c -n FreeCAD-1.0.1 %build # Deal with cmake projects that tend to link excessively. LDFLAGS='-Wl,--as-needed -Wl,--no-undefined'; export LDFLAGS %cmake \ -DCMAKE_INSTALL_PREFIX=%{_libdir}/%{name} \ -DCMAKE_INSTALL_DATADIR=%{_datadir}/%{name} \ -DCMAKE_INSTALL_DOCDIR=%{_docdir}/%{name} \ -DCMAKE_INSTALL_INCLUDEDIR=%{_includedir} \ -DCMAKE_INSTALL_DATAROOTDIR=%{_datadir} \ -DRESOURCEDIR=%{_datadir}/%{name} \ -DFREECAD_USE_EXTERNAL_PIVY=TRUE \ -DFREECAD_USE_EXTERNAL_FMT=TRUE \ -DFREECAD_USE_PCL:BOOL=OFF \ -DFREECAD_QT_VERSION:STRING=6 \ -DOpenGL_GL_PREFERENCE=GLVND \ -DUSE_OCC=TRUE \ %if %{without bundled_pycxx} -DPYCXX_INCLUDE_DIR=$(pkg-config --variable=includedir PyCXX) \ -DPYCXX_SOURCE_DIR=$(pkg-config --variable=srcdir PyCXX) \ %endif %if %{without bundled_smesh} -DFREECAD_USE_EXTERNAL_SMESH=TRUE \ %endif %if %{without bundled_zipios} -DFREECAD_USE_EXTERNAL_ZIPIOS=TRUE \ %endif %if %{with tests} -DENABLE_DEVELOPER_TESTS=TRUE \ %if %{without bundled_gtest} -DFREECAD_USE_EXTERNAL_GTEST=TRUE \ %else -DINSTALL_GTEST=OFF \ -DINSTALL_GMOCK=OFF \ %endif %else -DENABLE_DEVELOPER_TESTS=FALSE \ %endif -DONDSELSOLVER_BUILD_EXE=TRUE \ -DBUILD_GUI=TRUE %cmake_build %install %cmake_install # Symlink binaries to /usr/bin mkdir -p %{buildroot}%{_bindir} ln -s ../%{_lib}/%{name}/bin/FreeCAD %{buildroot}%{_bindir}/FreeCAD ln -s ../%{_lib}/%{name}/bin/FreeCADCmd %{buildroot}%{_bindir}/FreeCADCmd # Remove header from external library that's erroneously installed rm -rf %{buildroot}%{_libdir}/%{name}/include/E57Format rm -rf %{buildroot}%{_includedir}/gmock rm -rf %{buildroot}%{_includedir}/gtest rm -rf %{buildroot}%{_libdir}/%{name}/%{_lib}/cmake rm -rf %{buildroot}%{_libdir}/%{name}/%{_lib}/pkgconfig %check desktop-file-validate %{buildroot}%{_datadir}/applications/org.freecad.FreeCAD.desktop %{?fedora:appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.metainfo.xml} %if %{with tests} mkdir -p %{buildroot}%tests_resultdir pushd %_vpath_builddir if (timeout 30m ./tests/Tests_run) &> %{buildroot}%tests_resultdir/Tests_run.result ;then echo "Test_run OK" else echo "**** Failed Test_run ****" touch %{buildroot}%tests_resultdir/Tests_run.failed cat %{buildroot}%tests_resultdir/Tests_run.result fi popd if %ctest &> %{buildroot}%tests_resultdir/ctest.result ; then echo "ctest OK" else echo "**** Failed ctest ****" touch %{buildroot}%tests_resultdir/ctest.failed cat %{buildroot}%tests_resultdir/ctest.result fi %endif # Bug maintainers to keep %%{plugins} macro up to date. # # Make sure there are no plugins that need to be added to plugins macro %define plugin_regexp /^\\\(libFreeCAD.*%(for i in %{plugins}; do echo -n "\\\|$i"; done)\\\)\\\(\\\|Gui\\\)\\.so/d %define exported_libs_regexp /^\\\(%(for i in %{exported_libs}; do echo -n "\\\|$i"; done)\\\)\\.so/d new_plugins=`ls %{buildroot}%{_libdir}/%{name}/%{_lib} | sed -e '%{plugin_regexp}' -e '%exported_libs_regexp'` if [ -n "$new_plugins" ]; then echo -e "\n\n\n**** ERROR:\n" \ "\nPlugins not caught by regexps:" \ "\n" $new_plugins \ "\n\nPlugins in %{_libdir}/%{name}/lib do not exist in" \ "\nspecfile %%{plugins} or %%{exported_libs_regexp} macro." \ "\nPlease add these to %%{plugins} or %%{exported_libs}" \ "\nmacro at top of specfile" \ "\nand rebuild.\n****\n" 1>&2 exit 1 fi # Make sure there are no entries in the plugins macro that don't match plugins for p in %{plugins}; do if [ -z "`ls %{buildroot}%{_libdir}/%{name}/%{_lib}/$p*.so`" ]; then set +x echo -e "\n\n\n**** ERROR:\n" \ "\nExtra entry in %%{plugins} macro with no matching plugin:" \ "'$p'.\n\nPlease remove from %%{plugins} macro at top of" \ "\nspecfile and rebuild.\n****\n" 1>&2 exit 1 fi done # Make sure there are no entries in the exported_libs_regexp macro that don't match plugins for d in %{exported_libs}; do if [ -z "`ls %{buildroot}%{_libdir}/%{name}/%{_lib}/$d*.so`" ]; then set +x echo -e "\n\n\n**** ERROR:\n" \ "\nExtra entry in %%{exported_libs} macro with no matching lib:" \ "'$d'.\n\nPlease remove from %%{exported_libs} macro at top of" \ "\nspecfile and rebuild.\n****\n" 1>&2 exit 1 fi done %post /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : /usr/bin/update-desktop-database &> /dev/null || : /usr/bin/update-mime-database %{_datadir}/mime &> /dev/null || : %postun if [ $1 -eq 0 ] ; then /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : fi /usr/bin/update-desktop-database &> /dev/null || : /usr/bin/update-mime-database %{_datadir}/mime &> /dev/null || : %posttrans /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor/scalable/apps &>/dev/null || : %files %{_bindir}/* %{_metainfodir}/* %dir %{_libdir}/%{name} %{_libdir}/%{name}/bin/ %{_libdir}/%{name}/%{_lib}/ %{_libdir}/%{name}/Ext/ %{_libdir}/%{name}/Mod/ %{_datadir}/applications/* %{_datadir}/icons/hicolor/* %{_datadir}/pixmaps/* %{_datadir}/mime/packages/* %{_datadir}/thumbnailers/* #find a way to configure in cmake with %%name to avoid conflict with different package name %{python3_sitelib}/freecad/* %if %{with tests} %tests_resultdir/* %endif %files data %{_datadir}/%{name}/ %{_docdir}/%{name}/LICENSE.html %{_docdir}/%{name}/ThirdPartyLibraries.html %files libondselsolver-devel %{_datadir}/pkgconfig/OndselSolver.pc %{_includedir}/OndselSolver/* %changelog * Mon May 26 2025 Super User - 1:weekly.2025.05.13-1.20250526085513259046.only.packit.213.gf266cb820 - add git information (github-actions[bot]) - add permission (filippor) - Update fedora-daily.yml (FilippoR) - add github action (filippor) - authomatic build on commit (filippor) - fix packit (filippor) - fix format (filippor) - change packit configuration (filippor) - small fix (filippor) - Update package/fedora/freecad.spec (FilippoR) - small fix (filippor) - Update package/fedora/freecad.spec (FilippoR) - Update package/fedora/freecad.spec (FilippoR) - fix and disable option without bundled_gtest (filippor) - use default build type for pr build and always print buiild time tests result (filippor) - add test that read build time tests result (filippor) - add tests in test-farm (filippor) - simplify configuration to use only packit remove script used to have only a spec file and build with 3 system rpkg custom bash script packit (filippor) - add new build on release (filippor) - escape changelog for spec file (filippor) - add packit configuration (filippor) - refactor prepare for packit (filippor) - remove rpkg macro for archive extraction (filippor) - add timeout to tests (filippor) - Disabile gui test to avoid timeout (FilippoR) - simplify regexp. remove delete unused source enable gui tests other fix (filippor) - use new macro for filtering requires provides (filippor) - export libondselsolver (filippor) - export dev package for ondselsolver (filippor) - build in RelWithDebInfo to generate correctly the debuginfo package (debug info will be stripped from standard package and a debuginfo package will be generated (filippor) - remove python bytecompile is default (filippor) - add tests (filippor) - configure cmake correctly to avoid moving file later (filippor) - use standard builddir and don't delete it to fast local rebuild (filippor) - use bcond macro (filippor) - add script for build from source archive (filippor) - reformat freecad.spec (filippor) - use custom macro to package the source file (filippor) - BIM: Parse Classification in IFC correctly for conversion/type assign (tetektoza) - BIM: add first iteration of unit tests (Furgo) - BIM: refactor to reduce code duplication and improved readability (Furgo) - BIM: remove command now removes windows from walls (Furgo) - BIM: add test for window removal from walls (Furgo) - [ArchWall] Fix SetLength Error When Base Sketch has External Geom (Paul Lee) - TechDraw: centralize usertype constants (Benjamin Bræstrup Sayoc) - Sketcher: Remove unused variables (#21504) (mosfet80) - Materials: Correct model spelling errors (David Carter) - Draft: remove 'CTRL to snap' from tooltips (#20619) (Roy-043) - Draft: Revise close task panels on doc close solution (#21546) (Roy-043) - Materials: External interface refinements (#21524) (David Carter) - Draft: Fix typo in arc input hint ("staring" → "starting") (longrackslabs) - Update codeql.yml (saso badovinac) - BIM - ArchWindow - Add AutoNormalReversed property (paul) - BIM: Additional improvements for Activate button in BIM Views (tetektoza) - BIM: Revise close panel on doc close solution (#21302) (Roy-043) - BIM/Help: Access DockWidgetArea QFlag enum correctly (tetektoza) - Draft: Implementation of 'Align to face' checkbox in Hatch task panel (#21332) (Krzysztof) - BIM: Add missing IFC attributes for both Pipe and Rebar (tetektoza) - BIM: allow deleting locked IFC properties when needed (Furgo) - Revert "BIM: add workaround for Draft workbench test mockup" (Furgo) - BIM: add workaround for Draft workbench test mockup (Furgo) - BIM: add basic error checking in unit test, make extrusion a solid (Furgo) - BIM: add area calculation unit tests for Arch Components (Furgo) - BIM: support curved vertical edges for area calculation (Furgo) - BIM: refactor component area calculation into a helper class (Furgo) - BIM: correct planar check to avoid vertical/horizontal misclassification (Furgo) - BIM: add support for bsplines in Arch structures (Furgo) - TechDraw: Update LineGroup.csv (#21513) (FC-FBXL5) - Update codeql.yml (saso badovinac) - Draft: ShapeString fix stick font check for small character (#21522) (Roy-043) - BIM: Add support for concatenation of lines in Obj files (Ralf Habacker) - BIM: Add support to import lines from obj files (Ralf Habacker) - Draft: Tweak polygonTracker code (#21518) (Roy-043) - Typo in ViewProviderGeometryObject.cpp (#21517) (Roy-043) - Sketcher: remove surplus push_back to shapes (fixes #21499) (jffmichi) - Draft: Add example tool hints (Kacper Donat) - Gui: Add support for hints in status bar (Kacper Donat) - Gui: fix light/dark switch when on classic (#21049) (Alfredo Monclus) - Draft: avoid redundant constraints in make_sketch.py (improved) (Roy-043) - Start: fix restoring of user saved Unit schema (Ladislav Michl) - Core: Correct unit merge errors (David Carter) - Doc: Move Extension documentation to a topic (Pieter Hijma) - Doc: Reorder topics (Pieter Hijma) - Base: Fix use after free in unit error message (Benjamin Nauck) - Base: Add more tests for imperial building special function (Benjamin Nauck) - Base: Skip test for units using GTEST_SKIP() instead of comments (Benjamin Nauck) - Measure: Fix delta label text size scaling (#21467) (hlorus) - Measure: Add MeasureElementType::Surface (hlorus) - CAM: added three command line arguments, with tests (Lawrence Woestman) - Sketcher: Incorporate comments from #20589 (Ajinkya Dahale) - Sketcher: clean up import (Ajinkya Dahale) - Sketcher: Use const parameter where relevant (Ajinkya Dahale) - Sketcher: Remove some unused lambda captures (Ajinkya Dahale) - Sketcher: Use range-based `for` in `Sketch.cpp` (Ajinkya Dahale) - [Sketcher] [WIP] One curious refactor I'm not certain about (Ajinkya Dahale) - Sketcher: Refactor further `DrawSketchDefaultHandler.h` (Ajinkya Dahale) - [planegcs] Use `std::ranges` and range `for` in `GCS.cpp` (Ajinkya Dahale) - [Sketcher] Refactor `SketchObject::delAllExternal()` (Ajinkya Dahale) - [Sketcher][WIP] Refactor `SketchObject::buildShape()` (Ajinkya Dahale) - [Sketcher] Use `std::ranges` in `SketchObject` where possible (Ajinkya Dahale) - [Sketcher] Refactor `SketchObject::split()` (Ajinkya Dahale) - [Sketcher] Refactor `TaskSketcherElements::onSelectionChanged()` (Ajinkya Dahale) - [Sketcher][WIP] Refactor `SketchObject::addExternal()` (Ajinkya Dahale) - [Sketcher] Refactor `SketchObject::toggleExternalGeometryFlag()` (Ajinkya Dahale) - [Sketcher][WIP] Refactor `SketchObject::generateId()` (Ajinkya Dahale) - [Sketcher] Use `replaceGeometries()` in `split` (Ajinkya Dahale) - App: Invoke `signalBeforeRecompute()` on the GUI thread (Joao Matos) - SpreadSheet: remove function (Andrea) - Removed empty functions (Andrea) - Remove oldFuse funcion (Andrea) - Materials: Fix MaterialManager being copied on getInstance() (Kacper Donat) - Materials: Fix ModelManager being copied on getInstance() (Kacper Donat) - BIM: Make a correct mapping to weight during IFC Quantities assignment (tetektoza) - Update codeql.yml (saso badovinac) - BIM: do not prune Roof objects on export (Furgo) - FEM: Add more glyph types for the Glyph filter (#21397) (FEA-eng) - Fem: Add support for VTK < 9.1 in calculator filter - fixes #21346 (marioalexis) - Add Navigation Style/Orbit Style/Rotation Mode to About info (xtemp09) - BIM: Avoid traceback if there is no Classification selected (tetektoza) - TechDraw: Fix claiming of hatch (PaddleStroke) - [pre-commit.ci] auto fixes from pre-commit.com hooks (pre-commit-ci[bot]) - update clipper (Andrea) - Base: fix conversion to kilometers in Standart unit schema (Ladislav Michl) - Base: align unit format to Quantity parser expectations (Ladislav Michl) - Base: fix QuantityPy::getValueAs (Ladislav Michl) - Base: restore output format of imperial fraction units (bofdahof) - TechDraw: Lock multiple views (PaddleStroke) - TechDraw: decorateLine fix (#21312) (PaddleStroke) - TD: Remove unused variable (Chris Hennes) - Sketcher: remove "SecondIcon" logs on constraint icon hover (Céleste Wouters) - App: Fix exported object dynamic property type identifier (#21415) (jffmichi) - Draft: use different color for WPProxy to avoid BIM dependency (Roy-043) - CAM: fix loading Array dressup with unused properties (jffmichi) - Bump github/codeql-action from 3.28.16 to 3.28.18 (dependabot[bot]) - Draft: avoid redundant constraints in make_sketch.py (#21398) (Roy-043) - Update codeql.yml (saso badovinac) - Update codeql.yml (saso badovinac) - Update codeql.yml (saso badovinac) - Update codeql.yml (saso badovinac) - Draft: params.py: do not report missing UI files (#21370) (Roy-043) - Gui: fix ElideCheckbox spacing (Alfredo Monclus) - PD: move the base profiles types to the top (Alfredo Monclus) - BIM: Rename to alpha instead of trans after switch to RGBA (tetektoza) - Base: Fixed segfault on destructing cached string (#20563) (Kohei Takahashi) - Fix a cyclic build dependency (Pieter Hijma) - Sketcher tests: Silence compiler warning with cast (Chris Hennes) - Fix various typos Missed by the codespell CI not being functional for a period of time. (Luz Paz) - [pre-commit.ci] pre-commit autoupdate (pre-commit-ci[bot]) - CI: Create codeql.yml (#21300) (saso badovinac) - TechDraw: fix face color not working (Benjamin Bræstrup Sayoc) - Fix warnings in `ModelManager`code. (Joao Matos) - UI: Remove qPixmapFromMimeSource pixmap function (Chris Hennes) - Materials: Clean up unused variables (Chris Hennes) - Gui: Eliminate signed-to-unsigned comparison (Chris Hennes) - FEM: Update TaskPostGlyph.ui (FEA-eng) - FEM: Update post_glyphfilter.py (FEA-eng) - CAM: fix rrf postprocessor always writing to "-" instead of specified file (jffmichi) - CAM: prevent marlin postprocessor from always writing to "-" (jffmichi) - CAM: fix crash in dynapath_4060 postprocessor due to fmt function expecting precision as integer (jffmichi) - CAM: fix uccnc postprocessor not checking the Active state of operations (jffmichi) - CAM: fix handling of Active state and CoolantMode with nested dressups for some non-refactored postprocessors (jffmichi) - Fix finding hdf5 on CMake reconfigure (Pieter Hijma) - Bump actions/dependency-review-action (dependabot[bot]) - Base: revert to using ASCII chararacters for imperial lengths (Ladislav Michl) - Base: fix default unit schema (Syres916) - Base: fix Python interface for Unit schema selection (Ladislav Michl) - Base: sort returned Unit schema description (Ladislav Michl) - App: Align Document to best practices (#21059) (3x380V) - CAM: replace opProperty with more specific activeForOp (jffmichi) - fedora rpm packaging: use standard macro to package sources with submodules (#20953) (FilippoR) - Fix regressions in CI linting generic checks. (tritao) - CAM: Simulator - Reset camera tooltip (tarman3) - CAM: Simulator - Reset camera (tarman3) - Fem: Add CalculiX writers for electrostatic constraints (marioalexis) - Fem: Search elements for electrostatic constraints (marioalexis) - Fem: Improve CalculiXTools (marioalexis) - Fem: Change CalculiX time and frequency properties to quantites (marioalexis) - Draft: Finish command if user deselected Chained Mode (tetektoza) - [ArchStairs] ArchSketch Support and Refactoring Phase 3 + Regression (Paul Lee) - [BimWindow] Interactive Creation Tool: Check if SketchArch is Enabled (ArchSketchLock) (Paul Lee) - BIM: Allow changing Sill parameter in Properties for Window (tetektoza) - BIM: Switch Visibility of ViewObj on/off to restore it in all objs (tetektoza) - BIM: Do not hide children of Building if Building has been isolated (tetektoza) - BIM: Remove additional recompute at the end of isolate (tetektoza) - BIM: Exclude viewtree from cached items and add a sanity check (tetektoza) - BIM: Cache the tree elements beforehand and hide only necessary ones (tetektoza) - BIM: Hide all objects that aren't selected during Isolate (tetektoza) - CAM: Fix Existing Stock from resetting (Slawomir Gonet) - CAM: Simulator - Improve camera limits (tarman3) - CI: fix weekly builds. (Jacob Oursland) - Gui: Eliminate double->float truncations (Chris Hennes) - CAM: Remove CAM_Shape from top menu (tarman3) - CI: checkout source prior to installing pixi on weekly builds. (Jacob Oursland) - BIM: Change from RGBT to RGBA for IFC (tetektoza) - CAM: PathShape with Tool Controller (tarman3) - CAM: add test for refactored postprocessor using dressups (jffmichi) - CAM: respect SHOW_OPERATION_LABELS in post-operation information (jffmichi) - CAM: fix handling of Active state and CoolantMode with nested dressups (jffmichi) - BIM: create wall upon pressing Enter with focused Offset input (Furgo) - BIM: add Offset input to wall creation task panel (Furgo)