Bug 2262694 - Review Request: materialx - Vendor-neutral specification for 3D material interchange
Summary: Review Request: materialx - Vendor-neutral specification for 3D material inte...
Keywords:
Status: NEW
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Nobody's working on this, feel free to take it
QA Contact: Fedora Extras Quality Assurance
URL: https://materialx.org/
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2024-02-04 22:12 UTC by Luya Tshimbalanga
Modified: 2025-05-09 00:19 UTC (History)
6 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Type: ---
Embargoed:


Attachments (Terms of Use)
The .spec file difference from Copr build 6985695 to 6995048 (2.87 KB, patch)
2024-02-06 22:48 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 6995048 to 7002551 (4.23 KB, patch)
2024-02-09 04:35 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 7002551 to 7005489 (2.24 KB, patch)
2024-02-10 05:36 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 7005489 to 7010709 (4.54 KB, patch)
2024-02-13 00:26 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 7010709 to 7013260 (933 bytes, patch)
2024-02-14 03:21 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 7013260 to 7027751 (813 bytes, patch)
2024-02-17 02:49 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 7035565 to 7035959 (612 bytes, patch)
2024-02-19 19:57 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 7035959 to 7041939 (3.96 KB, patch)
2024-02-21 10:06 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 7041939 to 7048859 (4.59 KB, patch)
2024-02-22 09:13 UTC, Fedora Review Service
no flags Details | Diff
Updated materialx.spec file (5.32 KB, text/x-matlab)
2024-03-29 08:02 UTC, Luya Tshimbalanga
no flags Details
The .spec file difference from Copr build 7048859 to 7932202 (6.22 KB, patch)
2024-08-21 19:48 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 7932202 to 8158633 (7.74 KB, patch)
2024-10-19 21:50 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 8158633 to 8864573 (10.68 KB, patch)
2025-04-06 07:53 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 8864573 to 8882938 (5.09 KB, patch)
2025-04-09 22:53 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 8882938 to 8889447 (2.14 KB, patch)
2025-04-11 02:58 UTC, Fedora Review Service
no flags Details | Diff

Description Luya Tshimbalanga 2024-02-04 22:12:16 UTC
Spec URL: https://download.copr.fedorainfracloud.org/results/@designsuite/blender/fedora-39-x86_64/06967755-materialx/materialx.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/@designsuite/blender/fedora-39-x86_64/06967755-materialx/materialx-1.38.8-1.fc39.src.rpm
Description: MaterialX is an open standard for the exchange of rich material and look-development content across applications and renderers.
Fedora Account System Username: luya

Comment 1 Fedora Review Service 2024-02-05 03:31:40 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/6985695
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2262694-materialx/fedora-rawhide-x86_64/06985695-materialx/fedora-review/review.txt

Found issues:

- materialx : /usr/share/materialx/stdlib/genosl/include/color4.h materialx : /usr/share/materialx/stdlib/genosl/include/matrix33.h materialx : /usr/share/materialx/stdlib/genosl/include/mx_funcs.h materialx : /usr/share/materialx/stdlib/genosl/include/vector2.h materialx : /usr/share/materialx/stdlib/genosl/include/vector4.h 
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_devel_packages

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 Carlos Rodriguez-Fernandez 2024-02-05 15:59:28 UTC
The devel packages has this `Requires`:

Requires:       %{name}-libs%{?_isa} = %{version}-%{release}

Notice the `-libs`, but no `-libs` is being generated with this spec, nor it comes in fedora rawhide. Is it a bug?

Comment 4 Fedora Review Service 2024-02-06 22:48:45 UTC
Created attachment 2015499 [details]
The .spec file difference from Copr build 6985695 to 6995048

Comment 5 Fedora Review Service 2024-02-06 22:48:47 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/6995048
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2262694-materialx/fedora-rawhide-x86_64/06995048-materialx/fedora-review/review.txt

Found issues:

- materialx : /usr/share/materialx/stdlib/genosl/include/color4.h materialx : /usr/share/materialx/stdlib/genosl/include/matrix33.h materialx : /usr/share/materialx/stdlib/genosl/include/mx_funcs.h materialx : /usr/share/materialx/stdlib/genosl/include/vector2.h materialx : /usr/share/materialx/stdlib/genosl/include/vector4.h 
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_devel_packages

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 6 Carlos Rodriguez-Fernandez 2024-02-07 00:04:53 UTC
Regarding "BSD" in the license:
* The License should be encoded using the SPDX ids: https://spdx.org/licenses/
* It looks to me that the libs subpackage license is only Apache-2.0.


The project references a THIRD-PARTY.md file with detailed licenses "of third-party projects that have been imported or incorporated into MaterialX".

For what I can detect, these are the license listed there using the SPDX ids:

They are all MIT except these:
ambientcg CC0-1.0
catch BSL-1.0
cgltf MIT
glfw MIT-0? Zlib?
nanogui BSD-4-Clause
openimageio BSD-3-Clause
openshadinglanguage BSD-3-Clause
poly-haven CC0-1.0
pybind11 BSD-4-Clause

It looks to me they are all for the top package (where the datadir is going), and should be listed with an AND. The THIRD-PARTY.md file should also be included as a `%license` as well.

Relevant linting errors and warnings:

materialx.src: E: summary-too-long Open standard for the exchange of rich material and look-development content across applications and renderers.
materialx.x86_64: E: summary-too-long Open standard for the exchange of rich material and look-development content across applications and renderers.
materialx.src: W: summary-ended-with-dot Open standard for the exchange of rich material and look-development content across applications and renderers.
materialx.x86_64: W: summary-ended-with-dot Open standard for the exchange of rich material and look-development content across applications and renderers.

materialx.x86_64: W: spurious-executable-perm /usr/share/doc/materialx/CHANGELOG.md
materialx.x86_64: W: spurious-executable-perm /usr/share/doc/materialx/README.md
materialx.x86_64: W: spurious-executable-perm /usr/share/doc/materialx/SECURITY.md
materialx.x86_64: E: script-without-shebang /usr/share/licenses/materialx/LICENSE

materialx-devel.x86_64: W: no-documentation

materialx.x86_64: E: no-binary # this one will be the case, unless the python scripts are included. We will need a second pair of eyes for this one.

materialx.spec:76: W: mixed-use-of-spaces-and-tabs (spaces: line 1, tab: line 76)

materialx.src: E: description-line-too-long MaterialX is an open standard for the exchange of rich material and look-development content across applications and renderers.
materialx.x86_64: E: description-line-too-long MaterialX is an open standard for the exchange of rich material and look-development content across applications and renderers.
materialx-libs.x86_64: E: description-line-too-long MaterialX is an open standard for the exchange of rich material and look-development content across applications and renderers.
 5 packages and 0 specfiles checked; 12 errors, 17 warnings, 12 badness; has taken 2.6 s

Comment 7 Carlos Rodriguez-Fernandez 2024-02-08 15:54:45 UTC
One more thing, is there any reason the unit tests are disabled? "-DMATERIALX_BUILD_TESTS=OFF"

