Bug 2394440

Summary: Review Request: IfcOpenShell - A library for working with Industry Foundation Classes (IFC)
Product: [Fedora] Fedora Reporter: Sandro Mani <manisandro>
Component: Package ReviewAssignee: Benson Muite <benson_muite>
Status: ASSIGNED --- QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: benson_muite, bruno, package-review
Target Milestone: ---Flags: benson_muite: fedora-review?
Target Release: ---   
Hardware: All   
OS: Linux   
URL: https://github.com/IfcOpenShell/IfcOpenShell/
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Sandro Mani 2025-09-10 20:04:26 UTC
Spec URL: https://smani.fedorapeople.org/review/IfcOpenShell.spec
SRPM URL: https://smani.fedorapeople.org/review/IfcOpenShell-0.8.0-1.fc44.src.rpm
Description: IfcOpenShell is an open source (LGPL) software library for working with Industry Foundation Classes (IFC).
Fedora Account System Username: smani

Comment 1 Fedora Review Service 2025-09-11 11:50:03 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/9544084
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2394440-ifcopenshell/fedora-rawhide-x86_64/09544084-IfcOpenShell/fedora-review/review.txt

Found issues:

- Unversioned so-files directly in %_libdir.
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_devel_packages
- License file LICENSE is not marked as %license
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/LicensingGuidelines/#_license_text

Please know that there can be false-positives.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 2 Bruno Postle 2025-09-11 21:14:07 UTC
I'm not able to do a full review, but I'm very familiar with this software and maintain copr snapshots: https://copr.fedorainfracloud.org/coprs/bpostle/IfcOpenShell/

Some notes:

1. The git clone command is pulling a snapshot of the v0.8.0 branch HEAD, but this is just a branch name. There are tagged stable releases within this branch: bonsai-0.8.0, bonsai-0.8.1, bonsai-0.8.2, bonsai-0.8.3 (these tags include 'bonsai-' because bonsai and IfcOpenShell have synchronised releases, the current stable release of IfcOpenShell is 0.8.3).

2. The spec file works with a tar'd git clone, but there is a cmake package_source target that produces a tarball using the correct version number:

       cd IfcOpenShell && rm -rf build && mkdir build
       cd build && cmake ../cmake/ -DEXTRA_VERSION= \
       -DADD_COMMIT_SHA=ON -DVERSION_OVERRIDE=ON \
       -DEIGEN_DIR=/usr/include/eigen3 \
       -DCPACK_SOURCE_IGNORE_FILES="/test/;/src/opencdeserver/;/src/bonsai/scripts/" \
       -DCOLLADA_SUPPORT=OFF -DGLTF_SUPPORT=OFF -DCITYJSON_SUPPORT=OFF -DGMP_LIBRARY_DIR=/usr/lib64 -DMPFR_LIBRARY_DIR=/usr/lib64
       make package_source

3. The build command has -DHDF5_LIBRARY_DIR=%{_libdir}, but there is no BuildRequires: hdf5-devel

4. The `make install` command installs the c++ and python bindings, but the python bindings don't install dist-info metadata (this is arguably a bug in the CMakeLists.txt). However the python module has a working pyproject.toml file, so you should be able to get a full installation of the python module using standard spec macros:

    %build
    %pyproject_wheel

    %install
    %pyproject_install
    %pyproject_save_files IfcOpenShell

    %files -n python3-IfcOpenShell -f %{pyproject_files}

5. Similarly there is a collection of python libraries for working with IFC data that can be installed using their pyproject.toml configuration, these should be installed too (they could be sub-packages but they are not very big so this is up to you):

   bcf
   bsdd
   ifc4d
   ifc5d
   ifcbimtester
   ifccityjson
   ifcclash
   ifccsv
   ifcdiff
   ifcfm
   ifcpatch
   ifctester

6. Looking at your patch file:

   a. You shouldn't have to mess with the xml2 path, I build successfully with -DLIBXML2_INCLUDE_DIR:FILEPATH=%{_includedir}/libxml2
   b. Renaming the Serializers library to IfcSerializers seems likely to cause problems. Unless there is actually a conflict with an existing fedora package I wouldn't want this.
   c. Similarly svgfill is renamed IfcSvgFill, but this library is specific to IfcOpenShell, so isn't going to conflict with any existing libraries called svgfill.

7. I'm not sure the Qt viewer is supported, have you tested it?

8. As discussed previously, I agree that the Bonsai Blender add-on shouldn't be shipped. This is because it is undergoing rapid development and most users are better served by getting a nightly snapshot through the Blender Extensions menu (though note this doesn't work with the fedora blender because official Extensions are all python-3.11), or by using my copr repo (which does work with the fedora blender).

That's it for now, any questions please ask.