Comment 8 Luya Tshimbalanga 2024-02-09 02:58:21 UTC
(In reply to Carlos Rodriguez-Fernandez from comment #7)
> One more thing, is there any reason the unit tests are disabled?
> "-DMATERIALX_BUILD_TESTS=OFF"

An issue related to Filesystem Hierarchy Standard like the following:

'''
RPM build errors:
error: Installed (but unpackaged) file(s) found:
   /builddir/build/BUILD/MaterialX-1.38.8/redhat-linux-build/bin/usr/lib64/mdl/materialx/core.mdl
   /builddir/build/BUILD/MaterialX-1.38.8/redhat-linux-build/bin/usr/lib64/mdl/materialx/hsv.mdl
   /builddir/build/BUILD/MaterialX-1.38.8/redhat-linux-build/bin/usr/lib64/mdl/materialx/noise.mdl
   /builddir/build/BUILD/MaterialX-1.38.8/redhat-linux-build/bin/usr/lib64/mdl/materialx/pbrlib.mdl
   /builddir/build/BUILD/MaterialX-1.38.8/redhat-linux-build/bin/usr/lib64/mdl/materialx/sampling.mdl
   /builddir/build/BUILD/MaterialX-1.38.8/redhat-linux-build/bin/usr/lib64/mdl/materialx/stdlib.mdl
   /builddir/build/BUILD/MaterialX-1.38.8/redhat-linux-build/bin/usr/lib64/mdl/materialx/swizzle.mdl
   /usr/lib64/README.md

'''

Comment 10 Fedora Review Service 2024-02-09 04:35:31 UTC
Created attachment 2015982 [details]
The .spec file difference from Copr build 6995048 to 7002551

Comment 11 Fedora Review Service 2024-02-09 04:35:34 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/7002551
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2262694-materialx/fedora-rawhide-x86_64/07002551-materialx/fedora-review/review.txt

Found issues:

- materialx-libs : /usr/lib64/stdlib/genosl/include/color4.h materialx-libs : /usr/lib64/stdlib/genosl/include/matrix33.h materialx-libs : /usr/lib64/stdlib/genosl/include/mx_funcs.h materialx-libs : /usr/lib64/stdlib/genosl/include/vector2.h materialx-libs : /usr/lib64/stdlib/genosl/include/vector4.h python3-materialx : /usr/lib64/python3.12/site-packages/MaterialX/usr/lib64/stdlib/genosl/include/color4.h python3-materialx : /usr/lib64/python3.12/site-packages/MaterialX/usr/lib64/stdlib/genosl/include/matrix33.h python3-materialx : /usr/lib64/python3.12/site-packages/MaterialX/usr/lib64/stdlib/genosl/include/mx_funcs.h python3-materialx : /usr/lib64/python3.12/site-packages/MaterialX/usr/lib64/stdlib/genosl/include/vector2.h python3-materialx : /usr/lib64/python3.12/site-packages/MaterialX/usr/lib64/stdlib/genosl/include/vector4.h 
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_devel_packages

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 12 Carlos Rodriguez-Fernandez 2024-02-09 16:39:44 UTC
Thank you Luya for the updated version.

==LICENSE==

After looking at the licenses, would you mind please changing it this way?


For package materialx:
---------------------

# All third-party components imported or incorporated are under MIT except the following:
# ambientcg CC0-1.0
# catch BSL-1.0
# glfw Zlib
# nanogui BSD-4-Clause
# openimageio BSD-3-Clause
# openshadinglanguage BSD-3-Clause
# poly-haven CC0-1.0
# pybind11 BSD-4-Clause

License:        MIT AND Apache-2.0 AND BSD-4-Clause AND CC0-1.0 AND BSD-3-Clause AND BSL-1.0 AND Zlib


For subpackage libs:
-------------------

License:        Apache-2.0



%files
%license LICENSE
%license THIRD-PARTY.md
%doc CHANGELOG.md README.md SECURITY.md


==DIR OWNERSHIP==

/usr/lib64/cmake/MaterialX has the wrong onwership.
Could you please change "%{_libdir}/cmake/MaterialX/*.cmake" to "%{_libdir}/cmake/MaterialX/" to fix the ownership roblem?

==DEPENDENCIES==

Shouldn't the `python3-%{name}` depend on the libs?
Shouldn't the top level package itself with those artifacts depend on the libs?

For what I can understand upstream, all those components depend on the libs to be installed, so I wonder if this should be structured differently. Perhaps the top library should install the dyn libraries together with all the resources (or the resources in a different subpackage), then a devel package for the headers, and another one for python. That way they all depend on the parent one cleanly. That takes me to the next thought that perhaps the top package should be called `libmaterialx`.


==FHS==

%{_libdir}/{bxdf,cmlib,lights,mdl,pbrlib,stdlib,targets}

* These libraries are not ELF dynamic libraries. They should go to /usr/share/materialx.
* They should be located under materialx/{bxdf,cmlib,lights,mdl,pbrlib,stdlib,targets}

==DEVEL AND LIBS==

Could you please list the actual libraries instead of *.so and *.so.{1,%{version}}? 

https://docs.fedoraproject.org/en-US/packaging-guidelines/#_listing_shared_library_files
https://docs.fedoraproject.org/en-US/packaging-guidelines/#_explicit_lists

Comment 13 Luya Tshimbalanga 2024-02-10 02:29:25 UTC
(In reply to Carlos Rodriguez-Fernandez from comment #12)
> Thank you Luya for the updated version.
> 
> ==LICENSE==
> 
> After looking at the licenses, would you mind please changing it this way?
> 
> 
> For package materialx:
> ---------------------
> 
> # All third-party components imported or incorporated are under MIT except
> the following:
> # ambientcg CC0-1.0
> # catch BSL-1.0
> # glfw Zlib
> # nanogui BSD-4-Clause
> # openimageio BSD-3-Clause
> # openshadinglanguage BSD-3-Clause
> # poly-haven CC0-1.0
> # pybind11 BSD-4-Clause
> 
> License:        MIT AND Apache-2.0 AND BSD-4-Clause AND CC0-1.0 AND
> BSD-3-Clause AND BSL-1.0 AND Zlib
> 
> 
> For subpackage libs:
> -------------------
> 
> License:        Apache-2.0
> 
> 

Fixed.


> 
> %files
> %license LICENSE
> %license THIRD-PARTY.md
> %doc CHANGELOG.md README.md SECURITY.md
> 

The build system dislike adding extra %license for THIRD-PARTY.md so %doc was the only option.

> 
> ==DIR OWNERSHIP==
> 
> /usr/lib64/cmake/MaterialX has the wrong onwership.
> Could you please change "%{_libdir}/cmake/MaterialX/*.cmake" to
> "%{_libdir}/cmake/MaterialX/" to fix the ownership roblem?

Fixed. 
> 
> ==DEPENDENCIES==
> 
> Shouldn't the `python3-%{name}` depend on the libs?
> Shouldn't the top level package itself with those artifacts depend on the
> libs?
> 
> For what I can understand upstream, all those components depend on the libs
> to be installed, so I wonder if this should be structured differently.
> Perhaps the top library should install the dyn libraries together with all
> the resources (or the resources in a different subpackage), then a devel
> package for the headers, and another one for python. That way they all
> depend on the parent one cleanly. That takes me to the next thought that
> perhaps the top package should be called `libmaterialx`.
> 

Or something like materialx-osl due to the optional support of OSL?

> 
> ==FHS==
> 
> %{_libdir}/{bxdf,cmlib,lights,mdl,pbrlib,stdlib,targets}
> 
> * These libraries are not ELF dynamic libraries. They should go to
> /usr/share/materialx.
> * They should be located under
> materialx/{bxdf,cmlib,lights,mdl,pbrlib,stdlib,targets}
> 

Fixed. 

> ==DEVEL AND LIBS==
> 
> Could you please list the actual libraries instead of *.so and
> *.so.{1,%{version}}? 
> 

Fixed.



Here is the updated
SPEC: https://download.copr.fedorainfracloud.org/results/@designsuite/blender/fedora-rawhide-x86_64/07005412-materialx/materialx.spec
SRPM: https://download.copr.fedorainfracloud.org/results/@designsuite/blender/fedora-rawhide-x86_64/07005412-materialx/materialx-1.38.8-1.fc40.src.rpm

Comment 14 Fedora Review Service 2024-02-10 05:36:09 UTC
Created attachment 2016146 [details]
The .spec file difference from Copr build 7002551 to 7005489

Comment 15 Fedora Review Service 2024-02-10 05:36:12 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/7005489
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2262694-materialx/fedora-rawhide-x86_64/07005489-materialx/fedora-review/review.txt

Found issues:

- materialx : /usr/share/materialx/stdlib/genosl/include/color4.h materialx : /usr/share/materialx/stdlib/genosl/include/matrix33.h materialx : /usr/share/materialx/stdlib/genosl/include/mx_funcs.h materialx : /usr/share/materialx/stdlib/genosl/include/vector2.h materialx : /usr/share/materialx/stdlib/genosl/include/vector4.h python3-materialx : /usr/lib64/python3.12/site-packages/MaterialX/usr/share/materialx/stdlib/genosl/include/color4.h python3-materialx : /usr/lib64/python3.12/site-packages/MaterialX/usr/share/materialx/stdlib/genosl/include/matrix33.h python3-materialx : /usr/lib64/python3.12/site-packages/MaterialX/usr/share/materialx/stdlib/genosl/include/mx_funcs.h python3-materialx : /usr/lib64/python3.12/site-packages/MaterialX/usr/share/materialx/stdlib/genosl/include/vector2.h python3-materialx : /usr/lib64/python3.12/site-packages/MaterialX/usr/share/materialx/stdlib/genosl/include/vector4.h 
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_devel_packages

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 16 Carlos Rodriguez-Fernandez 2024-02-10 21:58:52 UTC
Luya, thank you so much for all the updates.

Inspecting the packages I found these files being installed in python3-%{name} (cut for brevity):


/usr/lib64/python3.12/site-packages/MaterialX/PyMaterialXCore.cpython-312-x86_64-linux-gnu.so
/usr/lib64/python3.12/site-packages/MaterialX/PyMaterialXFormat.cpython-312-x86_64-linux-gnu.so
...
/usr/lib64/python3.12/site-packages/MaterialX/__init__.py
/usr/lib64/python3.12/site-packages/MaterialX/__pycache__
/usr/lib64/python3.12/site-packages/MaterialX/__pycache__/__init__.cpython-312.opt-1.pyc
...
/usr/lib64/python3.12/site-packages/MaterialX/_scripts
/usr/lib64/python3.12/site-packages/MaterialX/_scripts/README.md
...
/usr/lib64/python3.12/site-packages/MaterialX/colorspace.py
/usr/lib64/python3.12/site-packages/MaterialX/datatype.py
/usr/lib64/python3.12/site-packages/MaterialX/main.py
/usr/lib64/python3.12/site-packages/MaterialX/usr
/usr/lib64/python3.12/site-packages/MaterialX/usr/share
/usr/lib64/python3.12/site-packages/MaterialX/usr/share/materialx
/usr/lib64/python3.12/site-packages/MaterialX/usr/share/materialx/README.md
/usr/lib64/python3.12/site-packages/MaterialX/usr/share/materialx/bxdf
/usr/lib64/python3.12/site-packages/MaterialX/usr/share/materialx/bxdf/disney_brdf_2012.mtlx
...


Notice that `/usr/lib64/python3.12/site-packages/MaterialX/usr/share/materialx` folder with a lot of the resources that are already in /usr/share/materialx. Is that a bug?



Also, I opened some of the "Scripts" *.py files you are installing in the top package and I found some dependencies missing in the SPEC file:
*.py in %{name} depends on python libraries provided in python3-%{name}, which depends on %{name}-libs, which may be not of great help without the /usr/share/materialx files.


This is an idea of how to restructure this, let me know what you think:

package: libmaterialx (general naming for libs)
* .so. files
* /usr/share/materialx files
* docs
- doesn't depend on anything and stand on its own

subpackage: python3-libmaterialx (many packages are named this way: python3-libXYZ)
* python libs and cpython so files
- depends on libmaterialx

subpackage: libmaterialx-tools (some are named this way, e.g., libbpf-tools)
* the *.py tools installed in /usr/bin
- depends on python3-libmaterialx

subpackage: libmaterialx-devel
* development files
- depends on libmaterialx

Comment 17 Carlos Rodriguez-Fernandez 2024-02-11 04:34:02 UTC
Regarding the license, this fix would do it:

Move it to the right directory as the other LICENSE file:

```
mv %{buildroot}%{_prefix}/THIRD-PARTY.md %{buildroot}%{_datadir}/licenses/%{name}/
```


Remove it from the "mv" doing the docs:

```
mv %{buildroot}%{_prefix}/{CHANGELOG,README}.md %{buildroot}%{_docdir}/%{name}/
```


List the licenses with a full path:

```
%license %{_datadir}/licenses/%{name}/LICENSE
%license %{_datadir}/licenses/%{name}/THIRD-PARTY.md
```


Then the build will work and place them in the right path:

```
$ rpm -ql /var/lib/mock/fedora-rawhide-x86_64/result/materialx-1.38.8-1.fc40.x86_64.rpm | grep licenses

/usr/share/licenses/materialx/LICENSE
/usr/share/licenses/materialx/THIRD-PARTY.md
```

Comment 18 Luya Tshimbalanga 2024-02-12 04:37:22 UTC
(In reply to Carlos Rodriguez-Fernandez from comment #16)
> Luya, thank you so much for all the updates.
> 
> Inspecting the packages I found these files being installed in
> python3-%{name} (cut for brevity):
> 
> 
> /usr/lib64/python3.12/site-packages/MaterialX/PyMaterialXCore.cpython-312-
> x86_64-linux-gnu.so
> ...
> 
> 
> Notice that
> `/usr/lib64/python3.12/site-packages/MaterialX/usr/share/materialx` folder
> with a lot of the resources that are already in /usr/share/materialx. Is
> that a bug?
> 

Yes, a leftover bug from the line coming from Arch Linux like this one:
"sed -i 's|resources|share/materialx/resources|g' python/CMakeLists.txt"

It is now removed.

> 
> 
> Also, I opened some of the "Scripts" *.py files you are installing in the
> top package and I found some dependencies missing in the SPEC file:
> *.py in %{name} depends on python libraries provided in python3-%{name},
> which depends on %{name}-libs, which may be not of great help without the
> /usr/share/materialx files.
> 
> 
> This is an idea of how to restructure this, let me know what you think:
> 
> package: libmaterialx (general naming for libs)
> * .so. files
> * /usr/share/materialx files
> * docs
> - doesn't depend on anything and stand on its own
>

Materialx suited better to match the name of upstream although 'libmaterialx' fits well to reflect the libraries. 

> subpackage: python3-libmaterialx (many packages are named this way:
> python3-libXYZ)
> * python libs and cpython so files
> - depends on libmaterialx
> 
> subpackage: libmaterialx-tools (some are named this way, e.g., libbpf-tools)
> * the *.py tools installed in /usr/bin
> - depends on python3-libmaterialx
> 
> subpackage: libmaterialx-devel
> * development files
> - depends on libmaterialx

Here is the updated (the possible renaming will come later):
SPEC: https://download.copr.fedorainfracloud.org/results/@designsuite/blender/fedora-rawhide-x86_64/07008526-materialx/materialx.spec
SRPM: https://download.copr.fedorainfracloud.org/results/@designsuite/blender/fedora-rawhide-x86_64/07008526-materialx/materialx-1.38.8-1.fc40.src.rpm

Comment 19 Carlos Rodriguez-Fernandez 2024-02-12 16:06:26 UTC
Thank you Luya for all the updates. That is a lot of work to get upstream cmake install to conform to FHS!

I tested the new src.rpm, and unfortunately, those paths are still being installed: "/usr/lib64/python3.12/site-packages/MaterialX/usr/share/materialx"


Another thing is that the `tools` subpackage does depend on `python3-%{name}` package because those /usr/bin/*.py files do import all the PyMaterialX modules. So, it will need this instead (which in itself, will bring the top level package lib as well):
```
Requires:       python3-%{name}%{?_isa} = %{version}-%{release}
```

And, since that package is only built with the python flag, the `tools` package will also need to be wrapped with it as well "%if %{with python}".

Comment 20 Fedora Review Service 2024-02-13 00:26:44 UTC
Created attachment 2016552 [details]
The .spec file difference from Copr build 7005489 to 7010709

Comment 21 Fedora Review Service 2024-02-13 00:26:48 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/7010709
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2262694-materialx/fedora-rawhide-x86_64/07010709-materialx/fedora-review/review.txt

Please take a look if any issues were found.


---
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 22 Luya Tshimbalanga 2024-02-14 03:06:28 UTC
(In reply to Carlos Rodriguez-Fernandez from comment #19)
> Thank you Luya for all the updates. That is a lot of work to get upstream
> cmake install to conform to FHS!
> 

It is. In a future, I will need help to translate the fix in cmake codes then submit to upstream.


> I tested the new src.rpm, and unfortunately, those paths are still being
> installed:
> "/usr/lib64/python3.12/site-packages/MaterialX/usr/share/materialx"
> 

Fixed by manually removing it.
'''
mkdir -p %{buildroot}%{python3_sitearch}
rm -rf %{buildroot}%{_prefix}/python/MaterialX/%{_prefix} 
mv %{buildroot}%{_prefix}/python/MaterialX %{buildroot}%{python3_sitearch}
'''


> 
> Another thing is that the `tools` subpackage does depend on
> `python3-%{name}` package because those /usr/bin/*.py files do import all
> the PyMaterialX modules. So, it will need this instead (which in itself,
> will bring the top level package lib as well):
> ```
> Requires:       python3-%{name}%{?_isa} = %{version}-%{release}
> ```
> 
> And, since that package is only built with the python flag, the `tools`
> package will also need to be wrapped with it as well "%if %{with python}".

Fixed.

Here is the update:
SPEC: https://download.copr.fedorainfracloud.org/results/@designsuite/blender/fedora-rawhide-x86_64/07012117-materialx/materialx.spec
SRPM: https://download.copr.fedorainfracloud.org/results/@designsuite/blender/fedora-rawhide-x86_64/07012117-materialx/materialx-1.38.8-1.fc40.src.rpm

Comment 23 Fedora Review Service 2024-02-14 03:21:35 UTC
Created attachment 2016673 [details]
The .spec file difference from Copr build 7010709 to 7013260

Comment 24 Fedora Review Service 2024-02-14 03:21:38 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/7013260
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2262694-materialx/fedora-rawhide-x86_64/07013260-materialx/fedora-review/review.txt

Please take a look if any issues were found.


---
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 25 Carlos Rodriguez-Fernandez 2024-02-15 16:02:10 UTC
Thank you Luya,

Sorry I missed this one earlier:

The `python3-%{name}` and `tools` subpackages are both missing the "License:        Apache-2.0" field. Other than that, I think this is ready.

Comment 27 Luya Tshimbalanga 2024-02-17 01:31:25 UTC
Carlos, in case of need of approval, look for flag->fedora-review in "Show Advanced Field" to switch either to "+" for approval or "?" for review.
See https://docs.fedoraproject.org/en-US/package-maintainers/Package_Review_Process/#_reviewer

Comment 28 Fedora Review Service 2024-02-17 02:49:58 UTC
Created attachment 2017286 [details]
The .spec file difference from Copr build 7013260 to 7027751

Comment 29 Fedora Review Service 2024-02-17 02:50:01 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/7027751
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2262694-materialx/fedora-rawhide-x86_64/07027751-materialx/fedora-review/review.txt

Please take a look if any issues were found.


---
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 30 Carlos Rodriguez-Fernandez 2024-02-19 15:39:42 UTC
[fedora-review-service-build]

Comment 31 Fedora Review Service 2024-02-19 16:04:22 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/7035565
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2262694-materialx/fedora-rawhide-x86_64/07035565-materialx/fedora-review/review.txt

Please take a look if any issues were found.


---
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 32 Carlos Rodriguez-Fernandez 2024-02-19 16:42:42 UTC
Luya, 
The URL to the upstream tar ball is broken.
The build is succeeding because the source is extracted from the srpm, but the review is not because it pulls it from the upstream directly, hence failing to post.

Comment 34 Fedora Review Service 2024-02-19 19:57:30 UTC
Created attachment 2017693 [details]
The .spec file difference from Copr build 7035565 to 7035959

Comment 35 Fedora Review Service 2024-02-19 19:57:38 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/7035959
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2262694-materialx/fedora-rawhide-x86_64/07035959-materialx/fedora-review/review.txt

Please take a look if any issues were found.


---
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 36 Carlos Rodriguez-Fernandez 2024-02-20 02:32:10 UTC
I'm using a non-rawhide review template since the rawhide one is broken.



Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed


Issues:
=======
- Header files in -devel subpackage, if present.
  Note: materialx : /usr/share/materialx/stdlib/genosl/include/color4.h
  materialx : /usr/share/materialx/stdlib/genosl/include/matrix33.h
  materialx : /usr/share/materialx/stdlib/genosl/include/mx_funcs.h
  materialx : /usr/share/materialx/stdlib/genosl/include/vector2.h
  materialx : /usr/share/materialx/stdlib/genosl/include/vector4.h
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/#_devel_packages
- Package contains BR: python2-devel or python3-devel


===== MUST items =====

C/C++:
[-]: Provides: bundled(gnulib) in place as required.
     Note: Sources not installed
[-]: Package does not contain kernel modules.
[ ]: Development (unversioned) .so files in -devel subpackage, if present.
     Note: Unversioned so-files in private %_libdir subdirectory (see
     attachment). Verify they are not in ld path.
[x]: If your application is a C or C++ application you must list a
     BuildRequires against gcc, gcc-c++ or clang.
[x]: ldconfig not called in %post and %postun for Fedora 28 and later.
[x]: Package does not contain any libtool archives (.la)
[x]: Package contains no static executables.
[x]: Rpath absent or only used for internal libs.

Generic:
[x]: Package successfully compiles and builds into binary rpms on at least
     one supported primary architecture.
     Note: Using prebuilt packages
[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "Unknown or generated", "*No copyright* Apache License 2.0",
     "BSD 3-Clause License", "*No copyright* Apache License", "Apache
     License 2.0", "MIT License", "*No copyright* ISC License", "BSD
     3-Clause License and/or Lawrence Berkeley National Labs BSD variant
     license", "*No copyright* Apache License 2.0 and/or SIL Open Font
     License 1.1", "Apache License 2.0 and/or BSD 3-Clause License", "zlib
     License", "MIT License and/or The Unlicense", "*No copyright* MIT
     License", "Apache License 2.0 and/or Khronos License and/or MIT
     License", "Khronos License", "*No copyright* Boost Software License
     1.0", "Boost Software License 1.0", "Simple Public License and/or zlib
     License", "*No copyright* The Unlicense [generated file]", "SIL Open
     Font License 1.1", "*No copyright* zlib License", "*No copyright*
     Public domain", "*No copyright* SIL Open Font License 1.1", "GNU
     Lesser General Public License v2.1 or later". 1358 files have unknown
     license. Detailed output of licensecheck in /var/lib/copr-
     rpmbuild/results/materialx/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[x]: If the package is under multiple licenses, the licensing breakdown
     must be documented in the spec.
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[x]: Macros in Summary, %description expandable at SRPM build time.
     Note: Macros in: python3-materialx (description)
[-]: Package contains desktop file if it is a GUI application.
[x]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory
     names).
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[x]: Package is not known to require an ExcludeArch tag.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 44550 bytes in 4 files.
[x]: Package complies to the Packaging Guidelines
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %license.
[x]: The License field must be a valid SPDX expression.
[x]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Dist tag is present.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package must not depend on deprecated() packages.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package does not use a name that already exists.
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

Python:
[-]: Binary eggs must be removed in %prep
     Note: Cannot find any build in BUILD directory (--prebuilt option?)
[-]: Python eggs must not download any dependencies during the build
     process.
[-]: A package which is used by another package via an egg interface should
     provide egg info.
[x]: Package meets the Packaging Guidelines::Python
[x]: Packages MUST NOT have dependencies (either build-time or runtime) on
     packages named with the unversioned python- prefix unless no properly
     versioned package exists. Dependencies on Python packages instead MUST
     use names beginning with python2- or python3- as appropriate.
[x]: Python packages must not contain %{pythonX_site(lib|arch)}/* in %files

===== SHOULD items =====

Generic:
[x]: Reviewer should test that the package builds in mock.
[-]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.
[x]: Final provides and requires are sane (see attachments).
[x]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[ =]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[ ]: Package should compile and build into binary rpms on all supported
     architectures.
[-]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed
     files.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Fully versioned dependency in subpackages if applicable.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

===== EXTRA items =====

Generic:
[-]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
     Note: Arch-ed rpms have a total of 140707840 bytes in /usr/share
     materialx-1.38.8-1.fc39.x86_64.rpm:140697600
     See:
     https://fedoraproject.org/wiki/Packaging:ReviewGuidelines#Package_Review_Guidelines
[x]: Rpmlint is run on debuginfo package(s).
     Note: No rpmlint messages.
[x]: Rpmlint is run on all installed packages.
     Note: No rpmlint messages.


Rpmlint
-------
Checking: materialx-1.38.8-1.fc39.x86_64.rpm
          materialx-devel-1.38.8-1.fc39.x86_64.rpm
          python3-materialx-1.38.8-1.fc39.x86_64.rpm
          materialx-tools-1.38.8-1.fc39.x86_64.rpm
          materialx-debuginfo-1.38.8-1.fc39.x86_64.rpm
          materialx-debugsource-1.38.8-1.fc39.x86_64.rpm
          materialx-1.38.8-1.fc39.src.rpm
============================ rpmlint session starts ============================
rpmlint: 2.5.0
configuration:
    /usr/lib/python3.12/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
rpmlintrc: [PosixPath('/tmp/tmpc80rq1fk')]
checks: 32, packages: 7

materialx.x86_64: E: wrong-script-end-of-line-encoding /usr/share/doc/materialx/CHANGELOG.md
materialx.x86_64: E: wrong-script-end-of-line-encoding /usr/share/doc/materialx/README.md
materialx.x86_64: E: wrong-script-end-of-line-encoding /usr/share/doc/materialx/SECURITY.md
materialx.x86_64: E: wrong-script-end-of-line-encoding /usr/share/licenses/materialx/LICENSE
materialx.x86_64: E: wrong-script-end-of-line-encoding /usr/share/licenses/materialx/THIRD-PARTY.md
materialx-devel.x86_64: E: wrong-script-end-of-line-encoding /usr/share/doc/materialx-devel/README.md
python3-materialx.x86_64: E: wrong-script-end-of-line-encoding /usr/lib64/python3.12/site-packages/MaterialX/colorspace.py
python3-materialx.x86_64: E: wrong-script-end-of-line-encoding /usr/lib64/python3.12/site-packages/MaterialX/datatype.py
python3-materialx.x86_64: E: wrong-script-end-of-line-encoding /usr/lib64/python3.12/site-packages/MaterialX/main.py
python3-materialx.x86_64: W: unexpanded-macro %description -l C %{description}
materialx.x86_64: W: spurious-executable-perm /usr/share/doc/materialx/CHANGELOG.md
materialx.x86_64: W: spurious-executable-perm /usr/share/doc/materialx/README.md
materialx.x86_64: W: spurious-executable-perm /usr/share/doc/materialx/SECURITY.md
materialx-devel.x86_64: W: spurious-executable-perm /usr/share/doc/materialx-devel/README.md
materialx.x86_64: E: script-without-shebang /usr/share/licenses/materialx/LICENSE
materialx.x86_64: E: script-without-shebang /usr/share/licenses/materialx/THIRD-PARTY.md
python3-materialx.x86_64: E: non-executable-script /usr/lib64/python3.12/site-packages/MaterialX/colorspace.py 644 /usr/bin/python3 -sP
python3-materialx.x86_64: E: non-executable-script /usr/lib64/python3.12/site-packages/MaterialX/datatype.py 644 /usr/bin/python3 -sP
python3-materialx.x86_64: E: non-executable-script /usr/lib64/python3.12/site-packages/MaterialX/main.py 644 /usr/bin/python3 -sP
materialx-tools.x86_64: W: no-manual-page-for-binary baketextures.py
materialx-tools.x86_64: W: no-manual-page-for-binary generateshader.py
materialx-tools.x86_64: W: no-manual-page-for-binary genmdl.py
materialx-tools.x86_64: W: no-manual-page-for-binary mxdoc.py
materialx-tools.x86_64: W: no-manual-page-for-binary mxformat.py
materialx-tools.x86_64: W: no-manual-page-for-binary mxvalidate.py
materialx-tools.x86_64: W: no-manual-page-for-binary translateshader.py
materialx-tools.x86_64: W: no-manual-page-for-binary writenodegraphs.py
materialx-tools.x86_64: W: no-documentation
python3-materialx.x86_64: W: no-documentation
materialx-tools.x86_64: E: no-binary
materialx.x86_64: E: files-duplicated-waste 106863
materialx.x86_64: W: files-duplicate /usr/share/materialx/resources/Materials/TestSuite/libraries/metal/textures/mesh_wire_norm.png /usr/share/materialx/resources/Images/mesh_wire_norm.png
materialx.x86_64: W: files-duplicate /usr/share/materialx/resources/Materials/TestSuite/pbrlib/bsdf/wedge_conductor.mtlx /usr/share/materialx/resources/Materials/TestSuite/pbrlib/bsdf/conductor.mtlx
materialx.x86_64: W: files-duplicate /usr/share/materialx/stdlib/genmsl/mx_burn_float.metal /usr/share/materialx/stdlib/genglsl/mx_burn_float.glsl
materialx.x86_64: W: files-duplicate /usr/share/materialx/stdlib/genmsl/mx_dodge_float.metal /usr/share/materialx/stdlib/genglsl/mx_dodge_float.glsl
materialx.x86_64: W: files-duplicate /usr/share/materialx/stdlib/genmsl/mx_smoothstep_float.metal /usr/share/materialx/stdlib/genglsl/mx_smoothstep_float.glsl
materialx.x86_64: W: devel-file-in-non-devel-package /usr/share/materialx/stdlib/genosl/include/color4.h
materialx.x86_64: W: devel-file-in-non-devel-package /usr/share/materialx/stdlib/genosl/include/matrix33.h
materialx.x86_64: W: devel-file-in-non-devel-package /usr/share/materialx/stdlib/genosl/include/mx_funcs.h
materialx.x86_64: W: devel-file-in-non-devel-package /usr/share/materialx/stdlib/genosl/include/vector2.h
materialx.x86_64: W: devel-file-in-non-devel-package /usr/share/materialx/stdlib/genosl/include/vector4.h
python3-materialx.x86_64: W: description-shorter-than-summary
 7 packages and 0 specfiles checked; 16 errors, 26 warnings, 553 filtered, 16 badness; has taken 6.5 s 




Rpmlint (debuginfo)
-------------------
Checking: materialx-debuginfo-1.38.8-1.fc39.x86_64.rpm
============================ rpmlint session starts ============================
rpmlint: 2.5.0
configuration:
    /usr/lib/python3.12/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
rpmlintrc: [PosixPath('/tmp/tmphrl4wv1n')]
checks: 32, packages: 1

 1 packages and 0 specfiles checked; 0 errors, 0 warnings, 30 filtered, 0 badness; has taken 1.6 s 





Rpmlint (installed packages)
----------------------------
(none): E: there is no installed rpm "python3-materialx".
(none): E: there is no installed rpm "materialx-devel".
(none): E: there is no installed rpm "materialx-debuginfo".
(none): E: there is no installed rpm "materialx-tools".
(none): E: there is no installed rpm "materialx".
(none): E: there is no installed rpm "materialx-debugsource".
There are no files to process nor additional arguments.
Nothing to do, aborting.
============================ rpmlint session starts ============================
rpmlint: 2.5.0
configuration:
    /usr/lib/python3.12/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
checks: 32, packages: 6

 0 packages and 0 specfiles checked; 0 errors, 0 warnings, 0 filtered, 0 badness; has taken 0.0 s 



Unversioned so-files
--------------------
python3-materialx: /usr/lib64/python3.12/site-packages/MaterialX/PyMaterialXCore.cpython-312-x86_64-linux-gnu.so
python3-materialx: /usr/lib64/python3.12/site-packages/MaterialX/PyMaterialXFormat.cpython-312-x86_64-linux-gnu.so
python3-materialx: /usr/lib64/python3.12/site-packages/MaterialX/PyMaterialXGenGlsl.cpython-312-x86_64-linux-gnu.so
python3-materialx: /usr/lib64/python3.12/site-packages/MaterialX/PyMaterialXGenMdl.cpython-312-x86_64-linux-gnu.so
python3-materialx: /usr/lib64/python3.12/site-packages/MaterialX/PyMaterialXGenMsl.cpython-312-x86_64-linux-gnu.so
python3-materialx: /usr/lib64/python3.12/site-packages/MaterialX/PyMaterialXGenOsl.cpython-312-x86_64-linux-gnu.so
python3-materialx: /usr/lib64/python3.12/site-packages/MaterialX/PyMaterialXGenShader.cpython-312-x86_64-linux-gnu.so
python3-materialx: /usr/lib64/python3.12/site-packages/MaterialX/PyMaterialXRender.cpython-312-x86_64-linux-gnu.so
python3-materialx: /usr/lib64/python3.12/site-packages/MaterialX/PyMaterialXRenderGlsl.cpython-312-x86_64-linux-gnu.so
python3-materialx: /usr/lib64/python3.12/site-packages/MaterialX/PyMaterialXRenderOsl.cpython-312-x86_64-linux-gnu.so

Source checksums
----------------
https://github.com/AcademySoftwareFoundation/MaterialX/releases/download/v1.38.8/MaterialX-1.38.8.tar.gz :
  CHECKSUM(SHA256) this package     : 6769800cc3c15a9ecc99933774824ed5a766382f71966ab607c22ca33a4d0162
  CHECKSUM(SHA256) upstream package : 6769800cc3c15a9ecc99933774824ed5a766382f71966ab607c22ca33a4d0162


Requires
--------
materialx (rpmlib, GLIBC filtered):
    libGLX.so.0()(64bit)
    libMaterialXCore.so.1()(64bit)
    libMaterialXFormat.so.1()(64bit)
    libMaterialXGenGlsl.so.1()(64bit)
    libMaterialXGenShader.so.1()(64bit)
    libMaterialXRender.so.1()(64bit)
    libMaterialXRenderHw.so.1()(64bit)
    libOpenImageIO.so.2.4()(64bit)
    libOpenImageIO_Util.so.2.4()(64bit)
    libX11.so.6()(64bit)
    libXt.so.6()(64bit)
    libasan.so.8()(64bit)
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libm.so.6()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.5)(64bit)
    libubsan.so.1()(64bit)
    rtld(GNU_HASH)

materialx-devel (rpmlib, GLIBC filtered):
    cmake-filesystem(x86-64)
    libMaterialXCore.so.1()(64bit)
    libMaterialXFormat.so.1()(64bit)
    libMaterialXGenGlsl.so.1()(64bit)
    libMaterialXGenMdl.so.1()(64bit)
    libMaterialXGenMsl.so.1()(64bit)
    libMaterialXGenOsl.so.1()(64bit)
    libMaterialXGenShader.so.1()(64bit)
    libMaterialXRender.so.1()(64bit)
    libMaterialXRenderGlsl.so.1()(64bit)
    libMaterialXRenderHw.so.1()(64bit)
    libMaterialXRenderOsl.so.1()(64bit)
    materialx(x86-64)

python3-materialx (rpmlib, GLIBC filtered):
    libMaterialXCore.so.1()(64bit)
    libMaterialXFormat.so.1()(64bit)
    libMaterialXGenGlsl.so.1()(64bit)
    libMaterialXGenMdl.so.1()(64bit)
    libMaterialXGenMsl.so.1()(64bit)
    libMaterialXGenOsl.so.1()(64bit)
    libMaterialXGenShader.so.1()(64bit)
    libMaterialXRender.so.1()(64bit)
    libMaterialXRenderGlsl.so.1()(64bit)
    libMaterialXRenderOsl.so.1()(64bit)
    libasan.so.8()(64bit)
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libm.so.6()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.13)(64bit)
    libstdc++.so.6(CXXABI_1.3.2)(64bit)
    libstdc++.so.6(CXXABI_1.3.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.5)(64bit)
    libubsan.so.1()(64bit)
    materialx(x86-64)
    python(abi)
    rtld(GNU_HASH)

materialx-tools (rpmlib, GLIBC filtered):
    /usr/bin/python3
    python3-materialx(x86-64)

materialx-debuginfo (rpmlib, GLIBC filtered):

materialx-debugsource (rpmlib, GLIBC filtered):



Provides
--------
materialx:
    libMaterialXCore.so.1()(64bit)
    libMaterialXFormat.so.1()(64bit)
    libMaterialXGenGlsl.so.1()(64bit)
    libMaterialXGenMdl.so.1()(64bit)
    libMaterialXGenMsl.so.1()(64bit)
    libMaterialXGenOsl.so.1()(64bit)
    libMaterialXGenShader.so.1()(64bit)
    libMaterialXRender.so.1()(64bit)
    libMaterialXRenderGlsl.so.1()(64bit)
    libMaterialXRenderHw.so.1()(64bit)
    libMaterialXRenderOsl.so.1()(64bit)
    materialx
    materialx(x86-64)

materialx-devel:
    cmake(MaterialX)
    cmake(materialx)
    materialx-devel
    materialx-devel(x86-64)

python3-materialx:
    python-materialx
    python3-materialx
    python3-materialx(x86-64)
    python3.12-materialx

materialx-tools:
    materialx-tools
    materialx-tools(x86-64)

materialx-debuginfo:
    debuginfo(build-id)
    libMaterialXCore.so.1.38.8-1.38.8-1.fc39.x86_64.debug()(64bit)
    libMaterialXFormat.so.1.38.8-1.38.8-1.fc39.x86_64.debug()(64bit)
    libMaterialXGenGlsl.so.1.38.8-1.38.8-1.fc39.x86_64.debug()(64bit)
    libMaterialXGenMdl.so.1.38.8-1.38.8-1.fc39.x86_64.debug()(64bit)
    libMaterialXGenMsl.so.1.38.8-1.38.8-1.fc39.x86_64.debug()(64bit)
    libMaterialXGenOsl.so.1.38.8-1.38.8-1.fc39.x86_64.debug()(64bit)
    libMaterialXGenShader.so.1.38.8-1.38.8-1.fc39.x86_64.debug()(64bit)
    libMaterialXRender.so.1.38.8-1.38.8-1.fc39.x86_64.debug()(64bit)
    libMaterialXRenderGlsl.so.1.38.8-1.38.8-1.fc39.x86_64.debug()(64bit)
    libMaterialXRenderHw.so.1.38.8-1.38.8-1.fc39.x86_64.debug()(64bit)
    libMaterialXRenderOsl.so.1.38.8-1.38.8-1.fc39.x86_64.debug()(64bit)
    materialx-debuginfo
    materialx-debuginfo(x86-64)

materialx-debugsource:
    materialx-debugsource
    materialx-debugsource(x86-64)



Generated by fedora-review 0.10.0 (e79b66b) last change: 2023-07-24
Command line :/bin/fedora-review --no-colors --prebuilt --rpm-spec --name materialx --mock-config /var/lib/copr-rpmbuild/results/configs/child.cfg
Buildroot used: fedora-39-x86_64
Active plugins: Python, Shell-api, Generic, C/C++
Disabled plugins: R, Perl, Ocaml, Java, SugarActivity, PHP, Haskell, fonts
Disabled flags: EXARCH, EPEL6, EPEL7, DISTTAG, BATCH

Comment 37 Carlos Rodriguez-Fernandez 2024-02-20 03:02:26 UTC
[x]: Development (unversioned) .so files in -devel subpackage, if present.
     Note: Unversioned so-files in private %_libdir subdirectory (see
     attachment). Verify they are not in ld path.
     - They are cpython binding so

[!]: Package should compile and build into binary rpms on all supported
     architectures.
     - https://koji.fedoraproject.org/koji/taskinfo?taskID=113778658
```
DEBUG util.py:461:  No matching package to install: 'pkgconfig(OpenImageIO)'
DEBUG util.py:461:  No matching package to install: 'pkgconfig(oslcomp)'
DEBUG util.py:461:  Not all dependencies satisfied
DEBUG util.py:461:  Error: Some packages could not be found.
```


https://src.fedoraproject.org/rpms/OpenImageIO/blob/rawhide/f/OpenImageIO.spec
```
	
# OpenVDB no longer builds for i686
	
ExcludeArch:    i686
```


Could you please remove i686 support? Your dependencies won't be available there.

Comment 39 Fedora Review Service 2024-02-21 10:06:45 UTC
Created attachment 2017956 [details]
The .spec file difference from Copr build 7035959 to 7041939

Comment 40 Fedora Review Service 2024-02-21 10:06:47 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/7041939
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2262694-materialx/fedora-rawhide-x86_64/07041939-libmaterialx/fedora-review/review.txt

Please take a look if any issues were found.


---
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 41 Carlos Rodriguez-Fernandez 2024-02-22 01:07:49 UTC

Thank you for the update, Luya.

This part is missing in the new revision:

```
ExcludeArch:    i686
```

Also, I'm having a hard time where is the `%{oiio}` defined, and there is also an extra `}` on it: `-DMATERIALX_BUILD_OIIO=%{oiio}} \`



* The naming is actually better `materialx` than `libmaterialx`, because as you said, reflects better the upstream project name.

* openshadinglanguage, OpenImageIO, and pybind11 are already packages in fedora that this package is depending on, so their license is not really necessary to be listed.

* The incorporated modules will need to investigated more to see exactly how they are being "imported or incorporated". They should be packaged separately if possible, or use Provides: bundled(...) = <version> otherwise. That would faciliate tracking them for security, licensing, etc...

- ambientcg (assets copied over) CC0-1.0
- poly-haven (assets copied over) CC0-1.0
- catch (2.13.10, it looks like source copied over) BSL-1.0
- glfw (3.4.0, it looks like source copied over) Zlib
- nanogui (incorporated as gitsubmodule, but what version?) BSD-4-Clause
- ImGui
- ImGuiEditor
- and pretty much all the ones in https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/THIRD-PARTY.md

These are the git submodules I found related with NanoGUI, and also ImGui*:

```
$ git submodule status
-9aae45eb4a05a5a1f96be1ef37eb503a12ceb889 source/MaterialXGraphEditor/External/ImGui
-2f99b2d613a400f6579762bd7e7c343a0d844158 source/MaterialXGraphEditor/External/ImGuiNodeEditor
-f5020e2f3e5114d517642e67afbb21cb88cf04c0 source/MaterialXView/NanoGUI
```

It looks like `CHANGELOG.md` can be a good source of details about the incorporated components, and how exactly they are brought in.

I think it is better to have a senior packager pair of eyes looking into this, because of its complexity.

Comment 42 Luya Tshimbalanga 2024-02-22 08:51:04 UTC
Thank you Carlos for the big review.
The %{oiio} is an oversight meant to get replaced by ON boolean. I realized I uploaded the wrong SRPM so the right version will come in a moment.

SPEC: https://download.copr.fedorainfracloud.org/results/@designsuite/blender/fedora-rawhide-x86_64/07048799-materialx/materialx.spec
SRPM: https://download.copr.fedorainfracloud.org/results/@designsuite/blender/fedora-rawhide-x86_64/07048799-materialx/materialx-1.38.8-1.fc41.src.rpm

Ben, would you mind checking the current spec?

Comment 43 Fedora Review Service 2024-02-22 09:13:25 UTC
Created attachment 2018131 [details]
The .spec file difference from Copr build 7041939 to 7048859

Comment 44 Fedora Review Service 2024-02-22 09:13:28 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/7048859
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2262694-materialx/fedora-rawhide-x86_64/07048859-materialx/fedora-review/review.txt

Please take a look if any issues were found.


---
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 45 Ben Beasley 2024-02-26 18:11:01 UTC
I am not sure that I dug into this deeply enough to find *everything*; consider this a preliminary review.

Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated


Issues:
=======
- Header files in -devel subpackage, if present.
  Note: materialx : /usr/share/materialx/stdlib/genosl/include/color4.h
  materialx : /usr/share/materialx/stdlib/genosl/include/matrix33.h
  materialx : /usr/share/materialx/stdlib/genosl/include/mx_funcs.h
  materialx : /usr/share/materialx/stdlib/genosl/include/vector2.h
  materialx : /usr/share/materialx/stdlib/genosl/include/vector4.h
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/#_devel_packages

  OK: These header files appear to be used for code generation.

- Package contains BR: python2-devel or python3-devel

  OK: BuildRequires:  pkgconfig(python3) implies python3-devel.

- Since CC0-1.0 is not-allowed for code in Fedora, please add a spec file
  comment that makes it clear that components from ambientcg and poly-haven
  under CC0-1.0 are solely “assets” and therefore content, for which CC0-1.0 is
  still allowed in Fedora. I had a hard time identifying the exact files taken
  from these projects, but it seems like both projects are content collections
  rather than software, so I think there is no problem here.

- The nanogui license does not appear to be BSD-4-Clause as claimed in the spec
  file. It seems like it might be BSD-3-Clause-LBNL.

- It’s a bit nicer and more general to write

    ExcludeArch:    i686

  as

    ExcludeArch:    %{ix86}

  although they are equivalent in Fedora proper.

- Anything bundled needs to follow the rules in

    https://docs.fedoraproject.org/en-US/packaging-guidelines/#bundling

  So you need the virtual Provides:

    Provides:       bundled(nanogui) = 0.2.0^20221102gitf5020e2

  but also you need to use a system copy if possible, and if not possible then
  you need to publicly contact upstream about a path to doing so.

  For nanogui in particular, it looks like there is some support for an
  external copy of nanogui, but maybe this just means a source tree rather than
  an installed library. I haven’t looked into it.

    https://github.com/AcademySoftwareFoundation/MaterialX/blob/92734332d595278298ad08e6543409bbabf344f0/source/MaterialXView/CMakeLists.txt#L3

  Either way, the process for justifying and indicating bundled libraries needs
  to be followed for each bundled library.

  There are a lot of other bundled libraries: I have not tried to account for
  them all, but they do all need to be accounted for.

- In general, licensecheck output suggests that there is code under many
  licenses that are not mentioned in THIRD_PARTY.md or in the License
  expression. This is related to the unaccounted-for bundled libraries
  mentioned in the previous point.

- The asan/ubsan sanitizers have a runtime cost and are not really intended for
  “production.” Please remove

    BuildRequires:  libasan
    BuildRequires:  libubsan

  and change

        -DMATERIALX_DYNAMIC_ANALYSIS=ON \

  to

        -DMATERIALX_DYNAMIC_ANALYSIS=OFF \

  (the default).

- Similarly, coverage analysis is not really useful for us, and (from grepping
  the sources) it seems like this option is no longer implemented anyway, so
  please consider removing:

        -DMATERIALX_COVERAGE_ANALYSIS=ON \

- From python/Scripts/README.md, the scripts in python/Scripts/ are “example
  Python scripts that generate, process, and validate material content using
  the MaterialX API.” I don’t think it makes sense to install these example
  scripts in the system PATH (/usr/bin/) due to their “example” status and
  their fairly generic names. Maybe you could install them in a documentation
  directory instead?

- It is not correct to say that the License of the -devel subpackage is simply
  Apache-2.0, since the API headers include many bundled header-only libraries
  under various licenses. These licenses need to be accounted for, and the
  -devel subpackage needs the appropriate virtual Provides – assuming the
  prescribed preconditions for bundling are satisfied in the package overall.

- Similarly, the License of the python3-materialx subpackage should probably be
  the same as that of the base package, because any of the bundled code under
  various licenses could be included in the various compiled extensions. At
  most, you might be able to prove that the content/asset files under CC0-1.0
  are not included, and drop that term from the license expression for
  python3-materialx.

- Since the contents of %{_datadir}/%{name}, i.e. /usr/share/materialx, are
  quite large (136M), it would be better to split them out into a
  materialx-data package that is noarch. This saves space on mirrors. The base
  package can then have a fully-versioned dependency on the -data subpackage,
  like:

    Requires:       %{name}-data = %{version}-%{release}

  Since all the other subpackages should end up depending directly or
  indirectly on this subpackage, it could be a good place to ship the license
  files, too.

  See also:

     Note: Arch-ed rpms have a total of 140707840 bytes in /usr/share
     materialx-1.38.8-1.fc41.x86_64.rpm:140697600

- The source tree contains bundled fonts. Please ensure these are not needed,
  and remove them in %prep, e.g.:

    # Ensure there are no bundled fonts
    # https://docs.fedoraproject.org/en-US/packaging-guidelines/#_avoid_bundling_of_fonts_in_other_packages
    find . -type f \( \
        -name '*.tt[cf]' -o -name '*.ot[cf]' \
        -o -name '*.eot' -o -name '*.woff' -o -name '*.woff2' \
        \) -print -delete

- This does not work:

    %description -n python3-%{name}
    %{description}

  The resulting package literally has unexpanded %{description} as its description.

- You should remove useless shebang lines in non-script files.

    python3-materialx.x86_64: E: non-executable-script /usr/lib64/python3.12/site-packages/MaterialX/colorspace.py 644 /usr/bin/python3 -sP
    python3-materialx.x86_64: E: non-executable-script /usr/lib64/python3.12/site-packages/MaterialX/datatype.py 644 /usr/bin/python3 -sP
    python3-materialx.x86_64: E: non-executable-script /usr/lib64/python3.12/site-packages/MaterialX/main.py 644 /usr/bin/python3 -sP

  Something like this could work:

    sed -r -i '1{/^#!/d}' python/MaterialX/{colorspace,datatype,main}.py

  But it would be even better to offer this upstream, and apply the PR as a
  patch, since these files do not have the executable bit set in the git
  repository, so the shebang lines are always useless for everyone.

- Despite some efforts to fix spurious executable permissions,

    # Relocate changelog, licenses and remove executable permission
    chmod -x %{buildroot}%{_prefix}/*.md
    mv %{buildroot}%{_prefix}/{CHANGELOG,README}.md %{buildroot}%{_docdir}/%{name}/
    mv %{buildroot}%{_prefix}/THIRD-PARTY.md %{buildroot}%{_datadir}/licenses/%{name}/

  there are still spurious executable permissions.

    materialx.x86_64: W: spurious-executable-perm /usr/share/doc/materialx/CHANGELOG.md
    materialx.x86_64: W: spurious-executable-perm /usr/share/doc/materialx/README.md
    materialx.x86_64: W: spurious-executable-perm /usr/share/doc/materialx/SECURITY.md
    materialx-devel.x86_64: W: spurious-executable-perm /usr/share/doc/materialx-devel/README.md

  Consider fixing these in %prep instead.

    chmod -v a-x LICENSE *.md

  Also, these files (like pretty much the entire source tree) are in
  DOS/Windows format. Add

    BuildRequires:  dos2unix

  and in %prep,

    dos2unix --keepdate LICENSE *.md

  Investigate whether any other packaged text files need the same
  chmod/dos2unix treatment. For example:

    python3-materialx.x86_64: E: wrong-script-end-of-line-encoding /usr/lib64/python3.12/site-packages/MaterialX/colorspace.py
    python3-materialx.x86_64: E: wrong-script-end-of-line-encoding /usr/lib64/python3.12/site-packages/MaterialX/datatype.py
    python3-materialx.x86_64: E: wrong-script-end-of-line-encoding /usr/lib64/python3.12/site-packages/MaterialX/main.py

  I don’t know what part of upstream’s release process is converting all these
  files to CRLF and making them executable.

  The really big hammer is something like

    find . -type f -perm /0111 -exec chmod -v a-x '{}' '+'
    find . -type f | xargs file | awk -F ':' '/CRLF/ { print $1 }' |
      xargs -r dos2unix --keepdate

  and perhaps that is justified. It doesn’t look like anything really needs to
  be executable; you would just need to audit to make sure nothing is being
  EOL-converted that really does need to stay as-is.

- I am not convinced the Python extension is really built correctly. There is a
  suspicious message in %install:

    Traceback (most recent call last):
      File "/builddir/build/BUILD/MaterialX-1.38.8/redhat-linux-build/python/setup.py", line 1, in <module>
        from setuptools import setup
    ModuleNotFoundError: No module named 'setuptools'

  and there is no .dist-info directory with Python metadata.

  I think it would be wise to explore building the Python package separately from the main cmake build, i.e.

    Patch:          0001-Downstream-only-do-without-the-dynamic-versioning-sc.patch

    BuildRequires:  ninja-build

    [...]

    %prep
    %autosetup -n MaterialX-%{version} -p1
    sed -r -i 's/@VERSION@/%{version}/' pyproject.toml

    [...]

    %generate_buildrequires
    %pyproject_buildrequires

  (I will upload
  0001-Downstream-only-do-without-the-dynamic-versioning-sc.patch as an
  attachment.)

  Remove:

    %if %{with python}
            -DMATERIALX_BUILD_PYTHON=ON \
    %endif

  Add to %build:

    %pyproject_wheel

  Add to %install:

    %pyproject_install
    %pyproject_save_files MaterialX

  Then do

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

  I almost got this approach working, but it’s currently failing with

    FAILED: source/MaterialXRender/CMakeFiles/MaterialXRender.dir/StbImageLoader.cpp.o
    /usr/bin/g++ -DMATERIALX_BUILD_GEN_GLSL -DMATERIALX_BUILD_GEN_MDL -DMATERIALX_BUILD_GEN_MSL -DMATERIALX_BUILD_GEN_OSL -DMATERIALX_INSTALL_MDL_MODULE_PATH=\"libraries\" -DMATERIALX_MDLC_EXECUTABLE=\"\" -DMATERIALX_MDL_MODULE_PATHS=\"\" -DMATERIALX_MDL_RENDER_ARGUMENTS=\"\" -DMATERIALX_MDL_RENDER_EXECUTABLE=\"\" -DMATERIALX_OSL_BINARY_OSLC=\"\" -DMATERIALX_OSL_BINARY_TESTRENDER=\"\" -DMATERIALX_OSL_INCLUDE_PATH=\"\" -DMATERIALX_OSL_LEGACY_CLOSURES -DMATERIALX_RENDER_EXPORTS -I/builddir/build/BUILD/MaterialX-1.38.8/source/MaterialXRender/.. -I/builddir/build/BUILD/MaterialX-1.38.8/source/MaterialXGenShader/.. -I/builddir/build/BUILD/MaterialX-1.38.8/source/MaterialXCore/.. -I/builddir/build/BUILD/MaterialX-1.38.8/.pyproject-builddir/tmplp4i5e7l/build/source/MaterialXCore/.. -I/builddir/build/BUILD/MaterialX-1.38.8/source/MaterialXFormat/.. -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -O3 -DNDEBUG -std=gnu++14 -fPIC -Wall -Wno-missing-braces -Werror -Wno-unused-function -MD -MT source/MaterialXRender/CMakeFiles/MaterialXRender.dir/StbImageLoader.cpp.o -MF source/MaterialXRender/CMakeFiles/MaterialXRender.dir/StbImageLoader.cpp.o.d -o source/MaterialXRender/CMakeFiles/MaterialXRender.dir/StbImageLoader.cpp.o -c /builddir/build/BUILD/MaterialX-1.38.8/source/MaterialXRender/StbImageLoader.cpp
    In file included from /builddir/build/BUILD/MaterialX-1.38.8/source/MaterialXRender/StbImageLoader.cpp:17:
    /builddir/build/BUILD/MaterialX-1.38.8/source/MaterialXRender/../MaterialXRender/External/StbImage/stb_image.h: In function ‘stbi__parse_png_file(stbi__png*, int, int) [clone .constprop.0]’:
    /builddir/build/BUILD/MaterialX-1.38.8/source/MaterialXRender/../MaterialXRender/External/StbImage/stb_image.h:4882:56: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=]
     4882 |                   for (k = 0; k < s->img_n; ++k) tc[k] = (stbi_uc)(stbi__get16be(s) & 255) * stbi__depth_scale_table[z->depth]; // non 8-bit images will be larger
          |                                                  ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/MaterialX-1.38.8/source/MaterialXRender/../MaterialXRender/External/StbImage/stb_image.h:4801:25: note: at offset 3 into destination object ‘tc’ of size 3
     4801 |    stbi_uc has_trans=0, tc[3]={0};
          |                         ^~
    cc1plus: all warnings being treated as errors

  Maybe this is fixed in the current stb_image.h from
  https://src.fedoraproject.org/rpms/stb. I did not have time to try unbundling
  it right now.

===== MUST items =====

C/C++:
[-]: Provides: bundled(gnulib) in place as required.
     Note: Sources not installed
[x]: Package does not contain kernel modules.
[x]: Development (unversioned) .so files in -devel subpackage, if present.
     Note: Unversioned so-files in private %_libdir subdirectory (see
     attachment). Verify they are not in ld path.


     The only unversioned so-files are:

       /usr/lib64/python3.12/site-packages/MaterialX/PyMaterialX*.cpython-312-x86_64-linux-gnu.so

     These are all properly-installed Python extension modules.  

[x]: If your application is a C or C++ application you must list a
     BuildRequires against gcc, gcc-c++ or clang.
[x]: ldconfig not called in %post and %postun for Fedora 28 and later.
[x]: Package does not contain any libtool archives (.la)
[x]: Package contains no static executables.
[x]: Rpath absent or only used for internal libs.

Generic:
[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.

     It appears that CC0-1.0 files are content only (good!); see Issues for
     more comments.

[!]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "Unknown or generated", "*No copyright* Apache License 2.0",
     "BSD 3-Clause License", "*No copyright* Apache License", "Apache
     License 2.0", "MIT License", "*No copyright* ISC License", "BSD
     3-Clause License and/or Lawrence Berkeley National Labs BSD variant
     license", "*No copyright* Apache License 2.0 and/or SIL Open Font
     License 1.1", "Apache License 2.0 and/or BSD 3-Clause License", "zlib
     License", "MIT License and/or The Unlicense", "*No copyright* MIT
     License", "Apache License 2.0 and/or Khronos License and/or MIT
     License", "Khronos License", "*No copyright* Boost Software License
     1.0", "Boost Software License 1.0", "Simple Public License and/or zlib
     License", "*No copyright* The Unlicense [generated file]", "SIL Open
     Font License 1.1", "*No copyright* zlib License", "SIL Open Font
     License 1.0", "*No copyright* Public domain", "*No copyright* SIL Open
     Font License 1.1", "GNU Lesser General Public License v2.1 or later".
     1357 files have unknown license. Detailed output of licensecheck in
     /home/ben/Downloads/review/2262694-materialx/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[!]: If the package is under multiple licenses, the licensing breakdown
     must be documented in the spec.

     This is no longer a formal requirement:

       https://gitlab.com/fedora/legal/fedora-legal-docs/-/issues/64

     However, not all of the licenses in the sources are accounted for in the
     License tags.

[x]: Package requires other packages for directories it uses.
     Note: No known owner of /usr/lib64/python3.12, /usr/lib64/cmake,
     /usr/lib64/python3.12/site-packages

     This diagnostic is spurious.

[x]: %build honors applicable compiler flags or justifies otherwise.
[!]: Package contains no bundled libraries without FPC exception.

     FPC exception is no longer required, but all bundled libraries must follow
     https://docs.fedoraproject.org/en-US/packaging-guidelines/#bundling.

     Many bundled libraries are unaccounted for.

[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.

     However, bundled fonts need to be removed in %prep to ensure they are not
     used.

[!]: Macros in Summary, %description expandable at SRPM build time.
     Note: Macros in: python3-materialx (description)
[-]: Package contains desktop file if it is a GUI application.
[x]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory
     names).
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[x]: Package is not known to require an ExcludeArch tag.
[-]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 44550 bytes in 4 files.
[x]: Package complies to the Packaging Guidelines

     (except as otherwise noted)

[x]: Package successfully compiles and builds into binary rpms on at least
     one supported primary architecture.
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %license.
[x]: The License field must be a valid SPDX expression.
[x]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Dist tag is present.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package must not depend on deprecated() packages.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package does not use a name that already exists.
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

Python:
[-]: Binary eggs must be removed in %prep
     Note: Cannot find any build in BUILD directory (--prebuilt option?)
[x]: Python eggs must not download any dependencies during the build
     process.
[x]: A package which is used by another package via an egg interface should
     provide egg info.
[x]: Package meets the Packaging Guidelines::Python
[x]: Packages MUST NOT have dependencies (either build-time or runtime) on
     packages named with the unversioned python- prefix unless no properly
     versioned package exists. Dependencies on Python packages instead MUST
     use names beginning with python2- or python3- as appropriate.
[x]: Python packages must not contain %{pythonX_site(lib|arch)}/* in %files

===== SHOULD items =====

Generic:
[-]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.
[!]: Final provides and requires are sane (see attachments).

     The only problems here are noted elsewhere: there should not be a runtime
     dependency on libubsan/libasan, and the virtual Provides for bundled
     dependencies are absent.

[ ]: Package functions as described.
[ ]: Latest version is packaged.
[ ]: Package does not include license text files separate from upstream.
[ ]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[ ]: Package should compile and build into binary rpms on all supported
     architectures.
[ ]: %check is present and all tests pass.
[ ]: Packages should try to preserve timestamps of original installed
     files.
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Fully versioned dependency in subpackages if applicable.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

===== EXTRA items =====

Generic:
[!]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
     Note: Arch-ed rpms have a total of 140707840 bytes in /usr/share
     materialx-1.38.8-1.fc41.x86_64.rpm:140697600
     See:
     https://fedoraproject.org/wiki/Packaging:ReviewGuidelines#Package_Review_Guidelines

     See Isuses.

[x]: Rpmlint is run on debuginfo package(s).
     Note: No rpmlint messages.
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: materialx-1.38.8-1.fc41.x86_64.rpm
          materialx-devel-1.38.8-1.fc41.x86_64.rpm
          python3-materialx-1.38.8-1.fc41.x86_64.rpm
          materialx-tools-1.38.8-1.fc41.x86_64.rpm
          materialx-debuginfo-1.38.8-1.fc41.x86_64.rpm
          materialx-debugsource-1.38.8-1.fc41.x86_64.rpm
          materialx-1.38.8-1.fc41.src.rpm
=========================================================================================== rpmlint session starts ==========================================================================================
rpmlint: 2.5.0
configuration:
    /usr/lib/python3.12/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
rpmlintrc: [PosixPath('/tmp/tmp3xqglxoh')]
checks: 32, packages: 7

materialx.x86_64: E: wrong-script-end-of-line-encoding /usr/share/doc/materialx/CHANGELOG.md
materialx.x86_64: E: wrong-script-end-of-line-encoding /usr/share/doc/materialx/README.md
materialx.x86_64: E: wrong-script-end-of-line-encoding /usr/share/doc/materialx/SECURITY.md
materialx.x86_64: E: wrong-script-end-of-line-encoding /usr/share/licenses/materialx/LICENSE
materialx.x86_64: E: wrong-script-end-of-line-encoding /usr/share/licenses/materialx/THIRD-PARTY.md
materialx-devel.x86_64: E: wrong-script-end-of-line-encoding /usr/share/doc/materialx-devel/README.md
python3-materialx.x86_64: E: wrong-script-end-of-line-encoding /usr/lib64/python3.12/site-packages/MaterialX/colorspace.py
python3-materialx.x86_64: E: wrong-script-end-of-line-encoding /usr/lib64/python3.12/site-packages/MaterialX/datatype.py
python3-materialx.x86_64: E: wrong-script-end-of-line-encoding /usr/lib64/python3.12/site-packages/MaterialX/main.py
python3-materialx.x86_64: W: unexpanded-macro %description -l C %{description}
materialx.x86_64: W: spurious-executable-perm /usr/share/doc/materialx/CHANGELOG.md
materialx.x86_64: W: spurious-executable-perm /usr/share/doc/materialx/README.md
materialx.x86_64: W: spurious-executable-perm /usr/share/doc/materialx/SECURITY.md
materialx-devel.x86_64: W: spurious-executable-perm /usr/share/doc/materialx-devel/README.md
materialx.x86_64: E: script-without-shebang /usr/share/licenses/materialx/LICENSE
materialx.x86_64: E: script-without-shebang /usr/share/licenses/materialx/THIRD-PARTY.md
python3-materialx.x86_64: E: non-executable-script /usr/lib64/python3.12/site-packages/MaterialX/colorspace.py 644 /usr/bin/python3 -sP
python3-materialx.x86_64: E: non-executable-script /usr/lib64/python3.12/site-packages/MaterialX/datatype.py 644 /usr/bin/python3 -sP
python3-materialx.x86_64: E: non-executable-script /usr/lib64/python3.12/site-packages/MaterialX/main.py 644 /usr/bin/python3 -sP
materialx-tools.x86_64: W: no-manual-page-for-binary baketextures.py
materialx-tools.x86_64: W: no-manual-page-for-binary generateshader.py
materialx-tools.x86_64: W: no-manual-page-for-binary genmdl.py
materialx-tools.x86_64: W: no-manual-page-for-binary mxdoc.py
materialx-tools.x86_64: W: no-manual-page-for-binary mxformat.py
materialx-tools.x86_64: W: no-manual-page-for-binary mxvalidate.py
materialx-tools.x86_64: W: no-manual-page-for-binary translateshader.py
materialx-tools.x86_64: W: no-manual-page-for-binary writenodegraphs.py
materialx-tools.x86_64: W: no-documentation
python3-materialx.x86_64: W: no-documentation
materialx-tools.x86_64: E: no-binary
materialx.x86_64: E: files-duplicated-waste 106863
materialx.x86_64: W: files-duplicate /usr/share/materialx/resources/Materials/TestSuite/libraries/metal/textures/mesh_wire_norm.png /usr/share/materialx/resources/Images/mesh_wire_norm.png
materialx.x86_64: W: files-duplicate /usr/share/materialx/resources/Materials/TestSuite/pbrlib/bsdf/wedge_conductor.mtlx /usr/share/materialx/resources/Materials/TestSuite/pbrlib/bsdf/conductor.mtlx
materialx.x86_64: W: files-duplicate /usr/share/materialx/stdlib/genmsl/mx_burn_float.metal /usr/share/materialx/stdlib/genglsl/mx_burn_float.glsl
materialx.x86_64: W: files-duplicate /usr/share/materialx/stdlib/genmsl/mx_dodge_float.metal /usr/share/materialx/stdlib/genglsl/mx_dodge_float.glsl
materialx.x86_64: W: files-duplicate /usr/share/materialx/stdlib/genmsl/mx_smoothstep_float.metal /usr/share/materialx/stdlib/genglsl/mx_smoothstep_float.glsl
materialx.x86_64: W: devel-file-in-non-devel-package /usr/share/materialx/stdlib/genosl/include/color4.h
materialx.x86_64: W: devel-file-in-non-devel-package /usr/share/materialx/stdlib/genosl/include/matrix33.h
materialx.x86_64: W: devel-file-in-non-devel-package /usr/share/materialx/stdlib/genosl/include/mx_funcs.h
materialx.x86_64: W: devel-file-in-non-devel-package /usr/share/materialx/stdlib/genosl/include/vector2.h
materialx.x86_64: W: devel-file-in-non-devel-package /usr/share/materialx/stdlib/genosl/include/vector4.h
python3-materialx.x86_64: W: description-shorter-than-summary
=================================================== 7 packages and 0 specfiles checked; 16 errors, 26 warnings, 551 filtered, 16 badness; has taken 7.9 s ===================================================




Rpmlint (debuginfo)
-------------------
Checking: materialx-debuginfo-1.38.8-1.fc41.x86_64.rpm
=========================================================================================== rpmlint session starts ==========================================================================================
rpmlint: 2.5.0
configuration:
    /usr/lib/python3.12/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
rpmlintrc: [PosixPath('/tmp/tmplo2dc5pk')]
checks: 32, packages: 1

===================================================== 1 packages and 0 specfiles checked; 0 errors, 0 warnings, 30 filtered, 0 badness; has taken 2.2 s =====================================================





Rpmlint (installed packages)
----------------------------
============================ rpmlint session starts ============================
rpmlint: 2.5.0
configuration:
    /usr/lib/python3.12/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
checks: 32, packages: 6

materialx-devel.x86_64: E: wrong-script-end-of-line-encoding /usr/share/doc/materialx-devel/README.md
python3-materialx.x86_64: E: wrong-script-end-of-line-encoding /usr/lib64/python3.12/site-packages/MaterialX/colorspace.py
python3-materialx.x86_64: E: wrong-script-end-of-line-encoding /usr/lib64/python3.12/site-packages/MaterialX/datatype.py
python3-materialx.x86_64: E: wrong-script-end-of-line-encoding /usr/lib64/python3.12/site-packages/MaterialX/main.py
materialx.x86_64: E: wrong-script-end-of-line-encoding /usr/share/doc/materialx/CHANGELOG.md
materialx.x86_64: E: wrong-script-end-of-line-encoding /usr/share/doc/materialx/README.md
materialx.x86_64: E: wrong-script-end-of-line-encoding /usr/share/doc/materialx/SECURITY.md
materialx.x86_64: E: wrong-script-end-of-line-encoding /usr/share/licenses/materialx/LICENSE
materialx.x86_64: E: wrong-script-end-of-line-encoding /usr/share/licenses/materialx/THIRD-PARTY.md
python3-materialx.x86_64: W: unexpanded-macro %description -l C %{description}
materialx-devel.x86_64: W: spurious-executable-perm /usr/share/doc/materialx-devel/README.md
materialx.x86_64: W: spurious-executable-perm /usr/share/doc/materialx/CHANGELOG.md
materialx.x86_64: W: spurious-executable-perm /usr/share/doc/materialx/README.md
materialx.x86_64: W: spurious-executable-perm /usr/share/doc/materialx/SECURITY.md
materialx.x86_64: E: script-without-shebang /usr/share/licenses/materialx/LICENSE
materialx.x86_64: E: script-without-shebang /usr/share/licenses/materialx/THIRD-PARTY.md
python3-materialx.x86_64: E: non-executable-script /usr/lib64/python3.12/site-packages/MaterialX/colorspace.py 644 /usr/bin/python3 -sP
python3-materialx.x86_64: E: non-executable-script /usr/lib64/python3.12/site-packages/MaterialX/datatype.py 644 /usr/bin/python3 -sP
python3-materialx.x86_64: E: non-executable-script /usr/lib64/python3.12/site-packages/MaterialX/main.py 644 /usr/bin/python3 -sP
materialx-tools.x86_64: W: no-manual-page-for-binary baketextures.py
materialx-tools.x86_64: W: no-manual-page-for-binary generateshader.py
materialx-tools.x86_64: W: no-manual-page-for-binary genmdl.py
materialx-tools.x86_64: W: no-manual-page-for-binary mxdoc.py
materialx-tools.x86_64: W: no-manual-page-for-binary mxformat.py
materialx-tools.x86_64: W: no-manual-page-for-binary mxvalidate.py
materialx-tools.x86_64: W: no-manual-page-for-binary translateshader.py
materialx-tools.x86_64: W: no-manual-page-for-binary writenodegraphs.py
python3-materialx.x86_64: W: no-documentation
materialx-tools.x86_64: W: no-documentation
materialx-tools.x86_64: E: no-binary
materialx.x86_64: E: files-duplicated-waste 106863
materialx.x86_64: W: files-duplicate /usr/share/materialx/resources/Materials/TestSuite/libraries/metal/textures/mesh_wire_norm.png /usr/share/materialx/resources/Images/mesh_wire_norm.png
materialx.x86_64: W: files-duplicate /usr/share/materialx/resources/Materials/TestSuite/pbrlib/bsdf/wedge_conductor.mtlx /usr/share/materialx/resources/Materials/TestSuite/pbrlib/bsdf/conductor.mtlx
materialx.x86_64: W: files-duplicate /usr/share/materialx/stdlib/genmsl/mx_burn_float.metal /usr/share/materialx/stdlib/genglsl/mx_burn_float.glsl
materialx.x86_64: W: files-duplicate /usr/share/materialx/stdlib/genmsl/mx_dodge_float.metal /usr/share/materialx/stdlib/genglsl/mx_dodge_float.glsl
materialx.x86_64: W: files-duplicate /usr/share/materialx/stdlib/genmsl/mx_smoothstep_float.metal /usr/share/materialx/stdlib/genglsl/mx_smoothstep_float.glsl
materialx.x86_64: W: devel-file-in-non-devel-package /usr/share/materialx/stdlib/genosl/include/color4.h
materialx.x86_64: W: devel-file-in-non-devel-package /usr/share/materialx/stdlib/genosl/include/matrix33.h
materialx.x86_64: W: devel-file-in-non-devel-package /usr/share/materialx/stdlib/genosl/include/mx_funcs.h
materialx.x86_64: W: devel-file-in-non-devel-package /usr/share/materialx/stdlib/genosl/include/vector2.h
materialx.x86_64: W: devel-file-in-non-devel-package /usr/share/materialx/stdlib/genosl/include/vector4.h
python3-materialx.x86_64: W: description-shorter-than-summary
 6 packages and 0 specfiles checked; 16 errors, 26 warnings, 558 filtered, 16 badness; has taken 6.4 s 



Unversioned so-files
--------------------
python3-materialx: /usr/lib64/python3.12/site-packages/MaterialX/PyMaterialXCore.cpython-312-x86_64-linux-gnu.so
python3-materialx: /usr/lib64/python3.12/site-packages/MaterialX/PyMaterialXFormat.cpython-312-x86_64-linux-gnu.so
python3-materialx: /usr/lib64/python3.12/site-packages/MaterialX/PyMaterialXGenGlsl.cpython-312-x86_64-linux-gnu.so
python3-materialx: /usr/lib64/python3.12/site-packages/MaterialX/PyMaterialXGenMdl.cpython-312-x86_64-linux-gnu.so
python3-materialx: /usr/lib64/python3.12/site-packages/MaterialX/PyMaterialXGenMsl.cpython-312-x86_64-linux-gnu.so
python3-materialx: /usr/lib64/python3.12/site-packages/MaterialX/PyMaterialXGenOsl.cpython-312-x86_64-linux-gnu.so
python3-materialx: /usr/lib64/python3.12/site-packages/MaterialX/PyMaterialXGenShader.cpython-312-x86_64-linux-gnu.so
python3-materialx: /usr/lib64/python3.12/site-packages/MaterialX/PyMaterialXRender.cpython-312-x86_64-linux-gnu.so
python3-materialx: /usr/lib64/python3.12/site-packages/MaterialX/PyMaterialXRenderGlsl.cpython-312-x86_64-linux-gnu.so
python3-materialx: /usr/lib64/python3.12/site-packages/MaterialX/PyMaterialXRenderOsl.cpython-312-x86_64-linux-gnu.so

Source checksums
----------------
https://github.com/AcademySoftwareFoundation/MaterialX/releases/download/v1.38.8/MaterialX-1.38.8.tar.gz :
  CHECKSUM(SHA256) this package     : 6769800cc3c15a9ecc99933774824ed5a766382f71966ab607c22ca33a4d0162
  CHECKSUM(SHA256) upstream package : 6769800cc3c15a9ecc99933774824ed5a766382f71966ab607c22ca33a4d0162


Requires
--------
materialx (rpmlib, GLIBC filtered):
    libGLX.so.0()(64bit)
    libMaterialXCore.so.1()(64bit)
    libMaterialXFormat.so.1()(64bit)
    libMaterialXGenGlsl.so.1()(64bit)
    libMaterialXGenShader.so.1()(64bit)
    libMaterialXRender.so.1()(64bit)
    libMaterialXRenderHw.so.1()(64bit)
    libOpenImageIO.so.2.5()(64bit)
    libOpenImageIO_Util.so.2.5()(64bit)
    libX11.so.6()(64bit)
    libXt.so.6()(64bit)
    libasan.so.8()(64bit)
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libm.so.6()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.5)(64bit)
    libubsan.so.1()(64bit)
    rtld(GNU_HASH)

materialx-devel (rpmlib, GLIBC filtered):
    cmake-filesystem(x86-64)
    libMaterialXCore.so.1()(64bit)
    libMaterialXFormat.so.1()(64bit)
    libMaterialXGenGlsl.so.1()(64bit)
    libMaterialXGenMdl.so.1()(64bit)
    libMaterialXGenMsl.so.1()(64bit)
    libMaterialXGenOsl.so.1()(64bit)
    libMaterialXGenShader.so.1()(64bit)
    libMaterialXRender.so.1()(64bit)
    libMaterialXRenderGlsl.so.1()(64bit)
    libMaterialXRenderHw.so.1()(64bit)
    libMaterialXRenderOsl.so.1()(64bit)
    materialx(x86-64)

python3-materialx (rpmlib, GLIBC filtered):
    libMaterialXCore.so.1()(64bit)
    libMaterialXFormat.so.1()(64bit)
    libMaterialXGenGlsl.so.1()(64bit)
    libMaterialXGenMdl.so.1()(64bit)
    libMaterialXGenMsl.so.1()(64bit)
    libMaterialXGenOsl.so.1()(64bit)
    libMaterialXGenShader.so.1()(64bit)
    libMaterialXRender.so.1()(64bit)
    libMaterialXRenderGlsl.so.1()(64bit)
    libMaterialXRenderOsl.so.1()(64bit)
    libasan.so.8()(64bit)
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libm.so.6()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.13)(64bit)
    libstdc++.so.6(CXXABI_1.3.15)(64bit)
    libstdc++.so.6(CXXABI_1.3.2)(64bit)
    libstdc++.so.6(CXXABI_1.3.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.5)(64bit)
    libubsan.so.1()(64bit)
    materialx(x86-64)
    python(abi)
    rtld(GNU_HASH)

materialx-tools (rpmlib, GLIBC filtered):
    /usr/bin/python3
    python3-materialx(x86-64)

materialx-debuginfo (rpmlib, GLIBC filtered):

materialx-debugsource (rpmlib, GLIBC filtered):



Provides
--------
materialx:
    libMaterialXCore.so.1()(64bit)
    libMaterialXFormat.so.1()(64bit)
    libMaterialXGenGlsl.so.1()(64bit)
    libMaterialXGenMdl.so.1()(64bit)
    libMaterialXGenMsl.so.1()(64bit)
    libMaterialXGenOsl.so.1()(64bit)
    libMaterialXGenShader.so.1()(64bit)
    libMaterialXRender.so.1()(64bit)
    libMaterialXRenderGlsl.so.1()(64bit)
    libMaterialXRenderHw.so.1()(64bit)
    libMaterialXRenderOsl.so.1()(64bit)
    materialx
    materialx(x86-64)

materialx-devel:
    cmake(MaterialX)
    cmake(materialx)
    materialx-devel
    materialx-devel(x86-64)

python3-materialx:
    python-materialx
    python3-materialx
    python3-materialx(x86-64)
    python3.12-materialx

materialx-tools:
    materialx-tools
    materialx-tools(x86-64)

materialx-debuginfo:
    debuginfo(build-id)
    libMaterialXCore.so.1.38.8-1.38.8-1.fc41.x86_64.debug()(64bit)
    libMaterialXFormat.so.1.38.8-1.38.8-1.fc41.x86_64.debug()(64bit)
    libMaterialXGenGlsl.so.1.38.8-1.38.8-1.fc41.x86_64.debug()(64bit)
    libMaterialXGenMdl.so.1.38.8-1.38.8-1.fc41.x86_64.debug()(64bit)
    libMaterialXGenMsl.so.1.38.8-1.38.8-1.fc41.x86_64.debug()(64bit)
    libMaterialXGenOsl.so.1.38.8-1.38.8-1.fc41.x86_64.debug()(64bit)
    libMaterialXGenShader.so.1.38.8-1.38.8-1.fc41.x86_64.debug()(64bit)
    libMaterialXRender.so.1.38.8-1.38.8-1.fc41.x86_64.debug()(64bit)
    libMaterialXRenderGlsl.so.1.38.8-1.38.8-1.fc41.x86_64.debug()(64bit)
    libMaterialXRenderHw.so.1.38.8-1.38.8-1.fc41.x86_64.debug()(64bit)
    libMaterialXRenderOsl.so.1.38.8-1.38.8-1.fc41.x86_64.debug()(64bit)
    materialx-debuginfo
    materialx-debuginfo(x86-64)

materialx-debugsource:
    materialx-debugsource
    materialx-debugsource(x86-64)



Generated by fedora-review 0.10.0 (e79b66b) last change: 2023-07-24
Command line :/usr/bin/fedora-review -b 2262694 --mock-options=--dnf
Buildroot used: fedora-rawhide-x86_64
Active plugins: Generic, C/C++, Shell-api, Python
Disabled plugins: Perl, PHP, R, fonts, Java, SugarActivity, Haskell, Ocaml
Disabled flags: EXARCH, EPEL6, EPEL7, DISTTAG, BATCH

Comment 46 Luya Tshimbalanga 2024-03-29 08:02:53 UTC
Created attachment 2024120 [details]
Updated materialx.spec file

Resuming the spec file and implementing the suggestion. The patch in question is missing for testing purpose to fully build.

Comment 48 Fedora Review Service 2024-08-21 19:48:00 UTC
Created attachment 2044561 [details]
The .spec file difference from Copr build 7048859 to 7932202

Comment 49 Fedora Review Service 2024-08-21 19:48:03 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/7932202
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2262694-materialx/fedora-rawhide-x86_64/07932202-materialx/fedora-review/review.txt

Found issues:

- materialx-data : /usr/share/materialx/stdlib/genosl/include/color4.h materialx-data : /usr/share/materialx/stdlib/genosl/include/matrix33.h materialx-data : /usr/share/materialx/stdlib/genosl/include/mx_funcs.h materialx-data : /usr/share/materialx/stdlib/genosl/include/vector2.h materialx-data : /usr/share/materialx/stdlib/genosl/include/vector4.h 
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_devel_packages

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 50 Adrià 2024-08-23 13:43:03 UTC
Hi, there's more paths that need to be fixed on %prep. Here's the edits I added:

sed -i 's|resources|%{_datadir}/%{name}/resources|g'    source/MaterialXView/{Main.cpp,Viewer.cpp}
sed -i 's|"libraries"|"%{_datadir}/%{name}"|g'          source/MaterialXView/Main.cpp
sed -i 's|resources|%{_datadir}/%{name}/resources|g'    source/MaterialXGraphEditor/{Main.cpp,Graph.cpp}
sed -i 's|"libraries"|"%{_datadir}/%{name}"|g'          source/MaterialXGraphEditor/{Main.cpp,Graph.cpp}
sed -i 's|"libraries"|"%{_datadir}/%{name}"|g'          source/MaterialXGenShader/GenOptions.h

sed -i 's|@PACKAGE_CMAKE_INSTALL_PREFIX@/libraries|%{_datadir}/%{name}|g'            cmake/modules/MaterialXConfig.cmake.in
sed -i 's|@PACKAGE_CMAKE_INSTALL_PREFIX@/python|%{python3_sitearch}/MaterialX|g'     cmake/modules/MaterialXConfig.cmake.in
sed -i 's|@PACKAGE_CMAKE_INSTALL_PREFIX@/resources|%{_datadir}/%{name}/resources|g'  cmake/modules/MaterialXConfig.cmake.in

Hope it helps!

Comment 52 Fedora Review Service 2024-10-19 21:50:05 UTC
Created attachment 2052851 [details]
The .spec file difference from Copr build 7932202 to 8158633

Comment 53 Fedora Review Service 2024-10-19 21:50:07 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8158633
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2262694-materialx/fedora-rawhide-x86_64/08158633-materialx/fedora-review/review.txt

Found issues:

- materialx-data : /usr/share/materialx/stdlib/genosl/include/color4.h materialx-data : /usr/share/materialx/stdlib/genosl/include/matrix33.h materialx-data : /usr/share/materialx/stdlib/genosl/include/mx_funcs.h materialx-data : /usr/share/materialx/stdlib/genosl/include/vector2.h materialx-data : /usr/share/materialx/stdlib/genosl/include/vector4.h 
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_devel_packages

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 54 Elliott Sales de Andrade 2024-12-31 06:14:34 UTC
Why does the spec use a less clear Summary from the title of the Bugzilla?

What is the chrpath BR'd for?

Why is there an unconditional `cmake(pybind11)` BR, but also a python-conditional `pkgconfig(pybind11)` BR?

Why is dos2unix not run once with --keepdate in all cases?

If python is enabled, then only a tools subpackage is added; where is the python3-%{name} subpackage?

Comment 56 Fedora Review Service 2025-04-06 07:53:45 UTC
Created attachment 2083568 [details]
The .spec file difference from Copr build 8158633 to 8864573

Comment 57 Fedora Review Service 2025-04-06 07:53:48 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8864573
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2262694-materialx/fedora-rawhide-x86_64/08864573-materialx/fedora-review/review.txt

Found issues:

- materialx-data : /usr/share/materialx/stdlib/genosl/include/color4.h materialx-data : /usr/share/materialx/stdlib/genosl/include/matrix33.h materialx-data : /usr/share/materialx/stdlib/genosl/include/mx_funcs.h materialx-data : /usr/share/materialx/stdlib/genosl/include/vector2.h materialx-data : /usr/share/materialx/stdlib/genosl/include/vector4.h 
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_devel_packages

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 58 Zbigniew Jędrzejewski-Szmek 2025-04-09 13:34:19 UTC
> %bcond          viewer      0  # Graphical viewer (enabled by default)
The comment seems confused.

> %{_libdir}/libMaterialX*.so.*
The packaging guidelines say
(https://docs.fedoraproject.org/en-US/packaging-guidelines/#_listing_shared_library_files):
> Shared libraries installed directly into %{_libdir} SHOULD NOT be listed in the
> %files section of the spec by using a glob in a way that conceals important
> parts of the file name (e.g. libfoo.so*)

In https://bugzilla.redhat.com/show_bug.cgi?id=2262694#c45 Ben noticed
that bundled libraries are not handled properly and gave nanogui as an example.
But https://bugzilla.redhat.com/show_bug.cgi?id=2262694#c41 lists many more
bundled libraries. They need to be handled too. And please note that
"handled properly" means that ideally the system version is used.
At least glfw and catch are packaged.

Comment 59 Zbigniew Jędrzejewski-Szmek 2025-04-09 13:36:40 UTC
One more thing: the Summary says "open standard". That is rather misleading.
A package that is described as a standard would normally be expected to contain
the text of the standard or something like that. But it seems to provide
a library that implements it or something like that, I didn't actualy look.

Comment 60 Luya Tshimbalanga 2025-04-09 22:26:11 UTC
(In reply to Zbigniew Jędrzejewski-Szmek from comment #58)
> > %bcond          viewer      0  # Graphical viewer (enabled by default)
> The comment seems confused.
Fixed.

> 
> > %{_libdir}/libMaterialX*.so.*
> The packaging guidelines say
> (https://docs.fedoraproject.org/en-US/packaging-guidelines/
> #_listing_shared_library_files):
> > Shared libraries installed directly into %{_libdir} SHOULD NOT be listed in the
> > %files section of the spec by using a glob in a way that conceals important
> > parts of the file name (e.g. libfoo.so*)

Fixed with this line: "%{_libdir}/libMaterialX*.so.{1,%{version}}"
Before simplification, the old spec version had the following:
"
%{_libdir}/libMaterialXCore.so.{1,%{version}}
%{_libdir}/libMaterialXFormat.so.{1,%{version}}
%{_libdir}/libMaterialXGen{,Glsl,Mdl,Msl,Osl,Shader}.so.{1,%{version}}
%{_libdir}/libMaterialXRender{,Glsl,Hw,Osl}.so.{1,%{version}}
"

> 
> In https://bugzilla.redhat.com/show_bug.cgi?id=2262694#c45 Ben noticed
> that bundled libraries are not handled properly and gave nanogui as an
> example.
> But https://bugzilla.redhat.com/show_bug.cgi?id=2262694#c41 lists many more
> bundled libraries. They need to be handled too. And please note that
> "handled properly" means that ideally the system version is used.

Re-include the line: "Provides:       bundled(nanogui) = 0.2.0^20221102gitf5020e2"
Currently, upstream cmake requires git submodule for nanogui hence left disabled until
a proper fix occurs.


> At least glfw and catch are packaged.
Fixed with the following:
"BuildRequires:  pkgconfig(catch2)
BuildRequires:  pkgconfig(glfw3)"


> One more thing: the Summary says "open standard". That is rather misleading.
> A package that is described as a standard would normally be expected to
> contain
> the text of the standard or something like that. But it seems to provide
> a library that implements it or something like that, I didn't actualy look.

The summary is updated with the following line: "Vendor-neutral specification for 3D material interchange"

Here is the updated
SPEC: https://download.copr.fedorainfracloud.org/results/@designsuite/blender/fedora-rawhide-x86_64/08882889-materialx/materialx.spec
SRPM: https://download.copr.fedorainfracloud.org/results/@designsuite/blender/fedora-rawhide-x86_64/08882889-materialx/materialx-1.39.3-1.fc43.src.rpm

Comment 61 Fedora Review Service 2025-04-09 22:53:55 UTC
Created attachment 2084146 [details]
The .spec file difference from Copr build 8864573 to 8882938

Comment 62 Fedora Review Service 2025-04-09 22:53:57 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8882938
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2262694-materialx/fedora-rawhide-x86_64/08882938-materialx/fedora-review/review.txt

Found issues:

- materialx-data : /usr/share/materialx/stdlib/genosl/include/color4.h materialx-data : /usr/share/materialx/stdlib/genosl/include/matrix33.h materialx-data : /usr/share/materialx/stdlib/genosl/include/mx_funcs.h materialx-data : /usr/share/materialx/stdlib/genosl/include/vector2.h materialx-data : /usr/share/materialx/stdlib/genosl/include/vector4.h 
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_devel_packages

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 63 Adrià 2025-04-10 18:52:09 UTC
I made some additions to build with python bindings, feel free to add it to your spec.

SPEC: https://download.copr.fedorainfracloud.org/results/adro79/materialx/fedora-rawhide-x86_64/08887919-materialx/materialx.spec
SRPM: https://download.copr.fedorainfracloud.org/results/adro79/materialx/fedora-rawhide-x86_64/08887919-materialx/materialx-1.39.3-1.fc43.src.rpm

Hope this can be added to the Fedora repos soon. I use MaterialX frequently with OpenUSD, and I'd love to have this enabled on the fedora's usd package.

Thanks.

Comment 64 Luya Tshimbalanga 2025-04-11 02:22:31 UTC
Thank you for the python bindings code, added to the spec. Hopefully as MaterialX is an optional dependency for Blender.

Here is the latest update

SPEC: https://download.copr.fedorainfracloud.org/results/@designsuite/blender/fedora-rawhide-x86_64/08889136-materialx/materialx.spec
SRPM: https://download.copr.fedorainfracloud.org/results/@designsuite/blender/fedora-rawhide-x86_64/08889136-materialx/materialx-1.39.3-1.fc43.src.rpm

Comment 65 Fedora Review Service 2025-04-11 02:58:14 UTC
Created attachment 2084399 [details]
The .spec file difference from Copr build 8882938 to 8889447

Comment 66 Fedora Review Service 2025-04-11 02:58:17 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8889447
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2262694-materialx/fedora-rawhide-x86_64/08889447-materialx/fedora-review/review.txt

Found issues:

- materialx-data : /usr/share/materialx/stdlib/genosl/include/color4.h materialx-data : /usr/share/materialx/stdlib/genosl/include/matrix33.h materialx-data : /usr/share/materialx/stdlib/genosl/include/mx_funcs.h materialx-data : /usr/share/materialx/stdlib/genosl/include/vector2.h materialx-data : /usr/share/materialx/stdlib/genosl/include/vector4.h 
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_devel_packages

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.


Note You need to log in before you can comment on or make changes to this bug.